@xemahq/kernel-contracts 0.1.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/agent-composition/index.d.ts +7 -0
- package/dist/agent-composition/index.d.ts.map +1 -0
- package/dist/agent-composition/index.js +23 -0
- package/dist/agent-composition/index.js.map +1 -0
- package/dist/agent-composition/lib/capability-layer.d.ts +11 -0
- package/dist/agent-composition/lib/capability-layer.d.ts.map +1 -0
- package/dist/agent-composition/lib/capability-layer.js +10 -0
- package/dist/agent-composition/lib/capability-layer.js.map +1 -0
- package/dist/agent-composition/lib/composition-limits-schema.d.ts +4 -0
- package/dist/agent-composition/lib/composition-limits-schema.d.ts.map +1 -0
- package/dist/agent-composition/lib/composition-limits-schema.js +13 -0
- package/dist/agent-composition/lib/composition-limits-schema.js.map +1 -0
- package/dist/agent-composition/lib/composition-workspace.d.ts +35 -0
- package/dist/agent-composition/lib/composition-workspace.d.ts.map +1 -0
- package/dist/agent-composition/lib/composition-workspace.js +9 -0
- package/dist/agent-composition/lib/composition-workspace.js.map +1 -0
- package/dist/agent-composition/lib/composition.d.ts +66 -0
- package/dist/agent-composition/lib/composition.d.ts.map +1 -0
- package/dist/agent-composition/lib/composition.js +18 -0
- package/dist/agent-composition/lib/composition.js.map +1 -0
- package/dist/agent-composition/lib/intrinsic-floor.d.ts +15 -0
- package/dist/agent-composition/lib/intrinsic-floor.d.ts.map +1 -0
- package/dist/agent-composition/lib/intrinsic-floor.js +22 -0
- package/dist/agent-composition/lib/intrinsic-floor.js.map +1 -0
- package/dist/agent-composition/lib/model-resolution-matrix.d.ts +38 -0
- package/dist/agent-composition/lib/model-resolution-matrix.d.ts.map +1 -0
- package/dist/agent-composition/lib/model-resolution-matrix.js +12 -0
- package/dist/agent-composition/lib/model-resolution-matrix.js.map +1 -0
- package/dist/agent-workspace/awp-spec.json +225 -0
- package/dist/agent-workspace/index.d.ts +12 -0
- package/dist/agent-workspace/index.d.ts.map +1 -0
- package/dist/agent-workspace/index.js +28 -0
- package/dist/agent-workspace/index.js.map +1 -0
- package/dist/agent-workspace/lib/agent-run-context.d.ts +12 -0
- package/dist/agent-workspace/lib/agent-run-context.d.ts.map +1 -0
- package/dist/agent-workspace/lib/agent-run-context.js +3 -0
- package/dist/agent-workspace/lib/agent-run-context.js.map +1 -0
- package/dist/agent-workspace/lib/agent-tool-defaults.d.ts +21 -0
- package/dist/agent-workspace/lib/agent-tool-defaults.d.ts.map +1 -0
- package/dist/agent-workspace/lib/agent-tool-defaults.js +111 -0
- package/dist/agent-workspace/lib/agent-tool-defaults.js.map +1 -0
- package/dist/agent-workspace/lib/awp-v1.d.ts +15 -0
- package/dist/agent-workspace/lib/awp-v1.d.ts.map +1 -0
- package/dist/agent-workspace/lib/awp-v1.js +197 -0
- package/dist/agent-workspace/lib/awp-v1.js.map +1 -0
- package/dist/agent-workspace/lib/context-json.d.ts +35 -0
- package/dist/agent-workspace/lib/context-json.d.ts.map +1 -0
- package/dist/agent-workspace/lib/context-json.js +3 -0
- package/dist/agent-workspace/lib/context-json.js.map +1 -0
- package/dist/agent-workspace/lib/deliverable-spec-ref.d.ts +10 -0
- package/dist/agent-workspace/lib/deliverable-spec-ref.d.ts.map +1 -0
- package/dist/agent-workspace/lib/deliverable-spec-ref.js +33 -0
- package/dist/agent-workspace/lib/deliverable-spec-ref.js.map +1 -0
- package/dist/agent-workspace/lib/endpoint-fetch-spec.d.ts +31 -0
- package/dist/agent-workspace/lib/endpoint-fetch-spec.d.ts.map +1 -0
- package/dist/agent-workspace/lib/endpoint-fetch-spec.js +20 -0
- package/dist/agent-workspace/lib/endpoint-fetch-spec.js.map +1 -0
- package/dist/agent-workspace/lib/manifest.d.ts +28 -0
- package/dist/agent-workspace/lib/manifest.d.ts.map +1 -0
- package/dist/agent-workspace/lib/manifest.js +16 -0
- package/dist/agent-workspace/lib/manifest.js.map +1 -0
- package/dist/agent-workspace/lib/mount-apply.d.ts +42 -0
- package/dist/agent-workspace/lib/mount-apply.d.ts.map +1 -0
- package/dist/agent-workspace/lib/mount-apply.js +15 -0
- package/dist/agent-workspace/lib/mount-apply.js.map +1 -0
- package/dist/agent-workspace/lib/working-file.d.ts +20 -0
- package/dist/agent-workspace/lib/working-file.d.ts.map +1 -0
- package/dist/agent-workspace/lib/working-file.js +42 -0
- package/dist/agent-workspace/lib/working-file.js.map +1 -0
- package/dist/agent-workspace/lib/workspace-layout.d.ts +34 -0
- package/dist/agent-workspace/lib/workspace-layout.d.ts.map +1 -0
- package/dist/agent-workspace/lib/workspace-layout.js +31 -0
- package/dist/agent-workspace/lib/workspace-layout.js.map +1 -0
- package/dist/agent-workspace/lib/workspace-spec.d.ts +61 -0
- package/dist/agent-workspace/lib/workspace-spec.d.ts.map +1 -0
- package/dist/agent-workspace/lib/workspace-spec.js +19 -0
- package/dist/agent-workspace/lib/workspace-spec.js.map +1 -0
- package/dist/biome/index.d.ts +11 -0
- package/dist/biome/index.d.ts.map +1 -0
- package/dist/biome/index.js +27 -0
- package/dist/biome/index.js.map +1 -0
- package/dist/biome/lib/biome-api.d.ts +12 -0
- package/dist/biome/lib/biome-api.d.ts.map +1 -0
- package/dist/biome/lib/biome-api.js +14 -0
- package/dist/biome/lib/biome-api.js.map +1 -0
- package/dist/biome/lib/biome-capability-refs.d.ts +11 -0
- package/dist/biome/lib/biome-capability-refs.d.ts.map +1 -0
- package/dist/biome/lib/biome-capability-refs.js +12 -0
- package/dist/biome/lib/biome-capability-refs.js.map +1 -0
- package/dist/biome/lib/biome-engines.d.ts +6 -0
- package/dist/biome/lib/biome-engines.d.ts.map +1 -0
- package/dist/biome/lib/biome-engines.js +8 -0
- package/dist/biome/lib/biome-engines.js.map +1 -0
- package/dist/biome/lib/biome-lifecycle-hooks.d.ts +10 -0
- package/dist/biome/lib/biome-lifecycle-hooks.d.ts.map +1 -0
- package/dist/biome/lib/biome-lifecycle-hooks.js +12 -0
- package/dist/biome/lib/biome-lifecycle-hooks.js.map +1 -0
- package/dist/biome/lib/biome-lifecycle.d.ts +12 -0
- package/dist/biome/lib/biome-lifecycle.d.ts.map +1 -0
- package/dist/biome/lib/biome-lifecycle.js +16 -0
- package/dist/biome/lib/biome-lifecycle.js.map +1 -0
- package/dist/biome/lib/biome-manifest.d.ts +36 -0
- package/dist/biome/lib/biome-manifest.d.ts.map +1 -0
- package/dist/biome/lib/biome-manifest.js +38 -0
- package/dist/biome/lib/biome-manifest.js.map +1 -0
- package/dist/biome/lib/biome-permissions.d.ts +9 -0
- package/dist/biome/lib/biome-permissions.d.ts.map +1 -0
- package/dist/biome/lib/biome-permissions.js +11 -0
- package/dist/biome/lib/biome-permissions.js.map +1 -0
- package/dist/biome/lib/biome-scope.d.ts +9 -0
- package/dist/biome/lib/biome-scope.d.ts.map +1 -0
- package/dist/biome/lib/biome-scope.js +13 -0
- package/dist/biome/lib/biome-scope.js.map +1 -0
- package/dist/biome/lib/biome-trust-tier.d.ts +11 -0
- package/dist/biome/lib/biome-trust-tier.d.ts.map +1 -0
- package/dist/biome/lib/biome-trust-tier.js +15 -0
- package/dist/biome/lib/biome-trust-tier.js.map +1 -0
- package/dist/biome/lib/trust-tier-policies.d.ts +8 -0
- package/dist/biome/lib/trust-tier-policies.d.ts.map +1 -0
- package/dist/biome/lib/trust-tier-policies.js +66 -0
- package/dist/biome/lib/trust-tier-policies.js.map +1 -0
- package/dist/capability/index.d.ts +9 -0
- package/dist/capability/index.d.ts.map +1 -0
- package/dist/capability/index.js +25 -0
- package/dist/capability/index.js.map +1 -0
- package/dist/capability/lib/capability-contribution.d.ts +18 -0
- package/dist/capability/lib/capability-contribution.d.ts.map +1 -0
- package/dist/capability/lib/capability-contribution.js +23 -0
- package/dist/capability/lib/capability-contribution.js.map +1 -0
- package/dist/capability/lib/capability-grant.d.ts +22 -0
- package/dist/capability/lib/capability-grant.d.ts.map +1 -0
- package/dist/capability/lib/capability-grant.js +27 -0
- package/dist/capability/lib/capability-grant.js.map +1 -0
- package/dist/capability/lib/capability-policy.d.ts +12 -0
- package/dist/capability/lib/capability-policy.d.ts.map +1 -0
- package/dist/capability/lib/capability-policy.js +14 -0
- package/dist/capability/lib/capability-policy.js.map +1 -0
- package/dist/capability/lib/capability-ref.d.ts +19 -0
- package/dist/capability/lib/capability-ref.d.ts.map +1 -0
- package/dist/capability/lib/capability-ref.js +63 -0
- package/dist/capability/lib/capability-ref.js.map +1 -0
- package/dist/capability/lib/errors.d.ts +60 -0
- package/dist/capability/lib/errors.d.ts.map +1 -0
- package/dist/capability/lib/errors.js +73 -0
- package/dist/capability/lib/errors.js.map +1 -0
- package/dist/capability/lib/meta-tool.d.ts +77 -0
- package/dist/capability/lib/meta-tool.d.ts.map +1 -0
- package/dist/capability/lib/meta-tool.js +76 -0
- package/dist/capability/lib/meta-tool.js.map +1 -0
- package/dist/capability/lib/permission-profile.d.ts +35 -0
- package/dist/capability/lib/permission-profile.d.ts.map +1 -0
- package/dist/capability/lib/permission-profile.js +38 -0
- package/dist/capability/lib/permission-profile.js.map +1 -0
- package/dist/capability/lib/shell-command-descriptor.d.ts +19 -0
- package/dist/capability/lib/shell-command-descriptor.d.ts.map +1 -0
- package/dist/capability/lib/shell-command-descriptor.js +20 -0
- package/dist/capability/lib/shell-command-descriptor.js.map +1 -0
- package/dist/contribution/index.d.ts +5 -0
- package/dist/contribution/index.d.ts.map +1 -0
- package/dist/contribution/index.js +21 -0
- package/dist/contribution/index.js.map +1 -0
- package/dist/contribution/lib/contribution-kind.d.ts +44 -0
- package/dist/contribution/lib/contribution-kind.d.ts.map +1 -0
- package/dist/contribution/lib/contribution-kind.js +47 -0
- package/dist/contribution/lib/contribution-kind.js.map +1 -0
- package/dist/contribution/lib/contribution-source.d.ts +11 -0
- package/dist/contribution/lib/contribution-source.d.ts.map +1 -0
- package/dist/contribution/lib/contribution-source.js +14 -0
- package/dist/contribution/lib/contribution-source.js.map +1 -0
- package/dist/contribution/lib/contribution.d.ts +36 -0
- package/dist/contribution/lib/contribution.d.ts.map +1 -0
- package/dist/contribution/lib/contribution.js +56 -0
- package/dist/contribution/lib/contribution.js.map +1 -0
- package/dist/contribution/lib/registry.d.ts +25 -0
- package/dist/contribution/lib/registry.d.ts.map +1 -0
- package/dist/contribution/lib/registry.js +54 -0
- package/dist/contribution/lib/registry.js.map +1 -0
- package/dist/document-templates/index.d.ts +3 -0
- package/dist/document-templates/index.d.ts.map +1 -0
- package/dist/document-templates/index.js +19 -0
- package/dist/document-templates/index.js.map +1 -0
- package/dist/document-templates/lib/document-template.d.ts +24 -0
- package/dist/document-templates/lib/document-template.d.ts.map +1 -0
- package/dist/document-templates/lib/document-template.js +10 -0
- package/dist/document-templates/lib/document-template.js.map +1 -0
- package/dist/document-templates/lib/index.d.ts +3 -0
- package/dist/document-templates/lib/index.d.ts.map +1 -0
- package/dist/document-templates/lib/index.js +19 -0
- package/dist/document-templates/lib/index.js.map +1 -0
- package/dist/document-templates/lib/rendering-shape.d.ts +7 -0
- package/dist/document-templates/lib/rendering-shape.d.ts.map +1 -0
- package/dist/document-templates/lib/rendering-shape.js +20 -0
- package/dist/document-templates/lib/rendering-shape.js.map +1 -0
- package/dist/document-themes/index.d.ts +3 -0
- package/dist/document-themes/index.d.ts.map +1 -0
- package/dist/document-themes/index.js +19 -0
- package/dist/document-themes/index.js.map +1 -0
- package/dist/document-themes/lib/component-vocabulary.d.ts +16 -0
- package/dist/document-themes/lib/component-vocabulary.d.ts.map +1 -0
- package/dist/document-themes/lib/component-vocabulary.js +55 -0
- package/dist/document-themes/lib/component-vocabulary.js.map +1 -0
- package/dist/document-themes/lib/document-theme.d.ts +57 -0
- package/dist/document-themes/lib/document-theme.d.ts.map +1 -0
- package/dist/document-themes/lib/document-theme.js +10 -0
- package/dist/document-themes/lib/document-theme.js.map +1 -0
- package/dist/document-themes/lib/index.d.ts +3 -0
- package/dist/document-themes/lib/index.d.ts.map +1 -0
- package/dist/document-themes/lib/index.js +19 -0
- package/dist/document-themes/lib/index.js.map +1 -0
- package/dist/entitlement/index.d.ts +2 -0
- package/dist/entitlement/index.d.ts.map +1 -0
- package/dist/entitlement/index.js +18 -0
- package/dist/entitlement/index.js.map +1 -0
- package/dist/entitlement/lib/entitlement.d.ts +25 -0
- package/dist/entitlement/lib/entitlement.d.ts.map +1 -0
- package/dist/entitlement/lib/entitlement.js +54 -0
- package/dist/entitlement/lib/entitlement.js.map +1 -0
- package/dist/execution-context/index.d.ts +4 -0
- package/dist/execution-context/index.d.ts.map +1 -0
- package/dist/execution-context/index.js +20 -0
- package/dist/execution-context/index.js.map +1 -0
- package/dist/execution-context/lib/caller.d.ts +19 -0
- package/dist/execution-context/lib/caller.d.ts.map +1 -0
- package/dist/execution-context/lib/caller.js +22 -0
- package/dist/execution-context/lib/caller.js.map +1 -0
- package/dist/execution-context/lib/execution-context.d.ts +60 -0
- package/dist/execution-context/lib/execution-context.d.ts.map +1 -0
- package/dist/execution-context/lib/execution-context.js +58 -0
- package/dist/execution-context/lib/execution-context.js.map +1 -0
- package/dist/execution-context/lib/subject.d.ts +3 -0
- package/dist/execution-context/lib/subject.d.ts.map +1 -0
- package/dist/execution-context/lib/subject.js +11 -0
- package/dist/execution-context/lib/subject.js.map +1 -0
- package/dist/execution-environment/index.d.ts +4 -0
- package/dist/execution-environment/index.d.ts.map +1 -0
- package/dist/execution-environment/index.js +20 -0
- package/dist/execution-environment/index.js.map +1 -0
- package/dist/execution-environment/lib/approval-rule.d.ts +10 -0
- package/dist/execution-environment/lib/approval-rule.d.ts.map +1 -0
- package/dist/execution-environment/lib/approval-rule.js +12 -0
- package/dist/execution-environment/lib/approval-rule.js.map +1 -0
- package/dist/execution-environment/lib/built-in-environments.d.ts +16 -0
- package/dist/execution-environment/lib/built-in-environments.d.ts.map +1 -0
- package/dist/execution-environment/lib/built-in-environments.js +33 -0
- package/dist/execution-environment/lib/built-in-environments.js.map +1 -0
- package/dist/execution-environment/lib/execution-environment.d.ts +58 -0
- package/dist/execution-environment/lib/execution-environment.d.ts.map +1 -0
- package/dist/execution-environment/lib/execution-environment.js +89 -0
- package/dist/execution-environment/lib/execution-environment.js.map +1 -0
- package/dist/kernel-state/index.d.ts +4 -0
- package/dist/kernel-state/index.d.ts.map +1 -0
- package/dist/kernel-state/index.js +20 -0
- package/dist/kernel-state/index.js.map +1 -0
- package/dist/kernel-state/lib/adapter-kind.d.ts +5 -0
- package/dist/kernel-state/lib/adapter-kind.d.ts.map +1 -0
- package/dist/kernel-state/lib/adapter-kind.js +9 -0
- package/dist/kernel-state/lib/adapter-kind.js.map +1 -0
- package/dist/kernel-state/lib/kernel-state.d.ts +37 -0
- package/dist/kernel-state/lib/kernel-state.d.ts.map +1 -0
- package/dist/kernel-state/lib/kernel-state.js +9 -0
- package/dist/kernel-state/lib/kernel-state.js.map +1 -0
- package/dist/kernel-state/lib/key-grammar.d.ts +16 -0
- package/dist/kernel-state/lib/key-grammar.d.ts.map +1 -0
- package/dist/kernel-state/lib/key-grammar.js +56 -0
- package/dist/kernel-state/lib/key-grammar.js.map +1 -0
- package/dist/llm-gateway/index.d.ts +3 -0
- package/dist/llm-gateway/index.d.ts.map +1 -0
- package/dist/llm-gateway/index.js +19 -0
- package/dist/llm-gateway/index.js.map +1 -0
- package/dist/llm-gateway/lib/caller.d.ts +14 -0
- package/dist/llm-gateway/lib/caller.d.ts.map +1 -0
- package/dist/llm-gateway/lib/caller.js +11 -0
- package/dist/llm-gateway/lib/caller.js.map +1 -0
- package/dist/llm-gateway/lib/errors.d.ts +27 -0
- package/dist/llm-gateway/lib/errors.d.ts.map +1 -0
- package/dist/llm-gateway/lib/errors.js +36 -0
- package/dist/llm-gateway/lib/errors.js.map +1 -0
- package/dist/mcp-tool/index.d.ts +7 -0
- package/dist/mcp-tool/index.d.ts.map +1 -0
- package/dist/mcp-tool/index.js +23 -0
- package/dist/mcp-tool/index.js.map +1 -0
- package/dist/mcp-tool/lib/mcp-protocol.d.ts +75 -0
- package/dist/mcp-tool/lib/mcp-protocol.d.ts.map +1 -0
- package/dist/mcp-tool/lib/mcp-protocol.js +19 -0
- package/dist/mcp-tool/lib/mcp-protocol.js.map +1 -0
- package/dist/mcp-tool/lib/mcp-server-config.d.ts +8 -0
- package/dist/mcp-tool/lib/mcp-server-config.d.ts.map +1 -0
- package/dist/mcp-tool/lib/mcp-server-config.js +3 -0
- package/dist/mcp-tool/lib/mcp-server-config.js.map +1 -0
- package/dist/mcp-tool/lib/provider-kind.d.ts +10 -0
- package/dist/mcp-tool/lib/provider-kind.d.ts.map +1 -0
- package/dist/mcp-tool/lib/provider-kind.js +14 -0
- package/dist/mcp-tool/lib/provider-kind.js.map +1 -0
- package/dist/mcp-tool/lib/resolver-scope.d.ts +16 -0
- package/dist/mcp-tool/lib/resolver-scope.d.ts.map +1 -0
- package/dist/mcp-tool/lib/resolver-scope.js +12 -0
- package/dist/mcp-tool/lib/resolver-scope.js.map +1 -0
- package/dist/mcp-tool/lib/tool-provider.d.ts +21 -0
- package/dist/mcp-tool/lib/tool-provider.d.ts.map +1 -0
- package/dist/mcp-tool/lib/tool-provider.js +3 -0
- package/dist/mcp-tool/lib/tool-provider.js.map +1 -0
- package/dist/mcp-tool/lib/tool-selection.d.ts +34 -0
- package/dist/mcp-tool/lib/tool-selection.d.ts.map +1 -0
- package/dist/mcp-tool/lib/tool-selection.js +18 -0
- package/dist/mcp-tool/lib/tool-selection.js.map +1 -0
- package/dist/object/index.d.ts +5 -0
- package/dist/object/index.d.ts.map +1 -0
- package/dist/object/index.js +21 -0
- package/dist/object/index.js.map +1 -0
- package/dist/object/lib/object-lifecycle.d.ts +8 -0
- package/dist/object/lib/object-lifecycle.d.ts.map +1 -0
- package/dist/object/lib/object-lifecycle.js +12 -0
- package/dist/object/lib/object-lifecycle.js.map +1 -0
- package/dist/object/lib/xema-object-kind.d.ts +43 -0
- package/dist/object/lib/xema-object-kind.d.ts.map +1 -0
- package/dist/object/lib/xema-object-kind.js +47 -0
- package/dist/object/lib/xema-object-kind.js.map +1 -0
- package/dist/object/lib/xema-object-ref.d.ts +20 -0
- package/dist/object/lib/xema-object-ref.d.ts.map +1 -0
- package/dist/object/lib/xema-object-ref.js +133 -0
- package/dist/object/lib/xema-object-ref.js.map +1 -0
- package/dist/object/lib/xema-object.d.ts +24 -0
- package/dist/object/lib/xema-object.d.ts.map +1 -0
- package/dist/object/lib/xema-object.js +24 -0
- package/dist/object/lib/xema-object.js.map +1 -0
- package/dist/policy/index.d.ts +4 -0
- package/dist/policy/index.d.ts.map +1 -0
- package/dist/policy/index.js +20 -0
- package/dist/policy/index.js.map +1 -0
- package/dist/policy/lib/obligations.d.ts +91 -0
- package/dist/policy/lib/obligations.d.ts.map +1 -0
- package/dist/policy/lib/obligations.js +76 -0
- package/dist/policy/lib/obligations.js.map +1 -0
- package/dist/policy/lib/policy.d.ts +29 -0
- package/dist/policy/lib/policy.d.ts.map +1 -0
- package/dist/policy/lib/policy.js +32 -0
- package/dist/policy/lib/policy.js.map +1 -0
- package/dist/policy/lib/route-hints.d.ts +11 -0
- package/dist/policy/lib/route-hints.d.ts.map +1 -0
- package/dist/policy/lib/route-hints.js +15 -0
- package/dist/policy/lib/route-hints.js.map +1 -0
- package/dist/runner/index.d.ts +12 -0
- package/dist/runner/index.d.ts.map +1 -0
- package/dist/runner/index.js +28 -0
- package/dist/runner/index.js.map +1 -0
- package/dist/runner/lib/dispatch.d.ts +13 -0
- package/dist/runner/lib/dispatch.d.ts.map +1 -0
- package/dist/runner/lib/dispatch.js +15 -0
- package/dist/runner/lib/dispatch.js.map +1 -0
- package/dist/runner/lib/input-hash.d.ts +2 -0
- package/dist/runner/lib/input-hash.d.ts.map +1 -0
- package/dist/runner/lib/input-hash.js +37 -0
- package/dist/runner/lib/input-hash.js.map +1 -0
- package/dist/runner/lib/job-token.d.ts +22 -0
- package/dist/runner/lib/job-token.d.ts.map +1 -0
- package/dist/runner/lib/job-token.js +3 -0
- package/dist/runner/lib/job-token.js.map +1 -0
- package/dist/runner/lib/runner-attestation.d.ts +10 -0
- package/dist/runner/lib/runner-attestation.d.ts.map +1 -0
- package/dist/runner/lib/runner-attestation.js +5 -0
- package/dist/runner/lib/runner-attestation.js.map +1 -0
- package/dist/runner/lib/runner-job.d.ts +26 -0
- package/dist/runner/lib/runner-job.d.ts.map +1 -0
- package/dist/runner/lib/runner-job.js +36 -0
- package/dist/runner/lib/runner-job.js.map +1 -0
- package/dist/runner/lib/runner-kind.d.ts +2 -0
- package/dist/runner/lib/runner-kind.d.ts.map +1 -0
- package/dist/runner/lib/runner-kind.js +7 -0
- package/dist/runner/lib/runner-kind.js.map +1 -0
- package/dist/runner/lib/runner-mode.d.ts +5 -0
- package/dist/runner/lib/runner-mode.d.ts.map +1 -0
- package/dist/runner/lib/runner-mode.js +9 -0
- package/dist/runner/lib/runner-mode.js.map +1 -0
- package/dist/runner/lib/runner-plane.d.ts +19 -0
- package/dist/runner/lib/runner-plane.d.ts.map +1 -0
- package/dist/runner/lib/runner-plane.js +31 -0
- package/dist/runner/lib/runner-plane.js.map +1 -0
- package/dist/runner/lib/runner-registration.d.ts +60 -0
- package/dist/runner/lib/runner-registration.d.ts.map +1 -0
- package/dist/runner/lib/runner-registration.js +62 -0
- package/dist/runner/lib/runner-registration.js.map +1 -0
- package/dist/runner/lib/runner.d.ts +24 -0
- package/dist/runner/lib/runner.d.ts.map +1 -0
- package/dist/runner/lib/runner.js +26 -0
- package/dist/runner/lib/runner.js.map +1 -0
- package/dist/runner/lib/runtime-isolation.d.ts +10 -0
- package/dist/runner/lib/runtime-isolation.d.ts.map +1 -0
- package/dist/runner/lib/runtime-isolation.js +23 -0
- package/dist/runner/lib/runtime-isolation.js.map +1 -0
- package/dist/search-source/index.d.ts +5 -0
- package/dist/search-source/index.d.ts.map +1 -0
- package/dist/search-source/index.js +21 -0
- package/dist/search-source/index.js.map +1 -0
- package/dist/search-source/lib/indexable-document.d.ts +40 -0
- package/dist/search-source/lib/indexable-document.d.ts.map +1 -0
- package/dist/search-source/lib/indexable-document.js +26 -0
- package/dist/search-source/lib/indexable-document.js.map +1 -0
- package/dist/search-source/lib/search-index-event.d.ts +52 -0
- package/dist/search-source/lib/search-index-event.d.ts.map +1 -0
- package/dist/search-source/lib/search-index-event.js +29 -0
- package/dist/search-source/lib/search-index-event.js.map +1 -0
- package/dist/search-source/lib/search-replay.d.ts +46 -0
- package/dist/search-source/lib/search-replay.d.ts.map +1 -0
- package/dist/search-source/lib/search-replay.js +36 -0
- package/dist/search-source/lib/search-replay.js.map +1 -0
- package/dist/search-source/lib/search-source-descriptor.d.ts +15 -0
- package/dist/search-source/lib/search-source-descriptor.d.ts.map +1 -0
- package/dist/search-source/lib/search-source-descriptor.js +3 -0
- package/dist/search-source/lib/search-source-descriptor.js.map +1 -0
- package/dist/service-registry/index.d.ts +4 -0
- package/dist/service-registry/index.d.ts.map +1 -0
- package/dist/service-registry/index.js +20 -0
- package/dist/service-registry/index.js.map +1 -0
- package/dist/service-registry/lib/inject-service.d.ts +6 -0
- package/dist/service-registry/lib/inject-service.d.ts.map +1 -0
- package/dist/service-registry/lib/inject-service.js +5 -0
- package/dist/service-registry/lib/inject-service.js.map +1 -0
- package/dist/service-registry/lib/service-descriptor.d.ts +28 -0
- package/dist/service-registry/lib/service-descriptor.d.ts.map +1 -0
- package/dist/service-registry/lib/service-descriptor.js +17 -0
- package/dist/service-registry/lib/service-descriptor.js.map +1 -0
- package/dist/service-registry/lib/service-registry-client.d.ts +30 -0
- package/dist/service-registry/lib/service-registry-client.d.ts.map +1 -0
- package/dist/service-registry/lib/service-registry-client.js +3 -0
- package/dist/service-registry/lib/service-registry-client.js.map +1 -0
- package/dist/skill/index.d.ts +5 -0
- package/dist/skill/index.d.ts.map +1 -0
- package/dist/skill/index.js +21 -0
- package/dist/skill/index.js.map +1 -0
- package/dist/skill/lib/skill-enums.d.ts +41 -0
- package/dist/skill/lib/skill-enums.d.ts.map +1 -0
- package/dist/skill/lib/skill-enums.js +54 -0
- package/dist/skill/lib/skill-enums.js.map +1 -0
- package/dist/skill/lib/skill-governance.d.ts +106 -0
- package/dist/skill/lib/skill-governance.d.ts.map +1 -0
- package/dist/skill/lib/skill-governance.js +61 -0
- package/dist/skill/lib/skill-governance.js.map +1 -0
- package/dist/skill/lib/skill-source.d.ts +14 -0
- package/dist/skill/lib/skill-source.d.ts.map +1 -0
- package/dist/skill/lib/skill-source.js +3 -0
- package/dist/skill/lib/skill-source.js.map +1 -0
- package/dist/skill/lib/skill.d.ts +52 -0
- package/dist/skill/lib/skill.d.ts.map +1 -0
- package/dist/skill/lib/skill.js +3 -0
- package/dist/skill/lib/skill.js.map +1 -0
- package/dist/space/index.d.ts +4 -0
- package/dist/space/index.d.ts.map +1 -0
- package/dist/space/index.js +20 -0
- package/dist/space/index.js.map +1 -0
- package/dist/space/lib/space-ref-parser.d.ts +8 -0
- package/dist/space/lib/space-ref-parser.d.ts.map +1 -0
- package/dist/space/lib/space-ref-parser.js +149 -0
- package/dist/space/lib/space-ref-parser.js.map +1 -0
- package/dist/space/lib/space-traversal.d.ts +3 -0
- package/dist/space/lib/space-traversal.d.ts.map +1 -0
- package/dist/space/lib/space-traversal.js +56 -0
- package/dist/space/lib/space-traversal.js.map +1 -0
- package/dist/space/lib/space.d.ts +53 -0
- package/dist/space/lib/space.d.ts.map +1 -0
- package/dist/space/lib/space.js +98 -0
- package/dist/space/lib/space.js.map +1 -0
- package/dist/subject/index.d.ts +3 -0
- package/dist/subject/index.d.ts.map +1 -0
- package/dist/subject/index.js +19 -0
- package/dist/subject/index.js.map +1 -0
- package/dist/subject/lib/subject.d.ts +29 -0
- package/dist/subject/lib/subject.d.ts.map +1 -0
- package/dist/subject/lib/subject.js +47 -0
- package/dist/subject/lib/subject.js.map +1 -0
- package/dist/subject/lib/token-class.d.ts +11 -0
- package/dist/subject/lib/token-class.d.ts.map +1 -0
- package/dist/subject/lib/token-class.js +15 -0
- package/dist/subject/lib/token-class.js.map +1 -0
- package/dist/workflow/index.d.ts +31 -0
- package/dist/workflow/index.d.ts.map +1 -0
- package/dist/workflow/index.js +47 -0
- package/dist/workflow/index.js.map +1 -0
- package/dist/workflow/lib/action-ref.d.ts +12 -0
- package/dist/workflow/lib/action-ref.d.ts.map +1 -0
- package/dist/workflow/lib/action-ref.js +3 -0
- package/dist/workflow/lib/action-ref.js.map +1 -0
- package/dist/workflow/lib/activity-outputs.d.ts +14 -0
- package/dist/workflow/lib/activity-outputs.d.ts.map +1 -0
- package/dist/workflow/lib/activity-outputs.js +3 -0
- package/dist/workflow/lib/activity-outputs.js.map +1 -0
- package/dist/workflow/lib/agent-role.d.ts +6 -0
- package/dist/workflow/lib/agent-role.d.ts.map +1 -0
- package/dist/workflow/lib/agent-role.js +41 -0
- package/dist/workflow/lib/agent-role.js.map +1 -0
- package/dist/workflow/lib/artifact-ref.d.ts +21 -0
- package/dist/workflow/lib/artifact-ref.d.ts.map +1 -0
- package/dist/workflow/lib/artifact-ref.js +38 -0
- package/dist/workflow/lib/artifact-ref.js.map +1 -0
- package/dist/workflow/lib/briefcase.d.ts +107 -0
- package/dist/workflow/lib/briefcase.d.ts.map +1 -0
- package/dist/workflow/lib/briefcase.js +62 -0
- package/dist/workflow/lib/briefcase.js.map +1 -0
- package/dist/workflow/lib/canonical-concepts/canonical-concept-registry.d.ts +18 -0
- package/dist/workflow/lib/canonical-concepts/canonical-concept-registry.d.ts.map +1 -0
- package/dist/workflow/lib/canonical-concepts/canonical-concept-registry.js +45 -0
- package/dist/workflow/lib/canonical-concepts/canonical-concept-registry.js.map +1 -0
- package/dist/workflow/lib/canonical-concepts/concepts/change-intent.concepts.d.ts +3 -0
- package/dist/workflow/lib/canonical-concepts/concepts/change-intent.concepts.d.ts.map +1 -0
- package/dist/workflow/lib/canonical-concepts/concepts/change-intent.concepts.js +79 -0
- package/dist/workflow/lib/canonical-concepts/concepts/change-intent.concepts.js.map +1 -0
- package/dist/workflow/lib/canonical-concepts/concepts/concern.concepts.d.ts +3 -0
- package/dist/workflow/lib/canonical-concepts/concepts/concern.concepts.d.ts.map +1 -0
- package/dist/workflow/lib/canonical-concepts/concepts/concern.concepts.js +133 -0
- package/dist/workflow/lib/canonical-concepts/concepts/concern.concepts.js.map +1 -0
- package/dist/workflow/lib/canonical-concepts/concepts/domain.concepts.d.ts +3 -0
- package/dist/workflow/lib/canonical-concepts/concepts/domain.concepts.d.ts.map +1 -0
- package/dist/workflow/lib/canonical-concepts/concepts/domain.concepts.js +116 -0
- package/dist/workflow/lib/canonical-concepts/concepts/domain.concepts.js.map +1 -0
- package/dist/workflow/lib/canonical-concepts/concepts/index.d.ts +8 -0
- package/dist/workflow/lib/canonical-concepts/concepts/index.d.ts.map +1 -0
- package/dist/workflow/lib/canonical-concepts/concepts/index.js +18 -0
- package/dist/workflow/lib/canonical-concepts/concepts/index.js.map +1 -0
- package/dist/workflow/lib/canonical-concepts/concepts/technology.concepts.d.ts +3 -0
- package/dist/workflow/lib/canonical-concepts/concepts/technology.concepts.d.ts.map +1 -0
- package/dist/workflow/lib/canonical-concepts/concepts/technology.concepts.js +462 -0
- package/dist/workflow/lib/canonical-concepts/concepts/technology.concepts.js.map +1 -0
- package/dist/workflow/lib/canonical-concepts/index.d.ts +3 -0
- package/dist/workflow/lib/canonical-concepts/index.d.ts.map +1 -0
- package/dist/workflow/lib/canonical-concepts/index.js +16 -0
- package/dist/workflow/lib/canonical-concepts/index.js.map +1 -0
- package/dist/workflow/lib/catalog-taxonomies.d.ts +41 -0
- package/dist/workflow/lib/catalog-taxonomies.d.ts.map +1 -0
- package/dist/workflow/lib/catalog-taxonomies.js +3475 -0
- package/dist/workflow/lib/catalog-taxonomies.js.map +1 -0
- package/dist/workflow/lib/compiled-run.d.ts +118 -0
- package/dist/workflow/lib/compiled-run.d.ts.map +1 -0
- package/dist/workflow/lib/compiled-run.js +3 -0
- package/dist/workflow/lib/compiled-run.js.map +1 -0
- package/dist/workflow/lib/compiled-working-file.d.ts +11 -0
- package/dist/workflow/lib/compiled-working-file.d.ts.map +1 -0
- package/dist/workflow/lib/compiled-working-file.js +3 -0
- package/dist/workflow/lib/compiled-working-file.js.map +1 -0
- package/dist/workflow/lib/compiled-workspace-manifest.d.ts +101 -0
- package/dist/workflow/lib/compiled-workspace-manifest.d.ts.map +1 -0
- package/dist/workflow/lib/compiled-workspace-manifest.js +3 -0
- package/dist/workflow/lib/compiled-workspace-manifest.js.map +1 -0
- package/dist/workflow/lib/concurrency-group.d.ts +6 -0
- package/dist/workflow/lib/concurrency-group.d.ts.map +1 -0
- package/dist/workflow/lib/concurrency-group.js +3 -0
- package/dist/workflow/lib/concurrency-group.js.map +1 -0
- package/dist/workflow/lib/deliverable-result.d.ts +124 -0
- package/dist/workflow/lib/deliverable-result.d.ts.map +1 -0
- package/dist/workflow/lib/deliverable-result.js +27 -0
- package/dist/workflow/lib/deliverable-result.js.map +1 -0
- package/dist/workflow/lib/domain-tag.d.ts +2 -0
- package/dist/workflow/lib/domain-tag.d.ts.map +1 -0
- package/dist/workflow/lib/domain-tag.js +3 -0
- package/dist/workflow/lib/domain-tag.js.map +1 -0
- package/dist/workflow/lib/enums.d.ts +138 -0
- package/dist/workflow/lib/enums.d.ts.map +1 -0
- package/dist/workflow/lib/enums.js +166 -0
- package/dist/workflow/lib/enums.js.map +1 -0
- package/dist/workflow/lib/errors.d.ts +35 -0
- package/dist/workflow/lib/errors.d.ts.map +1 -0
- package/dist/workflow/lib/errors.js +62 -0
- package/dist/workflow/lib/errors.js.map +1 -0
- package/dist/workflow/lib/job-run.d.ts +32 -0
- package/dist/workflow/lib/job-run.d.ts.map +1 -0
- package/dist/workflow/lib/job-run.js +3 -0
- package/dist/workflow/lib/job-run.js.map +1 -0
- package/dist/workflow/lib/model-ref.d.ts +40 -0
- package/dist/workflow/lib/model-ref.d.ts.map +1 -0
- package/dist/workflow/lib/model-ref.js +34 -0
- package/dist/workflow/lib/model-ref.js.map +1 -0
- package/dist/workflow/lib/mount-plan.d.ts +105 -0
- package/dist/workflow/lib/mount-plan.d.ts.map +1 -0
- package/dist/workflow/lib/mount-plan.js +3 -0
- package/dist/workflow/lib/mount-plan.js.map +1 -0
- package/dist/workflow/lib/phase-report.d.ts +9 -0
- package/dist/workflow/lib/phase-report.d.ts.map +1 -0
- package/dist/workflow/lib/phase-report.js +30 -0
- package/dist/workflow/lib/phase-report.js.map +1 -0
- package/dist/workflow/lib/platform-task-queue.d.ts +17 -0
- package/dist/workflow/lib/platform-task-queue.d.ts.map +1 -0
- package/dist/workflow/lib/platform-task-queue.js +33 -0
- package/dist/workflow/lib/platform-task-queue.js.map +1 -0
- package/dist/workflow/lib/review-subject/index.d.ts +5 -0
- package/dist/workflow/lib/review-subject/index.d.ts.map +1 -0
- package/dist/workflow/lib/review-subject/index.js +8 -0
- package/dist/workflow/lib/review-subject/index.js.map +1 -0
- package/dist/workflow/lib/review-subject/kinds.d.ts +5 -0
- package/dist/workflow/lib/review-subject/kinds.d.ts.map +1 -0
- package/dist/workflow/lib/review-subject/kinds.js +9 -0
- package/dist/workflow/lib/review-subject/kinds.js.map +1 -0
- package/dist/workflow/lib/review-subject/narrow.d.ts +5 -0
- package/dist/workflow/lib/review-subject/narrow.d.ts.map +1 -0
- package/dist/workflow/lib/review-subject/narrow.js +79 -0
- package/dist/workflow/lib/review-subject/narrow.js.map +1 -0
- package/dist/workflow/lib/review-subject/producers/artifact-ref.d.ts +9 -0
- package/dist/workflow/lib/review-subject/producers/artifact-ref.d.ts.map +1 -0
- package/dist/workflow/lib/review-subject/producers/artifact-ref.js +16 -0
- package/dist/workflow/lib/review-subject/producers/artifact-ref.js.map +1 -0
- package/dist/workflow/lib/review-subject/producers/string.d.ts +7 -0
- package/dist/workflow/lib/review-subject/producers/string.d.ts.map +1 -0
- package/dist/workflow/lib/review-subject/producers/string.js +11 -0
- package/dist/workflow/lib/review-subject/producers/string.js.map +1 -0
- package/dist/workflow/lib/role-capability.d.ts +16 -0
- package/dist/workflow/lib/role-capability.d.ts.map +1 -0
- package/dist/workflow/lib/role-capability.js +19 -0
- package/dist/workflow/lib/role-capability.js.map +1 -0
- package/dist/workflow/lib/run-progress.d.ts +100 -0
- package/dist/workflow/lib/run-progress.d.ts.map +1 -0
- package/dist/workflow/lib/run-progress.js +96 -0
- package/dist/workflow/lib/run-progress.js.map +1 -0
- package/dist/workflow/lib/sampling-profiles.d.ts +18 -0
- package/dist/workflow/lib/sampling-profiles.d.ts.map +1 -0
- package/dist/workflow/lib/sampling-profiles.js +56 -0
- package/dist/workflow/lib/sampling-profiles.js.map +1 -0
- package/dist/workflow/lib/snapshot-ref.d.ts +10 -0
- package/dist/workflow/lib/snapshot-ref.d.ts.map +1 -0
- package/dist/workflow/lib/snapshot-ref.js +3 -0
- package/dist/workflow/lib/snapshot-ref.js.map +1 -0
- package/dist/workflow/lib/temporal-namespace.d.ts +5 -0
- package/dist/workflow/lib/temporal-namespace.d.ts.map +1 -0
- package/dist/workflow/lib/temporal-namespace.js +34 -0
- package/dist/workflow/lib/temporal-namespace.js.map +1 -0
- package/dist/workflow/lib/trigger-payload.d.ts +35 -0
- package/dist/workflow/lib/trigger-payload.d.ts.map +1 -0
- package/dist/workflow/lib/trigger-payload.js +3 -0
- package/dist/workflow/lib/trigger-payload.js.map +1 -0
- package/dist/workflow/lib/variable-requirement.d.ts +18 -0
- package/dist/workflow/lib/variable-requirement.d.ts.map +1 -0
- package/dist/workflow/lib/variable-requirement.js +3 -0
- package/dist/workflow/lib/variable-requirement.js.map +1 -0
- package/dist/workflow/lib/work-item-payloads.d.ts +114 -0
- package/dist/workflow/lib/work-item-payloads.d.ts.map +1 -0
- package/dist/workflow/lib/work-item-payloads.js +60 -0
- package/dist/workflow/lib/work-item-payloads.js.map +1 -0
- package/dist/workflow/lib/workflow-stage.d.ts +11 -0
- package/dist/workflow/lib/workflow-stage.d.ts.map +1 -0
- package/dist/workflow/lib/workflow-stage.js +28 -0
- package/dist/workflow/lib/workflow-stage.js.map +1 -0
- package/dist/workflow/lib/workspace-manifest-enums.d.ts +42 -0
- package/dist/workflow/lib/workspace-manifest-enums.d.ts.map +1 -0
- package/dist/workflow/lib/workspace-manifest-enums.js +80 -0
- package/dist/workflow/lib/workspace-manifest-enums.js.map +1 -0
- package/package.json +173 -0
- package/src/agent-composition/index.ts +17 -0
- package/src/agent-composition/lib/capability-layer.ts +46 -0
- package/src/agent-composition/lib/composition-limits-schema.ts +38 -0
- package/src/agent-composition/lib/composition-workspace.ts +210 -0
- package/src/agent-composition/lib/composition.ts +205 -0
- package/src/agent-composition/lib/intrinsic-floor.ts +50 -0
- package/src/agent-composition/lib/model-resolution-matrix.ts +112 -0
- package/src/agent-workspace/index.ts +27 -0
- package/src/agent-workspace/lib/agent-run-context.ts +44 -0
- package/src/agent-workspace/lib/agent-tool-defaults.ts +252 -0
- package/src/agent-workspace/lib/awp-v1.ts +289 -0
- package/src/agent-workspace/lib/context-json.ts +92 -0
- package/src/agent-workspace/lib/deliverable-spec-ref.ts +60 -0
- package/src/agent-workspace/lib/endpoint-fetch-spec.ts +66 -0
- package/src/agent-workspace/lib/manifest.ts +53 -0
- package/src/agent-workspace/lib/mount-apply.ts +79 -0
- package/src/agent-workspace/lib/working-file.ts +173 -0
- package/src/agent-workspace/lib/workspace-layout.ts +106 -0
- package/src/agent-workspace/lib/workspace-spec.ts +212 -0
- package/src/biome/index.ts +10 -0
- package/src/biome/lib/biome-api.ts +33 -0
- package/src/biome/lib/biome-capability-refs.ts +29 -0
- package/src/biome/lib/biome-engines.ts +18 -0
- package/src/biome/lib/biome-lifecycle-hooks.ts +28 -0
- package/src/biome/lib/biome-lifecycle.ts +29 -0
- package/src/biome/lib/biome-manifest.ts +102 -0
- package/src/biome/lib/biome-permissions.ts +35 -0
- package/src/biome/lib/biome-scope.ts +19 -0
- package/src/biome/lib/biome-trust-tier.ts +21 -0
- package/src/biome/lib/trust-tier-policies.ts +99 -0
- package/src/capability/index.ts +8 -0
- package/src/capability/lib/capability-contribution.ts +99 -0
- package/src/capability/lib/capability-grant.ts +90 -0
- package/src/capability/lib/capability-policy.ts +37 -0
- package/src/capability/lib/capability-ref.ts +138 -0
- package/src/capability/lib/errors.ts +180 -0
- package/src/capability/lib/meta-tool.ts +213 -0
- package/src/capability/lib/permission-profile.ts +91 -0
- package/src/capability/lib/shell-command-descriptor.ts +66 -0
- package/src/contribution/index.ts +4 -0
- package/src/contribution/lib/contribution-kind.ts +132 -0
- package/src/contribution/lib/contribution-source.ts +29 -0
- package/src/contribution/lib/contribution.ts +209 -0
- package/src/contribution/lib/registry.ts +100 -0
- package/src/document-templates/index.ts +24 -0
- package/src/document-templates/lib/document-template.ts +88 -0
- package/src/document-templates/lib/index.ts +2 -0
- package/src/document-templates/lib/rendering-shape.ts +48 -0
- package/src/document-themes/index.ts +21 -0
- package/src/document-themes/lib/component-vocabulary.ts +100 -0
- package/src/document-themes/lib/document-theme.ts +110 -0
- package/src/document-themes/lib/index.ts +2 -0
- package/src/entitlement/index.ts +1 -0
- package/src/entitlement/lib/entitlement.ts +142 -0
- package/src/execution-context/index.ts +3 -0
- package/src/execution-context/lib/caller.ts +46 -0
- package/src/execution-context/lib/execution-context.ts +205 -0
- package/src/execution-context/lib/subject.ts +17 -0
- package/src/execution-environment/index.ts +3 -0
- package/src/execution-environment/lib/approval-rule.ts +32 -0
- package/src/execution-environment/lib/built-in-environments.ts +89 -0
- package/src/execution-environment/lib/execution-environment.ts +266 -0
- package/src/kernel-state/index.ts +3 -0
- package/src/kernel-state/lib/adapter-kind.ts +18 -0
- package/src/kernel-state/lib/kernel-state.ts +139 -0
- package/src/kernel-state/lib/key-grammar.ts +105 -0
- package/src/llm-gateway/index.ts +2 -0
- package/src/llm-gateway/lib/caller.ts +48 -0
- package/src/llm-gateway/lib/errors.ts +111 -0
- package/src/mcp-tool/index.ts +6 -0
- package/src/mcp-tool/lib/mcp-protocol.ts +94 -0
- package/src/mcp-tool/lib/mcp-server-config.ts +17 -0
- package/src/mcp-tool/lib/provider-kind.ts +35 -0
- package/src/mcp-tool/lib/resolver-scope.ts +32 -0
- package/src/mcp-tool/lib/tool-provider.ts +62 -0
- package/src/mcp-tool/lib/tool-selection.ts +48 -0
- package/src/object/index.ts +4 -0
- package/src/object/lib/object-lifecycle.ts +22 -0
- package/src/object/lib/xema-object-kind.ts +73 -0
- package/src/object/lib/xema-object-ref.ts +233 -0
- package/src/object/lib/xema-object.ts +81 -0
- package/src/policy/index.ts +3 -0
- package/src/policy/lib/obligations.ts +155 -0
- package/src/policy/lib/policy.ts +104 -0
- package/src/policy/lib/route-hints.ts +51 -0
- package/src/runner/index.ts +11 -0
- package/src/runner/lib/dispatch.ts +61 -0
- package/src/runner/lib/input-hash.ts +66 -0
- package/src/runner/lib/job-token.ts +80 -0
- package/src/runner/lib/runner-attestation.ts +53 -0
- package/src/runner/lib/runner-job.ts +90 -0
- package/src/runner/lib/runner-kind.ts +10 -0
- package/src/runner/lib/runner-mode.ts +16 -0
- package/src/runner/lib/runner-plane.ts +101 -0
- package/src/runner/lib/runner-registration.ts +204 -0
- package/src/runner/lib/runner.ts +103 -0
- package/src/runner/lib/runtime-isolation.ts +53 -0
- package/src/search-source/index.ts +4 -0
- package/src/search-source/lib/indexable-document.ts +70 -0
- package/src/search-source/lib/search-index-event.ts +56 -0
- package/src/search-source/lib/search-replay.ts +96 -0
- package/src/search-source/lib/search-source-descriptor.ts +50 -0
- package/src/service-registry/index.ts +3 -0
- package/src/service-registry/lib/inject-service.ts +25 -0
- package/src/service-registry/lib/service-descriptor.ts +75 -0
- package/src/service-registry/lib/service-registry-client.ts +107 -0
- package/src/skill/index.ts +15 -0
- package/src/skill/lib/skill-enums.ts +124 -0
- package/src/skill/lib/skill-governance.ts +281 -0
- package/src/skill/lib/skill-source.ts +41 -0
- package/src/skill/lib/skill.ts +150 -0
- package/src/space/index.ts +3 -0
- package/src/space/lib/space-ref-parser.ts +198 -0
- package/src/space/lib/space-traversal.ts +55 -0
- package/src/space/lib/space.ts +173 -0
- package/src/subject/index.ts +2 -0
- package/src/subject/lib/subject.ts +111 -0
- package/src/subject/lib/token-class.ts +27 -0
- package/src/workflow/index.ts +45 -0
- package/src/workflow/lib/action-ref.ts +48 -0
- package/src/workflow/lib/activity-outputs.ts +105 -0
- package/src/workflow/lib/agent-role.ts +136 -0
- package/src/workflow/lib/artifact-ref.ts +93 -0
- package/src/workflow/lib/briefcase.ts +194 -0
- package/src/workflow/lib/canonical-concepts/canonical-concept-registry.ts +99 -0
- package/src/workflow/lib/canonical-concepts/concepts/change-intent.concepts.ts +124 -0
- package/src/workflow/lib/canonical-concepts/concepts/concern.concepts.ts +194 -0
- package/src/workflow/lib/canonical-concepts/concepts/domain.concepts.ts +205 -0
- package/src/workflow/lib/canonical-concepts/concepts/index.ts +15 -0
- package/src/workflow/lib/canonical-concepts/concepts/technology.concepts.ts +667 -0
- package/src/workflow/lib/canonical-concepts/index.ts +2 -0
- package/src/workflow/lib/catalog-taxonomies.ts +3695 -0
- package/src/workflow/lib/compiled-run.ts +376 -0
- package/src/workflow/lib/compiled-working-file.ts +35 -0
- package/src/workflow/lib/compiled-workspace-manifest.ts +185 -0
- package/src/workflow/lib/concurrency-group.ts +17 -0
- package/src/workflow/lib/deliverable-result.ts +238 -0
- package/src/workflow/lib/domain-tag.ts +48 -0
- package/src/workflow/lib/enums.ts +288 -0
- package/src/workflow/lib/errors.ts +171 -0
- package/src/workflow/lib/job-run.ts +65 -0
- package/src/workflow/lib/model-ref.ts +118 -0
- package/src/workflow/lib/mount-plan.ts +230 -0
- package/src/workflow/lib/phase-report.ts +67 -0
- package/src/workflow/lib/platform-task-queue.ts +83 -0
- package/src/workflow/lib/review-subject/index.ts +15 -0
- package/src/workflow/lib/review-subject/kinds.ts +31 -0
- package/src/workflow/lib/review-subject/narrow.ts +123 -0
- package/src/workflow/lib/review-subject/producers/artifact-ref.ts +33 -0
- package/src/workflow/lib/review-subject/producers/string.ts +24 -0
- package/src/workflow/lib/role-capability.ts +80 -0
- package/src/workflow/lib/run-progress.ts +254 -0
- package/src/workflow/lib/sampling-profiles.ts +153 -0
- package/src/workflow/lib/snapshot-ref.ts +27 -0
- package/src/workflow/lib/temporal-namespace.ts +78 -0
- package/src/workflow/lib/trigger-payload.ts +69 -0
- package/src/workflow/lib/variable-requirement.ts +66 -0
- package/src/workflow/lib/work-item-payloads.ts +139 -0
- package/src/workflow/lib/workflow-stage.ts +89 -0
- package/src/workflow/lib/workspace-manifest-enums.ts +143 -0
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
3
|
+
import { CapabilityRefSchema, type CapabilityRef } from './capability-ref';
|
|
4
|
+
import {
|
|
5
|
+
CapabilityRiskTierSchema,
|
|
6
|
+
type CapabilityRiskTier,
|
|
7
|
+
} from './permission-profile';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Manifest shape carried by every `ContributionKind.Capability` envelope
|
|
11
|
+
* (plan §6.H#2). One contribution = one capability ref.
|
|
12
|
+
*
|
|
13
|
+
* The shape is intentionally a value-identical subset of
|
|
14
|
+
* `RegisterCapabilityDto` (the `POST /capabilities/register` body shape on
|
|
15
|
+
* `capability-registry-api`) so that the codemod `tooling/codegen/
|
|
16
|
+
* biomes-register-capabilities.mjs` and the decorator-driven auto-register
|
|
17
|
+
* path in `@xemahq/xema-decorators`'s `XemaRuntimeModule` can both emit the
|
|
18
|
+
* SAME wire payload, regardless of which source the biome chose. Provenance
|
|
19
|
+
* (`biome.id`, `biome.version`) is stamped by the bootstrap pipeline from
|
|
20
|
+
* the discovering biome's manifest — authors do not declare it inline.
|
|
21
|
+
*
|
|
22
|
+
* Validation is fail-fast: a contribution that violates any of these
|
|
23
|
+
* constraints is rejected at boot. Silent coercion is disallowed —
|
|
24
|
+
* `inputSchema` / `outputSchema` are opaque JSON Schemas, but every other
|
|
25
|
+
* field is constrained.
|
|
26
|
+
*/
|
|
27
|
+
export interface CapabilityContributionManifest {
|
|
28
|
+
/** Canonical `<domain>:<resource>.<verb>@<major>` capability ref. */
|
|
29
|
+
readonly ref: CapabilityRef;
|
|
30
|
+
/** Human-readable capability title (≤ 200 chars). */
|
|
31
|
+
readonly title: string;
|
|
32
|
+
/** One-line summary surfaced to the agent (≤ 1000 chars). */
|
|
33
|
+
readonly summary: string;
|
|
34
|
+
/** Free-form natural-language side-effect summary (≤ 1000 chars). */
|
|
35
|
+
readonly sideEffects: string;
|
|
36
|
+
/** JSON Schema for the capability input — passed through verbatim. */
|
|
37
|
+
readonly inputSchema: Record<string, unknown>;
|
|
38
|
+
/** JSON Schema for the capability output — passed through verbatim. */
|
|
39
|
+
readonly outputSchema: Record<string, unknown>;
|
|
40
|
+
/** Kernel `CapabilityRiskTier` (low / medium / high / critical). */
|
|
41
|
+
readonly riskTier: CapabilityRiskTier;
|
|
42
|
+
/**
|
|
43
|
+
* Whether this capability requires explicit human approval before each
|
|
44
|
+
* call — independent of any downstream policy verdict.
|
|
45
|
+
*/
|
|
46
|
+
readonly requiresApproval: boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Optional example invocations surfaced to the agent. Hard-capped at 20
|
|
49
|
+
* to keep the describe-batch responses bounded.
|
|
50
|
+
*/
|
|
51
|
+
readonly examples?: readonly Record<string, unknown>[];
|
|
52
|
+
/**
|
|
53
|
+
* Identifier of the EXTERNAL service this capability calls (e.g. a provider
|
|
54
|
+
* slug like `github` or an MCP server ref). Presence is the signal that the
|
|
55
|
+
* invocation needs a brokered external credential (plan §W4 / Pillar 3.2):
|
|
56
|
+
* authorization-api runs the credential-binding precedence ladder ONLY for
|
|
57
|
+
* capabilities that declare it, and the executing gateway resolves a sealed
|
|
58
|
+
* credential for that service. Absent ⇒ the capability is internal and needs
|
|
59
|
+
* no external credential. Never carries the credential itself.
|
|
60
|
+
*/
|
|
61
|
+
readonly externalServiceRef?: string;
|
|
62
|
+
/**
|
|
63
|
+
* Optional descriptor-level default credential-binding ref — the
|
|
64
|
+
* `capability_default` tier of the PDP precedence ladder. Used when no
|
|
65
|
+
* explicit grant names a binding. An opaque binding id (resolved by the
|
|
66
|
+
* broker), NEVER a secret. Only meaningful alongside `externalServiceRef`.
|
|
67
|
+
*/
|
|
68
|
+
readonly defaultCredentialBindingRef?: string;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Zod validator for `CapabilityContributionManifest`. The codemod and the
|
|
73
|
+
* runtime auto-register path BOTH route every candidate envelope through
|
|
74
|
+
* this schema before contacting `capability-registry-api`, so a malformed
|
|
75
|
+
* contribution fails at the boundary instead of at the wire.
|
|
76
|
+
*
|
|
77
|
+
* `inputSchema` / `outputSchema` deliberately stay `z.record(z.string(),
|
|
78
|
+
* z.unknown())` — capability-registry-api stores them as JSON and the
|
|
79
|
+
* agent-facing describe response surfaces them verbatim. Validating them
|
|
80
|
+
* as JSON Schema here would either be partial (false security) or pull in
|
|
81
|
+
* a JSON-Schema validator (kernel-leaf invariant violation).
|
|
82
|
+
*/
|
|
83
|
+
export const CapabilityContributionManifestSchema: z.ZodType<CapabilityContributionManifest> =
|
|
84
|
+
z.object({
|
|
85
|
+
ref: CapabilityRefSchema,
|
|
86
|
+
title: z.string().min(1).max(200),
|
|
87
|
+
summary: z.string().min(1).max(1000),
|
|
88
|
+
sideEffects: z.string().min(1).max(1000),
|
|
89
|
+
inputSchema: z.record(z.string(), z.unknown()),
|
|
90
|
+
outputSchema: z.record(z.string(), z.unknown()),
|
|
91
|
+
riskTier: CapabilityRiskTierSchema,
|
|
92
|
+
requiresApproval: z.boolean(),
|
|
93
|
+
examples: z
|
|
94
|
+
.array(z.record(z.string(), z.unknown()))
|
|
95
|
+
.max(20)
|
|
96
|
+
.optional(),
|
|
97
|
+
externalServiceRef: z.string().min(1).max(200).optional(),
|
|
98
|
+
defaultCredentialBindingRef: z.string().min(1).max(200).optional(),
|
|
99
|
+
}) as z.ZodType<CapabilityContributionManifest>;
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { CapabilityRefSchema, type CapabilityRef } from './capability-ref';
|
|
3
|
+
import {
|
|
4
|
+
SubjectKind,
|
|
5
|
+
SubjectKindSchema,
|
|
6
|
+
SubjectRefSchema,
|
|
7
|
+
ActingForRefSchema,
|
|
8
|
+
subjectRefToString,
|
|
9
|
+
parseSubjectRef,
|
|
10
|
+
type SubjectRef,
|
|
11
|
+
type ActingForRef,
|
|
12
|
+
} from '../../subject';
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* The canonical subject taxonomy now lives in `@xemahq/subject-contracts`:
|
|
16
|
+
* one closed `SubjectKind`, the `{ kind, id, roles?, actingFor? }` `SubjectRef`,
|
|
17
|
+
* the `ActingForRef` delegation pointer, and the
|
|
18
|
+
* `subjectRefToString`/`parseSubjectRef` composite bridges. Re-exported here so
|
|
19
|
+
* existing `@xemahq/capability-contracts` importers are unaffected.
|
|
20
|
+
*
|
|
21
|
+
* NOTE: `SubjectRef.id` is the bare per-kind identifier — use
|
|
22
|
+
* `subjectRefToString` for the `"<kind>:<id>"` composite that the legacy `ref`
|
|
23
|
+
* field carried, and `parseSubjectRef` to recover it from a stored string.
|
|
24
|
+
*/
|
|
25
|
+
export {
|
|
26
|
+
SubjectKind,
|
|
27
|
+
SubjectKindSchema,
|
|
28
|
+
SubjectRefSchema,
|
|
29
|
+
ActingForRefSchema,
|
|
30
|
+
subjectRefToString,
|
|
31
|
+
parseSubjectRef,
|
|
32
|
+
};
|
|
33
|
+
export type { SubjectRef, ActingForRef };
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Per-grant runtime caps. None of these are required at the contract level;
|
|
37
|
+
* absent fields mean "no platform-imposed limit on this axis". Profiles
|
|
38
|
+
* (§30.3) may default some of them; admins may tighten or loosen per row.
|
|
39
|
+
*/
|
|
40
|
+
export interface GrantConstraints {
|
|
41
|
+
maxCallsPerHour?: number;
|
|
42
|
+
maxCostUsd?: number;
|
|
43
|
+
/**
|
|
44
|
+
* Free-form rate-limit token consumed by the gateway's rate-limit module
|
|
45
|
+
* (e.g. `100/min`, `1k/day`). Kept as a string at the contract layer so
|
|
46
|
+
* the parsing rules can evolve without bumping the kernel contract.
|
|
47
|
+
*/
|
|
48
|
+
rateLimit?: string;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export const GrantConstraintsSchema = z.object({
|
|
52
|
+
maxCallsPerHour: z.number().int().nonnegative().optional(),
|
|
53
|
+
maxCostUsd: z.number().nonnegative().optional(),
|
|
54
|
+
rateLimit: z.string().min(1).optional(),
|
|
55
|
+
}) as z.ZodType<GrantConstraints>;
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* `CapabilityGrant` is the single row shape `authorization-api` stores
|
|
59
|
+
* (per §3.4, §30.5). One grant binds ONE `(subject, capability)` pair to a
|
|
60
|
+
* `resourceGlob`, an allowed-environment set, and optional runtime constraints.
|
|
61
|
+
*
|
|
62
|
+
* Wildcards (`kb:*@1`) are NOT represented in `capability` at the contract
|
|
63
|
+
* level — the kernel grammar in `capability-ref.ts` rejects them. Wildcard
|
|
64
|
+
* grants are stored as multiple per-verb rows OR as a separate
|
|
65
|
+
* domain-wildcard table in `authorization-api`; the choice is a Phase 3
|
|
66
|
+
* implementation detail, not a kernel concern.
|
|
67
|
+
*/
|
|
68
|
+
export interface CapabilityGrant {
|
|
69
|
+
grantId: string;
|
|
70
|
+
subject: SubjectRef;
|
|
71
|
+
capability: CapabilityRef;
|
|
72
|
+
/**
|
|
73
|
+
* Glob over XVFS resource refs, e.g. `xema://org/acme/project/*\/kb/**`.
|
|
74
|
+
* Authorization-api owns glob semantics (§30.4).
|
|
75
|
+
*/
|
|
76
|
+
resourceGlob: string;
|
|
77
|
+
allowedEnvironments: readonly string[];
|
|
78
|
+
constraints?: GrantConstraints;
|
|
79
|
+
requiresApproval?: boolean;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export const CapabilityGrantSchema = z.object({
|
|
83
|
+
grantId: z.string().min(1),
|
|
84
|
+
subject: SubjectRefSchema,
|
|
85
|
+
capability: CapabilityRefSchema,
|
|
86
|
+
resourceGlob: z.string().min(1),
|
|
87
|
+
allowedEnvironments: z.array(z.string().min(1)).readonly(),
|
|
88
|
+
constraints: GrantConstraintsSchema.optional(),
|
|
89
|
+
requiresApproval: z.boolean().optional(),
|
|
90
|
+
}) as z.ZodType<CapabilityGrant>;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { CapabilityRefSchema, type CapabilityRef } from './capability-ref';
|
|
3
|
+
import {
|
|
4
|
+
GrantConstraintsSchema,
|
|
5
|
+
type GrantConstraints,
|
|
6
|
+
} from './capability-grant';
|
|
7
|
+
|
|
8
|
+
export type { GrantConstraints } from './capability-grant';
|
|
9
|
+
export { GrantConstraintsSchema } from './capability-grant';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* `CapabilityPolicy` is what an `ExecutionEnvironment` carries to advertise the
|
|
13
|
+
* capability surface allowed *within* that environment (plan §3.4
|
|
14
|
+
* `ExecutionEnvironment.allowedCapabilities[]`).
|
|
15
|
+
*
|
|
16
|
+
* A environment's policy is a NECESSARY-but-not-sufficient condition for a runtime
|
|
17
|
+
* call: the environment allows the capability AND the subject has a matching
|
|
18
|
+
* `CapabilityGrant`. Failing the environment check raises
|
|
19
|
+
* `CapabilityErrorCode.CapabilityDeniedByZone`; failing the grant check
|
|
20
|
+
* raises `CapabilityErrorCode.CapabilityDeniedByGrant`.
|
|
21
|
+
*/
|
|
22
|
+
export interface CapabilityPolicy {
|
|
23
|
+
capability: CapabilityRef;
|
|
24
|
+
/**
|
|
25
|
+
* Resource globs allowed in this environment for this capability. The environment's
|
|
26
|
+
* policy may be stricter than any individual grant; the runtime takes
|
|
27
|
+
* the intersection at decision time.
|
|
28
|
+
*/
|
|
29
|
+
allowedResources: readonly string[];
|
|
30
|
+
constraints?: GrantConstraints;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export const CapabilityPolicySchema = z.object({
|
|
34
|
+
capability: CapabilityRefSchema,
|
|
35
|
+
allowedResources: z.array(z.string().min(1)).readonly(),
|
|
36
|
+
constraints: GrantConstraintsSchema.optional(),
|
|
37
|
+
}) as z.ZodType<CapabilityPolicy>;
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { CapabilityRefParseError } from './errors';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Canonical Capability Reference grammar (plan §3.3):
|
|
6
|
+
*
|
|
7
|
+
* `<domain>:<resource>.<verb>@<major>`
|
|
8
|
+
*
|
|
9
|
+
* Rules — kept deliberately tight so the grammar can never silently absorb
|
|
10
|
+
* a free-form string:
|
|
11
|
+
*
|
|
12
|
+
* - `<domain>` and the first `<resource>` segment match
|
|
13
|
+
* `/^[a-z][a-z0-9-]*$/` (kebab, must start with a letter).
|
|
14
|
+
* - The `<resource>.<verb>` portion is one OR MORE `.`-joined kebab segments
|
|
15
|
+
* (each segment matches the same shape as `<domain>`). This permits the
|
|
16
|
+
* examples in the plan such as `kb:page.read@1`, `connector:scm.merge@1`,
|
|
17
|
+
* `document:render.pdf@1`, `connector:tracker.issue.create@1`, AND
|
|
18
|
+
* nested forms such as `model-resolution:select@1` (single segment after
|
|
19
|
+
* `:`, where the segment IS the verb on the implicit resource).
|
|
20
|
+
* - `<major>` is one or more digits (no leading sign, no float). The major
|
|
21
|
+
* version is part of the ref itself — capability refs version like
|
|
22
|
+
* syscalls per §3.3.
|
|
23
|
+
*
|
|
24
|
+
* Invariants enforced by `parseCapabilityRef` / `CapabilityRefSchema`:
|
|
25
|
+
*
|
|
26
|
+
* - Lowercase only. `KB:Page.Read@1` is rejected.
|
|
27
|
+
* - No whitespace, no `/`, no leading `.`, no trailing `.`.
|
|
28
|
+
* - Empty segments are rejected (`kb:.read@1`, `kb:page..read@1`).
|
|
29
|
+
* - Major MUST be a positive integer string of `\d+` shape. `@01` is
|
|
30
|
+
* accepted as `1` (matched by `\d+`) but parsed via `Number(...)` —
|
|
31
|
+
* downstream consumers should NOT round-trip through the string form
|
|
32
|
+
* if they want stable formatting; use `formatCapabilityRef` instead.
|
|
33
|
+
*/
|
|
34
|
+
const CAPABILITY_REF_REGEX =
|
|
35
|
+
/^[a-z][a-z0-9-]*:[a-z][a-z0-9-]*(\.[a-z][a-z0-9-]*)*@\d+$/;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Opaque-ish branded string type. We don't use a TS `unique symbol` brand
|
|
39
|
+
* because consumers serialize refs over the wire and Zod / JSON cannot carry
|
|
40
|
+
* a symbol; the template-literal alias still gives editor autocomplete on
|
|
41
|
+
* literal refs while accepting any string that matches the runtime regex.
|
|
42
|
+
*/
|
|
43
|
+
export type CapabilityRef =
|
|
44
|
+
`${string}:${string}.${string}@${number}` & {
|
|
45
|
+
readonly __capabilityRef?: never;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
export const CapabilityRefSchema: z.ZodType<CapabilityRef> = z
|
|
49
|
+
.string()
|
|
50
|
+
.regex(CAPABILITY_REF_REGEX, {
|
|
51
|
+
message:
|
|
52
|
+
'CapabilityRef must match <domain>:<resource>.<verb>@<major> (lowercase kebab; positive integer major).',
|
|
53
|
+
}) as unknown as z.ZodType<CapabilityRef>;
|
|
54
|
+
|
|
55
|
+
export interface ParsedCapabilityRef {
|
|
56
|
+
readonly domain: string;
|
|
57
|
+
/** First segment after `:`. For single-segment refs (`x:verb@1`), equals `verbPath[0]`. */
|
|
58
|
+
readonly resource: string;
|
|
59
|
+
/**
|
|
60
|
+
* All `.`-joined segments after `:`, in order. For `kb:page.read@1` this
|
|
61
|
+
* is `['page', 'read']`. For single-segment refs (`workflow:publish@1`)
|
|
62
|
+
* this is `['publish']` and the verb is `verbPath[verbPath.length - 1]`.
|
|
63
|
+
*/
|
|
64
|
+
readonly verbPath: readonly string[];
|
|
65
|
+
readonly major: number;
|
|
66
|
+
readonly raw: CapabilityRef;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Parse a `CapabilityRef` string into its structured parts. Throws
|
|
71
|
+
* `CapabilityRefParseError` (code `CAPABILITY_REF_INVALID`) on any
|
|
72
|
+
* grammar violation — never returns `null`, never silently coerces.
|
|
73
|
+
*
|
|
74
|
+
* Callers that want a non-throwing variant should run `CapabilityRefSchema`
|
|
75
|
+
* via `safeParse` first and then call `parseCapabilityRef` on the validated
|
|
76
|
+
* value.
|
|
77
|
+
*/
|
|
78
|
+
export function parseCapabilityRef(ref: string): ParsedCapabilityRef {
|
|
79
|
+
if (typeof ref !== 'string' || ref.length === 0) {
|
|
80
|
+
throw new CapabilityRefParseError({
|
|
81
|
+
message: 'CapabilityRef must be a non-empty string.',
|
|
82
|
+
raw: String(ref),
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
if (!CAPABILITY_REF_REGEX.test(ref)) {
|
|
86
|
+
throw new CapabilityRefParseError({
|
|
87
|
+
message: `CapabilityRef "${ref}" does not match <domain>:<resource>.<verb>@<major>.`,
|
|
88
|
+
raw: ref,
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
const atIdx = ref.lastIndexOf('@');
|
|
92
|
+
const colonIdx = ref.indexOf(':');
|
|
93
|
+
const domain = ref.slice(0, colonIdx);
|
|
94
|
+
const verbPath = ref.slice(colonIdx + 1, atIdx).split('.');
|
|
95
|
+
const majorStr = ref.slice(atIdx + 1);
|
|
96
|
+
const major = Number(majorStr);
|
|
97
|
+
if (!Number.isInteger(major) || major <= 0) {
|
|
98
|
+
throw new CapabilityRefParseError({
|
|
99
|
+
message: `CapabilityRef "${ref}" has a non-integer major "${majorStr}".`,
|
|
100
|
+
raw: ref,
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
return {
|
|
104
|
+
domain,
|
|
105
|
+
resource: verbPath[0]!,
|
|
106
|
+
verbPath,
|
|
107
|
+
major,
|
|
108
|
+
raw: ref as CapabilityRef,
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Format a `CapabilityRef` from its structured parts. Performs the same
|
|
114
|
+
* validation as `parseCapabilityRef` on the resulting string and throws
|
|
115
|
+
* `CapabilityRefParseError` if the inputs produce an invalid ref — this
|
|
116
|
+
* guarantees that every value produced by `formatCapabilityRef` round-trips
|
|
117
|
+
* through `parseCapabilityRef`.
|
|
118
|
+
*/
|
|
119
|
+
export function formatCapabilityRef(parts: {
|
|
120
|
+
domain: string;
|
|
121
|
+
verbPath: readonly string[];
|
|
122
|
+
major: number;
|
|
123
|
+
}): CapabilityRef {
|
|
124
|
+
if (parts.verbPath.length === 0) {
|
|
125
|
+
throw new CapabilityRefParseError({
|
|
126
|
+
message: 'CapabilityRef verbPath must contain at least one segment.',
|
|
127
|
+
raw: `${parts.domain}:@${parts.major}`,
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
const raw = `${parts.domain}:${parts.verbPath.join('.')}@${parts.major}`;
|
|
131
|
+
if (!CAPABILITY_REF_REGEX.test(raw)) {
|
|
132
|
+
throw new CapabilityRefParseError({
|
|
133
|
+
message: `formatCapabilityRef produced invalid ref "${raw}".`,
|
|
134
|
+
raw,
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
return raw as CapabilityRef;
|
|
138
|
+
}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Closed set of capability-layer error codes.
|
|
5
|
+
*
|
|
6
|
+
* Every denial returned by the Capability Gateway carries one of these codes
|
|
7
|
+
* so callers can branch structurally (no string parsing). The set covers:
|
|
8
|
+
* - parse-time failures on `CapabilityRef`;
|
|
9
|
+
* - resolution failures when no contribution implements the ref;
|
|
10
|
+
* - the four distinct denial axes specified in §3.4 + §30.5
|
|
11
|
+
* (environment, grant, rate-limit, human-approval);
|
|
12
|
+
* - the "you do not even have a grant row" case that drives `xema why-denied`
|
|
13
|
+
* suggestion `request-grant` (§31.8).
|
|
14
|
+
*
|
|
15
|
+
* Plan-of-record references: §3.3, §30.5, §31.8.
|
|
16
|
+
*/
|
|
17
|
+
export enum CapabilityErrorCode {
|
|
18
|
+
CapabilityRefInvalid = 'CAPABILITY_REF_INVALID',
|
|
19
|
+
CapabilityUnresolved = 'CAPABILITY_UNRESOLVED',
|
|
20
|
+
CapabilityDeniedByZone = 'CAPABILITY_DENIED_BY_ZONE',
|
|
21
|
+
CapabilityDeniedByGrant = 'CAPABILITY_DENIED_BY_GRANT',
|
|
22
|
+
CapabilityDeniedByRateLimit = 'CAPABILITY_DENIED_BY_RATE_LIMIT',
|
|
23
|
+
CapabilityRequiresApproval = 'CAPABILITY_REQUIRES_APPROVAL',
|
|
24
|
+
CapabilityRequiresGrant = 'CAPABILITY_REQUIRES_GRANT',
|
|
25
|
+
AuthorizationUnreachable = 'AUTHORIZATION_UNREACHABLE',
|
|
26
|
+
/**
|
|
27
|
+
* The invocation passed authorization but its mandatory audit record
|
|
28
|
+
* could not be persisted after retries (Gate E). The gateway refuses the
|
|
29
|
+
* invocation rather than completing it without an audit trail — surfaced
|
|
30
|
+
* as a 503 so the caller can retry (the audit write is idempotent on
|
|
31
|
+
* `auditId`). This is the fail-fast path for the audit sink; it is NEVER
|
|
32
|
+
* silently swallowed.
|
|
33
|
+
*/
|
|
34
|
+
AuditLogUnavailable = 'AUDIT_LOG_UNAVAILABLE',
|
|
35
|
+
/**
|
|
36
|
+
* The invocation reached the gateway without a resolvable tenant org.
|
|
37
|
+
* authorization-api scopes every grant lookup by org; the gateway refuses
|
|
38
|
+
* at the edge with a precise code instead of letting the missing org
|
|
39
|
+
* surface as an opaque `AUTHORIZATION_UNREACHABLE` fail-closed denial. The
|
|
40
|
+
* caller must supply `orgId` (body) or `X-Xema-Org-Id` (header).
|
|
41
|
+
*/
|
|
42
|
+
CapabilityInvocationMissingOrg = 'CAPABILITY_INVOCATION_MISSING_ORG',
|
|
43
|
+
/**
|
|
44
|
+
* The capability ref is owned by a runner-plane provider, but the runner
|
|
45
|
+
* selector found no live runner that satisfies the policy route hints
|
|
46
|
+
* (and obligations) for this invocation. Fail-fast — the gateway NEVER
|
|
47
|
+
* silently allows a runner-owned capability with an empty selection.
|
|
48
|
+
*/
|
|
49
|
+
NoRunnerAvailable = 'NO_RUNNER_AVAILABLE',
|
|
50
|
+
/**
|
|
51
|
+
* The capability needs an external credential to execute (it declares an
|
|
52
|
+
* `externalServiceRef`), but authorization-api's credential-binding
|
|
53
|
+
* precedence resolved no permitted binding for this invocation — no explicit
|
|
54
|
+
* grant binding, no capability-descriptor default, and no project/org
|
|
55
|
+
* default. Fail-fast (plan §W4 / Pillar 3.2): the PDP returns `deny` with
|
|
56
|
+
* this code rather than letting the invocation run credential-less or letting
|
|
57
|
+
* a gateway silently pick a credential. The broker NEVER chooses a binding;
|
|
58
|
+
* the PDP is the single authority.
|
|
59
|
+
*/
|
|
60
|
+
MissingCredentialBinding = 'MISSING_CREDENTIAL_BINDING',
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export const CapabilityErrorCodeSchema = z.nativeEnum(CapabilityErrorCode);
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Discriminated "why" structure for a denial decision. One denial may carry
|
|
67
|
+
* multiple `CapabilityDenialDetail` entries (e.g. the grant exists but the
|
|
68
|
+
* resource glob does not match AND the rate-limit is exhausted).
|
|
69
|
+
*
|
|
70
|
+
* Plan-of-record reference: §31.8.
|
|
71
|
+
*/
|
|
72
|
+
export interface CapabilityDenialDetail {
|
|
73
|
+
code: CapabilityErrorCode;
|
|
74
|
+
detail: string;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export const CapabilityDenialDetailSchema = z.object({
|
|
78
|
+
code: CapabilityErrorCodeSchema,
|
|
79
|
+
detail: z.string().min(1),
|
|
80
|
+
}) as z.ZodType<CapabilityDenialDetail>;
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Suggestions the Capability Gateway returns so an agent (or a human via
|
|
84
|
+
* `xema why-denied`) can self-correct without trial-and-error.
|
|
85
|
+
*
|
|
86
|
+
* Plan-of-record reference: §31.8.
|
|
87
|
+
*
|
|
88
|
+
* The discriminator `kind` is a closed set; do NOT widen with free-form
|
|
89
|
+
* strings.
|
|
90
|
+
*/
|
|
91
|
+
export type CapabilityDenialSuggestion =
|
|
92
|
+
| {
|
|
93
|
+
kind: 'request-grant';
|
|
94
|
+
capability: string;
|
|
95
|
+
environment?: string;
|
|
96
|
+
resource?: string;
|
|
97
|
+
}
|
|
98
|
+
| {
|
|
99
|
+
kind: 'switch-environment';
|
|
100
|
+
from: string;
|
|
101
|
+
to: string;
|
|
102
|
+
}
|
|
103
|
+
| {
|
|
104
|
+
kind: 'request-approval';
|
|
105
|
+
capability: string;
|
|
106
|
+
approver?: string;
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
export const CapabilityDenialSuggestionSchema = z.discriminatedUnion('kind', [
|
|
110
|
+
z.object({
|
|
111
|
+
kind: z.literal('request-grant'),
|
|
112
|
+
capability: z.string().min(1),
|
|
113
|
+
environment: z.string().min(1).optional(),
|
|
114
|
+
resource: z.string().min(1).optional(),
|
|
115
|
+
}),
|
|
116
|
+
z.object({
|
|
117
|
+
kind: z.literal('switch-environment'),
|
|
118
|
+
from: z.string().min(1),
|
|
119
|
+
to: z.string().min(1),
|
|
120
|
+
}),
|
|
121
|
+
z.object({
|
|
122
|
+
kind: z.literal('request-approval'),
|
|
123
|
+
capability: z.string().min(1),
|
|
124
|
+
approver: z.string().min(1).optional(),
|
|
125
|
+
}),
|
|
126
|
+
]) as z.ZodType<CapabilityDenialSuggestion>;
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Structured error thrown by `parseCapabilityRef` and surfaced by the
|
|
130
|
+
* Capability Gateway. Fields beyond `code` are optional because not every
|
|
131
|
+
* call site has every piece of context (parse-time errors have no subject /
|
|
132
|
+
* environment; runtime denials always do).
|
|
133
|
+
*
|
|
134
|
+
* Consumers MUST branch on `code` — never on `message` string content.
|
|
135
|
+
*/
|
|
136
|
+
export class CapabilityError extends Error {
|
|
137
|
+
public readonly code: CapabilityErrorCode;
|
|
138
|
+
public readonly capability: string | undefined;
|
|
139
|
+
public readonly subject: string | undefined;
|
|
140
|
+
public readonly environment: string | undefined;
|
|
141
|
+
public readonly auditId: string | undefined;
|
|
142
|
+
public readonly details: readonly CapabilityDenialDetail[] | undefined;
|
|
143
|
+
|
|
144
|
+
constructor(args: {
|
|
145
|
+
code: CapabilityErrorCode;
|
|
146
|
+
message: string;
|
|
147
|
+
capability?: string;
|
|
148
|
+
subject?: string;
|
|
149
|
+
environment?: string;
|
|
150
|
+
auditId?: string;
|
|
151
|
+
details?: readonly CapabilityDenialDetail[];
|
|
152
|
+
}) {
|
|
153
|
+
super(args.message);
|
|
154
|
+
this.name = 'CapabilityError';
|
|
155
|
+
this.code = args.code;
|
|
156
|
+
this.capability = args.capability;
|
|
157
|
+
this.subject = args.subject;
|
|
158
|
+
this.environment = args.environment;
|
|
159
|
+
this.auditId = args.auditId;
|
|
160
|
+
this.details = args.details;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* Narrow `CapabilityError` thrown by `parseCapabilityRef` when the input
|
|
166
|
+
* does not match the canonical grammar. Always carries
|
|
167
|
+
* `CapabilityErrorCode.CapabilityRefInvalid`. Provided as a named subclass
|
|
168
|
+
* so call sites that only want to surface "bad ref" failures can `instanceof`
|
|
169
|
+
* without first inspecting `.code`.
|
|
170
|
+
*/
|
|
171
|
+
export class CapabilityRefParseError extends CapabilityError {
|
|
172
|
+
constructor(args: { message: string; raw: string }) {
|
|
173
|
+
super({
|
|
174
|
+
code: CapabilityErrorCode.CapabilityRefInvalid,
|
|
175
|
+
message: args.message,
|
|
176
|
+
capability: args.raw,
|
|
177
|
+
});
|
|
178
|
+
this.name = 'CapabilityRefParseError';
|
|
179
|
+
}
|
|
180
|
+
}
|