@abot-ai/runtime 1.8.1 → 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 +63 -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/chat.js +9 -5
- 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/invocation-error.d.ts +9 -0
- package/dist/src/model-gateway/client/invocation-error.js +30 -0
- 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/client/stream-consumer.js +9 -2
- package/dist/src/model-gateway/client/stream-parser.js +2 -1
- 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-normal-invocations/execution/approval.d.ts +5 -1
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/approval.js +15 -1
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/prepared-execution.js +7 -5
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/prepared-snapshot.js +9 -2
- package/dist/src/runtime/adapters/registered-tool-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 +4 -1
- package/dist/src/runtime/capabilities/automation-builder/payload-schema.js +7 -5
- package/dist/src/runtime/capabilities/automation-builder/tool-module.js +4 -4
- 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/draft-index.d.ts +1 -1
- package/dist/src/runtime/capabilities/automations/tool-contract.js +3 -2
- package/dist/src/runtime/capabilities/automations/tool-module.js +20 -11
- package/dist/src/runtime/capabilities/core-tool-contracts.d.ts +29 -0
- package/dist/src/runtime/capabilities/core-tool-contracts.js +38 -0
- package/dist/src/runtime/capabilities/knowledge-skills/read-many.d.ts +4 -0
- package/dist/src/runtime/capabilities/knowledge-skills/read-many.js +21 -0
- package/dist/src/runtime/capabilities/knowledge-skills/read-targets.d.ts +13 -0
- package/dist/src/runtime/capabilities/knowledge-skills/read-targets.js +44 -0
- package/dist/src/runtime/capabilities/knowledge-skills/tool-contract.d.ts +141 -0
- package/dist/src/runtime/capabilities/knowledge-skills/tool-contract.js +58 -0
- package/dist/src/runtime/capabilities/knowledge-skills/tool-module.d.ts +4 -0
- package/dist/src/runtime/capabilities/knowledge-skills/tool-module.js +78 -0
- package/dist/src/runtime/capabilities/knowledge-skills/tool-output.d.ts +12 -0
- package/dist/src/runtime/capabilities/knowledge-skills/tool-output.js +21 -0
- package/dist/src/runtime/capabilities/knowledge-skills/write-contract.d.ts +77 -0
- package/dist/src/runtime/capabilities/knowledge-skills/write-contract.js +28 -0
- package/dist/src/runtime/capabilities/knowledge-skills/write-operations.d.ts +3 -0
- package/dist/src/runtime/capabilities/knowledge-skills/write-operations.js +34 -0
- package/dist/src/runtime/capabilities/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 +8 -5
- package/dist/src/runtime/capabilities/scheduling/update-operations.js +2 -0
- package/dist/src/runtime/composition.d.ts +5 -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/capability-result-compaction-source.d.ts +3 -1
- package/dist/src/runtime/context/capability-result-compaction-source.js +13 -1
- package/dist/src/runtime/context/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/core-skill-read-context.d.ts +16 -0
- package/dist/src/runtime/context/core-skill-read-context.js +76 -0
- package/dist/src/runtime/context/exact-evidence-match.d.ts +3 -0
- package/dist/src/runtime/context/exact-evidence-match.js +34 -0
- package/dist/src/runtime/context/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 +27 -304
- 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/core-skill-read-source.d.ts +9 -0
- package/dist/src/runtime/context/semantic-compaction/core-skill-read-source.js +38 -0
- package/dist/src/runtime/context/semantic-compaction/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 +5 -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/prompt.js +7 -7
- package/dist/src/runtime/context/semantic-compaction/replacement-budget.js +3 -1
- package/dist/src/runtime/context/semantic-compaction/run.js +16 -15
- package/dist/src/runtime/context/semantic-compaction/super-source-integrity.js +33 -3
- package/dist/src/runtime/context/session-artifact-paths.d.ts +2 -1
- package/dist/src/runtime/context/session-artifact-paths.js +2 -1
- package/dist/src/runtime/context/session-memory/model-step-controller.d.ts +2 -2
- package/dist/src/runtime/context/super-worker-compaction-failure.d.ts +1 -1
- package/dist/src/runtime/context/super-worker-compaction-failure.js +2 -1
- package/dist/src/runtime/context/super-worker-compaction-sidecar.d.ts +2 -1
- package/dist/src/runtime/context/super-worker-compaction-sidecar.js +9 -3
- package/dist/src/runtime/default-environment-adapters.d.ts +2 -1
- package/dist/src/runtime/default-environment-adapters.js +5 -1
- package/dist/src/runtime/knowledge-skills/available-skills-projection.d.ts +17 -0
- package/dist/src/runtime/knowledge-skills/available-skills-projection.js +66 -0
- package/dist/src/runtime/knowledge-skills/available-skills.d.ts +7 -0
- package/dist/src/runtime/knowledge-skills/available-skills.js +17 -0
- package/dist/src/runtime/knowledge-skills/builtins/abot-studio.d.ts +2 -0
- package/dist/src/runtime/knowledge-skills/builtins/abot-studio.js +27 -0
- package/dist/src/runtime/knowledge-skills/builtins/computer-use.d.ts +2 -0
- package/dist/src/runtime/knowledge-skills/builtins/computer-use.js +34 -0
- package/dist/src/runtime/knowledge-skills/builtins/skill-creator.d.ts +2 -0
- package/dist/src/runtime/knowledge-skills/builtins/skill-creator.js +29 -0
- package/dist/src/runtime/knowledge-skills/builtins/technical-work.d.ts +2 -0
- package/dist/src/runtime/knowledge-skills/builtins/technical-work.js +45 -0
- 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.d.ts +2 -0
- package/dist/src/runtime/knowledge-skills/catalog.js +14 -0
- package/dist/src/runtime/knowledge-skills/personal-contracts.d.ts +48 -0
- package/dist/src/runtime/knowledge-skills/personal-contracts.js +29 -0
- package/dist/src/runtime/knowledge-skills/personal-documents.d.ts +6 -0
- package/dist/src/runtime/knowledge-skills/personal-documents.js +56 -0
- package/dist/src/runtime/knowledge-skills/personal-management.d.ts +9 -0
- package/dist/src/runtime/knowledge-skills/personal-management.js +64 -0
- package/dist/src/runtime/knowledge-skills/personal-repository.d.ts +6 -0
- package/dist/src/runtime/knowledge-skills/personal-repository.js +76 -0
- package/dist/src/runtime/knowledge-skills/personal-store.d.ts +4 -0
- package/dist/src/runtime/knowledge-skills/personal-store.js +33 -0
- package/dist/src/runtime/knowledge-skills/read-evidence.d.ts +3 -0
- package/dist/src/runtime/knowledge-skills/read-evidence.js +13 -0
- package/dist/src/runtime/knowledge-skills/store.d.ts +19 -0
- package/dist/src/runtime/knowledge-skills/store.js +41 -0
- package/dist/src/runtime/local-application.d.ts +7 -1
- package/dist/src/runtime/local-host/app-service-dispatch.d.ts +2 -1
- package/dist/src/runtime/local-host/app-service-dispatch.js +7 -0
- package/dist/src/runtime/local-host/client-services.d.ts +8 -1
- package/dist/src/runtime/local-host/client-services.js +3 -2
- package/dist/src/runtime/local-host/saved-approvals.js +1 -0
- package/dist/src/runtime/long-term-memory/conversation-authoring/context.d.ts +1 -0
- package/dist/src/runtime/long-term-memory/conversation-authoring/context.js +1 -1
- package/dist/src/runtime/long-term-memory/conversation-authoring/plain-text-context.d.ts +5 -0
- package/dist/src/runtime/long-term-memory/conversation-authoring/plain-text-context.js +28 -0
- package/dist/src/runtime/long-term-memory/initial-context.d.ts +1 -0
- package/dist/src/runtime/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/context-compaction-admission.d.ts +1 -0
- package/dist/src/runtime/model/context-compaction-admission.js +35 -1
- package/dist/src/runtime/model/context-compaction-contracts.d.ts +9 -1
- package/dist/src/runtime/model/input-token-count.js +1 -0
- package/dist/src/runtime/model/invoke-step.js +18 -2
- 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/model/provider-failure.d.ts +13 -0
- package/dist/src/runtime/model/provider-failure.js +37 -0
- package/dist/src/runtime/orchestration/role-calls/activation-budget.js +1 -0
- package/dist/src/runtime/orchestration/role-calls/candidate-validation.js +2 -0
- package/dist/src/runtime/orchestration/role-calls/checkpoint-state.js +2 -1
- package/dist/src/runtime/orchestration/role-calls/command-decoder.js +3 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/skill-read-transition.d.ts +4 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/skill-read-transition.js +48 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch.js +3 -0
- package/dist/src/runtime/orchestration/role-calls/contracts.d.ts +6 -3
- package/dist/src/runtime/orchestration/role-calls/contracts.js +3 -3
- package/dist/src/runtime/orchestration/role-calls/skill-read.d.ts +47 -0
- package/dist/src/runtime/orchestration/role-calls/skill-read.js +196 -0
- package/dist/src/runtime/orchestration/role-executors/activation/model-output-failure.d.ts +1 -1
- package/dist/src/runtime/orchestration/role-executors/activation/model-output-failure.js +4 -2
- package/dist/src/runtime/orchestration/worker-capabilities/binding/create-binding.js +4 -1
- package/dist/src/runtime/orchestration/worker-capabilities/contracts.d.ts +1 -1
- package/dist/src/runtime/orchestration/worker-capabilities/contracts.js +1 -1
- package/dist/src/runtime/orchestration/worker-capabilities/execution/approval-group.js +5 -3
- package/dist/src/runtime/orchestration/worker-capabilities/payload-compaction-transport.d.ts +2 -0
- package/dist/src/runtime/orchestration/worker-capabilities/payload-compaction-transport.js +7 -2
- package/dist/src/runtime/orchestration/worker-capabilities/supervisor-skill-authority.d.ts +19 -0
- package/dist/src/runtime/orchestration/worker-capabilities/supervisor-skill-authority.js +43 -0
- package/dist/src/runtime/plugins/loader.js +7 -6
- package/dist/src/runtime/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 +2 -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/bound-runtime-handler.js +1 -0
- package/dist/src/runtime/request/contracts.d.ts +7 -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.d.ts +2 -2
- package/dist/src/runtime/request/execution-payload-compacted-evidence.js +1 -0
- package/dist/src/runtime/request/execution-scope-surfaces.d.ts +4 -0
- package/dist/src/runtime/request/execution-scope-surfaces.js +10 -0
- package/dist/src/runtime/request/execution-scope.d.ts +8 -2
- package/dist/src/runtime/request/execution-scope.js +13 -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/payload-settled-evidence.d.ts +11 -0
- package/dist/src/runtime/request/payload-settled-evidence.js +29 -0
- package/dist/src/runtime/request/prepared-execution.d.ts +1 -0
- package/dist/src/runtime/request/prepared-execution.js +5 -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/role-call-delegation-events.d.ts +19 -0
- package/dist/src/runtime/request/role-call-delegation-events.js +52 -0
- package/dist/src/runtime/request/role-call-return-events.d.ts +19 -0
- package/dist/src/runtime/request/role-call-return-events.js +63 -0
- package/dist/src/runtime/request/role-executor-composition.js +2 -2
- package/dist/src/runtime/request/root-capability-binding.d.ts +24 -0
- package/dist/src/runtime/request/root-capability-binding.js +57 -0
- package/dist/src/runtime/request/root-capability-catalog.d.ts +16 -0
- package/dist/src/runtime/request/root-capability-catalog.js +20 -0
- package/dist/src/runtime/request/root-contract.d.ts +11 -1
- package/dist/src/runtime/request/root-execution-kernel.js +35 -68
- package/dist/src/runtime/request/root-reference-action.d.ts +15 -0
- package/dist/src/runtime/request/root-reference-action.js +48 -0
- package/dist/src/runtime/request/root-skill-read-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.d.ts +13 -0
- package/dist/src/runtime/request/root-skill-read.js +110 -0
- package/dist/src/runtime/request/runner.js +10 -0
- package/dist/src/runtime/request/super-payload-context-failure.js +13 -4
- package/dist/src/runtime/request/supervisor-root-execution.js +48 -1
- package/dist/src/runtime/request/supervisor-skill-edit-target.d.ts +9 -0
- package/dist/src/runtime/request/supervisor-skill-edit-target.js +25 -0
- package/dist/src/runtime/request/supervisor-skill-payload-context.d.ts +21 -0
- package/dist/src/runtime/request/supervisor-skill-payload-context.js +91 -0
- package/dist/src/runtime/request/supervisor-skill-selection-window.d.ts +16 -0
- package/dist/src/runtime/request/supervisor-skill-selection-window.js +17 -0
- package/dist/src/runtime/request/supervisor-skill-write-preparation.d.ts +25 -0
- package/dist/src/runtime/request/supervisor-skill-write-preparation.js +71 -0
- package/dist/src/runtime/request/worker-capability-composition.d.ts +4 -1
- package/dist/src/runtime/request/worker-capability-composition.js +6 -1
- package/dist/src/runtime/request/worker-capability-payload.d.ts +1 -1
- package/dist/src/runtime/request/worker-capability-payload.js +44 -37
- package/dist/src/runtime/runtime-environment.d.ts +2 -0
- package/dist/src/runtime/runtime-environment.js +12 -1
- package/dist/src/runtime/scheduler/contracts.d.ts +11 -1
- package/dist/src/runtime/scheduler/job-management.js +7 -1
- package/dist/src/runtime/scheduler/run-list-filter.d.ts +11 -0
- package/dist/src/runtime/scheduler/run-list-filter.js +56 -0
- package/dist/src/runtime/scheduler/run-list-query.d.ts +2 -2
- package/dist/src/runtime/scheduler/run-list-query.js +4 -1
- package/dist/src/runtime/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/contracts.d.ts +2 -0
- package/dist/src/runtime/steps/auditor-decision/evidence-representation.d.ts +2 -2
- package/dist/src/runtime/steps/auditor-decision/evidence-representation.js +2 -34
- package/dist/src/runtime/steps/auditor-decision/input.js +21 -3
- package/dist/src/runtime/steps/auditor-decision/projection.js +7 -0
- package/dist/src/runtime/steps/auditor-decision/prompt.d.ts +1 -1
- package/dist/src/runtime/steps/auditor-decision/prompt.js +14 -3
- package/dist/src/runtime/steps/capability-execution-guidance.d.ts +7 -0
- package/dist/src/runtime/steps/capability-execution-guidance.js +28 -0
- package/dist/src/runtime/steps/capability-execution-instructions.d.ts +0 -2
- package/dist/src/runtime/steps/capability-execution-instructions.js +0 -2
- package/dist/src/runtime/steps/execution-agent/capability-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-result-context.d.ts +5 -2
- package/dist/src/runtime/steps/execution-agent/capability-result-context.js +22 -3
- package/dist/src/runtime/steps/execution-agent/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.d.ts +3 -2
- package/dist/src/runtime/steps/execution-agent/compaction.js +31 -7
- package/dist/src/runtime/steps/execution-agent/controls-compacted-evidence.js +2 -0
- package/dist/src/runtime/steps/execution-agent/direct-response-prompt.js +14 -14
- 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 +24 -38
- 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 +42 -38
- package/dist/src/runtime/steps/execution-agent/refinement-input.d.ts +1 -0
- package/dist/src/runtime/steps/execution-agent/refinement-prompt.js +4 -1
- package/dist/src/runtime/steps/execution-agent/refinement.d.ts +3 -2
- package/dist/src/runtime/steps/execution-agent/refinement.js +17 -6
- package/dist/src/runtime/steps/execution-agent/response-prompt.js +1 -0
- package/dist/src/runtime/steps/execution-agent/response-run.js +1 -1
- package/dist/src/runtime/steps/execution-agent/run.js +8 -2
- package/dist/src/runtime/steps/execution-agent/state-context.js +1 -1
- package/dist/src/runtime/steps/knowledge-skill-instructions.d.ts +3 -0
- package/dist/src/runtime/steps/knowledge-skill-instructions.js +3 -0
- package/dist/src/runtime/steps/planner-decision/capability-brief.d.ts +2 -2
- package/dist/src/runtime/steps/planner-decision/capability-brief.js +5 -1
- package/dist/src/runtime/steps/planner-decision/input.d.ts +2 -2
- package/dist/src/runtime/steps/planner-decision/input.js +7 -1
- package/dist/src/runtime/steps/planner-decision/prompt.js +3 -0
- package/dist/src/runtime/steps/planner-graph/input.d.ts +2 -2
- package/dist/src/runtime/steps/planner-graph/input.js +9 -8
- package/dist/src/runtime/steps/planner-graph/prompt.js +2 -2
- package/dist/src/runtime/steps/planner-graph/run.d.ts +2 -2
- package/dist/src/runtime/steps/planner-graph/run.js +5 -5
- package/dist/src/runtime/steps/planner-graph/skill-guidance.d.ts +5 -0
- package/dist/src/runtime/steps/planner-graph/skill-guidance.js +62 -0
- package/dist/src/runtime/steps/reviewer-decision/final-evidence.d.ts +1 -0
- package/dist/src/runtime/steps/reviewer-decision/final-evidence.js +3 -1
- package/dist/src/runtime/steps/reviewer-decision/input.d.ts +3 -1
- package/dist/src/runtime/steps/reviewer-decision/input.js +2 -22
- package/dist/src/runtime/steps/reviewer-decision/model-context.d.ts +21 -0
- package/dist/src/runtime/steps/reviewer-decision/model-context.js +32 -1
- package/dist/src/runtime/steps/reviewer-decision/projection.js +4 -0
- package/dist/src/runtime/steps/reviewer-decision/prompt.d.ts +1 -1
- package/dist/src/runtime/steps/reviewer-decision/prompt.js +15 -4
- package/dist/src/runtime/steps/reviewer-decision/run.d.ts +2 -0
- package/dist/src/runtime/steps/reviewer-decision/run.js +6 -0
- package/dist/src/runtime/steps/skill-read-decision.d.ts +35 -0
- package/dist/src/runtime/steps/skill-read-decision.js +96 -0
- package/dist/src/runtime/steps/supervisor-decision/artifact-paths.d.ts +27 -0
- package/dist/src/runtime/steps/supervisor-decision/artifact-paths.js +147 -0
- package/dist/src/runtime/steps/supervisor-decision/capability-brief.d.ts +2 -0
- package/dist/src/runtime/steps/supervisor-decision/capability-brief.js +9 -2
- package/dist/src/runtime/steps/supervisor-decision/contracts.d.ts +12 -3
- package/dist/src/runtime/steps/supervisor-decision/contracts.js +5 -0
- package/dist/src/runtime/steps/supervisor-decision/decision-phases.d.ts +40 -0
- package/dist/src/runtime/steps/supervisor-decision/decision-phases.js +143 -0
- 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/diagnostics.d.ts +5 -1
- package/dist/src/runtime/steps/supervisor-decision/diagnostics.js +4 -0
- package/dist/src/runtime/steps/supervisor-decision/format.d.ts +1 -0
- package/dist/src/runtime/steps/supervisor-decision/format.js +2 -0
- package/dist/src/runtime/steps/supervisor-decision/input.d.ts +8 -1
- package/dist/src/runtime/steps/supervisor-decision/input.js +30 -11
- package/dist/src/runtime/steps/supervisor-decision/parser.d.ts +1 -0
- package/dist/src/runtime/steps/supervisor-decision/parser.js +11 -0
- package/dist/src/runtime/steps/supervisor-decision/preparation-input.d.ts +24 -0
- package/dist/src/runtime/steps/supervisor-decision/preparation-input.js +23 -0
- package/dist/src/runtime/steps/supervisor-decision/preparation.d.ts +20 -0
- package/dist/src/runtime/steps/supervisor-decision/preparation.js +117 -0
- package/dist/src/runtime/steps/supervisor-decision/presentation.d.ts +13 -0
- package/dist/src/runtime/steps/supervisor-decision/presentation.js +47 -0
- package/dist/src/runtime/steps/supervisor-decision/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.d.ts +4 -0
- package/dist/src/runtime/steps/supervisor-decision/prompt.js +85 -111
- package/dist/src/runtime/steps/supervisor-decision/response-recommendation.d.ts +2 -0
- package/dist/src/runtime/steps/supervisor-decision/response-recommendation.js +2 -0
- package/dist/src/runtime/steps/supervisor-decision/resume.d.ts +3 -0
- package/dist/src/runtime/steps/supervisor-decision/resume.js +20 -0
- package/dist/src/runtime/steps/supervisor-decision/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.d.ts +6 -0
- package/dist/src/runtime/steps/supervisor-decision/run.js +120 -163
- 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 +23 -0
- package/dist/src/runtime/steps/supervisor-decision/skill-selection-input.js +27 -0
- package/dist/src/runtime/steps/supervisor-decision/skill-selection.d.ts +17 -0
- package/dist/src/runtime/steps/supervisor-decision/skill-selection.js +91 -0
- package/dist/src/runtime/steps/supervisor-response/input.d.ts +3 -0
- package/dist/src/runtime/steps/supervisor-response/input.js +5 -0
- package/dist/src/runtime/steps/supervisor-response/prompt.js +20 -4
- package/dist/src/runtime/steps/supervisor-response/response-recommendation.d.ts +3 -0
- package/dist/src/runtime/steps/supervisor-response/response-recommendation.js +24 -4
- package/dist/src/runtime/steps/supervisor-response/run.d.ts +5 -0
- package/dist/src/runtime/steps/supervisor-skill-authoring/contract.d.ts +43 -0
- package/dist/src/runtime/steps/supervisor-skill-authoring/contract.js +85 -0
- package/dist/src/runtime/steps/supervisor-skill-authoring/input.d.ts +35 -0
- package/dist/src/runtime/steps/supervisor-skill-authoring/input.js +87 -0
- package/dist/src/runtime/steps/supervisor-skill-authoring/run.d.ts +10 -0
- package/dist/src/runtime/steps/supervisor-skill-authoring/run.js +35 -0
- package/dist/src/runtime/steps/supervisor-skill-instructions.d.ts +4 -0
- package/dist/src/runtime/steps/supervisor-skill-instructions.js +4 -0
- package/dist/src/runtime/steps/worker-capability-scope-decision.js +14 -1
- package/dist/src/runtime/steps/worker-decision/contracts.d.ts +1 -0
- package/dist/src/runtime/steps/worker-decision/input/execution-guidance.d.ts +5 -0
- package/dist/src/runtime/steps/worker-decision/input/execution-guidance.js +31 -0
- package/dist/src/runtime/steps/worker-decision/input/prompt-context.js +2 -25
- package/dist/src/runtime/steps/worker-decision/input/reference-context.js +4 -0
- package/dist/src/runtime/steps/worker-decision/prompt.js +6 -2
- package/dist/src/runtime/steps/worker-decision/result-author.js +6 -0
- package/dist/src/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 +12 -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 +14 -4
- 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/run-history-controls.js +77 -0
- package/dist/src/web-ui/app/components/automations/run-history.js +55 -0
- package/dist/src/web-ui/app/components/automations/run.js +3 -8
- package/dist/src/web-ui/app/components/automations/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 +39 -45
- 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 +32 -2
- package/dist/src/web-ui/app/components/conversation-role-delegations.d.ts +12 -0
- package/dist/src/web-ui/app/components/conversation-role-delegations.js +24 -0
- package/dist/src/web-ui/app/components/conversation-role-history.d.ts +13 -0
- package/dist/src/web-ui/app/components/conversation-role-history.js +81 -0
- package/dist/src/web-ui/app/components/conversation-role-returns.d.ts +12 -0
- package/dist/src/web-ui/app/components/conversation-role-returns.js +23 -0
- package/dist/src/web-ui/app/components/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/onboarding-workspace-access.js +1 -1
- 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 +123 -0
- 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 +41 -39
- 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/automation-read-projection.js +8 -4
- package/dist/src/web-ui/app/controllers/automation-run-actions.js +3 -1
- package/dist/src/web-ui/app/controllers/automation-run-history.js +159 -0
- package/dist/src/web-ui/app/controllers/automations-controller.js +36 -12
- 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 +12 -6
- 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/realtime-event-controller.js +22 -1
- 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 +23 -4
- 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 +254 -0
- 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/conversation-role-model.d.ts +5 -0
- package/dist/src/web-ui/app/lib/conversation-role-model.js +63 -5
- package/dist/src/web-ui/app/lib/event-presentation.js +34 -0
- package/dist/src/web-ui/app/lib/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/role-delegation-event.d.ts +18 -0
- package/dist/src/web-ui/app/lib/role-delegation-event.js +47 -0
- package/dist/src/web-ui/app/lib/role-return-event.d.ts +19 -0
- package/dist/src/web-ui/app/lib/role-return-event.js +36 -0
- package/dist/src/web-ui/app/lib/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 +9 -6
- 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 +50 -0
- package/dist/src/web-ui/app/lib/workspace-route.js +1 -0
- 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.d.ts +9 -1
- package/dist/src/web-ui/app/services/runtime-web-client/automations.js +16 -6
- 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/skills.js +23 -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 +4 -0
- package/dist/src/web-ui/app/services/session-sidebar-preferences.js +33 -13
- package/dist/src/web-ui/app/skills-feature.js +35 -0
- 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/24-conversation-role-cards.css +58 -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/40-skills.css +34 -0
- package/dist/src/web-ui/app/styles/50-automations.css +24 -3
- 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/95-home-widgets.css +2 -1
- package/dist/src/web-ui/app/styles.css +9 -0
- package/dist/src/web-ui/app/ui-behavior.d.ts +1 -1
- package/dist/src/web-ui/app/ui-behavior.js +1 -0
- package/dist/src/web-ui/client-state/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/client-state/store.js +3 -2
- package/dist/src/web-ui/client-state/transaction-order.d.ts +2 -0
- package/dist/src/web-ui/client-state/transaction-order.js +18 -0
- package/dist/src/web-ui/local-runtime/api-router.d.ts +2 -0
- package/dist/src/web-ui/local-runtime/api-router.js +18 -0
- package/dist/src/web-ui/local-runtime/automation-routes.js +2 -1
- package/dist/src/web-ui/local-runtime/automation-run-page.d.ts +5 -0
- package/dist/src/web-ui/local-runtime/automation-run-page.js +26 -0
- package/dist/src/web-ui/local-runtime/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/dist/src/web-ui/local-runtime/skill-management-routes.d.ts +18 -0
- package/dist/src/web-ui/local-runtime/skill-management-routes.js +118 -0
- package/docs/configuration.md +11 -1
- 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/docs/runtime-public-contracts.md +37 -0
- package/examples/request-runner.config.example.json +3 -0
- 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/plugins/web/skills/web_fetch_skill/SKILL.md +1 -2
- package/plugins/web/skills/web_search_skill/SKILL.md +3 -7
- package/runtime.config.schema.json +140 -0
- package/src/runtime/README.md +145 -4
|
@@ -46,7 +46,7 @@ function nodeIsRunning(node, run) {
|
|
|
46
46
|
|
|
47
47
|
function nodeMetadata(node) {
|
|
48
48
|
if (node.kind === "agent") {
|
|
49
|
-
return [node.modelProfileId || "Model not selected", displayReasoningMode(node.agentMode) || ""].filter(Boolean).join(" · ");
|
|
49
|
+
return [node.modelProfileId || "Model not selected", displayReasoningMode(node.agentMode, node.reasoningPreference) || ""].filter(Boolean).join(" · ");
|
|
50
50
|
}
|
|
51
51
|
return [node.operation?.toolName, node.operation?.operationId].filter(Boolean).join(" · ") || "Operation not selected";
|
|
52
52
|
}
|
|
@@ -128,7 +128,7 @@ export function renderAutomationNodeDetails(node, run = null) {
|
|
|
128
128
|
const record = nodeRunState(run, node.id);
|
|
129
129
|
const operation = node.kind === "tool"
|
|
130
130
|
? `<dt>Operation</dt><dd>${escapeHtml(nodeMetadata(node))}</dd>`
|
|
131
|
-
: `<dt>Model</dt><dd>${escapeHtml(node.modelProfileId || "Not selected")}</dd><dt>Role</dt><dd>${escapeHtml(displayReasoningMode(node.agentMode) || "Not selected")}</dd>`;
|
|
131
|
+
: `<dt>Model</dt><dd>${escapeHtml(node.modelProfileId || "Not selected")}</dd><dt>Role</dt><dd>${escapeHtml(displayReasoningMode(node.agentMode, node.reasoningPreference) || "Not selected")}</dd>`;
|
|
132
132
|
const prompt = node.kind === "agent" && node.prompt
|
|
133
133
|
? `<div class="automation-inspector-prompt"><strong>Prompt</strong><p dir="auto">${escapeHtml(node.prompt)}</p></div>`
|
|
134
134
|
: "";
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { captureAutomationConfirmationScope } from "./confirmation-actions.js";
|
|
2
|
+
import { focusSelectedAutomationStep } from "./run-steps-view.js";
|
|
3
|
+
|
|
4
|
+
/** Clean navigation stays synchronous; an async discard approval is never truthy permission. */
|
|
5
|
+
export function createAutomationWorkspaceNavigation({ actions, getCurrent, getEditRevision, prepareLeave, root }) {
|
|
6
|
+
let requestRevision = 0;
|
|
7
|
+
function leave(operation) {
|
|
8
|
+
const revision = ++requestRevision;
|
|
9
|
+
const isCurrent = captureAutomationConfirmationScope({ actions, getCurrent, getEditRevision });
|
|
10
|
+
function commit(approved) {
|
|
11
|
+
if (approved !== true && typeof approved !== "function") return false;
|
|
12
|
+
if (revision !== requestRevision) return false;
|
|
13
|
+
if (!isCurrent()) return false;
|
|
14
|
+
if (approved?.canCommit?.() === false) return false;
|
|
15
|
+
if (typeof approved === "function" && approved() === false) return false;
|
|
16
|
+
return operation();
|
|
17
|
+
}
|
|
18
|
+
const approved = prepareLeave();
|
|
19
|
+
if (typeof approved?.then === "function") return Promise.resolve(approved).then(commit);
|
|
20
|
+
return commit(approved);
|
|
21
|
+
}
|
|
22
|
+
function selectNode(element) {
|
|
23
|
+
return leave(() => {
|
|
24
|
+
const current = getCurrent();
|
|
25
|
+
const nodeId = element.dataset.selectNode || element.dataset.automationNode || "";
|
|
26
|
+
if (nodeId === current.selectedNodeId || !nodeId) { actions.selectNode(""); return; }
|
|
27
|
+
const nodeButton = element.dataset.automationNode !== undefined ? element
|
|
28
|
+
: [...root.querySelectorAll("[data-automation-node]")]
|
|
29
|
+
.find((item) => item.dataset.automationNode === nodeId);
|
|
30
|
+
if (element.dataset.selectNode !== undefined)
|
|
31
|
+
nodeButton?.scrollIntoView?.({ block: "nearest", inline: "nearest" });
|
|
32
|
+
actions.selectNode(nodeId);
|
|
33
|
+
if (current.selectedRunId) focusSelectedAutomationStep(root);
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
return { leave, selectNode };
|
|
37
|
+
}
|
|
@@ -5,13 +5,14 @@ import { createAutomationDraftRecoveryCommands } from "./draft-recovery-actions.
|
|
|
5
5
|
import { activateAutomationLibraryTab, automationLibraryTabForKey, renderAutomationLibraryTabs } from "./library-tabs.js";
|
|
6
6
|
import { readAutomationDefinitionPatch, renderAutomationEditor, renderAutomationToolResults, toolDisplayName } from "./editor.js";
|
|
7
7
|
import { createAutomationStepEditorDialog } from "./step-editor-dialog.js";
|
|
8
|
-
import { focusSelectedAutomationStep } from "./run-steps-view.js";
|
|
9
8
|
import { renderAutomationRun } from "./run.js";
|
|
9
|
+
import { createAutomationRunHistoryControls } from "./run-history-controls.js";
|
|
10
10
|
import { findAutomationPosition } from "../../lib/automation-graph-position.js";
|
|
11
11
|
import { canWrapAutomationSequence } from "../../lib/automation-parallel-depth.js";
|
|
12
12
|
import { createAutomationTimelineCamera } from "./timeline-camera.js";
|
|
13
13
|
import { createAutomationLiveView } from "./live-view.js";
|
|
14
|
-
import {
|
|
14
|
+
import { createAutomationConfirmations, createAutomationDestructiveCommands } from "./confirmation-actions.js";
|
|
15
|
+
import { createAutomationWorkspaceNavigation } from "./workspace-navigation.js";
|
|
15
16
|
import { matchesAutomationGrant, requiresFullPlus, selectedAutomationOperations } from "./permission-selection.js";
|
|
16
17
|
|
|
17
18
|
const DRAG_TYPE = "application/x-abot-automation-step";
|
|
@@ -33,6 +34,7 @@ export function paletteNode(target, catalog) {
|
|
|
33
34
|
return {
|
|
34
35
|
kind: "agent", title: agent.title || "New agent", onFailure: agent.onFailure || "stop",
|
|
35
36
|
modelProfileId: agent.modelProfileId || "", agentMode: agent.agentMode || "fast",
|
|
37
|
+
...(agent.reasoningPreference ? { reasoningPreference: { ...agent.reasoningPreference } } : {}),
|
|
36
38
|
roleInstructions: agent.roleInstructions || "", prompt: agent.prompt || "",
|
|
37
39
|
inputs: agent.inputs || {}, tools: agent.tools || [], result: agent.result || { kind: "text" },
|
|
38
40
|
...(Array.isArray(agent.acceptance) ? { acceptance: agent.acceptance } : {}),
|
|
@@ -52,10 +54,11 @@ function permissionDialogMarkup(selection, purpose, revision) {
|
|
|
52
54
|
|
|
53
55
|
export function createAutomationsWorkspace({
|
|
54
56
|
root, actions, documentRoot = document,
|
|
55
|
-
confirmDiscard
|
|
57
|
+
confirmDiscard,
|
|
56
58
|
}) {
|
|
57
59
|
let current = actions.snapshot();
|
|
58
60
|
let definitionDirty = false;
|
|
61
|
+
let editRevision = 0;
|
|
59
62
|
let insertion = null;
|
|
60
63
|
let permissionDialog = null;
|
|
61
64
|
let paletteQuery = "";
|
|
@@ -70,6 +73,10 @@ export function createAutomationsWorkspace({
|
|
|
70
73
|
isEditing: () => Boolean(current.selectedNodeId) || stepEditor.isOpen(),
|
|
71
74
|
});
|
|
72
75
|
const liveView = createAutomationLiveView(root);
|
|
76
|
+
const runHistory = createAutomationRunHistoryControls({ root, actions });
|
|
77
|
+
const confirmationScope = { actions, getCurrent: () => current, getEditRevision: () => editRevision };
|
|
78
|
+
const confirmations = createAutomationConfirmations({ ...confirmationScope, confirm: confirmDiscard });
|
|
79
|
+
const navigation = createAutomationWorkspaceNavigation({ ...confirmationScope, prepareLeave, root });
|
|
73
80
|
|
|
74
81
|
function isDirty() { return definitionDirty || stepEditor.isDirty(); }
|
|
75
82
|
|
|
@@ -81,10 +88,12 @@ export function createAutomationsWorkspace({
|
|
|
81
88
|
function prepareLeave() {
|
|
82
89
|
if (!stepEditor.prepareLeave()) return false;
|
|
83
90
|
if (permissionDialog?.open) permissionDialog.close();
|
|
84
|
-
if (!isDirty()) return true;
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
91
|
+
if (!isDirty()) { confirmations.invalidate(); return true; }
|
|
92
|
+
return confirmations.prepare("Discard unsaved automation changes?",
|
|
93
|
+
{ title: "Discard changes", confirmLabel: "Discard", tone: "danger" }, () => {
|
|
94
|
+
definitionDirty = false;
|
|
95
|
+
return true;
|
|
96
|
+
});
|
|
88
97
|
}
|
|
89
98
|
|
|
90
99
|
function requireSavedGraph() {
|
|
@@ -132,7 +141,9 @@ export function createAutomationsWorkspace({
|
|
|
132
141
|
const previousNodeId = renderedNodeId;
|
|
133
142
|
const viewIdentity = `${snapshot.selectedAutomationId}/${snapshot.selectedRunId || "editor"}`;
|
|
134
143
|
const sameEditor = snapshot.selectedAutomationId === current.selectedAutomationId && !snapshot.selectedRunId;
|
|
135
|
-
|
|
144
|
+
const viewChanged = !liveView.isCurrent(viewIdentity);
|
|
145
|
+
const historyHadFocus = documentRoot.activeElement?.matches?.("[data-select-run]");
|
|
146
|
+
if (viewChanged) { paletteQuery = ""; paletteSelectedTool = ""; insertion = null; detailsCollapsed = false; camera.resetState(); }
|
|
136
147
|
else camera.capture();
|
|
137
148
|
const retainedDefinition = definitionDirty && sameEditor
|
|
138
149
|
? root.querySelector("[data-automation-definition-form]") : null;
|
|
@@ -144,6 +155,7 @@ export function createAutomationsWorkspace({
|
|
|
144
155
|
: renderAutomationEditor(snapshot, { query: paletteQuery, selectedToolName: paletteSelectedTool });
|
|
145
156
|
const changed = liveView.update(viewIdentity, renderAutomationLibraryTabs(snapshot, markup, activeLibraryTab));
|
|
146
157
|
if (changed && retainedDefinition) root.querySelector("[data-automation-definition-form]")?.replaceWith(retainedDefinition);
|
|
158
|
+
runHistory.sync(snapshot, { viewChanged, focus: historyHadFocus });
|
|
147
159
|
markInsertion();
|
|
148
160
|
updateDetailsVisibility();
|
|
149
161
|
camera.restore();
|
|
@@ -161,7 +173,7 @@ export function createAutomationsWorkspace({
|
|
|
161
173
|
async function selectLibraryTab(name, focus = false) {
|
|
162
174
|
if (name === activeLibraryTab) return;
|
|
163
175
|
if (name === "templates" && current.selectedAutomationId) {
|
|
164
|
-
if (!
|
|
176
|
+
if (!await navigation.leave(() => actions.openRoute("", ""))) return;
|
|
165
177
|
}
|
|
166
178
|
activeLibraryTab = name;
|
|
167
179
|
activateAutomationLibraryTab(root, name, { focus });
|
|
@@ -228,13 +240,6 @@ export function createAutomationsWorkspace({
|
|
|
228
240
|
await actions.mutateDraft({ kind: "wrap_parallel", nodeIds: [current.selectedNodeId, position.next.id] });
|
|
229
241
|
}
|
|
230
242
|
|
|
231
|
-
async function removeStep() {
|
|
232
|
-
if (!requireSavedGraph()) return;
|
|
233
|
-
if (!confirmDiscard("Remove this step from the draft?")) return;
|
|
234
|
-
const removed = await actions.mutateDraft({ kind: "remove_node", nodeId: current.selectedNodeId });
|
|
235
|
-
if (removed) actions.selectNode("");
|
|
236
|
-
}
|
|
237
|
-
|
|
238
243
|
function openPermissionDialog(purpose) {
|
|
239
244
|
if (permissionDialog?.open) return;
|
|
240
245
|
const selectedAutomation = current.automations.find((item) => item.id === current.selectedAutomationId);
|
|
@@ -287,23 +292,20 @@ export function createAutomationsWorkspace({
|
|
|
287
292
|
}
|
|
288
293
|
|
|
289
294
|
const command = {
|
|
290
|
-
...createAutomationDraftRecoveryCommands({ actions, requireSavedGraph,
|
|
295
|
+
...createAutomationDraftRecoveryCommands({ actions, requireSavedGraph,
|
|
296
|
+
confirmDiscard: (message, options) => confirmations.run(message, options, () => true),
|
|
291
297
|
onRestored: () => { definitionDirty = false; insertion = null; } }),
|
|
292
298
|
...createAutomationArchiveCommands({ actions, getCurrent: () => current, requireSavedGraph,
|
|
293
|
-
|
|
299
|
+
confirmations, onFilterChange: (archived) => { showArchived = archived; } }),
|
|
300
|
+
...createAutomationDestructiveCommands({ actions, getCurrent: () => current, requireSavedGraph,
|
|
301
|
+
confirmations, onDraftDeleted: () => { definitionDirty = false; insertion = null; } }),
|
|
294
302
|
"show-full-step-output": () => actions.showFullStepOutput(),
|
|
295
303
|
refresh: () => actions.refresh(), create: () => actions.create(),
|
|
296
304
|
describe: () => actions.openAuthoringChat(current.selectedAutomationId, current.draft?.revision),
|
|
297
|
-
back: () =>
|
|
305
|
+
back: () => navigation.leave(() => actions.openRoute("", "")),
|
|
298
306
|
"save-draft": saveDefinition,
|
|
299
307
|
"edit-step": () => stepEditor.open(root.querySelector('[data-action="edit-step"]')),
|
|
300
308
|
"toggle-details": () => { detailsCollapsed = !detailsCollapsed; updateDetailsVisibility(); },
|
|
301
|
-
"delete-draft": async () => {
|
|
302
|
-
if (!current.draft || current.publishedDefinition ||
|
|
303
|
-
current.automations.find((item) => item.id === current.selectedAutomationId)?.publishedRevision) return;
|
|
304
|
-
if (!confirmDiscard("Delete this unpublished automation draft and all its steps? This cannot be undone.")) return;
|
|
305
|
-
if (await actions.deleteDraft()) { definitionDirty = false; insertion = null; }
|
|
306
|
-
},
|
|
307
309
|
"save-agent": () => { if (requireSavedGraph()) return actions.saveAgent(); },
|
|
308
310
|
validate: () => { if (requireSavedGraph()) return actions.validate(); },
|
|
309
311
|
publish: async () => {
|
|
@@ -314,15 +316,16 @@ export function createAutomationsWorkspace({
|
|
|
314
316
|
run: () => { if (requireSavedGraph()) return actions.startRun(); },
|
|
315
317
|
"toggle-active": () => current.automations.find((item) => item.id === current.selectedAutomationId)?.status === "active"
|
|
316
318
|
? actions.setActive(false) : openPermissionDialog("activate"),
|
|
317
|
-
"show-runs": () =>
|
|
318
|
-
|
|
319
|
+
"show-runs": () => navigation.leave(() => {
|
|
320
|
+
const runId = current.runs[0]?.id || current.lastViewedRunId;
|
|
321
|
+
return runId ? actions.openRun(runId) : notify("No runs yet.");
|
|
322
|
+
}),
|
|
323
|
+
editor: () => navigation.leave(() => actions.openRoute(current.selectedAutomationId, "")),
|
|
319
324
|
stop: () => actions.stopRun(),
|
|
320
|
-
rerun: () => current.run &&
|
|
321
|
-
confirmDiscard(automationRerunConfirmation(current.run)) && actions.rerun(),
|
|
322
325
|
"open-chat-run": () => actions.showChatRun(current.selectedRunId),
|
|
323
326
|
"move-up": () => moveStep(-1), "move-down": () => moveStep(1),
|
|
324
327
|
"move-to-slot": moveToSlot,
|
|
325
|
-
parallel: wrapParallel,
|
|
328
|
+
parallel: wrapParallel,
|
|
326
329
|
};
|
|
327
330
|
|
|
328
331
|
root.addEventListener("input", (event) => {
|
|
@@ -331,10 +334,10 @@ export function createAutomationsWorkspace({
|
|
|
331
334
|
refreshToolPalette();
|
|
332
335
|
return;
|
|
333
336
|
}
|
|
334
|
-
if (event.target.closest("[data-automation-definition-form]")) definitionDirty = true;
|
|
337
|
+
if (event.target.closest("[data-automation-definition-form]")) { definitionDirty = true; editRevision += 1; }
|
|
335
338
|
});
|
|
336
339
|
root.addEventListener("change", (event) => {
|
|
337
|
-
if (event.target.closest("[data-automation-definition-form]")) definitionDirty = true;
|
|
340
|
+
if (event.target.closest("[data-automation-definition-form]")) { definitionDirty = true; editRevision += 1; }
|
|
338
341
|
});
|
|
339
342
|
root.addEventListener("click", (event) => {
|
|
340
343
|
const element = event.target.closest("button");
|
|
@@ -353,28 +356,19 @@ export function createAutomationsWorkspace({
|
|
|
353
356
|
return;
|
|
354
357
|
}
|
|
355
358
|
if (element.dataset.selectAutomation !== undefined) {
|
|
356
|
-
|
|
359
|
+
void navigation.leave(() => actions.openRoute(element.dataset.selectAutomation, ""));
|
|
357
360
|
return;
|
|
358
361
|
}
|
|
359
362
|
if (element.dataset.templateId !== undefined) {
|
|
360
|
-
|
|
363
|
+
void navigation.leave(() => actions.createTemplate(element.dataset.templateId));
|
|
361
364
|
return;
|
|
362
365
|
}
|
|
363
366
|
if (element.dataset.selectRun !== undefined) {
|
|
364
|
-
|
|
367
|
+
void navigation.leave(() => actions.openRun(element.dataset.selectRun));
|
|
365
368
|
return;
|
|
366
369
|
}
|
|
367
370
|
if (element.dataset.selectNode !== undefined || element.dataset.automationNode !== undefined) {
|
|
368
|
-
|
|
369
|
-
const nodeId = element.dataset.selectNode || element.dataset.automationNode || "";
|
|
370
|
-
if (nodeId === current.selectedNodeId || !nodeId) { actions.selectNode(""); return; }
|
|
371
|
-
const nodeButton = element.dataset.automationNode !== undefined ? element
|
|
372
|
-
: [...root.querySelectorAll("[data-automation-node]")]
|
|
373
|
-
.find((item) => item.dataset.automationNode === nodeId);
|
|
374
|
-
if (element.dataset.selectNode !== undefined)
|
|
375
|
-
nodeButton?.scrollIntoView?.({ block: "nearest", inline: "nearest" });
|
|
376
|
-
actions.selectNode(nodeId);
|
|
377
|
-
if (current.selectedRunId) focusSelectedAutomationStep(root);
|
|
371
|
+
void navigation.selectNode(element);
|
|
378
372
|
return;
|
|
379
373
|
}
|
|
380
374
|
if (element.dataset.insertParent !== undefined) {
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { parseReasoningBudgetMode } from "./reasoning-budget.js";
|
|
2
|
+
import { parseReasoningModeBudgets } from "./reasoning-mode-budgets.js";
|
|
1
3
|
import {
|
|
2
4
|
malformedConfigRaw,
|
|
3
5
|
configRequiresRawRepair,
|
|
@@ -292,6 +294,10 @@ export function createConfigWorkspaceModel() {
|
|
|
292
294
|
const type = input.dataset.valueType || "string";
|
|
293
295
|
if (type === "boolean") return input.checked;
|
|
294
296
|
if (type === "number") return parseNumericConfigInputValue(input);
|
|
297
|
+
if (type === "reasoning-budget-mode")
|
|
298
|
+
return parseReasoningBudgetMode(input.value, getConfigPathValue(file.config, path));
|
|
299
|
+
if (type === "reasoning-mode-budgets")
|
|
300
|
+
return parseReasoningModeBudgets(input.value, getConfigPathValue(file.config, path));
|
|
295
301
|
if (type === "execution-policy") {
|
|
296
302
|
return executionPolicyValueForConfig(
|
|
297
303
|
input.value,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { confirmDialog } from "../confirmation-dialog.js";
|
|
1
2
|
function isDefinitiveModelRemovalRejection(error) {
|
|
2
3
|
const status = error?.status;
|
|
3
4
|
if (!Number.isInteger(status)) return false;
|
|
@@ -24,7 +25,7 @@ export function createModelRemovalController({
|
|
|
24
25
|
refreshRuntimeConfig,
|
|
25
26
|
onSaved,
|
|
26
27
|
setStatus,
|
|
27
|
-
confirmRemoval = (message) =>
|
|
28
|
+
confirmRemoval = (message) => confirmDialog(message, { title: "Remove model", confirmLabel: "Remove model", tone: "danger" }),
|
|
28
29
|
}) {
|
|
29
30
|
let pending = false;
|
|
30
31
|
|
|
@@ -78,11 +79,12 @@ export function createModelRemovalController({
|
|
|
78
79
|
pending = true;
|
|
79
80
|
try {
|
|
80
81
|
if (
|
|
81
|
-
!confirmRemoval(
|
|
82
|
+
!await confirmRemoval(
|
|
82
83
|
`Remove ${label || profileId} from configured models? Its model file, provider and credentials will be kept.`,
|
|
83
84
|
)
|
|
84
85
|
)
|
|
85
86
|
return false;
|
|
87
|
+
if (environmentId !== getEnvironmentId()) return false;
|
|
86
88
|
try {
|
|
87
89
|
await removeModel({ profileId, expectedRevision }, environmentId);
|
|
88
90
|
} catch (error) {
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { isTokenBudgetModel, renderReasoningBudget, renderReasoningEffort } from "./reasoning-budget.js";
|
|
2
|
+
import { renderReasoningModeBudgets } from "./reasoning-mode-budgets.js";
|
|
1
3
|
import { configRequiresRawRepair } from "./raw-config-repair.js";
|
|
2
4
|
import { escapeAttribute, escapeHtml, textOf } from "../../lib/text-format.js";
|
|
3
5
|
import { isConfigObject } from "./config-model.js";
|
|
@@ -128,22 +130,9 @@ export function createConfigModelRendering({
|
|
|
128
130
|
[...basePath, "generation", "topP"],
|
|
129
131
|
{ type: "number", step: "0.01" },
|
|
130
132
|
)}</label>
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
{
|
|
135
|
-
type: "select",
|
|
136
|
-
values: [
|
|
137
|
-
"",
|
|
138
|
-
"none",
|
|
139
|
-
"minimal",
|
|
140
|
-
"low",
|
|
141
|
-
"medium",
|
|
142
|
-
"high",
|
|
143
|
-
"xhigh",
|
|
144
|
-
],
|
|
145
|
-
},
|
|
146
|
-
)}</label>
|
|
133
|
+
${renderReasoningBudget(file, [...basePath, "generation"], renderConfigInput, { supported: isTokenBudgetModel(file, state.configDashboard, profile), dashboard: state.configDashboard })}
|
|
134
|
+
${renderReasoningEffort(file, [...basePath, "generation"], renderConfigInput)}
|
|
135
|
+
${renderReasoningModeBudgets(file, [...basePath, "generation"], renderConfigInput, { supported: isTokenBudgetModel(file, state.configDashboard, profile) })}
|
|
147
136
|
</div>
|
|
148
137
|
<button
|
|
149
138
|
class="config-icon-button config-calibration-remove"
|
|
@@ -239,6 +228,9 @@ export function createConfigModelRendering({
|
|
|
239
228
|
["contextWindowTokens"],
|
|
240
229
|
{ type: "number", min: "1", step: "1" },
|
|
241
230
|
)}</label>
|
|
231
|
+
${isTokenBudgetModel(model, state.configDashboard) ? renderReasoningEffort(model, ["generation"], renderConfigInput) : ""}
|
|
232
|
+
${renderReasoningBudget(model, ["generation"], renderConfigInput, { supported: isTokenBudgetModel(model, state.configDashboard), dashboard: state.configDashboard })}
|
|
233
|
+
${renderReasoningModeBudgets(model, ["generation"], renderConfigInput, { supported: isTokenBudgetModel(model, state.configDashboard) })}
|
|
242
234
|
</div>
|
|
243
235
|
${renderExecutionRoute(model)}
|
|
244
236
|
</div>
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import {
|
|
2
|
+
effectiveReasoningBudgetEffort,
|
|
3
|
+
isTokenBudgetModel,
|
|
4
|
+
reasoningBudgetStatusText,
|
|
5
|
+
} from "./reasoning-budget.js";
|
|
6
|
+
|
|
7
|
+
function isReasoningGenerationPath(path) {
|
|
8
|
+
if (!Array.isArray(path)) return false;
|
|
9
|
+
if (path.length === 1) return path[0] === "generation";
|
|
10
|
+
if (path.length !== 3) return false;
|
|
11
|
+
return path[0] === "calibration" && typeof path[1] === "string" &&
|
|
12
|
+
path[2] === "generation";
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
function budgetEditGenerationPath(path) {
|
|
16
|
+
const budgetIndex = path.lastIndexOf("reasoningBudget");
|
|
17
|
+
if (budgetIndex < 0) return undefined;
|
|
18
|
+
const generation = path.slice(0, budgetIndex);
|
|
19
|
+
return isReasoningGenerationPath(generation) ? generation : undefined;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
function reasoningStatusGenerationPath(element) {
|
|
23
|
+
try {
|
|
24
|
+
const path = JSON.parse(element.dataset.reasoningGenerationPath);
|
|
25
|
+
return isReasoningGenerationPath(path) ? path : undefined;
|
|
26
|
+
} catch {
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
function generationCalibration(file, path) {
|
|
32
|
+
if (path[0] !== "calibration") return undefined;
|
|
33
|
+
return file.config.calibration?.[path[1]];
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function hasPositiveReasoningTokenLimit(value) {
|
|
37
|
+
if (!Number.isInteger(value)) return false;
|
|
38
|
+
if (value <= 0) return false;
|
|
39
|
+
return value <= 2147483647;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function budgetModeEnablesThinking(value) {
|
|
43
|
+
if (value?.mode === "server-default") return true;
|
|
44
|
+
if (value?.mode !== "tokens") return false;
|
|
45
|
+
return hasPositiveReasoningTokenLimit(value.tokens);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
function explicitlyEnablesBudget(path, value) {
|
|
49
|
+
if (path.at(-1) === "reasoningBudget")
|
|
50
|
+
return budgetModeEnablesThinking(value);
|
|
51
|
+
if (path.at(-1) !== "tokens" || path.at(-2) !== "reasoningBudget")
|
|
52
|
+
return false;
|
|
53
|
+
return hasPositiveReasoningTokenLimit(value);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/** A form budget action enables only the edited generation scope. */
|
|
57
|
+
export function activateEditedReasoningBudget(
|
|
58
|
+
file,
|
|
59
|
+
dashboard,
|
|
60
|
+
path,
|
|
61
|
+
value,
|
|
62
|
+
setConfigPathValue,
|
|
63
|
+
) {
|
|
64
|
+
if (file.kind !== "model" || !explicitlyEnablesBudget(path, value))
|
|
65
|
+
return undefined;
|
|
66
|
+
const generationPath = budgetEditGenerationPath(path);
|
|
67
|
+
if (!generationPath) return undefined;
|
|
68
|
+
const calibration = generationCalibration(file, generationPath);
|
|
69
|
+
if (!isTokenBudgetModel(file, dashboard, calibration)) return undefined;
|
|
70
|
+
const effort = effectiveReasoningBudgetEffort(
|
|
71
|
+
file,
|
|
72
|
+
dashboard,
|
|
73
|
+
generationPath,
|
|
74
|
+
);
|
|
75
|
+
if (effort !== undefined && effort !== "none") return undefined;
|
|
76
|
+
setConfigPathValue(
|
|
77
|
+
file.config,
|
|
78
|
+
[...generationPath, "reasoningEffort"],
|
|
79
|
+
"medium",
|
|
80
|
+
);
|
|
81
|
+
return generationPath;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
function matchesReasoningControl(element, file) {
|
|
85
|
+
return element.dataset.kind === file.kind && element.dataset.id === file.id;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/** Numeric input keeps focus while the coupled select and status update. */
|
|
89
|
+
export function syncActivatedReasoningBudget(
|
|
90
|
+
root,
|
|
91
|
+
file,
|
|
92
|
+
dashboard,
|
|
93
|
+
generationPath,
|
|
94
|
+
) {
|
|
95
|
+
const effortPath = JSON.stringify([...generationPath, "reasoningEffort"]);
|
|
96
|
+
for (const element of root.querySelectorAll(
|
|
97
|
+
'select[data-config-action="field"]',
|
|
98
|
+
)) {
|
|
99
|
+
if (!matchesReasoningControl(element, file)) continue;
|
|
100
|
+
if (element.dataset.path !== effortPath) continue;
|
|
101
|
+
element.value = "medium";
|
|
102
|
+
}
|
|
103
|
+
for (const element of root.querySelectorAll(
|
|
104
|
+
"[data-reasoning-generation-path]",
|
|
105
|
+
)) {
|
|
106
|
+
if (!matchesReasoningControl(element, file)) continue;
|
|
107
|
+
const statusPath = reasoningStatusGenerationPath(element);
|
|
108
|
+
if (!statusPath) continue;
|
|
109
|
+
const calibration = generationCalibration(file, statusPath);
|
|
110
|
+
if (!isTokenBudgetModel(file, dashboard, calibration)) continue;
|
|
111
|
+
element.textContent = reasoningBudgetStatusText(file, dashboard, statusPath);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare function isTokenBudgetModel(file: { id?: string; config?: Record<string, unknown> }, dashboard: unknown, calibration?: { profileId?: string }): boolean;
|
|
2
|
+
export declare function shouldRefreshReasoningBudgetFields(
|
|
3
|
+
file: { kind: string },
|
|
4
|
+
path: string[],
|
|
5
|
+
valueType?: string,
|
|
6
|
+
): boolean;
|
|
7
|
+
export declare function parseReasoningBudgetMode(value: string, previous?: { mode: string; tokens?: number }): { mode: string; tokens?: number } | undefined;
|
|
8
|
+
export declare function renderReasoningBudget(
|
|
9
|
+
file: { kind: string; id: string; config: Record<string, unknown> },
|
|
10
|
+
generationPath: string[],
|
|
11
|
+
renderConfigInput: (...args: unknown[]) => string,
|
|
12
|
+
options?: { supported?: boolean; dashboard?: unknown },
|
|
13
|
+
): string;
|
|
14
|
+
export declare function effectiveReasoningBudgetEffort(file: { config: Record<string, any> }, dashboard: unknown, generationPath: string[]): string | undefined;
|
|
15
|
+
export declare function reasoningBudgetStatusText(file: { config: Record<string, any> }, dashboard: unknown, generationPath: string[]): string;
|
|
16
|
+
export declare function renderReasoningEffort(file: { config: Record<string, any> }, generationPath: string[], renderConfigInput: (...args: unknown[]) => string): string;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { escapeAttribute } from "../../lib/text-format.js";
|
|
2
|
+
|
|
3
|
+
function reasoningBudgetTarget(file, dashboard, calibration) {
|
|
4
|
+
const targetId = calibration?.profileId;
|
|
5
|
+
return targetId && targetId !== file.id
|
|
6
|
+
? dashboard?.files?.models?.find((model) => model.id === targetId)
|
|
7
|
+
: file;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export function isTokenBudgetModel(file, dashboard, calibration) {
|
|
11
|
+
const target = reasoningBudgetTarget(file, dashboard, calibration);
|
|
12
|
+
if (target?.config?.supportsThinking !== true) return false;
|
|
13
|
+
const providerId = target.config.provider;
|
|
14
|
+
return dashboard?.files?.runtime?.config?.models?.providers?.[providerId]?.type === "llamacpp";
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export function shouldRefreshReasoningBudgetFields(file, path, valueType) {
|
|
18
|
+
if (valueType === "reasoning-budget-mode") return true;
|
|
19
|
+
if (valueType === "reasoning-mode-budgets") return true;
|
|
20
|
+
if (file.kind !== "model") return false;
|
|
21
|
+
if (path.at(-1) === "reasoningEffort") return true;
|
|
22
|
+
if (path.length !== 1) return false;
|
|
23
|
+
return path[0] === "supportsThinking" || path[0] === "provider";
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export function parseReasoningBudgetMode(value, previous) {
|
|
27
|
+
if (value === "inherit") return undefined;
|
|
28
|
+
if (value === "server-default") return { mode: "server-default" };
|
|
29
|
+
return { mode: "tokens", tokens: previous?.mode === "tokens" ? previous.tokens : 0 };
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export function effectiveReasoningBudgetEffort(file, dashboard, generationPath) {
|
|
33
|
+
const generation = generationPath.reduce((value, key) => value?.[key], file.config);
|
|
34
|
+
if (generation?.reasoningEffort !== undefined) return generation.reasoningEffort;
|
|
35
|
+
if (generationPath[0] !== "calibration") return undefined;
|
|
36
|
+
const calibration = file.config?.calibration?.[generationPath[1]];
|
|
37
|
+
return reasoningBudgetTarget(file, dashboard, calibration)?.config?.generation?.reasoningEffort;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export function reasoningBudgetStatusText(file, dashboard, generationPath) {
|
|
41
|
+
const budget = generationPath.reduce((value, key) => value?.[key], file.config)?.reasoningBudget;
|
|
42
|
+
const savedBudgetIsOff = budget !== undefined &&
|
|
43
|
+
effectiveReasoningBudgetEffort(file, dashboard, generationPath) === "none";
|
|
44
|
+
if (savedBudgetIsOff)
|
|
45
|
+
return "Inactive while reasoning is Off. Choose a positive token limit or Server default to enable thinking.";
|
|
46
|
+
return "Per reasoning segment. Zero disables thinking; a positive budget enables it. Off keeps the saved budget inactive.";
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export function renderReasoningEffort(file, generationPath, renderConfigInput) {
|
|
50
|
+
return `<label><span>Reasoning effort</span>${renderConfigInput(file, [...generationPath, "reasoningEffort"], {
|
|
51
|
+
type: "select", values: ["", "none", "minimal", "low", "medium", "high", "xhigh"],
|
|
52
|
+
})}<small>Default inherits the profile or request mode. None disables thinking unless a mode token limit or request setting enables it.</small></label>`;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export function renderReasoningBudget(file, generationPath, renderConfigInput, { supported = true, dashboard } = {}) {
|
|
56
|
+
const budget = generationPath.reduce((value, key) => value?.[key], file.config)?.reasoningBudget;
|
|
57
|
+
if (!supported && budget === undefined) return "";
|
|
58
|
+
const path = [...generationPath, "reasoningBudget"];
|
|
59
|
+
const mode = budget?.mode || "inherit";
|
|
60
|
+
const attributes = `data-config-action="field" data-kind="${escapeAttribute(file.kind)}" data-id="${escapeAttribute(file.id)}" data-path="${escapeAttribute(JSON.stringify(path))}" data-value-type="reasoning-budget-mode"`;
|
|
61
|
+
return `<label><span>Thinking budget</span><select ${attributes}>
|
|
62
|
+
<option value="inherit" ${mode === "inherit" ? "selected" : ""}>Inherit (no override)</option>
|
|
63
|
+
${supported ? `<option value="server-default" ${mode === "server-default" ? "selected" : ""}>Server default</option>
|
|
64
|
+
<option value="tokens" ${mode === "tokens" ? "selected" : ""}>Token limit</option>` : `<option value="${escapeAttribute(mode)}" selected disabled>Saved override (unsupported target)</option>`}
|
|
65
|
+
</select><small data-reasoning-generation-path="${escapeAttribute(JSON.stringify(generationPath))}" data-kind="${escapeAttribute(file.kind)}" data-id="${escapeAttribute(file.id)}">${supported ? reasoningBudgetStatusText(file, dashboard, generationPath) : "This target does not support token budgets. Choose Inherit to remove this override."}</small></label>
|
|
66
|
+
${supported && mode === "tokens" ? `<label><span>Thinking tokens</span>${renderConfigInput(file, [...path, "tokens"], { type: "number", min: "0", step: "1" })}<small>Enter a non-negative whole number; 0 disables thinking. The answer also needs capacity within the total output limit.</small></label>` : ""}`;
|
|
67
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare function parseReasoningModeBudgets(value: string, previous?: Record<string, number>): Record<string, number> | undefined;
|
|
2
|
+
export declare function renderReasoningModeBudgets(
|
|
3
|
+
file: { kind: string; id: string; config: Record<string, any> },
|
|
4
|
+
generationPath: string[],
|
|
5
|
+
renderConfigInput: (...args: any[]) => string,
|
|
6
|
+
options?: { supported?: boolean },
|
|
7
|
+
): string;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { escapeAttribute } from "../../lib/text-format.js";
|
|
2
|
+
|
|
3
|
+
const REASONING_MODES = [["fast", "Low"], ["reasoning", "Reasoning"], ["deep", "Deep"]];
|
|
4
|
+
|
|
5
|
+
export function parseReasoningModeBudgets(value, previous) {
|
|
6
|
+
if (value === "inherit") return undefined;
|
|
7
|
+
return previous ?? {};
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export function renderReasoningModeBudgets(file, generationPath, renderConfigInput, { supported = true } = {}) {
|
|
11
|
+
const generation = generationPath.reduce((value, key) => value?.[key], file.config);
|
|
12
|
+
const budgets = generation?.reasoningBudgetByMode;
|
|
13
|
+
if (!supported && budgets === undefined) return "";
|
|
14
|
+
const path = [...generationPath, "reasoningBudgetByMode"];
|
|
15
|
+
const custom = budgets !== undefined;
|
|
16
|
+
const attributes = `data-config-action="field" data-kind="${escapeAttribute(file.kind)}" data-id="${escapeAttribute(file.id)}" data-path="${escapeAttribute(JSON.stringify(path))}" data-value-type="reasoning-mode-budgets"`;
|
|
17
|
+
const selector = `<label><span>Mode token overrides</span><select ${attributes}>
|
|
18
|
+
<option value="inherit" ${custom ? "" : "selected"}>Inherit (no override)</option>
|
|
19
|
+
${supported ? `<option value="custom" ${custom ? "selected" : ""}>Custom limits by mode</option>` : '<option value="custom" selected disabled>Saved override (unsupported target)</option>'}
|
|
20
|
+
</select><small>${supported
|
|
21
|
+
? "Optional limits for main model steps. A custom map replaces inherited mode limits; blank entries use the ordinary effort and budget settings."
|
|
22
|
+
: "This target does not support token budgets. Choose Inherit to remove this override."}</small></label>`;
|
|
23
|
+
if (!supported || !custom) return selector;
|
|
24
|
+
return selector + REASONING_MODES.map(([mode, label]) => `<label><span>${label} thinking tokens</span>${renderConfigInput(file, [...path, mode], { type: "number", min: "0", step: "1" })}<small>Optional non-negative integer. Zero disables thinking; positive values enable it for this mode, including Low. Explicit request or invocation Off still wins.</small></label>`).join("");
|
|
25
|
+
}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { activateEditedReasoningBudget, syncActivatedReasoningBudget } from "./reasoning-budget-edit.js";
|
|
2
|
+
import { shouldRefreshReasoningBudgetFields } from "./reasoning-budget.js";
|
|
1
3
|
import { rememberCalibrationDisclosure } from "./calibration-disclosure.js";
|
|
2
4
|
import { textOf } from "../../lib/text-format.js";
|
|
3
5
|
import { resolveModelExecutionRoute } from "./config-model.js";
|
|
@@ -72,10 +74,17 @@ export function createConfigWorkspaceEvents({
|
|
|
72
74
|
action === "step-value"
|
|
73
75
|
? element.value
|
|
74
76
|
: parseConfigInputValue(element, file, path);
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
77
|
+
let activatedGeneration;
|
|
78
|
+
mutateConfigFile(element.dataset.kind, element.dataset.id, (config) => {
|
|
79
|
+
applyConfigFieldValue(config, element, path, value);
|
|
80
|
+
activatedGeneration = activateEditedReasoningBudget(
|
|
81
|
+
file, state.configDashboard, path, value, setConfigPathValue,
|
|
82
|
+
);
|
|
83
|
+
});
|
|
84
|
+
if (activatedGeneration)
|
|
85
|
+
syncActivatedReasoningBudget(dom.configDashboard, file, state.configDashboard, activatedGeneration);
|
|
78
86
|
syncExecutionRouteDescription(element);
|
|
87
|
+
if (shouldRefreshReasoningBudgetFields(file, path, element.dataset.valueType)) renderConfigDashboard();
|
|
79
88
|
}
|
|
80
89
|
|
|
81
90
|
function handleDashboardInput(event) {
|
|
@@ -90,8 +99,7 @@ export function createConfigWorkspaceEvents({
|
|
|
90
99
|
if (dashboardIsBusy()) return;
|
|
91
100
|
const element = event.target;
|
|
92
101
|
if (element?.id === "configRawFileSelect") {
|
|
93
|
-
changeRawFile(element.value, element);
|
|
94
|
-
return;
|
|
102
|
+
return changeRawFile(element.value, element);
|
|
95
103
|
}
|
|
96
104
|
const actionElement = element?.closest?.("[data-config-action]");
|
|
97
105
|
if (!actionElement) return;
|
|
@@ -273,9 +281,9 @@ export function createConfigWorkspaceEvents({
|
|
|
273
281
|
function bind() {
|
|
274
282
|
if (state.bound) return;
|
|
275
283
|
state.bound = true;
|
|
276
|
-
dom.refreshConfigButton.addEventListener("click", () => {
|
|
284
|
+
dom.refreshConfigButton.addEventListener("click", async () => {
|
|
277
285
|
if (dashboardIsBusy()) return;
|
|
278
|
-
if (!confirmDiscardChanges("refresh configuration")) return;
|
|
286
|
+
if (!await confirmDiscardChanges("refresh configuration")) return;
|
|
279
287
|
void loadRuntimeConfig({ protectUnsaved: false });
|
|
280
288
|
});
|
|
281
289
|
dom.configDashboard.addEventListener("click", handleDashboardClick);
|