@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
|
@@ -1,19 +1,23 @@
|
|
|
1
1
|
import { resolveMemoryRecallSteeringVersion } from "../../long-term-memory/recall-binding.js";
|
|
2
2
|
import { canOfferMemoryRecall } from "../../long-term-memory/recall-policy.js";
|
|
3
|
-
import { invokeStructuredModelStep, StructuredModelInvalidOutputError, } from "../../model/invoke-structured-step.js";
|
|
4
3
|
import { createModelStepCompactionController } from "../../context/model-step-compaction.js";
|
|
5
4
|
import { superCompactionFailureOwner } from "../../context/super-compaction-failure-owner.js";
|
|
6
5
|
import { createSessionMemoryAwareCompactionController } from "../../context/session-memory/index.js";
|
|
7
6
|
import { resolveRequestSteeringInbox, } from "../../request/request-steering.js";
|
|
8
7
|
import { SUPERVISOR_DECISION_MODEL_STEP, } from "./contracts.js";
|
|
9
|
-
import { traceSupervisorDecisionPhaseSuperseded, traceSupervisorModelCompleted, traceSupervisorModelFailed, traceSupervisorModelStarted, traceSupervisorWorkingDirectoryModelStarted, } from "./diagnostics.js";
|
|
10
8
|
import { buildSupervisorDecisionInput } from "./input.js";
|
|
11
9
|
import { buildSupervisorCapabilityBriefOptions } from "./capability-brief.js";
|
|
12
10
|
import { createSupervisorCapabilityBriefReadmissionController } from "./capability-brief-readmission.js";
|
|
13
|
-
import {
|
|
14
|
-
import { buildSupervisorWorkingDirectoryInput, mergeSupervisorWorkingDirectory,
|
|
11
|
+
import { createSupervisorArtifactPathsReadmissionController } from "./artifact-paths.js";
|
|
12
|
+
import { buildSupervisorWorkingDirectoryInput, mergeSupervisorWorkingDirectory, } from "./working-directory.js";
|
|
15
13
|
import { SUPERVISOR_RESPONSE_MODEL_STEP } from "../supervisor-response/contracts.js";
|
|
16
14
|
import { resolveCanonicalReviewerCompletionTargetText } from "../reviewer-decision/contracts.js";
|
|
15
|
+
import { createDecisionOutcome, runRoutingPhase, runWorkingDirectoryPhase, requiresWorkingDirectory, tracePhaseSuperseded } from "./decision-phases.js";
|
|
16
|
+
import { prepareSupervisorDecision } from "./preparation.js";
|
|
17
|
+
import { isSupervisorSkillLookup } from "./skill-selection.js";
|
|
18
|
+
import { assertBoundModelStepSteeringCurrent } from "../../model/model-step-steering.js";
|
|
19
|
+
import { canOfferSupervisorSkillAuthoring } from "../supervisor-skill-authoring/input.js";
|
|
20
|
+
import { runSupervisorSkillAuthoring } from "../supervisor-skill-authoring/run.js";
|
|
17
21
|
export async function runSupervisorDecision(request, options) {
|
|
18
22
|
const boundSteeringVersion = resolveMemoryRecallSteeringVersion(options.memoryRecallMessage, request.requestId, options.call.callId);
|
|
19
23
|
const baseDiagnostic = {
|
|
@@ -35,38 +39,6 @@ export async function runSupervisorDecision(request, options) {
|
|
|
35
39
|
const initialMemoryMessage = request.longTermMemory?.enabled
|
|
36
40
|
? options.initialMemoryMessage
|
|
37
41
|
: undefined;
|
|
38
|
-
const input = buildSupervisorDecisionInput(request, {
|
|
39
|
-
allowMemoryRecall: canOfferMemoryRecall({
|
|
40
|
-
enabled: request.longTermMemory?.enabled === true,
|
|
41
|
-
recallCount: options.memoryRecallCount ?? 0,
|
|
42
|
-
maxRecallCallsPerRequest: request.memoryRecallLimit,
|
|
43
|
-
}),
|
|
44
|
-
...(memoryRecallMessage ? { memoryRecallMessage } : {}),
|
|
45
|
-
...(initialMemoryMessage ? { initialMemoryMessage } : {}),
|
|
46
|
-
...buildSupervisorCapabilityBriefOptions(request, options),
|
|
47
|
-
toolResults: options.toolResults,
|
|
48
|
-
...(options.includeAcknowledgement === undefined
|
|
49
|
-
? {}
|
|
50
|
-
: { includeAcknowledgement: options.includeAcknowledgement }),
|
|
51
|
-
...(options.includeTitle === undefined
|
|
52
|
-
? {}
|
|
53
|
-
: { includeTitle: options.includeTitle }),
|
|
54
|
-
...(options.allowedRoleIds === undefined
|
|
55
|
-
? {}
|
|
56
|
-
: { allowedRoleIds: options.allowedRoleIds }),
|
|
57
|
-
...(options.resume === undefined ? {} : { resume: options.resume }),
|
|
58
|
-
...(options.workerCapabilityAffordances === undefined
|
|
59
|
-
? {}
|
|
60
|
-
: {
|
|
61
|
-
workerCapabilityAffordances: options.workerCapabilityAffordances,
|
|
62
|
-
}),
|
|
63
|
-
...(options.availableWorkerCapabilityCatalog === undefined
|
|
64
|
-
? {}
|
|
65
|
-
: {
|
|
66
|
-
availableWorkerCapabilityCatalog: options.availableWorkerCapabilityCatalog,
|
|
67
|
-
}),
|
|
68
|
-
diagnostic: routingDiagnostic,
|
|
69
|
-
});
|
|
70
42
|
const requestSteering = resolveRequestSteeringInbox(request.requestSteering);
|
|
71
43
|
const contextCompaction = createSessionMemoryAwareCompactionController(request, createModelStepCompactionController(request, {
|
|
72
44
|
consumer: SUPERVISOR_DECISION_MODEL_STEP,
|
|
@@ -93,23 +65,78 @@ export async function runSupervisorDecision(request, options) {
|
|
|
93
65
|
]),
|
|
94
66
|
}));
|
|
95
67
|
for (;;) {
|
|
68
|
+
const preparation = await prepareSupervisorDecision(request, {
|
|
69
|
+
diagnostic: baseDiagnostic,
|
|
70
|
+
includeAcknowledgement: options.resume === undefined && options.includeAcknowledgement === true,
|
|
71
|
+
includeTitle: options.resume === undefined && (options.includeTitle ?? request.shouldGenerateSessionTitle ?? false),
|
|
72
|
+
allowSkillReads: request.knowledgeSkillStore !== undefined && options.allowSkillReads !== false,
|
|
73
|
+
skillReadHead: options.skillReadHead,
|
|
74
|
+
boundSteeringVersion,
|
|
75
|
+
});
|
|
76
|
+
assertBoundModelStepSteeringCurrent(requestSteering, preparation.steeringVersion);
|
|
77
|
+
if (isSupervisorSkillLookup(preparation.selection)) {
|
|
78
|
+
return createDecisionOutcome({ ...preparation.selection, ...preparation.presentation }, preparation.steeringVersion);
|
|
79
|
+
}
|
|
80
|
+
const input = buildSupervisorDecisionInput(request, {
|
|
81
|
+
allowSkillAuthoring: canOfferSupervisorSkillAuthoring(request, options),
|
|
82
|
+
allowMemoryRecall: canOfferMemoryRecall({
|
|
83
|
+
enabled: request.longTermMemory?.enabled === true,
|
|
84
|
+
recallCount: options.memoryRecallCount ?? 0,
|
|
85
|
+
maxRecallCallsPerRequest: request.memoryRecallLimit,
|
|
86
|
+
}),
|
|
87
|
+
...(memoryRecallMessage ? { memoryRecallMessage } : {}),
|
|
88
|
+
...(initialMemoryMessage ? { initialMemoryMessage } : {}),
|
|
89
|
+
...buildSupervisorCapabilityBriefOptions(request, options),
|
|
90
|
+
toolResults: options.toolResults,
|
|
91
|
+
...(options.skillReadHead ? { skillReadHead: options.skillReadHead } : {}),
|
|
92
|
+
includeAcknowledgement: false,
|
|
93
|
+
includeTitle: false,
|
|
94
|
+
...(options.allowedRoleIds === undefined
|
|
95
|
+
? {}
|
|
96
|
+
: { allowedRoleIds: options.allowedRoleIds }),
|
|
97
|
+
...(options.resume === undefined ? {} : { resume: options.resume }),
|
|
98
|
+
...(options.workerCapabilityAffordances === undefined
|
|
99
|
+
? {}
|
|
100
|
+
: {
|
|
101
|
+
workerCapabilityAffordances: options.workerCapabilityAffordances,
|
|
102
|
+
}),
|
|
103
|
+
...(options.availableWorkerCapabilityCatalog === undefined
|
|
104
|
+
? {}
|
|
105
|
+
: {
|
|
106
|
+
availableWorkerCapabilityCatalog: options.availableWorkerCapabilityCatalog,
|
|
107
|
+
}),
|
|
108
|
+
diagnostic: routingDiagnostic,
|
|
109
|
+
});
|
|
96
110
|
const routing = await runRoutingPhase({
|
|
97
111
|
request,
|
|
98
112
|
requestSteering,
|
|
99
|
-
boundSteeringVersion,
|
|
113
|
+
boundSteeringVersion: preparation.steeringVersion,
|
|
100
114
|
input,
|
|
101
115
|
diagnostic: routingDiagnostic,
|
|
102
|
-
contextCompaction:
|
|
116
|
+
contextCompaction: createSupervisorArtifactPathsReadmissionController(request, {
|
|
117
|
+
projection: input.artifactPathsProjection,
|
|
118
|
+
format: input.format,
|
|
119
|
+
includeInstructions: true,
|
|
120
|
+
controller: createSupervisorCapabilityBriefReadmissionController(request, { input, controller: contextCompaction }),
|
|
121
|
+
}),
|
|
103
122
|
});
|
|
123
|
+
if (routing.decision.action === "author_skill") {
|
|
124
|
+
const authored = await runSupervisorSkillAuthoring(request, {
|
|
125
|
+
...options, diagnostic: baseDiagnostic,
|
|
126
|
+
boundSteeringVersion: routing.steeringVersion, contextCompaction,
|
|
127
|
+
});
|
|
128
|
+
return createDecisionOutcome({ ...authored.decision, ...preparation.presentation }, authored.steeringVersion);
|
|
129
|
+
}
|
|
104
130
|
if (routing.decision.action === "invoke_role" &&
|
|
105
131
|
routing.decision.roleId === "reviewer") {
|
|
106
132
|
return createDecisionOutcome(Object.freeze({
|
|
107
133
|
...routing.decision,
|
|
134
|
+
...preparation.presentation,
|
|
108
135
|
objective: resolveCanonicalReviewerCompletionTargetText(request.prompt),
|
|
109
136
|
}), routing.steeringVersion);
|
|
110
137
|
}
|
|
111
138
|
if (!requiresWorkingDirectory(routing.decision)) {
|
|
112
|
-
return createDecisionOutcome(routing.decision, routing.steeringVersion);
|
|
139
|
+
return createDecisionOutcome({ ...routing.decision, ...preparation.presentation }, routing.steeringVersion);
|
|
113
140
|
}
|
|
114
141
|
if (!requestSteering.isCurrent(routing.steeringVersion)) {
|
|
115
142
|
tracePhaseSuperseded({
|
|
@@ -132,7 +159,12 @@ export async function runSupervisorDecision(request, options) {
|
|
|
132
159
|
boundSteeringVersion,
|
|
133
160
|
frozenDecision: routing.decision,
|
|
134
161
|
diagnostic: workingDirectoryDiagnostic,
|
|
135
|
-
contextCompaction,
|
|
162
|
+
contextCompaction: createSupervisorArtifactPathsReadmissionController(request, {
|
|
163
|
+
projection: input.artifactPathsProjection,
|
|
164
|
+
format: workingDirectoryInput.format,
|
|
165
|
+
includeInstructions: false,
|
|
166
|
+
controller: contextCompaction,
|
|
167
|
+
}),
|
|
136
168
|
});
|
|
137
169
|
const merged = mergeSupervisorWorkingDirectory(routing.decision, workingDirectory.decision);
|
|
138
170
|
if (workingDirectory.steeringVersion !== routing.steeringVersion ||
|
|
@@ -146,124 +178,6 @@ export async function runSupervisorDecision(request, options) {
|
|
|
146
178
|
});
|
|
147
179
|
continue;
|
|
148
180
|
}
|
|
149
|
-
return createDecisionOutcome(merged, workingDirectory.steeringVersion);
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
function createDecisionOutcome(decision, steeringVersion) {
|
|
153
|
-
return Object.freeze({ decision, steeringVersion });
|
|
154
|
-
}
|
|
155
|
-
async function runRoutingPhase(params) {
|
|
156
|
-
const startedAt = Date.now();
|
|
157
|
-
traceSupervisorModelStarted({
|
|
158
|
-
diagnostic: params.diagnostic,
|
|
159
|
-
allowMemoryRecall: params.input.allowMemoryRecall,
|
|
160
|
-
messageCount: params.input.context.messages.length,
|
|
161
|
-
messageCharacterCount: params.input.context.messages.reduce((total, message) => total + message.content.length, 0),
|
|
162
|
-
includeAcknowledgement: params.input.includeAcknowledgement,
|
|
163
|
-
includeTitle: params.input.includeTitle,
|
|
164
|
-
allowedRoleIds: params.input.allowedRoleIds,
|
|
165
|
-
availableWorkerCapabilityCatalog: params.input.availableWorkerCapabilityCatalog,
|
|
166
|
-
});
|
|
167
|
-
try {
|
|
168
|
-
const accepted = await invokeStructuredModelStep({
|
|
169
|
-
request: params.request,
|
|
170
|
-
boundSteeringVersion: params.boundSteeringVersion,
|
|
171
|
-
modelStep: params.input.modelStep,
|
|
172
|
-
format: params.input.format,
|
|
173
|
-
messages: params.input.context.messages,
|
|
174
|
-
contextCompaction: params.contextCompaction,
|
|
175
|
-
timeoutReason: "supervisor_decision_timeout",
|
|
176
|
-
invalidOutputReason: "invalid_supervisor_decision",
|
|
177
|
-
parse: (text) => captureAcceptedPhase(parseSupervisorDecisionOutput(text, {
|
|
178
|
-
includeAcknowledgement: params.input.includeAcknowledgement,
|
|
179
|
-
includeTitle: params.input.includeTitle,
|
|
180
|
-
includeResponseRecommendation: params.input.includeResponseRecommendation,
|
|
181
|
-
allowMemoryRecall: params.input.allowMemoryRecall,
|
|
182
|
-
allowedRoleIds: params.input.allowedRoleIds,
|
|
183
|
-
availableWorkerCapabilityCatalog: params.input.availableWorkerCapabilityCatalog,
|
|
184
|
-
diagnostic: params.diagnostic,
|
|
185
|
-
}), params.requestSteering),
|
|
186
|
-
});
|
|
187
|
-
traceSupervisorModelCompleted({
|
|
188
|
-
diagnostic: params.diagnostic,
|
|
189
|
-
decision: accepted.decision,
|
|
190
|
-
durationMs: Date.now() - startedAt,
|
|
191
|
-
});
|
|
192
|
-
return accepted;
|
|
193
|
-
}
|
|
194
|
-
catch (error) {
|
|
195
|
-
tracePhaseFailure(params.diagnostic, startedAt, error);
|
|
196
|
-
throw error;
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
async function runWorkingDirectoryPhase(params) {
|
|
200
|
-
const startedAt = Date.now();
|
|
201
|
-
traceSupervisorWorkingDirectoryModelStarted({
|
|
202
|
-
diagnostic: params.diagnostic,
|
|
203
|
-
messageCount: params.input.messages.length,
|
|
204
|
-
messageCharacterCount: params.input.messages.reduce((total, message) => total + message.content.length, 0),
|
|
205
|
-
frozenDecision: params.frozenDecision,
|
|
206
|
-
});
|
|
207
|
-
try {
|
|
208
|
-
const accepted = await invokeStructuredModelStep({
|
|
209
|
-
request: params.request,
|
|
210
|
-
boundSteeringVersion: params.boundSteeringVersion,
|
|
211
|
-
modelStep: params.input.modelStep,
|
|
212
|
-
format: params.input.format,
|
|
213
|
-
messages: params.input.messages,
|
|
214
|
-
contextCompaction: params.contextCompaction,
|
|
215
|
-
timeoutReason: "supervisor_decision_timeout",
|
|
216
|
-
invalidOutputReason: "invalid_supervisor_decision",
|
|
217
|
-
parse: (text) => captureAcceptedPhase(parseSupervisorWorkingDirectoryOutput(text, {
|
|
218
|
-
diagnostic: params.diagnostic,
|
|
219
|
-
}), params.requestSteering),
|
|
220
|
-
});
|
|
221
|
-
traceSupervisorModelCompleted({
|
|
222
|
-
diagnostic: params.diagnostic,
|
|
223
|
-
decision: mergeSupervisorWorkingDirectory(params.frozenDecision, accepted.decision),
|
|
224
|
-
durationMs: Date.now() - startedAt,
|
|
225
|
-
});
|
|
226
|
-
return accepted;
|
|
181
|
+
return createDecisionOutcome({ ...merged, ...preparation.presentation }, workingDirectory.steeringVersion);
|
|
227
182
|
}
|
|
228
|
-
catch (error) {
|
|
229
|
-
tracePhaseFailure(params.diagnostic, startedAt, error);
|
|
230
|
-
throw error;
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
function captureAcceptedPhase(parsed, requestSteering) {
|
|
234
|
-
if (!parsed.ok) {
|
|
235
|
-
return parsed;
|
|
236
|
-
}
|
|
237
|
-
return Object.freeze({
|
|
238
|
-
ok: true,
|
|
239
|
-
decision: Object.freeze({
|
|
240
|
-
decision: parsed.decision,
|
|
241
|
-
steeringVersion: requestSteering.snapshot().version,
|
|
242
|
-
}),
|
|
243
|
-
});
|
|
244
|
-
}
|
|
245
|
-
function requiresWorkingDirectory(decision) {
|
|
246
|
-
return (decision.action === "invoke_role" &&
|
|
247
|
-
(decision.roleId === "planner" || decision.roleId === "worker"));
|
|
248
|
-
}
|
|
249
|
-
function tracePhaseFailure(diagnostic, startedAt, error) {
|
|
250
|
-
traceSupervisorModelFailed({
|
|
251
|
-
diagnostic,
|
|
252
|
-
durationMs: Date.now() - startedAt,
|
|
253
|
-
errorType: error instanceof Error && error.name ? error.name : typeof error,
|
|
254
|
-
invalidStructuredOutput: error instanceof StructuredModelInvalidOutputError,
|
|
255
|
-
});
|
|
256
|
-
}
|
|
257
|
-
function tracePhaseSuperseded(params) {
|
|
258
|
-
traceSupervisorDecisionPhaseSuperseded({
|
|
259
|
-
diagnostic: params.diagnostic,
|
|
260
|
-
routingSteeringVersion: params.routingSteeringVersion,
|
|
261
|
-
currentSteeringVersion: params.requestSteering.snapshot().version,
|
|
262
|
-
...(params.workingDirectorySteeringVersion === undefined
|
|
263
|
-
? {}
|
|
264
|
-
: {
|
|
265
|
-
workingDirectorySteeringVersion: params.workingDirectorySteeringVersion,
|
|
266
|
-
}),
|
|
267
|
-
checkpoint: params.checkpoint,
|
|
268
|
-
});
|
|
269
183
|
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { RoleCallLedgerHead } from "../../orchestration/role-calls/index.js";
|
|
2
|
+
import type { RequestExecutionScope } from "../../request/execution-scope.js";
|
|
3
|
+
import { type SupervisorDecisionDiagnosticContext } from "./contracts.js";
|
|
4
|
+
export declare function buildSupervisorSkillSelectionInput(request: RequestExecutionScope, options?: {
|
|
5
|
+
skillReadHead?: RoleCallLedgerHead;
|
|
6
|
+
diagnostic?: SupervisorDecisionDiagnosticContext;
|
|
7
|
+
}): {
|
|
8
|
+
format: import("../../../model-gateway/types.js").ModelGatewayJsonSchemaFormat;
|
|
9
|
+
context: Readonly<{
|
|
10
|
+
messages: import("../../../model-gateway/types.js").ChatMessage[];
|
|
11
|
+
selectedHistoryMessageIds: string[];
|
|
12
|
+
omittedHistoryMessageIds: string[];
|
|
13
|
+
budget: import("../../context/request-context-contracts.js").RequestContextBudgetEstimate & {
|
|
14
|
+
parts: import("../../context/request-context-contracts.js").RequestContextBudgetParts;
|
|
15
|
+
};
|
|
16
|
+
compaction: Readonly<{
|
|
17
|
+
applied: boolean;
|
|
18
|
+
compactedSourceRefs: readonly string[];
|
|
19
|
+
}>;
|
|
20
|
+
}>;
|
|
21
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { isKnowledgeSkillStorageFailure } from "../../knowledge-skills/personal-contracts.js";
|
|
2
|
+
import { SUPERVISOR_DECISION_MODEL_STEP } from "./contracts.js";
|
|
3
|
+
import { buildSupervisorPreparationInput } from "./preparation-input.js";
|
|
4
|
+
import { createSupervisorSkillSelectionFormat, SUPERVISOR_SKILL_SELECTION_INSTRUCTIONS } from "./skill-selection.js";
|
|
5
|
+
export function buildSupervisorSkillSelectionInput(request, options = {}) {
|
|
6
|
+
const reads = options.skillReadHead?.state.skillReads ?? [];
|
|
7
|
+
const loadedIds = new Set(reads.flatMap((read) => read.operation === "read_skills" && read.result.outcome === "completed"
|
|
8
|
+
? read.result.skills.map((skill) => skill.skillId) : []));
|
|
9
|
+
const lastList = [...reads].reverse().find((read) => read.operation === "list_skills" && read.result.outcome === "completed");
|
|
10
|
+
const metadata = lastList?.result.outcome === "completed"
|
|
11
|
+
? lastList.result.skills : readCandidateMetadata(request);
|
|
12
|
+
return buildSupervisorPreparationInput(request, {
|
|
13
|
+
instructions: SUPERVISOR_SKILL_SELECTION_INSTRUCTIONS,
|
|
14
|
+
format: createSupervisorSkillSelectionFormat(),
|
|
15
|
+
diagnostic: options.diagnostic ?? { requestId: request.requestId, modelStep: SUPERVISOR_DECISION_MODEL_STEP, decisionPhase: "skill_selection" },
|
|
16
|
+
availableSkills: metadata.filter((skill) => !loadedIds.has(skill.skillId)),
|
|
17
|
+
expandedCatalog: lastList !== undefined,
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
function readCandidateMetadata(request) {
|
|
21
|
+
try {
|
|
22
|
+
return request.knowledgeSkillStore?.list() ?? [];
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
if (isKnowledgeSkillStorageFailure(error))
|
|
26
|
+
return [];
|
|
27
|
+
throw error;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ModelGatewayJsonSchemaFormat } from "../../../model-gateway/types.js";
|
|
2
|
+
import type { StructuredModelParseResult } from "../../model/invoke-structured-step.js";
|
|
3
|
+
import { type SkillReadDecision } from "../skill-read-decision.js";
|
|
4
|
+
type SupervisorSkillRead = Extract<SkillReadDecision, {
|
|
5
|
+
action: "read_skills";
|
|
6
|
+
}>;
|
|
7
|
+
export type SupervisorSkillSelection = SupervisorSkillRead | Readonly<{
|
|
8
|
+
action: "continue";
|
|
9
|
+
}>;
|
|
10
|
+
export declare function isSupervisorSkillLookup(selection: SkillReadDecision | Readonly<{
|
|
11
|
+
action: "continue";
|
|
12
|
+
}>): selection is SupervisorSkillRead;
|
|
13
|
+
export declare function createSupervisorSkillSelectionFormat(): ModelGatewayJsonSchemaFormat;
|
|
14
|
+
export declare const SUPERVISOR_SKILL_SELECTION_INSTRUCTIONS: string;
|
|
15
|
+
export declare function parseSupervisorSkillSelectionOutput(text: string): StructuredModelParseResult<SupervisorSkillSelection>;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { createStructuredDecisionEnvelopeSchema, readStructuredDecisionEnvelope } from "../../model/structured-decision-envelope.js";
|
|
2
|
+
import { createSkillReadDecisionSchemas, parseSkillReadDecision } from "../skill-read-decision.js";
|
|
3
|
+
const READ_OPTIONS = Object.freeze({ acknowledgementMaxLength: 0, titleMaxLength: 0, allowSkillReads: true });
|
|
4
|
+
export function isSupervisorSkillLookup(selection) {
|
|
5
|
+
return selection.action === "read_skills";
|
|
6
|
+
}
|
|
7
|
+
export function createSupervisorSkillSelectionFormat() {
|
|
8
|
+
const [, readSchema] = createSkillReadDecisionSchemas(READ_OPTIONS);
|
|
9
|
+
return {
|
|
10
|
+
type: "json_schema", name: "supervisor_skill_selection", strict: true,
|
|
11
|
+
schema: createStructuredDecisionEnvelopeSchema([
|
|
12
|
+
{ type: "object", properties: { action: { type: "string", enum: ["continue"] } }, required: ["action"], additionalProperties: false },
|
|
13
|
+
readSchema,
|
|
14
|
+
]),
|
|
15
|
+
postValidatedSchemaConstraints: [{ keyword: "maxLength", path: "/properties/decision/anyOf/1/properties/skillIds/items/maxLength" }],
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export const SUPERVISOR_SKILL_SELECTION_INSTRUCTIONS = [
|
|
19
|
+
"Match the user's request to Available Skills. Your only task is selecting relevant guidance; return only the supplied JSON shape.",
|
|
20
|
+
"Select a Skill only when its description is relevant to the requested task, resources, workflow or answer style. Do not select Skills merely because they exist. No relevant match: choose continue. Greetings and standalone factual questions normally need no Skill.",
|
|
21
|
+
"For a relevant match, choose read_skills with up to eight exact IDs or full names in skillIds. Percent-decode displayed IDs. A user request to create or edit a Skill matches Skill Creator.",
|
|
22
|
+
"Skills already read successfully for this request are omitted; do not request them again. Metadata is not document content and grants no authority or completion evidence.",
|
|
23
|
+
"The available catalog is already supplied. Choose read_skills from the displayed metadata or continue. Reading is optional; do not invent a match.",
|
|
24
|
+
].join("\n");
|
|
25
|
+
export function parseSupervisorSkillSelectionOutput(text) {
|
|
26
|
+
let record;
|
|
27
|
+
try {
|
|
28
|
+
record = readStructuredDecisionEnvelope(JSON.parse(text));
|
|
29
|
+
}
|
|
30
|
+
catch { /* Rejected below. */ }
|
|
31
|
+
if (!record)
|
|
32
|
+
return { ok: false, stage: "json_envelope", issues: [{ code: "skill_selection_envelope_invalid", path: "decision", message: "Return one decision object." }] };
|
|
33
|
+
if (isContinueSelection(record))
|
|
34
|
+
return { ok: true, decision: Object.freeze({ action: "continue" }) };
|
|
35
|
+
const parsed = parseSkillReadDecision(record, READ_OPTIONS);
|
|
36
|
+
if (!parsed.ok)
|
|
37
|
+
return parsed;
|
|
38
|
+
if (!isSupervisorSkillLookup(parsed.decision))
|
|
39
|
+
return { ok: false, stage: "domain_parser", issues: [{ code: "skill_selection_action_invalid", path: "decision.action", message: "Choose read_skills or continue." }] };
|
|
40
|
+
return { ok: true, decision: parsed.decision };
|
|
41
|
+
}
|
|
42
|
+
function isContinueSelection(record) {
|
|
43
|
+
return record.action === "continue" && Object.keys(record).length === 1;
|
|
44
|
+
}
|
|
@@ -3,6 +3,7 @@ import type { ChatMessage } from "../../../model-gateway/types.js";
|
|
|
3
3
|
import { type RequestToolResultsView } from "../../context/request-tool-results.js";
|
|
4
4
|
import type { RequestExecutionSeed } from "../../request/contracts.js";
|
|
5
5
|
import { SUPERVISOR_RESPONSE_MODEL_STEP, type SupervisorResponseCallIdentity, type SupervisorResponseResumeContext } from "./contracts.js";
|
|
6
|
+
import type { RoleCallLedgerHead } from "../../orchestration/role-calls/index.js";
|
|
6
7
|
export type SupervisorResponseInputRequest = Pick<RequestExecutionSeed, "requestId" | "prompt" | "historyMessages" | "sessionKind" | "runnerConfig" | "attachments" | "agentMode" | "modelPreference" | "modelPolicy" | "scheduledExecution" | "automationOutputContract"> & Partial<Pick<RequestExecutionSeed, "onEvent" | "sessionMemory">>;
|
|
7
8
|
export declare function buildSupervisorResponseInput(request: SupervisorResponseInputRequest, options: SupervisorResponseInputOptions): {
|
|
8
9
|
context: RequestContextProjection;
|
|
@@ -14,8 +15,10 @@ export declare function buildSupervisorMemoryAuthoringInput(request: SupervisorR
|
|
|
14
15
|
};
|
|
15
16
|
type SupervisorResponseInputOptions = Readonly<{
|
|
16
17
|
responseRecommendation?: string;
|
|
18
|
+
responseRecommendationOrigin?: "skill_authoring_no_save";
|
|
17
19
|
call: SupervisorResponseCallIdentity;
|
|
18
20
|
toolResults: RequestToolResultsView;
|
|
21
|
+
skillReadHead?: RoleCallLedgerHead;
|
|
19
22
|
resume?: SupervisorResponseResumeContext;
|
|
20
23
|
longTermMemoryMessage?: ChatMessage;
|
|
21
24
|
memoryAuthoringMessage?: ChatMessage;
|
|
@@ -11,6 +11,7 @@ import { createSupervisorMemoryCandidatesFormat } from "./memory-authoring.js";
|
|
|
11
11
|
import { buildSupervisorResponseRecommendationMessage } from "./response-recommendation.js";
|
|
12
12
|
import { buildSupervisorMemoryAuthoringInstructions, buildSupervisorResponseInstructions, } from "./prompt.js";
|
|
13
13
|
import { automationResponseFormat } from "../../request/automation-output-contract.js";
|
|
14
|
+
import { buildCoreSkillReadContextMessages } from "../../context/core-skill-read-context.js";
|
|
14
15
|
export function buildSupervisorResponseInput(request, options) {
|
|
15
16
|
const responseRecommendationMessage = buildSupervisorResponseRecommendationMessage(options);
|
|
16
17
|
const scheduledExecution = projectScheduledExecutionContext(request, [buildSupervisorResponseInstructions({
|
|
@@ -24,6 +25,10 @@ export function buildSupervisorResponseInput(request, options) {
|
|
|
24
25
|
: [])].join("\n"), "response");
|
|
25
26
|
return buildSupervisorInput(request, options, {
|
|
26
27
|
...scheduledExecution,
|
|
28
|
+
referenceMessages: [
|
|
29
|
+
...(scheduledExecution.referenceMessages ?? []),
|
|
30
|
+
...buildCoreSkillReadContextMessages(options.skillReadHead),
|
|
31
|
+
],
|
|
27
32
|
...(request.automationOutputContract
|
|
28
33
|
? { format: automationResponseFormat(request.automationOutputContract) }
|
|
29
34
|
: {}),
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { SUPER_SKILL_GUIDANCE_INSTRUCTION } from "../supervisor-skill-instructions.js";
|
|
1
2
|
import { CONVERSATION_MEMORY_AUTHORING_INSTRUCTIONS } from "../../long-term-memory/conversation-authoring/prompt.js";
|
|
2
3
|
export function buildSupervisorResponseInstructions(params) {
|
|
3
4
|
return [
|
|
@@ -31,6 +32,7 @@ export function buildSupervisorResponseInstructions(params) {
|
|
|
31
32
|
"Use each capsule result only for its exact reported outcome, observed effect, and summary. It does not by itself prove completion of the delegated work or of the user request.",
|
|
32
33
|
]
|
|
33
34
|
: []),
|
|
35
|
+
SUPER_SKILL_GUIDANCE_INSTRUCTION,
|
|
34
36
|
"Do not mention internal role names, call identifiers, runtime contracts, or orchestration unless the user explicitly asks about them.",
|
|
35
37
|
].join("\n");
|
|
36
38
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { RoleCallLedgerHead } from "../../orchestration/role-calls/index.js";
|
|
1
2
|
import type { ChatMessage } from "../../../model-gateway/types.js";
|
|
2
3
|
import type { RequestToolResultsView } from "../../context/request-tool-results.js";
|
|
3
4
|
import type { SupervisorResponseCallIdentity, SupervisorResponseResumeContext } from "./contracts.js";
|
|
@@ -5,6 +6,8 @@ export declare const SUPERVISOR_RESPONSE_RECOMMENDATION_KIND = "runtime_supervis
|
|
|
5
6
|
export declare function buildSupervisorResponseRecommendationMessage(options: Readonly<{
|
|
6
7
|
call: SupervisorResponseCallIdentity;
|
|
7
8
|
responseRecommendation?: string;
|
|
9
|
+
responseRecommendationOrigin?: "skill_authoring_no_save";
|
|
8
10
|
resume?: SupervisorResponseResumeContext;
|
|
9
11
|
toolResults: RequestToolResultsView;
|
|
12
|
+
skillReadHead?: RoleCallLedgerHead;
|
|
10
13
|
}>): ChatMessage | undefined;
|
|
@@ -6,20 +6,40 @@ export function buildSupervisorResponseRecommendationMessage(options) {
|
|
|
6
6
|
if (!isSupervisorResponseRecommendation(options.responseRecommendation)) {
|
|
7
7
|
throw new Error("supervisor_response_recommendation_invalid");
|
|
8
8
|
}
|
|
9
|
-
if (!
|
|
9
|
+
if (!canProjectSupervisorResponseRecommendation(options)) {
|
|
10
10
|
throw new Error("supervisor_response_recommendation_scope_invalid");
|
|
11
11
|
}
|
|
12
|
+
const { limitations, ...semantics } = supervisorResponseRecommendationSemantics(options.responseRecommendationOrigin);
|
|
12
13
|
return Object.freeze({
|
|
13
14
|
role: "system",
|
|
14
15
|
content: JSON.stringify({
|
|
15
16
|
kind: SUPERVISOR_RESPONSE_RECOMMENDATION_KIND,
|
|
16
17
|
authority: "accepted_supervisor_decision",
|
|
17
|
-
|
|
18
|
-
applicability: "current_direct_response_only",
|
|
18
|
+
...semantics,
|
|
19
19
|
callId: options.call.callId,
|
|
20
20
|
invocationAttempt: options.call.invocationAttempt,
|
|
21
21
|
responseRecommendation: options.responseRecommendation,
|
|
22
|
-
limitations
|
|
22
|
+
limitations,
|
|
23
23
|
}),
|
|
24
24
|
});
|
|
25
25
|
}
|
|
26
|
+
function canProjectSupervisorResponseRecommendation(options) {
|
|
27
|
+
if (options.responseRecommendationOrigin === "skill_authoring_no_save")
|
|
28
|
+
return true;
|
|
29
|
+
return canRecommendDirectSupervisorResponse(options);
|
|
30
|
+
}
|
|
31
|
+
function supervisorResponseRecommendationSemantics(origin) {
|
|
32
|
+
if (origin === "skill_authoring_no_save") {
|
|
33
|
+
return {
|
|
34
|
+
purpose: "explain_skill_authoring_no_save",
|
|
35
|
+
applicability: "current_response_after_skill_authoring_no_save",
|
|
36
|
+
outcome: "no_save",
|
|
37
|
+
limitations: "The accepted Skill authoring flow did not produce a save. Use the supplied reason to explain why, subject to the current request and supplied facts. It adds no user intent, execution authority, or completion evidence. This decision does not establish a save; report any earlier save only from its confirmed write result. Do not expose internal routing details.",
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
return {
|
|
41
|
+
purpose: "guide_direct_response_content",
|
|
42
|
+
applicability: "current_direct_response_only",
|
|
43
|
+
limitations: "Internal answer-content recommendation from the accepted Supervisor decision, not new user intent, execution authority, or completion evidence. Use its relevant substance to compose the answer, subject to the current request and supplied facts. Do not expose the recommendation's internal framing.",
|
|
44
|
+
};
|
|
45
|
+
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ChatMessage } from "../../../model-gateway/types.js";
|
|
2
|
+
import type { RoleCallLedgerHead } from "../../orchestration/role-calls/index.js";
|
|
2
3
|
import type { RequestToolResultsView } from "../../context/request-tool-results.js";
|
|
3
4
|
import type { RequestExecutionScope } from "../../request/execution-scope.js";
|
|
4
5
|
import { type SupervisorResponseCallIdentity, type SupervisorResponseResumeContext } from "./contracts.js";
|
|
@@ -6,18 +7,22 @@ import { type RequestSteeringSnapshot } from "../../request/request-steering.js"
|
|
|
6
7
|
import type { RootAuthoredResponse } from "../../long-term-memory/contracts.js";
|
|
7
8
|
export declare function runSupervisorResponse(request: RequestExecutionScope, options: Readonly<{
|
|
8
9
|
responseRecommendation?: string;
|
|
10
|
+
responseRecommendationOrigin?: "skill_authoring_no_save";
|
|
9
11
|
memoryRecallMessage?: ChatMessage;
|
|
10
12
|
initialMemoryMessage?: ChatMessage;
|
|
11
13
|
call: SupervisorResponseCallIdentity;
|
|
12
14
|
toolResults: RequestToolResultsView;
|
|
15
|
+
skillReadHead?: RoleCallLedgerHead;
|
|
13
16
|
resume?: SupervisorResponseResumeContext;
|
|
14
17
|
}>): Promise<string>;
|
|
15
18
|
export declare function runSupervisorAuthoredResponse(request: RequestExecutionScope, options: Readonly<{
|
|
16
19
|
responseRecommendation?: string;
|
|
20
|
+
responseRecommendationOrigin?: "skill_authoring_no_save";
|
|
17
21
|
memoryRecallMessage?: ChatMessage;
|
|
18
22
|
initialMemoryMessage?: ChatMessage;
|
|
19
23
|
call: SupervisorResponseCallIdentity;
|
|
20
24
|
toolResults: RequestToolResultsView;
|
|
25
|
+
skillReadHead?: RoleCallLedgerHead;
|
|
21
26
|
resume?: SupervisorResponseResumeContext;
|
|
22
27
|
steeringSnapshot?: RequestSteeringSnapshot;
|
|
23
28
|
}>): Promise<RootAuthoredResponse>;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { ModelGatewayJsonSchemaFormat } from "../../../model-gateway/types.js";
|
|
2
|
+
import type { KnowledgeSkillMetadata } from "../../knowledge-skills/store.js";
|
|
3
|
+
import type { StructuredModelParseResult } from "../../model/invoke-structured-step.js";
|
|
4
|
+
export type SupervisorSkillAuthoringSelection = Readonly<{
|
|
5
|
+
action: "create_skill";
|
|
6
|
+
name: string;
|
|
7
|
+
description: string;
|
|
8
|
+
}> | Readonly<{
|
|
9
|
+
action: "update_skill";
|
|
10
|
+
skillId: string;
|
|
11
|
+
name?: string;
|
|
12
|
+
description?: string;
|
|
13
|
+
}> | Readonly<{
|
|
14
|
+
action: "no_save";
|
|
15
|
+
reason: string;
|
|
16
|
+
}>;
|
|
17
|
+
export type SupervisorSkillWriteSelection = Exclude<SupervisorSkillAuthoringSelection, {
|
|
18
|
+
action: "no_save";
|
|
19
|
+
}>;
|
|
20
|
+
export type SupervisorSkillAuthoringOptions = Readonly<{
|
|
21
|
+
writeOperationIds: readonly string[];
|
|
22
|
+
personalSkills: readonly KnowledgeSkillMetadata[];
|
|
23
|
+
}>;
|
|
24
|
+
export declare const SUPERVISOR_SKILL_NO_SAVE_REASON_MAX_LENGTH = 300;
|
|
25
|
+
export declare const SUPERVISOR_SKILL_AUTHORING_ROUTE_SCHEMA: {
|
|
26
|
+
type: string;
|
|
27
|
+
properties: {
|
|
28
|
+
action: {
|
|
29
|
+
type: string;
|
|
30
|
+
enum: string[];
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
required: string[];
|
|
34
|
+
additionalProperties: boolean;
|
|
35
|
+
};
|
|
36
|
+
export declare function isSupervisorSkillWriteSelection(decision: Readonly<{
|
|
37
|
+
action: string;
|
|
38
|
+
}>): decision is SupervisorSkillWriteSelection;
|
|
39
|
+
export declare function parseSupervisorSkillAuthoringRoute(record: Readonly<Record<string, unknown>>, allowed: boolean): StructuredModelParseResult<Readonly<{
|
|
40
|
+
action: "author_skill";
|
|
41
|
+
}>>;
|
|
42
|
+
export declare function createSupervisorSkillAuthoringFormat(options: SupervisorSkillAuthoringOptions): ModelGatewayJsonSchemaFormat;
|
|
43
|
+
export declare function parseSupervisorSkillAuthoringOutput(text: string, options: SupervisorSkillAuthoringOptions): StructuredModelParseResult<SupervisorSkillAuthoringSelection>;
|