@forge/manifest

12.6.0-next.112.6.0-next.2
~

Modified (25 files)

Index: package/out/text/errors.js
===================================================================
--- package/out/text/errors.js
+++ package/out/text/errors.js
@@ -33,8 +33,9 @@
     },
     permissions: {
         invalidPermission: (element, value) => `Invalid '${element}' permission in the manifest.yml file - '${value}'. Learn more about permissions at: https://go.atlassian.com/forge-permissions.`,
         missingPermissionFromScope: (scope, event) => `Trigger event: '${event}' requires '${scope}' scope`,
+        missingPermissionFromAgentProductContext: (scope, agentKey, productContexts) => `rovo:agentConnector '${agentKey}' declares productContexts: [${productContexts.join(', ')}] but is missing required scope '${scope}'`,
         missingEndpointPermissionFromScope: (scope, key) => `Endpoint module: '${key}' requires '${scope}' scope.`,
         missingRemotePermissionFromScope: (scope, key) => `Remote: '${key}' requires '${scope}' scope.`,
         deprecatedPermission: (element, value) => `There are deprecated scopes '${element}' in the manifest.yml file: '${value.join(', ')}'. You need to update this app to use new scopes and remove the deprecated scopes. Learn more at: https://go.atlassian.com/forge-permissions.`,
         deprecatedEgressPermission: (key) => `There are deprecated egress permission entries for '${key}' in the manifest.yml file`,
@@ -110,11 +111,9 @@
         jiraJqlFunction: {
             duplicateFunctionNames: (names) => `JQL function names must be unique. Found duplicates: ${names.join(', ')}.`
         },
         jiraActionValidator: {
-            limitPerActionType: (actionType, limit) => `Only ${limit} ${types_1.AllModuleTypes.JiraActionValidator} module is allowed per action type. Found multiple modules for action type: ${actionType}.`,
-            incompatibleModules: (otherModules) => `${types_1.AllModuleTypes.JiraActionValidator} modules can only be declared with page modules and core functions. Found incompatible modules: ${otherModules.join(', ')}.`,
-            tooManyModules: (totalModules, limit) => `Apps with ${types_1.AllModuleTypes.JiraActionValidator} modules can declare up to ${limit} additional modules. Found ${totalModules} total modules.`
+            limitPerActionType: (actionType, limit) => `Only ${limit} ${types_1.AllModuleTypes.JiraActionValidator} module is allowed per action type. Found multiple modules for action type: ${actionType}.`
         },
         jiraFullPageModule: {
             invalidRouteRegex: (pattern, keyName, index) => `The routePrefix '${pattern}' at index '${index}' for key '${keyName}' needs to be in a valid URL route between 1-255 characters and contain only URL safe characters such as: a-z, 0-9 and '\' and '-'.`,
             propertyUniqueness: (property, moduleKey, keys) => `${property} should be unique across all ${moduleKey} modules. Found duplicates: ${keys.join(', ')}`,
@@ -184,9 +183,10 @@
             missingRemote: () => `Missing remote in migration:dataResidency.`
         },
         globalUi: {
             invalidIcon: (icon, keyName, index) => `The icon '${icon}' at index '${index}' for key '${keyName}' needs to be a defined resource of file type svg.`,
-            renderMustBeNative: (keyName, index) => `The render property at index '${index}' for key '${keyName}' must be set to 'native' for global:ui modules.`
+            renderMustBeNative: (keyName, index) => `The render property at index '${index}' for key '${keyName}' must be set to 'native' for global:ui modules.`,
+            installationTargetRequired: () => `Apps using the global:ui module must set app.installationTarget to 'unit'.`
         }
     },
     resources: {
         missingResource: (folder, key) => `missing resource '${folder}' is being referenced by '${key}' in resources`,
Index: package/out/processor/index.js
===================================================================
--- package/out/processor/index.js
+++ package/out/processor/index.js
@@ -1,8 +1,9 @@
 "use strict";
 Object.defineProperty(exports, "__esModule", { value: true });
 const tslib_1 = require("tslib");
 tslib_1.__exportStar(require("./abstract-validation-processor"), exports);
+tslib_1.__exportStar(require("./agent-product-context-validation-processor"), exports);
 tslib_1.__exportStar(require("./basic-validation-processor"), exports);
 tslib_1.__exportStar(require("./full-validation-processor"), exports);
 tslib_1.__exportStar(require("./processor-interface"), exports);
 tslib_1.__exportStar(require("./product-trigger-validation-processor"), exports);
Index: package/out/validators/index.js
===================================================================
--- package/out/validators/index.js
+++ package/out/validators/index.js
@@ -10,8 +10,9 @@
 tslib_1.__exportStar(require("./resources-validator"), exports);
 tslib_1.__exportStar(require("./display-conditions-validator"), exports);
 tslib_1.__exportStar(require("./product-trigger-scopes-validator"), exports);
 tslib_1.__exportStar(require("./simple-trigger-scope-validator"), exports);
+tslib_1.__exportStar(require("./agent-product-context-scopes-validator"), exports);
 tslib_1.__exportStar(require("./providers-validator"), exports);
 tslib_1.__exportStar(require("./permissions-validator"), exports);
 tslib_1.__exportStar(require("./connect-remote-validator"), exports);
 tslib_1.__exportStar(require("./connect-authentication-validator"), exports);
Index: package/out/validators/modules-validator.js
===================================================================
--- package/out/validators/modules-validator.js
+++ package/out/validators/modules-validator.js
@@ -37,9 +37,9 @@
         }
         let validationErrors = [...this.connectModuleValidation(manifest)];
         if (manifest.typedContent.modules) {
             const { typedContent: { modules, connectModules, remotes, permissions, services, providers }, yamlContentByLine, filePath } = manifest;
-            validationErrors = validationErrors.concat(this.checkUnsupportedModules(manifest.typedContent.modules, yamlContentByLine), this.functionKeyLength(modules, yamlContentByLine), this.minimumModuleCountValidation(modules, yamlContentByLine), this.functionKeyDefinedValidation(modules, yamlContentByLine), this.endpointValidations(modules, yamlContentByLine, remotes, permissions?.scopes || [], services), this.duplicateModuleKeyValidation(modules, connectModules || {}, yamlContentByLine), this.functionHandlerValidation(modules, yamlContentByLine, filePath), (0, validate_workflow_1.validateJiraWorkflowValidator)(modules, yamlContentByLine), (0, validate_workflow_1.validateJiraWorkflowCondition)(modules, yamlContentByLine), (0, ui_modifications_1.validateUiModificationsModule)(modules, yamlContentByLine), (0, validate_full_admin_page_1.validateJiraFullAdminPage)(modules, yamlContentByLine), (0, validate_full_page_1.validateJiraFullPage)(modules, yamlContentByLine), (0, validate_full_page_module_1.validateJiraFullPageModule)(modules, yamlContentByLine), (0, validate_custom_field_1.validateJiraCustomField)(modules, yamlContentByLine), (0, confluence_1.validateConfluenceModules)(modules, yamlContentByLine), (0, bitbucket_1.validateBitbucketModules)(modules, yamlContentByLine), (0, validate_trigger_1.validateJiraTriggers)(modules, yamlContentByLine), (0, remote_1.validateRemoteModules)(modules, yamlContentByLine), (0, dataResidency_1.validateMigrationDataResidencyModule)(modules, remotes, yamlContentByLine), (0, validateModuleScopes_1.validateModuleScopes)(modules, yamlContentByLine, permissions), (0, rovo_1.validateRovoModules)(modules, yamlContentByLine), (0, automation_1.validateAutomationModules)(modules, yamlContentByLine), (0, validate_timetrackingprovider_module_1.validateJiraTimeTrackingModule)(modules, yamlContentByLine), (0, validate_command_1.validateJiraCommandModule)(modules, yamlContentByLine), (0, validate_action_validator_1.validateJiraActionValidator)(modules, yamlContentByLine), (0, validate_global_background_script_1.validateJiraGlobalBackgroundScript)(modules, yamlContentByLine), (0, graph_1.validateGraphModules)(modules, providers, yamlContentByLine), (0, validate_global_ui_1.validateGlobalUi)(modules, yamlContentByLine));
+            validationErrors = validationErrors.concat(this.checkUnsupportedModules(manifest.typedContent.modules, yamlContentByLine), this.functionKeyLength(modules, yamlContentByLine), this.minimumModuleCountValidation(modules, yamlContentByLine), this.functionKeyDefinedValidation(modules, yamlContentByLine), this.endpointValidations(modules, yamlContentByLine, remotes, permissions?.scopes || [], services), this.duplicateModuleKeyValidation(modules, connectModules || {}, yamlContentByLine), this.functionHandlerValidation(modules, yamlContentByLine, filePath), (0, validate_workflow_1.validateJiraWorkflowValidator)(modules, yamlContentByLine), (0, validate_workflow_1.validateJiraWorkflowCondition)(modules, yamlContentByLine), (0, ui_modifications_1.validateUiModificationsModule)(modules, yamlContentByLine), (0, validate_full_admin_page_1.validateJiraFullAdminPage)(modules, yamlContentByLine), (0, validate_full_page_1.validateJiraFullPage)(modules, yamlContentByLine), (0, validate_full_page_module_1.validateJiraFullPageModule)(modules, yamlContentByLine), (0, validate_custom_field_1.validateJiraCustomField)(modules, yamlContentByLine), (0, confluence_1.validateConfluenceModules)(modules, yamlContentByLine), (0, bitbucket_1.validateBitbucketModules)(modules, yamlContentByLine), (0, validate_trigger_1.validateJiraTriggers)(modules, yamlContentByLine), (0, remote_1.validateRemoteModules)(modules, yamlContentByLine), (0, dataResidency_1.validateMigrationDataResidencyModule)(modules, remotes, yamlContentByLine), (0, validateModuleScopes_1.validateModuleScopes)(modules, yamlContentByLine, permissions), (0, rovo_1.validateRovoModules)(modules, yamlContentByLine), (0, automation_1.validateAutomationModules)(modules, yamlContentByLine), (0, validate_timetrackingprovider_module_1.validateJiraTimeTrackingModule)(modules, yamlContentByLine), (0, validate_command_1.validateJiraCommandModule)(modules, yamlContentByLine), (0, validate_action_validator_1.validateJiraActionValidator)(modules, yamlContentByLine), (0, validate_global_background_script_1.validateJiraGlobalBackgroundScript)(modules, yamlContentByLine), (0, graph_1.validateGraphModules)(modules, providers, yamlContentByLine), (0, validate_global_ui_1.validateGlobalUi)(modules, manifest.typedContent.app, yamlContentByLine));
         }
         else {
             const { typedContent: { connectModules }, yamlContentByLine } = manifest;
             validationErrors = validationErrors.concat(this.duplicateModuleKeyValidation({}, connectModules || {}, yamlContentByLine));
Index: package/out/builder/processor-builder.js
===================================================================
--- package/out/builder/processor-builder.js
+++ package/out/builder/processor-builder.js
@@ -33,8 +33,10 @@
             case types_1.ValidationTypes.FORGE_REMOTE_COMPUTE:
                 return new remote_compute_validation_processor_1.RemoteComputeValidationProcessor();
             case types_1.ValidationTypes.PRODUCT_TRIGGER:
                 return new processor_1.ProductTriggerValidationProcessor();
+            case types_1.ValidationTypes.AGENT_PRODUCT_CONTEXT:
+                return new processor_1.AgentProductContextValidationProcessor();
             case types_1.ValidationTypes.DEPRECATED_CSP_METHOD:
                 return new deprecated_csp_method_validation_processor_1.DeprecatedCspMethodValidationProcessor();
             case types_1.ValidationTypes.DEPRECATED_EGRESS_PERMISSIONS:
                 return new deprecated_egress_permissions_validation_processor_1.DeprecatedEgressPermissionsValidationProcessor();
Index: package/out/validators/modules-validators/jira/validate-action-validator.js
===================================================================
--- package/out/validators/modules-validators/jira/validate-action-validator.js
+++ package/out/validators/modules-validators/jira/validate-action-validator.js
@@ -3,27 +3,15 @@
 exports.validateJiraActionValidator = void 0;
 const text_1 = require("../../../text");
 const utils_1 = require("../../../utils");
 const module_types_1 = require("../../../types/module-types");
-const PAGE_MODULE_TYPES = [
-    module_types_1.AllModuleTypes.JiraAdminPage,
-    module_types_1.AllModuleTypes.JiraProjectPage,
-    module_types_1.AllModuleTypes.JiraProjectSettingsPage,
-    module_types_1.AllModuleTypes.JiraGlobalPage,
-    module_types_1.AllModuleTypes.JiraPersonalSettingsPage
-];
 const MAX_JIRA_ACTION_VALIDATORS = 1;
-const MAX_ALLOWED_MODULES = MAX_JIRA_ACTION_VALIDATORS + 1;
 function validateJiraActionValidator(modules, yamlContentByLine) {
     const actionValidatorModules = getActionValidatorModules(modules);
     if (actionValidatorModules.length === 0) {
         return [];
     }
-    return [
-        ...validateUniqueActionTypes(actionValidatorModules, yamlContentByLine),
-        ...validateCompatibleModules(modules, actionValidatorModules, yamlContentByLine),
-        ...validateModuleLimit(modules, actionValidatorModules, yamlContentByLine)
-    ];
+    return [...validateUniqueActionTypes(actionValidatorModules, yamlContentByLine)];
 }
 exports.validateJiraActionValidator = validateJiraActionValidator;
 function getActionValidatorModules(modules) {
     const actionValidators = modules[module_types_1.AllModuleTypes.JiraActionValidator];
@@ -51,34 +39,4 @@
     return Array.from(actionTypeGroups.entries())
         .filter(([, modules]) => modules.length > MAX_JIRA_ACTION_VALIDATORS)
         .flatMap(([actionType, modules]) => modules.map((module) => createValidationError(text_1.errors.modules.jiraActionValidator.limitPerActionType(actionType, MAX_JIRA_ACTION_VALIDATORS), module.key, yamlContentByLine)));
 }
-function validateCompatibleModules(modules, actionValidatorModules, yamlContentByLine) {
-    const incompatibleModules = getIncompatibleModules(modules);
-    if (incompatibleModules.length === 0) {
-        return [];
-    }
-    return actionValidatorModules.map((module) => createValidationError(text_1.errors.modules.jiraActionValidator.incompatibleModules(incompatibleModules), module.key, yamlContentByLine));
-}
-function getIncompatibleModules(modules) {
-    const moduleTypes = Object.keys(modules);
-    const otherModules = moduleTypes.filter((type) => type !== module_types_1.AllModuleTypes.JiraActionValidator);
-    return otherModules.filter((moduleType) => {
-        const isPageModule = PAGE_MODULE_TYPES.includes(moduleType);
-        const isCoreFunction = moduleType === module_types_1.AllModuleTypes.CoreFunction;
-        return !isPageModule && !isCoreFunction;
-    });
-}
-function validateModuleLimit(modules, actionValidatorModules, yamlContentByLine) {
-    const nonCoreModuleCount = getNonCoreModuleCount(modules);
-    if (nonCoreModuleCount <= MAX_ALLOWED_MODULES) {
-        return [];
-    }
-    return actionValidatorModules.map((module) => createValidationError(text_1.errors.modules.jiraActionValidator.tooManyModules(nonCoreModuleCount, MAX_JIRA_ACTION_VALIDATORS), module.key, yamlContentByLine));
-}
-function getNonCoreModuleCount(modules) {
-    return Object.entries(modules)
-        .filter(([moduleType]) => !moduleType.startsWith('core:'))
-        .reduce((total, [, moduleArray]) => {
-        return total + (Array.isArray(moduleArray) ? moduleArray.length : 0);
-    }, 0);
-}
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
@@ -5,12 +5,23 @@
 const types_1 = require("../../../types");
 const utils_1 = require("../../../utils");
 const validateGlobalModules_1 = require("../../../utils/global/validateGlobalModules");
 const errorMessages = text_1.errors.modules.globalUi;
-const validateGlobalUi = (modules, yamlContentByLine) => {
+const validateGlobalUi = (modules, app, yamlContentByLine) => {
     const validationErrors = [];
     const moduleType = types_1.AllModuleTypes.GlobalUi;
     const globalUiModules = modules[moduleType] || [];
+    if (globalUiModules.length === 0) {
+        return validationErrors;
+    }
+    if (app.installationTarget !== 'unit') {
+        validationErrors.push({
+            message: errorMessages.installationTargetRequired(),
+            reference: text_1.References.Modules,
+            level: 'error',
+            ...(0, utils_1.findPosition)(app.installationTarget ? 'installationTarget' : 'app', yamlContentByLine)
+        });
+    }
     if (globalUiModules.length > 1) {
         validationErrors.push({
             message: text_1.errors.modules.singleEntryOfTheModule(moduleType),
             reference: text_1.References.Modules,
Index: package/out/types/validation-types.js
===================================================================
--- package/out/types/validation-types.js
+++ package/out/types/validation-types.js
@@ -5,8 +5,9 @@
 (function (ValidationTypes) {
     ValidationTypes["BASIC"] = "basic";
     ValidationTypes["FULL"] = "full";
     ValidationTypes["PRODUCT_TRIGGER"] = "product-trigger";
+    ValidationTypes["AGENT_PRODUCT_CONTEXT"] = "agent-product-context";
     ValidationTypes["DEPRECATED_CSP_METHOD"] = "deprecated-csp-method";
     ValidationTypes["FORGE_REMOTE_COMPUTE"] = "forge-remote-compute";
     ValidationTypes["DEPRECATED_EGRESS_PERMISSIONS"] = "deprecated-egress-permissions";
 })(ValidationTypes = exports.ValidationTypes || (exports.ValidationTypes = {}));
File too large for inline diff
Index: package/package.json
===================================================================
--- package/package.json
+++ package/package.json
@@ -1,7 +1,7 @@
 {
   "name": "@forge/manifest",
-  "version": "12.6.0-next.1",
+  "version": "12.6.0-next.2",
   "description": "Definitions and validations of the Forge manifest",
   "main": "out/index.js",
   "scripts": {
     "build": "yarn run compile",
Index: package/out/scopes/shipyard-scopes.json
===================================================================
--- package/out/scopes/shipyard-scopes.json
+++ package/out/scopes/shipyard-scopes.json
@@ -133,8 +133,9 @@
     "read:airtrack-object:jira",
     "read:analytics.content:confluence",
     "read:app-data:confluence",
     "read:app-data:jira",
+    "read:app-global-channel:realtime",
     "read:app-notification:confluence",
     "read:app-notification:jira",
     "read:app-system-token",
     "read:app-user-token",
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/processor/index.d.ts.map
===================================================================
--- package/out/processor/index.d.ts.map
+++ package/out/processor/index.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/processor/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,wCAAwC,CAAC"}
\ No newline at end of file
+{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/processor/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,wCAAwC,CAAC"}
\ No newline at end of file
Index: package/out/validators/index.d.ts.map
===================================================================
--- package/out/validators/index.d.ts.map
+++ package/out/validators/index.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validators/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oCAAoC,CAAC;AACnD,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC"}
\ No newline at end of file
+{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validators/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oCAAoC,CAAC;AACnD,cAAc,kCAAkC,CAAC;AACjD,cAAc,0CAA0C,CAAC;AACzD,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC"}
\ No newline at end of file
Index: package/out/builder/processor-builder.d.ts.map
===================================================================
--- package/out/builder/processor-builder.d.ts.map
+++ package/out/builder/processor-builder.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"processor-builder.d.ts","sourceRoot":"","sources":["../../src/builder/processor-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAGL,kBAAkB,EAEnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAKvD,qBAAa,gBAAiB,YAAW,gBAAgB,CAAC,kBAAkB,CAAC,cAAc,GAAG,mBAAmB,CAAC,CAAC;IACjH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAoF;IAExG,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,WAAW,CAAmB;IAEtC,OAAO;IAIP,MAAM,CAAC,QAAQ,IAAI,gBAAgB;IAInC,cAAc,CAAC,IAAI,EAAE,eAAe,GAAG,gBAAgB;IAKvD,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,gBAAgB;IAKnD,OAAO,CAAC,aAAa;IAmBrB,OAAO,CAAC,cAAc;IAItB,KAAK,IAAI,kBAAkB,CAAC,cAAc,GAAG,mBAAmB,CAAC;CAWlE"}
\ No newline at end of file
+{"version":3,"file":"processor-builder.d.ts","sourceRoot":"","sources":["../../src/builder/processor-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAIL,kBAAkB,EAEnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAKvD,qBAAa,gBAAiB,YAAW,gBAAgB,CAAC,kBAAkB,CAAC,cAAc,GAAG,mBAAmB,CAAC,CAAC;IACjH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAoF;IAExG,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,WAAW,CAAmB;IAEtC,OAAO;IAIP,MAAM,CAAC,QAAQ,IAAI,gBAAgB;IAInC,cAAc,CAAC,IAAI,EAAE,eAAe,GAAG,gBAAgB;IAKvD,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,gBAAgB;IAKnD,OAAO,CAAC,aAAa;IAqBrB,OAAO,CAAC,cAAc;IAItB,KAAK,IAAI,kBAAkB,CAAC,cAAc,GAAG,mBAAmB,CAAC;CAWlE"}
\ No newline at end of file
Index: package/out/validators/modules-validators/jira/validate-action-validator.d.ts.map
===================================================================
--- package/out/validators/modules-validators/jira/validate-action-validator.d.ts.map
+++ package/out/validators/modules-validators/jira/validate-action-validator.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"validate-action-validator.d.ts","sourceRoot":"","sources":["../../../../src/validators/modules-validators/jira/validate-action-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AA8BnD,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,OAAO,EAChB,iBAAiB,EAAE,MAAM,EAAE,GAAG,SAAS,GACtC,eAAe,EAAE,CAYnB"}
\ No newline at end of file
+{"version":3,"file":"validate-action-validator.d.ts","sourceRoot":"","sources":["../../../../src/validators/modules-validators/jira/validate-action-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAkBnD,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,OAAO,EAChB,iBAAiB,EAAE,MAAM,EAAE,GAAG,SAAS,GACtC,eAAe,EAAE,CAQnB"}
\ No newline at end of file
Index: package/out/validators/modules-validators/global/validate-global-ui.d.ts.map
===================================================================
--- package/out/validators/modules-validators/global/validate-global-ui.d.ts.map
+++ package/out/validators/modules-validators/global/validate-global-ui.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"validate-global-ui.d.ts","sourceRoot":"","sources":["../../../../src/validators/modules-validators/global/validate-global-ui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,EAAkB,eAAe,EAAE,MAAM,gBAAgB,CAAC;AA0BjE,eAAO,MAAM,gBAAgB,YAAa,OAAO,sBAAsB,MAAM,EAAE,KAAG,eAAe,EA6ChG,CAAC"}
\ No newline at end of file
+{"version":3,"file":"validate-global-ui.d.ts","sourceRoot":"","sources":["../../../../src/validators/modules-validators/global/validate-global-ui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,EAAkB,eAAe,EAAE,MAAM,gBAAgB,CAAC;AA6BjE,eAAO,MAAM,gBAAgB,YAAa,OAAO,OAAO,GAAG,sBAAsB,MAAM,EAAE,KAAG,eAAe,EA4D1G,CAAC"}
\ No newline at end of file
Index: package/out/types/validation-types.d.ts.map
===================================================================
--- package/out/types/validation-types.d.ts.map
+++ package/out/types/validation-types.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"validation-types.d.ts","sourceRoot":"","sources":["../../src/types/validation-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3C,oBAAY,eAAe;IACzB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,eAAe,oBAAoB;IACnC,qBAAqB,0BAA0B;IAC/C,oBAAoB,yBAAyB;IAC7C,6BAA6B,kCAAkC;CAChE;AAKD,MAAM,WAAW,4BAA4B;IAC3C,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;CACvC"}
\ No newline at end of file
+{"version":3,"file":"validation-types.d.ts","sourceRoot":"","sources":["../../src/types/validation-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3C,oBAAY,eAAe;IACzB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,eAAe,oBAAoB;IACnC,qBAAqB,0BAA0B;IAC/C,qBAAqB,0BAA0B;IAC/C,oBAAoB,yBAAyB;IAC7C,6BAA6B,kCAAkC;CAChE;AAKD,MAAM,WAAW,4BAA4B;IAC3C,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;CACvC"}
\ 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
@@ -19,8 +19,9 @@
     };
     permissions: {
         invalidPermission: (element: string, value: string) => string;
         missingPermissionFromScope: (scope: string, event: string) => string;
+        missingPermissionFromAgentProductContext: (scope: string, agentKey: string, productContexts: string[]) => string;
         missingEndpointPermissionFromScope: (scope: string, key: string) => string;
         missingRemotePermissionFromScope: (scope: string, key: string) => string;
         deprecatedPermission: (element: string, value: string[]) => string;
         deprecatedEgressPermission: (key: string) => string;
@@ -97,10 +98,8 @@
             duplicateFunctionNames: (names: string[]) => string;
         };
         jiraActionValidator: {
             limitPerActionType: (actionType: string, limit: number) => string;
-            incompatibleModules: (otherModules: string[]) => string;
-            tooManyModules: (totalModules: number, limit: number) => string;
         };
         jiraFullPageModule: {
             invalidRouteRegex: (pattern: string, keyName: string, index: number) => string;
             propertyUniqueness: (property: string, moduleKey: string, keys: string[]) => string;
@@ -171,8 +170,9 @@
         };
         globalUi: {
             invalidIcon: (icon: string, keyName: string, index: number) => string;
             renderMustBeNative: (keyName: string, index: number) => string;
+            installationTargetRequired: () => string;
         };
     };
     resources: {
         missingResource: (folder: string, key: string) => string;
Index: package/out/processor/index.d.ts
===================================================================
--- package/out/processor/index.d.ts
+++ package/out/processor/index.d.ts
@@ -1,5 +1,6 @@
 export * from './abstract-validation-processor';
+export * from './agent-product-context-validation-processor';
 export * from './basic-validation-processor';
 export * from './full-validation-processor';
 export * from './processor-interface';
 export * from './product-trigger-validation-processor';
Index: package/out/validators/index.d.ts
===================================================================
--- package/out/validators/index.d.ts
+++ package/out/validators/index.d.ts
@@ -7,8 +7,9 @@
 export * from './resources-validator';
 export * from './display-conditions-validator';
 export * from './product-trigger-scopes-validator';
 export * from './simple-trigger-scope-validator';
+export * from './agent-product-context-scopes-validator';
 export * from './providers-validator';
 export * from './permissions-validator';
 export * from './connect-remote-validator';
 export * from './connect-authentication-validator';
File too large for inline diff
Index: package/out/validators/modules-validators/global/validate-global-ui.d.ts
===================================================================
--- package/out/validators/modules-validators/global/validate-global-ui.d.ts
+++ package/out/validators/modules-validators/global/validate-global-ui.d.ts
@@ -1,4 +1,4 @@
-import { Modules } from '../../../schema/manifest';
+import { App, Modules } from '../../../schema/manifest';
 import { ValidationError } from '../../../types';
-export declare const validateGlobalUi: (modules: Modules, yamlContentByLine?: string[]) => ValidationError[];
+export declare const validateGlobalUi: (modules: Modules, app: App, yamlContentByLine?: string[]) => ValidationError[];
 //# sourceMappingURL=validate-global-ui.d.ts.map
\ No newline at end of file
Index: package/out/types/validation-types.d.ts
===================================================================
--- package/out/types/validation-types.d.ts
+++ package/out/types/validation-types.d.ts
@@ -2,8 +2,9 @@
 export declare enum ValidationTypes {
     BASIC = "basic",
     FULL = "full",
     PRODUCT_TRIGGER = "product-trigger",
+    AGENT_PRODUCT_CONTEXT = "agent-product-context",
     DEPRECATED_CSP_METHOD = "deprecated-csp-method",
     FORGE_REMOTE_COMPUTE = "forge-remote-compute",
     DEPRECATED_EGRESS_PERMISSIONS = "deprecated-egress-permissions"
 }