@abot-ai/runtime 1.8.1 → 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/dist/scripts/runtime-setup-files.js +46 -2
- 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/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/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/composition.d.ts +5 -0
- 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 +1 -0
- package/dist/src/runtime/long-term-memory/conversation-authoring/context.js +1 -1
- 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 +1 -0
- 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 +2 -0
- package/dist/src/runtime/orchestration/role-calls/checkpoint-state.js +2 -1
- 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 +6 -3
- package/dist/src/runtime/orchestration/role-calls/contracts.js +3 -3
- 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 +1 -1
- package/dist/src/runtime/orchestration/worker-capabilities/contracts.js +1 -1
- package/dist/src/runtime/orchestration/worker-capabilities/execution/approval-group.js +5 -3
- 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/request/approval-wait/preflight.js +1 -0
- package/dist/src/runtime/request/bound-runtime-handler.js +1 -0
- package/dist/src/runtime/request/contracts.d.ts +2 -0
- 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 +11 -1
- package/dist/src/runtime/request/root-execution-kernel.js +35 -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 +10 -0
- package/dist/src/runtime/request/super-payload-context-failure.js +13 -4
- package/dist/src/runtime/request/supervisor-root-execution.js +48 -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/direct-response-prompt.js +14 -14
- package/dist/src/runtime/steps/execution-agent/input.js +14 -2
- package/dist/src/runtime/steps/execution-agent/prompt.js +40 -38
- 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 +1 -1
- package/dist/src/runtime/steps/execution-agent/run.js +1 -1
- package/dist/src/runtime/steps/execution-agent/state-context.js +1 -1
- 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 +2 -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 +3 -0
- 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 +7 -1
- package/dist/src/runtime/steps/supervisor-decision/input.js +30 -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 +4 -0
- package/dist/src/runtime/steps/supervisor-decision/prompt.js +96 -109
- 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 +6 -0
- package/dist/src/runtime/steps/supervisor-decision/run.js +73 -159
- 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 +5 -0
- 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/app-bootstrap.js +3 -0
- package/dist/src/web-ui/app/app.js +6 -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/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/onboarding-workspace-access.js +1 -1
- package/dist/src/web-ui/app/components/skills/workspace.js +119 -0
- package/dist/src/web-ui/app/components/workspace-shell.js +11 -1
- 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/realtime-event-controller.js +22 -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/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/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/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 +2 -1
- package/dist/src/web-ui/app/styles.css +1 -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/runtime-public-contracts.md +37 -0
- package/examples/request-runner.config.example.json +3 -0
- package/package.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,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 {};
|
|
@@ -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,7 +9,7 @@ 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
15
|
export { TOOL_NORMAL_INVOCATION_STRING_MAX_LENGTH as WORKER_CAPABILITY_CONTROL_STRING_MAX_LENGTH } from "../../../capabilities/normal-invocation/contracts.js";
|
|
@@ -5,7 +5,7 @@ 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
11
|
export { TOOL_NORMAL_INVOCATION_STRING_MAX_LENGTH as WORKER_CAPABILITY_CONTROL_STRING_MAX_LENGTH } from "../../../capabilities/normal-invocation/contracts.js";
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { projectSupervisorSkillCapabilityAdapters } from "../supervisor-skill-authority.js";
|
|
1
2
|
import { fenceRestoredApprovalExecution } from "./execution-freshness.js";
|
|
2
3
|
import { restorePreparationRejection } from "./preparation-rejection.js";
|
|
3
4
|
import { isDeepStrictEqual } from "node:util";
|
|
@@ -73,12 +74,13 @@ export async function restoreCapabilityApprovalGroup(params) {
|
|
|
73
74
|
if (group.executionFreshnessToken !== undefined &&
|
|
74
75
|
!isDeepStrictEqual(group.executionFreshnessToken, params.executionFreshness?.token))
|
|
75
76
|
throw new Error("prepared_approval_freshness_mismatch");
|
|
77
|
+
const adapters = projectSupervisorSkillCapabilityAdapters({ head, call, adapters: params.adapters });
|
|
76
78
|
const running = head.state.capabilityExecutions.filter((entry) => entry.status === "running");
|
|
77
79
|
if (running.length !== group.entries.length)
|
|
78
80
|
throw new Error("prepared_approval_group_mismatch");
|
|
79
81
|
const invocations = await Promise.all(group.entries.map(async (entry) => {
|
|
80
82
|
const admitted = running.find((value) => value.executionId === entry.executionId);
|
|
81
|
-
const adapter =
|
|
83
|
+
const adapter = adapters.find((value) => value.descriptor.capabilityId === entry.capabilityId);
|
|
82
84
|
if (!admitted ||
|
|
83
85
|
admitted.callId !== group.callId ||
|
|
84
86
|
admitted.invocationAttempt !== group.invocationAttempt ||
|
|
@@ -123,8 +125,8 @@ export async function restoreCapabilityApprovalGroup(params) {
|
|
|
123
125
|
scopeMode: call.workerCapabilityScope ? "catalog_groups" : "full",
|
|
124
126
|
scopeCatalogGroupIds: call.workerCapabilityScope?.catalogGroupIds ?? [],
|
|
125
127
|
knownCatalogGroupCount: 0,
|
|
126
|
-
fullCapabilityCount:
|
|
127
|
-
filteredCapabilityCount:
|
|
128
|
+
fullCapabilityCount: adapters.length,
|
|
129
|
+
filteredCapabilityCount: adapters.length,
|
|
128
130
|
};
|
|
129
131
|
return Object.freeze({
|
|
130
132
|
async execute(decisions) {
|
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",
|
|
@@ -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
|
};
|
|
@@ -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. */
|
|
@@ -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),
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { KnowledgeSkillStore } from "../knowledge-skills/store.js";
|
|
2
|
+
import type { AvailableSkillsSource } from "../knowledge-skills/available-skills.js";
|
|
1
3
|
import { type RuntimeFilesystemScope } from "../context/runtime-filesystem-scope.js";
|
|
2
4
|
import { type SuperFailureFinalization } from "./super-failure-explanation.js";
|
|
3
5
|
import type { ToolAvailabilitySource } from "../capabilities/tool-availability.js";
|
|
@@ -5,7 +7,7 @@ import type { WorkerCapabilityAdapterProvider } from "../orchestration/worker-ca
|
|
|
5
7
|
import type { AcceptedRequestInput, BoundRequestModelInvocationContext, RequestSessionSnapshot, RequestExecutionSeed, RequestIdentity, RequestLifecycleRuntime, RequestModelInvocationView, RequestModelRuntime, RequestMemoryRuntime, RequestPresentation } from "./contracts.js";
|
|
6
8
|
import type { CompiledExecutionPolicy } from "./root-contract.js";
|
|
7
9
|
/** Request fields required while the request-bound capability catalog is built. */
|
|
8
|
-
export type RequestCapabilityCompositionView = BoundRequestModelInvocationContext & Readonly<Pick<RequestExecutionSeed, "sessionId" | "prompt" | "historyMessages" | "toolPermissionMode" | "toolApprovalController" | "effectPersistence" | "onEvent" | "contextCompactionStore">>;
|
|
10
|
+
export type RequestCapabilityCompositionView = BoundRequestModelInvocationContext & Readonly<Pick<RequestExecutionSeed, "sessionId" | "prompt" | "historyMessages" | "sessionMemory" | "attachments" | "toolPermissionMode" | "toolApprovalController" | "effectPersistence" | "onEvent" | "contextCompactionStore">>;
|
|
9
11
|
/**
|
|
10
12
|
* Stable request-owned context delivered to capability adapters.
|
|
11
13
|
* Passive session artifact paths and request containers are excluded.
|
|
@@ -13,7 +15,7 @@ export type RequestCapabilityCompositionView = BoundRequestModelInvocationContex
|
|
|
13
15
|
export type RequestCapabilityExecutionView = Readonly<Omit<RequestExecutionSeed, "sessionArtifactPaths" | "sessionMemory" | "longTermMemory" | "memoryRecallLimit" | "scheduledExecution">> & BoundRequestModelInvocationContext;
|
|
14
16
|
export type RequestWorkerCapabilities = Readonly<{
|
|
15
17
|
filesystemScope?: RuntimeFilesystemScope;
|
|
16
|
-
provider: WorkerCapabilityAdapterProvider<RequestCapabilityExecutionView> & Partial<ToolAvailabilitySource>;
|
|
18
|
+
provider: WorkerCapabilityAdapterProvider<RequestCapabilityExecutionView> & Partial<ToolAvailabilitySource & AvailableSkillsSource>;
|
|
17
19
|
executionContext: RequestCapabilityExecutionView;
|
|
18
20
|
}>;
|
|
19
21
|
export type RequestExecutionPolicyFacet = Readonly<{
|
|
@@ -35,12 +37,14 @@ export type RequestExecutionScope = RequestExecutionSeed & BoundRequestModelInvo
|
|
|
35
37
|
capabilities: RequestWorkerCapabilities;
|
|
36
38
|
superFailureFinalization?: SuperFailureFinalization;
|
|
37
39
|
workerCapabilities: RequestWorkerCapabilities;
|
|
40
|
+
knowledgeSkillStore?: KnowledgeSkillStore;
|
|
38
41
|
}>;
|
|
39
42
|
export type CompiledRequestExecutionPolicy = RequestExecutionScope["executionPolicy"];
|
|
40
43
|
export type RequestWorkerCapabilityProviderSource = Pick<RequestExecutionScope, "workerCapabilities">;
|
|
41
44
|
export type RequestWorkerCapabilityCatalog = Pick<WorkerCapabilityAdapterProvider<RequestCapabilityExecutionView>, "getDescriptors" | "getExecutionGuidance">;
|
|
42
45
|
export declare function createRequestExecutionScope(input: Readonly<{
|
|
43
46
|
seed: RequestExecutionSeed;
|
|
47
|
+
knowledgeSkillStore?: KnowledgeSkillStore;
|
|
44
48
|
requestWorkingDirectory?: string;
|
|
45
49
|
executionPolicy: CompiledRequestExecutionPolicy;
|
|
46
50
|
superFailureFinalization?: SuperFailureFinalization;
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { matchesToolSelectionId } from "../../shared/tool-selection.js";
|
|
2
|
+
import { CORE_TOOL_CONTRACTS } from "../capabilities/core-tool-contracts.js";
|
|
3
|
+
import { captureModelPluginConfig } from "../config/model-plugin-config.js";
|
|
1
4
|
import { captureRuntimeFilesystemScope, } from "../context/runtime-filesystem-scope.js";
|
|
2
5
|
import { createSuperFailureFinalization, } from "./super-failure-explanation.js";
|
|
3
6
|
import { RequestModelStepInvoker } from "../model/invoke-step.js";
|
|
@@ -22,6 +25,9 @@ export function createRequestExecutionScope(input) {
|
|
|
22
25
|
modelInvocation,
|
|
23
26
|
modelSteps,
|
|
24
27
|
capabilities,
|
|
28
|
+
...(input.knowledgeSkillStore && !isSkillStoreDeniedForModel(input.seed)
|
|
29
|
+
? { knowledgeSkillStore: input.knowledgeSkillStore }
|
|
30
|
+
: {}),
|
|
25
31
|
superFailureFinalization: input.superFailureFinalization ??
|
|
26
32
|
createSuperFailureFinalization({
|
|
27
33
|
request: input.seed,
|
|
@@ -44,3 +50,8 @@ function createRequestExecutionPolicyFacet(selection, executionPolicy) {
|
|
|
44
50
|
executionPolicy,
|
|
45
51
|
});
|
|
46
52
|
}
|
|
53
|
+
/** Direct core reads retain the same captured model restriction as abot_skills. */
|
|
54
|
+
function isSkillStoreDeniedForModel(seed) {
|
|
55
|
+
const deniedSelectors = captureModelPluginConfig(seed.executionPolicySelection?.plugins)?.deny ?? [];
|
|
56
|
+
return deniedSelectors.some((selector) => matchesToolSelectionId("", CORE_TOOL_CONTRACTS.skills.name, selector));
|
|
57
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type SemanticCompactionSource } from "../context/semantic-compaction/contracts.js";
|
|
2
|
+
import type { projectExecutionPayloadCompactedEvidence } from "./execution-payload-compacted-evidence.js";
|
|
3
|
+
type PayloadSettledResult = ReturnType<typeof projectExecutionPayloadCompactedEvidence>["results"][number];
|
|
4
|
+
/** Keep the adapter envelope exact and the pre-projection compaction identity stable. */
|
|
5
|
+
export declare function projectPayloadSettledEvidence(results: readonly PayloadSettledResult[]): Readonly<{
|
|
6
|
+
results: readonly PayloadSettledResult[];
|
|
7
|
+
resultSourceOverrides: readonly SemanticCompactionSource[];
|
|
8
|
+
deduplicatedReferenceDataCount: number;
|
|
9
|
+
deduplicatedReferenceDataChars: number;
|
|
10
|
+
}>;
|
|
11
|
+
export {};
|