@forge/manifest

13.1.1-next.2-experimental-094961613.2.0-next.5
~

Modified (11 files)

Index: package/out/text/errors.js
===================================================================
--- package/out/text/errors.js
+++ package/out/text/errors.js
@@ -170,8 +170,29 @@
             skillPathInvalidFormat: (module) => `Skill ${module} has an invalid source. Must define source.dir as a relative path from the manifest root.`,
             skillSubdirNotFound: (module, subdirectory) => `Directory '${subdirectory}' specified in skill ${module} does not exist from the manifest root.`,
             skillSubdirMissingSkillMD: (module, subdirectory) => `Directory '${subdirectory}' specified in skill ${module} does not contain a SKILL.md file.`,
             skillPathNotUnique: (module, path) => `Skill ${module} has a duplicate source.dir '${path}'. rovo:skill source.dir values must be unique.`,
+            skillFileMissingFrontmatterDelimiters: (module) => `Skill ${module} must define frontmatter with opening and closing '---' delimiters. Example:\n---\nname: my-skill\ndescription: ...\n---`,
+            skillFileFrontmatterYamlInvalid: (module) => `Skill ${module} has invalid YAML in SKILL.md frontmatter. Tip: frontmatter must be a YAML mapping (key: value). Check indentation and quoting.`,
+            skillFileNameRequired: (module) => `Skill ${module} frontmatter field 'name' is required.`,
+            skillFileNameLength: (module) => `Skill ${module} frontmatter field 'name' must be between 1 and 64 characters.`,
+            skillFileNameFormat: (module) => `Skill ${module} frontmatter field 'name' must be lowercase alphanumeric with hyphens and no leading, trailing, or consecutive hyphens.`,
+            skillFileNameMustMatchDirectory: (module, directoryName) => `Skill ${module} frontmatter field 'name' must match the parent directory name '${directoryName}'.`,
+            skillFileDescriptionRequired: (module) => `Skill ${module} frontmatter field 'description' is required.`,
+            skillFileDescriptionLength: (module) => `Skill ${module} frontmatter field 'description' must be between 1 and 1024 characters.`,
+            skillFileDescriptionTooShort: (module) => `Skill ${module} description should be at least 50 characters. Suggestion: Describe what the skill does, when to use it, and any prerequisites or limits.`,
+            skillFileCompatibilityMustBeString: (module) => `Skill ${module} frontmatter field 'compatibility' must be a string.`,
+            skillFileCompatibilityLength: (module) => `Skill ${module} frontmatter field 'compatibility' must be between 1 and 500 characters.`,
+            skillFileMetadataInvalid: (module) => `Skill ${module} frontmatter field 'metadata' must be a key-value mapping with string values.`,
+            skillFileLicenseMustBeString: (module) => `Skill ${module} frontmatter field 'license' must be a string.`,
+            skillFileAllowedToolsInvalid: (module) => `Skill ${module} frontmatter field 'allowed-tools' must be a space-delimited string.`,
+            skillFileAllowedToolsMismatch: (module) => `Skill ${module} frontmatter field 'allowed-tools' does not match manifest dependencies.tools.`,
+            skillFileReferencedFileMissing: (module, filePath) => `Skill ${module} references file '${filePath}' but it does not exist.`,
+            skillFileRequiredDirectoryMissing: (module, directoryPath) => `Skill ${module} requires directory '${directoryPath}' but it does not exist.`,
+            skillFileUnknownFrontmatterField: (module, field) => `Skill ${module} has unknown frontmatter field '${field}'.`,
+            skillFileBodyEmpty: (module) => `Skill ${module} SKILL.md body is empty.`,
+            skillFileBodyTooLong: (module) => `Skill ${module} SKILL.md body exceeds 500 lines. Suggestion: Move some content to reference files.`,
+            skillFileToolsNotMentioned: (module) => `Skill ${module} SKILL.md should document how it uses each tool declared in dependencies.tools.`,
             incorrectMcp: (module, toolKey) => `${module} references undefined action module with key '${toolKey}'.`
         },
         action: {
             unreferencedAction: (action) => `Action '${action}' is not referenced by any Rovo agent or automation:actionProvider module.`,
Index: package/out/validators/modules-validators/rovo/index.js
===================================================================
--- package/out/validators/modules-validators/rovo/index.js
+++ package/out/validators/modules-validators/rovo/index.js
@@ -7,8 +7,9 @@
 const validate_rovo_mcp_actions_1 = require("./validate-rovo-mcp-actions");
 const validate_undefined_action_name_1 = require("./validate-undefined-action-name");
 const validate_agent_connector_remote_endpoints_1 = require("./validate-agent-connector-remote-endpoints");
 const validate_skill_path_1 = require("./validate-skill-path");
+const validate_skill_file_1 = require("./validate-skill-file");
 const validateRovoModules = (modules, manifestDir, yamlContentByLine) => {
     const validationErrors = [];
     validationErrors.push(...(0, validate_rovo_agent_actions_1.validateRovoAgentActions)(modules, yamlContentByLine));
     validationErrors.push(...(0, validate_unreferenced_actions_1.validateUnreferencedActions)(modules, yamlContentByLine));
@@ -16,7 +17,8 @@
     validationErrors.push(...(0, validate_rovo_mcp_actions_1.validateRovoMcpActions)(modules, yamlContentByLine));
     validationErrors.push(...(0, validate_undefined_action_name_1.validateUndefinedActionName)(modules, yamlContentByLine));
     validationErrors.push(...(0, validate_agent_connector_remote_endpoints_1.validateAgentConnectorRemoteEndpoints)(modules, yamlContentByLine));
     validationErrors.push(...(0, validate_skill_path_1.validateSkillPath)(modules, manifestDir, yamlContentByLine));
+    validationErrors.push(...(0, validate_skill_file_1.validateSkillFile)(modules, manifestDir, yamlContentByLine));
     return validationErrors;
 };
 exports.validateRovoModules = validateRovoModules;
Index: package/out/validators/modules-validators/global/validate-global-ui.js
===================================================================
--- package/out/validators/modules-validators/global/validate-global-ui.js
+++ package/out/validators/modules-validators/global/validate-global-ui.js
@@ -12,16 +12,8 @@
     const globalUiModules = modules[moduleType] || [];
     if (globalUiModules.length === 0) {
         return validationErrors;
     }
-    if (!app.compatibility) {
-        validationErrors.push({
-            message: errorMessages.compatibilityRequired(),
-            reference: text_1.References.Modules,
-            level: 'error',
-            ...(0, utils_1.findPosition)('app', yamlContentByLine)
-        });
-    }
     if (globalUiModules.length > 1) {
         validationErrors.push({
             message: text_1.errors.modules.singleEntryOfTheModule(moduleType),
             reference: text_1.References.Modules,
File too large for inline diff
Index: package/package.json
===================================================================
--- package/package.json
+++ package/package.json
@@ -1,7 +1,7 @@
 {
   "name": "@forge/manifest",
-  "version": "13.1.1-next.2-experimental-0949616",
+  "version": "13.2.0-next.5",
   "description": "Definitions and validations of the Forge manifest",
   "main": "out/index.js",
   "scripts": {
     "build": "yarn run compile",
Index: package/out/mapping/product-event-to-scope-mapping.json
===================================================================
--- package/out/mapping/product-event-to-scope-mapping.json
+++ package/out/mapping/product-event-to-scope-mapping.json
@@ -327,8 +327,63 @@
                 ]
             }
         },
         {
+            "productEvent": "avi:jsm-entity:created:request-type",
+            "oAuthScopes": {
+                "beta": [
+                    "read:requesttype:jira-service-management"
+                ],
+                "current": [
+                    "manage:jira-configuration"
+                ]
+            }
+        },
+        {
+            "productEvent": "avi:jsm-entity:updated:request-type",
+            "oAuthScopes": {
+                "beta": [
+                    "read:requesttype:jira-service-management"
+                ],
+                "current": [
+                    "manage:jira-configuration"
+                ]
+            }
+        },
+        {
+            "productEvent": "avi:jsm-entity:deleted:request-type",
+            "oAuthScopes": {
+                "beta": [
+                    "read:requesttype:jira-service-management"
+                ],
+                "current": [
+                    "manage:jira-configuration"
+                ]
+            }
+        },
+        {
+            "productEvent": "avi:jsm-entity:created:portal",
+            "oAuthScopes": {
+                "beta": [
+                    "read:servicedesk:jira-service-management"
+                ],
+                "current": [
+                    "manage:jira-configuration"
+                ]
+            }
+        },
+        {
+            "productEvent": "avi:jsm-entity:updated:portal",
+            "oAuthScopes": {
+                "beta": [
+                    "read:servicedesk:jira-service-management"
+                ],
+                "current": [
+                    "manage:jira-configuration"
+                ]
+            }
+        },
+        {
             "productEvent": "avi:jira:created:version",
             "oAuthScopes": {
                 "beta": [
                     "read:project-version:jira"
Index: package/out/text/errors.d.ts.map
===================================================================
--- package/out/text/errors.d.ts.map
+++ package/out/text/errors.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/text/errors.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/text/errors.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
Index: package/out/validators/modules-validators/rovo/index.d.ts.map
===================================================================
--- package/out/validators/modules-validators/rovo/index.d.ts.map
+++ package/out/validators/modules-validators/rovo/index.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/validators/modules-validators/rovo/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AASnD,eAAO,MAAM,mBAAmB,GAC9B,SAAS,OAAO,EAChB,cAAc,MAAM,EACpB,oBAAoB,MAAM,EAAE,KAC3B,eAAe,EAYjB,CAAC"}
\ No newline at end of file
+{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/validators/modules-validators/rovo/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAUnD,eAAO,MAAM,mBAAmB,GAC9B,SAAS,OAAO,EAChB,cAAc,MAAM,EACpB,oBAAoB,MAAM,EAAE,KAC3B,eAAe,EAajB,CAAC"}
\ No newline at end of file
File too large for inline diff
Index: package/out/text/errors.d.ts
===================================================================
--- package/out/text/errors.d.ts
+++ package/out/text/errors.d.ts
@@ -156,8 +156,29 @@
             skillPathInvalidFormat: (module: string) => string;
             skillSubdirNotFound: (module: string, subdirectory: string) => string;
             skillSubdirMissingSkillMD: (module: string, subdirectory: string) => string;
             skillPathNotUnique: (module: string, path: string) => string;
+            skillFileMissingFrontmatterDelimiters: (module: string) => string;
+            skillFileFrontmatterYamlInvalid: (module: string) => string;
+            skillFileNameRequired: (module: string) => string;
+            skillFileNameLength: (module: string) => string;
+            skillFileNameFormat: (module: string) => string;
+            skillFileNameMustMatchDirectory: (module: string, directoryName: string) => string;
+            skillFileDescriptionRequired: (module: string) => string;
+            skillFileDescriptionLength: (module: string) => string;
+            skillFileDescriptionTooShort: (module: string) => string;
+            skillFileCompatibilityMustBeString: (module: string) => string;
+            skillFileCompatibilityLength: (module: string) => string;
+            skillFileMetadataInvalid: (module: string) => string;
+            skillFileLicenseMustBeString: (module: string) => string;
+            skillFileAllowedToolsInvalid: (module: string) => string;
+            skillFileAllowedToolsMismatch: (module: string) => string;
+            skillFileReferencedFileMissing: (module: string, filePath: string) => string;
+            skillFileRequiredDirectoryMissing: (module: string, directoryPath: string) => string;
+            skillFileUnknownFrontmatterField: (module: string, field: string) => string;
+            skillFileBodyEmpty: (module: string) => string;
+            skillFileBodyTooLong: (module: string) => string;
+            skillFileToolsNotMentioned: (module: string) => string;
             incorrectMcp: (module: string, toolKey: string) => string;
         };
         action: {
             unreferencedAction: (action: string) => string;
File too large for inline diff