@abot-ai/runtime 1.9.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -1
- package/dist/scripts/add-runtime-model.js +11 -5
- package/dist/scripts/init-runtime.js +15 -10
- package/dist/scripts/runtime-model-addition.js +6 -1
- package/dist/scripts/runtime-setup-command-options.d.ts +11 -0
- package/dist/scripts/runtime-setup-command-options.js +41 -0
- package/dist/scripts/runtime-setup-files.d.ts +3 -2
- package/dist/scripts/runtime-setup-files.js +19 -4
- package/dist/scripts/runtime-setup-model-options.d.ts +8 -0
- package/dist/scripts/runtime-setup-model-options.js +40 -0
- package/dist/scripts/runtime-setup-presentation.js +2 -2
- package/dist/scripts/runtime-setup-provider-options.d.ts +4 -0
- package/dist/scripts/runtime-setup-provider-options.js +20 -0
- package/dist/src/model-gateway/client/contracts.d.ts +3 -0
- package/dist/src/model-gateway/client/input-token-count.js +36 -16
- package/dist/src/model-gateway/client/message-projection.d.ts +2 -0
- package/dist/src/model-gateway/client/message-projection.js +1 -0
- package/dist/src/model-gateway/client/options.js +1 -1
- package/dist/src/model-gateway/client/raw.js +1 -0
- package/dist/src/model-gateway/index.d.ts +1 -1
- package/dist/src/model-gateway/observability/input-token-count-diagnostics.d.ts +26 -0
- package/dist/src/model-gateway/observability/input-token-count-diagnostics.js +178 -0
- package/dist/src/model-gateway/policy/invocation-policy.d.ts +1 -3
- package/dist/src/model-gateway/policy/invocation-policy.js +3 -30
- package/dist/src/model-gateway/policy/reasoning-mode-budget.d.ts +5 -0
- package/dist/src/model-gateway/policy/reasoning-mode-budget.js +13 -0
- package/dist/src/model-gateway/policy/reasoning-policy.d.ts +10 -0
- package/dist/src/model-gateway/policy/reasoning-policy.js +124 -0
- package/dist/src/model-gateway/protocol/openai-embedding-response.d.ts +1 -0
- package/dist/src/model-gateway/protocol/openai-embedding-response.js +28 -0
- package/dist/src/model-gateway/protocol/sse-data.d.ts +9 -0
- package/dist/src/model-gateway/protocol/sse-data.js +67 -0
- package/dist/src/model-gateway/providers/envelope-budget.js +10 -1
- package/dist/src/model-gateway/providers/llamacpp/adapter.d.ts +2 -0
- package/dist/src/model-gateway/providers/llamacpp/adapter.js +79 -0
- package/dist/src/model-gateway/providers/llamacpp/connection.d.ts +9 -0
- package/dist/src/model-gateway/providers/llamacpp/connection.js +73 -0
- package/dist/src/model-gateway/providers/llamacpp/diagnostics.d.ts +2 -0
- package/dist/src/model-gateway/providers/llamacpp/diagnostics.js +17 -0
- package/dist/src/model-gateway/providers/llamacpp/embeddings.d.ts +2 -0
- package/dist/src/model-gateway/providers/llamacpp/embeddings.js +56 -0
- package/dist/src/model-gateway/providers/llamacpp/input-token-count.d.ts +3 -0
- package/dist/src/model-gateway/providers/llamacpp/input-token-count.js +59 -0
- package/dist/src/model-gateway/providers/llamacpp/message-projection.d.ts +2 -0
- package/dist/src/model-gateway/providers/llamacpp/message-projection.js +33 -0
- package/dist/src/model-gateway/providers/llamacpp/payload.d.ts +2 -0
- package/dist/src/model-gateway/providers/llamacpp/payload.js +44 -0
- package/dist/src/model-gateway/providers/llamacpp/response-lifetime.d.ts +1 -0
- package/dist/src/model-gateway/providers/llamacpp/response-lifetime.js +56 -0
- package/dist/src/model-gateway/providers/llamacpp/schema-format.d.ts +2 -0
- package/dist/src/model-gateway/providers/llamacpp/schema-format.js +29 -0
- package/dist/src/model-gateway/providers/llamacpp/settings.d.ts +9 -0
- package/dist/src/model-gateway/providers/llamacpp/settings.js +25 -0
- package/dist/src/model-gateway/providers/llamacpp/stream-normalizer.d.ts +10 -0
- package/dist/src/model-gateway/providers/llamacpp/stream-normalizer.js +85 -0
- package/dist/src/model-gateway/providers/llamacpp/stream.d.ts +9 -0
- package/dist/src/model-gateway/providers/llamacpp/stream.js +33 -0
- package/dist/src/model-gateway/providers/openai/embeddings.js +2 -29
- package/dist/src/model-gateway/providers/openai/sse-data.d.ts +1 -9
- package/dist/src/model-gateway/providers/openai/sse-data.js +1 -67
- package/dist/src/model-gateway/providers/registry.js +2 -0
- package/dist/src/model-gateway/server/input-token-count-handler.js +10 -1
- package/dist/src/model-gateway/types.d.ts +11 -1
- package/dist/src/runtime/adapters/long-term-memory/onboarding-provider-availability.d.ts +4 -0
- package/dist/src/runtime/adapters/long-term-memory/onboarding-provider-availability.js +11 -0
- package/dist/src/runtime/adapters/long-term-memory/onboarding-service.js +28 -1
- package/dist/src/runtime/adapters/registered-tool-payload-related-artifacts.d.ts +1 -0
- package/dist/src/runtime/adapters/registered-tool-payload-related-artifacts.js +6 -1
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/contracts.d.ts +1 -0
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/execution.d.ts +1 -0
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/execution.js +2 -0
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-lifecycle.d.ts +1 -0
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-lifecycle.js +2 -0
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-stages.d.ts +1 -0
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-stages.js +1 -0
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities.js +1 -0
- package/dist/src/runtime/adapters/scheduler-runtime.js +2 -0
- package/dist/src/runtime/automations/agent-step-executor.js +1 -0
- package/dist/src/runtime/automations/catalog.d.ts +3 -0
- package/dist/src/runtime/automations/catalog.js +2 -0
- package/dist/src/runtime/automations/definition-contracts.d.ts +2 -0
- package/dist/src/runtime/automations/definition-input.js +3 -1
- package/dist/src/runtime/automations/draft-mutations.js +5 -1
- package/dist/src/runtime/automations/model-dependency-projection.d.ts +3 -1
- package/dist/src/runtime/automations/model-dependency-projection.js +4 -2
- package/dist/src/runtime/automations/publication-validation.js +7 -0
- package/dist/src/runtime/automations/saved-agent-management.js +1 -0
- package/dist/src/runtime/automations/service.d.ts +3 -0
- package/dist/src/runtime/capabilities/automation-builder/payload-schema.js +7 -5
- package/dist/src/runtime/capabilities/automations/authoring-catalog.d.ts +9 -0
- package/dist/src/runtime/capabilities/automations/authoring-catalog.js +1 -0
- package/dist/src/runtime/capabilities/automations/authoring-preparation.d.ts +3 -0
- package/dist/src/runtime/capabilities/automations/tool-contract.js +3 -2
- package/dist/src/runtime/capabilities/automations/tool-module.js +16 -7
- package/dist/src/runtime/capabilities/model-reasoning-controls.d.ts +23 -0
- package/dist/src/runtime/capabilities/model-reasoning-controls.js +56 -0
- package/dist/src/runtime/capabilities/scheduling/create-operations.js +2 -0
- package/dist/src/runtime/capabilities/scheduling/job-list-page.d.ts +1 -0
- package/dist/src/runtime/capabilities/scheduling/tool-module.js +5 -2
- package/dist/src/runtime/capabilities/scheduling/update-operations.js +2 -0
- package/dist/src/runtime/config/builders.js +6 -0
- package/dist/src/runtime/config/effective-model-config-validation.js +4 -0
- package/dist/src/runtime/config/llamacpp-profile-validation.d.ts +3 -0
- package/dist/src/runtime/config/llamacpp-profile-validation.js +15 -0
- package/dist/src/runtime/config/model-reasoning-schema.d.ts +40 -0
- package/dist/src/runtime/config/model-reasoning-schema.js +38 -0
- package/dist/src/runtime/config/model-reasoning-validation.d.ts +3 -0
- package/dist/src/runtime/config/model-reasoning-validation.js +37 -0
- package/dist/src/runtime/config/runner/step-instructions.d.ts +4 -0
- package/dist/src/runtime/config/runner/step-instructions.js +10 -6
- package/dist/src/runtime/config/schema.js +3 -0
- package/dist/src/runtime/config/validation/model-invocation-config-validation.js +14 -0
- package/dist/src/runtime/context/compacted-capability-result-receipt.d.ts +2 -0
- package/dist/src/runtime/context/compacted-capability-result-receipt.js +8 -7
- package/dist/src/runtime/context/execution-compacted-evidence.d.ts +4 -0
- package/dist/src/runtime/context/execution-compacted-evidence.js +2 -23
- package/dist/src/runtime/context/execution-compaction-checkpoint-selection.d.ts +19 -0
- package/dist/src/runtime/context/execution-compaction-checkpoint-selection.js +104 -0
- package/dist/src/runtime/context/model-step-compaction-inheritance.d.ts +12 -0
- package/dist/src/runtime/context/model-step-compaction-inheritance.js +28 -0
- package/dist/src/runtime/context/model-step-compaction-projection.d.ts +12 -0
- package/dist/src/runtime/context/model-step-compaction-projection.js +322 -0
- package/dist/src/runtime/context/model-step-compaction.d.ts +2 -1
- package/dist/src/runtime/context/model-step-compaction.js +25 -316
- package/dist/src/runtime/context/operation-supervision-compacted-evidence.js +7 -1
- package/dist/src/runtime/context/request-context.d.ts +2 -0
- package/dist/src/runtime/context/request-context.js +16 -0
- package/dist/src/runtime/context/request-tool-results-checkpoint.d.ts +2 -1
- package/dist/src/runtime/context/request-tool-results-checkpoint.js +35 -6
- package/dist/src/runtime/context/request-tool-results.js +3 -1
- package/dist/src/runtime/context/semantic-compaction/checkpoint-message.d.ts +5 -1
- package/dist/src/runtime/context/semantic-compaction/checkpoint-message.js +10 -4
- package/dist/src/runtime/context/semantic-compaction/execution-evidence-instructions.d.ts +4 -0
- package/dist/src/runtime/context/semantic-compaction/execution-evidence-instructions.js +38 -0
- package/dist/src/runtime/context/semantic-compaction/generation-contracts.d.ts +3 -1
- package/dist/src/runtime/context/semantic-compaction/generation-input.js +15 -10
- package/dist/src/runtime/context/semantic-compaction/inherited-source-digests.d.ts +8 -0
- package/dist/src/runtime/context/semantic-compaction/inherited-source-digests.js +76 -0
- package/dist/src/runtime/context/semantic-compaction/replacement-budget.js +3 -1
- package/dist/src/runtime/context/semantic-compaction/run.js +6 -12
- package/dist/src/runtime/knowledge-skills/builtins/computer-use.js +1 -1
- package/dist/src/runtime/knowledge-skills/builtins/technical-work.js +20 -2
- package/dist/src/runtime/knowledge-skills/builtins/what-can-i-do.d.ts +2 -0
- package/dist/src/runtime/knowledge-skills/builtins/what-can-i-do.js +27 -0
- package/dist/src/runtime/knowledge-skills/catalog.js +2 -0
- package/dist/src/runtime/local-application.d.ts +5 -0
- package/dist/src/runtime/local-host/app-service-dispatch.d.ts +1 -1
- package/dist/src/runtime/local-host/app-service-dispatch.js +2 -0
- package/dist/src/runtime/local-host/client-services.d.ts +5 -0
- package/dist/src/runtime/local-host/saved-approvals.js +1 -0
- package/dist/src/runtime/long-term-memory/onboarding/configuration.js +5 -7
- package/dist/src/runtime/long-term-memory/onboarding/contracts.d.ts +26 -0
- package/dist/src/runtime/long-term-memory/onboarding/embedding-profile-id.d.ts +1 -0
- package/dist/src/runtime/long-term-memory/onboarding/embedding-profile-id.js +8 -0
- package/dist/src/runtime/long-term-memory/onboarding/saved-profiles.d.ts +17 -0
- package/dist/src/runtime/long-term-memory/onboarding/saved-profiles.js +77 -0
- package/dist/src/runtime/long-term-memory/onboarding/service.js +40 -10
- package/dist/src/runtime/model/input-token-count.js +1 -0
- package/dist/src/runtime/model/invoke-step.js +12 -0
- package/dist/src/runtime/model/invoke-structured-step.d.ts +4 -1
- package/dist/src/runtime/model/invoke-structured-step.js +4 -0
- package/dist/src/runtime/model/model-catalog.d.ts +3 -0
- package/dist/src/runtime/model/model-catalog.js +2 -0
- package/dist/src/runtime/model/model-context-budget.d.ts +5 -0
- package/dist/src/runtime/model/model-context-budget.js +2 -0
- package/dist/src/runtime/model/model-step-port.d.ts +7 -0
- package/dist/src/runtime/model/optional-context-admission.d.ts +18 -0
- package/dist/src/runtime/model/optional-context-admission.js +23 -0
- package/dist/src/runtime/ports.d.ts +3 -1
- package/dist/src/runtime/projects/contracts.d.ts +6 -0
- package/dist/src/runtime/projects/registry-format.d.ts +3 -0
- package/dist/src/runtime/projects/registry-format.js +50 -0
- package/dist/src/runtime/projects/repository.d.ts +6 -3
- package/dist/src/runtime/projects/repository.js +26 -19
- package/dist/src/runtime/projects/service.js +11 -0
- package/dist/src/runtime/request/approval-wait/preflight.js +1 -0
- package/dist/src/runtime/request/approval-wait/snapshot.d.ts +1 -1
- package/dist/src/runtime/request/approval-wait/snapshot.js +1 -0
- package/dist/src/runtime/request/contracts.d.ts +5 -1
- package/dist/src/runtime/request/execution-facets.js +2 -0
- package/dist/src/runtime/request/execution-payload-artifact-policy.d.ts +3 -0
- package/dist/src/runtime/request/execution-payload-artifact-policy.js +6 -0
- package/dist/src/runtime/request/execution-payload-compacted-evidence.js +1 -0
- package/dist/src/runtime/request/execution-scope-surfaces.d.ts +2 -0
- package/dist/src/runtime/request/execution-scope-surfaces.js +3 -0
- package/dist/src/runtime/request/execution-scope.d.ts +2 -0
- package/dist/src/runtime/request/execution-scope.js +2 -0
- package/dist/src/runtime/request/input.d.ts +1 -0
- package/dist/src/runtime/request/input.js +1 -0
- package/dist/src/runtime/request/prepared-execution.d.ts +1 -0
- package/dist/src/runtime/request/prepared-execution.js +3 -0
- package/dist/src/runtime/request/reasoning-preference.d.ts +10 -0
- package/dist/src/runtime/request/reasoning-preference.js +29 -0
- package/dist/src/runtime/request/root-reference-action.js +3 -3
- package/dist/src/runtime/request/root-skill-read-admission.d.ts +4 -0
- package/dist/src/runtime/request/root-skill-read-admission.js +14 -0
- package/dist/src/runtime/request/root-skill-read.js +13 -5
- package/dist/src/runtime/request/supervisor-skill-selection-window.d.ts +16 -0
- package/dist/src/runtime/request/supervisor-skill-selection-window.js +17 -0
- package/dist/src/runtime/request/worker-capability-composition.js +2 -0
- package/dist/src/runtime/scheduler/contracts.d.ts +7 -1
- package/dist/src/runtime/scheduler/job-management.js +7 -1
- package/dist/src/runtime/scheduler/run-records.js +2 -0
- package/dist/src/runtime/scheduler/schedule-validation.js +2 -0
- package/dist/src/runtime/scheduler/scheduler-engine.js +1 -0
- package/dist/src/runtime/scheduler/snapshot-validation.js +2 -0
- package/dist/src/runtime/steps/auditor-decision/projection.js +2 -0
- package/dist/src/runtime/steps/execution-agent/capability-controls-partition.d.ts +9 -0
- package/dist/src/runtime/steps/execution-agent/capability-controls-partition.js +29 -0
- package/dist/src/runtime/steps/execution-agent/capability-scope.d.ts +17 -0
- package/dist/src/runtime/steps/execution-agent/capability-scope.js +54 -0
- package/dist/src/runtime/steps/execution-agent/compaction.js +22 -6
- package/dist/src/runtime/steps/execution-agent/controls-compacted-evidence.js +2 -0
- package/dist/src/runtime/steps/execution-agent/evidence-reuse-instructions.d.ts +6 -0
- package/dist/src/runtime/steps/execution-agent/evidence-reuse-instructions.js +13 -0
- package/dist/src/runtime/steps/execution-agent/format.js +3 -6
- package/dist/src/runtime/steps/execution-agent/input.d.ts +5 -1
- package/dist/src/runtime/steps/execution-agent/input.js +10 -36
- package/dist/src/runtime/steps/execution-agent/observation-guidance.d.ts +11 -0
- package/dist/src/runtime/steps/execution-agent/observation-guidance.js +33 -0
- package/dist/src/runtime/steps/execution-agent/prompt.js +2 -0
- package/dist/src/runtime/steps/execution-agent/refinement.d.ts +3 -2
- package/dist/src/runtime/steps/execution-agent/refinement.js +17 -6
- package/dist/src/runtime/steps/execution-agent/run.js +7 -1
- package/dist/src/runtime/steps/skill-read-decision.d.ts +1 -0
- package/dist/src/runtime/steps/skill-read-decision.js +9 -4
- package/dist/src/runtime/steps/supervisor-decision/artifact-paths.d.ts +6 -1
- package/dist/src/runtime/steps/supervisor-decision/artifact-paths.js +15 -0
- package/dist/src/runtime/steps/supervisor-decision/contracts.d.ts +1 -1
- package/dist/src/runtime/steps/supervisor-decision/contracts.js +2 -0
- package/dist/src/runtime/steps/supervisor-decision/decision-phases.d.ts +3 -0
- package/dist/src/runtime/steps/supervisor-decision/decision-phases.js +22 -3
- package/dist/src/runtime/steps/supervisor-decision/delegation-contract.d.ts +9 -0
- package/dist/src/runtime/steps/supervisor-decision/delegation-contract.js +82 -0
- package/dist/src/runtime/steps/supervisor-decision/delegation-input.d.ts +7 -0
- package/dist/src/runtime/steps/supervisor-decision/delegation-input.js +105 -0
- package/dist/src/runtime/steps/supervisor-decision/delegation-prompt.d.ts +7 -0
- package/dist/src/runtime/steps/supervisor-decision/delegation-prompt.js +13 -0
- package/dist/src/runtime/steps/supervisor-decision/input.d.ts +1 -0
- package/dist/src/runtime/steps/supervisor-decision/preparation-input.d.ts +3 -5
- package/dist/src/runtime/steps/supervisor-decision/preparation-input.js +5 -21
- package/dist/src/runtime/steps/supervisor-decision/preparation.d.ts +4 -1
- package/dist/src/runtime/steps/supervisor-decision/preparation.js +58 -6
- package/dist/src/runtime/steps/supervisor-decision/procedure-entry.d.ts +22 -0
- package/dist/src/runtime/steps/supervisor-decision/procedure-entry.js +61 -0
- package/dist/src/runtime/steps/supervisor-decision/procedure-gate.d.ts +39 -0
- package/dist/src/runtime/steps/supervisor-decision/procedure-gate.js +146 -0
- package/dist/src/runtime/steps/supervisor-decision/procedure-memory.d.ts +9 -0
- package/dist/src/runtime/steps/supervisor-decision/procedure-memory.js +100 -0
- package/dist/src/runtime/steps/supervisor-decision/procedure-recall.d.ts +10 -0
- package/dist/src/runtime/steps/supervisor-decision/procedure-recall.js +52 -0
- package/dist/src/runtime/steps/supervisor-decision/prompt.js +3 -16
- package/dist/src/runtime/steps/supervisor-decision/response-recommendation.js +2 -2
- package/dist/src/runtime/steps/supervisor-decision/role-guidance.d.ts +3 -0
- package/dist/src/runtime/steps/supervisor-decision/role-guidance.js +20 -0
- package/dist/src/runtime/steps/supervisor-decision/run.js +50 -7
- package/dist/src/runtime/steps/supervisor-decision/skill-read-state.d.ts +10 -0
- package/dist/src/runtime/steps/supervisor-decision/skill-read-state.js +45 -0
- package/dist/src/runtime/steps/supervisor-decision/skill-selection-candidates.d.ts +15 -0
- package/dist/src/runtime/steps/supervisor-decision/skill-selection-candidates.js +25 -0
- package/dist/src/runtime/steps/supervisor-decision/skill-selection-catalog.d.ts +3 -0
- package/dist/src/runtime/steps/supervisor-decision/skill-selection-catalog.js +15 -0
- package/dist/src/runtime/steps/supervisor-decision/skill-selection-continuation.d.ts +10 -0
- package/dist/src/runtime/steps/supervisor-decision/skill-selection-continuation.js +65 -0
- package/dist/src/runtime/steps/supervisor-decision/skill-selection-input.d.ts +3 -1
- package/dist/src/runtime/steps/supervisor-decision/skill-selection-input.js +20 -22
- package/dist/src/runtime/steps/supervisor-decision/skill-selection.d.ts +3 -2
- package/dist/src/runtime/steps/supervisor-decision/skill-selection.js +62 -15
- package/dist/src/runtime/steps/supervisor-response/prompt.js +18 -4
- package/dist/src/shared/model-reasoning-modes.d.ts +5 -0
- package/dist/src/shared/model-reasoning-modes.js +20 -0
- package/dist/src/shared/model-reasoning-schema.d.ts +38 -0
- package/dist/src/shared/model-reasoning-schema.js +29 -0
- package/dist/src/shared/model-reasoning.d.ts +35 -0
- package/dist/src/shared/model-reasoning.js +100 -0
- package/dist/src/web-ui/app/ARCHITECTURE.md +13 -0
- package/dist/src/web-ui/app/app-bootstrap.js +9 -12
- package/dist/src/web-ui/app/app-dom.js +6 -1
- package/dist/src/web-ui/app/app-state.js +1 -0
- package/dist/src/web-ui/app/app.js +8 -3
- package/dist/src/web-ui/app/appearance-feature.js +28 -0
- package/dist/src/web-ui/app/automations-feature.js +20 -11
- package/dist/src/web-ui/app/components/appearance-dialog.js +79 -0
- package/dist/src/web-ui/app/components/automations/archive-actions.js +5 -3
- package/dist/src/web-ui/app/components/automations/authoring-entry.js +26 -7
- package/dist/src/web-ui/app/components/automations/confirmation-actions.js +78 -0
- package/dist/src/web-ui/app/components/automations/draft-recovery-actions.js +1 -0
- package/dist/src/web-ui/app/components/automations/node-inspector.js +5 -1
- package/dist/src/web-ui/app/components/automations/step-editor-dialog.js +4 -2
- package/dist/src/web-ui/app/components/automations/timeline.js +2 -2
- package/dist/src/web-ui/app/components/automations/workspace-navigation.js +37 -0
- package/dist/src/web-ui/app/components/automations/workspace.js +31 -46
- package/dist/src/web-ui/app/components/config-workspace/config-model.js +6 -0
- package/dist/src/web-ui/app/components/config-workspace/model-removal.js +4 -2
- package/dist/src/web-ui/app/components/config-workspace/model-rendering.js +8 -16
- package/dist/src/web-ui/app/components/config-workspace/reasoning-budget-edit.js +113 -0
- package/dist/src/web-ui/app/components/config-workspace/reasoning-budget.d.ts +16 -0
- package/dist/src/web-ui/app/components/config-workspace/reasoning-budget.js +67 -0
- package/dist/src/web-ui/app/components/config-workspace/reasoning-mode-budgets.d.ts +7 -0
- package/dist/src/web-ui/app/components/config-workspace/reasoning-mode-budgets.js +25 -0
- package/dist/src/web-ui/app/components/config-workspace/workspace-events.js +15 -7
- package/dist/src/web-ui/app/components/config-workspace/workspace-mutations.js +32 -12
- package/dist/src/web-ui/app/components/config-workspace/workspace-persistence.js +1 -1
- package/dist/src/web-ui/app/components/config-workspace.js +2 -1
- package/dist/src/web-ui/app/components/confirmation-dialog.js +88 -0
- package/dist/src/web-ui/app/components/conversation-activity.d.ts +2 -0
- package/dist/src/web-ui/app/components/conversation-activity.js +32 -3
- package/dist/src/web-ui/app/components/conversation-memory-activity.js +31 -0
- package/dist/src/web-ui/app/components/conversation-role-cards.d.ts +2 -0
- package/dist/src/web-ui/app/components/conversation-role-cards.js +14 -11
- package/dist/src/web-ui/app/components/conversation-skill-activity.js +67 -0
- package/dist/src/web-ui/app/components/conversation-tools.js +5 -5
- package/dist/src/web-ui/app/components/conversation-view.js +6 -0
- package/dist/src/web-ui/app/components/dashboard/approvals.js +13 -1
- package/dist/src/web-ui/app/components/long-term-memory/embedding-connection-dialog.d.ts +38 -0
- package/dist/src/web-ui/app/components/long-term-memory/embedding-connection-dialog.js +289 -0
- package/dist/src/web-ui/app/components/long-term-memory/embedding-connection-feature.js +75 -0
- package/dist/src/web-ui/app/components/long-term-memory/embedding-connection-rendering.js +31 -0
- package/dist/src/web-ui/app/components/long-term-memory/manager.js +15 -5
- package/dist/src/web-ui/app/components/long-term-memory/saved-embedding-profiles.js +114 -0
- package/dist/src/web-ui/app/components/long-term-memory/setup-rendering.js +55 -0
- package/dist/src/web-ui/app/components/long-term-memory-setup.js +141 -76
- package/dist/src/web-ui/app/components/model-setup/rendering.js +3 -2
- package/dist/src/web-ui/app/components/model-setup/validation.js +6 -2
- package/dist/src/web-ui/app/components/model-setup/wizard.d.ts +1 -0
- package/dist/src/web-ui/app/components/model-setup/wizard.js +28 -5
- package/dist/src/web-ui/app/components/passive-learning/memory.js +12 -5
- package/dist/src/web-ui/app/components/plugins/manager.js +14 -0
- package/dist/src/web-ui/app/components/plugins/removal.js +10 -2
- package/dist/src/web-ui/app/components/project-group-actions.js +35 -0
- package/dist/src/web-ui/app/components/project-session-groups.js +17 -31
- package/dist/src/web-ui/app/components/runtime-setup/commands.js +1 -1
- package/dist/src/web-ui/app/components/runtime-setup/connection-form.d.ts +15 -0
- package/dist/src/web-ui/app/components/runtime-setup/connection-form.js +32 -9
- package/dist/src/web-ui/app/components/runtime-setup/connection-input.js +23 -0
- package/dist/src/web-ui/app/components/runtime-setup/connection-inspection.js +57 -0
- package/dist/src/web-ui/app/components/runtime-setup/connection-state.js +18 -4
- package/dist/src/web-ui/app/components/runtime-setup/embedding-credential-status.js +3 -0
- package/dist/src/web-ui/app/components/runtime-setup/embedding-provider-options.js +54 -0
- package/dist/src/web-ui/app/components/runtime-setup/embedding-provider-receipt.js +3 -0
- package/dist/src/web-ui/app/components/runtime-setup/embedding-rendering.js +22 -22
- package/dist/src/web-ui/app/components/runtime-setup/embedding.js +60 -16
- package/dist/src/web-ui/app/components/runtime-setup/reasoning-fields.d.ts +17 -0
- package/dist/src/web-ui/app/components/runtime-setup/reasoning-fields.js +54 -0
- package/dist/src/web-ui/app/components/runtime-setup/validation.js +5 -1
- package/dist/src/web-ui/app/components/runtime-setup-guide.d.ts +9 -3
- package/dist/src/web-ui/app/components/runtime-setup-guide.js +20 -29
- package/dist/src/web-ui/app/components/schedules/details.js +2 -2
- package/dist/src/web-ui/app/components/schedules/form.js +12 -5
- package/dist/src/web-ui/app/components/schedules/workspace.js +30 -18
- package/dist/src/web-ui/app/components/session-list-viewport.js +49 -0
- package/dist/src/web-ui/app/components/session-search-disclosure.js +27 -0
- package/dist/src/web-ui/app/components/skills/workspace.js +7 -3
- package/dist/src/web-ui/app/components/spark-chat/panel.js +7 -3
- package/dist/src/web-ui/app/components/spark-chat/settings.js +57 -15
- package/dist/src/web-ui/app/components/tool-approval-card.d.ts +2 -1
- package/dist/src/web-ui/app/components/tool-approval-card.js +10 -2
- package/dist/src/web-ui/app/components/tool-approval-rejection-input.js +116 -0
- package/dist/src/web-ui/app/components/workspace-shell.js +30 -38
- package/dist/src/web-ui/app/components/workspace-transitions.js +42 -0
- package/dist/src/web-ui/app/configuration-feature.js +34 -4
- package/dist/src/web-ui/app/controllers/app-event-bindings.js +45 -29
- package/dist/src/web-ui/app/controllers/appearance-controller.js +105 -0
- package/dist/src/web-ui/app/controllers/automations-controller.js +9 -1
- package/dist/src/web-ui/app/controllers/composer-feature.d.ts +1 -1
- package/dist/src/web-ui/app/controllers/composer-feature.js +10 -3
- package/dist/src/web-ui/app/controllers/composer-queue-controller.d.ts +1 -1
- package/dist/src/web-ui/app/controllers/composer-queue-controller.js +9 -3
- package/dist/src/web-ui/app/controllers/composer-submission-lifecycle.d.ts +1 -1
- package/dist/src/web-ui/app/controllers/conversation-workspace-activation.js +8 -2
- package/dist/src/web-ui/app/controllers/dashboard-approvals-controller.js +10 -9
- package/dist/src/web-ui/app/controllers/environment-transition.js +2 -2
- package/dist/src/web-ui/app/controllers/environment-workspace-preparation.js +9 -7
- package/dist/src/web-ui/app/controllers/preference-view-sync.js +35 -0
- package/dist/src/web-ui/app/controllers/projects-controller.d.ts +4 -0
- package/dist/src/web-ui/app/controllers/projects-controller.js +64 -3
- package/dist/src/web-ui/app/controllers/reasoning-budget-controller.d.ts +17 -0
- package/dist/src/web-ui/app/controllers/reasoning-budget-controller.js +80 -0
- package/dist/src/web-ui/app/controllers/reasoning-budget-menu-events.js +45 -0
- package/dist/src/web-ui/app/controllers/reasoning-mode-controller.js +35 -40
- package/dist/src/web-ui/app/controllers/runtime-selection-controller.d.ts +6 -1
- package/dist/src/web-ui/app/controllers/runtime-selection-controller.js +16 -3
- package/dist/src/web-ui/app/controllers/session-controller.js +34 -9
- package/dist/src/web-ui/app/controllers/session-sidebar-controller.js +4 -3
- package/dist/src/web-ui/app/controllers/skills-controller.js +33 -16
- package/dist/src/web-ui/app/controllers/spark-chat-sync.js +1 -1
- package/dist/src/web-ui/app/controllers/spark-handoff-navigation.js +7 -1
- package/dist/src/web-ui/app/controllers/tool-approval-controller.d.ts +2 -1
- package/dist/src/web-ui/app/controllers/tool-approval-controller.js +36 -3
- package/dist/src/web-ui/app/controllers/workspace-conversation-opener.js +8 -2
- package/dist/src/web-ui/app/controllers/workspace-route-controller.js +41 -10
- package/dist/src/web-ui/app/index.html +38 -32
- package/dist/src/web-ui/app/lib/color-palettes.d.ts +17 -0
- package/dist/src/web-ui/app/lib/color-palettes.js +20 -0
- package/dist/src/web-ui/app/lib/memory-activity-model.d.ts +12 -0
- package/dist/src/web-ui/app/lib/memory-activity-model.js +61 -0
- package/dist/src/web-ui/app/lib/navigation-display.d.ts +8 -0
- package/dist/src/web-ui/app/lib/navigation-display.js +12 -0
- package/dist/src/web-ui/app/lib/reasoning-controls.js +47 -6
- package/dist/src/web-ui/app/lib/reasoning-preference.d.ts +9 -0
- package/dist/src/web-ui/app/lib/reasoning-preference.js +75 -0
- package/dist/src/web-ui/app/lib/session-composer-queue.d.ts +4 -0
- package/dist/src/web-ui/app/lib/session-composer-queue.js +4 -0
- package/dist/src/web-ui/app/lib/session-project-groups.js +28 -0
- package/dist/src/web-ui/app/lib/session-sidebar-order.js +7 -5
- package/dist/src/web-ui/app/lib/tool-activity-event.d.ts +1 -0
- package/dist/src/web-ui/app/lib/tool-activity-event.js +1 -0
- package/dist/src/web-ui/app/lib/tool-activity-model.d.ts +1 -0
- package/dist/src/web-ui/app/lib/tool-activity-model.js +1 -0
- package/dist/src/web-ui/app/lib/tool-approval-rejection-drafts.js +45 -0
- package/dist/src/web-ui/app/lib/tool-skill-activity-fields.js +1 -1
- package/dist/src/web-ui/app/notifications-feature.js +10 -2
- package/dist/src/web-ui/app/passive-learning-feature.js +2 -2
- package/dist/src/web-ui/app/projects-feature.js +40 -10
- package/dist/src/web-ui/app/runtime-onboarding-feature.js +1 -0
- package/dist/src/web-ui/app/schedules-feature.js +28 -5
- package/dist/src/web-ui/app/services/client-preferences.d.ts +4 -1
- package/dist/src/web-ui/app/services/client-preferences.js +2 -0
- package/dist/src/web-ui/app/services/conversation-reasoning-preferences.d.ts +11 -0
- package/dist/src/web-ui/app/services/conversation-reasoning-preferences.js +30 -0
- package/dist/src/web-ui/app/services/runtime-web-client/automations.js +6 -4
- package/dist/src/web-ui/app/services/runtime-web-client/configuration.js +5 -0
- package/dist/src/web-ui/app/services/runtime-web-client/memory.js +21 -0
- package/dist/src/web-ui/app/services/runtime-web-client/projects.d.ts +2 -1
- package/dist/src/web-ui/app/services/runtime-web-client/projects.js +4 -0
- package/dist/src/web-ui/app/services/runtime-web-client/tool-approvals.js +2 -0
- package/dist/src/web-ui/app/services/runtime-web-client.d.ts +16 -0
- package/dist/src/web-ui/app/services/runtime-web-client.js +2 -0
- package/dist/src/web-ui/app/services/session-sidebar-preferences.js +33 -13
- package/dist/src/web-ui/app/skills-feature.js +2 -3
- package/dist/src/web-ui/app/spark-chat-conversation.js +29 -3
- package/dist/src/web-ui/app/spark-chat-feature.js +13 -7
- package/dist/src/web-ui/app/styles/01-color-palettes.css +90 -0
- package/dist/src/web-ui/app/styles/11-product-links.css +6 -2
- package/dist/src/web-ui/app/styles/11-workspace-header-width.css +37 -25
- package/dist/src/web-ui/app/styles/12-conversation-sidebar.css +56 -22
- package/dist/src/web-ui/app/styles/13-projects.css +56 -19
- package/dist/src/web-ui/app/styles/19-runtime-setup.css +16 -0
- package/dist/src/web-ui/app/styles/22-reasoning-budget.css +39 -0
- package/dist/src/web-ui/app/styles/27-conversation-memory.css +45 -0
- package/dist/src/web-ui/app/styles/27-conversation-skills.css +96 -0
- package/dist/src/web-ui/app/styles/28-tool-approval-card.css +38 -1
- package/dist/src/web-ui/app/styles/35-embedding-profiles.css +159 -0
- package/dist/src/web-ui/app/styles/54-spark-chat.css +62 -46
- package/dist/src/web-ui/app/styles/65-appearance.css +60 -0
- package/dist/src/web-ui/app/styles/66-navigation-display.css +30 -0
- package/dist/src/web-ui/app/styles/67-confirmation-dialog.css +32 -0
- package/dist/src/web-ui/app/styles.css +8 -0
- package/dist/src/web-ui/client-state/preference-shapes.js +6 -1
- package/dist/src/web-ui/client-state/preferences.js +8 -2
- package/dist/src/web-ui/client-state/reasoning-preference-shape.d.ts +1 -0
- package/dist/src/web-ui/client-state/reasoning-preference-shape.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 +11 -0
- package/dist/src/web-ui/local-runtime/memory-embedding-connection-input.d.ts +7 -0
- package/dist/src/web-ui/local-runtime/memory-embedding-connection-input.js +22 -0
- package/dist/src/web-ui/local-runtime/memory-embedding-connection-service.d.ts +20 -0
- package/dist/src/web-ui/local-runtime/memory-embedding-connection-service.js +47 -0
- package/dist/src/web-ui/local-runtime/memory-onboarding-routes.js +32 -0
- package/dist/src/web-ui/local-runtime/model-connection-inspection.d.ts +7 -0
- package/dist/src/web-ui/local-runtime/model-connection-inspection.js +48 -0
- package/dist/src/web-ui/local-runtime/model-setup-catalog.d.ts +2 -1
- package/dist/src/web-ui/local-runtime/model-setup-catalog.js +3 -1
- package/dist/src/web-ui/local-runtime/model-setup-identity.js +1 -1
- package/dist/src/web-ui/local-runtime/model-setup-input.d.ts +5 -2
- package/dist/src/web-ui/local-runtime/model-setup-input.js +29 -6
- package/dist/src/web-ui/local-runtime/model-setup-provider.d.ts +1 -1
- package/dist/src/web-ui/local-runtime/model-setup-provider.js +9 -6
- package/dist/src/web-ui/local-runtime/model-setup-retry.js +4 -1
- package/dist/src/web-ui/local-runtime/model-setup-service.d.ts +2 -1
- package/dist/src/web-ui/local-runtime/pending-tool-approvals.js +4 -1
- package/dist/src/web-ui/local-runtime/project-routes.js +10 -2
- package/dist/src/web-ui/local-runtime/request-execution.js +1 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-auth.d.ts +2 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-auth.js +20 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-connection-edit.js +3 -2
- package/dist/src/web-ui/local-runtime/runtime-setup-credential-completion.js +6 -1
- package/dist/src/web-ui/local-runtime/runtime-setup-input.d.ts +3 -2
- package/dist/src/web-ui/local-runtime/runtime-setup-input.js +17 -5
- package/dist/src/web-ui/local-runtime/runtime-setup-provider.d.ts +4 -1
- package/dist/src/web-ui/local-runtime/runtime-setup-provider.js +6 -2
- package/dist/src/web-ui/local-runtime/runtime-setup-routes.d.ts +11 -2
- package/dist/src/web-ui/local-runtime/runtime-setup-routes.js +11 -2
- package/dist/src/web-ui/local-runtime/runtime-setup-scaffold.js +3 -2
- package/dist/src/web-ui/local-runtime/runtime-setup-service.d.ts +25 -4
- package/dist/src/web-ui/local-runtime/runtime-setup-service.js +19 -9
- package/dist/src/web-ui/local-runtime/setup-embedding-input.d.ts +3 -1
- package/dist/src/web-ui/local-runtime/setup-embedding-input.js +38 -6
- package/dist/src/web-ui/local-runtime/setup-embedding-llamacpp.d.ts +11 -0
- package/dist/src/web-ui/local-runtime/setup-embedding-llamacpp.js +53 -0
- package/dist/src/web-ui/local-runtime/setup-embedding-provider.js +23 -9
- package/dist/src/web-ui/local-runtime/setup-embedding-routes.d.ts +7 -2
- package/dist/src/web-ui/local-runtime/setup-embedding-routes.js +5 -3
- package/dist/src/web-ui/local-runtime/setup-embedding-service.d.ts +1 -0
- package/docs/configuration.md +10 -8
- package/docs/installation.md +11 -5
- package/docs/llamacpp.md +248 -0
- package/docs/long-term-memory.md +12 -0
- package/docs/running-locally.md +7 -1
- package/package.json +2 -1
- package/plugins/project-orientation/source/index.ts +2 -3
- package/plugins/project-orientation/source/inspection-failure.ts +1 -1
- package/plugins/project-orientation/source/project-target.ts +29 -0
- package/plugins/project-orientation/src/index.cjs +21 -2
- package/runtime.config.schema.json +140 -0
- package/src/runtime/README.md +50 -4
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { KnowledgeSkillStore } from "../knowledge-skills/store.js";
|
|
2
2
|
import type { SuperFailureFinalization } from "./super-failure-explanation.js";
|
|
3
|
+
import type { SupervisorSkillSelectionWindows } from "./supervisor-skill-selection-window.js";
|
|
3
4
|
import type { RequestModelStepPort } from "../model/model-step-port.js";
|
|
4
5
|
import { type RequestExecutionSeed, type RequestModelInvocationView } from "./contracts.js";
|
|
5
6
|
import type { RequestSeedFacets } from "./execution-facets.js";
|
|
@@ -15,4 +16,5 @@ export declare function createScopeSurface(input: Readonly<{
|
|
|
15
16
|
capabilities: RequestWorkerCapabilities;
|
|
16
17
|
knowledgeSkillStore?: KnowledgeSkillStore;
|
|
17
18
|
superFailureFinalization?: SuperFailureFinalization | undefined;
|
|
19
|
+
supervisorSkillSelectionWindows: SupervisorSkillSelectionWindows;
|
|
18
20
|
}>): RequestExecutionScope;
|
|
@@ -14,6 +14,7 @@ export function createCapabilityCompositionView(facets, modelSteps) {
|
|
|
14
14
|
requestId: enumerableGetter(() => facets.identity.requestId),
|
|
15
15
|
runnerConfig: enumerableGetter(() => facets.model.runnerConfig),
|
|
16
16
|
agentMode: enumerableGetter(() => facets.input.agentMode),
|
|
17
|
+
...(facets.model.reasoningPreference ? { reasoningPreference: enumerableGetter(() => facets.model.reasoningPreference) } : {}),
|
|
17
18
|
...(facets.model.modelPreference !== undefined
|
|
18
19
|
? {
|
|
19
20
|
modelPreference: enumerableGetter(() => facets.model.modelPreference),
|
|
@@ -113,6 +114,7 @@ export function createScopeSurface(input) {
|
|
|
113
114
|
policy: hiddenValue(policy),
|
|
114
115
|
modelInvocation: hiddenValue(modelInvocation),
|
|
115
116
|
capabilities: hiddenValue(capabilities),
|
|
117
|
+
supervisorSkillSelectionWindows: hiddenValue(input.supervisorSkillSelectionWindows),
|
|
116
118
|
...(input.knowledgeSkillStore ? { knowledgeSkillStore: hiddenValue(input.knowledgeSkillStore) } : {}),
|
|
117
119
|
...(input.superFailureFinalization
|
|
118
120
|
? {
|
|
@@ -167,6 +169,7 @@ function requestSeedDescriptors(facets, executionPolicySelection, includeSession
|
|
|
167
169
|
automationOutputContract: enumerableGetter(() => facets.input.automationOutputContract),
|
|
168
170
|
}
|
|
169
171
|
: {}),
|
|
172
|
+
...(facets.model.reasoningPreference ? { reasoningPreference: enumerableGetter(() => facets.model.reasoningPreference) } : {}),
|
|
170
173
|
...(facets.model.modelPreference !== undefined
|
|
171
174
|
? {
|
|
172
175
|
modelPreference: enumerableGetter(() => facets.model.modelPreference),
|
|
@@ -6,6 +6,7 @@ import type { ToolAvailabilitySource } from "../capabilities/tool-availability.j
|
|
|
6
6
|
import type { WorkerCapabilityAdapterProvider } from "../orchestration/worker-capabilities/index.js";
|
|
7
7
|
import type { AcceptedRequestInput, BoundRequestModelInvocationContext, RequestSessionSnapshot, RequestExecutionSeed, RequestIdentity, RequestLifecycleRuntime, RequestModelInvocationView, RequestModelRuntime, RequestMemoryRuntime, RequestPresentation } from "./contracts.js";
|
|
8
8
|
import type { CompiledExecutionPolicy } from "./root-contract.js";
|
|
9
|
+
import { type SupervisorSkillSelectionWindows } from "./supervisor-skill-selection-window.js";
|
|
9
10
|
/** Request fields required while the request-bound capability catalog is built. */
|
|
10
11
|
export type RequestCapabilityCompositionView = BoundRequestModelInvocationContext & Readonly<Pick<RequestExecutionSeed, "sessionId" | "prompt" | "historyMessages" | "sessionMemory" | "attachments" | "toolPermissionMode" | "toolApprovalController" | "effectPersistence" | "onEvent" | "contextCompactionStore">>;
|
|
11
12
|
/**
|
|
@@ -38,6 +39,7 @@ export type RequestExecutionScope = RequestExecutionSeed & BoundRequestModelInvo
|
|
|
38
39
|
superFailureFinalization?: SuperFailureFinalization;
|
|
39
40
|
workerCapabilities: RequestWorkerCapabilities;
|
|
40
41
|
knowledgeSkillStore?: KnowledgeSkillStore;
|
|
42
|
+
supervisorSkillSelectionWindows: SupervisorSkillSelectionWindows;
|
|
41
43
|
}>;
|
|
42
44
|
export type CompiledRequestExecutionPolicy = RequestExecutionScope["executionPolicy"];
|
|
43
45
|
export type RequestWorkerCapabilityProviderSource = Pick<RequestExecutionScope, "workerCapabilities">;
|
|
@@ -6,6 +6,7 @@ import { createSuperFailureFinalization, } from "./super-failure-explanation.js"
|
|
|
6
6
|
import { RequestModelStepInvoker } from "../model/invoke-step.js";
|
|
7
7
|
import { createModelInvocationView, createRequestSeedFacets, } from "./execution-facets.js";
|
|
8
8
|
import { createCapabilityCompositionView, createCapabilityExecutionView, createScopeSurface, REQUEST_EXECUTION_SCOPE, } from "./execution-scope-surfaces.js";
|
|
9
|
+
import { createSupervisorSkillSelectionWindows } from "./supervisor-skill-selection-window.js";
|
|
9
10
|
export function createRequestExecutionScope(input) {
|
|
10
11
|
const facets = createRequestSeedFacets(input.seed);
|
|
11
12
|
const policy = createRequestExecutionPolicyFacet(input.seed.executionPolicySelection, input.executionPolicy);
|
|
@@ -25,6 +26,7 @@ export function createRequestExecutionScope(input) {
|
|
|
25
26
|
modelInvocation,
|
|
26
27
|
modelSteps,
|
|
27
28
|
capabilities,
|
|
29
|
+
supervisorSkillSelectionWindows: createSupervisorSkillSelectionWindows(),
|
|
28
30
|
...(input.knowledgeSkillStore && !isSkillStoreDeniedForModel(input.seed)
|
|
29
31
|
? { knowledgeSkillStore: input.knowledgeSkillStore }
|
|
30
32
|
: {}),
|
|
@@ -11,6 +11,7 @@ export function parseRequestInput(msg) {
|
|
|
11
11
|
rawAttachments: msg.attachments,
|
|
12
12
|
rawAgentMode: msg.agentMode,
|
|
13
13
|
rawModelPreference: msg.modelPreference,
|
|
14
|
+
rawReasoningPreference: msg.reasoningPreference,
|
|
14
15
|
toolPermissionMode: resolveToolPermissionMode(msg.toolPermissionMode),
|
|
15
16
|
};
|
|
16
17
|
}
|
|
@@ -47,6 +47,7 @@ export declare function prepareRequestExecution(params: RequestPreparationInput)
|
|
|
47
47
|
attachments?: import("../../model-gateway/types.js").ModelGatewayAttachment[];
|
|
48
48
|
agentMode: AgentMode;
|
|
49
49
|
modelPreference?: import("../../model-gateway/types.js").ModelPreference;
|
|
50
|
+
reasoningPreference?: import("../../shared/model-reasoning.js").ModelReasoningPreference;
|
|
50
51
|
modelPolicy?: import("../../model-gateway/types.js").ModelGatewayPolicyConfig;
|
|
51
52
|
modelGatewayClient: Pick<import("../ports.js").ModelGatewayClient, "invoke" | "invokeRaw" | "countInputTokens">;
|
|
52
53
|
contextCompactionStore?: import("../context/semantic-compaction/store.js").RequestContextCompactionStore;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { captureRequestReasoningPreference } from "./reasoning-preference.js";
|
|
1
2
|
import { bindRequestWorkingDirectory } from "../capabilities/request-working-directory.js";
|
|
2
3
|
import { createRuntimeToolPathResolver } from "../capabilities/runtime-target-path.js";
|
|
3
4
|
import { isSparkSession } from "../../sessions/spark-session.js";
|
|
@@ -35,6 +36,7 @@ export async function prepareRequestExecution(params) {
|
|
|
35
36
|
? { modelExecutionPolicies: loaded.modelExecutionPolicies }
|
|
36
37
|
: {}),
|
|
37
38
|
});
|
|
39
|
+
const reasoningPreference = captureRequestReasoningPreference(input.rawReasoningPreference, selection);
|
|
38
40
|
const executionPolicy = resolveRequestExecutionPolicy(resume?.snapshot.seed.executionPolicySelection?.policy ??
|
|
39
41
|
selection.execution.policy);
|
|
40
42
|
params.onFailurePolicyReady?.(executionPolicy);
|
|
@@ -127,6 +129,7 @@ export async function prepareRequestExecution(params) {
|
|
|
127
129
|
executionPolicySelection: selection.execution,
|
|
128
130
|
...(modelAttachments?.length ? { attachments: modelAttachments } : {}),
|
|
129
131
|
agentMode: selection.agentMode,
|
|
132
|
+
...(reasoningPreference ? { reasoningPreference } : {}),
|
|
130
133
|
...(selection.modelPreference
|
|
131
134
|
? { modelPreference: selection.modelPreference }
|
|
132
135
|
: {}),
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type ModelReasoningPreference } from "../../shared/model-reasoning.js";
|
|
2
|
+
import type { ModelGatewayPolicyConfig, ModelPreference } from "../../model-gateway/types.js";
|
|
3
|
+
/** Validate before session admission or tool effects; never infer a new model. */
|
|
4
|
+
export declare function captureRequestReasoningPreference(value: unknown, selection: {
|
|
5
|
+
modelPreference?: ModelPreference;
|
|
6
|
+
modelPolicy?: ModelGatewayPolicyConfig;
|
|
7
|
+
execution: {
|
|
8
|
+
primaryProfileId?: string;
|
|
9
|
+
};
|
|
10
|
+
}): ModelReasoningPreference | undefined;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { resolveProfileCandidate } from "../../shared/invocation-profile-selection.js";
|
|
2
|
+
import { ModelReasoningConfigurationError, parseModelReasoningPreference, supportsModelReasoningBudget, } from "../../shared/model-reasoning.js";
|
|
3
|
+
/** Validate before session admission or tool effects; never infer a new model. */
|
|
4
|
+
export function captureRequestReasoningPreference(value, selection) {
|
|
5
|
+
const preference = parseModelReasoningPreference(value);
|
|
6
|
+
if (!preference)
|
|
7
|
+
return undefined;
|
|
8
|
+
const requestedId = selection.modelPreference?.profileId;
|
|
9
|
+
const selectedId = requestedId
|
|
10
|
+
? resolveProfileCandidate({
|
|
11
|
+
profileId: requestedId,
|
|
12
|
+
policy: selection.modelPolicy,
|
|
13
|
+
source: "clientPreference",
|
|
14
|
+
resolveProfile: (id, policy) => policy?.profiles?.[id],
|
|
15
|
+
})?.profileId ?? requestedId
|
|
16
|
+
: selection.execution.primaryProfileId;
|
|
17
|
+
if (selectedId !== preference.profileId) {
|
|
18
|
+
throw new ModelReasoningConfigurationError("reasoning_preference_profile_mismatch", "reasoning preference must bind the requested model profile");
|
|
19
|
+
}
|
|
20
|
+
const profile = selection.modelPolicy?.profiles?.[preference.profileId];
|
|
21
|
+
const provider = profile?.provider ? selection.modelPolicy?.providers?.[profile.provider] : undefined;
|
|
22
|
+
if (!supportsModelReasoningBudget({
|
|
23
|
+
provider: provider?.type ?? "",
|
|
24
|
+
supportsThinking: profile?.supportsThinking,
|
|
25
|
+
})) {
|
|
26
|
+
throw new ModelReasoningConfigurationError("reasoning_budget_unsupported", `profile ${preference.profileId} does not declare numeric reasoning controls`);
|
|
27
|
+
}
|
|
28
|
+
return preference;
|
|
29
|
+
}
|
|
@@ -15,13 +15,13 @@ export async function performRootReferenceAction(request, ledger, activation, re
|
|
|
15
15
|
};
|
|
16
16
|
if (params.decision.action === "recall_memory") {
|
|
17
17
|
await performRootMemoryRecall({ ...params, query: params.decision.query });
|
|
18
|
-
return params.resume;
|
|
18
|
+
return projectResumeAfterRootReferenceAction(params.ledger.current(), params.resume);
|
|
19
19
|
}
|
|
20
20
|
await performRootSkillRead({ ...params, decision: params.decision });
|
|
21
|
-
return
|
|
21
|
+
return projectResumeAfterRootReferenceAction(params.ledger.current(), params.resume);
|
|
22
22
|
}
|
|
23
23
|
/** A reference read advances the root activation without changing its completed children. */
|
|
24
|
-
function
|
|
24
|
+
function projectResumeAfterRootReferenceAction(head, resume) {
|
|
25
25
|
if (!resume)
|
|
26
26
|
return undefined;
|
|
27
27
|
const call = head.state.calls.find(({ callId }) => callId === resume.callerCallId);
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { RoleCallLedgerHead } from "../orchestration/role-calls/index.js";
|
|
2
|
+
import type { SkillReadDecision } from "../steps/skill-read-decision.js";
|
|
3
|
+
/** Enforce request-local read identity before any document lookup or ledger commit. */
|
|
4
|
+
export declare function assertRootSkillReadAdmission(head: RoleCallLedgerHead, decision: SkillReadDecision): void;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { collectSuccessfulSkillReadIdentities } from "../steps/supervisor-decision/skill-read-state.js";
|
|
2
|
+
/** Enforce request-local read identity before any document lookup or ledger commit. */
|
|
3
|
+
export function assertRootSkillReadAdmission(head, decision) {
|
|
4
|
+
if (decision.action !== "read_skills")
|
|
5
|
+
return;
|
|
6
|
+
const hasRepeatedRootSkillReadIds = new Set(decision.skillIds).size !== decision.skillIds.length;
|
|
7
|
+
if (hasRepeatedRootSkillReadIds)
|
|
8
|
+
throw new Error("skill_read_duplicate_ids");
|
|
9
|
+
const completedIds = new Set(collectSuccessfulSkillReadIdentities(head.state.skillReads ?? [])
|
|
10
|
+
.map(({ skillId }) => skillId));
|
|
11
|
+
const repeatsCompletedRootSkillRead = decision.skillIds.some((skillId) => completedIds.has(skillId));
|
|
12
|
+
if (repeatsCompletedRootSkillRead)
|
|
13
|
+
throw new Error("skill_read_already_completed");
|
|
14
|
+
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { findRoleActivationReservationIssue, resolveRoleActivationBudget, } from "../orchestration/role-calls/activation-budget.js";
|
|
2
2
|
import { hasSuperContextContract } from "../context/super-context-policy.js";
|
|
3
3
|
import { KnowledgeSkillError } from "../knowledge-skills/personal-contracts.js";
|
|
4
|
-
import { resolveKnowledgeSkillReadTargets } from "../capabilities/knowledge-skills/read-targets.js";
|
|
5
4
|
import { emitRuntimeStatus } from "../events/runtime-status.js";
|
|
6
5
|
import { resolveRequestSteeringInbox } from "./request-steering.js";
|
|
6
|
+
import { assertRootSkillReadAdmission } from "./root-skill-read-admission.js";
|
|
7
7
|
/** Read synchronously, then commit the exact snapshot and the next root activation together. */
|
|
8
8
|
export async function performRootSkillRead(params) {
|
|
9
9
|
const { request, head, call } = params;
|
|
@@ -29,6 +29,7 @@ export async function performRootSkillRead(params) {
|
|
|
29
29
|
const exhausted = findRoleActivationReservationIssue(head.state, head.policy, reservation);
|
|
30
30
|
if (exhausted)
|
|
31
31
|
throw new Error(`role_call_ledger_rejected:${exhausted.code}`);
|
|
32
|
+
assertRootSkillReadAdmission(head, params.decision);
|
|
32
33
|
const payload = readStore(request.knowledgeSkillStore, params.decision);
|
|
33
34
|
request.abortSignal.throwIfAborted();
|
|
34
35
|
if (!steering.isCurrent(params.steeringVersion))
|
|
@@ -56,15 +57,19 @@ function readStore(store, decision) {
|
|
|
56
57
|
skills: store.list().map((skill) => ({ ...skill })),
|
|
57
58
|
},
|
|
58
59
|
};
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
60
|
+
const skills = [];
|
|
61
|
+
for (const skillId of decision.skillIds) {
|
|
62
|
+
const skill = store.read(skillId);
|
|
63
|
+
if (!isExactRootSkillDocument(skill, skillId))
|
|
64
|
+
return failedRead(decision, "knowledge_skill_not_found");
|
|
65
|
+
skills.push({ ...skill });
|
|
66
|
+
}
|
|
62
67
|
return {
|
|
63
68
|
operation: "read_skills",
|
|
64
69
|
selectors: [...decision.skillIds],
|
|
65
70
|
result: {
|
|
66
71
|
outcome: "completed",
|
|
67
|
-
skills
|
|
72
|
+
skills,
|
|
68
73
|
},
|
|
69
74
|
};
|
|
70
75
|
}
|
|
@@ -74,6 +79,9 @@ function readStore(store, decision) {
|
|
|
74
79
|
throw error;
|
|
75
80
|
}
|
|
76
81
|
}
|
|
82
|
+
function isExactRootSkillDocument(skill, skillId) {
|
|
83
|
+
return skill?.skillId === skillId;
|
|
84
|
+
}
|
|
77
85
|
function failedRead(decision, errorCode) {
|
|
78
86
|
const result = { outcome: "failed", errorCode, skills: [] };
|
|
79
87
|
if (decision.action === "list_skills")
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type SupervisorSkillSelectionWindow = Readonly<{
|
|
2
|
+
isOpen(): boolean;
|
|
3
|
+
complete(): void;
|
|
4
|
+
}>;
|
|
5
|
+
export type SupervisorSkillSelectionWindows = Readonly<{
|
|
6
|
+
bind(entry: Readonly<{
|
|
7
|
+
rootCallId: string;
|
|
8
|
+
returnedResultRef?: string;
|
|
9
|
+
}>): SupervisorSkillSelectionWindow;
|
|
10
|
+
}>;
|
|
11
|
+
/**
|
|
12
|
+
* Request-local preparation progress, never session or checkpoint state.
|
|
13
|
+
* A canonical direct-child result identifies a new entry into Supervisor.
|
|
14
|
+
* Repeated activations, steering and reference reads retain the same entry.
|
|
15
|
+
*/
|
|
16
|
+
export declare function createSupervisorSkillSelectionWindows(): SupervisorSkillSelectionWindows;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Request-local preparation progress, never session or checkpoint state.
|
|
3
|
+
* A canonical direct-child result identifies a new entry into Supervisor.
|
|
4
|
+
* Repeated activations, steering and reference reads retain the same entry.
|
|
5
|
+
*/
|
|
6
|
+
export function createSupervisorSkillSelectionWindows() {
|
|
7
|
+
const completedEntries = new Set();
|
|
8
|
+
return Object.freeze({
|
|
9
|
+
bind(entry) {
|
|
10
|
+
const key = JSON.stringify([entry.rootCallId, entry.returnedResultRef ?? null]);
|
|
11
|
+
return Object.freeze({
|
|
12
|
+
isOpen: () => !completedEntries.has(key),
|
|
13
|
+
complete: () => { completedEntries.add(key); },
|
|
14
|
+
});
|
|
15
|
+
},
|
|
16
|
+
});
|
|
17
|
+
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { allowsAutomaticPayloadArtifactLoading } from "./execution-payload-artifact-policy.js";
|
|
1
2
|
import { projectAvailableSkills, } from "../knowledge-skills/available-skills.js";
|
|
2
3
|
import { randomUUID } from "node:crypto";
|
|
3
4
|
import { createBundledPluginSkillProvider, createConfiguredSkillProvider, } from "../adapters/configured-skill-provider.js";
|
|
@@ -42,6 +43,7 @@ export function createRequestWorkerCapabilityProvider(params) {
|
|
|
42
43
|
}
|
|
43
44
|
const provider = createRegisteredToolWorkerCapabilityProvider({
|
|
44
45
|
getRequestToolRegistry,
|
|
46
|
+
allowRelatedArtifactLoading: allowsAutomaticPayloadArtifactLoading(params.executionPolicyAuthority),
|
|
45
47
|
requestId: params.request.requestId,
|
|
46
48
|
...(params.request.toolResources
|
|
47
49
|
? { toolResources: params.request.toolResources }
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ModelReasoningPreference } from "../../shared/model-reasoning.js";
|
|
1
2
|
import type { AgentMode } from "../../shared/types.js";
|
|
2
3
|
import type { AutomationJournalState } from "../automations/storage-records.js";
|
|
3
4
|
import type { SchedulerToolPermissionMode } from "./tool-permission-mode.js";
|
|
@@ -67,6 +68,7 @@ export interface SchedulerJob {
|
|
|
67
68
|
prompt: string;
|
|
68
69
|
modelProfileId: string;
|
|
69
70
|
agentMode: AgentMode;
|
|
71
|
+
reasoningPreference?: ModelReasoningPreference;
|
|
70
72
|
toolPermissionMode: SchedulerToolPermissionMode;
|
|
71
73
|
timeZone: string;
|
|
72
74
|
schedule: SchedulerTimedSchedule;
|
|
@@ -109,10 +111,13 @@ export interface CreateSchedulerJobInput {
|
|
|
109
111
|
prompt: string;
|
|
110
112
|
modelProfileId: string;
|
|
111
113
|
agentMode: AgentMode;
|
|
114
|
+
reasoningPreference?: ModelReasoningPreference;
|
|
112
115
|
timeZone: string;
|
|
113
116
|
schedule: SchedulerScheduleInput;
|
|
114
117
|
}
|
|
115
|
-
export type UpdateSchedulerJobInput = Partial<Omit<CreateSchedulerJobInput, "sessionId"
|
|
118
|
+
export type UpdateSchedulerJobInput = Partial<Omit<CreateSchedulerJobInput, "sessionId" | "reasoningPreference">> & {
|
|
119
|
+
reasoningPreference?: ModelReasoningPreference | null;
|
|
120
|
+
};
|
|
116
121
|
export type SchedulerRunStatus = "pending" | "running" | "succeeded" | "failed" | "cancelled" | "interrupted" | "missed";
|
|
117
122
|
export interface SchedulerRun {
|
|
118
123
|
/** Legacy records omit this discriminator and are normalized when loaded. */
|
|
@@ -130,6 +135,7 @@ export interface SchedulerRun {
|
|
|
130
135
|
prompt: string;
|
|
131
136
|
modelProfileId: string;
|
|
132
137
|
agentMode: AgentMode;
|
|
138
|
+
reasoningPreference?: ModelReasoningPreference;
|
|
133
139
|
timeZone: string;
|
|
134
140
|
jobRevision: number;
|
|
135
141
|
scheduledAt: string;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { parseBoundModelReasoningPreference } from "../../shared/model-reasoning.js";
|
|
1
2
|
import { randomUUID } from "node:crypto";
|
|
2
3
|
import { requireSchedulerToolPermissionMode } from "./tool-permission-mode.js";
|
|
3
4
|
import { nextSchedulerOccurrence } from "./next-occurrence.js";
|
|
@@ -26,6 +27,7 @@ export function createSchedulerJob(context, input) {
|
|
|
26
27
|
prompt: input.prompt,
|
|
27
28
|
modelProfileId: input.modelProfileId,
|
|
28
29
|
agentMode: input.agentMode,
|
|
30
|
+
...(input.reasoningPreference ? { reasoningPreference: parseBoundModelReasoningPreference(input.reasoningPreference, input.modelProfileId) } : {}),
|
|
29
31
|
toolPermissionMode: requireSchedulerToolPermissionMode(input.toolPermissionMode),
|
|
30
32
|
timeZone: input.timeZone,
|
|
31
33
|
schedule,
|
|
@@ -53,7 +55,7 @@ export function updateSchedulerJob(context, jobId, patch) {
|
|
|
53
55
|
if (job.state === "cancelled")
|
|
54
56
|
throw new Error("scheduler_job_cancelled");
|
|
55
57
|
const editable = pickEditableFields(patch);
|
|
56
|
-
const input = { ...job, ...editable };
|
|
58
|
+
const input = { ...job, ...editable, reasoningPreference: editable.reasoningPreference === null ? undefined : (editable.reasoningPreference ?? job.reasoningPreference) };
|
|
57
59
|
validateSchedulerJobInput(input);
|
|
58
60
|
const now = context.now();
|
|
59
61
|
const schedule = normalizeSchedulerScheduleUpdate(job.schedule, editable.schedule, now);
|
|
@@ -71,6 +73,7 @@ export function updateSchedulerJob(context, jobId, patch) {
|
|
|
71
73
|
const pending = findPendingRun(state, jobId);
|
|
72
74
|
cancelPendingRuns(state, jobId, new Date(now).toISOString());
|
|
73
75
|
Object.assign(job, editable, {
|
|
76
|
+
reasoningPreference: parseBoundModelReasoningPreference(input.reasoningPreference, input.modelProfileId),
|
|
74
77
|
schedule,
|
|
75
78
|
nextRunAt,
|
|
76
79
|
updatedAt: new Date(now).toISOString(),
|
|
@@ -103,6 +106,8 @@ function hasSchedulerTimingChanges(job, candidate) {
|
|
|
103
106
|
function hasSchedulerJobChanges(job, candidate) {
|
|
104
107
|
if (hasSchedulerTimingChanges(job, candidate))
|
|
105
108
|
return true;
|
|
109
|
+
if (JSON.stringify(job.reasoningPreference) !== JSON.stringify(candidate.reasoningPreference))
|
|
110
|
+
return true;
|
|
106
111
|
return [
|
|
107
112
|
"title",
|
|
108
113
|
"prompt",
|
|
@@ -119,6 +124,7 @@ function pickEditableFields(patch) {
|
|
|
119
124
|
"prompt",
|
|
120
125
|
"modelProfileId",
|
|
121
126
|
"agentMode",
|
|
127
|
+
"reasoningPreference",
|
|
122
128
|
"toolPermissionMode",
|
|
123
129
|
"timeZone",
|
|
124
130
|
"schedule",
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { parseBoundModelReasoningPreference } from "../../shared/model-reasoning.js";
|
|
1
2
|
import { randomUUID } from "node:crypto";
|
|
2
3
|
import { isRequestSchedulerJob, isRequestSchedulerRun, } from "./scheduler-target.js";
|
|
3
4
|
export function makeSchedulerRun(job, scheduledAt, trigger) {
|
|
@@ -11,6 +12,7 @@ export function makeSchedulerRun(job, scheduledAt, trigger) {
|
|
|
11
12
|
prompt: job.prompt,
|
|
12
13
|
modelProfileId: job.modelProfileId,
|
|
13
14
|
agentMode: job.agentMode,
|
|
15
|
+
...(job.reasoningPreference ? { reasoningPreference: parseBoundModelReasoningPreference(job.reasoningPreference, job.modelProfileId) } : {}),
|
|
14
16
|
toolPermissionMode: job.toolPermissionMode,
|
|
15
17
|
timeZone: job.timeZone,
|
|
16
18
|
jobRevision: job.revision,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { parseBoundModelReasoningPreference } from "../../shared/model-reasoning.js";
|
|
1
2
|
import { requireSchedulerToolPermissionMode } from "./tool-permission-mode.js";
|
|
2
3
|
import { SchedulerValidationError } from "./validation-error.js";
|
|
3
4
|
import { parseSchedulerInstant, schedulerInstantFromMilliseconds, } from "./instant-validation.js";
|
|
@@ -28,6 +29,7 @@ export function validateSchedulerJobInput(input) {
|
|
|
28
29
|
if (!allowedModes.includes(input.agentMode)) {
|
|
29
30
|
throw new SchedulerValidationError("scheduler_invalid_job", "agentMode is invalid");
|
|
30
31
|
}
|
|
32
|
+
parseBoundModelReasoningPreference(input.reasoningPreference, input.modelProfileId);
|
|
31
33
|
requireSchedulerToolPermissionMode(input.toolPermissionMode);
|
|
32
34
|
validateTimeZone(input.timeZone);
|
|
33
35
|
}
|
|
@@ -164,6 +164,7 @@ function startCapturedRun(context, job, run) {
|
|
|
164
164
|
title: run.title,
|
|
165
165
|
modelProfileId: run.modelProfileId,
|
|
166
166
|
agentMode: run.agentMode,
|
|
167
|
+
reasoningPreference: run.reasoningPreference,
|
|
167
168
|
toolPermissionMode: run.toolPermissionMode ?? "full_access",
|
|
168
169
|
timeZone: run.timeZone,
|
|
169
170
|
revision: run.jobRevision,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { parseBoundModelReasoningPreference } from "../../shared/model-reasoning.js";
|
|
1
2
|
import { parseStoredAutomationJob, parseStoredAutomationRun, } from "./automation-snapshot-validation.js";
|
|
2
3
|
import { sameSchedulerTarget } from "./scheduler-target.js";
|
|
3
4
|
import { normalizeStoredSchedulerSchedule, validateSchedulerJobInput, validateTimeZone, } from "./schedule-validation.js";
|
|
@@ -74,6 +75,7 @@ export function parseStoredRun(value) {
|
|
|
74
75
|
failSnapshot();
|
|
75
76
|
if (Number(value.jobRevision) < 1)
|
|
76
77
|
failSnapshot();
|
|
78
|
+
parseBoundModelReasoningPreference(value.reasoningPreference, String(value.modelProfileId));
|
|
77
79
|
requireSchedulerToolPermissionMode(value.toolPermissionMode);
|
|
78
80
|
validateTimeZone(String(value.timeZone));
|
|
79
81
|
const states = [
|
|
@@ -21,6 +21,8 @@ export function projectAuditorAssignment(request, head, call) {
|
|
|
21
21
|
prompt: request.prompt,
|
|
22
22
|
objective: projectExecutionCompactionObjective(request.prompt, steering.updates),
|
|
23
23
|
callId: caller.callId,
|
|
24
|
+
updates: steering.updates,
|
|
25
|
+
sourceRevision: head.revision,
|
|
24
26
|
store: request.contextCompactionStore,
|
|
25
27
|
results: head.state.capabilityExecutions
|
|
26
28
|
.filter((execution) => execution.callId === caller.callId && execution.status === "settled")
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type CapabilityControlsPartitionResult, type CapabilityDescriptor } from "../../orchestration/capability-adapters/index.js";
|
|
2
|
+
/** The evidence-owning EA selects the complete operation for ordinary observations. */
|
|
3
|
+
export declare function ownsExecutionObservationControls(descriptor: CapabilityDescriptor): boolean;
|
|
4
|
+
/**
|
|
5
|
+
* This is an EA model-facing projection, not a change to the shared descriptor.
|
|
6
|
+
* Optional controls remain optional: a generated null is an intentional omission,
|
|
7
|
+
* normalized by the decision parser before execution, never a later choice.
|
|
8
|
+
*/
|
|
9
|
+
export declare function partitionExecutionCapabilityControls(descriptor: CapabilityDescriptor): CapabilityControlsPartitionResult;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { EMPTY_CAPABILITY_CONTROLS_SCHEMA, partitionCapabilityControlsSchema, } from "../../orchestration/capability-adapters/index.js";
|
|
2
|
+
/** The evidence-owning EA selects the complete operation for ordinary observations. */
|
|
3
|
+
export function ownsExecutionObservationControls(descriptor) {
|
|
4
|
+
if (descriptor.effect !== "observation")
|
|
5
|
+
return false;
|
|
6
|
+
return descriptor.requiresPayloadAuthoringObjective !== true;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* This is an EA model-facing projection, not a change to the shared descriptor.
|
|
10
|
+
* Optional controls remain optional: a generated null is an intentional omission,
|
|
11
|
+
* normalized by the decision parser before execution, never a later choice.
|
|
12
|
+
*/
|
|
13
|
+
export function partitionExecutionCapabilityControls(descriptor) {
|
|
14
|
+
const partition = partitionCapabilityControlsSchema(descriptor.controls, descriptor.selectionControlIds);
|
|
15
|
+
if (!partition.ok)
|
|
16
|
+
return partition;
|
|
17
|
+
if (!ownsExecutionObservationControls(descriptor))
|
|
18
|
+
return partition;
|
|
19
|
+
const fullSchema = partition.value.fullSchema;
|
|
20
|
+
return Object.freeze({
|
|
21
|
+
ok: true,
|
|
22
|
+
value: Object.freeze({
|
|
23
|
+
fullSchema,
|
|
24
|
+
selectionSchema: fullSchema,
|
|
25
|
+
remainingSchema: EMPTY_CAPABILITY_CONTROLS_SCHEMA,
|
|
26
|
+
selectionControlIds: Object.freeze(Object.keys(fullSchema.properties)),
|
|
27
|
+
}),
|
|
28
|
+
});
|
|
29
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type CapabilityCatalogGroup, type CapabilityDescriptor } from "../../orchestration/capability-adapters/index.js";
|
|
2
|
+
import type { RoleCallFrame, RoleCallLedgerHead } from "../../orchestration/role-calls/index.js";
|
|
3
|
+
import { type RequestExecutionScope } from "../../request/execution-scope.js";
|
|
4
|
+
/** One decision-local capability offer shared by guidance loading and input. */
|
|
5
|
+
export type ExecutionCapabilityScope = Readonly<{
|
|
6
|
+
capabilities: readonly CapabilityDescriptor[];
|
|
7
|
+
capabilityCatalogGroups: readonly CapabilityCatalogGroup[];
|
|
8
|
+
activeCapabilityCatalogGroupIds: readonly string[] | null;
|
|
9
|
+
knownGroupIds: readonly string[];
|
|
10
|
+
remainingExecutions: number;
|
|
11
|
+
capabilityScopeAction: "open" | "extend" | null;
|
|
12
|
+
}>;
|
|
13
|
+
export declare function resolveExecutionCapabilityScope(request: RequestExecutionScope, options: Readonly<{
|
|
14
|
+
head: RoleCallLedgerHead;
|
|
15
|
+
call: RoleCallFrame;
|
|
16
|
+
}>): ExecutionCapabilityScope;
|
|
17
|
+
export declare function assertExecutionAgentCanonicalSource(request: RequestExecutionScope, head: RoleCallLedgerHead, call: RoleCallFrame): void;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { projectCapabilityCatalogGroups, projectCapabilityScope, } from "../../orchestration/capability-adapters/index.js";
|
|
2
|
+
import { resolveRequestWorkerCapabilities, } from "../../request/execution-scope.js";
|
|
3
|
+
export function resolveExecutionCapabilityScope(request, options) {
|
|
4
|
+
assertExecutionAgentCanonicalSource(request, options.head, options.call);
|
|
5
|
+
const allCapabilities = resolveRequestWorkerCapabilities(request).provider.getDescriptors();
|
|
6
|
+
const capabilityCatalogGroups = projectCapabilityCatalogGroups(allCapabilities);
|
|
7
|
+
const activeCapabilityCatalogGroupIds = options.call.workerCapabilityScope
|
|
8
|
+
? Object.freeze([...options.call.workerCapabilityScope.catalogGroupIds])
|
|
9
|
+
: null;
|
|
10
|
+
const remainingExecutions = options.head.policy.limits.maxCapabilityExecutions -
|
|
11
|
+
options.head.state.capabilityExecutions.length;
|
|
12
|
+
const capabilities = canOfferScopedCapabilities(activeCapabilityCatalogGroupIds, remainingExecutions)
|
|
13
|
+
? projectCapabilityScope({
|
|
14
|
+
entries: allCapabilities,
|
|
15
|
+
scope: options.call.workerCapabilityScope,
|
|
16
|
+
descriptorOf: (entry) => entry,
|
|
17
|
+
}).entries
|
|
18
|
+
: Object.freeze([]);
|
|
19
|
+
const knownGroupIds = Object.freeze(capabilityCatalogGroups.map(({ groupId }) => groupId));
|
|
20
|
+
return Object.freeze({
|
|
21
|
+
capabilities,
|
|
22
|
+
capabilityCatalogGroups,
|
|
23
|
+
activeCapabilityCatalogGroupIds,
|
|
24
|
+
knownGroupIds,
|
|
25
|
+
remainingExecutions,
|
|
26
|
+
capabilityScopeAction: resolveCapabilityScopeAction(activeCapabilityCatalogGroupIds, knownGroupIds, remainingExecutions),
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
export function assertExecutionAgentCanonicalSource(request, head, call) {
|
|
30
|
+
if (head.state.requestId !== request.requestId ||
|
|
31
|
+
head.state.phase !== "running" ||
|
|
32
|
+
head.state.rootCallId !== call.callId ||
|
|
33
|
+
head.state.activeCallId !== call.callId ||
|
|
34
|
+
call.parentCallId !== null ||
|
|
35
|
+
call.status !== "active") {
|
|
36
|
+
throw new Error("execution_agent_head_invalid");
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function canOfferScopedCapabilities(activeGroupIds, remainingExecutions) {
|
|
40
|
+
if (activeGroupIds === null)
|
|
41
|
+
return false;
|
|
42
|
+
return remainingExecutions > 0;
|
|
43
|
+
}
|
|
44
|
+
function resolveCapabilityScopeAction(activeGroupIds, knownGroupIds, remainingExecutions) {
|
|
45
|
+
if (remainingExecutions <= 0)
|
|
46
|
+
return null;
|
|
47
|
+
if (knownGroupIds.length === 0)
|
|
48
|
+
return null;
|
|
49
|
+
if (activeGroupIds === null)
|
|
50
|
+
return "open";
|
|
51
|
+
if (knownGroupIds.some((groupId) => !activeGroupIds.includes(groupId)))
|
|
52
|
+
return "extend";
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
@@ -1,9 +1,27 @@
|
|
|
1
|
+
import { resolveExecutionEvidenceCheckpoint } from "../../context/execution-compaction-checkpoint-selection.js";
|
|
1
2
|
import { executionCompactionScopeId, projectExecutionCompactionObjective, } from "../../context/execution-compaction-objective.js";
|
|
2
3
|
import { createModelStepCompactionController } from "../../context/model-step-compaction.js";
|
|
3
4
|
import { buildExecutionCapabilityResultSource } from "./capability-result-context.js";
|
|
4
5
|
export function createExecutionAgentCompactionController(request, options) {
|
|
5
6
|
const objective = projectExecutionCompactionObjective(request.prompt, options.steeringSnapshot.updates);
|
|
6
7
|
const call = Object.freeze({ ...options.call, objective });
|
|
8
|
+
const scopeId = executionCompactionScopeId({
|
|
9
|
+
callId: call.callId,
|
|
10
|
+
prompt: request.prompt,
|
|
11
|
+
objective,
|
|
12
|
+
...(options.scopeSuffix ? { scopeSuffix: options.scopeSuffix } : {}),
|
|
13
|
+
});
|
|
14
|
+
const checkpoint = resolveExecutionEvidenceCheckpoint({
|
|
15
|
+
requestId: request.requestId,
|
|
16
|
+
prompt: request.prompt,
|
|
17
|
+
objective,
|
|
18
|
+
callId: call.callId,
|
|
19
|
+
store: request.contextCompactionStore,
|
|
20
|
+
updates: options.steeringSnapshot.updates,
|
|
21
|
+
allowedConsumers: options.allowedConsumers,
|
|
22
|
+
scopeSuffix: options.scopeSuffix,
|
|
23
|
+
sourceRevision: options.head.revision,
|
|
24
|
+
});
|
|
7
25
|
return createModelStepCompactionController(request, {
|
|
8
26
|
call,
|
|
9
27
|
sourceRevision: options.head.revision,
|
|
@@ -16,11 +34,9 @@ export function createExecutionAgentCompactionController(request, options) {
|
|
|
16
34
|
.map((execution) => buildExecutionCapabilityResultSource(options.head, execution)),
|
|
17
35
|
allowedConsumers: options.allowedConsumers,
|
|
18
36
|
consumer: options.consumer,
|
|
19
|
-
scopeId
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
...(options.scopeSuffix ? { scopeSuffix: options.scopeSuffix } : {}),
|
|
24
|
-
}),
|
|
37
|
+
scopeId,
|
|
38
|
+
...(checkpoint && checkpoint.scopeId !== scopeId
|
|
39
|
+
? { inheritedCheckpoint: checkpoint }
|
|
40
|
+
: {}),
|
|
25
41
|
});
|
|
26
42
|
}
|
|
@@ -14,6 +14,8 @@ export function buildExecutionControlsEvidenceMessage(view, params) {
|
|
|
14
14
|
prompt: params.compaction.prompt,
|
|
15
15
|
objective: projectExecutionCompactionObjective(params.compaction.prompt, params.steering.updates),
|
|
16
16
|
callId: params.callId,
|
|
17
|
+
updates: params.steering.updates,
|
|
18
|
+
sourceRevision: view.sourceRevision,
|
|
17
19
|
store: params.compaction.store,
|
|
18
20
|
results: view.results.map((result) => ({
|
|
19
21
|
...result,
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/** Decision-only policy; source evidence remains in its canonical context lane. */
|
|
2
|
+
export declare const EXECUTION_EVIDENCE_REUSE_INSTRUCTIONS: string;
|
|
3
|
+
export declare function appendExecutionEvidenceReuseInstructions(params: Readonly<{
|
|
4
|
+
instructions: string;
|
|
5
|
+
hasCapabilities: boolean;
|
|
6
|
+
}>): string;
|