codika 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +68 -0
- package/dist/cli/commands/completion.d.ts +15 -0
- package/dist/cli/commands/completion.d.ts.map +1 -0
- package/dist/cli/commands/completion.js +810 -0
- package/dist/cli/commands/completion.js.map +1 -0
- package/dist/cli/commands/config/clear.d.ts +12 -0
- package/dist/cli/commands/config/clear.d.ts.map +1 -0
- package/dist/cli/commands/config/clear.js +35 -0
- package/dist/cli/commands/config/clear.js.map +1 -0
- package/dist/cli/commands/config/index.d.ts +15 -0
- package/dist/cli/commands/config/index.d.ts.map +1 -0
- package/dist/cli/commands/config/index.js +21 -0
- package/dist/cli/commands/config/index.js.map +1 -0
- package/dist/cli/commands/config/set.d.ts +41 -0
- package/dist/cli/commands/config/set.d.ts.map +1 -0
- package/dist/cli/commands/config/set.js +185 -0
- package/dist/cli/commands/config/set.js.map +1 -0
- package/dist/cli/commands/config/show.d.ts +12 -0
- package/dist/cli/commands/config/show.d.ts.map +1 -0
- package/dist/cli/commands/config/show.js +45 -0
- package/dist/cli/commands/config/show.js.map +1 -0
- package/dist/cli/commands/deploy/documents.d.ts +12 -0
- package/dist/cli/commands/deploy/documents.d.ts.map +1 -0
- package/dist/cli/commands/deploy/documents.js +217 -0
- package/dist/cli/commands/deploy/documents.js.map +1 -0
- package/dist/cli/commands/deploy/index.d.ts +14 -0
- package/dist/cli/commands/deploy/index.d.ts.map +1 -0
- package/dist/cli/commands/deploy/index.js +21 -0
- package/dist/cli/commands/deploy/index.js.map +1 -0
- package/dist/cli/commands/deploy/process-data-ingestion.d.ts +13 -0
- package/dist/cli/commands/deploy/process-data-ingestion.d.ts.map +1 -0
- package/dist/cli/commands/deploy/process-data-ingestion.js +226 -0
- package/dist/cli/commands/deploy/process-data-ingestion.js.map +1 -0
- package/dist/cli/commands/deploy/use-case.d.ts +9 -0
- package/dist/cli/commands/deploy/use-case.d.ts.map +1 -0
- package/dist/cli/commands/deploy/use-case.js +212 -0
- package/dist/cli/commands/deploy/use-case.js.map +1 -0
- package/dist/cli/commands/get/execution.d.ts +9 -0
- package/dist/cli/commands/get/execution.d.ts.map +1 -0
- package/dist/cli/commands/get/execution.js +159 -0
- package/dist/cli/commands/get/execution.js.map +1 -0
- package/dist/cli/commands/get/index.d.ts +13 -0
- package/dist/cli/commands/get/index.d.ts.map +1 -0
- package/dist/cli/commands/get/index.js +20 -0
- package/dist/cli/commands/get/index.js.map +1 -0
- package/dist/cli/commands/get/skills.d.ts +15 -0
- package/dist/cli/commands/get/skills.d.ts.map +1 -0
- package/dist/cli/commands/get/skills.js +135 -0
- package/dist/cli/commands/get/skills.js.map +1 -0
- package/dist/cli/commands/get/use-case.d.ts +9 -0
- package/dist/cli/commands/get/use-case.d.ts.map +1 -0
- package/dist/cli/commands/get/use-case.js +186 -0
- package/dist/cli/commands/get/use-case.js.map +1 -0
- package/dist/cli/commands/init.d.ts +14 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +347 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/integration/delete.d.ts +13 -0
- package/dist/cli/commands/integration/delete.d.ts.map +1 -0
- package/dist/cli/commands/integration/delete.js +140 -0
- package/dist/cli/commands/integration/delete.js.map +1 -0
- package/dist/cli/commands/integration/index.d.ts +13 -0
- package/dist/cli/commands/integration/index.d.ts.map +1 -0
- package/dist/cli/commands/integration/index.js +20 -0
- package/dist/cli/commands/integration/index.js.map +1 -0
- package/dist/cli/commands/integration/list.d.ts +13 -0
- package/dist/cli/commands/integration/list.d.ts.map +1 -0
- package/dist/cli/commands/integration/list.js +129 -0
- package/dist/cli/commands/integration/list.js.map +1 -0
- package/dist/cli/commands/integration/set.d.ts +13 -0
- package/dist/cli/commands/integration/set.d.ts.map +1 -0
- package/dist/cli/commands/integration/set.js +253 -0
- package/dist/cli/commands/integration/set.js.map +1 -0
- package/dist/cli/commands/list/executions.d.ts +12 -0
- package/dist/cli/commands/list/executions.d.ts.map +1 -0
- package/dist/cli/commands/list/executions.js +168 -0
- package/dist/cli/commands/list/executions.js.map +1 -0
- package/dist/cli/commands/list/index.d.ts +11 -0
- package/dist/cli/commands/list/index.d.ts.map +1 -0
- package/dist/cli/commands/list/index.js +14 -0
- package/dist/cli/commands/list/index.js.map +1 -0
- package/dist/cli/commands/logout.d.ts +12 -0
- package/dist/cli/commands/logout.d.ts.map +1 -0
- package/dist/cli/commands/logout.js +58 -0
- package/dist/cli/commands/logout.js.map +1 -0
- package/dist/cli/commands/project/create.d.ts +8 -0
- package/dist/cli/commands/project/create.d.ts.map +1 -0
- package/dist/cli/commands/project/create.js +109 -0
- package/dist/cli/commands/project/create.js.map +1 -0
- package/dist/cli/commands/project/index.d.ts +12 -0
- package/dist/cli/commands/project/index.d.ts.map +1 -0
- package/dist/cli/commands/project/index.js +15 -0
- package/dist/cli/commands/project/index.js.map +1 -0
- package/dist/cli/commands/publish.d.ts +12 -0
- package/dist/cli/commands/publish.d.ts.map +1 -0
- package/dist/cli/commands/publish.js +152 -0
- package/dist/cli/commands/publish.js.map +1 -0
- package/dist/cli/commands/redeploy.d.ts +11 -0
- package/dist/cli/commands/redeploy.d.ts.map +1 -0
- package/dist/cli/commands/redeploy.js +166 -0
- package/dist/cli/commands/redeploy.js.map +1 -0
- package/dist/cli/commands/status.d.ts +63 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +290 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/trigger.d.ts +8 -0
- package/dist/cli/commands/trigger.d.ts.map +1 -0
- package/dist/cli/commands/trigger.js +247 -0
- package/dist/cli/commands/trigger.js.map +1 -0
- package/dist/cli/commands/use.d.ts +13 -0
- package/dist/cli/commands/use.d.ts.map +1 -0
- package/dist/cli/commands/use.js +92 -0
- package/dist/cli/commands/use.js.map +1 -0
- package/dist/cli/commands/verify/index.d.ts +13 -0
- package/dist/cli/commands/verify/index.d.ts.map +1 -0
- package/dist/cli/commands/verify/index.js +18 -0
- package/dist/cli/commands/verify/index.js.map +1 -0
- package/dist/cli/commands/verify/use-case.d.ts +23 -0
- package/dist/cli/commands/verify/use-case.d.ts.map +1 -0
- package/dist/cli/commands/verify/use-case.js +94 -0
- package/dist/cli/commands/verify/use-case.js.map +1 -0
- package/dist/cli/commands/verify/workflow.d.ts +22 -0
- package/dist/cli/commands/verify/workflow.d.ts.map +1 -0
- package/dist/cli/commands/verify/workflow.js +82 -0
- package/dist/cli/commands/verify/workflow.js.map +1 -0
- package/dist/cli/commands/whoami.d.ts +13 -0
- package/dist/cli/commands/whoami.d.ts.map +1 -0
- package/dist/cli/commands/whoami.js +126 -0
- package/dist/cli/commands/whoami.js.map +1 -0
- package/dist/cli/index.d.ts +24 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +90 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/templates/claude-md-template.d.ts +12 -0
- package/dist/cli/templates/claude-md-template.d.ts.map +1 -0
- package/dist/cli/templates/claude-md-template.js +162 -0
- package/dist/cli/templates/claude-md-template.js.map +1 -0
- package/dist/cli/templates/config-template.d.ts +18 -0
- package/dist/cli/templates/config-template.d.ts.map +1 -0
- package/dist/cli/templates/config-template.js +350 -0
- package/dist/cli/templates/config-template.js.map +1 -0
- package/dist/cli/templates/skill-templates.d.ts +24 -0
- package/dist/cli/templates/skill-templates.d.ts.map +1 -0
- package/dist/cli/templates/skill-templates.js +117 -0
- package/dist/cli/templates/skill-templates.js.map +1 -0
- package/dist/cli/templates/slug.d.ts +9 -0
- package/dist/cli/templates/slug.d.ts.map +1 -0
- package/dist/cli/templates/slug.js +17 -0
- package/dist/cli/templates/slug.js.map +1 -0
- package/dist/cli/templates/workflow-templates.d.ts +693 -0
- package/dist/cli/templates/workflow-templates.d.ts.map +1 -0
- package/dist/cli/templates/workflow-templates.js +516 -0
- package/dist/cli/templates/workflow-templates.js.map +1 -0
- package/dist/cli/utils/output.d.ts +65 -0
- package/dist/cli/utils/output.d.ts.map +1 -0
- package/dist/cli/utils/output.js +188 -0
- package/dist/cli/utils/output.js.map +1 -0
- package/dist/cli/utils/validation-output.d.ts +21 -0
- package/dist/cli/utils/validation-output.d.ts.map +1 -0
- package/dist/cli/utils/validation-output.js +204 -0
- package/dist/cli/utils/validation-output.js.map +1 -0
- package/dist/data/integration-fields.d.ts +27 -0
- package/dist/data/integration-fields.d.ts.map +1 -0
- package/dist/data/integration-fields.js +361 -0
- package/dist/data/integration-fields.js.map +1 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +39 -0
- package/dist/index.js.map +1 -0
- package/dist/types/process-types.d.ts +740 -0
- package/dist/types/process-types.d.ts.map +1 -0
- package/dist/types/process-types.js +22 -0
- package/dist/types/process-types.js.map +1 -0
- package/dist/utils/config.d.ts +127 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +315 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/data-ingestion-deploy-client.d.ts +53 -0
- package/dist/utils/data-ingestion-deploy-client.d.ts.map +1 -0
- package/dist/utils/data-ingestion-deploy-client.js +63 -0
- package/dist/utils/data-ingestion-deploy-client.js.map +1 -0
- package/dist/utils/data-ingestion-deployer.d.ts +78 -0
- package/dist/utils/data-ingestion-deployer.d.ts.map +1 -0
- package/dist/utils/data-ingestion-deployer.js +119 -0
- package/dist/utils/data-ingestion-deployer.js.map +1 -0
- package/dist/utils/deploy-client.d.ts +55 -0
- package/dist/utils/deploy-client.d.ts.map +1 -0
- package/dist/utils/deploy-client.js +73 -0
- package/dist/utils/deploy-client.js.map +1 -0
- package/dist/utils/deployment-archiver.d.ts +110 -0
- package/dist/utils/deployment-archiver.d.ts.map +1 -0
- package/dist/utils/deployment-archiver.js +158 -0
- package/dist/utils/deployment-archiver.js.map +1 -0
- package/dist/utils/document-deploy-client.d.ts +41 -0
- package/dist/utils/document-deploy-client.d.ts.map +1 -0
- package/dist/utils/document-deploy-client.js +46 -0
- package/dist/utils/document-deploy-client.js.map +1 -0
- package/dist/utils/encryption.d.ts +85 -0
- package/dist/utils/encryption.d.ts.map +1 -0
- package/dist/utils/encryption.js +162 -0
- package/dist/utils/encryption.js.map +1 -0
- package/dist/utils/execution-client.d.ts +71 -0
- package/dist/utils/execution-client.d.ts.map +1 -0
- package/dist/utils/execution-client.js +56 -0
- package/dist/utils/execution-client.js.map +1 -0
- package/dist/utils/integration-client.d.ts +134 -0
- package/dist/utils/integration-client.d.ts.map +1 -0
- package/dist/utils/integration-client.js +109 -0
- package/dist/utils/integration-client.js.map +1 -0
- package/dist/utils/list-executions-client.d.ts +47 -0
- package/dist/utils/list-executions-client.d.ts.map +1 -0
- package/dist/utils/list-executions-client.js +50 -0
- package/dist/utils/list-executions-client.js.map +1 -0
- package/dist/utils/metadata-client.d.ts +90 -0
- package/dist/utils/metadata-client.d.ts.map +1 -0
- package/dist/utils/metadata-client.js +66 -0
- package/dist/utils/metadata-client.js.map +1 -0
- package/dist/utils/project-client.d.ts +70 -0
- package/dist/utils/project-client.d.ts.map +1 -0
- package/dist/utils/project-client.js +63 -0
- package/dist/utils/project-client.js.map +1 -0
- package/dist/utils/project-json.d.ts +71 -0
- package/dist/utils/project-json.d.ts.map +1 -0
- package/dist/utils/project-json.js +129 -0
- package/dist/utils/project-json.js.map +1 -0
- package/dist/utils/publish-client.d.ts +53 -0
- package/dist/utils/publish-client.d.ts.map +1 -0
- package/dist/utils/publish-client.js +64 -0
- package/dist/utils/publish-client.js.map +1 -0
- package/dist/utils/redeploy-client.d.ts +39 -0
- package/dist/utils/redeploy-client.d.ts.map +1 -0
- package/dist/utils/redeploy-client.js +51 -0
- package/dist/utils/redeploy-client.js.map +1 -0
- package/dist/utils/skill-parser.d.ts +52 -0
- package/dist/utils/skill-parser.d.ts.map +1 -0
- package/dist/utils/skill-parser.js +127 -0
- package/dist/utils/skill-parser.js.map +1 -0
- package/dist/utils/skills-client.d.ts +39 -0
- package/dist/utils/skills-client.d.ts.map +1 -0
- package/dist/utils/skills-client.js +32 -0
- package/dist/utils/skills-client.js.map +1 -0
- package/dist/utils/trigger-client.d.ts +78 -0
- package/dist/utils/trigger-client.d.ts.map +1 -0
- package/dist/utils/trigger-client.js +81 -0
- package/dist/utils/trigger-client.js.map +1 -0
- package/dist/utils/use-case-deployer.d.ts +93 -0
- package/dist/utils/use-case-deployer.d.ts.map +1 -0
- package/dist/utils/use-case-deployer.js +270 -0
- package/dist/utils/use-case-deployer.js.map +1 -0
- package/dist/utils/version-manager.d.ts +63 -0
- package/dist/utils/version-manager.d.ts.map +1 -0
- package/dist/utils/version-manager.js +91 -0
- package/dist/utils/version-manager.js.map +1 -0
- package/dist/utils/workflow-encoding.d.ts +26 -0
- package/dist/utils/workflow-encoding.d.ts.map +1 -0
- package/dist/utils/workflow-encoding.js +41 -0
- package/dist/utils/workflow-encoding.js.map +1 -0
- package/dist/validation/fixer.d.ts +56 -0
- package/dist/validation/fixer.d.ts.map +1 -0
- package/dist/validation/fixer.js +168 -0
- package/dist/validation/fixer.js.map +1 -0
- package/dist/validation/rules/codika-init-required.d.ts +18 -0
- package/dist/validation/rules/codika-init-required.d.ts.map +1 -0
- package/dist/validation/rules/codika-init-required.js +70 -0
- package/dist/validation/rules/codika-init-required.js.map +1 -0
- package/dist/validation/rules/codika-submit-result.d.ts +22 -0
- package/dist/validation/rules/codika-submit-result.d.ts.map +1 -0
- package/dist/validation/rules/codika-submit-result.js +144 -0
- package/dist/validation/rules/codika-submit-result.js.map +1 -0
- package/dist/validation/rules/error-branch-required.d.ts +24 -0
- package/dist/validation/rules/error-branch-required.d.ts.map +1 -0
- package/dist/validation/rules/error-branch-required.js +103 -0
- package/dist/validation/rules/error-branch-required.js.map +1 -0
- package/dist/validation/rules/index.d.ts +18 -0
- package/dist/validation/rules/index.d.ts.map +1 -0
- package/dist/validation/rules/index.js +28 -0
- package/dist/validation/rules/index.js.map +1 -0
- package/dist/validation/rules/schedule-webhook-convergence.d.ts +24 -0
- package/dist/validation/rules/schedule-webhook-convergence.d.ts.map +1 -0
- package/dist/validation/rules/schedule-webhook-convergence.js +129 -0
- package/dist/validation/rules/schedule-webhook-convergence.js.map +1 -0
- package/dist/validation/rules/subworkflow-min-params.d.ts +21 -0
- package/dist/validation/rules/subworkflow-min-params.d.ts.map +1 -0
- package/dist/validation/rules/subworkflow-min-params.js +84 -0
- package/dist/validation/rules/subworkflow-min-params.js.map +1 -0
- package/dist/validation/runner.d.ts +43 -0
- package/dist/validation/runner.d.ts.map +1 -0
- package/dist/validation/runner.js +335 -0
- package/dist/validation/runner.js.map +1 -0
- package/dist/validation/types.d.ts +155 -0
- package/dist/validation/types.d.ts.map +1 -0
- package/dist/validation/types.js +8 -0
- package/dist/validation/types.js.map +1 -0
- package/dist/validation/use-case-scripts/calledby-consistency.d.ts +23 -0
- package/dist/validation/use-case-scripts/calledby-consistency.d.ts.map +1 -0
- package/dist/validation/use-case-scripts/calledby-consistency.js +236 -0
- package/dist/validation/use-case-scripts/calledby-consistency.js.map +1 -0
- package/dist/validation/use-case-scripts/config-exports.d.ts +17 -0
- package/dist/validation/use-case-scripts/config-exports.d.ts.map +1 -0
- package/dist/validation/use-case-scripts/config-exports.js +93 -0
- package/dist/validation/use-case-scripts/config-exports.js.map +1 -0
- package/dist/validation/use-case-scripts/custom-integration-schema.d.ts +21 -0
- package/dist/validation/use-case-scripts/custom-integration-schema.d.ts.map +1 -0
- package/dist/validation/use-case-scripts/custom-integration-schema.js +378 -0
- package/dist/validation/use-case-scripts/custom-integration-schema.js.map +1 -0
- package/dist/validation/use-case-scripts/index.d.ts +27 -0
- package/dist/validation/use-case-scripts/index.d.ts.map +1 -0
- package/dist/validation/use-case-scripts/index.js +52 -0
- package/dist/validation/use-case-scripts/index.js.map +1 -0
- package/dist/validation/use-case-scripts/integration-inheritance.d.ts +35 -0
- package/dist/validation/use-case-scripts/integration-inheritance.d.ts.map +1 -0
- package/dist/validation/use-case-scripts/integration-inheritance.js +348 -0
- package/dist/validation/use-case-scripts/integration-inheritance.js.map +1 -0
- package/dist/validation/use-case-scripts/schema-types.d.ts +21 -0
- package/dist/validation/use-case-scripts/schema-types.d.ts.map +1 -0
- package/dist/validation/use-case-scripts/schema-types.js +134 -0
- package/dist/validation/use-case-scripts/schema-types.js.map +1 -0
- package/dist/validation/use-case-scripts/skill-consistency.d.ts +21 -0
- package/dist/validation/use-case-scripts/skill-consistency.d.ts.map +1 -0
- package/dist/validation/use-case-scripts/skill-consistency.js +180 -0
- package/dist/validation/use-case-scripts/skill-consistency.js.map +1 -0
- package/dist/validation/use-case-scripts/subworkflow-references.d.ts +22 -0
- package/dist/validation/use-case-scripts/subworkflow-references.d.ts.map +1 -0
- package/dist/validation/use-case-scripts/subworkflow-references.js +139 -0
- package/dist/validation/use-case-scripts/subworkflow-references.js.map +1 -0
- package/dist/validation/use-case-scripts/trigger-type-consistency.d.ts +25 -0
- package/dist/validation/use-case-scripts/trigger-type-consistency.d.ts.map +1 -0
- package/dist/validation/use-case-scripts/trigger-type-consistency.js +265 -0
- package/dist/validation/use-case-scripts/trigger-type-consistency.js.map +1 -0
- package/dist/validation/use-case-scripts/trigger-types.d.ts +20 -0
- package/dist/validation/use-case-scripts/trigger-types.d.ts.map +1 -0
- package/dist/validation/use-case-scripts/trigger-types.js +177 -0
- package/dist/validation/use-case-scripts/trigger-types.js.map +1 -0
- package/dist/validation/use-case-scripts/triggers-required.d.ts +23 -0
- package/dist/validation/use-case-scripts/triggers-required.d.ts.map +1 -0
- package/dist/validation/use-case-scripts/triggers-required.js +111 -0
- package/dist/validation/use-case-scripts/triggers-required.js.map +1 -0
- package/dist/validation/use-case-scripts/webhook-path-consistency.d.ts +28 -0
- package/dist/validation/use-case-scripts/webhook-path-consistency.d.ts.map +1 -0
- package/dist/validation/use-case-scripts/webhook-path-consistency.js +288 -0
- package/dist/validation/use-case-scripts/webhook-path-consistency.js.map +1 -0
- package/dist/validation/use-case-scripts/workflow-imports.d.ts +16 -0
- package/dist/validation/use-case-scripts/workflow-imports.d.ts.map +1 -0
- package/dist/validation/use-case-scripts/workflow-imports.js +206 -0
- package/dist/validation/use-case-scripts/workflow-imports.js.map +1 -0
- package/dist/validation/workflow-scripts/credential-placeholders.d.ts +21 -0
- package/dist/validation/workflow-scripts/credential-placeholders.d.ts.map +1 -0
- package/dist/validation/workflow-scripts/credential-placeholders.js +278 -0
- package/dist/validation/workflow-scripts/credential-placeholders.js.map +1 -0
- package/dist/validation/workflow-scripts/db-always-output.d.ts +16 -0
- package/dist/validation/workflow-scripts/db-always-output.d.ts.map +1 -0
- package/dist/validation/workflow-scripts/db-always-output.js +95 -0
- package/dist/validation/workflow-scripts/db-always-output.js.map +1 -0
- package/dist/validation/workflow-scripts/exec-workflow-wait.d.ts +15 -0
- package/dist/validation/workflow-scripts/exec-workflow-wait.d.ts.map +1 -0
- package/dist/validation/workflow-scripts/exec-workflow-wait.js +85 -0
- package/dist/validation/workflow-scripts/exec-workflow-wait.js.map +1 -0
- package/dist/validation/workflow-scripts/index.d.ts +31 -0
- package/dist/validation/workflow-scripts/index.d.ts.map +1 -0
- package/dist/validation/workflow-scripts/index.js +58 -0
- package/dist/validation/workflow-scripts/index.js.map +1 -0
- package/dist/validation/workflow-scripts/instparm-quoting.d.ts +21 -0
- package/dist/validation/workflow-scripts/instparm-quoting.d.ts.map +1 -0
- package/dist/validation/workflow-scripts/instparm-quoting.js +59 -0
- package/dist/validation/workflow-scripts/instparm-quoting.js.map +1 -0
- package/dist/validation/workflow-scripts/llm-model-id.d.ts +17 -0
- package/dist/validation/workflow-scripts/llm-model-id.d.ts.map +1 -0
- package/dist/validation/workflow-scripts/llm-model-id.js +171 -0
- package/dist/validation/workflow-scripts/llm-model-id.js.map +1 -0
- package/dist/validation/workflow-scripts/llm-output-access.d.ts +23 -0
- package/dist/validation/workflow-scripts/llm-output-access.d.ts.map +1 -0
- package/dist/validation/workflow-scripts/llm-output-access.js +274 -0
- package/dist/validation/workflow-scripts/llm-output-access.js.map +1 -0
- package/dist/validation/workflow-scripts/merge-before-terminal.d.ts +20 -0
- package/dist/validation/workflow-scripts/merge-before-terminal.d.ts.map +1 -0
- package/dist/validation/workflow-scripts/merge-before-terminal.js +87 -0
- package/dist/validation/workflow-scripts/merge-before-terminal.js.map +1 -0
- package/dist/validation/workflow-scripts/placeholder-syntax.d.ts +29 -0
- package/dist/validation/workflow-scripts/placeholder-syntax.d.ts.map +1 -0
- package/dist/validation/workflow-scripts/placeholder-syntax.js +154 -0
- package/dist/validation/workflow-scripts/placeholder-syntax.js.map +1 -0
- package/dist/validation/workflow-scripts/retry-backoff.d.ts +16 -0
- package/dist/validation/workflow-scripts/retry-backoff.d.ts.map +1 -0
- package/dist/validation/workflow-scripts/retry-backoff.js +197 -0
- package/dist/validation/workflow-scripts/retry-backoff.js.map +1 -0
- package/dist/validation/workflow-scripts/webhook-id.d.ts +17 -0
- package/dist/validation/workflow-scripts/webhook-id.d.ts.map +1 -0
- package/dist/validation/workflow-scripts/webhook-id.js +79 -0
- package/dist/validation/workflow-scripts/webhook-id.js.map +1 -0
- package/dist/validation/workflow-scripts/workflow-format.d.ts +16 -0
- package/dist/validation/workflow-scripts/workflow-format.d.ts.map +1 -0
- package/dist/validation/workflow-scripts/workflow-format.js +51 -0
- package/dist/validation/workflow-scripts/workflow-format.js.map +1 -0
- package/dist/validation/workflow-scripts/workflow-sanitization.d.ts +21 -0
- package/dist/validation/workflow-scripts/workflow-sanitization.d.ts.map +1 -0
- package/dist/validation/workflow-scripts/workflow-sanitization.js +78 -0
- package/dist/validation/workflow-scripts/workflow-sanitization.js.map +1 -0
- package/dist/validation/workflow-scripts/workflow-settings.d.ts +19 -0
- package/dist/validation/workflow-scripts/workflow-settings.d.ts.map +1 -0
- package/dist/validation/workflow-scripts/workflow-settings.js +131 -0
- package/dist/validation/workflow-scripts/workflow-settings.js.map +1 -0
- package/package.json +64 -0
|
@@ -0,0 +1,348 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* INTEGRATION-INHERITANCE Validation Script
|
|
3
|
+
*
|
|
4
|
+
* Validates that workflows declare all integration IDs they use in their integrationUids config.
|
|
5
|
+
*
|
|
6
|
+
* Two checks are performed:
|
|
7
|
+
* 1. Each workflow's integrationUids must include all integrations used directly in its JSON
|
|
8
|
+
* (detected via credential placeholders like FLEXCRED_ANTHROPIC_ID_DERCXELF)
|
|
9
|
+
* 2. Parent workflows must also include all integrations used by their subworkflows
|
|
10
|
+
*
|
|
11
|
+
* Credential placeholder pattern: {{TYPE_INTEGRATION_NAME_(ID|NAME)_SUFFIX}}
|
|
12
|
+
* - FLEXCRED_*_DERCXELF
|
|
13
|
+
* - USERCRED_*_DERCRESU
|
|
14
|
+
* - ORGCRED_*_DERCGRO
|
|
15
|
+
* - INSTCRED_*_DERCTSNI
|
|
16
|
+
*
|
|
17
|
+
* The INTEGRATION_NAME in CONSTANT_CASE becomes the integrationUid in snake_case.
|
|
18
|
+
* Example: FLEXCRED_GOOGLE_DRIVE_OAUTH_ID_DERCXELF -> google_drive_oauth
|
|
19
|
+
*
|
|
20
|
+
* @see .guides/specific/integrations.md - "Integration Declaration"
|
|
21
|
+
*/
|
|
22
|
+
import { readFileSync, readdirSync, existsSync } from 'fs';
|
|
23
|
+
import { join, basename } from 'path';
|
|
24
|
+
export const RULE_ID = 'INTEGRATION-INHERITANCE';
|
|
25
|
+
export const metadata = {
|
|
26
|
+
id: RULE_ID,
|
|
27
|
+
name: 'integration_inheritance',
|
|
28
|
+
severity: 'should',
|
|
29
|
+
description: 'Workflows must declare all integrations they use (directly or via subworkflows)',
|
|
30
|
+
details: "Each workflow's integrationUids must include all integration IDs from its credential placeholders, plus all integrations from called subworkflows",
|
|
31
|
+
fixable: true,
|
|
32
|
+
category: 'references',
|
|
33
|
+
guideRef: {
|
|
34
|
+
path: 'specific/integrations.md',
|
|
35
|
+
section: 'Integration Declaration',
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
// Regex to find SUBWKFL placeholders
|
|
39
|
+
const SUBWKFL_PATTERN = /\{\{SUBWKFL_([a-zA-Z0-9_-]+)_LFKWBUS\}\}/g;
|
|
40
|
+
// Regex to find credential placeholders and extract integration name
|
|
41
|
+
// Matches: {{FLEXCRED_INTEGRATION_NAME_ID_DERCXELF}}, {{USERCRED_INTEGRATION_NAME_NAME_DERCRESU}}, etc.
|
|
42
|
+
const CREDENTIAL_PATTERN = /\{\{(FLEXCRED|USERCRED|ORGCRED|INSTCRED)_([A-Z0-9_]+)_(ID|NAME)_(DERCXELF|DERCRESU|DERCGRO|DERCTSNI)\}\}/g;
|
|
43
|
+
/**
|
|
44
|
+
* Converts CONSTANT_CASE to snake_case
|
|
45
|
+
* Example: GOOGLE_DRIVE_OAUTH -> google_drive_oauth
|
|
46
|
+
*/
|
|
47
|
+
function toSnakeCase(constantCase) {
|
|
48
|
+
return constantCase.toLowerCase();
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Extracts all SUBWKFL_ references from workflow content
|
|
52
|
+
*/
|
|
53
|
+
function extractSubworkflowCalls(content) {
|
|
54
|
+
const references = [];
|
|
55
|
+
let match;
|
|
56
|
+
// Reset regex state
|
|
57
|
+
SUBWKFL_PATTERN.lastIndex = 0;
|
|
58
|
+
while ((match = SUBWKFL_PATTERN.exec(content)) !== null) {
|
|
59
|
+
if (!references.includes(match[1])) {
|
|
60
|
+
references.push(match[1]);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return references;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Extracts all integration IDs from credential placeholders in workflow content
|
|
67
|
+
* Returns snake_case integration IDs
|
|
68
|
+
*/
|
|
69
|
+
function extractIntegrationIds(content) {
|
|
70
|
+
const integrations = [];
|
|
71
|
+
let match;
|
|
72
|
+
// Reset regex state
|
|
73
|
+
CREDENTIAL_PATTERN.lastIndex = 0;
|
|
74
|
+
while ((match = CREDENTIAL_PATTERN.exec(content)) !== null) {
|
|
75
|
+
const integrationName = match[2]; // e.g., "ANTHROPIC" or "GOOGLE_DRIVE_OAUTH"
|
|
76
|
+
const integrationId = toSnakeCase(integrationName);
|
|
77
|
+
if (!integrations.includes(integrationId)) {
|
|
78
|
+
integrations.push(integrationId);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return integrations;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Extracts integrationUids from config.ts for each workflow
|
|
85
|
+
* Returns a map of templateId -> integrationUids[]
|
|
86
|
+
*/
|
|
87
|
+
function extractConfigIntegrations(configContent) {
|
|
88
|
+
const mappings = new Map();
|
|
89
|
+
// Find each workflowTemplateId
|
|
90
|
+
const templateIdPattern = /workflowTemplateId:\s*['"]([^'"]+)['"]/g;
|
|
91
|
+
let templateMatch;
|
|
92
|
+
while ((templateMatch = templateIdPattern.exec(configContent)) !== null) {
|
|
93
|
+
const templateId = templateMatch[1];
|
|
94
|
+
const templateIdEndPos = templateMatch.index + templateMatch[0].length;
|
|
95
|
+
// Look for the next workflow block or end of content
|
|
96
|
+
const nextTemplateMatch = /workflowTemplateId:/g;
|
|
97
|
+
nextTemplateMatch.lastIndex = templateIdEndPos;
|
|
98
|
+
const nextMatch = nextTemplateMatch.exec(configContent);
|
|
99
|
+
const blockEnd = nextMatch ? nextMatch.index : configContent.length;
|
|
100
|
+
// Extract the block for this workflow
|
|
101
|
+
const workflowBlock = configContent.slice(templateMatch.index, blockEnd);
|
|
102
|
+
// Extract integrationUids array
|
|
103
|
+
const integrationUidsMatch = workflowBlock.match(/integrationUids:\s*\[([^\]]*)\]/);
|
|
104
|
+
if (integrationUidsMatch) {
|
|
105
|
+
const integrationUidsContent = integrationUidsMatch[1];
|
|
106
|
+
const integrations = [];
|
|
107
|
+
// Match quoted strings in the array
|
|
108
|
+
const idPattern = /['"]([^'"]+)['"]/g;
|
|
109
|
+
let idMatch;
|
|
110
|
+
while ((idMatch = idPattern.exec(integrationUidsContent)) !== null) {
|
|
111
|
+
integrations.push(idMatch[1]);
|
|
112
|
+
}
|
|
113
|
+
mappings.set(templateId, integrations);
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
// No integrationUids field - empty array
|
|
117
|
+
mappings.set(templateId, []);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return mappings;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Gets the workflow template ID from a workflow JSON filename
|
|
124
|
+
*/
|
|
125
|
+
function getTemplateIdFromFilename(workflowFile) {
|
|
126
|
+
return basename(workflowFile, '.json');
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Creates a fix function that adds missing integrations to a workflow's integrationUids array
|
|
130
|
+
*/
|
|
131
|
+
function createFixFunction(workflowId, missingIntegrations, hasIntegrationUidsField) {
|
|
132
|
+
return (content) => {
|
|
133
|
+
// Find the workflow block for this workflow
|
|
134
|
+
const templateIdPattern = new RegExp(`(workflowTemplateId:\\s*['"]${workflowId}['"])`, 'g');
|
|
135
|
+
let match = templateIdPattern.exec(content);
|
|
136
|
+
if (!match) {
|
|
137
|
+
return content;
|
|
138
|
+
}
|
|
139
|
+
const templateIdEndPos = match.index + match[0].length;
|
|
140
|
+
// Find the end of this workflow block (next workflowTemplateId or end)
|
|
141
|
+
const nextTemplateMatch = /workflowTemplateId:/g;
|
|
142
|
+
nextTemplateMatch.lastIndex = templateIdEndPos;
|
|
143
|
+
const nextMatch = nextTemplateMatch.exec(content);
|
|
144
|
+
const blockEnd = nextMatch ? nextMatch.index : content.length;
|
|
145
|
+
const workflowBlock = content.slice(match.index, blockEnd);
|
|
146
|
+
if (hasIntegrationUidsField) {
|
|
147
|
+
// Add to existing integrationUids array
|
|
148
|
+
const integrationUidsPattern = /(integrationUids:\s*\[)([^\]]*)\]/;
|
|
149
|
+
const integrationUidsMatch = workflowBlock.match(integrationUidsPattern);
|
|
150
|
+
if (integrationUidsMatch) {
|
|
151
|
+
const existingContent = integrationUidsMatch[2].trim();
|
|
152
|
+
const newIntegrations = missingIntegrations.map(i => `'${i}'`).join(', ');
|
|
153
|
+
let newContent;
|
|
154
|
+
if (existingContent === '') {
|
|
155
|
+
newContent = newIntegrations;
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
newContent = `${existingContent}, ${newIntegrations}`;
|
|
159
|
+
}
|
|
160
|
+
const updatedBlock = workflowBlock.replace(integrationUidsPattern, `$1${newContent}]`);
|
|
161
|
+
return content.slice(0, match.index) + updatedBlock + content.slice(blockEnd);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
// Add integrationUids field after workflowName or triggers
|
|
166
|
+
// Look for a good insertion point
|
|
167
|
+
const insertionPatterns = [
|
|
168
|
+
/(triggers:\s*\[[^\]]*\],?)/,
|
|
169
|
+
/(workflowName:\s*['"][^'"]*['"],?)/,
|
|
170
|
+
];
|
|
171
|
+
for (const pattern of insertionPatterns) {
|
|
172
|
+
const insertMatch = workflowBlock.match(pattern);
|
|
173
|
+
if (insertMatch) {
|
|
174
|
+
const insertPos = insertMatch.index + insertMatch[0].length;
|
|
175
|
+
const newIntegrations = missingIntegrations.map(i => `'${i}'`).join(', ');
|
|
176
|
+
const needsComma = !insertMatch[0].trim().endsWith(',');
|
|
177
|
+
const updatedBlock = workflowBlock.slice(0, insertPos) +
|
|
178
|
+
(needsComma ? ',' : '') +
|
|
179
|
+
`\n integrationUids: [${newIntegrations}],` +
|
|
180
|
+
workflowBlock.slice(insertPos);
|
|
181
|
+
return content.slice(0, match.index) + updatedBlock + content.slice(blockEnd);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
return content;
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Checks if a workflow has an integrationUids field in config.ts
|
|
190
|
+
*/
|
|
191
|
+
function hasIntegrationUidsInConfig(configContent, workflowId) {
|
|
192
|
+
const templateIdIndex = configContent.indexOf(`workflowTemplateId: '${workflowId}'`);
|
|
193
|
+
if (templateIdIndex === -1) {
|
|
194
|
+
// Try double quotes
|
|
195
|
+
const templateIdIndexDQ = configContent.indexOf(`workflowTemplateId: "${workflowId}"`);
|
|
196
|
+
if (templateIdIndexDQ === -1) {
|
|
197
|
+
return false;
|
|
198
|
+
}
|
|
199
|
+
const nextTemplateIndex = configContent.indexOf('workflowTemplateId:', templateIdIndexDQ + 1);
|
|
200
|
+
const blockEnd = nextTemplateIndex === -1 ? configContent.length : nextTemplateIndex;
|
|
201
|
+
const block = configContent.slice(templateIdIndexDQ, blockEnd);
|
|
202
|
+
return block.includes('integrationUids:');
|
|
203
|
+
}
|
|
204
|
+
const nextTemplateIndex = configContent.indexOf('workflowTemplateId:', templateIdIndex + 1);
|
|
205
|
+
const blockEnd = nextTemplateIndex === -1 ? configContent.length : nextTemplateIndex;
|
|
206
|
+
const block = configContent.slice(templateIdIndex, blockEnd);
|
|
207
|
+
return block.includes('integrationUids:');
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Validates that workflows declare all integrations they use (directly or via subworkflows)
|
|
211
|
+
*/
|
|
212
|
+
export async function checkIntegrationInheritance(useCasePath) {
|
|
213
|
+
const findings = [];
|
|
214
|
+
// Check if config.ts exists
|
|
215
|
+
const configPath = join(useCasePath, 'config.ts');
|
|
216
|
+
if (!existsSync(configPath)) {
|
|
217
|
+
// Cannot validate without config.ts - this is handled by other rules
|
|
218
|
+
return findings;
|
|
219
|
+
}
|
|
220
|
+
// Read config.ts
|
|
221
|
+
let configContent;
|
|
222
|
+
try {
|
|
223
|
+
configContent = readFileSync(configPath, 'utf-8');
|
|
224
|
+
}
|
|
225
|
+
catch {
|
|
226
|
+
// Cannot read config.ts - this is handled by other rules
|
|
227
|
+
return findings;
|
|
228
|
+
}
|
|
229
|
+
// Extract integrationUids from config for each workflow
|
|
230
|
+
const configIntegrations = extractConfigIntegrations(configContent);
|
|
231
|
+
// Check workflows folder
|
|
232
|
+
const workflowsPath = join(useCasePath, 'workflows');
|
|
233
|
+
if (!existsSync(workflowsPath)) {
|
|
234
|
+
// No workflows folder - nothing to validate
|
|
235
|
+
return findings;
|
|
236
|
+
}
|
|
237
|
+
// Get all workflow JSON files
|
|
238
|
+
let workflowFiles;
|
|
239
|
+
try {
|
|
240
|
+
workflowFiles = readdirSync(workflowsPath)
|
|
241
|
+
.filter(f => f.endsWith('.json'))
|
|
242
|
+
.map(f => join(workflowsPath, f));
|
|
243
|
+
}
|
|
244
|
+
catch {
|
|
245
|
+
// Cannot read workflows folder - this is handled by other rules
|
|
246
|
+
return findings;
|
|
247
|
+
}
|
|
248
|
+
// Build maps:
|
|
249
|
+
// 1. workflowId -> integrations it uses directly (from credential placeholders)
|
|
250
|
+
// 2. workflowId -> subworkflows it calls
|
|
251
|
+
const workflowIntegrations = new Map();
|
|
252
|
+
const workflowSubworkflowCalls = new Map();
|
|
253
|
+
for (const workflowFile of workflowFiles) {
|
|
254
|
+
let content;
|
|
255
|
+
try {
|
|
256
|
+
content = readFileSync(workflowFile, 'utf-8');
|
|
257
|
+
}
|
|
258
|
+
catch {
|
|
259
|
+
continue; // Skip unreadable files
|
|
260
|
+
}
|
|
261
|
+
const templateId = getTemplateIdFromFilename(workflowFile);
|
|
262
|
+
// Extract integrations from credential placeholders
|
|
263
|
+
const integrations = extractIntegrationIds(content);
|
|
264
|
+
workflowIntegrations.set(templateId, integrations);
|
|
265
|
+
// Extract subworkflow calls
|
|
266
|
+
const subworkflowCalls = extractSubworkflowCalls(content);
|
|
267
|
+
workflowSubworkflowCalls.set(templateId, subworkflowCalls);
|
|
268
|
+
}
|
|
269
|
+
// CHECK 1: Verify each workflow declares its own direct integrations
|
|
270
|
+
for (const [workflowId, directIntegrations] of workflowIntegrations) {
|
|
271
|
+
if (directIntegrations.length === 0) {
|
|
272
|
+
continue; // No integrations used directly
|
|
273
|
+
}
|
|
274
|
+
const declaredIntegrations = configIntegrations.get(workflowId) || [];
|
|
275
|
+
const hasField = hasIntegrationUidsInConfig(configContent, workflowId);
|
|
276
|
+
// Find missing direct integrations
|
|
277
|
+
const missingDirect = [];
|
|
278
|
+
for (const integration of directIntegrations) {
|
|
279
|
+
if (!declaredIntegrations.includes(integration)) {
|
|
280
|
+
missingDirect.push(integration);
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
if (missingDirect.length > 0) {
|
|
284
|
+
findings.push({
|
|
285
|
+
rule: RULE_ID,
|
|
286
|
+
severity: 'should',
|
|
287
|
+
path: configPath,
|
|
288
|
+
message: `Workflow "${workflowId}" uses integrations not declared in its integrationUids: ${missingDirect.join(', ')}`,
|
|
289
|
+
raw_details: `Add the following integrations to the integrationUids array for workflow '${workflowId}' in config.ts: ${missingDirect.map(i => `'${i}'`).join(', ')}. ` +
|
|
290
|
+
`These integrations are detected from credential placeholders in the workflow JSON.`,
|
|
291
|
+
guideRef: metadata.guideRef,
|
|
292
|
+
fixable: true,
|
|
293
|
+
fix: {
|
|
294
|
+
description: `Add missing integrations to '${workflowId}': ${missingDirect.join(', ')}`,
|
|
295
|
+
apply: createFixFunction(workflowId, missingDirect, hasField),
|
|
296
|
+
},
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
// CHECK 2: Verify parent workflows include all subworkflow integrations
|
|
301
|
+
for (const [parentId, subworkflowIds] of workflowSubworkflowCalls) {
|
|
302
|
+
if (subworkflowIds.length === 0) {
|
|
303
|
+
continue; // No subworkflow calls
|
|
304
|
+
}
|
|
305
|
+
// Collect all integrations from subworkflows
|
|
306
|
+
const subworkflowRequiredIntegrations = new Set();
|
|
307
|
+
for (const subworkflowId of subworkflowIds) {
|
|
308
|
+
const subIntegrations = workflowIntegrations.get(subworkflowId) || [];
|
|
309
|
+
for (const integration of subIntegrations) {
|
|
310
|
+
subworkflowRequiredIntegrations.add(integration);
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
if (subworkflowRequiredIntegrations.size === 0) {
|
|
314
|
+
continue; // No integrations required from subworkflows
|
|
315
|
+
}
|
|
316
|
+
// Get parent's declared integrations from config
|
|
317
|
+
const parentDeclaredIntegrations = configIntegrations.get(parentId) || [];
|
|
318
|
+
const hasField = hasIntegrationUidsInConfig(configContent, parentId);
|
|
319
|
+
// Find missing inherited integrations (exclude those already reported in CHECK 1)
|
|
320
|
+
const parentDirectIntegrations = workflowIntegrations.get(parentId) || [];
|
|
321
|
+
const missingInherited = [];
|
|
322
|
+
for (const required of subworkflowRequiredIntegrations) {
|
|
323
|
+
// Only report if not already declared AND not a direct integration (already reported)
|
|
324
|
+
if (!parentDeclaredIntegrations.includes(required) && !parentDirectIntegrations.includes(required)) {
|
|
325
|
+
missingInherited.push(required);
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
if (missingInherited.length > 0) {
|
|
329
|
+
findings.push({
|
|
330
|
+
rule: RULE_ID,
|
|
331
|
+
severity: 'should',
|
|
332
|
+
path: configPath,
|
|
333
|
+
message: `Workflow "${parentId}" calls subworkflows that use integrations not declared in its integrationUids: ${missingInherited.join(', ')}`,
|
|
334
|
+
raw_details: `Add the following integrations to the integrationUids array for workflow '${parentId}' in config.ts: ${missingInherited.map(i => `'${i}'`).join(', ')}. ` +
|
|
335
|
+
`These integrations are used by called subworkflows: ${subworkflowIds.join(', ')}`,
|
|
336
|
+
guideRef: metadata.guideRef,
|
|
337
|
+
fixable: true,
|
|
338
|
+
fix: {
|
|
339
|
+
description: `Add inherited integrations to '${parentId}': ${missingInherited.join(', ')}`,
|
|
340
|
+
apply: createFixFunction(parentId, missingInherited, hasField),
|
|
341
|
+
},
|
|
342
|
+
});
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
return findings;
|
|
346
|
+
}
|
|
347
|
+
export default checkIntegrationInheritance;
|
|
348
|
+
//# sourceMappingURL=integration-inheritance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integration-inheritance.js","sourceRoot":"","sources":["../../../src/validation/use-case-scripts/integration-inheritance.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Script: SCHEMA-TYPES
|
|
3
|
+
*
|
|
4
|
+
* Validates that field types inside input/output schema definitions are valid.
|
|
5
|
+
* Only checks `type:` values within schema contexts (inputSchema, outputSchema,
|
|
6
|
+
* DeploymentInputSchema, FormInputSchema, FormOutputSchema functions).
|
|
7
|
+
*
|
|
8
|
+
* Valid field types:
|
|
9
|
+
* - string, text, number, boolean, date
|
|
10
|
+
* - select, multiselect, radio
|
|
11
|
+
* - file, array, object, objectArray
|
|
12
|
+
* - section (for grouping)
|
|
13
|
+
*/
|
|
14
|
+
import type { Finding } from '../types.js';
|
|
15
|
+
import type { RuleMetadata } from '../types.js';
|
|
16
|
+
export declare const metadata: RuleMetadata;
|
|
17
|
+
/**
|
|
18
|
+
* Check schema field types in config.ts
|
|
19
|
+
*/
|
|
20
|
+
export declare function checkSchemaTypes(useCasePath: string): Promise<Finding[]>;
|
|
21
|
+
//# sourceMappingURL=schema-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-types.d.ts","sourceRoot":"","sources":["../../../src/validation/use-case-scripts/schema-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,eAAO,MAAM,QAAQ,EAAE,YAOtB,CAAC;AAyEF;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAkD9E"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Script: SCHEMA-TYPES
|
|
3
|
+
*
|
|
4
|
+
* Validates that field types inside input/output schema definitions are valid.
|
|
5
|
+
* Only checks `type:` values within schema contexts (inputSchema, outputSchema,
|
|
6
|
+
* DeploymentInputSchema, FormInputSchema, FormOutputSchema functions).
|
|
7
|
+
*
|
|
8
|
+
* Valid field types:
|
|
9
|
+
* - string, text, number, boolean, date
|
|
10
|
+
* - select, multiselect, radio
|
|
11
|
+
* - file, array, object, objectArray
|
|
12
|
+
* - section (for grouping)
|
|
13
|
+
*/
|
|
14
|
+
import { existsSync, readFileSync } from 'fs';
|
|
15
|
+
import { join } from 'path';
|
|
16
|
+
export const metadata = {
|
|
17
|
+
id: 'SCHEMA-TYPES',
|
|
18
|
+
name: 'schema_types',
|
|
19
|
+
severity: 'must',
|
|
20
|
+
description: 'Schema field types must be valid',
|
|
21
|
+
details: 'Use only supported field types in input and output schemas',
|
|
22
|
+
category: 'schema',
|
|
23
|
+
};
|
|
24
|
+
// Valid field types for schemas
|
|
25
|
+
const VALID_FIELD_TYPES = new Set([
|
|
26
|
+
'string',
|
|
27
|
+
'text',
|
|
28
|
+
'number',
|
|
29
|
+
'boolean',
|
|
30
|
+
'date',
|
|
31
|
+
'select',
|
|
32
|
+
'multiselect',
|
|
33
|
+
'radio',
|
|
34
|
+
'file',
|
|
35
|
+
'array',
|
|
36
|
+
'object',
|
|
37
|
+
'objectArray',
|
|
38
|
+
'section',
|
|
39
|
+
]);
|
|
40
|
+
/**
|
|
41
|
+
* Find schema function/block ranges in the config content.
|
|
42
|
+
* Returns line ranges (1-based) where schema definitions occur.
|
|
43
|
+
*/
|
|
44
|
+
function findSchemaRanges(content) {
|
|
45
|
+
const ranges = [];
|
|
46
|
+
const lines = content.split('\n');
|
|
47
|
+
// Patterns that indicate a schema context
|
|
48
|
+
const schemaStartPatterns = [
|
|
49
|
+
/function\s+get\w*(?:Input|Output|Deployment)Schema/,
|
|
50
|
+
/(?:input|output)Schema\s*:\s*\[/,
|
|
51
|
+
/(?:Input|Output|Deployment)Schema\s*(?:=|:)\s*\[/,
|
|
52
|
+
];
|
|
53
|
+
for (let i = 0; i < lines.length; i++) {
|
|
54
|
+
const line = lines[i];
|
|
55
|
+
const isSchemaStart = schemaStartPatterns.some(p => p.test(line));
|
|
56
|
+
if (isSchemaStart) {
|
|
57
|
+
// Find the end of this schema block by tracking bracket depth
|
|
58
|
+
let depth = 0;
|
|
59
|
+
let foundOpen = false;
|
|
60
|
+
let end = i;
|
|
61
|
+
for (let j = i; j < lines.length; j++) {
|
|
62
|
+
for (const ch of lines[j]) {
|
|
63
|
+
if (ch === '[' || ch === '{') {
|
|
64
|
+
depth++;
|
|
65
|
+
foundOpen = true;
|
|
66
|
+
}
|
|
67
|
+
else if (ch === ']' || ch === '}') {
|
|
68
|
+
depth--;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
if (foundOpen && depth <= 0) {
|
|
72
|
+
end = j;
|
|
73
|
+
break;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
ranges.push({ start: i + 1, end: end + 1 }); // 1-based
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return ranges;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Check if a line number falls within any schema range
|
|
83
|
+
*/
|
|
84
|
+
function isInSchemaContext(line, ranges) {
|
|
85
|
+
return ranges.some(r => line >= r.start && line <= r.end);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Check schema field types in config.ts
|
|
89
|
+
*/
|
|
90
|
+
export async function checkSchemaTypes(useCasePath) {
|
|
91
|
+
const findings = [];
|
|
92
|
+
const configPath = join(useCasePath, 'config.ts');
|
|
93
|
+
if (!existsSync(configPath)) {
|
|
94
|
+
return findings;
|
|
95
|
+
}
|
|
96
|
+
let content;
|
|
97
|
+
try {
|
|
98
|
+
content = readFileSync(configPath, 'utf-8');
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
return findings;
|
|
102
|
+
}
|
|
103
|
+
const schemaRanges = findSchemaRanges(content);
|
|
104
|
+
if (schemaRanges.length === 0) {
|
|
105
|
+
return findings;
|
|
106
|
+
}
|
|
107
|
+
const lines = content.split('\n');
|
|
108
|
+
for (let i = 0; i < lines.length; i++) {
|
|
109
|
+
const lineNum = i + 1;
|
|
110
|
+
const line = lines[i];
|
|
111
|
+
// Only check type: references inside schema contexts
|
|
112
|
+
if (!isInSchemaContext(lineNum, schemaRanges))
|
|
113
|
+
continue;
|
|
114
|
+
const typeMatch = line.match(/type\s*:\s*['"]([^'"]+)['"]/);
|
|
115
|
+
if (!typeMatch)
|
|
116
|
+
continue;
|
|
117
|
+
const typeValue = typeMatch[1];
|
|
118
|
+
// Skip TypeScript 'as const' assertions
|
|
119
|
+
if (typeValue === 'const')
|
|
120
|
+
continue;
|
|
121
|
+
if (!VALID_FIELD_TYPES.has(typeValue)) {
|
|
122
|
+
findings.push({
|
|
123
|
+
rule: metadata.id,
|
|
124
|
+
severity: 'must',
|
|
125
|
+
path: configPath,
|
|
126
|
+
message: `Unknown schema field type: "${typeValue}" (line ${lineNum})`,
|
|
127
|
+
raw_details: `Valid types are: ${Array.from(VALID_FIELD_TYPES).join(', ')}`,
|
|
128
|
+
line: lineNum,
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return findings;
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=schema-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-types.js","sourceRoot":"","sources":["../../../src/validation/use-case-scripts/schema-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Script: SKILL-CONSISTENCY
|
|
3
|
+
*
|
|
4
|
+
* Validates skill files in the skills/ directory follow the Claude Agent Skills format:
|
|
5
|
+
* - Each subdirectory must contain a SKILL.md file
|
|
6
|
+
* - SKILL.md must have valid YAML frontmatter (name, description, workflowTemplateId)
|
|
7
|
+
* - name must follow Claude spec: max 64 chars, lowercase+numbers+hyphens, no reserved words
|
|
8
|
+
* - description must be non-empty, max 1024 chars
|
|
9
|
+
* - workflowTemplateId must reference an existing workflow
|
|
10
|
+
* - No duplicate names or workflowTemplateIds
|
|
11
|
+
*
|
|
12
|
+
* Skills folder is optional — no error if missing.
|
|
13
|
+
*/
|
|
14
|
+
import type { Finding } from '../types.js';
|
|
15
|
+
import type { RuleMetadata } from '../types.js';
|
|
16
|
+
export declare const metadata: RuleMetadata;
|
|
17
|
+
/**
|
|
18
|
+
* Check skill consistency across the use case
|
|
19
|
+
*/
|
|
20
|
+
export declare function checkSkillConsistency(useCasePath: string): Promise<Finding[]>;
|
|
21
|
+
//# sourceMappingURL=skill-consistency.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-consistency.d.ts","sourceRoot":"","sources":["../../../src/validation/use-case-scripts/skill-consistency.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,eAAO,MAAM,QAAQ,EAAE,YAOtB,CAAC;AAOF;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CA2JnF"}
|