@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
|
@@ -119,6 +119,7 @@ export function projectAutomationAuthoringCatalogIndex(catalog, offset, automati
|
|
|
119
119
|
id: model.id, label: model.label.slice(0, LABEL_MAX_LENGTH),
|
|
120
120
|
labelTruncated: model.label.length > LABEL_MAX_LENGTH,
|
|
121
121
|
...(model.provider ? { provider: model.provider } : {}),
|
|
122
|
+
...(model.reasoningControls ? { reasoningControls: model.reasoningControls } : {}),
|
|
122
123
|
})), offset);
|
|
123
124
|
const savedAgents = catalogPage([...catalog.savedAgents]
|
|
124
125
|
.sort((left, right) => left.id.localeCompare(right.id))
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { modelReasoningControlProperties } from "../model-reasoning-controls.js";
|
|
1
2
|
import { automationAuthoringCatalogOperations } from "./authoring-catalog-contract.js";
|
|
2
3
|
import { automationAuthoringInputOperations } from "./authoring-input-contracts.js";
|
|
3
4
|
const text = (maximum = 4_096) => ({
|
|
@@ -45,10 +46,10 @@ export const automationDraftToolContract = {
|
|
|
45
46
|
operation("remove_folder_source", "Remove the optional folder source.", common, ["automationId", "expectedRevision"]),
|
|
46
47
|
operation("set_run_inputs", "Set named static run inputs using a bounded JSON object, not a whole automation definition.", { ...common, inputsJson: text() }, ["automationId", "expectedRevision", "inputsJson"]),
|
|
47
48
|
operation("set_limits", "Set only supplied positive run limits; omitted limits keep their current values.", { ...common, maxConcurrentNodes: revision, maxModelCallsPerRun: revision, maxToolCallsPerRun: revision, maxRunDurationMs: revision, maxRunsPerDay: revision, maxStoredArtifactBytes: revision, stopReportDeadlineMs: revision }, ["automationId", "expectedRevision"]),
|
|
48
|
-
operation("add_agent", "Add an agent at the exact position. Placement does not pass earlier outputs; use the returned node ID with bind_step_result to connect each needed earlier result.", { ...common, parentSequenceId: id, index, title: optionalText(160), modelProfileId: optionalText(128), agentMode: choice("fast", "reasoning", "deep"), roleInstructions: optionalText(), prompt: optionalText(), onFailure: choice("stop", "skip") }, ["automationId", "expectedRevision", "parentSequenceId", "index", "title", "modelProfileId", "agentMode", "roleInstructions", "prompt", "onFailure"]),
|
|
49
|
+
operation("add_agent", "Add an agent at the exact position. Placement does not pass earlier outputs; use the returned node ID with bind_step_result to connect each needed earlier result.", { ...common, parentSequenceId: id, index, title: optionalText(160), modelProfileId: optionalText(128), agentMode: choice("fast", "reasoning", "deep"), ...modelReasoningControlProperties, roleInstructions: optionalText(), prompt: optionalText(), onFailure: choice("stop", "skip") }, ["automationId", "expectedRevision", "parentSequenceId", "index", "title", "modelProfileId", "agentMode", "roleInstructions", "prompt", "onFailure"]),
|
|
49
50
|
operation("add_saved_agent", "Add an exact saved-agent revision as a draft step. It does not inherit an automation grant.", { ...common, parentSequenceId: id, index, agentId: id, agentRevision: revision }, ["automationId", "expectedRevision", "parentSequenceId", "index", "agentId", "agentRevision"]),
|
|
50
51
|
operation("add_tool", "Add a tool step by exact catalog operation reference. Set each input with set_step_literal or bind_step_result; advanced bindings use set_tool_controls.", { ...common, parentSequenceId: id, index, title: optionalText(160), toolName: text(64), operationId: text(64), contractVersion: revision, onFailure: choice("stop", "skip") }, ["automationId", "expectedRevision", "parentSequenceId", "index", "title", "toolName", "operationId", "contractVersion", "onFailure"]),
|
|
51
|
-
operation("edit_agent", "Edit selected agent fields without rewriting its other configuration.", { ...node, modelProfileId: optionalText(128), agentMode: choice("fast", "reasoning", "deep"), roleInstructions: optionalText(), prompt: optionalText() }, ["automationId", "expectedRevision", "nodeId"]),
|
|
52
|
+
operation("edit_agent", "Edit selected agent fields without rewriting its other configuration.", { ...node, modelProfileId: optionalText(128), agentMode: choice("fast", "reasoning", "deep"), ...modelReasoningControlProperties, roleInstructions: optionalText(), prompt: optionalText() }, ["automationId", "expectedRevision", "nodeId"]),
|
|
52
53
|
operation("set_step_policy", "Set a step's title or failure behavior; skip continues after a failed step, stop ends the run.", { ...node, title: optionalText(160), onFailure: choice("stop", "skip") }, ["automationId", "expectedRevision", "nodeId"]),
|
|
53
54
|
...automationAuthoringInputOperations,
|
|
54
55
|
operation("set_agent_inputs", "Advanced: replace all named agent inputs with canonical bindings JSON. Prefer bind_step_result for one earlier result. Example: {\"source\":{\"kind\":\"node_result\",\"nodeId\":\"<id>\",\"select\":\"text\"}}. Unbound outputs are not passed.", { ...node, bindingsJson: text() }, ["automationId", "expectedRevision", "nodeId", "bindingsJson"]),
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { readCreatedModelReasoningControls, readUpdatedModelReasoningControls } from "../model-reasoning-controls.js";
|
|
2
|
+
import { findAutomationStep } from "../../automations/step-evidence-effects.js";
|
|
1
3
|
import { CORE_TOOL_CONTRACTS } from "../core-tool-contracts.js";
|
|
2
4
|
import { Buffer } from "node:buffer";
|
|
3
5
|
import { AUTOMATION_TOOL_EVENT_PRESENTATION } from "./event-presentation.js";
|
|
@@ -43,11 +45,12 @@ function jsonArray(params, key) {
|
|
|
43
45
|
throw new Error("automation_graph_invalid");
|
|
44
46
|
return value;
|
|
45
47
|
}
|
|
46
|
-
function supplied(params, keys) {
|
|
47
|
-
const patch = Object.fromEntries(keys
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
function supplied(params, keys, parsedPatch = {}) {
|
|
49
|
+
const patch = { ...Object.fromEntries(keys
|
|
50
|
+
.filter((key) => params[key] !== undefined)
|
|
51
|
+
.map((key) => [key, params[key]])), ...parsedPatch };
|
|
52
|
+
const hasNoSuppliedFields = Object.keys(patch).length === 0;
|
|
53
|
+
if (hasNoSuppliedFields)
|
|
51
54
|
throw new Error("automation_graph_invalid");
|
|
52
55
|
return patch;
|
|
53
56
|
}
|
|
@@ -188,6 +191,7 @@ async function execute(service, params) {
|
|
|
188
191
|
index: requiredInteger(params, "index"), nodeWithoutId: {
|
|
189
192
|
kind: "agent", title: params.title, onFailure: params.onFailure,
|
|
190
193
|
modelProfileId: params.modelProfileId, agentMode: params.agentMode,
|
|
194
|
+
...readCreatedModelReasoningControls(params, params.modelProfileId),
|
|
191
195
|
roleInstructions: params.roleInstructions, prompt: params.prompt,
|
|
192
196
|
inputs: {}, tools: [], result: { kind: "text" },
|
|
193
197
|
} });
|
|
@@ -213,9 +217,14 @@ async function execute(service, params) {
|
|
|
213
217
|
contractVersion: params.contractVersion }, controls: {},
|
|
214
218
|
} });
|
|
215
219
|
const nodeId = requiredText(params, "nodeId");
|
|
216
|
-
if (action === "edit_agent")
|
|
220
|
+
if (action === "edit_agent") {
|
|
221
|
+
const draft = await service.getDraft(automationId);
|
|
222
|
+
const target = draft && findAutomationStep(draft.definition.body, nodeId);
|
|
223
|
+
const previousProfileId = target?.kind === "agent" ? target.modelProfileId : undefined;
|
|
224
|
+
const profileId = params.modelProfileId ?? previousProfileId;
|
|
217
225
|
return mutate(service, params, { kind: "update_node", nodeId,
|
|
218
|
-
patch: supplied(params, ["modelProfileId", "agentMode", "roleInstructions", "prompt"]) });
|
|
226
|
+
patch: supplied(params, ["modelProfileId", "agentMode", "roleInstructions", "prompt"], readUpdatedModelReasoningControls(params, previousProfileId, profileId)) });
|
|
227
|
+
}
|
|
219
228
|
if (action === "set_step_policy")
|
|
220
229
|
return mutate(service, params, { kind: "update_node", nodeId,
|
|
221
230
|
patch: supplied(params, ["title", "onFailure"]) });
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type ModelReasoningPreference } from "../../shared/model-reasoning.js";
|
|
2
|
+
/** Flat v1 tool inputs project to the canonical nested Runtime request contract. */
|
|
3
|
+
export declare const modelReasoningControlProperties: {
|
|
4
|
+
reasoningMode: {
|
|
5
|
+
type: "string";
|
|
6
|
+
enum: string[];
|
|
7
|
+
};
|
|
8
|
+
reasoningBudgetTokens: {
|
|
9
|
+
type: "integer";
|
|
10
|
+
minimum: number;
|
|
11
|
+
maximum: number;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
export declare function readModelReasoningControlPatch(params: Readonly<Record<string, unknown>>, profileId: unknown): {
|
|
15
|
+
reasoningPreference?: ModelReasoningPreference | null;
|
|
16
|
+
};
|
|
17
|
+
/** Tool model switches inherit the new profile unless controls are explicit. */
|
|
18
|
+
export declare function readUpdatedModelReasoningControls(params: Readonly<Record<string, unknown>>, previousProfileId: unknown, nextProfileId: unknown): {
|
|
19
|
+
reasoningPreference?: ModelReasoningPreference | null;
|
|
20
|
+
};
|
|
21
|
+
export declare function readCreatedModelReasoningControls(params: Readonly<Record<string, unknown>>, profileId: unknown): {
|
|
22
|
+
reasoningPreference?: ModelReasoningPreference;
|
|
23
|
+
};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { MAX_REASONING_BUDGET_TOKENS, ModelReasoningConfigurationError, parseModelReasoningPreference, } from "../../shared/model-reasoning.js";
|
|
2
|
+
/** Flat v1 tool inputs project to the canonical nested Runtime request contract. */
|
|
3
|
+
export const modelReasoningControlProperties = {
|
|
4
|
+
reasoningMode: {
|
|
5
|
+
type: "string",
|
|
6
|
+
enum: ["inherit", "off", "budget", "server-default"],
|
|
7
|
+
},
|
|
8
|
+
reasoningBudgetTokens: {
|
|
9
|
+
type: "integer",
|
|
10
|
+
minimum: 0,
|
|
11
|
+
maximum: MAX_REASONING_BUDGET_TOKENS,
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
function hasUnboundReasoningTokenControl(params) {
|
|
15
|
+
if (params.reasoningBudgetTokens === undefined)
|
|
16
|
+
return false;
|
|
17
|
+
return params.reasoningMode !== "budget";
|
|
18
|
+
}
|
|
19
|
+
export function readModelReasoningControlPatch(params, profileId) {
|
|
20
|
+
if (hasUnboundReasoningTokenControl(params))
|
|
21
|
+
throw new ModelReasoningConfigurationError("invalid_reasoning_preference", "reasoningBudgetTokens requires reasoningMode=budget");
|
|
22
|
+
if (params.reasoningMode === undefined)
|
|
23
|
+
return {};
|
|
24
|
+
if (params.reasoningMode === "inherit")
|
|
25
|
+
return { reasoningPreference: null };
|
|
26
|
+
const preference = parseModelReasoningPreference({
|
|
27
|
+
profileId,
|
|
28
|
+
mode: params.reasoningMode,
|
|
29
|
+
...(params.reasoningBudgetTokens !== undefined
|
|
30
|
+
? { budgetTokens: params.reasoningBudgetTokens }
|
|
31
|
+
: {}),
|
|
32
|
+
});
|
|
33
|
+
return { reasoningPreference: preference };
|
|
34
|
+
}
|
|
35
|
+
function hasChangedReasoningModelProfile(previousProfileId, nextProfileId) {
|
|
36
|
+
if (typeof previousProfileId !== "string")
|
|
37
|
+
return false;
|
|
38
|
+
if (typeof nextProfileId !== "string")
|
|
39
|
+
return false;
|
|
40
|
+
return previousProfileId !== nextProfileId;
|
|
41
|
+
}
|
|
42
|
+
/** Tool model switches inherit the new profile unless controls are explicit. */
|
|
43
|
+
export function readUpdatedModelReasoningControls(params, previousProfileId, nextProfileId) {
|
|
44
|
+
const patch = readModelReasoningControlPatch(params, nextProfileId);
|
|
45
|
+
if ("reasoningPreference" in patch)
|
|
46
|
+
return patch;
|
|
47
|
+
if (!hasChangedReasoningModelProfile(previousProfileId, nextProfileId))
|
|
48
|
+
return patch;
|
|
49
|
+
return { reasoningPreference: null };
|
|
50
|
+
}
|
|
51
|
+
export function readCreatedModelReasoningControls(params, profileId) {
|
|
52
|
+
const patch = readModelReasoningControlPatch(params, profileId);
|
|
53
|
+
if (!patch.reasoningPreference)
|
|
54
|
+
return {};
|
|
55
|
+
return { reasoningPreference: patch.reasoningPreference };
|
|
56
|
+
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { modelReasoningControlProperties } from "../model-reasoning-controls.js";
|
|
1
2
|
import { scheduleDetailProperties, scheduleTimingProperties, } from "./tool-input-properties.js";
|
|
2
3
|
function createScheduleOperation(kind, timingSummary, timingFields, requiredTiming = timingFields) {
|
|
3
4
|
return {
|
|
@@ -11,6 +12,7 @@ function createScheduleOperation(kind, timingSummary, timingFields, requiredTimi
|
|
|
11
12
|
additionalProperties: false,
|
|
12
13
|
properties: {
|
|
13
14
|
...scheduleDetailProperties,
|
|
15
|
+
...modelReasoningControlProperties,
|
|
14
16
|
timeZone: scheduleTimingProperties.timeZone,
|
|
15
17
|
...Object.fromEntries(timingFields.map((field) => [field, scheduleTimingProperties[field]])),
|
|
16
18
|
},
|
|
@@ -14,6 +14,7 @@ export declare function createSchedulerJobPage(jobs: readonly SchedulerJob[], pa
|
|
|
14
14
|
title: string;
|
|
15
15
|
modelProfileId: string;
|
|
16
16
|
agentMode: import("../../../shared/types.js").AgentMode;
|
|
17
|
+
reasoningPreference?: import("../../../shared/model-reasoning.js").ModelReasoningPreference;
|
|
17
18
|
toolPermissionMode: import("../../scheduler/tool-permission-mode.js").SchedulerToolPermissionMode;
|
|
18
19
|
timeZone: string;
|
|
19
20
|
schedule: import("../../scheduler/contracts.js").SchedulerTimedSchedule;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { readCreatedModelReasoningControls, readUpdatedModelReasoningControls } from "../model-reasoning-controls.js";
|
|
1
2
|
import { CORE_TOOL_CONTRACTS } from "../core-tool-contracts.js";
|
|
2
3
|
import { resolveModelSelection } from "../../model/model-selection.js";
|
|
3
4
|
import { requireCreateCalendarTimeZone } from "./create-time-zone.js";
|
|
@@ -42,11 +43,12 @@ function scheduleInput(params) {
|
|
|
42
43
|
};
|
|
43
44
|
throw new Error("schedule_kind_required");
|
|
44
45
|
}
|
|
45
|
-
function updateInput(params, config) {
|
|
46
|
+
function updateInput(params, config, modelProfileId) {
|
|
46
47
|
if (params.modelProfileId !== undefined) {
|
|
47
48
|
requireAvailableScheduleModel(config, params.modelProfileId);
|
|
48
49
|
}
|
|
49
50
|
return {
|
|
51
|
+
...readUpdatedModelReasoningControls(params, modelProfileId, params.modelProfileId ?? modelProfileId),
|
|
50
52
|
...(params.title !== undefined
|
|
51
53
|
? { title: requireText(params.title, "title") }
|
|
52
54
|
: {}),
|
|
@@ -91,6 +93,7 @@ export function createSchedulingToolModule(service, config, ready) {
|
|
|
91
93
|
prompt: requireText(params.prompt, "prompt"),
|
|
92
94
|
modelProfileId: requireText(selection.execution.primaryProfileId, "model"),
|
|
93
95
|
agentMode: selection.agentMode,
|
|
96
|
+
...readCreatedModelReasoningControls(params, selection.execution.primaryProfileId),
|
|
94
97
|
timeZone: params.timeZone
|
|
95
98
|
? requireText(params.timeZone, "time_zone")
|
|
96
99
|
: Intl.DateTimeFormat().resolvedOptions().timeZone,
|
|
@@ -109,7 +112,7 @@ export function createSchedulingToolModule(service, config, ready) {
|
|
|
109
112
|
runs: [...(await service.listRuns(id, { limit: 20 }))].reverse(),
|
|
110
113
|
};
|
|
111
114
|
if (action === "update")
|
|
112
|
-
return service.update(id, updateInput(params, config));
|
|
115
|
+
return service.update(id, updateInput(params, config, job.modelProfileId));
|
|
113
116
|
if (action === "pause")
|
|
114
117
|
return service.pause(id);
|
|
115
118
|
if (action === "resume")
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { modelReasoningControlProperties } from "../model-reasoning-controls.js";
|
|
1
2
|
import { scheduleDetailProperties, scheduleTextField, scheduleTimingProperties, } from "./tool-input-properties.js";
|
|
2
3
|
const editableJobProperties = {
|
|
3
4
|
jobId: scheduleTextField(200),
|
|
4
5
|
...scheduleDetailProperties,
|
|
6
|
+
...modelReasoningControlProperties,
|
|
5
7
|
modelProfileId: scheduleTextField(200),
|
|
6
8
|
agentMode: { type: "string", enum: ["fast", "reasoning", "deep"] },
|
|
7
9
|
timeZone: scheduleTimingProperties.timeZone,
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { parseModelReasoningBudgetByMode } from "../../shared/model-reasoning-modes.js";
|
|
2
|
+
import { parseModelReasoningBudget } from "../../shared/model-reasoning.js";
|
|
1
3
|
import { readFileSync } from "node:fs";
|
|
2
4
|
import { dirname, isAbsolute, resolve } from "node:path";
|
|
3
5
|
import { DEFAULT_RUNTIME_LOGGING_ENABLED, DEFAULT_RUNTIME_LOG_ROTATION_CONFIG, } from "./constants.js";
|
|
@@ -316,6 +318,8 @@ export function buildModelGenerationConfig(value) {
|
|
|
316
318
|
if (!isRecord(value)) {
|
|
317
319
|
return undefined;
|
|
318
320
|
}
|
|
321
|
+
const reasoningBudget = parseModelReasoningBudget(value.reasoningBudget);
|
|
322
|
+
const reasoningBudgetByMode = parseModelReasoningBudgetByMode(value.reasoningBudgetByMode);
|
|
319
323
|
const temperature = readOptionalNumber(value, "temperature");
|
|
320
324
|
const topP = readOptionalNumber(value, "topP");
|
|
321
325
|
const reasoningEffort = value.reasoningEffort === "none" ||
|
|
@@ -330,6 +334,8 @@ export function buildModelGenerationConfig(value) {
|
|
|
330
334
|
...(temperature !== undefined ? { temperature } : {}),
|
|
331
335
|
...(topP !== undefined ? { topP } : {}),
|
|
332
336
|
...(reasoningEffort ? { reasoningEffort } : {}),
|
|
337
|
+
...(reasoningBudget ? { reasoningBudget } : {}),
|
|
338
|
+
...(reasoningBudgetByMode ? { reasoningBudgetByMode } : {}),
|
|
333
339
|
};
|
|
334
340
|
return Object.keys(config).length > 0 ? config : undefined;
|
|
335
341
|
}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { validateEffectiveReasoningBudgets } from "./model-reasoning-validation.js";
|
|
2
|
+
import { validateLlamaCppProfileCapabilities } from "./llamacpp-profile-validation.js";
|
|
1
3
|
import { validateProfileContextCapacity, } from "./model-context-capacity.js";
|
|
2
4
|
import { RuntimeConfigValidationError } from "./validation.js";
|
|
3
5
|
function hasConfiguredProfile(profiles, profileId) {
|
|
@@ -41,6 +43,8 @@ function validateStepTarget(params) {
|
|
|
41
43
|
export function validateEffectiveRuntimeModelConfig(params) {
|
|
42
44
|
const issues = [];
|
|
43
45
|
const capacityIssues = [];
|
|
46
|
+
validateEffectiveReasoningBudgets(issues, params.modelPolicy);
|
|
47
|
+
validateLlamaCppProfileCapabilities(issues, params.modelPolicy);
|
|
44
48
|
const providers = params.modelPolicy?.providers ?? {};
|
|
45
49
|
const profiles = params.modelPolicy?.profiles ?? {};
|
|
46
50
|
const invocationProfiles = params.modelPolicy?.invocationProfiles ?? {};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { ModelGatewayPolicyConfig } from "../../model-gateway/types.js";
|
|
2
|
+
/** The current adapter is text-only even when the underlying server has a projector. */
|
|
3
|
+
export declare function validateLlamaCppProfileCapabilities(issues: string[], policy?: ModelGatewayPolicyConfig): void;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
function requestsUnsupportedLlamaImageInput(profile, policy) {
|
|
2
|
+
if (policy.providers?.[profile.provider ?? ""]?.type !== "llamacpp")
|
|
3
|
+
return false;
|
|
4
|
+
return profile.capabilities?.inputModalities?.includes("image") === true;
|
|
5
|
+
}
|
|
6
|
+
/** The current adapter is text-only even when the underlying server has a projector. */
|
|
7
|
+
export function validateLlamaCppProfileCapabilities(issues, policy) {
|
|
8
|
+
if (!policy)
|
|
9
|
+
return;
|
|
10
|
+
for (const [id, profile] of Object.entries(policy.profiles ?? {})) {
|
|
11
|
+
if (!requestsUnsupportedLlamaImageInput(profile, policy))
|
|
12
|
+
continue;
|
|
13
|
+
issues.push(`models.profiles.${id}.capabilities.inputModalities: the llamacpp adapter supports text only`);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export declare const modelReasoningBudgetSchema: {
|
|
2
|
+
description: string;
|
|
3
|
+
oneOf: ({
|
|
4
|
+
type: string;
|
|
5
|
+
additionalProperties: boolean;
|
|
6
|
+
required: string[];
|
|
7
|
+
properties: {
|
|
8
|
+
mode: {
|
|
9
|
+
const: string;
|
|
10
|
+
};
|
|
11
|
+
tokens: {
|
|
12
|
+
type: string;
|
|
13
|
+
minimum: number;
|
|
14
|
+
maximum: number;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
} | {
|
|
18
|
+
type: string;
|
|
19
|
+
additionalProperties: boolean;
|
|
20
|
+
required: string[];
|
|
21
|
+
properties: {
|
|
22
|
+
mode: {
|
|
23
|
+
const: string;
|
|
24
|
+
};
|
|
25
|
+
tokens?: undefined;
|
|
26
|
+
};
|
|
27
|
+
})[];
|
|
28
|
+
};
|
|
29
|
+
export declare const modelReasoningBudgetByModeSchema: {
|
|
30
|
+
type: string;
|
|
31
|
+
description: string;
|
|
32
|
+
additionalProperties: boolean;
|
|
33
|
+
properties: {
|
|
34
|
+
[k: string]: {
|
|
35
|
+
type: string;
|
|
36
|
+
minimum: number;
|
|
37
|
+
maximum: number;
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { MAX_REASONING_BUDGET_TOKENS } from "../../shared/model-reasoning.js";
|
|
2
|
+
export const modelReasoningBudgetSchema = {
|
|
3
|
+
description: "Reasoning-only budget for a declared budget-capable model. Zero disables thinking. Omit to inherit.",
|
|
4
|
+
oneOf: [
|
|
5
|
+
{
|
|
6
|
+
type: "object",
|
|
7
|
+
additionalProperties: false,
|
|
8
|
+
required: ["mode", "tokens"],
|
|
9
|
+
properties: {
|
|
10
|
+
mode: { const: "tokens" },
|
|
11
|
+
tokens: {
|
|
12
|
+
type: "integer",
|
|
13
|
+
minimum: 0,
|
|
14
|
+
maximum: MAX_REASONING_BUDGET_TOKENS,
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
type: "object",
|
|
20
|
+
additionalProperties: false,
|
|
21
|
+
required: ["mode"],
|
|
22
|
+
properties: { mode: { const: "server-default" } },
|
|
23
|
+
},
|
|
24
|
+
],
|
|
25
|
+
};
|
|
26
|
+
export const modelReasoningBudgetByModeSchema = {
|
|
27
|
+
type: "object",
|
|
28
|
+
description: "Optional llama.cpp token budgets for main-step Low/Reasoning/Deep presets. Omit to inherit; {} clears the inherited map. A provided map replaces the whole parent map. Zero disables thinking; positive mode budgets enable it.",
|
|
29
|
+
additionalProperties: false,
|
|
30
|
+
properties: Object.fromEntries(["fast", "reasoning", "deep"].map((mode) => [
|
|
31
|
+
mode,
|
|
32
|
+
{
|
|
33
|
+
type: "integer",
|
|
34
|
+
minimum: 0,
|
|
35
|
+
maximum: MAX_REASONING_BUDGET_TOKENS,
|
|
36
|
+
},
|
|
37
|
+
])),
|
|
38
|
+
};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { ModelGatewayPolicyConfig } from "../../model-gateway/types.js";
|
|
2
|
+
/** Run after configRef materialization, before accepting any Runtime request. */
|
|
3
|
+
export declare function validateEffectiveReasoningBudgets(issues: string[], policy: ModelGatewayPolicyConfig | undefined): void;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { supportsModelReasoningBudget } from "../../shared/model-reasoning.js";
|
|
2
|
+
function validateBoundBudget(issues, policy, profile, budget, path) {
|
|
3
|
+
if (budget === undefined)
|
|
4
|
+
return;
|
|
5
|
+
if (!profile)
|
|
6
|
+
return; // The model-reference owner diagnoses missing targets.
|
|
7
|
+
const provider = policy.providers?.[profile.provider ?? ""];
|
|
8
|
+
if (supportsModelReasoningBudget({
|
|
9
|
+
provider: provider?.type ?? "",
|
|
10
|
+
supportsThinking: profile.supportsThinking,
|
|
11
|
+
}))
|
|
12
|
+
return;
|
|
13
|
+
issues.push(`${path} requires a llamacpp profile with supportsThinking: true`);
|
|
14
|
+
}
|
|
15
|
+
function validateGenerationBudgets(issues, policy, profile, generation, path) {
|
|
16
|
+
for (const key of ["reasoningBudget", "reasoningBudgetByMode"]) {
|
|
17
|
+
validateBoundBudget(issues, policy, profile, generation?.[key], `${path}.${key}`);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
/** Run after configRef materialization, before accepting any Runtime request. */
|
|
21
|
+
export function validateEffectiveReasoningBudgets(issues, policy) {
|
|
22
|
+
if (!policy)
|
|
23
|
+
return;
|
|
24
|
+
const profiles = policy.profiles ?? {};
|
|
25
|
+
for (const [id, profile] of Object.entries(profiles)) {
|
|
26
|
+
validateGenerationBudgets(issues, policy, profile, profile.generation, `models.profiles.${id}.generation`);
|
|
27
|
+
for (const [slot, calibration] of Object.entries(profile.calibration ?? {})) {
|
|
28
|
+
const target = calibration.profileId
|
|
29
|
+
? profiles[calibration.profileId]
|
|
30
|
+
: profile;
|
|
31
|
+
validateGenerationBudgets(issues, policy, target, calibration.generation, `models.profiles.${id}.calibration.${slot}.generation`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
for (const [id, invocation] of Object.entries(policy.invocationProfiles ?? {})) {
|
|
35
|
+
validateGenerationBudgets(issues, policy, profiles[invocation.profileId], invocation.generation, `models.invocationProfiles.${id}.generation`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ChatMessage, ModelTokenEstimationConfig } from "../../../model-gateway/types.js";
|
|
2
2
|
import type { ModelStep } from "../../../shared/model-steps.js";
|
|
3
3
|
import type { RequestRunnerConfig } from "./contracts.js";
|
|
4
|
+
export type ConfiguredStepInstructionPolicy = "omit";
|
|
4
5
|
export type ConfiguredStepInstructionMetadata = Readonly<{
|
|
5
6
|
blockCount: number;
|
|
6
7
|
characterCount: number;
|
|
@@ -13,11 +14,13 @@ export type ConfiguredStepInstructionMetadata = Readonly<{
|
|
|
13
14
|
export declare function resolveConfiguredStepInstructionMetadata(params: {
|
|
14
15
|
runnerConfig: RequestRunnerConfig;
|
|
15
16
|
modelStep: ModelStep;
|
|
17
|
+
configuredInstructionPolicy?: ConfiguredStepInstructionPolicy;
|
|
16
18
|
}): ConfiguredStepInstructionMetadata;
|
|
17
19
|
/** Applies configured guidance exactly once at the shared invocation boundary. */
|
|
18
20
|
export declare function projectConfiguredStepMessages(params: {
|
|
19
21
|
runnerConfig: RequestRunnerConfig;
|
|
20
22
|
modelStep: ModelStep;
|
|
23
|
+
configuredInstructionPolicy?: ConfiguredStepInstructionPolicy;
|
|
21
24
|
messages: readonly ChatMessage[];
|
|
22
25
|
}): Readonly<{
|
|
23
26
|
messages: ChatMessage[];
|
|
@@ -30,5 +33,6 @@ export declare function projectConfiguredStepMessages(params: {
|
|
|
30
33
|
export declare function estimateConfiguredStepInstructionReserveTokens(params: {
|
|
31
34
|
runnerConfig: RequestRunnerConfig;
|
|
32
35
|
modelStep: ModelStep;
|
|
36
|
+
configuredInstructionPolicy?: ConfiguredStepInstructionPolicy;
|
|
33
37
|
tokenEstimation?: ModelTokenEstimationConfig;
|
|
34
38
|
}): number;
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { estimateTextTokens } from "../../context/token-estimator.js";
|
|
2
2
|
const EMPTY_STRINGS = Object.freeze([]);
|
|
3
|
+
const EMPTY_CONFIGURED_INSTRUCTIONS = Object.freeze({
|
|
4
|
+
blockCount: 0, characterCount: 0, refs: EMPTY_STRINGS, contentHashes: EMPTY_STRINGS,
|
|
5
|
+
});
|
|
3
6
|
const CONFIGURED_METHODOLOGY_HEADING = "## Configured operating methodology";
|
|
4
7
|
const CONFIGURED_METHODOLOGY_CONTRACT = "The following Markdown is configured guidance for this model step. Apply the shared principles and the section for your active role. It supplements the runtime contract above; it does not change the available actions, roles, capabilities, or output schema.";
|
|
5
8
|
/**
|
|
@@ -49,14 +52,12 @@ export function estimateConfiguredStepInstructionReserveTokens(params) {
|
|
|
49
52
|
: 0;
|
|
50
53
|
}
|
|
51
54
|
function resolveConfiguredStepContent(params) {
|
|
55
|
+
if (shouldOmitConfiguredStepInstructions(params.configuredInstructionPolicy)) {
|
|
56
|
+
return EMPTY_CONFIGURED_INSTRUCTIONS;
|
|
57
|
+
}
|
|
52
58
|
const blocks = params.runnerConfig.steps[params.modelStep]?.instructionBlocks ?? [];
|
|
53
59
|
if (blocks.length === 0) {
|
|
54
|
-
return
|
|
55
|
-
blockCount: 0,
|
|
56
|
-
characterCount: 0,
|
|
57
|
-
refs: EMPTY_STRINGS,
|
|
58
|
-
contentHashes: EMPTY_STRINGS,
|
|
59
|
-
});
|
|
60
|
+
return EMPTY_CONFIGURED_INSTRUCTIONS;
|
|
60
61
|
}
|
|
61
62
|
return Object.freeze({
|
|
62
63
|
appendix: [
|
|
@@ -70,3 +71,6 @@ function resolveConfiguredStepContent(params) {
|
|
|
70
71
|
contentHashes: Object.freeze(blocks.map((block) => block.contentHash)),
|
|
71
72
|
});
|
|
72
73
|
}
|
|
74
|
+
function shouldOmitConfiguredStepInstructions(policy) {
|
|
75
|
+
return policy === "omit";
|
|
76
|
+
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { modelReasoningBudgetByModeSchema, modelReasoningBudgetSchema } from "./model-reasoning-schema.js";
|
|
1
2
|
import { modelPluginConfigSchema } from "./model-plugin-config.js";
|
|
2
3
|
import { DEFAULT_MEMORY_RECALL_CALL_LIMIT } from "../long-term-memory/recall-policy.js";
|
|
3
4
|
import { PATH_CONFIG_FIELDS, STRING_CONFIG_FIELDS, TIMEOUT_CONFIG_FIELDS, } from "./fields.js";
|
|
@@ -80,6 +81,8 @@ function modelGenerationSchema() {
|
|
|
80
81
|
type: "number",
|
|
81
82
|
description: "Nucleus sampling value forwarded to the model provider.",
|
|
82
83
|
},
|
|
84
|
+
reasoningBudget: modelReasoningBudgetSchema,
|
|
85
|
+
reasoningBudgetByMode: modelReasoningBudgetByModeSchema,
|
|
83
86
|
reasoningEffort: {
|
|
84
87
|
type: "string",
|
|
85
88
|
enum: ["none", "minimal", "low", "medium", "high", "xhigh"],
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { parseModelReasoningBudgetByMode } from "../../../shared/model-reasoning-modes.js";
|
|
2
|
+
import { parseModelReasoningBudget } from "../../../shared/model-reasoning.js";
|
|
1
3
|
import { hasOwnValue } from "../utils.js";
|
|
2
4
|
import { validateOptionalNonNegativeInteger, validateOptionalNumber, validateOptionalObject, validateOptionalPositiveNumber, } from "./runtime-config-field-validation.js";
|
|
3
5
|
const SUPPORTED_MODEL_REASONING_EFFORTS = new Set([
|
|
@@ -53,6 +55,18 @@ export function validateModelContextConfig(issues, context, displayKey) {
|
|
|
53
55
|
}
|
|
54
56
|
}
|
|
55
57
|
export function validateModelGenerationConfig(issues, generation, displayKey) {
|
|
58
|
+
try {
|
|
59
|
+
parseModelReasoningBudget(generation.reasoningBudget);
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
issues.push(`${displayKey}.reasoningBudget: ${String(error)}`);
|
|
63
|
+
}
|
|
64
|
+
try {
|
|
65
|
+
parseModelReasoningBudgetByMode(generation.reasoningBudgetByMode);
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
issues.push(`${displayKey}.reasoningBudgetByMode: ${String(error)}`);
|
|
69
|
+
}
|
|
56
70
|
if (hasOwnValue(generation, "maxOutputTokens")) {
|
|
57
71
|
issues.push(`${displayKey}.maxOutputTokens is not supported; remove it and let the provider enforce physical output capacity`);
|
|
58
72
|
}
|
|
@@ -4,4 +4,6 @@ type CompactedResultContent = Pick<RequestToolResult, "adapterResult" | "referen
|
|
|
4
4
|
export declare function projectCompactedCapabilityResultReceipt<Result extends CompactedResultContent>(result: Result): Readonly<Omit<Omit<Result, "adapterResult"> & {
|
|
5
5
|
summary: string;
|
|
6
6
|
}, "referenceData">>;
|
|
7
|
+
/** The caller must verify that the registered output belongs to the covered source. */
|
|
8
|
+
export declare function projectCompactedRegisteredOutputSummary(summary: string, registeredOutput: string | undefined): string;
|
|
7
9
|
export {};
|
|
@@ -4,19 +4,20 @@ export function projectCompactedCapabilityResultReceipt(result) {
|
|
|
4
4
|
const { adapterResult: _adapterResult, ...metadata } = result;
|
|
5
5
|
const receipt = {
|
|
6
6
|
...metadata,
|
|
7
|
-
summary:
|
|
8
|
-
?
|
|
9
|
-
:
|
|
7
|
+
summary: projectCompactedRegisteredOutputSummary(result.summary, result.adapterResult?.kind === "registered_tool_execution_result_v1"
|
|
8
|
+
? result.adapterResult.result.output
|
|
9
|
+
: undefined),
|
|
10
10
|
};
|
|
11
11
|
if (!isReferenceDataCoveredByCompactedResult(result))
|
|
12
12
|
return Object.freeze(receipt);
|
|
13
13
|
const { referenceData: _referenceData, ...coveredReceipt } = receipt;
|
|
14
14
|
return Object.freeze(coveredReceipt);
|
|
15
15
|
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
/** The caller must verify that the registered output belongs to the covered source. */
|
|
17
|
+
export function projectCompactedRegisteredOutputSummary(summary, registeredOutput) {
|
|
18
|
+
return summary === registeredOutput
|
|
19
|
+
? "Result evidence is available in the verified compacted source."
|
|
20
|
+
: summary;
|
|
20
21
|
}
|
|
21
22
|
function isReferenceDataCoveredByCompactedResult(result) {
|
|
22
23
|
if (isReferenceDataRepresentedByAdapterResult(result))
|
|
@@ -21,6 +21,10 @@ type ExecutionEvidenceProjection = Readonly<{
|
|
|
21
21
|
objective: string;
|
|
22
22
|
callId: string;
|
|
23
23
|
store?: RequestContextCompactionStore;
|
|
24
|
+
updates?: readonly Readonly<{
|
|
25
|
+
text: string;
|
|
26
|
+
}>[];
|
|
27
|
+
sourceRevision?: number;
|
|
24
28
|
results: readonly ExecutionEvidenceIdentity[];
|
|
25
29
|
}>;
|
|
26
30
|
/** Resolve only source digests; never transfer the root's continuation authority. */
|
|
@@ -1,15 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { resolveExecutionEvidenceCheckpoint } from "./execution-compaction-checkpoint-selection.js";
|
|
2
2
|
import { isDeepStrictEqual } from "node:util";
|
|
3
|
-
import { MODEL_STEPS } from "../../shared/model-steps.js";
|
|
4
|
-
import { createSemanticCompactionSha256Fingerprint, } from "./semantic-compaction/contracts.js";
|
|
5
3
|
/** Resolve only source digests; never transfer the root's continuation authority. */
|
|
6
4
|
export function resolveExecutionCompactedSources(params) {
|
|
7
5
|
const store = params.store;
|
|
8
6
|
if (!store)
|
|
9
7
|
return undefined;
|
|
10
|
-
const checkpoint =
|
|
11
|
-
.findByCallIds([params.callId])
|
|
12
|
-
.find((candidate) => canReuseExecutionCheckpoint(candidate, params));
|
|
8
|
+
const checkpoint = resolveExecutionEvidenceCheckpoint(params);
|
|
13
9
|
if (!checkpoint)
|
|
14
10
|
return undefined;
|
|
15
11
|
const digests = new Map(checkpoint.sourceDigests.map((digest) => [digest.sourceRef, digest]));
|
|
@@ -33,23 +29,6 @@ export function resolveExecutionCompactedSources(params) {
|
|
|
33
29
|
sources: Object.freeze(sources),
|
|
34
30
|
});
|
|
35
31
|
}
|
|
36
|
-
function canReuseExecutionCheckpoint(checkpoint, params) {
|
|
37
|
-
if (checkpoint.requestId !== params.requestId)
|
|
38
|
-
return false;
|
|
39
|
-
if (checkpoint.callId !== params.callId)
|
|
40
|
-
return false;
|
|
41
|
-
if (checkpoint.roleId !== "supervisor")
|
|
42
|
-
return false;
|
|
43
|
-
if (checkpoint.scopeId !== executionCompactionScopeId(params))
|
|
44
|
-
return false;
|
|
45
|
-
if (checkpoint.currentRequestFingerprint !==
|
|
46
|
-
createSemanticCompactionSha256Fingerprint(params.prompt))
|
|
47
|
-
return false;
|
|
48
|
-
if (checkpoint.objectiveFingerprint !==
|
|
49
|
-
createSemanticCompactionSha256Fingerprint(params.objective))
|
|
50
|
-
return false;
|
|
51
|
-
return checkpoint.allowedConsumers.includes(MODEL_STEPS.EXECUTION_DECISION);
|
|
52
|
-
}
|
|
53
32
|
export function matchesCompactedExecutionResult(content, result) {
|
|
54
33
|
const message = readCompactionRecord(content);
|
|
55
34
|
if (message?.role !== "tool")
|