@noodleseed/one 0.111.0 → 0.113.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/dist/commands/catalog-data-tenant-resources.d.ts.map +1 -1
- package/dist/commands/catalog-data-tenant-resources.js +10 -1
- package/dist/commands/catalog-data-tenant-resources.js.map +1 -1
- package/dist/commands/deployment-package.d.ts +3 -0
- package/dist/commands/deployment-package.d.ts.map +1 -0
- package/dist/commands/deployment-package.js +126 -0
- package/dist/commands/deployment-package.js.map +1 -0
- package/dist/commands/deployments-ops.d.ts.map +1 -1
- package/dist/commands/deployments-ops.js +3 -0
- package/dist/commands/deployments-ops.js.map +1 -1
- package/dist/commands/github-runs-ops.d.ts +2 -21
- package/dist/commands/github-runs-ops.d.ts.map +1 -1
- package/dist/commands/github-runs-ops.js.map +1 -1
- package/dist/commands/github-shared.d.ts +2 -14
- package/dist/commands/github-shared.d.ts.map +1 -1
- package/dist/commands/github-shared.js +1 -1
- package/dist/commands/github-shared.js.map +1 -1
- package/dist/commands/resource-shared.d.ts +2 -82
- package/dist/commands/resource-shared.d.ts.map +1 -1
- package/dist/commands/resource-shared.js.map +1 -1
- package/dist/devtools-harness.js +1 -1
- package/dist/devtools-harness.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/curated/error-fixes.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/curated/error-fixes.js +7 -0
- package/node_modules/@noodle-borg/agent-kit/dist/curated/error-fixes.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js +3 -2
- package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js +7 -0
- package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/index.d.ts +4 -1
- package/node_modules/@noodle-borg/agent-kit/dist/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/index.js +5 -2
- package/node_modules/@noodle-borg/agent-kit/dist/index.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/product-skill-markdown.d.ts +4 -0
- package/node_modules/@noodle-borg/agent-kit/dist/product-skill-markdown.d.ts.map +1 -0
- package/node_modules/@noodle-borg/agent-kit/dist/product-skill-markdown.js +138 -0
- package/node_modules/@noodle-borg/agent-kit/dist/product-skill-markdown.js.map +1 -0
- package/node_modules/@noodle-borg/agent-kit/dist/product-skill-renderer.d.ts +8 -0
- package/node_modules/@noodle-borg/agent-kit/dist/product-skill-renderer.d.ts.map +1 -0
- package/node_modules/@noodle-borg/agent-kit/dist/product-skill-renderer.js +135 -0
- package/node_modules/@noodle-borg/agent-kit/dist/product-skill-renderer.js.map +1 -0
- package/node_modules/@noodle-borg/agent-kit/dist/product-skill-types.d.ts +126 -0
- package/node_modules/@noodle-borg/agent-kit/dist/product-skill-types.d.ts.map +1 -0
- package/node_modules/@noodle-borg/agent-kit/dist/product-skill-types.js +2 -0
- package/node_modules/@noodle-borg/agent-kit/dist/product-skill-types.js.map +1 -0
- package/node_modules/@noodle-borg/agent-kit/dist/product-skill-validation.d.ts +27 -0
- package/node_modules/@noodle-borg/agent-kit/dist/product-skill-validation.d.ts.map +1 -0
- package/node_modules/@noodle-borg/agent-kit/dist/product-skill-validation.js +262 -0
- package/node_modules/@noodle-borg/agent-kit/dist/product-skill-validation.js.map +1 -0
- package/node_modules/@noodle-borg/agent-kit/dist/skill-agent-guide-ref.d.ts +2 -0
- package/node_modules/@noodle-borg/agent-kit/dist/skill-agent-guide-ref.d.ts.map +1 -0
- package/node_modules/@noodle-borg/agent-kit/dist/skill-agent-guide-ref.js +16 -0
- package/node_modules/@noodle-borg/agent-kit/dist/skill-agent-guide-ref.js.map +1 -0
- package/node_modules/@noodle-borg/agent-kit/dist/skill-content.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-content.js +2 -0
- package/node_modules/@noodle-borg/agent-kit/dist/skill-content.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-router.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-router.js +1 -0
- package/node_modules/@noodle-borg/agent-kit/dist/skill-router.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/version.d.ts +2 -0
- package/node_modules/@noodle-borg/agent-kit/dist/version.d.ts.map +1 -0
- package/node_modules/@noodle-borg/agent-kit/dist/version.js +3 -0
- package/node_modules/@noodle-borg/agent-kit/dist/version.js.map +1 -0
- package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
- package/node_modules/@noodle-borg/app-package/dist/agent-guide-schema.d.ts +34 -0
- package/node_modules/@noodle-borg/app-package/dist/agent-guide-schema.d.ts.map +1 -0
- package/node_modules/@noodle-borg/app-package/dist/agent-guide-schema.js +50 -0
- package/node_modules/@noodle-borg/app-package/dist/agent-guide-schema.js.map +1 -0
- package/node_modules/@noodle-borg/app-package/dist/canonical.d.ts +5 -0
- package/node_modules/@noodle-borg/app-package/dist/canonical.d.ts.map +1 -0
- package/node_modules/@noodle-borg/app-package/dist/canonical.js +44 -0
- package/node_modules/@noodle-borg/app-package/dist/canonical.js.map +1 -0
- package/node_modules/@noodle-borg/app-package/dist/index.d.ts +8 -0
- package/node_modules/@noodle-borg/app-package/dist/index.d.ts.map +1 -0
- package/node_modules/@noodle-borg/app-package/dist/index.js +8 -0
- package/node_modules/@noodle-borg/app-package/dist/index.js.map +1 -0
- package/node_modules/@noodle-borg/app-package/dist/limits.d.ts +29 -0
- package/node_modules/@noodle-borg/app-package/dist/limits.d.ts.map +1 -0
- package/node_modules/@noodle-borg/app-package/dist/limits.js +29 -0
- package/node_modules/@noodle-borg/app-package/dist/limits.js.map +1 -0
- package/node_modules/@noodle-borg/app-package/dist/schema.d.ts +5 -0
- package/node_modules/@noodle-borg/app-package/dist/schema.d.ts.map +1 -0
- package/node_modules/@noodle-borg/app-package/dist/schema.js +188 -0
- package/node_modules/@noodle-borg/app-package/dist/schema.js.map +1 -0
- package/node_modules/@noodle-borg/app-package/dist/sensitive-content.d.ts +6 -0
- package/node_modules/@noodle-borg/app-package/dist/sensitive-content.d.ts.map +1 -0
- package/node_modules/@noodle-borg/app-package/dist/sensitive-content.js +39 -0
- package/node_modules/@noodle-borg/app-package/dist/sensitive-content.js.map +1 -0
- package/node_modules/@noodle-borg/app-package/dist/snapshot.d.ts +51 -0
- package/node_modules/@noodle-borg/app-package/dist/snapshot.d.ts.map +1 -0
- package/node_modules/@noodle-borg/app-package/dist/snapshot.js +160 -0
- package/node_modules/@noodle-borg/app-package/dist/snapshot.js.map +1 -0
- package/node_modules/@noodle-borg/app-package/dist/types.d.ts +126 -0
- package/node_modules/@noodle-borg/app-package/dist/types.d.ts.map +1 -0
- package/node_modules/@noodle-borg/app-package/dist/types.js +2 -0
- package/node_modules/@noodle-borg/app-package/dist/types.js.map +1 -0
- package/node_modules/@noodle-borg/app-package/package.json +31 -0
- package/node_modules/@noodle-borg/authoring/dist/agent-guide.d.ts +30 -0
- package/node_modules/@noodle-borg/authoring/dist/agent-guide.d.ts.map +1 -0
- package/node_modules/@noodle-borg/authoring/dist/agent-guide.js +21 -0
- package/node_modules/@noodle-borg/authoring/dist/agent-guide.js.map +1 -0
- package/node_modules/@noodle-borg/authoring/dist/index.d.ts +1 -0
- package/node_modules/@noodle-borg/authoring/dist/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/index.js.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/react/components.d.ts +3 -3
- package/node_modules/@noodle-borg/authoring/dist/react/native-components.d.ts +2 -2
- package/node_modules/@noodle-borg/authoring/dist/server.d.ts +3 -0
- package/node_modules/@noodle-borg/authoring/dist/server.d.ts.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/server.js +4 -0
- package/node_modules/@noodle-borg/authoring/dist/server.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/app-package/compile.d.ts +24 -0
- package/node_modules/@noodle-borg/compiler/dist/app-package/compile.d.ts.map +1 -0
- package/node_modules/@noodle-borg/compiler/dist/app-package/compile.js +341 -0
- package/node_modules/@noodle-borg/compiler/dist/app-package/compile.js.map +1 -0
- package/node_modules/@noodle-borg/compiler/dist/compile.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/compile.js +35 -0
- package/node_modules/@noodle-borg/compiler/dist/compile.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/errors.d.ts +3 -1
- package/node_modules/@noodle-borg/compiler/dist/errors.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/index.d.ts +3 -0
- package/node_modules/@noodle-borg/compiler/dist/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/index.js +2 -0
- package/node_modules/@noodle-borg/compiler/dist/index.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/manifest/agent-guide-schema.d.ts +3 -0
- package/node_modules/@noodle-borg/compiler/dist/manifest/agent-guide-schema.d.ts.map +1 -0
- package/node_modules/@noodle-borg/compiler/dist/manifest/agent-guide-schema.js +3 -0
- package/node_modules/@noodle-borg/compiler/dist/manifest/agent-guide-schema.js.map +1 -0
- package/node_modules/@noodle-borg/compiler/dist/manifest/schema.d.ts +50 -0
- package/node_modules/@noodle-borg/compiler/dist/manifest/schema.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/manifest/schema.js +5 -1
- package/node_modules/@noodle-borg/compiler/dist/manifest/schema.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/suggest.d.ts +2 -0
- package/node_modules/@noodle-borg/compiler/dist/suggest.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/suggest.js +13 -1
- package/node_modules/@noodle-borg/compiler/dist/suggest.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/zod-issue.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/zod-issue.js +2 -0
- package/node_modules/@noodle-borg/compiler/dist/zod-issue.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/package.json +1 -0
- package/node_modules/@noodle-borg/devtools-ui/dist/index.d.ts +2 -0
- package/node_modules/@noodle-borg/devtools-ui/dist/index.d.ts.map +1 -0
- package/node_modules/@noodle-borg/devtools-ui/dist/index.js +2 -0
- package/node_modules/@noodle-borg/devtools-ui/dist/index.js.map +1 -0
- package/node_modules/@noodle-borg/devtools-ui/package.json +28 -0
- package/node_modules/@noodle-borg/service/dist/app-package-snapshot.d.ts +20 -0
- package/node_modules/@noodle-borg/service/dist/app-package-snapshot.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/app-package-snapshot.js +47 -0
- package/node_modules/@noodle-borg/service/dist/app-package-snapshot.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/index.d.ts +2 -2
- package/node_modules/@noodle-borg/service/dist/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/index.js +1 -1
- package/node_modules/@noodle-borg/service/dist/index.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-auth-configuration.d.ts +2 -2
- package/node_modules/@noodle-borg/service/dist/platform-auth-rollout-support.d.ts +2 -2
- package/node_modules/@noodle-borg/service/dist/product-skill-type-compatibility.d.ts +7 -0
- package/node_modules/@noodle-borg/service/dist/product-skill-type-compatibility.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/product-skill-type-compatibility.js +2 -0
- package/node_modules/@noodle-borg/service/dist/product-skill-type-compatibility.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/registry-compile.d.ts +7 -1
- package/node_modules/@noodle-borg/service/dist/registry-compile.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/registry-compile.js +20 -1
- package/node_modules/@noodle-borg/service/dist/registry-compile.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/registry-deploy-transaction.d.ts +6 -0
- package/node_modules/@noodle-borg/service/dist/registry-deploy-transaction.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/registry-deploy-transaction.js +6 -0
- package/node_modules/@noodle-borg/service/dist/registry-deploy-transaction.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/registry-package.d.ts +23 -0
- package/node_modules/@noodle-borg/service/dist/registry-package.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/registry-package.js +35 -0
- package/node_modules/@noodle-borg/service/dist/registry-package.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/registry-types.d.ts +3 -0
- package/node_modules/@noodle-borg/service/dist/registry-types.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/registry.d.ts +3 -0
- package/node_modules/@noodle-borg/service/dist/registry.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/registry.js +21 -5
- package/node_modules/@noodle-borg/service/dist/registry.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/access.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/access.js +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/access.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/alerts.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/alerts.js +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/alerts.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/apps.d.ts +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/apps.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/apps.js +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/apps.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/config-values.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/config-values.js +1 -2
- package/node_modules/@noodle-borg/service/dist/routes/config-values.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/deployment-lock.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/deployment-lock.js +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/deployment-lock.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/deployment-package.d.ts +12 -0
- package/node_modules/@noodle-borg/service/dist/routes/deployment-package.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/deployment-package.js +52 -0
- package/node_modules/@noodle-borg/service/dist/routes/deployment-package.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/deployments.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/deployments.js +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/deployments.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/environment-production.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/environment-production.js +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/environment-production.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/envs.d.ts +2 -2
- package/node_modules/@noodle-borg/service/dist/routes/envs.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/envs.js +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/envs.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/feedback.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/feedback.js +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/feedback.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/github-connection.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/github-connection.js +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/github-connection.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/github-runs.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/github-runs.js +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/github-runs.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/org-admin.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/org-admin.js +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/org-admin.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/org-mcp-subdomain.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/org-mcp-subdomain.js +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/org-mcp-subdomain.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/paths.d.ts +5 -0
- package/node_modules/@noodle-borg/service/dist/routes/paths.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/paths.js +16 -0
- package/node_modules/@noodle-borg/service/dist/routes/paths.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/resource-read-dispatch.d.ts +2 -1
- package/node_modules/@noodle-borg/service/dist/routes/resource-read-dispatch.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/resource-read-dispatch.js +14 -2
- package/node_modules/@noodle-borg/service/dist/routes/resource-read-dispatch.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/service.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/service.js +1 -0
- package/node_modules/@noodle-borg/service/dist/service.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/in-memory.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/in-memory.js +8 -2
- package/node_modules/@noodle-borg/service/dist/store/in-memory.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/json-file.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/json-file.js +7 -2
- package/node_modules/@noodle-borg/service/dist/store/json-file.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-deploy-records.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-deploy-records.js +11 -6
- package/node_modules/@noodle-borg/service/dist/store/postgres-deploy-records.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-rows.d.ts +1 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-rows.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-rows.js +5 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-rows.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-schema.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js +2 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store.d.ts +3 -0
- package/node_modules/@noodle-borg/service/dist/store.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store.js.map +1 -1
- package/node_modules/@noodle-borg/service/package.json +2 -0
- package/node_modules/@noodle-borg/wire-contracts/dist/access-mode.d.ts +13 -0
- package/node_modules/@noodle-borg/wire-contracts/dist/access-mode.d.ts.map +1 -0
- package/node_modules/@noodle-borg/wire-contracts/dist/access-mode.js +12 -0
- package/node_modules/@noodle-borg/wire-contracts/dist/access-mode.js.map +1 -0
- package/node_modules/@noodle-borg/{service/dist/routes/config-contracts.d.ts → wire-contracts/dist/config.d.ts} +3 -2
- package/node_modules/@noodle-borg/wire-contracts/dist/config.d.ts.map +1 -0
- package/node_modules/@noodle-borg/{service/dist/routes/config-contracts.js → wire-contracts/dist/config.js} +1 -1
- package/node_modules/@noodle-borg/wire-contracts/dist/config.js.map +1 -0
- package/node_modules/@noodle-borg/{service/dist/routes/contracts.d.ts → wire-contracts/dist/control-plane.d.ts} +31 -30
- package/node_modules/@noodle-borg/wire-contracts/dist/control-plane.d.ts.map +1 -0
- package/node_modules/@noodle-borg/{service/dist/routes/contracts.js → wire-contracts/dist/control-plane.js} +11 -31
- package/node_modules/@noodle-borg/wire-contracts/dist/control-plane.js.map +1 -0
- package/node_modules/@noodle-borg/wire-contracts/dist/deployment-package.d.ts +56 -0
- package/node_modules/@noodle-borg/wire-contracts/dist/deployment-package.d.ts.map +1 -0
- package/node_modules/@noodle-borg/wire-contracts/dist/deployment-package.js +21 -0
- package/node_modules/@noodle-borg/wire-contracts/dist/deployment-package.js.map +1 -0
- package/node_modules/@noodle-borg/wire-contracts/dist/index.d.ts +5 -17
- package/node_modules/@noodle-borg/wire-contracts/dist/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/wire-contracts/dist/index.js +6 -17
- package/node_modules/@noodle-borg/wire-contracts/dist/index.js.map +1 -1
- package/node_modules/@noodle-borg/wire-contracts/package.json +1 -0
- package/package.json +4 -1
- package/node_modules/@noodle-borg/service/dist/routes/config-contracts.d.ts.map +0 -1
- package/node_modules/@noodle-borg/service/dist/routes/config-contracts.js.map +0 -1
- package/node_modules/@noodle-borg/service/dist/routes/contracts.d.ts.map +0 -1
- package/node_modules/@noodle-borg/service/dist/routes/contracts.js.map +0 -1
- /package/{dist → node_modules/@noodle-borg/devtools-ui/dist}/devtools-copy-styles.d.ts +0 -0
- /package/{dist → node_modules/@noodle-borg/devtools-ui/dist}/devtools-copy-styles.d.ts.map +0 -0
- /package/{dist → node_modules/@noodle-borg/devtools-ui/dist}/devtools-copy-styles.js +0 -0
- /package/{dist → node_modules/@noodle-borg/devtools-ui/dist}/devtools-copy-styles.js.map +0 -0
- /package/{dist → node_modules/@noodle-borg/devtools-ui/dist}/devtools-design-styles.d.ts +0 -0
- /package/{dist → node_modules/@noodle-borg/devtools-ui/dist}/devtools-design-styles.d.ts.map +0 -0
- /package/{dist → node_modules/@noodle-borg/devtools-ui/dist}/devtools-design-styles.js +0 -0
- /package/{dist → node_modules/@noodle-borg/devtools-ui/dist}/devtools-design-styles.js.map +0 -0
- /package/{dist → node_modules/@noodle-borg/devtools-ui/dist}/devtools-preview-control-styles.d.ts +0 -0
- /package/{dist → node_modules/@noodle-borg/devtools-ui/dist}/devtools-preview-control-styles.d.ts.map +0 -0
- /package/{dist → node_modules/@noodle-borg/devtools-ui/dist}/devtools-preview-control-styles.js +0 -0
- /package/{dist → node_modules/@noodle-borg/devtools-ui/dist}/devtools-preview-control-styles.js.map +0 -0
- /package/{dist → node_modules/@noodle-borg/devtools-ui/dist}/devtools-responsive-styles.d.ts +0 -0
- /package/{dist → node_modules/@noodle-borg/devtools-ui/dist}/devtools-responsive-styles.d.ts.map +0 -0
- /package/{dist → node_modules/@noodle-borg/devtools-ui/dist}/devtools-responsive-styles.js +0 -0
- /package/{dist → node_modules/@noodle-borg/devtools-ui/dist}/devtools-responsive-styles.js.map +0 -0
- /package/{dist → node_modules/@noodle-borg/devtools-ui/dist}/devtools-styles.d.ts +0 -0
- /package/{dist → node_modules/@noodle-borg/devtools-ui/dist}/devtools-styles.d.ts.map +0 -0
- /package/{dist → node_modules/@noodle-borg/devtools-ui/dist}/devtools-styles.js +0 -0
- /package/{dist → node_modules/@noodle-borg/devtools-ui/dist}/devtools-styles.js.map +0 -0
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { skillSlug, validateProductSkillPackageInput } from './product-skill-validation.js';
|
|
2
|
+
/** Render host-neutral, bounded product-skill Markdown from the safe App Package projection. */
|
|
3
|
+
export function renderProductSkillMarkdown(input) {
|
|
4
|
+
validateProductSkillPackageInput(input);
|
|
5
|
+
const title = heading(input.app.title);
|
|
6
|
+
return {
|
|
7
|
+
skill: renderSkill(input, title),
|
|
8
|
+
reference: renderReference(input, title),
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
function renderSkill(input, title) {
|
|
12
|
+
const lines = [
|
|
13
|
+
'---',
|
|
14
|
+
`name: ${skillSlug(input.app.name)}`,
|
|
15
|
+
`description: ${yamlScalar(input.skill.description)}`,
|
|
16
|
+
'---',
|
|
17
|
+
'',
|
|
18
|
+
`# ${title}`,
|
|
19
|
+
'',
|
|
20
|
+
`<!-- noodle-app-package source:${input.provenance.sourceManifestSha256} surface:${input.provenance.mcpSurfaceSha256} -->`,
|
|
21
|
+
'',
|
|
22
|
+
'## When to use this product',
|
|
23
|
+
...input.skill.useWhen.map((useWhen) => `- ${prose(useWhen)}`),
|
|
24
|
+
'',
|
|
25
|
+
'## Workflows',
|
|
26
|
+
...input.skill.workflows.flatMap((workflow) => [
|
|
27
|
+
'',
|
|
28
|
+
`### ${heading(workflow.title)}`,
|
|
29
|
+
...(workflow.intent === undefined ? [] : ['', prose(workflow.intent)]),
|
|
30
|
+
'',
|
|
31
|
+
...workflow.steps.map((step, index) => {
|
|
32
|
+
const guidance = step.guidance === undefined ? '' : ` — ${prose(step.guidance)}`;
|
|
33
|
+
const behavior = step.behavior === undefined ? '' : ` (${behaviorLabels(step.behavior).join('; ')})`;
|
|
34
|
+
return `${index + 1}. ${inlineCode(`${step.capability.kind}:${step.capability.name}`)}${guidance}${behavior}`;
|
|
35
|
+
}),
|
|
36
|
+
]),
|
|
37
|
+
'',
|
|
38
|
+
'## Boundaries',
|
|
39
|
+
...input.skill.boundaries.map((boundary) => `- ${prose(boundary)}`),
|
|
40
|
+
'',
|
|
41
|
+
'## Examples',
|
|
42
|
+
...input.skill.examples.map((example) => `- “${prose(example.prompt)}” — use \`${example.workflow}\`.`),
|
|
43
|
+
'',
|
|
44
|
+
'## MCP surface',
|
|
45
|
+
'',
|
|
46
|
+
'[Read the MCP surface reference.](references/mcp-surface.md)',
|
|
47
|
+
'',
|
|
48
|
+
];
|
|
49
|
+
return lines.join('\n');
|
|
50
|
+
}
|
|
51
|
+
function renderReference(input, title) {
|
|
52
|
+
const lines = [
|
|
53
|
+
`# ${title} MCP surface`,
|
|
54
|
+
'',
|
|
55
|
+
input.surface.auth.required
|
|
56
|
+
? `Authentication: required (${input.surface.auth.kind === 'federatedOidc' ? 'federated OIDC' : 'OIDC'}).`
|
|
57
|
+
: 'Authentication: not required.',
|
|
58
|
+
'',
|
|
59
|
+
'## Tools',
|
|
60
|
+
'',
|
|
61
|
+
'| Tool | Description | Behavior | Visibility |',
|
|
62
|
+
'| --- | --- | --- | --- |',
|
|
63
|
+
...sorted(input.surface.tools).map((tool) => `| ${tableCode(tool.name)} | ${tableText(tool.description)} | ${behaviorLabels(tool.behavior).join('; ')} | ${visibilityLabel(tool.visibility)} |`),
|
|
64
|
+
'',
|
|
65
|
+
'## Resources',
|
|
66
|
+
'',
|
|
67
|
+
'| Resource | Description |',
|
|
68
|
+
'| --- | --- |',
|
|
69
|
+
...sorted(input.surface.resources).map((resource) => `| ${tableCode(resource.name)} | ${tableText(resource.description ?? resource.title ?? 'No description.')} |`),
|
|
70
|
+
'',
|
|
71
|
+
'## Prompts',
|
|
72
|
+
'',
|
|
73
|
+
'| Prompt | Description | Arguments |',
|
|
74
|
+
'| --- | --- | --- |',
|
|
75
|
+
...sorted(input.surface.prompts).map((prompt) => `| ${tableCode(prompt.name)} | ${tableText(prompt.description ?? prompt.title ?? 'No description.')} | ${promptArguments(prompt)} |`),
|
|
76
|
+
'',
|
|
77
|
+
'## Widgets',
|
|
78
|
+
'',
|
|
79
|
+
'| Widget | Description | Opening tool |',
|
|
80
|
+
'| --- | --- | --- |',
|
|
81
|
+
...sorted(input.surface.widgets).map((widget) => `| ${tableCode(widget.name)} | ${tableText(widget.title ?? widget.description ?? 'Widget.')} | Open with ${tableCode(widget.tool)}. |`),
|
|
82
|
+
'',
|
|
83
|
+
];
|
|
84
|
+
return lines.join('\n');
|
|
85
|
+
}
|
|
86
|
+
function behaviorLabels(behavior) {
|
|
87
|
+
return [
|
|
88
|
+
behavior.readOnly ? 'read-only' : 'write',
|
|
89
|
+
...(behavior.destructive ? ['destructive'] : []),
|
|
90
|
+
...(behavior.idempotent ? ['idempotent'] : []),
|
|
91
|
+
...(behavior.openWorld ? ['open-world'] : []),
|
|
92
|
+
...(behavior.confirmationRequired ? ['confirmation required'] : []),
|
|
93
|
+
];
|
|
94
|
+
}
|
|
95
|
+
function sorted(items) {
|
|
96
|
+
return [...items].sort((left, right) => asciiCompare(left.name, right.name));
|
|
97
|
+
}
|
|
98
|
+
function asciiCompare(left, right) {
|
|
99
|
+
if (left < right)
|
|
100
|
+
return -1;
|
|
101
|
+
if (left > right)
|
|
102
|
+
return 1;
|
|
103
|
+
return 0;
|
|
104
|
+
}
|
|
105
|
+
function visibilityLabel(visibility) {
|
|
106
|
+
if (visibility.length === 1 && visibility[0] === 'app')
|
|
107
|
+
return 'app only';
|
|
108
|
+
if (visibility.includes('model') && visibility.includes('app'))
|
|
109
|
+
return 'model and app';
|
|
110
|
+
return 'model';
|
|
111
|
+
}
|
|
112
|
+
function promptArguments(input) {
|
|
113
|
+
if (input.arguments.length === 0)
|
|
114
|
+
return 'None.';
|
|
115
|
+
return input.arguments
|
|
116
|
+
.map((argument) => `${tableCode(argument.name)} (${argument.required ? 'required' : 'optional'})`)
|
|
117
|
+
.join(', ');
|
|
118
|
+
}
|
|
119
|
+
function heading(value) {
|
|
120
|
+
return prose(value).replaceAll('#', '\\#').slice(0, 200);
|
|
121
|
+
}
|
|
122
|
+
function prose(value) {
|
|
123
|
+
return value.replace(/\s+/g, ' ').trim();
|
|
124
|
+
}
|
|
125
|
+
function tableText(value) {
|
|
126
|
+
return prose(value).replace(/([\\|`*_[\]()<>#!])/g, '\\$1');
|
|
127
|
+
}
|
|
128
|
+
function tableCode(value) {
|
|
129
|
+
return `\`${value.replace(/([\\`|])/g, '\\$1')}\``;
|
|
130
|
+
}
|
|
131
|
+
function inlineCode(value) {
|
|
132
|
+
return `\`${value.replace(/([\\`])/g, '\\$1')}\``;
|
|
133
|
+
}
|
|
134
|
+
function yamlScalar(value) {
|
|
135
|
+
const text = prose(value);
|
|
136
|
+
return /^[A-Za-z0-9][A-Za-z0-9 .,'!?()/-]*$/.test(text) ? text : JSON.stringify(text);
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=product-skill-markdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"product-skill-markdown.js","sourceRoot":"","sources":["../src/product-skill-markdown.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ProductSkillPackageInput, RenderedProductSkillBundleV1, RenderedProductSkillFileV1 } from './product-skill-types.js';
|
|
2
|
+
export type { ProductSkillRenderErrorCode } from './product-skill-validation.js';
|
|
3
|
+
export { PRODUCT_SKILL_VALIDATION_LIMITS, ProductSkillRenderError, } from './product-skill-validation.js';
|
|
4
|
+
/** Render both project-local host projections without filesystem, network, auth, or compiler dependencies. */
|
|
5
|
+
export declare function renderProductSkillBundle(input: ProductSkillPackageInput): RenderedProductSkillBundleV1;
|
|
6
|
+
/** Verify persisted or injected files against the same canonical host contract used during rendering. */
|
|
7
|
+
export declare function validateRenderedProductSkillFiles(input: ProductSkillPackageInput, files: readonly RenderedProductSkillFileV1[]): void;
|
|
8
|
+
//# sourceMappingURL=product-skill-renderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"product-skill-renderer.d.ts","sourceRoot":"","sources":["../src/product-skill-renderer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,wBAAwB,EAExB,4BAA4B,EAC5B,0BAA0B,EAC3B,MAAM,0BAA0B,CAAC;AASlC,YAAY,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AACjF,OAAO,EACL,+BAA+B,EAC/B,uBAAuB,GACxB,MAAM,+BAA+B,CAAC;AAMvC,8GAA8G;AAC9G,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,wBAAwB,GAC9B,4BAA4B,CAsB9B;AAED,yGAAyG;AACzG,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,wBAAwB,EAC/B,KAAK,EAAE,SAAS,0BAA0B,EAAE,GAC3C,IAAI,CAGN"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
import { renderProductSkillMarkdown } from './product-skill-markdown.js';
|
|
3
|
+
import { ProductSkillRenderError, skillSlug, validateProductSkillPackageInput, } from './product-skill-validation.js';
|
|
4
|
+
import { AGENT_KIT_VERSION } from './version.js';
|
|
5
|
+
export { PRODUCT_SKILL_VALIDATION_LIMITS, ProductSkillRenderError, } from './product-skill-validation.js';
|
|
6
|
+
const MAX_FILE_BYTES = 64 * 1024;
|
|
7
|
+
const MAX_TOTAL_BYTES = 256 * 1024;
|
|
8
|
+
const MAX_SKILL_MD_LINES = 500;
|
|
9
|
+
/** Render both project-local host projections without filesystem, network, auth, or compiler dependencies. */
|
|
10
|
+
export function renderProductSkillBundle(input) {
|
|
11
|
+
validateProductSkillPackageInput(input);
|
|
12
|
+
const slug = skillSlug(input.app.name);
|
|
13
|
+
const markdown = renderProductSkillMarkdown(input);
|
|
14
|
+
const unverified = [
|
|
15
|
+
renderFile('codex', `.agents/skills/${slug}/SKILL.md`, markdown.skill),
|
|
16
|
+
renderFile('codex', `.agents/skills/${slug}/references/mcp-surface.md`, markdown.reference),
|
|
17
|
+
renderFile('claude-code', `.claude/skills/${slug}/SKILL.md`, markdown.skill),
|
|
18
|
+
renderFile('claude-code', `.claude/skills/${slug}/references/mcp-surface.md`, markdown.reference),
|
|
19
|
+
];
|
|
20
|
+
validateFiles(unverified, slug);
|
|
21
|
+
const files = unverified.map((file) => deepFreeze(file));
|
|
22
|
+
return deepFreeze({
|
|
23
|
+
schemaVersion: 1,
|
|
24
|
+
rendererVersion: AGENT_KIT_VERSION,
|
|
25
|
+
files: deepFreeze(files),
|
|
26
|
+
bundleSha256: bundleSha256(input, files),
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
/** Verify persisted or injected files against the same canonical host contract used during rendering. */
|
|
30
|
+
export function validateRenderedProductSkillFiles(input, files) {
|
|
31
|
+
validateProductSkillPackageInput(input);
|
|
32
|
+
validateFiles(files, skillSlug(input.app.name));
|
|
33
|
+
}
|
|
34
|
+
function renderFile(target, path, content) {
|
|
35
|
+
return {
|
|
36
|
+
target,
|
|
37
|
+
path,
|
|
38
|
+
content,
|
|
39
|
+
sha256: sha256(content),
|
|
40
|
+
byteLength: Buffer.byteLength(content, 'utf8'),
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
function validateFiles(files, slug) {
|
|
44
|
+
const expected = new Set([
|
|
45
|
+
`codex\u0000.agents/skills/${slug}/SKILL.md`,
|
|
46
|
+
`codex\u0000.agents/skills/${slug}/references/mcp-surface.md`,
|
|
47
|
+
`claude-code\u0000.claude/skills/${slug}/SKILL.md`,
|
|
48
|
+
`claude-code\u0000.claude/skills/${slug}/references/mcp-surface.md`,
|
|
49
|
+
]);
|
|
50
|
+
const pairs = new Set();
|
|
51
|
+
let totalBytes = 0;
|
|
52
|
+
let fileTooLarge = false;
|
|
53
|
+
for (const file of files) {
|
|
54
|
+
const pair = `${file.target}\u0000${file.path}`;
|
|
55
|
+
if (!isSafeRelativePath(file.path) || !expected.has(pair))
|
|
56
|
+
fail('app_package_unsafe_path');
|
|
57
|
+
if (!hasOneLevelReferenceDepth(file.path, slug))
|
|
58
|
+
fail('app_package_unsafe_path');
|
|
59
|
+
if (pairs.has(pair))
|
|
60
|
+
fail('app_package_unsafe_path');
|
|
61
|
+
pairs.add(pair);
|
|
62
|
+
if (!nonBlank(file.content))
|
|
63
|
+
fail('app_package_invalid');
|
|
64
|
+
const byteLength = Buffer.byteLength(file.content, 'utf8');
|
|
65
|
+
if (file.byteLength !== byteLength || file.sha256 !== sha256(file.content))
|
|
66
|
+
fail('app_package_invalid');
|
|
67
|
+
if (file.path.endsWith('/SKILL.md') && markdownLineCount(file.content) > MAX_SKILL_MD_LINES)
|
|
68
|
+
fail('app_package_file_too_large');
|
|
69
|
+
if (byteLength > MAX_FILE_BYTES)
|
|
70
|
+
fileTooLarge = true;
|
|
71
|
+
totalBytes += byteLength;
|
|
72
|
+
}
|
|
73
|
+
if (pairs.size !== expected.size || expected.size !== files.length)
|
|
74
|
+
fail('app_package_unsafe_path');
|
|
75
|
+
if (totalBytes > MAX_TOTAL_BYTES)
|
|
76
|
+
fail('app_package_total_too_large');
|
|
77
|
+
if (fileTooLarge)
|
|
78
|
+
fail('app_package_file_too_large');
|
|
79
|
+
}
|
|
80
|
+
function markdownLineCount(content) {
|
|
81
|
+
return (content.match(/\n/g) ?? []).length + (content.endsWith('\n') ? 0 : 1);
|
|
82
|
+
}
|
|
83
|
+
function hasOneLevelReferenceDepth(path, slug) {
|
|
84
|
+
const roots = [`.agents/skills/${slug}`, `.claude/skills/${slug}`];
|
|
85
|
+
return roots.some((root) => path === `${root}/SKILL.md` || path === `${root}/references/mcp-surface.md`);
|
|
86
|
+
}
|
|
87
|
+
function isSafeRelativePath(path) {
|
|
88
|
+
return (path.length > 0 &&
|
|
89
|
+
!path.startsWith('/') &&
|
|
90
|
+
!path.includes('\\') &&
|
|
91
|
+
!path.includes('\0') &&
|
|
92
|
+
path.split('/').every((part) => part !== '' && part !== '.' && part !== '..'));
|
|
93
|
+
}
|
|
94
|
+
function bundleSha256(input, files) {
|
|
95
|
+
return sha256(canonicalJson({
|
|
96
|
+
sourceManifestSha256: input.provenance.sourceManifestSha256,
|
|
97
|
+
mcpSurfaceSha256: input.provenance.mcpSurfaceSha256,
|
|
98
|
+
files: files.map((file) => ({ target: file.target, path: file.path, sha256: file.sha256 })),
|
|
99
|
+
}));
|
|
100
|
+
}
|
|
101
|
+
function canonicalJson(value) {
|
|
102
|
+
if (value === null ||
|
|
103
|
+
typeof value === 'boolean' ||
|
|
104
|
+
typeof value === 'string' ||
|
|
105
|
+
(typeof value === 'number' && Number.isFinite(value)))
|
|
106
|
+
return JSON.stringify(value);
|
|
107
|
+
if (Array.isArray(value))
|
|
108
|
+
return `[${value.map(canonicalJson).join(',')}]`;
|
|
109
|
+
if (!isRecord(value))
|
|
110
|
+
throw new TypeError('canonical JSON accepts only objects, arrays, and primitives');
|
|
111
|
+
return `{${Object.keys(value)
|
|
112
|
+
.sort()
|
|
113
|
+
.map((key) => `${JSON.stringify(key)}:${canonicalJson(value[key])}`)
|
|
114
|
+
.join(',')}}`;
|
|
115
|
+
}
|
|
116
|
+
function deepFreeze(value) {
|
|
117
|
+
if (Array.isArray(value))
|
|
118
|
+
value.forEach(deepFreeze);
|
|
119
|
+
else if (isRecord(value))
|
|
120
|
+
Object.values(value).forEach(deepFreeze);
|
|
121
|
+
return Object.freeze(value);
|
|
122
|
+
}
|
|
123
|
+
function sha256(value) {
|
|
124
|
+
return createHash('sha256').update(value).digest('hex');
|
|
125
|
+
}
|
|
126
|
+
function nonBlank(value) {
|
|
127
|
+
return typeof value === 'string' && value.trim().length > 0;
|
|
128
|
+
}
|
|
129
|
+
function isRecord(value) {
|
|
130
|
+
return value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
131
|
+
}
|
|
132
|
+
function fail(code) {
|
|
133
|
+
throw new ProductSkillRenderError(code);
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=product-skill-renderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"product-skill-renderer.js","sourceRoot":"","sources":["../src/product-skill-renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/** Public, compiler-assignable input consumed by the dependency-free product-skill renderer. */
|
|
2
|
+
export interface ProductSkillPackageInput {
|
|
3
|
+
readonly schemaVersion: '1';
|
|
4
|
+
readonly app: {
|
|
5
|
+
readonly name: string;
|
|
6
|
+
readonly title: string;
|
|
7
|
+
readonly version: string;
|
|
8
|
+
};
|
|
9
|
+
readonly skill: {
|
|
10
|
+
readonly description: string;
|
|
11
|
+
readonly useWhen: readonly string[];
|
|
12
|
+
readonly workflows: readonly ProductSkillWorkflow[];
|
|
13
|
+
readonly boundaries: readonly string[];
|
|
14
|
+
readonly examples: readonly {
|
|
15
|
+
readonly prompt: string;
|
|
16
|
+
readonly workflow: string;
|
|
17
|
+
}[];
|
|
18
|
+
};
|
|
19
|
+
readonly surface: ProductSkillSurface;
|
|
20
|
+
readonly provenance: {
|
|
21
|
+
readonly sourceManifestSha256: string;
|
|
22
|
+
readonly mcpSurfaceSha256: string;
|
|
23
|
+
readonly compilerVersion: '1';
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export interface ProductSkillWorkflow {
|
|
27
|
+
readonly id: string;
|
|
28
|
+
readonly title: string;
|
|
29
|
+
readonly intent?: string | undefined;
|
|
30
|
+
readonly steps: readonly ProductSkillWorkflowStep[];
|
|
31
|
+
}
|
|
32
|
+
export interface ProductSkillWorkflowStep {
|
|
33
|
+
readonly capability: {
|
|
34
|
+
readonly kind: ProductSkillCapabilityKind;
|
|
35
|
+
readonly name: string;
|
|
36
|
+
};
|
|
37
|
+
readonly guidance?: string | undefined;
|
|
38
|
+
readonly behavior?: ProductSkillToolBehavior | undefined;
|
|
39
|
+
}
|
|
40
|
+
export type ProductSkillCapabilityKind = 'tool' | 'resource' | 'prompt';
|
|
41
|
+
export interface ProductSkillToolBehavior {
|
|
42
|
+
readonly readOnly: boolean;
|
|
43
|
+
readonly destructive: boolean;
|
|
44
|
+
readonly idempotent: boolean;
|
|
45
|
+
readonly openWorld: boolean;
|
|
46
|
+
readonly confirmationRequired: boolean;
|
|
47
|
+
}
|
|
48
|
+
export interface ProductSkillSurface {
|
|
49
|
+
readonly auth: {
|
|
50
|
+
readonly required: boolean;
|
|
51
|
+
readonly kind?: 'oidc' | 'federatedOidc' | undefined;
|
|
52
|
+
};
|
|
53
|
+
readonly tools: readonly ProductSkillTool[];
|
|
54
|
+
readonly resources: readonly ProductSkillResource[];
|
|
55
|
+
readonly prompts: readonly ProductSkillPrompt[];
|
|
56
|
+
readonly widgets: readonly ProductSkillWidget[];
|
|
57
|
+
}
|
|
58
|
+
export interface ProductSkillTool {
|
|
59
|
+
readonly kind: 'tool';
|
|
60
|
+
readonly name: string;
|
|
61
|
+
readonly title?: string | undefined;
|
|
62
|
+
readonly description: string;
|
|
63
|
+
readonly input: ProductSkillSchemaSummary;
|
|
64
|
+
readonly output?: ProductSkillSchemaSummary | undefined;
|
|
65
|
+
readonly behavior: ProductSkillToolBehavior;
|
|
66
|
+
readonly visibility: readonly ('model' | 'app')[];
|
|
67
|
+
readonly authorization?: {
|
|
68
|
+
readonly requiredScopes?: readonly string[] | undefined;
|
|
69
|
+
readonly allowedRoles?: readonly string[] | undefined;
|
|
70
|
+
} | undefined;
|
|
71
|
+
readonly widget?: string | undefined;
|
|
72
|
+
}
|
|
73
|
+
export interface ProductSkillSchemaSummary {
|
|
74
|
+
readonly type: string;
|
|
75
|
+
readonly fields?: readonly {
|
|
76
|
+
readonly name: string;
|
|
77
|
+
readonly type: string;
|
|
78
|
+
readonly required: boolean;
|
|
79
|
+
readonly description?: string | undefined;
|
|
80
|
+
}[] | undefined;
|
|
81
|
+
}
|
|
82
|
+
export interface ProductSkillResource {
|
|
83
|
+
readonly kind: 'resource';
|
|
84
|
+
readonly name: string;
|
|
85
|
+
readonly uri: string;
|
|
86
|
+
readonly title?: string | undefined;
|
|
87
|
+
readonly description?: string | undefined;
|
|
88
|
+
readonly mimeType?: string | undefined;
|
|
89
|
+
}
|
|
90
|
+
export interface ProductSkillPrompt {
|
|
91
|
+
readonly kind: 'prompt';
|
|
92
|
+
readonly name: string;
|
|
93
|
+
readonly title?: string | undefined;
|
|
94
|
+
readonly description?: string | undefined;
|
|
95
|
+
readonly arguments: readonly {
|
|
96
|
+
readonly name: string;
|
|
97
|
+
readonly description?: string | undefined;
|
|
98
|
+
readonly required: boolean;
|
|
99
|
+
}[];
|
|
100
|
+
}
|
|
101
|
+
export interface ProductSkillWidget {
|
|
102
|
+
readonly kind: 'widget';
|
|
103
|
+
readonly name: string;
|
|
104
|
+
readonly title?: string | undefined;
|
|
105
|
+
readonly description?: string | undefined;
|
|
106
|
+
readonly tool: string;
|
|
107
|
+
}
|
|
108
|
+
export interface ProductSkillMarkdown {
|
|
109
|
+
readonly skill: string;
|
|
110
|
+
readonly reference: string;
|
|
111
|
+
}
|
|
112
|
+
export type ProductSkillRenderTarget = 'codex' | 'claude-code';
|
|
113
|
+
export interface RenderedProductSkillFileV1 {
|
|
114
|
+
readonly target: ProductSkillRenderTarget;
|
|
115
|
+
readonly path: string;
|
|
116
|
+
readonly content: string;
|
|
117
|
+
readonly sha256: string;
|
|
118
|
+
readonly byteLength: number;
|
|
119
|
+
}
|
|
120
|
+
export interface RenderedProductSkillBundleV1 {
|
|
121
|
+
readonly schemaVersion: 1;
|
|
122
|
+
readonly rendererVersion: string;
|
|
123
|
+
readonly files: readonly RenderedProductSkillFileV1[];
|
|
124
|
+
readonly bundleSha256: string;
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=product-skill-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"product-skill-types.d.ts","sourceRoot":"","sources":["../src/product-skill-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"product-skill-types.js","sourceRoot":"","sources":["../src/product-skill-types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { ProductSkillPackageInput } from './product-skill-types.js';
|
|
2
|
+
/** Drift-testable validation bounds; Agent Kit stays runtime-dependency-free. */
|
|
3
|
+
export declare const PRODUCT_SKILL_VALIDATION_LIMITS: Readonly<{
|
|
4
|
+
identifierChars: 200;
|
|
5
|
+
proseChars: 4000;
|
|
6
|
+
useWhen: 32;
|
|
7
|
+
workflows: 32;
|
|
8
|
+
workflowSteps: 64;
|
|
9
|
+
boundaries: 64;
|
|
10
|
+
examples: 64;
|
|
11
|
+
surfaceItems: 256;
|
|
12
|
+
schemaFields: 64;
|
|
13
|
+
promptArguments: 64;
|
|
14
|
+
authorizationValues: 128;
|
|
15
|
+
artifactBytes: number;
|
|
16
|
+
}>;
|
|
17
|
+
export type ProductSkillRenderErrorCode = 'app_package_invalid' | 'app_package_unsafe_path' | 'app_package_file_too_large' | 'app_package_total_too_large' | 'app_package_sensitive_content';
|
|
18
|
+
/** A stable, non-echoing failure for invalid generated product-skill packages. */
|
|
19
|
+
export declare class ProductSkillRenderError extends Error {
|
|
20
|
+
readonly code: ProductSkillRenderErrorCode;
|
|
21
|
+
constructor(code: ProductSkillRenderErrorCode);
|
|
22
|
+
}
|
|
23
|
+
/** Validate the compiler-compatible public input before either Markdown or bundle rendering. */
|
|
24
|
+
export declare function validateProductSkillPackageInput(input: ProductSkillPackageInput): void;
|
|
25
|
+
/** Total Core-name to host-name mapping; the fallback namespace cannot collide with a simple slug. */
|
|
26
|
+
export declare function skillSlug(name: string): string;
|
|
27
|
+
//# sourceMappingURL=product-skill-validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"product-skill-validation.d.ts","sourceRoot":"","sources":["../src/product-skill-validation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAqBzE,iFAAiF;AACjF,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;EAa1C,CAAC;AAEH,MAAM,MAAM,2BAA2B,GACnC,qBAAqB,GACrB,yBAAyB,GACzB,4BAA4B,GAC5B,6BAA6B,GAC7B,+BAA+B,CAAC;AAEpC,kFAAkF;AAClF,qBAAa,uBAAwB,SAAQ,KAAK;IACpC,QAAQ,CAAC,IAAI,EAAE,2BAA2B;gBAAjC,IAAI,EAAE,2BAA2B;CAIvD;AAED,gGAAgG;AAChG,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,wBAAwB,GAAG,IAAI,CAmBtF;AAED,sGAAsG;AACtG,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAW9C"}
|