@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
package/README.md
CHANGED
|
@@ -68,7 +68,7 @@ You need:
|
|
|
68
68
|
|
|
69
69
|
- Node.js `^20.19.0` or `>=22.12.0`; Node.js 21 is not supported
|
|
70
70
|
- npm
|
|
71
|
-
- An OpenAI or
|
|
71
|
+
- An OpenAI, Ollama or llama.cpp model connection
|
|
72
72
|
|
|
73
73
|
Create a directory for your ABot installation:
|
|
74
74
|
|
|
@@ -89,6 +89,10 @@ choosing tools, and optionally enabling semantic memory.
|
|
|
89
89
|
- **Ollama:** install and start Ollama separately, download your chosen model,
|
|
90
90
|
and provide an address reachable from the Runtime.
|
|
91
91
|
|
|
92
|
+
- **llama.cpp:** run llama-server separately and connect its model alias and
|
|
93
|
+
reachable origin. Thinking-capable models can use a token budget. See
|
|
94
|
+
[llama.cpp setup](docs/llamacpp.md).
|
|
95
|
+
|
|
92
96
|
ABot includes the provider adapters. You supply the model and any required
|
|
93
97
|
credentials. Configuration and runtime state are stored in your project.
|
|
94
98
|
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { mergeRuntimeModelAddition, parseRuntimeModelProfileId, } from "./runtime-model-addition.js";
|
|
2
|
+
import { supportsProviderAddress } from "./runtime-setup-provider-options.js";
|
|
3
|
+
import { parseSetupCommandOptions, requireSetupCommandProviderOptions } from "./runtime-setup-command-options.js";
|
|
2
4
|
import { constants } from "node:fs";
|
|
3
5
|
import { access, mkdir } from "node:fs/promises";
|
|
4
6
|
import { dirname, join, resolve } from "node:path";
|
|
@@ -17,6 +19,8 @@ function requireValue(argv, index, flag) {
|
|
|
17
19
|
return value;
|
|
18
20
|
}
|
|
19
21
|
function parseArgs(argv, commandMode) {
|
|
22
|
+
const shared = parseSetupCommandOptions(argv);
|
|
23
|
+
argv = shared.argv;
|
|
20
24
|
let rootDir = process.cwd();
|
|
21
25
|
let provider;
|
|
22
26
|
let model;
|
|
@@ -91,10 +95,11 @@ function parseArgs(argv, commandMode) {
|
|
|
91
95
|
throw new Error("--model is required");
|
|
92
96
|
if (!profile)
|
|
93
97
|
throw new Error("--profile is required");
|
|
94
|
-
if (baseUrl && provider
|
|
95
|
-
throw new Error("--base-url is supported only with --provider ollama");
|
|
98
|
+
if (baseUrl && !supportsProviderAddress(provider)) {
|
|
99
|
+
throw new Error("--base-url is supported only with --provider ollama or llamacpp");
|
|
96
100
|
}
|
|
97
|
-
|
|
101
|
+
requireSetupCommandProviderOptions(provider, shared);
|
|
102
|
+
return { ...shared, rootDir, provider, model, profile, baseUrl, setDefault };
|
|
98
103
|
}
|
|
99
104
|
function printHelp(commandMode) {
|
|
100
105
|
console.log([
|
|
@@ -165,14 +170,14 @@ export async function runAddRuntimeModel(argv = process.argv.slice(2), runOption
|
|
|
165
170
|
const merged = mergeRuntimeModelAddition(runtimeConfig, {
|
|
166
171
|
profileId: options.profile,
|
|
167
172
|
providerId: options.provider,
|
|
168
|
-
provider: buildProviderConfig(options.provider, options.baseUrl),
|
|
173
|
+
provider: buildProviderConfig(options.provider, options.baseUrl, options.apiKeyEnv),
|
|
169
174
|
profile: { configRef: `./models/${options.profile}.config.json` },
|
|
170
175
|
baseUrl: options.baseUrl,
|
|
171
176
|
});
|
|
172
177
|
const nextRunnerConfig = options.setDefault
|
|
173
178
|
? selectDefaultProfile(runnerConfig, options.profile)
|
|
174
179
|
: runnerConfig;
|
|
175
|
-
const modelConfig = buildModelConfig(modelTemplate, options.provider, options.model);
|
|
180
|
+
const modelConfig = buildModelConfig(modelTemplate, options.provider, options.model, options.contextWindowTokens, options.modelOptions);
|
|
176
181
|
await mkdir(dirname(modelConfigPath), { recursive: true });
|
|
177
182
|
await writeJsonObject(modelConfigPath, modelConfig, { exclusive: true });
|
|
178
183
|
await writeJsonObject(runtimeConfigPath, merged.config);
|
|
@@ -188,6 +193,7 @@ export async function runAddRuntimeModel(argv = process.argv.slice(2), runOption
|
|
|
188
193
|
...(options.provider === "openai"
|
|
189
194
|
? ["credential: set OPENAI_API_KEY in .env"]
|
|
190
195
|
: []),
|
|
196
|
+
...(options.apiKeyEnv ? ["credential: set " + options.apiKeyEnv + " in .env"] : []),
|
|
191
197
|
getRestartInstruction(commandMode),
|
|
192
198
|
].join("\n"));
|
|
193
199
|
}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { supportsProviderAddress } from "./runtime-setup-provider-options.js";
|
|
2
|
+
import { parseSetupCommandOptions, requireSetupCommandProviderOptions } from "./runtime-setup-command-options.js";
|
|
1
3
|
import { constants } from "node:fs";
|
|
2
4
|
import { access, copyFile, mkdir, readFile, writeFile } from "node:fs/promises";
|
|
3
5
|
import { dirname, join, relative, resolve } from "node:path";
|
|
@@ -22,6 +24,8 @@ function requireValue(argv, index, flag) {
|
|
|
22
24
|
return value;
|
|
23
25
|
}
|
|
24
26
|
function parseArgs(argv, commandMode) {
|
|
27
|
+
const shared = parseSetupCommandOptions(argv);
|
|
28
|
+
argv = shared.argv;
|
|
25
29
|
let rootDir = process.cwd();
|
|
26
30
|
let provider;
|
|
27
31
|
let model;
|
|
@@ -88,10 +92,11 @@ function parseArgs(argv, commandMode) {
|
|
|
88
92
|
if (!model) {
|
|
89
93
|
throw new Error("--model is required");
|
|
90
94
|
}
|
|
91
|
-
if (baseUrl && provider
|
|
92
|
-
throw new Error("--base-url is supported only with --provider ollama");
|
|
95
|
+
if (baseUrl && !supportsProviderAddress(provider)) {
|
|
96
|
+
throw new Error("--base-url is supported only with --provider ollama or llamacpp");
|
|
93
97
|
}
|
|
94
|
-
|
|
98
|
+
requireSetupCommandProviderOptions(provider, shared);
|
|
99
|
+
return { ...shared, rootDir, provider, model, baseUrl, force };
|
|
95
100
|
}
|
|
96
101
|
function printHelp(commandMode) {
|
|
97
102
|
console.log([
|
|
@@ -108,7 +113,7 @@ function printHelp(commandMode) {
|
|
|
108
113
|
"- .runtime/prod and .runtime/dev",
|
|
109
114
|
"",
|
|
110
115
|
"Both --provider and --model are required; the runtime has no built-in model choice.",
|
|
111
|
-
"--base-url configures the Ollama
|
|
116
|
+
"--base-url configures the Ollama or llama.cpp origin reachable from the Runtime.",
|
|
112
117
|
].join("\n"));
|
|
113
118
|
}
|
|
114
119
|
async function exists(path) {
|
|
@@ -147,12 +152,12 @@ async function ensureEnvLine(envPath) {
|
|
|
147
152
|
await writeFile(envPath, next, "utf-8");
|
|
148
153
|
return true;
|
|
149
154
|
}
|
|
150
|
-
async function configureRuntimeProvider(configPath, provider, baseUrl) {
|
|
155
|
+
async function configureRuntimeProvider(configPath, provider, baseUrl, apiKeyEnv) {
|
|
151
156
|
const config = await readJsonObject(configPath);
|
|
152
157
|
const models = isRecord(config.models) ? config.models : {};
|
|
153
158
|
const { defaults: _ignoredDefaults, ...modelSettings } = models;
|
|
154
159
|
const providers = {
|
|
155
|
-
[provider]: buildProviderConfig(provider, baseUrl),
|
|
160
|
+
[provider]: buildProviderConfig(provider, baseUrl, apiKeyEnv),
|
|
156
161
|
};
|
|
157
162
|
config.models = {
|
|
158
163
|
...modelSettings,
|
|
@@ -165,9 +170,9 @@ async function configureRuntimeProvider(configPath, provider, baseUrl) {
|
|
|
165
170
|
};
|
|
166
171
|
await writeJsonObject(configPath, config);
|
|
167
172
|
}
|
|
168
|
-
async function configureModelProfile(configPath, provider, model) {
|
|
173
|
+
async function configureModelProfile(configPath, provider, model, options) {
|
|
169
174
|
const config = await readJsonObject(configPath);
|
|
170
|
-
await writeJsonObject(configPath, buildModelConfig(config, provider, model));
|
|
175
|
+
await writeJsonObject(configPath, buildModelConfig(config, provider, model, options.contextWindowTokens, options.modelOptions));
|
|
171
176
|
}
|
|
172
177
|
async function configureRunner(configPath) {
|
|
173
178
|
const config = await readJsonObject(configPath);
|
|
@@ -221,13 +226,13 @@ export async function runInitRuntime(argv = process.argv.slice(2), runOptions =
|
|
|
221
226
|
}),
|
|
222
227
|
})));
|
|
223
228
|
if (configStatus !== "kept") {
|
|
224
|
-
await configureRuntimeProvider(configPath, options.provider, options.baseUrl);
|
|
229
|
+
await configureRuntimeProvider(configPath, options.provider, options.baseUrl, options.apiKeyEnv);
|
|
225
230
|
}
|
|
226
231
|
if (requestRunnerConfigStatus !== "kept") {
|
|
227
232
|
await configureRunner(requestRunnerConfigPath);
|
|
228
233
|
}
|
|
229
234
|
if (modelConfigStatus !== "kept") {
|
|
230
|
-
await configureModelProfile(modelConfigPath, options.provider, options.model);
|
|
235
|
+
await configureModelProfile(modelConfigPath, options.provider, options.model, options);
|
|
231
236
|
}
|
|
232
237
|
const runtimeDirectories = await initializeConfiguredRuntimeDirectories(options.rootDir, configPath);
|
|
233
238
|
console.log([
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { supportsProviderAddress } from "./runtime-setup-provider-options.js";
|
|
1
2
|
import { isRecord } from "./runtime-setup-files.js";
|
|
2
3
|
export function parseRuntimeModelProfileId(value) {
|
|
3
4
|
const profile = value.trim();
|
|
@@ -28,11 +29,15 @@ export function mergeRuntimeModelAddition(runtimeConfig, input) {
|
|
|
28
29
|
existingProvider.type !== input.provider.type) {
|
|
29
30
|
throw new Error(`provider id is already configured with a different adapter: ${input.providerId}; no files were changed`);
|
|
30
31
|
}
|
|
31
|
-
if (input.provider.type
|
|
32
|
+
if (supportsProviderAddress(String(input.provider.type)) &&
|
|
32
33
|
input.baseUrl &&
|
|
33
34
|
existingProvider.baseUrl !== input.baseUrl) {
|
|
34
35
|
throw new Error(`provider ${input.providerId} already uses a different base URL; no files were changed`);
|
|
35
36
|
}
|
|
37
|
+
const changesLlamaCredentialBinding = input.provider.type === "llamacpp" &&
|
|
38
|
+
input.provider.apiKeyEnv !== undefined && input.provider.apiKeyEnv !== existingProvider.apiKeyEnv;
|
|
39
|
+
if (changesLlamaCredentialBinding)
|
|
40
|
+
throw new Error("provider " + input.providerId + " already uses a different credential binding; no files were changed");
|
|
36
41
|
}
|
|
37
42
|
return {
|
|
38
43
|
providerAdded: existingProvider === undefined,
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type SetupModelOptions } from "./runtime-setup-model-options.js";
|
|
2
|
+
export type SetupCommandOptions = Readonly<{
|
|
3
|
+
contextWindowTokens?: number;
|
|
4
|
+
apiKeyEnv?: string;
|
|
5
|
+
modelOptions: SetupModelOptions;
|
|
6
|
+
}>;
|
|
7
|
+
/** Reads shared setup flags before the existing command-specific argument parser. */
|
|
8
|
+
export declare function parseSetupCommandOptions(args: string[]): SetupCommandOptions & {
|
|
9
|
+
argv: string[];
|
|
10
|
+
};
|
|
11
|
+
export declare function requireSetupCommandProviderOptions(provider: string, options: SetupCommandOptions): void;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { parseContextWindowTokens } from "./runtime-setup-files.js";
|
|
2
|
+
import { parseProviderCredentialEnvironment } from "./runtime-setup-provider-options.js";
|
|
3
|
+
import { parseCliReasoningBudget, parseSetupModelOptions } from "./runtime-setup-model-options.js";
|
|
4
|
+
/** Reads shared setup flags before the existing command-specific argument parser. */
|
|
5
|
+
export function parseSetupCommandOptions(args) {
|
|
6
|
+
const argv = [];
|
|
7
|
+
const options = {};
|
|
8
|
+
let contextWindowTokens;
|
|
9
|
+
let apiKeyEnv;
|
|
10
|
+
const flags = ["--supports-thinking", "--reasoning-budget", "--context-window", "--api-key-env"];
|
|
11
|
+
for (let index = 0; index < args.length; index += 1) {
|
|
12
|
+
const arg = args[index];
|
|
13
|
+
const flag = arg.split("=")[0];
|
|
14
|
+
if (!flags.includes(flag)) {
|
|
15
|
+
argv.push(arg);
|
|
16
|
+
continue;
|
|
17
|
+
}
|
|
18
|
+
const hasInlineValue = arg.startsWith(flag + "=");
|
|
19
|
+
const value = hasInlineValue ? arg.slice(flag.length + 1) : args[++index];
|
|
20
|
+
if (!value || value.startsWith("--"))
|
|
21
|
+
throw new Error(flag + " requires a value");
|
|
22
|
+
if (flag === "--supports-thinking") {
|
|
23
|
+
if (value !== "true" && value !== "false")
|
|
24
|
+
throw new Error("--supports-thinking must be true or false");
|
|
25
|
+
options.supportsThinking = value === "true";
|
|
26
|
+
}
|
|
27
|
+
if (flag === "--reasoning-budget")
|
|
28
|
+
options.reasoningBudget = parseCliReasoningBudget(value);
|
|
29
|
+
if (flag === "--context-window")
|
|
30
|
+
contextWindowTokens = parseContextWindowTokens(Number(value));
|
|
31
|
+
if (flag === "--api-key-env")
|
|
32
|
+
apiKeyEnv = parseProviderCredentialEnvironment(value);
|
|
33
|
+
}
|
|
34
|
+
return { argv, contextWindowTokens, apiKeyEnv, modelOptions: parseSetupModelOptions(options) };
|
|
35
|
+
}
|
|
36
|
+
export function requireSetupCommandProviderOptions(provider, options) {
|
|
37
|
+
if (options.apiKeyEnv && provider !== "llamacpp")
|
|
38
|
+
throw new Error("--api-key-env is supported only with --provider llamacpp");
|
|
39
|
+
if (options.modelOptions.reasoningBudget && provider !== "llamacpp")
|
|
40
|
+
throw new Error("--reasoning-budget is supported only with --provider llamacpp");
|
|
41
|
+
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type SetupModelOptions } from "./runtime-setup-model-options.js";
|
|
1
2
|
export type Provider = string;
|
|
2
3
|
export type JsonObject = Record<string, unknown>;
|
|
3
4
|
export declare const DEFAULT_ROOT_RESPONSE_METHODOLOGY_FILES: readonly string[];
|
|
@@ -9,7 +10,7 @@ export declare function readJsonObject(path: string): Promise<JsonObject>;
|
|
|
9
10
|
export declare function writeJsonObject(path: string, value: JsonObject, options?: Readonly<{
|
|
10
11
|
exclusive?: boolean;
|
|
11
12
|
}>): Promise<void>;
|
|
12
|
-
export declare function buildProviderConfig(provider: Provider, baseUrl?: string): JsonObject;
|
|
13
|
-
export declare function buildModelConfig(template: JsonObject, provider: Provider, model: string, contextWindowTokens?: number): JsonObject;
|
|
13
|
+
export declare function buildProviderConfig(provider: Provider, baseUrl?: string, apiKeyEnv?: string): JsonObject;
|
|
14
|
+
export declare function buildModelConfig(template: JsonObject, provider: Provider, model: string, contextWindowTokens?: number, modelOptions?: SetupModelOptions): JsonObject;
|
|
14
15
|
export declare function parseContextWindowTokens(value: unknown): number | undefined;
|
|
15
16
|
export declare function readDefaultContextWindowTokens(): Promise<number>;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { existsSync } from "node:fs";
|
|
2
2
|
import { readFile, writeFile } from "node:fs/promises";
|
|
3
3
|
import { dirname, join, resolve } from "node:path";
|
|
4
|
+
import { defaultProviderAddress, parseProviderCredentialEnvironment } from "./runtime-setup-provider-options.js";
|
|
5
|
+
import { buildSetupModelReasoning } from "./runtime-setup-model-options.js";
|
|
4
6
|
export const DEFAULT_ROOT_RESPONSE_METHODOLOGY_FILES = Object.freeze([
|
|
5
7
|
"methodologies/response-ux.md",
|
|
6
8
|
"methodologies/memory-informed-response.md",
|
|
@@ -61,7 +63,7 @@ export async function writeJsonObject(path, value, options = {}) {
|
|
|
61
63
|
...(options.exclusive ? { flag: "wx" } : {}),
|
|
62
64
|
});
|
|
63
65
|
}
|
|
64
|
-
export function buildProviderConfig(provider, baseUrl) {
|
|
66
|
+
export function buildProviderConfig(provider, baseUrl, apiKeyEnv) {
|
|
65
67
|
if (provider === "openai") {
|
|
66
68
|
return {
|
|
67
69
|
type: "openai",
|
|
@@ -74,12 +76,49 @@ export function buildProviderConfig(provider, baseUrl) {
|
|
|
74
76
|
baseUrl: baseUrl ?? "http://127.0.0.1:11434",
|
|
75
77
|
};
|
|
76
78
|
}
|
|
79
|
+
if (provider === "llamacpp") {
|
|
80
|
+
const credential = parseProviderCredentialEnvironment(apiKeyEnv);
|
|
81
|
+
return {
|
|
82
|
+
type: "llamacpp",
|
|
83
|
+
baseUrl: baseUrl ?? defaultProviderAddress(provider),
|
|
84
|
+
...(credential ? { apiKeyEnv: credential } : {}),
|
|
85
|
+
};
|
|
86
|
+
}
|
|
77
87
|
return { type: provider };
|
|
78
88
|
}
|
|
79
|
-
export function buildModelConfig(template, provider, model, contextWindowTokens) {
|
|
89
|
+
export function buildModelConfig(template, provider, model, contextWindowTokens, modelOptions = {}) {
|
|
80
90
|
const context = isRecord(template.context) ? template.context : {};
|
|
81
|
-
|
|
91
|
+
const tokenEstimation = isRecord(context.tokenEstimation)
|
|
92
|
+
? context.tokenEstimation
|
|
93
|
+
: {};
|
|
94
|
+
const calibration = isRecord(template.calibration) ? template.calibration : {};
|
|
95
|
+
const compaction = isRecord(calibration["context.compact"])
|
|
96
|
+
? calibration["context.compact"]
|
|
97
|
+
: {};
|
|
98
|
+
const generation = isRecord(compaction.generation) ? compaction.generation : {};
|
|
99
|
+
const rawPayload = isRecord(calibration["toolPayload.raw"])
|
|
100
|
+
? calibration["toolPayload.raw"]
|
|
101
|
+
: {};
|
|
102
|
+
const shouldApplyOllamaSetupCalibration = provider === "ollama";
|
|
103
|
+
const shouldApplyOpenAiStepTimeouts = provider === "openai";
|
|
104
|
+
const modelConfig = {
|
|
82
105
|
...template,
|
|
106
|
+
...buildSetupModelReasoning(provider, isRecord(template.generation) ? template.generation : {}, modelOptions),
|
|
107
|
+
...(shouldApplyOllamaSetupCalibration
|
|
108
|
+
? {
|
|
109
|
+
calibration: {
|
|
110
|
+
...calibration,
|
|
111
|
+
"context.compact": {
|
|
112
|
+
...compaction,
|
|
113
|
+
generation: {
|
|
114
|
+
temperature: 0,
|
|
115
|
+
reasoningEffort: "none",
|
|
116
|
+
...generation,
|
|
117
|
+
},
|
|
118
|
+
},
|
|
119
|
+
},
|
|
120
|
+
}
|
|
121
|
+
: {}),
|
|
83
122
|
label: model,
|
|
84
123
|
provider,
|
|
85
124
|
model,
|
|
@@ -95,11 +134,31 @@ export function buildModelConfig(template, provider, model, contextWindowTokens)
|
|
|
95
134
|
: {}),
|
|
96
135
|
context: {
|
|
97
136
|
...context,
|
|
137
|
+
...(shouldApplyOllamaSetupCalibration
|
|
138
|
+
? {
|
|
139
|
+
tokenEstimation: {
|
|
140
|
+
asciiCharactersPerToken: 3,
|
|
141
|
+
nonAsciiBytesPerToken: 2,
|
|
142
|
+
messageOverheadTokens: 6,
|
|
143
|
+
...tokenEstimation,
|
|
144
|
+
},
|
|
145
|
+
}
|
|
146
|
+
: {}),
|
|
98
147
|
formatTokenAccounting: {
|
|
99
|
-
mode:
|
|
148
|
+
mode: shouldApplyOllamaSetupCalibration ? "none" : "estimate",
|
|
100
149
|
},
|
|
101
150
|
},
|
|
102
151
|
};
|
|
152
|
+
if (!shouldApplyOpenAiStepTimeouts)
|
|
153
|
+
return modelConfig;
|
|
154
|
+
return {
|
|
155
|
+
...modelConfig,
|
|
156
|
+
calibration: {
|
|
157
|
+
...calibration,
|
|
158
|
+
"context.compact": { timeoutMs: 300_000, ...compaction },
|
|
159
|
+
"toolPayload.raw": { timeoutMs: 300_000, ...rawPayload },
|
|
160
|
+
},
|
|
161
|
+
};
|
|
103
162
|
}
|
|
104
163
|
export function parseContextWindowTokens(value) {
|
|
105
164
|
if (value === undefined)
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type ModelReasoningBudget } from "../src/shared/model-reasoning.js";
|
|
2
|
+
export type SetupModelOptions = Readonly<{
|
|
3
|
+
supportsThinking?: boolean;
|
|
4
|
+
reasoningBudget?: ModelReasoningBudget;
|
|
5
|
+
}>;
|
|
6
|
+
export declare function parseSetupModelOptions(body: Record<string, unknown>): SetupModelOptions;
|
|
7
|
+
export declare function parseCliReasoningBudget(value: string): ModelReasoningBudget;
|
|
8
|
+
export declare function buildSetupModelReasoning(provider: string, generation: Record<string, unknown>, options: SetupModelOptions): Record<string, unknown>;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { parseModelReasoningBudget, } from "../src/shared/model-reasoning.js";
|
|
2
|
+
export function parseSetupModelOptions(body) {
|
|
3
|
+
const supportsThinking = body.supportsThinking;
|
|
4
|
+
if (supportsThinking !== undefined && typeof supportsThinking !== "boolean")
|
|
5
|
+
throw new Error("Supports reasoning must be true or false.");
|
|
6
|
+
const reasoningBudget = parseModelReasoningBudget(body.reasoningBudget);
|
|
7
|
+
if (reasoningBudget !== undefined && supportsThinking !== true)
|
|
8
|
+
throw new Error("Enable reasoning support before configuring its budget.");
|
|
9
|
+
return {
|
|
10
|
+
...(supportsThinking !== undefined ? { supportsThinking } : {}),
|
|
11
|
+
...(reasoningBudget !== undefined ? { reasoningBudget } : {}),
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export function parseCliReasoningBudget(value) {
|
|
15
|
+
const hasReasoningBudgetInput = value.trim().length > 0;
|
|
16
|
+
if (!hasReasoningBudgetInput)
|
|
17
|
+
throw new Error("A reasoning budget is required.");
|
|
18
|
+
if (value === "server-default")
|
|
19
|
+
return { mode: "server-default" };
|
|
20
|
+
const budget = parseModelReasoningBudget({ mode: "tokens", tokens: Number(value) });
|
|
21
|
+
if (!budget)
|
|
22
|
+
throw new Error("A reasoning budget is required.");
|
|
23
|
+
return budget;
|
|
24
|
+
}
|
|
25
|
+
export function buildSetupModelReasoning(provider, generation, options) {
|
|
26
|
+
const validated = parseSetupModelOptions(options);
|
|
27
|
+
if (validated.reasoningBudget && provider !== "llamacpp")
|
|
28
|
+
throw new Error("A token reasoning budget requires a llama.cpp provider.");
|
|
29
|
+
if (provider !== "llamacpp")
|
|
30
|
+
return validated.supportsThinking === undefined
|
|
31
|
+
? {}
|
|
32
|
+
: { supportsThinking: validated.supportsThinking };
|
|
33
|
+
return {
|
|
34
|
+
supportsThinking: validated.supportsThinking === true,
|
|
35
|
+
capabilities: { inputModalities: ["text"] },
|
|
36
|
+
...(validated.reasoningBudget
|
|
37
|
+
? { generation: { ...generation, reasoningBudget: validated.reasoningBudget } }
|
|
38
|
+
: {}),
|
|
39
|
+
};
|
|
40
|
+
}
|
|
@@ -3,11 +3,11 @@ function commandForMode(mode, sourceCommand, packageCommand) {
|
|
|
3
3
|
}
|
|
4
4
|
export function getInitUsage(mode) {
|
|
5
5
|
const command = commandForMode(mode, "npm run init --", "npx abot init");
|
|
6
|
-
return `Usage: ${command} --provider <provider-adapter> --model <model-id> [--base-url <provider-origin>] [--force] [--root <dir>]`;
|
|
6
|
+
return `Usage: ${command} --provider <provider-adapter> --model <model-id> [--base-url <provider-origin>] [--context-window <tokens>] [--supports-thinking <true|false>] [--reasoning-budget <tokens|server-default>] [--api-key-env <name>] [--force] [--root <dir>]`;
|
|
7
7
|
}
|
|
8
8
|
export function getAddModelUsage(mode) {
|
|
9
9
|
const command = commandForMode(mode, "npm run add-model --", "npx abot add-model");
|
|
10
|
-
return `Usage: ${command} --profile <profile-id> --provider <provider-adapter> --model <model-id> [--base-url <provider-origin>] [--default] [--root <dir>]`;
|
|
10
|
+
return `Usage: ${command} --profile <profile-id> --provider <provider-adapter> --model <model-id> [--base-url <provider-origin>] [--context-window <tokens>] [--supports-thinking <true|false>] [--reasoning-budget <tokens|server-default>] [--api-key-env <name>] [--default] [--root <dir>]`;
|
|
11
11
|
}
|
|
12
12
|
export function getMissingInitializationInstruction(mode) {
|
|
13
13
|
return commandForMode(mode, "run npm run init first", "run npx abot init first");
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare function supportsProviderAddress(provider: string): boolean;
|
|
2
|
+
export declare function defaultProviderAddress(provider: string): string | undefined;
|
|
3
|
+
export declare function supportsProviderCredential(provider: string): boolean;
|
|
4
|
+
export declare function parseProviderCredentialEnvironment(value: unknown): string | undefined;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export function supportsProviderAddress(provider) {
|
|
2
|
+
return provider === "ollama" || provider === "llamacpp";
|
|
3
|
+
}
|
|
4
|
+
export function defaultProviderAddress(provider) {
|
|
5
|
+
if (provider === "ollama")
|
|
6
|
+
return "http://127.0.0.1:11434";
|
|
7
|
+
if (provider === "llamacpp")
|
|
8
|
+
return "http://127.0.0.1:8080";
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
export function supportsProviderCredential(provider) {
|
|
12
|
+
return provider === "openai" || provider === "llamacpp";
|
|
13
|
+
}
|
|
14
|
+
export function parseProviderCredentialEnvironment(value) {
|
|
15
|
+
if (value === undefined)
|
|
16
|
+
return undefined;
|
|
17
|
+
if (typeof value === "string" && /^[A-Za-z_][A-Za-z0-9_]*$/u.test(value))
|
|
18
|
+
return value;
|
|
19
|
+
throw new Error("API key environment name must be a valid environment variable name.");
|
|
20
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { traceDebug } from "../../runtime/observability/debug-logger.js";
|
|
2
2
|
import { permitsModelContentTrace } from "../observability/content-trace-policy.js";
|
|
3
3
|
import { buildModelInvocationMetrics } from "./invocation-metrics.js";
|
|
4
|
+
import { fetchModelGatewayResponse, ModelGatewayInvocationError, } from "./invocation-error.js";
|
|
4
5
|
import { buildChatGatewayRequestBody, resolveMetricMessages, resolveRequestMessages, } from "./message-projection.js";
|
|
5
6
|
import { resolveClientOptions } from "./options.js";
|
|
6
7
|
import { ChatStreamAccumulator, classifyEmptyResponse, InactivityBoundStreamReader, } from "./stream-consumer.js";
|
|
@@ -24,14 +25,16 @@ export async function invokeModelGatewayWithOptions(params, options = {}) {
|
|
|
24
25
|
textLength: typeof params.text === "string" ? params.text.length : 0,
|
|
25
26
|
messageCount: requestMessages.length,
|
|
26
27
|
});
|
|
27
|
-
const
|
|
28
|
+
const serializedRequestBody = JSON.stringify(requestBody);
|
|
29
|
+
const response = await fetchModelGatewayResponse(url + "/chat", {
|
|
28
30
|
method: "POST",
|
|
29
31
|
headers: {
|
|
30
32
|
"Content-Type": "application/json",
|
|
31
33
|
},
|
|
32
34
|
signal: params.abortSignal,
|
|
33
|
-
body:
|
|
34
|
-
});
|
|
35
|
+
body: serializedRequestBody,
|
|
36
|
+
}, params.abortSignal);
|
|
37
|
+
params.abortSignal.throwIfAborted();
|
|
35
38
|
traceDebug("model-gateway.client", "chat.response.received", {
|
|
36
39
|
requestId,
|
|
37
40
|
status: response.status,
|
|
@@ -39,6 +42,7 @@ export async function invokeModelGatewayWithOptions(params, options = {}) {
|
|
|
39
42
|
});
|
|
40
43
|
if (!response.ok) {
|
|
41
44
|
const errorText = await response.text().catch(() => "");
|
|
45
|
+
params.abortSignal.throwIfAborted();
|
|
42
46
|
traceDebug("model-gateway.client", "chat.response.error", {
|
|
43
47
|
requestId,
|
|
44
48
|
status: response.status,
|
|
@@ -47,13 +51,13 @@ export async function invokeModelGatewayWithOptions(params, options = {}) {
|
|
|
47
51
|
? { bodyPreview: errorText.slice(0, 400) }
|
|
48
52
|
: { contentOmitted: true }),
|
|
49
53
|
});
|
|
50
|
-
throw new
|
|
54
|
+
throw new ModelGatewayInvocationError("http", `bridge_request_failed:${response.status}:${permitsModelContentTrace(params.modelStep, params.messages) ? errorText || "empty error body" : "content omitted"}`);
|
|
51
55
|
}
|
|
52
56
|
if (!response.body) {
|
|
53
57
|
traceDebug("model-gateway.client", "chat.response.no_body", {
|
|
54
58
|
requestId,
|
|
55
59
|
});
|
|
56
|
-
throw new
|
|
60
|
+
throw new ModelGatewayInvocationError("missing_stream", "no stream");
|
|
57
61
|
}
|
|
58
62
|
const streamReader = new InactivityBoundStreamReader(response.body.getReader(), params.abortSignal, clientOptions.getStreamInactivityTimeoutMs);
|
|
59
63
|
const stream = new ChatStreamAccumulator(params);
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ModelReasoningPreference } from "../../shared/model-reasoning.js";
|
|
1
2
|
import type { AgentMode, ModelReasoningLevel, ModelStep } from "../../shared/types.js";
|
|
2
3
|
import type { StreamCallbacks } from "../client-stream-parser.js";
|
|
3
4
|
import type { ModelGatewayAttachment, ModelGatewayPolicyConfig, ModelPreference, ModelTokenUsage } from "../types.js";
|
|
@@ -19,6 +20,7 @@ export type InvokeModelGatewayParams = StreamCallbacks & {
|
|
|
19
20
|
modelOverride?: string;
|
|
20
21
|
reasoningOverride?: ModelReasoningLevel;
|
|
21
22
|
modelPreference?: ModelPreference;
|
|
23
|
+
reasoningPreference?: ModelReasoningPreference;
|
|
22
24
|
modelPolicy?: ModelGatewayPolicyConfig;
|
|
23
25
|
abortSignal: AbortSignal;
|
|
24
26
|
debugRequestId?: string;
|
|
@@ -32,6 +34,7 @@ export type InvokeRawModelGatewayParams = {
|
|
|
32
34
|
modelOverride?: string;
|
|
33
35
|
reasoningOverride?: ModelReasoningLevel;
|
|
34
36
|
modelPreference?: ModelPreference;
|
|
37
|
+
reasoningPreference?: ModelReasoningPreference;
|
|
35
38
|
modelPolicy?: ModelGatewayPolicyConfig;
|
|
36
39
|
abortSignal: AbortSignal;
|
|
37
40
|
debugRequestId?: string;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
2
|
import { traceDebug } from "../../runtime/observability/debug-logger.js";
|
|
3
|
+
import { InputTokenCountDiagnostics } from "../observability/input-token-count-diagnostics.js";
|
|
3
4
|
import { toolMediaSafeMessage } from "../observability/tool-media-privacy.js";
|
|
4
5
|
import { buildChatGatewayRequestBody, resolveRequestMessages, } from "./message-projection.js";
|
|
5
6
|
import { resolveClientOptions } from "./options.js";
|
|
@@ -61,6 +62,10 @@ function updateInputTokenCountCache(cache, cacheKey, result) {
|
|
|
61
62
|
cache.delete(oldestKey);
|
|
62
63
|
}
|
|
63
64
|
}
|
|
65
|
+
// A local llama.cpp server can change its template/tokenizer without changing the request.
|
|
66
|
+
function canCacheProviderInputTokenCount(provider) {
|
|
67
|
+
return provider !== "llamacpp";
|
|
68
|
+
}
|
|
64
69
|
export async function countModelGatewayInputTokensWithOptions(params, options = {}, cache) {
|
|
65
70
|
const clientOptions = resolveClientOptions(options);
|
|
66
71
|
const provider = params.provider.trim();
|
|
@@ -71,7 +76,8 @@ export async function countModelGatewayInputTokensWithOptions(params, options =
|
|
|
71
76
|
const modelPolicy = params.modelPolicy ?? clientOptions.modelPolicy;
|
|
72
77
|
const requestBody = buildChatGatewayRequestBody(params, requestMessages, modelPolicy);
|
|
73
78
|
const cacheKey = createInputTokenCountCacheKey(provider, requestBody);
|
|
74
|
-
const
|
|
79
|
+
const eligibleCache = canCacheProviderInputTokenCount(provider) ? cache : undefined;
|
|
80
|
+
const cached = eligibleCache?.get(cacheKey);
|
|
75
81
|
if (cached) {
|
|
76
82
|
return cached;
|
|
77
83
|
}
|
|
@@ -84,21 +90,35 @@ export async function countModelGatewayInputTokensWithOptions(params, options =
|
|
|
84
90
|
modelStep: params.modelStep,
|
|
85
91
|
messageCount: requestMessages.length,
|
|
86
92
|
});
|
|
87
|
-
const
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
93
|
+
const diagnostics = new InputTokenCountDiagnostics("model-gateway.client", requestBody);
|
|
94
|
+
diagnostics.setProvider(provider);
|
|
95
|
+
let statusCode;
|
|
96
|
+
let result;
|
|
97
|
+
try {
|
|
98
|
+
diagnostics.setPhase("bridge_fetch");
|
|
99
|
+
const response = await fetch(`${clientOptions.baseUrl}/input-tokens`, {
|
|
100
|
+
method: "POST",
|
|
101
|
+
headers: {
|
|
102
|
+
"Content-Type": "application/json",
|
|
103
|
+
},
|
|
104
|
+
signal: params.abortSignal,
|
|
105
|
+
body: JSON.stringify(requestBody),
|
|
106
|
+
});
|
|
107
|
+
statusCode = response.status;
|
|
108
|
+
diagnostics.setPhase("bridge_response");
|
|
109
|
+
if (!response.ok) {
|
|
110
|
+
const errorText = await response.text().catch(() => "");
|
|
111
|
+
throw new Error(`bridge_input_token_count_failed:${response.status}:${toolMediaSafeMessage(errorText || "empty error body", requestMessages)}`);
|
|
112
|
+
}
|
|
113
|
+
diagnostics.setPhase("bridge_parse");
|
|
114
|
+
result = parseInputTokenCountResult(await response.json().catch(() => undefined));
|
|
115
|
+
if (result.provider !== provider) {
|
|
116
|
+
throw new Error("model_gateway_input_token_count_provider_mismatch");
|
|
117
|
+
}
|
|
98
118
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
throw
|
|
119
|
+
catch (error) {
|
|
120
|
+
diagnostics.failed({ kind: "exception", error, statusCode, aborted: params.abortSignal.aborted });
|
|
121
|
+
throw error;
|
|
102
122
|
}
|
|
103
123
|
traceDebug("model-gateway.client", "input_tokens.request.completed", {
|
|
104
124
|
requestId,
|
|
@@ -108,6 +128,6 @@ export async function countModelGatewayInputTokensWithOptions(params, options =
|
|
|
108
128
|
inputTokens: result.inputTokens,
|
|
109
129
|
durationMs: Date.now() - startedAt,
|
|
110
130
|
});
|
|
111
|
-
updateInputTokenCountCache(
|
|
131
|
+
updateInputTokenCountCache(eligibleCache, cacheKey, result);
|
|
112
132
|
return result;
|
|
113
133
|
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export type ModelGatewayInvocationFailureKind = "network" | "http" | "stream" | "inactivity" | "missing_stream";
|
|
2
|
+
/** A failed transport attempt, distinct from local validation or callbacks. */
|
|
3
|
+
export declare class ModelGatewayInvocationError extends Error {
|
|
4
|
+
readonly kind: ModelGatewayInvocationFailureKind;
|
|
5
|
+
constructor(kind: ModelGatewayInvocationFailureKind, message: string, options?: ErrorOptions);
|
|
6
|
+
}
|
|
7
|
+
export declare function wrapModelGatewayTransportError(kind: "network" | "stream", cause: unknown): ModelGatewayInvocationError;
|
|
8
|
+
/** Only fetch rejection is classified; request construction stays with callers. */
|
|
9
|
+
export declare function fetchModelGatewayResponse(url: string, init: RequestInit, abortSignal: AbortSignal): Promise<Response>;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/** A failed transport attempt, distinct from local validation or callbacks. */
|
|
2
|
+
export class ModelGatewayInvocationError extends Error {
|
|
3
|
+
kind;
|
|
4
|
+
constructor(kind, message, options) {
|
|
5
|
+
super(message, options);
|
|
6
|
+
this.kind = kind;
|
|
7
|
+
this.name = "ModelGatewayInvocationError";
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
export function wrapModelGatewayTransportError(kind, cause) {
|
|
11
|
+
return new ModelGatewayInvocationError(kind, readTransportFailureMessage(kind, cause), { cause });
|
|
12
|
+
}
|
|
13
|
+
function readTransportFailureMessage(kind, cause) {
|
|
14
|
+
if (cause instanceof Error)
|
|
15
|
+
return cause.message;
|
|
16
|
+
if (typeof cause === "string")
|
|
17
|
+
return cause;
|
|
18
|
+
return `model_gateway_${kind}_failed`;
|
|
19
|
+
}
|
|
20
|
+
/** Only fetch rejection is classified; request construction stays with callers. */
|
|
21
|
+
export async function fetchModelGatewayResponse(url, init, abortSignal) {
|
|
22
|
+
try {
|
|
23
|
+
return await fetch(url, init);
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
if (abortSignal.aborted)
|
|
27
|
+
throw error;
|
|
28
|
+
throw wrapModelGatewayTransportError("network", error);
|
|
29
|
+
}
|
|
30
|
+
}
|