@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
|
@@ -7,6 +7,7 @@ import { appendRequestSteeringContext } from "../request/request-steering-contex
|
|
|
7
7
|
import { createModelStepAbort } from "../steps/model-step-timeout.js";
|
|
8
8
|
import { acceptModelStepOutput } from "./model-step-acceptance.js";
|
|
9
9
|
import { createModelContextAssessment } from "./model-context-assessment.js";
|
|
10
|
+
import { invokeModelProvider, projectModelProviderFailureDiagnostics, } from "./provider-failure.js";
|
|
10
11
|
import { isModelStepCompactionEligible, resolveModelContextAdmission, } from "./model-context-budget.js";
|
|
11
12
|
import { resolveModelStepTimeout, } from "./model-step-timeout-policy.js";
|
|
12
13
|
import { assertBoundModelStepSteeringCurrent, isModelStepSteeringSuperseded, assertModelStepAdmissionCurrent, ModelStepAdmissionSuperseded, } from "./model-step-steering.js";
|
|
@@ -191,6 +192,8 @@ class ModelStepInvocation {
|
|
|
191
192
|
controller: contextCompaction,
|
|
192
193
|
assess,
|
|
193
194
|
assertCurrent,
|
|
195
|
+
boundSteeringVersion: params.boundSteeringVersion ??
|
|
196
|
+
(this.input.ownsRequestSteering ? steeringSnapshot.version : undefined),
|
|
194
197
|
abortSignal: request.abortSignal,
|
|
195
198
|
identity: {
|
|
196
199
|
requestId: request.requestId,
|
|
@@ -361,6 +364,7 @@ class ModelStepInvocation {
|
|
|
361
364
|
modelStep: params.modelStep,
|
|
362
365
|
status,
|
|
363
366
|
errorType: classifyRuntimeErrorType(error),
|
|
367
|
+
...projectModelProviderFailureDiagnostics(error, params.messages),
|
|
364
368
|
responseReceived: outputDiagnostics !== undefined,
|
|
365
369
|
steeringVersion: attempt.steeringSnapshot.version,
|
|
366
370
|
supersededAttemptCount: this.supersededAttemptCount,
|
|
@@ -381,7 +385,7 @@ class ModelStepAttempt {
|
|
|
381
385
|
}
|
|
382
386
|
invokeProvider() {
|
|
383
387
|
const { request, params } = this.input;
|
|
384
|
-
return request.modelGatewayClient.invoke({
|
|
388
|
+
return invokeModelProvider(params.modelStep, () => request.modelGatewayClient.invoke({
|
|
385
389
|
messages: this.input.messages,
|
|
386
390
|
agentMode: request.agentMode,
|
|
387
391
|
modelStep: params.modelStep,
|
|
@@ -393,7 +397,7 @@ class ModelStepAttempt {
|
|
|
393
397
|
debugRequestId: request.requestId,
|
|
394
398
|
...(params.format === undefined ? {} : { format: params.format }),
|
|
395
399
|
onThinking: this.input.onThinking,
|
|
396
|
-
});
|
|
400
|
+
}));
|
|
397
401
|
}
|
|
398
402
|
recordOutputReceived(outputDiagnostics) {
|
|
399
403
|
traceDebug("runtime.model", "step.output_received", {
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ModelGatewayInvocationError } from "../../model-gateway/client/invocation-error.js";
|
|
2
|
+
import type { ModelStep } from "../../shared/model-steps.js";
|
|
3
|
+
/** A transport/provider failure bound to the model step that actually invoked it. */
|
|
4
|
+
export declare class ModelProviderFailure extends Error {
|
|
5
|
+
readonly modelStep: ModelStep;
|
|
6
|
+
readonly code = "model_provider_failure";
|
|
7
|
+
readonly stage: string;
|
|
8
|
+
constructor(modelStep: ModelStep, cause: ModelGatewayInvocationError);
|
|
9
|
+
}
|
|
10
|
+
/** Unrecognized local faults retain their identity and existing failure path. */
|
|
11
|
+
export declare function invokeModelProvider<T>(modelStep: ModelStep, invoke: () => Promise<T>): Promise<T>;
|
|
12
|
+
/** Retains bounded diagnostics when the failed child no longer escapes the request. */
|
|
13
|
+
export declare function projectModelProviderFailureDiagnostics(error: unknown, messages: unknown): Record<string, unknown>;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { ModelGatewayInvocationError } from "../../model-gateway/client/invocation-error.js";
|
|
2
|
+
import { permitsModelContentTrace } from "../../model-gateway/observability/content-trace-policy.js";
|
|
3
|
+
/** A transport/provider failure bound to the model step that actually invoked it. */
|
|
4
|
+
export class ModelProviderFailure extends Error {
|
|
5
|
+
modelStep;
|
|
6
|
+
code = "model_provider_failure";
|
|
7
|
+
stage;
|
|
8
|
+
constructor(modelStep, cause) {
|
|
9
|
+
super(cause.message, { cause });
|
|
10
|
+
this.modelStep = modelStep;
|
|
11
|
+
this.name = "ModelProviderFailure";
|
|
12
|
+
this.stage = `model_provider_${cause.kind}`;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
/** Unrecognized local faults retain their identity and existing failure path. */
|
|
16
|
+
export async function invokeModelProvider(modelStep, invoke) {
|
|
17
|
+
try {
|
|
18
|
+
return await invoke();
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
if (!(error instanceof ModelGatewayInvocationError))
|
|
22
|
+
throw error;
|
|
23
|
+
throw new ModelProviderFailure(modelStep, error);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/** Retains bounded diagnostics when the failed child no longer escapes the request. */
|
|
27
|
+
export function projectModelProviderFailureDiagnostics(error, messages) {
|
|
28
|
+
if (!(error instanceof ModelProviderFailure))
|
|
29
|
+
return {};
|
|
30
|
+
return {
|
|
31
|
+
providerFailureCode: error.code,
|
|
32
|
+
providerFailureStage: error.stage,
|
|
33
|
+
...(permitsModelContentTrace(error.modelStep, messages)
|
|
34
|
+
? { providerErrorPreview: error.message.slice(0, 400) }
|
|
35
|
+
: { contentOmitted: true }),
|
|
36
|
+
};
|
|
37
|
+
}
|
|
@@ -2,8 +2,9 @@ import { isRuntimeDelegateRoleId, RUNTIME_ROOT_ROLE_ID, RUNTIME_ROLE_IDS, } from
|
|
|
2
2
|
import { createRoleCapabilitySelectionFingerprint, normalizeRoleCapabilitySelectionProjection, } from "./capability-selection-reconsideration.js";
|
|
3
3
|
import { isRoleCapabilitySelectionSupervisionState, } from "./capability-selection-supervision.js";
|
|
4
4
|
import { isValidRoleCapabilitySelectionSupervision } from "./capability-selection-supervision-validation.js";
|
|
5
|
-
import { validateRoleMemoryRecalls } from "./memory-recall-state-validation.js";
|
|
5
|
+
import { hasInitialMemoryContext, validateRoleMemoryRecalls } from "./memory-recall-state-validation.js";
|
|
6
6
|
import { isValidAdoptedModelWorkPlan } from "./work-plan-validation.js";
|
|
7
|
+
import { validateRoleSkillReads } from "./skill-read.js";
|
|
7
8
|
import { isRoleOperationFingerprint, isRoleOperationOutcomeFingerprintForOutcome, isSameRoleOperationIdentity, replayRoleOperationSupervisionEvidence, } from "./operation-supervision.js";
|
|
8
9
|
import { isIssuedRoleOperationSupervisionInterventionForRequest } from "./operation-supervision-issuance.js";
|
|
9
10
|
import { isRoleOperationSupervisionSettlementHistoryValid, isRoleOperationSupervisionState, } from "./operation-supervision-state-validation.js";
|
|
@@ -48,6 +49,7 @@ export function validateRoleCallState(state, policy) {
|
|
|
48
49
|
!Array.isArray(state?.plans) ||
|
|
49
50
|
!Array.isArray(state?.capabilityExecutions) ||
|
|
50
51
|
!Array.isArray(state?.memoryRecalls) ||
|
|
52
|
+
!hasInitialMemoryContext(state?.initialMemory, policy.authority.id) ||
|
|
51
53
|
!isRoleOperationSupervisionState(state?.operationSupervision) ||
|
|
52
54
|
!isRoleCapabilitySelectionSupervisionState(state?.capabilitySelectionSupervision) ||
|
|
53
55
|
!Number.isInteger(state?.callSequence) ||
|
|
@@ -178,6 +180,7 @@ export function validateRoleCallState(state, policy) {
|
|
|
178
180
|
issues.push(...validateRoleCallPlans(state, policy));
|
|
179
181
|
validateCapabilityExecutions(state, policy, issues);
|
|
180
182
|
issues.push(...validateRoleMemoryRecalls(state));
|
|
183
|
+
issues.push(...validateRoleSkillReads(state, policy));
|
|
181
184
|
if (!isValidRoleOperationSupervision(state, policy)) {
|
|
182
185
|
issues.push(issue("invalid_role_operation_supervision", "state.operationSupervision"));
|
|
183
186
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { RoleCallLedgerCheckpoint } from "./checkpoint-contract.js";
|
|
2
2
|
import type { RoleCallPolicy, RoleCallState } from "./contracts.js";
|
|
3
3
|
/** Hydrate only an admitted, parked capability; no model or reducer command replay. */
|
|
4
|
-
export declare function restoreCheckpointState(checkpoint: RoleCallLedgerCheckpoint, requestId: string, policy: RoleCallPolicy): RoleCallState;
|
|
4
|
+
export declare function restoreCheckpointState(checkpoint: RoleCallLedgerCheckpoint, requestId: string, policy: RoleCallPolicy, initialMemory?: RoleCallState["initialMemory"]): RoleCallState;
|
|
@@ -4,14 +4,17 @@ import { validateRoleCallCandidate } from "./reducer.js";
|
|
|
4
4
|
import { issueInitialRoleCapabilitySelectionSupervisionState } from "./capability-selection-supervision-issuance.js";
|
|
5
5
|
import { restoreRoleOperationSupervisionIssuance } from "./operation-supervision-issuance.js";
|
|
6
6
|
/** Hydrate only an admitted, parked capability; no model or reducer command replay. */
|
|
7
|
-
export function restoreCheckpointState(checkpoint, requestId, policy) {
|
|
7
|
+
export function restoreCheckpointState(checkpoint, requestId, policy, initialMemory) {
|
|
8
8
|
if (!isCheckpointEnvelope(checkpoint))
|
|
9
9
|
throw new Error("role_call_checkpoint_invalid");
|
|
10
10
|
if (!hasCheckpointRequestIdentity(checkpoint, requestId))
|
|
11
11
|
throw new Error("role_call_checkpoint_request_mismatch");
|
|
12
12
|
if (!hasCheckpointPolicy(checkpoint, policy))
|
|
13
13
|
throw new Error("role_call_checkpoint_policy_mismatch");
|
|
14
|
-
const state = seal(structuredClone(checkpoint.state
|
|
14
|
+
const state = seal(structuredClone({ ...checkpoint.state,
|
|
15
|
+
...(checkpoint.state.initialMemory === undefined && initialMemory !== undefined
|
|
16
|
+
? { initialMemory } : {}),
|
|
17
|
+
}));
|
|
15
18
|
if (!isParkedCapabilityState(state))
|
|
16
19
|
throw new Error("role_call_checkpoint_not_parked");
|
|
17
20
|
if (!issueInitialRoleCapabilitySelectionSupervisionState(state))
|
|
@@ -69,7 +72,8 @@ function hasConsistentCheckpointRevision(revision, state) {
|
|
|
69
72
|
const settlements = new Set(state.capabilityExecutions
|
|
70
73
|
.filter((entry) => entry.status === "settled")
|
|
71
74
|
.map(executionActivationIdentity));
|
|
72
|
-
const minimumCommits = state.calls.length + state.results.length + begins.size + settlements.size
|
|
75
|
+
const minimumCommits = state.calls.length + state.results.length + begins.size + settlements.size +
|
|
76
|
+
(state.skillReads?.length ?? 0);
|
|
73
77
|
if (revision < minimumCommits)
|
|
74
78
|
return false;
|
|
75
79
|
return state.results.every((result) => result.receipt === undefined || result.receipt.sourceRevision < revision);
|
|
@@ -6,6 +6,7 @@ import { isRoleCapabilityId, } from "./contracts.js";
|
|
|
6
6
|
import { parseRoleCallPlanBinding } from "./plan.js";
|
|
7
7
|
import { normalizeRoleCallResultReceipt } from "./result-receipt.js";
|
|
8
8
|
import { decodeMemoryRecallCommand } from "./memory-recall-decoder.js";
|
|
9
|
+
import { decodeSkillReadCommand } from "./skill-read.js";
|
|
9
10
|
import { decodeModelWorkPlanCommand } from "./work-plan-validation.js";
|
|
10
11
|
import { parseRoleCallWorkerCapabilityScope } from "./worker-capability-scope.js";
|
|
11
12
|
import { isRoleCallWorkingDirectoryRoleId, normalizeEstablishedRoleCallWorkingDirectory, normalizeRoleCallWorkingDirectory, } from "./working-directory.js";
|
|
@@ -15,6 +16,8 @@ export function decodeRoleCallCommand(input) {
|
|
|
15
16
|
return { ok: false, code: "invalid_command" };
|
|
16
17
|
}
|
|
17
18
|
switch (input.type) {
|
|
19
|
+
case "record_skill_read":
|
|
20
|
+
return decodeSkillReadCommand(input);
|
|
18
21
|
case "update_model_work_plan":
|
|
19
22
|
return decodeModelWorkPlanCommand(input);
|
|
20
23
|
case "begin_memory_recall":
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { RoleCallPolicy, RoleCallState, RoleCallTransitionResult } from "../contracts.js";
|
|
2
|
+
import type { RecordRoleSkillReadCommand } from "../skill-read.js";
|
|
3
|
+
/** A synchronous core lookup returns in one commit without a child or waiting state. */
|
|
4
|
+
export declare function recordSkillRead(state: RoleCallState, command: RecordRoleSkillReadCommand, policy: RoleCallPolicy): RoleCallTransitionResult;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { commit, reject } from "../reducer-primitives.js";
|
|
2
|
+
import { replaceCall } from "./call-frame-state.js";
|
|
3
|
+
/** A synchronous core lookup returns in one commit without a child or waiting state. */
|
|
4
|
+
export function recordSkillRead(state, command, policy) {
|
|
5
|
+
const call = state.calls.find((candidate) => candidate.callId === command.callId);
|
|
6
|
+
if (!call)
|
|
7
|
+
return reject(state, "skill_read_caller_invalid");
|
|
8
|
+
const usesSupervisorContract = policy.authority.rootContractId === "supervisor";
|
|
9
|
+
if (!usesSupervisorContract)
|
|
10
|
+
return reject(state, "skill_read_caller_invalid");
|
|
11
|
+
const ownsActiveRequest = state.phase === "running" &&
|
|
12
|
+
state.activeCallId === command.callId &&
|
|
13
|
+
state.rootCallId === command.callId;
|
|
14
|
+
if (!ownsActiveRequest)
|
|
15
|
+
return reject(state, "skill_read_caller_invalid");
|
|
16
|
+
const isActiveSupervisorRoot = call.parentCallId === null &&
|
|
17
|
+
call.roleId === "supervisor" &&
|
|
18
|
+
call.status === "active";
|
|
19
|
+
if (!isActiveSupervisorRoot)
|
|
20
|
+
return reject(state, "skill_read_caller_invalid");
|
|
21
|
+
const previousReads = state.skillReads ?? [];
|
|
22
|
+
const matchesCurrentActivation = call.activationCount === command.invocationAttempt;
|
|
23
|
+
if (!matchesCurrentActivation)
|
|
24
|
+
return reject(state, "skill_read_invocation_mismatch");
|
|
25
|
+
const preservesSteeringOrder = command.steeringVersion >= (previousReads.at(-1)?.steeringVersion ?? 0);
|
|
26
|
+
if (!preservesSteeringOrder)
|
|
27
|
+
return reject(state, "skill_read_invocation_mismatch");
|
|
28
|
+
const { authority: _authority, type: _type, ...payload } = command;
|
|
29
|
+
const read = {
|
|
30
|
+
...payload,
|
|
31
|
+
readId: `skill-read-${previousReads.length + 1}`,
|
|
32
|
+
};
|
|
33
|
+
return commit({
|
|
34
|
+
...state,
|
|
35
|
+
calls: replaceCall(state.calls, {
|
|
36
|
+
...call,
|
|
37
|
+
activationCount: call.activationCount + 1,
|
|
38
|
+
}),
|
|
39
|
+
skillReads: [...previousReads, read],
|
|
40
|
+
}, {
|
|
41
|
+
type: "skill_read_recorded",
|
|
42
|
+
callId: call.callId,
|
|
43
|
+
readId: read.readId,
|
|
44
|
+
invocationAttempt: read.invocationAttempt,
|
|
45
|
+
steeringVersion: read.steeringVersion,
|
|
46
|
+
operation: read.operation,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
@@ -3,11 +3,14 @@ import { beginCapabilityExecution, settleCapabilityExecution, } from "./command-
|
|
|
3
3
|
import { reconsiderCapabilitySelection } from "./command-dispatch/capability-selection-transition.js";
|
|
4
4
|
import { updateModelWorkPlan } from "./command-dispatch/work-plan-transition.js";
|
|
5
5
|
import { beginMemoryRecall, settleMemoryRecall } from "./command-dispatch/memory-recall-transitions.js";
|
|
6
|
+
import { recordSkillRead } from "./command-dispatch/skill-read-transition.js";
|
|
6
7
|
import { establishWorkingDirectory, updateCapabilityScope, } from "./command-dispatch/call-scope-transitions.js";
|
|
7
8
|
import { openChild, returnChild, } from "./command-dispatch/child-transitions.js";
|
|
8
9
|
import { completeRootResponse, createRoot, } from "./command-dispatch/root-transitions.js";
|
|
9
10
|
export function dispatchRoleCallCommand(state, command, policy, admittedHeadRevision) {
|
|
10
11
|
switch (command.type) {
|
|
12
|
+
case "record_skill_read":
|
|
13
|
+
return recordSkillRead(state, command, policy);
|
|
11
14
|
case "update_model_work_plan":
|
|
12
15
|
return updateModelWorkPlan(state, command, policy);
|
|
13
16
|
case "begin_memory_recall":
|
|
@@ -5,8 +5,9 @@ import type { RoleOperationFingerprint, RoleOperationOutcomeFingerprint, RoleOpe
|
|
|
5
5
|
import type { RoleCapabilitySelectionSupervisionStage, RoleCapabilitySelectionSupervisionState, RoleCapabilitySelectionSupervisionTrigger } from "./capability-selection-supervision.js";
|
|
6
6
|
import type { RoleCapabilitySelectionReconsiderationCause } from "./reconsideration-cause.js";
|
|
7
7
|
import type { RoleCallResultReceipt } from "./result-receipt.js";
|
|
8
|
-
import type { RoleMemoryRecall, RoleMemoryRecallCommand, RoleMemoryRecallCommitEffect, RoleMemoryRecallTransactions } from "./memory-recall-contract.js";
|
|
8
|
+
import type { RoleInitialMemory, RoleMemoryRecall, RoleMemoryRecallCommand, RoleMemoryRecallCommitEffect, RoleMemoryRecallTransactions } from "./memory-recall-contract.js";
|
|
9
9
|
import type { AdoptedModelWorkPlan, UpdateModelWorkPlanCommand, ModelWorkPlanCommitEffect, ModelWorkPlanTransactions } from "./work-plan-contracts.js";
|
|
10
|
+
import type { RecordRoleSkillReadCommand, RoleSkillRead, RoleSkillReadCommitEffect } from "./skill-read.js";
|
|
10
11
|
export declare const ROLE_CALL_LEDGER_CONTRACT_VERSION = 18;
|
|
11
12
|
export declare const ROLE_CALL_LEDGER_HEAD_KIND: "runtime_role_call_ledger_v18";
|
|
12
13
|
export declare const ROLE_CALL_OBJECTIVE_MAX_LENGTH = 8192;
|
|
@@ -191,6 +192,9 @@ export type RoleCallState = Readonly<{
|
|
|
191
192
|
plans: readonly RoleCallPlanState[];
|
|
192
193
|
capabilityExecutions: readonly RoleCapabilityExecution[];
|
|
193
194
|
memoryRecalls: readonly RoleMemoryRecall[];
|
|
195
|
+
/** Immutable core reference reads; omitted on older checkpoints. */
|
|
196
|
+
skillReads?: readonly RoleSkillRead[];
|
|
197
|
+
initialMemory?: RoleInitialMemory;
|
|
194
198
|
operationSupervision: RoleOperationSupervisionState;
|
|
195
199
|
capabilitySelectionSupervision: RoleCapabilitySelectionSupervisionState;
|
|
196
200
|
rootResponse: string | null;
|
|
@@ -304,8 +308,8 @@ export type ReconsiderRoleCapabilitySelectionCommand = Readonly<{
|
|
|
304
308
|
selection: RoleCapabilitySelectionProjection;
|
|
305
309
|
cause: RoleCapabilitySelectionReconsiderationCause;
|
|
306
310
|
}>;
|
|
307
|
-
export type RoleCallLedgerCommand = UpdateModelWorkPlanCommand | RoleMemoryRecallCommand | CreateRootRoleCallCommand | CompleteRootResponseCommand | OpenChildRoleCallCommand | ReturnChildRoleCallCommand | BeginRoleCapabilityExecutionCommand | SettleRoleCapabilityExecutionCommand | BeginRoleCapabilityBatchCommand | SettleRoleCapabilityBatchCommand | UpdateRoleCapabilityScopeCommand | EstablishRoleCallWorkingDirectoryCommand | ReconsiderRoleCapabilitySelectionCommand;
|
|
308
|
-
export type RoleCallCommitEffect = ModelWorkPlanCommitEffect | RoleMemoryRecallCommitEffect | Readonly<{
|
|
311
|
+
export type RoleCallLedgerCommand = RecordRoleSkillReadCommand | UpdateModelWorkPlanCommand | RoleMemoryRecallCommand | CreateRootRoleCallCommand | CompleteRootResponseCommand | OpenChildRoleCallCommand | ReturnChildRoleCallCommand | BeginRoleCapabilityExecutionCommand | SettleRoleCapabilityExecutionCommand | BeginRoleCapabilityBatchCommand | SettleRoleCapabilityBatchCommand | UpdateRoleCapabilityScopeCommand | EstablishRoleCallWorkingDirectoryCommand | ReconsiderRoleCapabilitySelectionCommand;
|
|
312
|
+
export type RoleCallCommitEffect = RoleSkillReadCommitEffect | ModelWorkPlanCommitEffect | RoleMemoryRecallCommitEffect | Readonly<{
|
|
309
313
|
type: "root_created";
|
|
310
314
|
callId: string;
|
|
311
315
|
}> | Readonly<{
|
|
@@ -372,7 +376,7 @@ export type RoleCallValidationIssue = Readonly<{
|
|
|
372
376
|
code: string;
|
|
373
377
|
path: string;
|
|
374
378
|
}>;
|
|
375
|
-
export type RoleCallTransitionRejectionCode = "invalid_current_state" | "invalid_policy" | "invalid_command" | "root_already_created" | "root_missing" | "caller_not_active" | "root_response_not_allowed" | "supervisor_child_forbidden" | "child_role_not_authorized" | "child_dependency_invalid" | "planner_plan_binding_invalid" | "planner_plan_already_declared" | "planner_plan_missing" | "planner_plan_item_unavailable" | "planner_plan_incomplete" | "depth_limit_exceeded" | "call_limit_exceeded" | "child_return_mismatch" | "capability_caller_invalid" | "capability_invocation_mismatch" | "capability_execution_limit_exceeded" | "capability_execution_mismatch" | "capability_scope_update_invalid" | "working_directory_establishment_invalid" | "model_work_plan_update_invalid" | "capability_selection_reconsideration_invalid" | "capability_selection_supervision_limit_exceeded" | "operation_supervision_limit_exceeded" | "memory_recall_caller_invalid" | "memory_recall_invocation_mismatch" | "memory_recall_settlement_mismatch" | "role_activation_limit_exceeded";
|
|
379
|
+
export type RoleCallTransitionRejectionCode = "invalid_current_state" | "invalid_policy" | "invalid_command" | "root_already_created" | "root_missing" | "caller_not_active" | "root_response_not_allowed" | "supervisor_child_forbidden" | "child_role_not_authorized" | "child_dependency_invalid" | "planner_plan_binding_invalid" | "planner_plan_already_declared" | "planner_plan_missing" | "planner_plan_item_unavailable" | "planner_plan_incomplete" | "depth_limit_exceeded" | "call_limit_exceeded" | "child_return_mismatch" | "capability_caller_invalid" | "capability_invocation_mismatch" | "capability_execution_limit_exceeded" | "capability_execution_mismatch" | "capability_scope_update_invalid" | "working_directory_establishment_invalid" | "model_work_plan_update_invalid" | "capability_selection_reconsideration_invalid" | "capability_selection_supervision_limit_exceeded" | "operation_supervision_limit_exceeded" | "skill_read_caller_invalid" | "skill_read_invocation_mismatch" | "memory_recall_caller_invalid" | "memory_recall_invocation_mismatch" | "memory_recall_settlement_mismatch" | "role_activation_limit_exceeded";
|
|
376
380
|
export type RoleCallTransitionResult = Readonly<{
|
|
377
381
|
ok: true;
|
|
378
382
|
state: RoleCallState;
|
|
@@ -25,13 +25,13 @@ export function isRoleCapabilityId(input) {
|
|
|
25
25
|
}
|
|
26
26
|
export const SUPERVISOR_WORKER_V1_AUTHORITY_SNAPSHOT = Object.freeze({
|
|
27
27
|
id: "supervisor-worker-v1",
|
|
28
|
-
version:
|
|
29
|
-
definitionHash: "sha256:
|
|
28
|
+
version: 3,
|
|
29
|
+
definitionHash: "sha256:f4283b1d3f8f86bba0177475d9368137f39eca54d452a06668c844f4173791c5",
|
|
30
30
|
rootContractId: "supervisor",
|
|
31
31
|
availableSubordinateContractIds: Object.freeze([
|
|
32
32
|
"planner",
|
|
33
33
|
"worker",
|
|
34
34
|
"reviewer",
|
|
35
35
|
]),
|
|
36
|
-
capabilityAuthorities: Object.freeze(["worker"]),
|
|
36
|
+
capabilityAuthorities: Object.freeze(["root", "worker"]),
|
|
37
37
|
});
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { RoleCallLedgerCheckpoint } from "./checkpoint-contract.js";
|
|
2
|
-
import { type RoleCallLedger, type RoleCallLedgerHead, type RoleCallPolicyInput } from "./contracts.js";
|
|
2
|
+
import { type RoleCallLedger, type RoleCallLedgerHead, type RoleCallPolicyInput, type RoleCallState } from "./contracts.js";
|
|
3
3
|
export declare function createRoleCallLedger(params: {
|
|
4
4
|
requestId: string;
|
|
5
5
|
policy: RoleCallPolicyInput;
|
|
6
6
|
checkpoint?: RoleCallLedgerCheckpoint;
|
|
7
|
+
initialMemory?: RoleCallState["initialMemory"];
|
|
7
8
|
}): RoleCallLedger;
|
|
8
9
|
/** Confirms exact current-head ownership without trusting structural ledgers. */
|
|
9
10
|
export declare function isCurrentRoleCallLedgerHead(ledger: RoleCallLedger, head: RoleCallLedgerHead): boolean;
|
|
@@ -15,8 +15,8 @@ const issuedRoleCallLedgerHeads = new WeakMap();
|
|
|
15
15
|
export function createRoleCallLedger(params) {
|
|
16
16
|
const policy = sealRoleCallPolicy(params.policy);
|
|
17
17
|
const initialState = params.checkpoint
|
|
18
|
-
? restoreCheckpointState(params.checkpoint, params.requestId, policy)
|
|
19
|
-
: createInitialRoleCallState(params.requestId);
|
|
18
|
+
? restoreCheckpointState(params.checkpoint, params.requestId, policy, params.initialMemory)
|
|
19
|
+
: createInitialRoleCallState(params.requestId, params.initialMemory);
|
|
20
20
|
const capabilitySelectionSupervisionIssuanceAuthority = resolveRoleCapabilitySelectionSupervisionIssuanceAuthority(initialState);
|
|
21
21
|
if (!capabilitySelectionSupervisionIssuanceAuthority) {
|
|
22
22
|
throw new Error("role_call_capability_selection_supervision_issuance_authority_missing");
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { ChatMessage } from "../../../model-gateway/types.js";
|
|
2
|
+
import type { LearningKnowledgeContext } from "../../long-term-memory/maturation/contracts.js";
|
|
1
3
|
import type { LongTermMemoryRecord } from "../../long-term-memory/contracts.js";
|
|
2
4
|
import type { RoleCallTransactionInput, RoleCallTransactionResult } from "./contracts.js";
|
|
3
5
|
export declare const ROLE_MEMORY_RECALL_QUERY_MAX_LENGTH = 1024;
|
|
@@ -49,3 +51,8 @@ export type RoleMemoryRecallTransactions = Readonly<{
|
|
|
49
51
|
beginMemoryRecall(input: RoleCallTransactionInput<BeginRoleMemoryRecallCommand>): Promise<RoleCallTransactionResult<"memory_recall_begun", "memory_recall_transition_invalid">>;
|
|
50
52
|
settleMemoryRecall(input: RoleCallTransactionInput<SettleRoleMemoryRecallCommand>): Promise<RoleCallTransactionResult<"memory_recall_settled", "memory_recall_transition_invalid">>;
|
|
51
53
|
}>;
|
|
54
|
+
/** Initial automatic reference; never a model recall or an activation. */
|
|
55
|
+
export type RoleInitialMemory = Readonly<{
|
|
56
|
+
message?: ChatMessage;
|
|
57
|
+
knowledge?: LearningKnowledgeContext;
|
|
58
|
+
}>;
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import type { RoleCallState, RoleCallValidationIssue } from "./contracts.js";
|
|
2
2
|
export declare function validateRoleMemoryRecalls(state: RoleCallState): RoleCallValidationIssue[];
|
|
3
3
|
export declare function hasSettledMemoryRecallActivationRange(state: RoleCallState, callId: string, fromActivation: number, toActivation: number): boolean;
|
|
4
|
+
/** The existing checkpoint carries this passive startup field, never a model action. */
|
|
5
|
+
export declare function hasInitialMemoryContext(value: unknown, policyId: string): boolean;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isAssistantToolCallMessage, isStrictTextChatMessage, isToolResultMessage, } from "../../../model-gateway/message-contract.js";
|
|
1
2
|
import { RUNTIME_ROOT_ROLE_ID } from "../roles.js";
|
|
2
3
|
import { hasMemoryRecallIdentity, isBoundedMemoryRecallQuery, normalizeRoleMemoryRecallResult, } from "./memory-recall-decoder.js";
|
|
3
4
|
import { exactKeys, isRecord } from "../../validation/strict-record.js";
|
|
@@ -119,3 +120,90 @@ function hasUnboundMemoryWait(state, pendingCount) {
|
|
|
119
120
|
return true;
|
|
120
121
|
return waitingCalls.some((call) => call.callId !== state.rootCallId);
|
|
121
122
|
}
|
|
123
|
+
/** The existing checkpoint carries this passive startup field, never a model action. */
|
|
124
|
+
export function hasInitialMemoryContext(value, policyId) {
|
|
125
|
+
if (value === undefined)
|
|
126
|
+
return true;
|
|
127
|
+
if (policyId !== "execution-agent-v1" && policyId !== "supervisor-worker-v1")
|
|
128
|
+
return false;
|
|
129
|
+
if (!isRecord(value) || !exactKeys(value, [], ["message", "knowledge"]))
|
|
130
|
+
return false;
|
|
131
|
+
if (value.message !== undefined && !isInitialMemoryMessage(value.message))
|
|
132
|
+
return false;
|
|
133
|
+
if (value.knowledge === undefined)
|
|
134
|
+
return true;
|
|
135
|
+
return isInitialMemoryKnowledge(value.knowledge);
|
|
136
|
+
}
|
|
137
|
+
function isInitialMemoryMessage(value) {
|
|
138
|
+
if (isStrictTextChatMessage(value))
|
|
139
|
+
return true;
|
|
140
|
+
if (isAssistantToolCallMessage(value))
|
|
141
|
+
return true;
|
|
142
|
+
return isToolResultMessage(value);
|
|
143
|
+
}
|
|
144
|
+
function isInitialMemoryKnowledge(value) {
|
|
145
|
+
if (!isRecord(value))
|
|
146
|
+
return false;
|
|
147
|
+
if (value.kind !== "learning_knowledge_reference_v1")
|
|
148
|
+
return false;
|
|
149
|
+
if (value.authority !== "passive_reference")
|
|
150
|
+
return false;
|
|
151
|
+
if (value.presenceEffect !== "does_not_authorize_actions_or_add_user_intent")
|
|
152
|
+
return false;
|
|
153
|
+
if (!isMemoryRevision(value.repositoryRevision))
|
|
154
|
+
return false;
|
|
155
|
+
if (!isMemoryRevision(value.knowledgeRevision))
|
|
156
|
+
return false;
|
|
157
|
+
if (!isMemoryRevision(value.omitted))
|
|
158
|
+
return false;
|
|
159
|
+
if (typeof value.referenceTime !== "string" || !Number.isFinite(Date.parse(value.referenceTime)))
|
|
160
|
+
return false;
|
|
161
|
+
if (!Array.isArray(value.entries) || value.entries.length > 12)
|
|
162
|
+
return false;
|
|
163
|
+
if (!value.entries.every(isInitialMemoryKnowledgeEntry))
|
|
164
|
+
return false;
|
|
165
|
+
const identities = value.entries.map(entry => JSON.stringify([entry.kind, entry.id]));
|
|
166
|
+
return new Set(identities).size === identities.length;
|
|
167
|
+
}
|
|
168
|
+
function isMemoryRevision(value) {
|
|
169
|
+
if (typeof value !== "number" || !Number.isSafeInteger(value))
|
|
170
|
+
return false;
|
|
171
|
+
return value >= 0;
|
|
172
|
+
}
|
|
173
|
+
function isInitialMemoryKnowledgeEntry(value) {
|
|
174
|
+
if (!isRecord(value))
|
|
175
|
+
return false;
|
|
176
|
+
if (value.kind !== "candidate" && value.kind !== "memory")
|
|
177
|
+
return false;
|
|
178
|
+
if (typeof value.id !== "string" || value.id.length === 0)
|
|
179
|
+
return false;
|
|
180
|
+
if (typeof value.version !== "string" || value.version.length === 0)
|
|
181
|
+
return false;
|
|
182
|
+
if (typeof value.content !== "string")
|
|
183
|
+
return false;
|
|
184
|
+
if (!Array.isArray(value.tags) || !value.tags.every(tag => typeof tag === "string"))
|
|
185
|
+
return false;
|
|
186
|
+
if (typeof value.mutable !== "boolean")
|
|
187
|
+
return false;
|
|
188
|
+
if (value.score !== null && !isMemoryScore(value.score))
|
|
189
|
+
return false;
|
|
190
|
+
if (value.reason !== null && typeof value.reason !== "string")
|
|
191
|
+
return false;
|
|
192
|
+
if (!["observed", "inferred", "unspecified"].includes(value.certainty))
|
|
193
|
+
return false;
|
|
194
|
+
if (!isOptionalMemoryTime(value.lastReinforcedAt))
|
|
195
|
+
return false;
|
|
196
|
+
return isOptionalMemoryTime(value.reconsiderAt);
|
|
197
|
+
}
|
|
198
|
+
function isMemoryScore(value) {
|
|
199
|
+
if (typeof value !== "number" || !Number.isFinite(value))
|
|
200
|
+
return false;
|
|
201
|
+
return value >= 0 && value <= 100;
|
|
202
|
+
}
|
|
203
|
+
function isOptionalMemoryTime(value) {
|
|
204
|
+
if (value === null)
|
|
205
|
+
return true;
|
|
206
|
+
if (typeof value !== "string")
|
|
207
|
+
return false;
|
|
208
|
+
return Number.isFinite(Date.parse(value));
|
|
209
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type RoleCallPolicy, type RoleCallPolicyInput, type RoleCallState, type RoleCallTransitionResult, type RoleCallValidationIssue } from "./contracts.js";
|
|
2
2
|
export { hasRoleCallCapabilityAuthority } from "./candidate-validation.js";
|
|
3
|
-
export declare function createInitialRoleCallState(requestId: string): RoleCallState;
|
|
3
|
+
export declare function createInitialRoleCallState(requestId: string, initialMemory?: RoleCallState["initialMemory"]): RoleCallState;
|
|
4
4
|
export declare function applyRoleCallCommand(state: RoleCallState, commandInput: unknown, policy: RoleCallPolicy, admittedHeadRevision?: number): RoleCallTransitionResult;
|
|
5
5
|
export declare function validateRoleCallCandidate(params: {
|
|
6
6
|
state: RoleCallState;
|
|
@@ -8,7 +8,7 @@ import { issueInitialRoleCapabilitySelectionSupervisionState } from "./capabilit
|
|
|
8
8
|
import { createInitialRoleOperationSupervisionState } from "./operation-supervision.js";
|
|
9
9
|
import { reject, seal } from "./reducer-primitives.js";
|
|
10
10
|
export { hasRoleCallCapabilityAuthority } from "./candidate-validation.js";
|
|
11
|
-
export function createInitialRoleCallState(requestId) {
|
|
11
|
+
export function createInitialRoleCallState(requestId, initialMemory) {
|
|
12
12
|
const state = seal({
|
|
13
13
|
contractVersion: ROLE_CALL_LEDGER_CONTRACT_VERSION,
|
|
14
14
|
requestId,
|
|
@@ -23,6 +23,7 @@ export function createInitialRoleCallState(requestId) {
|
|
|
23
23
|
plans: [],
|
|
24
24
|
capabilityExecutions: [],
|
|
25
25
|
memoryRecalls: [],
|
|
26
|
+
...(initialMemory !== undefined ? { initialMemory } : {}),
|
|
26
27
|
operationSupervision: createInitialRoleOperationSupervisionState(),
|
|
27
28
|
capabilitySelectionSupervision: createInitialRoleCapabilitySelectionSupervisionState(),
|
|
28
29
|
rootResponse: null,
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { type KnowledgeSkillDocument, type KnowledgeSkillMetadata } from "../../knowledge-skills/store.js";
|
|
2
|
+
import type { RoleCallPolicy, RoleCallState, RoleCallValidationIssue } from "./contracts.js";
|
|
3
|
+
export type RoleSkillReadResult<T> = Readonly<{
|
|
4
|
+
outcome: "completed";
|
|
5
|
+
skills: readonly T[];
|
|
6
|
+
}> | Readonly<{
|
|
7
|
+
outcome: "failed";
|
|
8
|
+
errorCode: string;
|
|
9
|
+
skills: readonly [];
|
|
10
|
+
}>;
|
|
11
|
+
export type RoleSkillReadPayload = Readonly<{
|
|
12
|
+
operation: "list_skills";
|
|
13
|
+
selectors: readonly [];
|
|
14
|
+
result: RoleSkillReadResult<KnowledgeSkillMetadata>;
|
|
15
|
+
}> | Readonly<{
|
|
16
|
+
operation: "read_skills";
|
|
17
|
+
selectors: readonly string[];
|
|
18
|
+
result: RoleSkillReadResult<KnowledgeSkillDocument>;
|
|
19
|
+
}>;
|
|
20
|
+
type RoleSkillReadBinding = Readonly<{
|
|
21
|
+
callId: string;
|
|
22
|
+
invocationAttempt: number;
|
|
23
|
+
steeringVersion: number;
|
|
24
|
+
}>;
|
|
25
|
+
export type RoleSkillRead = RoleSkillReadBinding & RoleSkillReadPayload & Readonly<{
|
|
26
|
+
readId: string;
|
|
27
|
+
}>;
|
|
28
|
+
export type RecordRoleSkillReadCommand = RoleSkillReadBinding & RoleSkillReadPayload & Readonly<{
|
|
29
|
+
authority: "runtime";
|
|
30
|
+
type: "record_skill_read";
|
|
31
|
+
}>;
|
|
32
|
+
export type RoleSkillReadCommitEffect = RoleSkillReadBinding & Readonly<{
|
|
33
|
+
type: "skill_read_recorded";
|
|
34
|
+
readId: string;
|
|
35
|
+
operation: RoleSkillReadPayload["operation"];
|
|
36
|
+
}>;
|
|
37
|
+
/** Decode the exact Store snapshots supplied by the runtime read boundary. */
|
|
38
|
+
export declare function decodeSkillReadCommand(input: Record<string, unknown>): Readonly<{
|
|
39
|
+
ok: true;
|
|
40
|
+
value: RecordRoleSkillReadCommand;
|
|
41
|
+
}> | Readonly<{
|
|
42
|
+
ok: false;
|
|
43
|
+
code: "invalid_command";
|
|
44
|
+
}>;
|
|
45
|
+
/** Omission preserves heads and parked requests created before core Skill reads. */
|
|
46
|
+
export declare function validateRoleSkillReads(state: RoleCallState, policy: RoleCallPolicy): readonly RoleCallValidationIssue[];
|
|
47
|
+
export {};
|