@abot-ai/runtime 1.8.0 → 1.9.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/README.md +216 -222
- package/dist/scripts/runtime-setup-files.js +46 -2
- package/dist/src/capabilities/tool-definition-validator/definition-parser.js +8 -0
- package/dist/src/capabilities/tool-types.d.ts +4 -0
- package/dist/src/model-gateway/client/chat.js +9 -5
- package/dist/src/model-gateway/client/invocation-error.d.ts +9 -0
- package/dist/src/model-gateway/client/invocation-error.js +30 -0
- package/dist/src/model-gateway/client/stream-consumer.js +9 -2
- package/dist/src/model-gateway/client/stream-parser.js +2 -1
- package/dist/src/model-gateway/protocol/message-contract.d.ts +1 -0
- package/dist/src/model-gateway/protocol/message-contract.js +1 -1
- package/dist/src/model-gateway/server/chat-handler.js +5 -7
- package/dist/src/model-gateway/server/chat-stream-response.d.ts +7 -0
- package/dist/src/model-gateway/server/chat-stream-response.js +25 -0
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/approval.d.ts +5 -1
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/approval.js +15 -1
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/prepared-execution.js +7 -5
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/prepared-snapshot.js +9 -2
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-rejection.d.ts +2 -2
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-rejection.js +2 -2
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/prepared-execution.js +17 -11
- package/dist/src/runtime/automations/service.d.ts +1 -1
- package/dist/src/runtime/capabilities/automation-builder/tool-module.js +4 -4
- package/dist/src/runtime/capabilities/automations/draft-index.d.ts +1 -1
- package/dist/src/runtime/capabilities/automations/tool-module.js +4 -4
- package/dist/src/runtime/capabilities/core-tool-contracts.d.ts +29 -0
- package/dist/src/runtime/capabilities/core-tool-contracts.js +38 -0
- package/dist/src/runtime/capabilities/knowledge-skills/read-many.d.ts +4 -0
- package/dist/src/runtime/capabilities/knowledge-skills/read-many.js +21 -0
- package/dist/src/runtime/capabilities/knowledge-skills/read-targets.d.ts +13 -0
- package/dist/src/runtime/capabilities/knowledge-skills/read-targets.js +44 -0
- package/dist/src/runtime/capabilities/knowledge-skills/tool-contract.d.ts +141 -0
- package/dist/src/runtime/capabilities/knowledge-skills/tool-contract.js +58 -0
- package/dist/src/runtime/capabilities/knowledge-skills/tool-module.d.ts +4 -0
- package/dist/src/runtime/capabilities/knowledge-skills/tool-module.js +78 -0
- package/dist/src/runtime/capabilities/knowledge-skills/tool-output.d.ts +12 -0
- package/dist/src/runtime/capabilities/knowledge-skills/tool-output.js +21 -0
- package/dist/src/runtime/capabilities/knowledge-skills/write-contract.d.ts +77 -0
- package/dist/src/runtime/capabilities/knowledge-skills/write-contract.js +28 -0
- package/dist/src/runtime/capabilities/knowledge-skills/write-operations.d.ts +3 -0
- package/dist/src/runtime/capabilities/knowledge-skills/write-operations.js +34 -0
- package/dist/src/runtime/capabilities/scheduling/tool-module.js +3 -3
- package/dist/src/runtime/capabilities/tool-availability.js +6 -0
- package/dist/src/runtime/composition.d.ts +5 -0
- package/dist/src/runtime/context/capability-brief.d.ts +2 -2
- package/dist/src/runtime/context/capability-brief.js +3 -3
- package/dist/src/runtime/context/capability-descriptions.d.ts +3 -2
- package/dist/src/runtime/context/capability-descriptions.js +57 -20
- package/dist/src/runtime/context/capability-result-compaction-source.d.ts +3 -1
- package/dist/src/runtime/context/capability-result-compaction-source.js +13 -1
- package/dist/src/runtime/context/core-skill-read-context.d.ts +16 -0
- package/dist/src/runtime/context/core-skill-read-context.js +76 -0
- package/dist/src/runtime/context/exact-evidence-match.d.ts +3 -0
- package/dist/src/runtime/context/exact-evidence-match.js +34 -0
- package/dist/src/runtime/context/model-step-compaction.js +20 -6
- package/dist/src/runtime/context/semantic-compaction/core-skill-read-source.d.ts +9 -0
- package/dist/src/runtime/context/semantic-compaction/core-skill-read-source.js +38 -0
- package/dist/src/runtime/context/semantic-compaction/generation-contracts.d.ts +2 -0
- package/dist/src/runtime/context/semantic-compaction/prompt.js +7 -7
- package/dist/src/runtime/context/semantic-compaction/run.js +10 -3
- package/dist/src/runtime/context/semantic-compaction/super-source-integrity.js +33 -3
- package/dist/src/runtime/context/session-artifact-paths.d.ts +2 -1
- package/dist/src/runtime/context/session-artifact-paths.js +2 -1
- package/dist/src/runtime/context/session-memory/model-step-controller.d.ts +2 -2
- package/dist/src/runtime/context/super-worker-compaction-failure.d.ts +1 -1
- package/dist/src/runtime/context/super-worker-compaction-failure.js +2 -1
- package/dist/src/runtime/context/super-worker-compaction-sidecar.d.ts +2 -1
- package/dist/src/runtime/context/super-worker-compaction-sidecar.js +9 -3
- package/dist/src/runtime/default-environment-adapters.d.ts +2 -1
- package/dist/src/runtime/default-environment-adapters.js +5 -1
- package/dist/src/runtime/knowledge-skills/available-skills-projection.d.ts +17 -0
- package/dist/src/runtime/knowledge-skills/available-skills-projection.js +66 -0
- package/dist/src/runtime/knowledge-skills/available-skills.d.ts +7 -0
- package/dist/src/runtime/knowledge-skills/available-skills.js +17 -0
- package/dist/src/runtime/knowledge-skills/builtins/abot-studio.d.ts +2 -0
- package/dist/src/runtime/knowledge-skills/builtins/abot-studio.js +27 -0
- package/dist/src/runtime/knowledge-skills/builtins/computer-use.d.ts +2 -0
- package/dist/src/runtime/knowledge-skills/builtins/computer-use.js +34 -0
- package/dist/src/runtime/knowledge-skills/builtins/skill-creator.d.ts +2 -0
- package/dist/src/runtime/knowledge-skills/builtins/skill-creator.js +29 -0
- package/dist/src/runtime/knowledge-skills/builtins/technical-work.d.ts +2 -0
- package/dist/src/runtime/knowledge-skills/builtins/technical-work.js +27 -0
- package/dist/src/runtime/knowledge-skills/catalog.d.ts +2 -0
- package/dist/src/runtime/knowledge-skills/catalog.js +12 -0
- package/dist/src/runtime/knowledge-skills/personal-contracts.d.ts +48 -0
- package/dist/src/runtime/knowledge-skills/personal-contracts.js +29 -0
- package/dist/src/runtime/knowledge-skills/personal-documents.d.ts +6 -0
- package/dist/src/runtime/knowledge-skills/personal-documents.js +56 -0
- package/dist/src/runtime/knowledge-skills/personal-management.d.ts +9 -0
- package/dist/src/runtime/knowledge-skills/personal-management.js +64 -0
- package/dist/src/runtime/knowledge-skills/personal-repository.d.ts +6 -0
- package/dist/src/runtime/knowledge-skills/personal-repository.js +76 -0
- package/dist/src/runtime/knowledge-skills/personal-store.d.ts +4 -0
- package/dist/src/runtime/knowledge-skills/personal-store.js +33 -0
- package/dist/src/runtime/knowledge-skills/read-evidence.d.ts +3 -0
- package/dist/src/runtime/knowledge-skills/read-evidence.js +13 -0
- package/dist/src/runtime/knowledge-skills/store.d.ts +19 -0
- package/dist/src/runtime/knowledge-skills/store.js +41 -0
- package/dist/src/runtime/local-application.d.ts +2 -1
- package/dist/src/runtime/local-host/app-service-dispatch.d.ts +1 -0
- package/dist/src/runtime/local-host/app-service-dispatch.js +5 -0
- package/dist/src/runtime/local-host/client-services.d.ts +3 -1
- package/dist/src/runtime/local-host/client-services.js +3 -2
- package/dist/src/runtime/long-term-memory/conversation-authoring/context.d.ts +7 -1
- package/dist/src/runtime/long-term-memory/conversation-authoring/context.js +51 -25
- package/dist/src/runtime/long-term-memory/conversation-authoring/plain-text-context.d.ts +5 -0
- package/dist/src/runtime/long-term-memory/conversation-authoring/plain-text-context.js +28 -0
- package/dist/src/runtime/long-term-memory/initial-context.d.ts +18 -0
- package/dist/src/runtime/long-term-memory/initial-context.js +57 -0
- package/dist/src/runtime/long-term-memory/projection.js +1 -1
- package/dist/src/runtime/model/context-compaction-admission.d.ts +1 -0
- package/dist/src/runtime/model/context-compaction-admission.js +35 -1
- package/dist/src/runtime/model/context-compaction-contracts.d.ts +9 -1
- package/dist/src/runtime/model/invoke-step.js +6 -2
- package/dist/src/runtime/model/provider-failure.d.ts +13 -0
- package/dist/src/runtime/model/provider-failure.js +37 -0
- package/dist/src/runtime/orchestration/role-calls/activation-budget.js +1 -0
- package/dist/src/runtime/orchestration/role-calls/candidate-validation.js +4 -1
- package/dist/src/runtime/orchestration/role-calls/checkpoint-state.d.ts +1 -1
- package/dist/src/runtime/orchestration/role-calls/checkpoint-state.js +7 -3
- package/dist/src/runtime/orchestration/role-calls/command-decoder.js +3 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/skill-read-transition.d.ts +4 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/skill-read-transition.js +48 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch.js +3 -0
- package/dist/src/runtime/orchestration/role-calls/contracts.d.ts +8 -4
- package/dist/src/runtime/orchestration/role-calls/contracts.js +3 -3
- package/dist/src/runtime/orchestration/role-calls/ledger.d.ts +2 -1
- package/dist/src/runtime/orchestration/role-calls/ledger.js +2 -2
- package/dist/src/runtime/orchestration/role-calls/memory-recall-contract.d.ts +7 -0
- package/dist/src/runtime/orchestration/role-calls/memory-recall-state-validation.d.ts +2 -0
- package/dist/src/runtime/orchestration/role-calls/memory-recall-state-validation.js +88 -0
- package/dist/src/runtime/orchestration/role-calls/reducer.d.ts +1 -1
- package/dist/src/runtime/orchestration/role-calls/reducer.js +2 -1
- package/dist/src/runtime/orchestration/role-calls/skill-read.d.ts +47 -0
- package/dist/src/runtime/orchestration/role-calls/skill-read.js +196 -0
- package/dist/src/runtime/orchestration/role-executors/activation/model-output-failure.d.ts +1 -1
- package/dist/src/runtime/orchestration/role-executors/activation/model-output-failure.js +4 -2
- package/dist/src/runtime/orchestration/worker-capabilities/binding/create-binding.js +4 -1
- package/dist/src/runtime/orchestration/worker-capabilities/contracts.d.ts +4 -2
- package/dist/src/runtime/orchestration/worker-capabilities/contracts.js +2 -2
- package/dist/src/runtime/orchestration/worker-capabilities/execution/approval-group.js +10 -4
- package/dist/src/runtime/orchestration/worker-capabilities/execution/execution-freshness.d.ts +5 -0
- package/dist/src/runtime/orchestration/worker-capabilities/execution/execution-freshness.js +31 -0
- package/dist/src/runtime/orchestration/worker-capabilities/payload-compaction-transport.d.ts +2 -0
- package/dist/src/runtime/orchestration/worker-capabilities/payload-compaction-transport.js +7 -2
- package/dist/src/runtime/orchestration/worker-capabilities/supervisor-skill-authority.d.ts +19 -0
- package/dist/src/runtime/orchestration/worker-capabilities/supervisor-skill-authority.js +43 -0
- package/dist/src/runtime/plugins/loader.js +7 -6
- package/dist/src/runtime/plugins/manifest-projection.js +3 -0
- package/dist/src/runtime/request/approval-wait/preflight.js +1 -0
- package/dist/src/runtime/request/bound-runtime-handler.js +1 -0
- package/dist/src/runtime/request/capability-execution-freshness.js +6 -1
- package/dist/src/runtime/request/contracts.d.ts +2 -0
- package/dist/src/runtime/request/execution-agent-root-execution.js +11 -1
- package/dist/src/runtime/request/execution-payload-compacted-evidence.d.ts +2 -2
- package/dist/src/runtime/request/execution-scope-surfaces.d.ts +2 -0
- package/dist/src/runtime/request/execution-scope-surfaces.js +7 -0
- package/dist/src/runtime/request/execution-scope.d.ts +6 -2
- package/dist/src/runtime/request/execution-scope.js +11 -0
- package/dist/src/runtime/request/payload-settled-evidence.d.ts +11 -0
- package/dist/src/runtime/request/payload-settled-evidence.js +29 -0
- package/dist/src/runtime/request/prepared-execution.js +2 -0
- package/dist/src/runtime/request/role-call-delegation-events.d.ts +19 -0
- package/dist/src/runtime/request/role-call-delegation-events.js +52 -0
- package/dist/src/runtime/request/role-call-return-events.d.ts +19 -0
- package/dist/src/runtime/request/role-call-return-events.js +63 -0
- package/dist/src/runtime/request/role-executor-composition.js +2 -2
- package/dist/src/runtime/request/root-capability-binding.d.ts +24 -0
- package/dist/src/runtime/request/root-capability-binding.js +57 -0
- package/dist/src/runtime/request/root-capability-catalog.d.ts +16 -0
- package/dist/src/runtime/request/root-capability-catalog.js +20 -0
- package/dist/src/runtime/request/root-contract.d.ts +13 -1
- package/dist/src/runtime/request/root-execution-kernel.js +36 -68
- package/dist/src/runtime/request/root-reference-action.d.ts +15 -0
- package/dist/src/runtime/request/root-reference-action.js +48 -0
- package/dist/src/runtime/request/root-skill-read.d.ts +13 -0
- package/dist/src/runtime/request/root-skill-read.js +102 -0
- package/dist/src/runtime/request/runner.js +19 -3
- package/dist/src/runtime/request/super-payload-context-failure.js +13 -4
- package/dist/src/runtime/request/supervisor-root-execution.js +54 -1
- package/dist/src/runtime/request/supervisor-skill-edit-target.d.ts +9 -0
- package/dist/src/runtime/request/supervisor-skill-edit-target.js +25 -0
- package/dist/src/runtime/request/supervisor-skill-payload-context.d.ts +21 -0
- package/dist/src/runtime/request/supervisor-skill-payload-context.js +91 -0
- package/dist/src/runtime/request/supervisor-skill-write-preparation.d.ts +25 -0
- package/dist/src/runtime/request/supervisor-skill-write-preparation.js +71 -0
- package/dist/src/runtime/request/worker-capability-composition.d.ts +4 -1
- package/dist/src/runtime/request/worker-capability-composition.js +4 -1
- package/dist/src/runtime/request/worker-capability-payload.d.ts +1 -1
- package/dist/src/runtime/request/worker-capability-payload.js +44 -37
- package/dist/src/runtime/runtime-environment.d.ts +2 -0
- package/dist/src/runtime/runtime-environment.js +12 -1
- package/dist/src/runtime/scheduler/contracts.d.ts +4 -0
- package/dist/src/runtime/scheduler/run-list-filter.d.ts +11 -0
- package/dist/src/runtime/scheduler/run-list-filter.js +56 -0
- package/dist/src/runtime/scheduler/run-list-query.d.ts +2 -2
- package/dist/src/runtime/scheduler/run-list-query.js +4 -1
- package/dist/src/runtime/steps/auditor-decision/contracts.d.ts +2 -0
- package/dist/src/runtime/steps/auditor-decision/evidence-representation.d.ts +2 -2
- package/dist/src/runtime/steps/auditor-decision/evidence-representation.js +2 -34
- package/dist/src/runtime/steps/auditor-decision/input.js +21 -3
- package/dist/src/runtime/steps/auditor-decision/projection.js +5 -0
- package/dist/src/runtime/steps/auditor-decision/prompt.d.ts +1 -1
- package/dist/src/runtime/steps/auditor-decision/prompt.js +14 -3
- package/dist/src/runtime/steps/capability-execution-guidance.d.ts +7 -0
- package/dist/src/runtime/steps/capability-execution-guidance.js +28 -0
- package/dist/src/runtime/steps/capability-execution-instructions.d.ts +0 -2
- package/dist/src/runtime/steps/capability-execution-instructions.js +0 -2
- package/dist/src/runtime/steps/execution-agent/capability-result-context.d.ts +5 -2
- package/dist/src/runtime/steps/execution-agent/capability-result-context.js +22 -3
- package/dist/src/runtime/steps/execution-agent/compaction.d.ts +3 -2
- package/dist/src/runtime/steps/execution-agent/compaction.js +9 -1
- package/dist/src/runtime/steps/execution-agent/contracts.d.ts +10 -0
- package/dist/src/runtime/steps/execution-agent/decision-parsing.js +13 -1
- package/dist/src/runtime/steps/execution-agent/direct-response-configuration.d.ts +3 -0
- package/dist/src/runtime/steps/execution-agent/direct-response-configuration.js +64 -0
- package/dist/src/runtime/steps/execution-agent/direct-response-contract.d.ts +7 -0
- package/dist/src/runtime/steps/execution-agent/direct-response-contract.js +56 -0
- package/dist/src/runtime/steps/execution-agent/direct-response-policy.d.ts +9 -0
- package/dist/src/runtime/steps/execution-agent/direct-response-policy.js +30 -0
- package/dist/src/runtime/steps/execution-agent/direct-response-prompt.d.ts +7 -0
- package/dist/src/runtime/steps/execution-agent/direct-response-prompt.js +43 -0
- package/dist/src/runtime/steps/execution-agent/format.js +2 -0
- package/dist/src/runtime/steps/execution-agent/input.d.ts +2 -0
- package/dist/src/runtime/steps/execution-agent/input.js +35 -2
- package/dist/src/runtime/steps/execution-agent/plugin-catalog.d.ts +4 -0
- package/dist/src/runtime/steps/execution-agent/plugin-catalog.js +8 -0
- package/dist/src/runtime/steps/execution-agent/prompt.d.ts +1 -0
- package/dist/src/runtime/steps/execution-agent/prompt.js +42 -41
- package/dist/src/runtime/steps/execution-agent/refinement-input.d.ts +1 -0
- package/dist/src/runtime/steps/execution-agent/refinement-prompt.js +4 -1
- package/dist/src/runtime/steps/execution-agent/response-prompt.js +1 -0
- package/dist/src/runtime/steps/execution-agent/response-run.js +6 -12
- package/dist/src/runtime/steps/execution-agent/run.js +5 -2
- package/dist/src/runtime/steps/execution-agent/state-context.d.ts +2 -3
- package/dist/src/runtime/steps/execution-agent/state-context.js +3 -40
- package/dist/src/runtime/steps/knowledge-skill-instructions.d.ts +3 -0
- package/dist/src/runtime/steps/knowledge-skill-instructions.js +3 -0
- package/dist/src/runtime/steps/planner-decision/capability-brief.d.ts +4 -2
- package/dist/src/runtime/steps/planner-decision/capability-brief.js +5 -1
- package/dist/src/runtime/steps/planner-decision/input.d.ts +2 -2
- package/dist/src/runtime/steps/planner-decision/input.js +7 -1
- package/dist/src/runtime/steps/planner-decision/prompt.js +29 -49
- package/dist/src/runtime/steps/planner-graph/input.d.ts +2 -2
- package/dist/src/runtime/steps/planner-graph/input.js +9 -8
- package/dist/src/runtime/steps/planner-graph/prompt.js +2 -2
- package/dist/src/runtime/steps/planner-graph/run.d.ts +2 -2
- package/dist/src/runtime/steps/planner-graph/run.js +5 -5
- package/dist/src/runtime/steps/planner-graph/skill-guidance.d.ts +5 -0
- package/dist/src/runtime/steps/planner-graph/skill-guidance.js +62 -0
- package/dist/src/runtime/steps/reviewer-decision/final-evidence.d.ts +1 -0
- package/dist/src/runtime/steps/reviewer-decision/final-evidence.js +3 -1
- package/dist/src/runtime/steps/reviewer-decision/input.d.ts +3 -1
- package/dist/src/runtime/steps/reviewer-decision/input.js +2 -22
- package/dist/src/runtime/steps/reviewer-decision/model-context.d.ts +21 -0
- package/dist/src/runtime/steps/reviewer-decision/model-context.js +32 -1
- package/dist/src/runtime/steps/reviewer-decision/projection.js +4 -0
- package/dist/src/runtime/steps/reviewer-decision/prompt.d.ts +1 -1
- package/dist/src/runtime/steps/reviewer-decision/prompt.js +15 -4
- package/dist/src/runtime/steps/reviewer-decision/run.d.ts +2 -0
- package/dist/src/runtime/steps/reviewer-decision/run.js +6 -0
- package/dist/src/runtime/steps/skill-read-decision.d.ts +34 -0
- package/dist/src/runtime/steps/skill-read-decision.js +91 -0
- package/dist/src/runtime/steps/supervisor-decision/artifact-paths.d.ts +22 -0
- package/dist/src/runtime/steps/supervisor-decision/artifact-paths.js +132 -0
- package/dist/src/runtime/steps/supervisor-decision/capability-brief.d.ts +2 -0
- package/dist/src/runtime/steps/supervisor-decision/capability-brief.js +9 -2
- package/dist/src/runtime/steps/supervisor-decision/contracts.d.ts +12 -3
- package/dist/src/runtime/steps/supervisor-decision/contracts.js +3 -0
- package/dist/src/runtime/steps/supervisor-decision/decision-phases.d.ts +37 -0
- package/dist/src/runtime/steps/supervisor-decision/decision-phases.js +124 -0
- package/dist/src/runtime/steps/supervisor-decision/diagnostics.d.ts +5 -1
- package/dist/src/runtime/steps/supervisor-decision/diagnostics.js +4 -0
- package/dist/src/runtime/steps/supervisor-decision/format.d.ts +1 -0
- package/dist/src/runtime/steps/supervisor-decision/format.js +2 -0
- package/dist/src/runtime/steps/supervisor-decision/input.d.ts +8 -1
- package/dist/src/runtime/steps/supervisor-decision/input.js +35 -11
- package/dist/src/runtime/steps/supervisor-decision/parser.d.ts +1 -0
- package/dist/src/runtime/steps/supervisor-decision/parser.js +11 -0
- package/dist/src/runtime/steps/supervisor-decision/preparation-input.d.ts +26 -0
- package/dist/src/runtime/steps/supervisor-decision/preparation-input.js +39 -0
- package/dist/src/runtime/steps/supervisor-decision/preparation.d.ts +17 -0
- package/dist/src/runtime/steps/supervisor-decision/preparation.js +65 -0
- package/dist/src/runtime/steps/supervisor-decision/presentation.d.ts +13 -0
- package/dist/src/runtime/steps/supervisor-decision/presentation.js +47 -0
- package/dist/src/runtime/steps/supervisor-decision/prompt.d.ts +5 -0
- package/dist/src/runtime/steps/supervisor-decision/prompt.js +97 -106
- package/dist/src/runtime/steps/supervisor-decision/response-recommendation.d.ts +2 -0
- package/dist/src/runtime/steps/supervisor-decision/response-recommendation.js +2 -0
- package/dist/src/runtime/steps/supervisor-decision/resume.d.ts +3 -0
- package/dist/src/runtime/steps/supervisor-decision/resume.js +20 -0
- package/dist/src/runtime/steps/supervisor-decision/run.d.ts +7 -0
- package/dist/src/runtime/steps/supervisor-decision/run.js +76 -158
- package/dist/src/runtime/steps/supervisor-decision/skill-selection-input.d.ts +21 -0
- package/dist/src/runtime/steps/supervisor-decision/skill-selection-input.js +29 -0
- package/dist/src/runtime/steps/supervisor-decision/skill-selection.d.ts +16 -0
- package/dist/src/runtime/steps/supervisor-decision/skill-selection.js +44 -0
- package/dist/src/runtime/steps/supervisor-response/input.d.ts +3 -0
- package/dist/src/runtime/steps/supervisor-response/input.js +5 -0
- package/dist/src/runtime/steps/supervisor-response/prompt.js +2 -0
- package/dist/src/runtime/steps/supervisor-response/response-recommendation.d.ts +3 -0
- package/dist/src/runtime/steps/supervisor-response/response-recommendation.js +24 -4
- package/dist/src/runtime/steps/supervisor-response/run.d.ts +7 -0
- package/dist/src/runtime/steps/supervisor-response/run.js +3 -6
- package/dist/src/runtime/steps/supervisor-skill-authoring/contract.d.ts +43 -0
- package/dist/src/runtime/steps/supervisor-skill-authoring/contract.js +85 -0
- package/dist/src/runtime/steps/supervisor-skill-authoring/input.d.ts +35 -0
- package/dist/src/runtime/steps/supervisor-skill-authoring/input.js +87 -0
- package/dist/src/runtime/steps/supervisor-skill-authoring/run.d.ts +10 -0
- package/dist/src/runtime/steps/supervisor-skill-authoring/run.js +35 -0
- package/dist/src/runtime/steps/supervisor-skill-instructions.d.ts +4 -0
- package/dist/src/runtime/steps/supervisor-skill-instructions.js +4 -0
- package/dist/src/runtime/steps/worker-capability-scope-decision.js +14 -1
- package/dist/src/runtime/steps/worker-decision/contracts.d.ts +1 -0
- package/dist/src/runtime/steps/worker-decision/input/execution-guidance.d.ts +5 -0
- package/dist/src/runtime/steps/worker-decision/input/execution-guidance.js +31 -0
- package/dist/src/runtime/steps/worker-decision/input/prompt-context.js +2 -25
- package/dist/src/runtime/steps/worker-decision/input/reference-context.js +4 -0
- package/dist/src/runtime/steps/worker-decision/prompt.js +6 -2
- package/dist/src/runtime/steps/worker-decision/result-author.js +6 -0
- package/dist/src/web-ui/app/ARCHITECTURE.md +1 -1
- package/dist/src/web-ui/app/app-bootstrap.js +3 -0
- package/dist/src/web-ui/app/app.js +7 -1
- package/dist/src/web-ui/app/components/automations/run-history-controls.js +77 -0
- package/dist/src/web-ui/app/components/automations/run-history.js +55 -0
- package/dist/src/web-ui/app/components/automations/run.js +3 -8
- package/dist/src/web-ui/app/components/automations/timeline.js +3 -2
- package/dist/src/web-ui/app/components/automations/workspace.js +11 -2
- package/dist/src/web-ui/app/components/conversation-role-cards.js +27 -0
- package/dist/src/web-ui/app/components/conversation-role-delegations.d.ts +12 -0
- package/dist/src/web-ui/app/components/conversation-role-delegations.js +24 -0
- package/dist/src/web-ui/app/components/conversation-role-history.d.ts +13 -0
- package/dist/src/web-ui/app/components/conversation-role-history.js +81 -0
- package/dist/src/web-ui/app/components/conversation-role-returns.d.ts +12 -0
- package/dist/src/web-ui/app/components/conversation-role-returns.js +23 -0
- package/dist/src/web-ui/app/components/dashboard/compact-layout.js +137 -0
- package/dist/src/web-ui/app/components/dashboard/icons.js +5 -0
- package/dist/src/web-ui/app/components/dashboard/widget-card.js +85 -0
- package/dist/src/web-ui/app/components/dashboard/widget-dialog.js +83 -0
- package/dist/src/web-ui/app/components/dashboard/widget-summaries.js +155 -0
- package/dist/src/web-ui/app/components/dashboard/workspace.js +28 -4
- package/dist/src/web-ui/app/components/onboarding-workspace-access.js +1 -1
- package/dist/src/web-ui/app/components/operations-summary.js +2 -1
- package/dist/src/web-ui/app/components/passive-learning/home-widget-preview.js +32 -0
- package/dist/src/web-ui/app/components/passive-learning/home.js +4 -1
- package/dist/src/web-ui/app/components/schedules/details.js +3 -2
- package/dist/src/web-ui/app/components/skills/workspace.js +119 -0
- package/dist/src/web-ui/app/components/spark-chat/panel.js +1 -1
- package/dist/src/web-ui/app/components/spark-chat/settings.js +1 -1
- package/dist/src/web-ui/app/components/system-host/home-widget-permission-preview.js +75 -0
- package/dist/src/web-ui/app/components/system-host/home-widget-summary.js +93 -0
- package/dist/src/web-ui/app/components/system-host/macos-permission-rendering.js +2 -2
- package/dist/src/web-ui/app/components/system-host/native-windows-access.js +1 -1
- package/dist/src/web-ui/app/components/system-host/rendering.js +3 -3
- package/dist/src/web-ui/app/components/system-host/windows-store-setup.js +2 -2
- package/dist/src/web-ui/app/components/workspace-shell.js +11 -1
- package/dist/src/web-ui/app/computer-access-feature.js +13 -1
- package/dist/src/web-ui/app/configuration-feature.js +2 -0
- package/dist/src/web-ui/app/controllers/automation-read-projection.js +8 -4
- package/dist/src/web-ui/app/controllers/automation-run-actions.js +3 -1
- package/dist/src/web-ui/app/controllers/automation-run-history.js +159 -0
- package/dist/src/web-ui/app/controllers/automations-controller.js +27 -11
- package/dist/src/web-ui/app/controllers/environment-workspace-preparation.js +6 -2
- package/dist/src/web-ui/app/controllers/operations-controller.js +2 -1
- package/dist/src/web-ui/app/controllers/realtime-event-controller.js +22 -1
- package/dist/src/web-ui/app/controllers/reasoning-mode-controller.js +1 -1
- package/dist/src/web-ui/app/controllers/runtime-selection-controller.js +7 -1
- package/dist/src/web-ui/app/controllers/skills-controller.js +237 -0
- package/dist/src/web-ui/app/dashboard-feature.js +9 -0
- package/dist/src/web-ui/app/lib/conversation-role-model.d.ts +5 -0
- package/dist/src/web-ui/app/lib/conversation-role-model.js +63 -5
- package/dist/src/web-ui/app/lib/event-presentation.js +34 -0
- package/dist/src/web-ui/app/lib/reasoning-controls.js +6 -1
- package/dist/src/web-ui/app/lib/role-delegation-event.d.ts +18 -0
- package/dist/src/web-ui/app/lib/role-delegation-event.js +47 -0
- package/dist/src/web-ui/app/lib/role-return-event.d.ts +19 -0
- package/dist/src/web-ui/app/lib/role-return-event.js +36 -0
- package/dist/src/web-ui/app/lib/tool-activity-event.js +8 -6
- package/dist/src/web-ui/app/lib/tool-skill-activity-fields.js +50 -0
- package/dist/src/web-ui/app/lib/workspace-route.js +1 -0
- package/dist/src/web-ui/app/passive-learning-feature.js +2 -2
- package/dist/src/web-ui/app/services/runtime-web-client/automations.d.ts +9 -1
- package/dist/src/web-ui/app/services/runtime-web-client/automations.js +10 -2
- package/dist/src/web-ui/app/services/runtime-web-client/skills.js +23 -0
- package/dist/src/web-ui/app/services/runtime-web-client.js +2 -0
- package/dist/src/web-ui/app/skills-feature.js +36 -0
- package/dist/src/web-ui/app/styles/24-conversation-role-cards.css +58 -0
- package/dist/src/web-ui/app/styles/40-skills.css +34 -0
- package/dist/src/web-ui/app/styles/50-automations.css +24 -3
- package/dist/src/web-ui/app/styles/95-home-widgets.css +110 -0
- package/dist/src/web-ui/app/styles.css +2 -0
- package/dist/src/web-ui/app/ui-behavior.d.ts +1 -1
- package/dist/src/web-ui/app/ui-behavior.js +1 -0
- package/dist/src/web-ui/client-state/store.js +3 -2
- package/dist/src/web-ui/client-state/transaction-order.d.ts +2 -0
- package/dist/src/web-ui/client-state/transaction-order.js +18 -0
- package/dist/src/web-ui/local-runtime/api-router.d.ts +1 -0
- package/dist/src/web-ui/local-runtime/api-router.js +7 -0
- package/dist/src/web-ui/local-runtime/automation-routes.js +2 -1
- package/dist/src/web-ui/local-runtime/automation-run-page.d.ts +5 -0
- package/dist/src/web-ui/local-runtime/automation-run-page.js +26 -0
- package/dist/src/web-ui/local-runtime/skill-management-routes.d.ts +18 -0
- package/dist/src/web-ui/local-runtime/skill-management-routes.js +118 -0
- package/docs/configuration.md +8 -0
- package/docs/plugins.md +37 -32
- package/docs/runtime-public-contracts.md +37 -0
- package/examples/request-runner.config.example.json +3 -0
- package/package.json +1 -1
- package/plugins/capability-brief/plugin.json +1 -1
- package/plugins/code-outline/plugin.json +1 -1
- package/plugins/document-reader/plugin.json +1 -1
- package/plugins/exec/plugin.json +1 -1
- package/plugins/filesystem/plugin.json +1 -1
- package/plugins/json-inspector/plugin.json +1 -1
- package/plugins/local-search/plugin.json +1 -1
- package/plugins/memory/plugin.json +1 -1
- package/plugins/project-orientation/plugin.json +1 -1
- package/plugins/system/plugin.json +1 -1
- package/plugins/system-probe/plugin.json +1 -1
- package/plugins/web/plugin.json +1 -1
- package/plugins/web/skills/web_fetch_skill/SKILL.md +1 -2
- package/plugins/web/skills/web_search_skill/SKILL.md +3 -7
- package/src/runtime/README.md +96 -1
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import { Buffer } from "node:buffer";
|
|
2
|
+
import { PERSONAL_SKILL_LIMITS } from "../../knowledge-skills/personal-contracts.js";
|
|
3
|
+
import { isKnowledgeSkillId, KNOWLEDGE_SKILL_ID_MAX_LENGTH, KNOWLEDGE_SKILL_READ_MAX_ITEMS, } from "../../knowledge-skills/store.js";
|
|
4
|
+
import { exactKeys, isRecord } from "../../validation/strict-record.js";
|
|
5
|
+
/** Decode the exact Store snapshots supplied by the runtime read boundary. */
|
|
6
|
+
export function decodeSkillReadCommand(input) {
|
|
7
|
+
const isRuntimeReadCommand = input.authority === "runtime" && input.type === "record_skill_read";
|
|
8
|
+
if (!isRuntimeReadCommand)
|
|
9
|
+
return { ok: false, code: "invalid_command" };
|
|
10
|
+
const hasCommandFields = exactKeys(input, [
|
|
11
|
+
"authority", "type", "callId", "invocationAttempt", "steeringVersion",
|
|
12
|
+
"operation", "selectors", "result",
|
|
13
|
+
]);
|
|
14
|
+
if (!hasCommandFields)
|
|
15
|
+
return { ok: false, code: "invalid_command" };
|
|
16
|
+
if (!hasSkillReadBinding(input))
|
|
17
|
+
return { ok: false, code: "invalid_command" };
|
|
18
|
+
if (!hasSkillReadPayload(input))
|
|
19
|
+
return { ok: false, code: "invalid_command" };
|
|
20
|
+
return { ok: true, value: input };
|
|
21
|
+
}
|
|
22
|
+
/** Omission preserves heads and parked requests created before core Skill reads. */
|
|
23
|
+
export function validateRoleSkillReads(state, policy) {
|
|
24
|
+
const reads = state.skillReads;
|
|
25
|
+
if (reads === undefined)
|
|
26
|
+
return [];
|
|
27
|
+
const invalid = [{ code: "invalid_role_skill_reads", path: "state.skillReads" }];
|
|
28
|
+
if (!Array.isArray(reads))
|
|
29
|
+
return invalid;
|
|
30
|
+
if (reads.length === 0)
|
|
31
|
+
return [];
|
|
32
|
+
const usesSupervisorContract = policy.authority.rootContractId === "supervisor";
|
|
33
|
+
if (!usesSupervisorContract)
|
|
34
|
+
return invalid;
|
|
35
|
+
const root = state.calls.find((call) => call.callId === state.rootCallId);
|
|
36
|
+
if (!root)
|
|
37
|
+
return invalid;
|
|
38
|
+
const isSupervisorRoot = root.parentCallId === null && root.roleId === "supervisor";
|
|
39
|
+
if (!isSupervisorRoot)
|
|
40
|
+
return invalid;
|
|
41
|
+
let previousAttempt = 0;
|
|
42
|
+
let previousSteeringVersion = 0;
|
|
43
|
+
for (const [index, read] of reads.entries()) {
|
|
44
|
+
if (!isRecord(read))
|
|
45
|
+
return invalid;
|
|
46
|
+
const hasReceiptFields = exactKeys(read, [
|
|
47
|
+
"readId", "callId", "invocationAttempt", "steeringVersion",
|
|
48
|
+
"operation", "selectors", "result",
|
|
49
|
+
]);
|
|
50
|
+
if (!hasReceiptFields)
|
|
51
|
+
return invalid;
|
|
52
|
+
if (!hasSkillReadBinding(read))
|
|
53
|
+
return invalid;
|
|
54
|
+
if (!hasSkillReadPayload(read))
|
|
55
|
+
return invalid;
|
|
56
|
+
const hasSequentialIdentity = read.readId === `skill-read-${index + 1}`;
|
|
57
|
+
if (!hasSequentialIdentity)
|
|
58
|
+
return invalid;
|
|
59
|
+
const belongsToRoot = read.callId === root.callId;
|
|
60
|
+
if (!belongsToRoot)
|
|
61
|
+
return invalid;
|
|
62
|
+
const followsPreviousRead = read.invocationAttempt > previousAttempt;
|
|
63
|
+
if (!followsPreviousRead)
|
|
64
|
+
return invalid;
|
|
65
|
+
const precedesCurrentActivation = read.invocationAttempt < root.activationCount;
|
|
66
|
+
if (!precedesCurrentActivation)
|
|
67
|
+
return invalid;
|
|
68
|
+
const preservesSteeringOrder = read.steeringVersion >= previousSteeringVersion;
|
|
69
|
+
if (!preservesSteeringOrder)
|
|
70
|
+
return invalid;
|
|
71
|
+
previousAttempt = read.invocationAttempt;
|
|
72
|
+
previousSteeringVersion = read.steeringVersion;
|
|
73
|
+
}
|
|
74
|
+
return [];
|
|
75
|
+
}
|
|
76
|
+
function hasSkillReadBinding(value) {
|
|
77
|
+
if (!hasText(value.callId))
|
|
78
|
+
return false;
|
|
79
|
+
const hasInvocationAttempt = Number.isSafeInteger(value.invocationAttempt) &&
|
|
80
|
+
value.invocationAttempt >= 1;
|
|
81
|
+
if (!hasInvocationAttempt)
|
|
82
|
+
return false;
|
|
83
|
+
const hasSteeringVersion = Number.isSafeInteger(value.steeringVersion) &&
|
|
84
|
+
value.steeringVersion >= 0;
|
|
85
|
+
return hasSteeringVersion;
|
|
86
|
+
}
|
|
87
|
+
function hasSkillReadPayload(value) {
|
|
88
|
+
if (!Array.isArray(value.selectors))
|
|
89
|
+
return false;
|
|
90
|
+
if (!isRecord(value.result))
|
|
91
|
+
return false;
|
|
92
|
+
const selectors = value.selectors;
|
|
93
|
+
const isRead = value.operation === "read_skills";
|
|
94
|
+
const isList = value.operation === "list_skills";
|
|
95
|
+
if (!isRead && !isList)
|
|
96
|
+
return false;
|
|
97
|
+
if (isRead && !hasValidSelectors(selectors))
|
|
98
|
+
return false;
|
|
99
|
+
if (isList && selectors.length !== 0)
|
|
100
|
+
return false;
|
|
101
|
+
const result = value.result;
|
|
102
|
+
if (!Array.isArray(result.skills))
|
|
103
|
+
return false;
|
|
104
|
+
if (result.outcome === "failed") {
|
|
105
|
+
const hasFailureFields = exactKeys(result, ["outcome", "errorCode", "skills"]);
|
|
106
|
+
if (!hasFailureFields)
|
|
107
|
+
return false;
|
|
108
|
+
if (typeof result.errorCode !== "string")
|
|
109
|
+
return false;
|
|
110
|
+
const hasErrorCode = /^[a-z][a-z0-9_]*$/.test(result.errorCode);
|
|
111
|
+
if (!hasErrorCode)
|
|
112
|
+
return false;
|
|
113
|
+
return result.skills.length === 0;
|
|
114
|
+
}
|
|
115
|
+
if (result.outcome !== "completed")
|
|
116
|
+
return false;
|
|
117
|
+
if (!exactKeys(result, ["outcome", "skills"]))
|
|
118
|
+
return false;
|
|
119
|
+
const hasReadSize = result.skills.length > 0 &&
|
|
120
|
+
result.skills.length <= KNOWLEDGE_SKILL_READ_MAX_ITEMS;
|
|
121
|
+
if (isRead && !hasReadSize)
|
|
122
|
+
return false;
|
|
123
|
+
if (!result.skills.every((skill) => hasSkillSnapshot(skill, isRead)))
|
|
124
|
+
return false;
|
|
125
|
+
const skills = result.skills;
|
|
126
|
+
const hasUniqueSkills = new Set(skills.map(({ skillId }) => skillId)).size === skills.length;
|
|
127
|
+
if (!hasUniqueSkills)
|
|
128
|
+
return false;
|
|
129
|
+
if (!isRead)
|
|
130
|
+
return true;
|
|
131
|
+
const resolvesEverySelector = selectors.every((selector) => skills.some((skill) => matchesSelector(skill, selector)));
|
|
132
|
+
if (!resolvesEverySelector)
|
|
133
|
+
return false;
|
|
134
|
+
const containsOnlySelectedSkills = skills.every((skill) => selectors.some((selector) => matchesSelector(skill, selector)));
|
|
135
|
+
return containsOnlySelectedSkills;
|
|
136
|
+
}
|
|
137
|
+
function hasValidSelectors(values) {
|
|
138
|
+
const hasReadSize = values.length > 0 && values.length <= KNOWLEDGE_SKILL_READ_MAX_ITEMS;
|
|
139
|
+
if (!hasReadSize)
|
|
140
|
+
return false;
|
|
141
|
+
const maximumLength = Math.max(KNOWLEDGE_SKILL_ID_MAX_LENGTH, PERSONAL_SKILL_LIMITS.name);
|
|
142
|
+
const hasExactSelectors = values.every((value) => {
|
|
143
|
+
if (typeof value !== "string")
|
|
144
|
+
return false;
|
|
145
|
+
const hasBoundedLength = value.length > 0 && value.length <= maximumLength;
|
|
146
|
+
if (!hasBoundedLength)
|
|
147
|
+
return false;
|
|
148
|
+
return value.trim() === value;
|
|
149
|
+
});
|
|
150
|
+
if (!hasExactSelectors)
|
|
151
|
+
return false;
|
|
152
|
+
return new Set(values).size === values.length;
|
|
153
|
+
}
|
|
154
|
+
function matchesSelector(skill, selector) {
|
|
155
|
+
return skill.skillId === selector || skill.name === selector;
|
|
156
|
+
}
|
|
157
|
+
function hasSkillSnapshot(value, document) {
|
|
158
|
+
if (!isRecord(value))
|
|
159
|
+
return false;
|
|
160
|
+
const hasSnapshotFields = exactKeys(value, ["skillId", "name", "description", ...(document ? ["content"] : [])], ["source", ...(document ? ["revision"] : [])]);
|
|
161
|
+
if (!hasSnapshotFields)
|
|
162
|
+
return false;
|
|
163
|
+
if (!isKnowledgeSkillId(value.skillId))
|
|
164
|
+
return false;
|
|
165
|
+
if (!hasText(value.name))
|
|
166
|
+
return false;
|
|
167
|
+
if (!hasText(value.description))
|
|
168
|
+
return false;
|
|
169
|
+
const hasKnownSource = value.source === undefined || value.source === "system" || value.source === "personal";
|
|
170
|
+
if (!hasKnownSource)
|
|
171
|
+
return false;
|
|
172
|
+
if (value.revision !== undefined) {
|
|
173
|
+
const hasValidRevision = Number.isSafeInteger(value.revision) &&
|
|
174
|
+
value.revision >= 1 &&
|
|
175
|
+
value.revision <= PERSONAL_SKILL_LIMITS.revision;
|
|
176
|
+
if (!hasValidRevision)
|
|
177
|
+
return false;
|
|
178
|
+
}
|
|
179
|
+
if (document && !hasText(value.content))
|
|
180
|
+
return false;
|
|
181
|
+
if (value.source !== "personal")
|
|
182
|
+
return true;
|
|
183
|
+
if (value.name.length > PERSONAL_SKILL_LIMITS.name)
|
|
184
|
+
return false;
|
|
185
|
+
if (value.description.length > PERSONAL_SKILL_LIMITS.description)
|
|
186
|
+
return false;
|
|
187
|
+
if (!document)
|
|
188
|
+
return true;
|
|
189
|
+
if (value.revision === undefined)
|
|
190
|
+
return false;
|
|
191
|
+
const contentBytes = Buffer.byteLength(value.content, "utf8");
|
|
192
|
+
return contentBytes <= PERSONAL_SKILL_LIMITS.contentBytes;
|
|
193
|
+
}
|
|
194
|
+
function hasText(value) {
|
|
195
|
+
return typeof value === "string" && value.trim().length > 0;
|
|
196
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { RoleExecutor, RoleExecutorActivationResult, RoleExecutorInput } from "../contracts.js";
|
|
2
|
-
/** Contains recognized model
|
|
2
|
+
/** Contains recognized model failures and step timeouts in the current call. */
|
|
3
3
|
export declare function executeRoleWithModelOutputFailure<TContext, TValue>(executor: RoleExecutor<TContext, TValue>, input: RoleExecutorInput<TContext>, maxSummaryLength: number, requestId: string): Promise<RoleExecutorActivationResult<TValue>>;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { resolveModelOutputFailure, } from "../../../model/invalid-output-failure.js";
|
|
2
2
|
import { ModelOutputIncompleteError } from "../../../model/provider-completion.js";
|
|
3
|
+
import { ModelProviderFailure } from "../../../model/provider-failure.js";
|
|
3
4
|
import { ModelStepTimeoutError } from "../../../steps/model-step-timeout.js";
|
|
4
5
|
import { traceDebug } from "../../../observability/debug-logger.js";
|
|
5
|
-
/** Contains recognized model
|
|
6
|
+
/** Contains recognized model failures and step timeouts in the current call. */
|
|
6
7
|
export async function executeRoleWithModelOutputFailure(executor, input, maxSummaryLength, requestId) {
|
|
7
8
|
try {
|
|
8
9
|
return await executor.execute(input);
|
|
@@ -30,7 +31,8 @@ export async function executeRoleWithModelOutputFailure(executor, input, maxSumm
|
|
|
30
31
|
}
|
|
31
32
|
}
|
|
32
33
|
function resolveChildModelOutputFailure(error) {
|
|
33
|
-
if (error instanceof
|
|
34
|
+
if (error instanceof ModelProviderFailure ||
|
|
35
|
+
error instanceof ModelStepTimeoutError) {
|
|
34
36
|
return Object.freeze({
|
|
35
37
|
code: error.code,
|
|
36
38
|
modelStep: error.modelStep,
|
|
@@ -5,6 +5,7 @@ import { workerCapabilityBindingRejection } from "./binding-rejection.js";
|
|
|
5
5
|
import { BoundCapabilitySession } from "./bound-capability-session.js";
|
|
6
6
|
import { copyBoundCapabilityCall, inspectInitialBindingAuthority, normalizeExecutionFreshness, } from "./call-authority.js";
|
|
7
7
|
import { bindCapabilityDependencyResults } from "./dependency-results.js";
|
|
8
|
+
import { projectSupervisorSkillCapabilityAdapters } from "../supervisor-skill-authority.js";
|
|
8
9
|
export function createRoleCapabilityBinding(params) {
|
|
9
10
|
const boundCall = copyBoundCapabilityCall(params.call);
|
|
10
11
|
const emptyDiagnostic = createEmptyBindingDiagnostic(params.requestId, boundCall);
|
|
@@ -30,7 +31,9 @@ export function createRoleCapabilityBinding(params) {
|
|
|
30
31
|
emptyDiagnostic,
|
|
31
32
|
});
|
|
32
33
|
const catalog = createBoundCapabilityCatalog({
|
|
33
|
-
adapters:
|
|
34
|
+
adapters: projectSupervisorSkillCapabilityAdapters({
|
|
35
|
+
head: initialHead, call: authority.authoritativeCall, adapters: params.adapters,
|
|
36
|
+
}),
|
|
34
37
|
boundCall,
|
|
35
38
|
emptyDiagnostic,
|
|
36
39
|
});
|
|
@@ -9,10 +9,10 @@ export declare const WORKER_CAPABILITY_INTENT_MAX_LENGTH = 500;
|
|
|
9
9
|
/** Immutable Worker-only assignment for authoring one capability payload. */
|
|
10
10
|
export declare const WORKER_CAPABILITY_AUTHORING_OBJECTIVE_MAX_LENGTH = 8192;
|
|
11
11
|
export declare const WORKER_CAPABILITY_SUMMARY_MAX_LENGTH = 512;
|
|
12
|
-
export declare const WORKER_CAPABILITY_COUNT_MAX =
|
|
12
|
+
export declare const WORKER_CAPABILITY_COUNT_MAX = 130;
|
|
13
13
|
export declare const WORKER_CAPABILITY_CONTROL_COUNT_MAX = 16;
|
|
14
14
|
export declare const WORKER_CAPABILITY_CONTROL_ID_MAX_LENGTH = 64;
|
|
15
|
-
export { TOOL_NORMAL_INVOCATION_STRING_MAX_LENGTH as WORKER_CAPABILITY_CONTROL_STRING_MAX_LENGTH
|
|
15
|
+
export { TOOL_NORMAL_INVOCATION_STRING_MAX_LENGTH as WORKER_CAPABILITY_CONTROL_STRING_MAX_LENGTH } from "../../../capabilities/normal-invocation/contracts.js";
|
|
16
16
|
export declare const WORKER_CAPABILITY_CONTROL_ENUM_MAX_VALUES = 64;
|
|
17
17
|
export declare const WORKER_CAPABILITY_CONTROL_ENUM_VALUE_MAX_LENGTH = 256;
|
|
18
18
|
export declare const WORKER_CAPABILITY_CONTROL_ARRAY_MAX_ITEMS = 64;
|
|
@@ -165,6 +165,8 @@ export type WorkerCapabilityPreparedExecution = Readonly<{
|
|
|
165
165
|
onAdmitted?(executionId: string): void;
|
|
166
166
|
approvalRequest?: ToolApprovalRequest;
|
|
167
167
|
applyApprovalDecision?(decision: BoundApprovalDecision): void;
|
|
168
|
+
/** Project a fenced rejection with adapter-owned lifecycle and evidence; never execute. */
|
|
169
|
+
rejectBeforeExecution?(executionId: string, code: string, message: string): WorkerCapabilityAdapterResult;
|
|
168
170
|
execute(executionId: string): Promise<WorkerCapabilityAdapterResult>;
|
|
169
171
|
}>;
|
|
170
172
|
export type WorkerCapabilityAdapterPreparationInput<TContext> = Readonly<Omit<WorkerCapabilityAdapterExecutionInput<TContext>, "executionId"> & {
|
|
@@ -5,10 +5,10 @@ export const WORKER_CAPABILITY_INTENT_MAX_LENGTH = 500;
|
|
|
5
5
|
/** Immutable Worker-only assignment for authoring one capability payload. */
|
|
6
6
|
export const WORKER_CAPABILITY_AUTHORING_OBJECTIVE_MAX_LENGTH = ROLE_CALL_OBJECTIVE_MAX_LENGTH;
|
|
7
7
|
export const WORKER_CAPABILITY_SUMMARY_MAX_LENGTH = 512;
|
|
8
|
-
export const WORKER_CAPABILITY_COUNT_MAX =
|
|
8
|
+
export const WORKER_CAPABILITY_COUNT_MAX = 130;
|
|
9
9
|
export const WORKER_CAPABILITY_CONTROL_COUNT_MAX = 16;
|
|
10
10
|
export const WORKER_CAPABILITY_CONTROL_ID_MAX_LENGTH = 64;
|
|
11
|
-
export { TOOL_NORMAL_INVOCATION_STRING_MAX_LENGTH as WORKER_CAPABILITY_CONTROL_STRING_MAX_LENGTH
|
|
11
|
+
export { TOOL_NORMAL_INVOCATION_STRING_MAX_LENGTH as WORKER_CAPABILITY_CONTROL_STRING_MAX_LENGTH } from "../../../capabilities/normal-invocation/contracts.js";
|
|
12
12
|
export const WORKER_CAPABILITY_CONTROL_ENUM_MAX_VALUES = 64;
|
|
13
13
|
export const WORKER_CAPABILITY_CONTROL_ENUM_VALUE_MAX_LENGTH = 256;
|
|
14
14
|
export const WORKER_CAPABILITY_CONTROL_ARRAY_MAX_ITEMS = 64;
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { projectSupervisorSkillCapabilityAdapters } from "../supervisor-skill-authority.js";
|
|
2
|
+
import { fenceRestoredApprovalExecution } from "./execution-freshness.js";
|
|
1
3
|
import { restorePreparationRejection } from "./preparation-rejection.js";
|
|
2
4
|
import { isDeepStrictEqual } from "node:util";
|
|
3
5
|
import { settleAdmittedPreparedGroup } from "./settle-prepared.js";
|
|
@@ -72,12 +74,13 @@ export async function restoreCapabilityApprovalGroup(params) {
|
|
|
72
74
|
if (group.executionFreshnessToken !== undefined &&
|
|
73
75
|
!isDeepStrictEqual(group.executionFreshnessToken, params.executionFreshness?.token))
|
|
74
76
|
throw new Error("prepared_approval_freshness_mismatch");
|
|
77
|
+
const adapters = projectSupervisorSkillCapabilityAdapters({ head, call, adapters: params.adapters });
|
|
75
78
|
const running = head.state.capabilityExecutions.filter((entry) => entry.status === "running");
|
|
76
79
|
if (running.length !== group.entries.length)
|
|
77
80
|
throw new Error("prepared_approval_group_mismatch");
|
|
78
81
|
const invocations = await Promise.all(group.entries.map(async (entry) => {
|
|
79
82
|
const admitted = running.find((value) => value.executionId === entry.executionId);
|
|
80
|
-
const adapter =
|
|
83
|
+
const adapter = adapters.find((value) => value.descriptor.capabilityId === entry.capabilityId);
|
|
81
84
|
if (!admitted ||
|
|
82
85
|
admitted.callId !== group.callId ||
|
|
83
86
|
admitted.invocationAttempt !== group.invocationAttempt ||
|
|
@@ -122,8 +125,8 @@ export async function restoreCapabilityApprovalGroup(params) {
|
|
|
122
125
|
scopeMode: call.workerCapabilityScope ? "catalog_groups" : "full",
|
|
123
126
|
scopeCatalogGroupIds: call.workerCapabilityScope?.catalogGroupIds ?? [],
|
|
124
127
|
knownCatalogGroupCount: 0,
|
|
125
|
-
fullCapabilityCount:
|
|
126
|
-
filteredCapabilityCount:
|
|
128
|
+
fullCapabilityCount: adapters.length,
|
|
129
|
+
filteredCapabilityCount: adapters.length,
|
|
127
130
|
};
|
|
128
131
|
return Object.freeze({
|
|
129
132
|
async execute(decisions) {
|
|
@@ -132,7 +135,10 @@ export async function restoreCapabilityApprovalGroup(params) {
|
|
|
132
135
|
ledger: params.ledger,
|
|
133
136
|
expectedHead: head,
|
|
134
137
|
call,
|
|
135
|
-
invocations
|
|
138
|
+
invocations: invocations.map((invocation) => ({
|
|
139
|
+
...invocation,
|
|
140
|
+
prepared: fenceRestoredApprovalExecution(invocation.prepared, params.executionFreshness),
|
|
141
|
+
})),
|
|
136
142
|
executionIds: group.entries.map((entry) => entry.executionId),
|
|
137
143
|
batch: group.batch,
|
|
138
144
|
diagnostic,
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { WorkerCapabilityExecutionFreshness, WorkerCapabilityPreparedExecution } from "../contracts.js";
|
|
2
|
+
export declare const STEERING_SUPERSEDED_BEFORE_EXTERNAL_EXECUTION: "steering_superseded_before_external_execution";
|
|
3
|
+
export declare const STEERING_SUPERSEDED_SUMMARY = "steering_superseded_before_external_execution: No external execution occurred because a newer active-request update superseded this capability invocation.";
|
|
4
|
+
/** Preserve the admitted identity and decision binding; only fence its dispatch. */
|
|
5
|
+
export declare function fenceRestoredApprovalExecution(prepared: WorkerCapabilityPreparedExecution, freshness: WorkerCapabilityExecutionFreshness | undefined): WorkerCapabilityPreparedExecution;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export const STEERING_SUPERSEDED_BEFORE_EXTERNAL_EXECUTION = "steering_superseded_before_external_execution";
|
|
2
|
+
export const STEERING_SUPERSEDED_SUMMARY = "steering_superseded_before_external_execution: No external execution occurred because a newer active-request update superseded this capability invocation.";
|
|
3
|
+
/** Preserve the admitted identity and decision binding; only fence its dispatch. */
|
|
4
|
+
export function fenceRestoredApprovalExecution(prepared, freshness) {
|
|
5
|
+
if (!freshness)
|
|
6
|
+
return prepared;
|
|
7
|
+
return Object.freeze({
|
|
8
|
+
...prepared,
|
|
9
|
+
async execute(executionId) {
|
|
10
|
+
if (freshness.isCurrent())
|
|
11
|
+
return prepared.execute(executionId);
|
|
12
|
+
if (prepared.rejectBeforeExecution)
|
|
13
|
+
return prepared.rejectBeforeExecution(executionId, STEERING_SUPERSEDED_BEFORE_EXTERNAL_EXECUTION, STEERING_SUPERSEDED_SUMMARY);
|
|
14
|
+
return Object.freeze({
|
|
15
|
+
outcome: "failed",
|
|
16
|
+
observedEffect: "none",
|
|
17
|
+
summary: STEERING_SUPERSEDED_SUMMARY,
|
|
18
|
+
// This is request control, not evidence of a repeatable tool failure.
|
|
19
|
+
failureOutcomeFingerprint: null,
|
|
20
|
+
exactResult: Object.freeze({
|
|
21
|
+
kind: "runtime_capability_rejection_v1",
|
|
22
|
+
authority: "runtime",
|
|
23
|
+
status: "rejected",
|
|
24
|
+
stage: "before_external_execution",
|
|
25
|
+
code: STEERING_SUPERSEDED_BEFORE_EXTERNAL_EXECUTION,
|
|
26
|
+
message: STEERING_SUPERSEDED_SUMMARY,
|
|
27
|
+
}),
|
|
28
|
+
});
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
}
|
package/dist/src/runtime/orchestration/worker-capabilities/payload-compaction-transport.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import type { WorkerCapabilityPayloadAuthor, WorkerCapabilityPayloadModelRequest } from "./payload-contracts.js";
|
|
2
2
|
/** Runtime-only sidecar bypasses the cloned/model-visible payload context. */
|
|
3
3
|
export declare function projectWorkerPayloadCompactionInput(input: Parameters<WorkerCapabilityPayloadAuthor["author"]>[0], requestId: string): Pick<WorkerCapabilityPayloadModelRequest, "superWorkerCompaction">;
|
|
4
|
+
/** Root payload checkpoints are isolated to the exact preparation and stage. */
|
|
5
|
+
export declare function rootPayloadCompactionScopeId(input: WorkerCapabilityPayloadModelRequest): string;
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { assertSuperWorkerCompactionSidecarBinding, readSuperWorkerCompactionSidecar, } from "../../context/super-worker-compaction-sidecar.js";
|
|
2
2
|
/** Runtime-only sidecar bypasses the cloned/model-visible payload context. */
|
|
3
3
|
export function projectWorkerPayloadCompactionInput(input, requestId) {
|
|
4
|
-
if (input.call.roleId !== "worker")
|
|
5
|
-
return {};
|
|
6
4
|
const sidecar = readSuperWorkerCompactionSidecar(input.settledCapabilityResults);
|
|
7
5
|
if (!sidecar)
|
|
8
6
|
return {};
|
|
@@ -12,3 +10,10 @@ export function projectWorkerPayloadCompactionInput(input, requestId) {
|
|
|
12
10
|
});
|
|
13
11
|
return { superWorkerCompaction: sidecar };
|
|
14
12
|
}
|
|
13
|
+
/** Root payload checkpoints are isolated to the exact preparation and stage. */
|
|
14
|
+
export function rootPayloadCompactionScopeId(input) {
|
|
15
|
+
if (!("root" in input.context))
|
|
16
|
+
throw new Error("payload_root_context_required");
|
|
17
|
+
return ["payload", input.context.root.callId, input.executionId,
|
|
18
|
+
input.context.payloadStage?.index ?? 0].join(":");
|
|
19
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ToolAvailabilityEntry } from "../../../capabilities/tool-types.js";
|
|
2
|
+
import type { ExecutionPolicyAuthoritySnapshot, RoleCallFrame, RoleCallLedgerHead } from "../role-calls/index.js";
|
|
3
|
+
import type { WorkerCapabilityAdapter, WorkerCapabilityDescriptor } from "./contracts.js";
|
|
4
|
+
export declare function isSupervisorSkillWriteCapabilityId(capabilityId: string): boolean;
|
|
5
|
+
export declare function projectSupervisorWorkerCapabilityDescriptors(params: {
|
|
6
|
+
authority: ExecutionPolicyAuthoritySnapshot;
|
|
7
|
+
descriptors: readonly WorkerCapabilityDescriptor[];
|
|
8
|
+
}): readonly WorkerCapabilityDescriptor[];
|
|
9
|
+
/** Descriptions and selectable descriptors obey the same write ownership. */
|
|
10
|
+
export declare function projectSupervisorWorkerCapabilityBriefEntries(params: {
|
|
11
|
+
authority: ExecutionPolicyAuthoritySnapshot;
|
|
12
|
+
entries: readonly ToolAvailabilityEntry[] | undefined;
|
|
13
|
+
}): readonly ToolAvailabilityEntry[] | undefined;
|
|
14
|
+
/** The same boundary applies before execution and before approval restoration. */
|
|
15
|
+
export declare function projectSupervisorSkillCapabilityAdapters<TContext>(params: {
|
|
16
|
+
head: RoleCallLedgerHead;
|
|
17
|
+
call: RoleCallFrame;
|
|
18
|
+
adapters: readonly WorkerCapabilityAdapter<TContext>[];
|
|
19
|
+
}): readonly WorkerCapabilityAdapter<TContext>[];
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { knowledgeSkillWriteOperations } from "../../capabilities/knowledge-skills/write-contract.js";
|
|
2
|
+
import { hasSuperContextContract } from "../../context/super-context-policy.js";
|
|
3
|
+
const skillAuthoringCapabilityIds = new Set(knowledgeSkillWriteOperations.map(({ operationId }) => operationId));
|
|
4
|
+
export function isSupervisorSkillWriteCapabilityId(capabilityId) {
|
|
5
|
+
return skillAuthoringCapabilityIds.has(capabilityId);
|
|
6
|
+
}
|
|
7
|
+
export function projectSupervisorWorkerCapabilityDescriptors(params) {
|
|
8
|
+
if (!hasSuperContextContract(params.authority, "supervisor"))
|
|
9
|
+
return params.descriptors;
|
|
10
|
+
return Object.freeze(params.descriptors.filter((descriptor) => !isSupervisorSkillWriteCapabilityId(descriptor.capabilityId)));
|
|
11
|
+
}
|
|
12
|
+
/** Descriptions and selectable descriptors obey the same write ownership. */
|
|
13
|
+
export function projectSupervisorWorkerCapabilityBriefEntries(params) {
|
|
14
|
+
if (!hasSuperContextContract(params.authority, "supervisor"))
|
|
15
|
+
return params.entries;
|
|
16
|
+
if (params.entries === undefined)
|
|
17
|
+
return undefined;
|
|
18
|
+
return Object.freeze(params.entries.filter(({ operationId }) => !isSupervisorSkillWriteCapabilityId(operationId)));
|
|
19
|
+
}
|
|
20
|
+
/** The same boundary applies before execution and before approval restoration. */
|
|
21
|
+
export function projectSupervisorSkillCapabilityAdapters(params) {
|
|
22
|
+
if (!hasSuperContextContract(params.head.policy.authority, "supervisor"))
|
|
23
|
+
return params.adapters;
|
|
24
|
+
// Preserve malformed entries for the existing adapter validation boundary.
|
|
25
|
+
if (!Array.isArray(params.adapters))
|
|
26
|
+
return params.adapters;
|
|
27
|
+
if (isSupervisorRootCapabilityCall(params.head, params.call)) {
|
|
28
|
+
return Object.freeze(params.adapters.filter((adapter) => hasMalformedCapabilityIdentity(adapter) ||
|
|
29
|
+
isSupervisorSkillWriteCapabilityId(adapter.descriptor.capabilityId)));
|
|
30
|
+
}
|
|
31
|
+
if (params.call.roleId !== "worker")
|
|
32
|
+
return params.adapters;
|
|
33
|
+
return Object.freeze(params.adapters.filter((adapter) => hasMalformedCapabilityIdentity(adapter) ||
|
|
34
|
+
!isSupervisorSkillWriteCapabilityId(adapter.descriptor.capabilityId)));
|
|
35
|
+
}
|
|
36
|
+
function isSupervisorRootCapabilityCall(head, call) {
|
|
37
|
+
if (call.callId !== head.state.rootCallId)
|
|
38
|
+
return false;
|
|
39
|
+
return call.parentCallId === null;
|
|
40
|
+
}
|
|
41
|
+
function hasMalformedCapabilityIdentity(adapter) {
|
|
42
|
+
return typeof adapter?.descriptor?.capabilityId !== "string";
|
|
43
|
+
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { hasCoreToolContractCollision } from "../capabilities/core-tool-contracts.js";
|
|
1
2
|
import { pluginLoadConfiguration } from "./configuration-context.js";
|
|
2
3
|
import { readPluginConfigurationStore, } from "./configuration-store.js";
|
|
3
4
|
import { validateManifestEntrypoint } from "./entrypoint-validation.js";
|
|
@@ -117,8 +118,8 @@ export function loadConfiguredRuntimePlugins(config) {
|
|
|
117
118
|
...selection.disabledPluginIds,
|
|
118
119
|
]),
|
|
119
120
|
});
|
|
120
|
-
const compatiblePlugins = discoveredPlugins.filter((plugin) => resolvePluginPlatformCompatibility(plugin.manifest).supported);
|
|
121
|
-
const
|
|
121
|
+
const compatiblePlugins = discoveredPlugins.filter((plugin) => resolvePluginPlatformCompatibility(plugin.manifest).supported).filter(({ manifest }) => !hasCoreToolContractCollision(manifest.extensions[ABOT_RUNTIME_EXTENSION].capabilities));
|
|
122
|
+
const allPluginsUnavailable = discoveredPlugins.length > 0 && compatiblePlugins.length === 0;
|
|
122
123
|
const selectedPlugins = compatiblePlugins
|
|
123
124
|
.map((plugin) => ({
|
|
124
125
|
plugin,
|
|
@@ -131,7 +132,7 @@ export function loadConfiguredRuntimePlugins(config) {
|
|
|
131
132
|
.filter(({ selectedCapabilityIds }) => selectedCapabilityIds.length > 0);
|
|
132
133
|
const host = {
|
|
133
134
|
rootDir: config.paths.rootDir,
|
|
134
|
-
pluginConfiguration:
|
|
135
|
+
pluginConfiguration: allPluginsUnavailable
|
|
135
136
|
? {}
|
|
136
137
|
: readPluginConfigurationStore(config.paths.rootDir).plugins,
|
|
137
138
|
runtimeId: config.runtimeId,
|
|
@@ -181,11 +182,11 @@ export function loadBundledRuntimePlugins() {
|
|
|
181
182
|
return cached;
|
|
182
183
|
}
|
|
183
184
|
const discoveredPlugins = discoverAgentPluginManifests(packageRoot);
|
|
184
|
-
const selectedPlugins = discoveredPlugins.filter((plugin) => resolvePluginPlatformCompatibility(plugin.manifest).supported);
|
|
185
|
-
const
|
|
185
|
+
const selectedPlugins = discoveredPlugins.filter((plugin) => resolvePluginPlatformCompatibility(plugin.manifest).supported).filter(({ manifest }) => !hasCoreToolContractCollision(manifest.extensions[ABOT_RUNTIME_EXTENSION].capabilities));
|
|
186
|
+
const allPluginsUnavailable = discoveredPlugins.length > 0 && selectedPlugins.length === 0;
|
|
186
187
|
const host = {
|
|
187
188
|
rootDir,
|
|
188
|
-
pluginConfiguration:
|
|
189
|
+
pluginConfiguration: allPluginsUnavailable
|
|
189
190
|
? {}
|
|
190
191
|
: readPluginConfigurationStore(rootDir).plugins,
|
|
191
192
|
runtimeId: "default",
|
|
@@ -41,6 +41,9 @@ export function projectManifestRuntimeContract(discovered, selectedCapabilityIds
|
|
|
41
41
|
definition: {
|
|
42
42
|
name: capabilityId,
|
|
43
43
|
pluginName: manifest.name,
|
|
44
|
+
...(manifest.description !== undefined
|
|
45
|
+
? { pluginDescription: manifest.description }
|
|
46
|
+
: {}),
|
|
44
47
|
...(capability.requiredPermissionMode
|
|
45
48
|
? { requiredPermissionMode: capability.requiredPermissionMode }
|
|
46
49
|
: {}),
|
|
@@ -49,6 +49,7 @@ export async function validateApprovalResume(services, snapshot, current) {
|
|
|
49
49
|
sessionStore: services.sessions,
|
|
50
50
|
attachmentStore: services.attachments,
|
|
51
51
|
toolRegistry: services.tools,
|
|
52
|
+
knowledgeSkillStore: services.knowledgeSkillStore,
|
|
52
53
|
modelGatewayClient: models,
|
|
53
54
|
eventSinkFactory: { create: () => events },
|
|
54
55
|
sessionMemoryCompactor: services.sessionMemoryCompactor,
|
|
@@ -7,6 +7,7 @@ export function createBoundRuntimeRequestHandler(services) {
|
|
|
7
7
|
sessionStore: services.sessions,
|
|
8
8
|
attachmentStore: services.attachments,
|
|
9
9
|
toolRegistry: services.tools,
|
|
10
|
+
knowledgeSkillStore: services.knowledgeSkillStore,
|
|
10
11
|
sessionMemoryCompactor: services.sessionMemoryCompactor,
|
|
11
12
|
longTermMemory: services.longTermMemory,
|
|
12
13
|
};
|
|
@@ -22,7 +22,12 @@ export function restoreApprovalExecutionFreshness(token, requestSteering) {
|
|
|
22
22
|
});
|
|
23
23
|
if (!isDeepStrictEqual(current.token, token))
|
|
24
24
|
throw new Error("request_approval_steering_mismatch");
|
|
25
|
-
|
|
25
|
+
// A newer accepted prefix invalidates execution, not the saved approval.
|
|
26
|
+
// A closed inbox has no current version and must remain terminal.
|
|
27
|
+
if (!hasLiveSteeringInbox(inbox))
|
|
26
28
|
throw new Error("request_approval_steering_superseded");
|
|
27
29
|
return Object.freeze({ token, isCurrent: current.isCurrent });
|
|
28
30
|
}
|
|
31
|
+
function hasLiveSteeringInbox(inbox) {
|
|
32
|
+
return inbox.isCurrent(inbox.snapshot().version);
|
|
33
|
+
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { KnowledgeSkillStore } from "../knowledge-skills/store.js";
|
|
1
2
|
import type { RequestToolResources } from "../capabilities/request-tool-resources.js";
|
|
2
3
|
import type { CapabilityApprovalGate } from "../orchestration/worker-capabilities/approval-contracts.js";
|
|
3
4
|
import type { RequestApprovalExecution } from "./approval-wait/snapshot.js";
|
|
@@ -44,6 +45,7 @@ export type RequestHandlerOptions = {
|
|
|
44
45
|
sessionStore?: RequestSessionStore;
|
|
45
46
|
attachmentStore?: RuntimeAttachmentStore;
|
|
46
47
|
toolRegistry?: ToolRegistry;
|
|
48
|
+
knowledgeSkillStore?: KnowledgeSkillStore;
|
|
47
49
|
toolApprovalController?: ToolApprovalController;
|
|
48
50
|
requestSteering?: RequestSteeringInbox;
|
|
49
51
|
/** Trusted automation-only receipt boundary; never accepted from client JSON. */
|
|
@@ -37,6 +37,8 @@ export const EXECUTION_AGENT_ROOT_CONTRACT = Object.freeze({
|
|
|
37
37
|
});
|
|
38
38
|
},
|
|
39
39
|
async authorResponse(request, options) {
|
|
40
|
+
if (options.directResponse !== undefined)
|
|
41
|
+
return options.directResponse;
|
|
40
42
|
const requestSteering = resolveRequestSteeringInbox(request.requestSteering);
|
|
41
43
|
return runExecutionAgentAuthoredResponse(request, {
|
|
42
44
|
head: options.head,
|
|
@@ -115,7 +117,15 @@ function projectKernelDecision(decision, steeringVersion) {
|
|
|
115
117
|
...presentation,
|
|
116
118
|
});
|
|
117
119
|
case "respond":
|
|
118
|
-
return Object.freeze({
|
|
120
|
+
return Object.freeze({
|
|
121
|
+
action: "respond", ...presentation,
|
|
122
|
+
...(decision.response !== undefined ? {
|
|
123
|
+
directResponse: Object.freeze({
|
|
124
|
+
finalResponse: decision.response,
|
|
125
|
+
memoryCandidates: decision.memoryCandidates ?? Object.freeze([]),
|
|
126
|
+
}),
|
|
127
|
+
} : {}),
|
|
128
|
+
});
|
|
119
129
|
case "blocked":
|
|
120
130
|
return Object.freeze({
|
|
121
131
|
action: "blocked",
|
|
@@ -25,9 +25,9 @@ export declare function projectExecutionPayloadCompactedEvidence(request: Payloa
|
|
|
25
25
|
summary: string;
|
|
26
26
|
capabilityId: string;
|
|
27
27
|
callId: string;
|
|
28
|
-
outcome: import("../orchestration/role-calls/contracts.js").RoleCapabilityExecutionOutcome;
|
|
29
|
-
executionId: string;
|
|
30
28
|
invocationAttempt: number;
|
|
29
|
+
executionId: string;
|
|
30
|
+
outcome: import("../orchestration/role-calls/contracts.js").RoleCapabilityExecutionOutcome;
|
|
31
31
|
observedEffect: import("../orchestration/role-calls/contracts.js").RoleCapabilityObservedEffect;
|
|
32
32
|
declaredEffect: import("../orchestration/role-calls/contracts.js").RoleCapabilityDeclaredEffect;
|
|
33
33
|
references?: readonly import("../orchestration/role-calls/contracts.js").RoleCapabilityResultReference[];
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { KnowledgeSkillStore } from "../knowledge-skills/store.js";
|
|
1
2
|
import type { SuperFailureFinalization } from "./super-failure-explanation.js";
|
|
2
3
|
import type { RequestModelStepPort } from "../model/model-step-port.js";
|
|
3
4
|
import { type RequestExecutionSeed, type RequestModelInvocationView } from "./contracts.js";
|
|
@@ -12,5 +13,6 @@ export declare function createScopeSurface(input: Readonly<{
|
|
|
12
13
|
modelInvocation: RequestModelInvocationView;
|
|
13
14
|
modelSteps: RequestModelStepPort;
|
|
14
15
|
capabilities: RequestWorkerCapabilities;
|
|
16
|
+
knowledgeSkillStore?: KnowledgeSkillStore;
|
|
15
17
|
superFailureFinalization?: SuperFailureFinalization | undefined;
|
|
16
18
|
}>): RequestExecutionScope;
|
|
@@ -34,7 +34,13 @@ export function createCapabilityCompositionView(facets, modelSteps) {
|
|
|
34
34
|
modelSteps: enumerableGetter(() => modelSteps),
|
|
35
35
|
sessionId: enumerableGetter(() => facets.identity.sessionId),
|
|
36
36
|
prompt: enumerableGetter(() => facets.input.prompt),
|
|
37
|
+
...(facets.input.attachments !== undefined
|
|
38
|
+
? { attachments: enumerableGetter(() => facets.input.attachments) }
|
|
39
|
+
: {}),
|
|
37
40
|
historyMessages: enumerableGetter(() => facets.session.historyMessages),
|
|
41
|
+
...(facets.session.sessionMemory !== undefined
|
|
42
|
+
? { sessionMemory: enumerableGetter(() => facets.session.sessionMemory) }
|
|
43
|
+
: {}),
|
|
38
44
|
toolPermissionMode: enumerableGetter(() => facets.lifecycle.toolPermissionMode),
|
|
39
45
|
...(facets.lifecycle.toolApprovalController !== undefined
|
|
40
46
|
? {
|
|
@@ -107,6 +113,7 @@ export function createScopeSurface(input) {
|
|
|
107
113
|
policy: hiddenValue(policy),
|
|
108
114
|
modelInvocation: hiddenValue(modelInvocation),
|
|
109
115
|
capabilities: hiddenValue(capabilities),
|
|
116
|
+
...(input.knowledgeSkillStore ? { knowledgeSkillStore: hiddenValue(input.knowledgeSkillStore) } : {}),
|
|
110
117
|
...(input.superFailureFinalization
|
|
111
118
|
? {
|
|
112
119
|
superFailureFinalization: hiddenValue(input.superFailureFinalization),
|