@abot-ai/runtime 1.6.0 → 1.8.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 +2 -0
- package/dist/src/bridge/request-steering.js +60 -15
- package/dist/src/capabilities/normal-invocation/contracts.d.ts +3 -0
- package/dist/src/capabilities/normal-invocation/output-channels.d.ts +10 -0
- package/dist/src/capabilities/normal-invocation/output-channels.js +29 -0
- package/dist/src/capabilities/normal-invocation/validator.js +4 -2
- package/dist/src/capabilities/tool-request-resources.d.ts +3 -0
- package/dist/src/capabilities/tool-types.d.ts +1 -1
- package/dist/src/cli/abot.js +2 -0
- package/dist/src/cli/host-companion-bundle.mjs +8003 -6796
- package/dist/src/cli/host-companion-entry.js +5 -22
- package/dist/src/cli/host-companion-input.d.ts +3 -0
- package/dist/src/cli/host-companion-input.js +21 -0
- package/dist/src/cli/host-companion-lifecycle.d.ts +11 -0
- package/dist/src/cli/host-companion-lifecycle.js +32 -0
- package/dist/src/cli/host-companion-setup-target.d.ts +4 -0
- package/dist/src/cli/host-companion-setup-target.js +17 -0
- package/dist/src/cli/host-companion-startup.d.ts +2 -0
- package/dist/src/cli/host-companion-startup.js +7 -2
- package/dist/src/cli/host-companion.d.ts +6 -0
- package/dist/src/cli/host-companion.js +30 -27
- package/dist/src/cli/windows-companion-store-entry.d.ts +9 -0
- package/dist/src/cli/windows-companion-store-entry.js +67 -0
- package/dist/src/computer-access/collection-consent.d.ts +9 -0
- package/dist/src/computer-access/collection-consent.js +47 -0
- package/dist/src/computer-access/command-output-capture.d.ts +48 -0
- package/dist/src/computer-access/command-output-capture.js +202 -0
- package/dist/src/computer-access/command-output-protection.d.ts +17 -0
- package/dist/src/computer-access/command-output-protection.js +59 -0
- package/dist/src/computer-access/command-output-retention.d.ts +5 -0
- package/dist/src/computer-access/command-output-retention.js +90 -0
- package/dist/src/computer-access/command-output.d.ts +7 -0
- package/dist/src/computer-access/command-output.js +1 -0
- package/dist/src/computer-access/commands.d.ts +1 -0
- package/dist/src/computer-access/commands.js +1 -1
- package/dist/src/computer-access/companion/command-output-protocol.d.ts +12 -0
- package/dist/src/computer-access/companion/command-output-protocol.js +28 -0
- package/dist/src/computer-access/companion/command-output.d.ts +14 -0
- package/dist/src/computer-access/companion/command-output.js +127 -0
- package/dist/src/computer-access/companion/install-link-macos.d.ts +7 -0
- package/dist/src/computer-access/companion/install-link-macos.js +49 -0
- package/dist/src/computer-access/companion/install-link-registration.d.ts +4 -0
- package/dist/src/computer-access/companion/install-link-registration.js +184 -0
- package/dist/src/computer-access/companion/install-link-windows.d.ts +4 -0
- package/dist/src/computer-access/companion/install-link-windows.js +65 -0
- package/dist/src/computer-access/companion/install-link.d.ts +9 -0
- package/dist/src/computer-access/companion/install-link.js +54 -0
- package/dist/src/computer-access/companion/native-messages.js +3 -0
- package/dist/src/computer-access/companion/native-notifications.js +3 -2
- package/dist/src/computer-access/companion/native-session.d.ts +1 -0
- package/dist/src/computer-access/companion/native-session.js +20 -4
- package/dist/src/computer-access/companion/native-supervisor.js +1 -0
- package/dist/src/computer-access/companion/notification-windows.d.ts +1 -1
- package/dist/src/computer-access/companion/notification-windows.js +8 -3
- package/dist/src/computer-access/companion/observation-filter.js +2 -26
- package/dist/src/computer-access/companion/observation-process.d.ts +2 -0
- package/dist/src/computer-access/companion/observation-process.js +51 -25
- package/dist/src/computer-access/companion/observation-redaction.d.ts +2 -7
- package/dist/src/computer-access/companion/observation-redaction.js +2 -111
- package/dist/src/computer-access/companion/protocol.d.ts +1 -1
- package/dist/src/computer-access/companion/protocol.js +6 -0
- package/dist/src/computer-access/companion/release-version.d.ts +1 -1
- package/dist/src/computer-access/companion/release-version.js +1 -1
- package/dist/src/computer-access/companion/secret-protection-protocol.d.ts +6 -0
- package/dist/src/computer-access/companion/secret-protection-protocol.js +6 -0
- package/dist/src/computer-access/companion/windows-store/connection-error.d.ts +7 -0
- package/dist/src/computer-access/companion/windows-store/connection-error.js +19 -0
- package/dist/src/computer-access/companion/windows-store/connection-link.d.ts +13 -0
- package/dist/src/computer-access/companion/windows-store/connection-link.js +109 -0
- package/dist/src/computer-access/companion/windows-store/identity.d.ts +13 -0
- package/dist/src/computer-access/companion/windows-store/identity.js +13 -0
- package/dist/src/computer-access/companion/windows-store/lifecycle.d.ts +5 -0
- package/dist/src/computer-access/companion/windows-store/lifecycle.js +90 -0
- package/dist/src/computer-access/computer/companion-sessions.js +7 -6
- package/dist/src/computer-access/computer/unix-native-process.js +23 -11
- package/dist/src/computer-access/contracts.d.ts +1 -1
- package/dist/src/computer-access/handlers.d.ts +3 -1
- package/dist/src/computer-access/handlers.js +83 -11
- package/dist/src/computer-access/host-observation.d.ts +3 -3
- package/dist/src/computer-access/native-observation-connection.d.ts +12 -0
- package/dist/src/computer-access/native-observation-connection.js +78 -0
- package/dist/src/computer-access/native-observation-ownership.d.ts +6 -0
- package/dist/src/computer-access/native-observation-ownership.js +55 -0
- package/dist/src/computer-access/native-observation-shutdown.d.ts +7 -0
- package/dist/src/computer-access/native-observation-shutdown.js +58 -0
- package/dist/src/computer-access/observation-source.d.ts +6 -0
- package/dist/src/computer-access/observation-source.js +10 -0
- package/dist/src/computer-access/process-capture.d.ts +6 -0
- package/dist/src/computer-access/process-capture.js +1 -0
- package/dist/src/computer-access/process-result.d.ts +2 -0
- package/dist/src/computer-access/process-result.js +14 -6
- package/dist/src/computer-access/process-runner.d.ts +2 -1
- package/dist/src/computer-access/process-runner.js +21 -13
- package/dist/src/computer-access/security/desktop-result.d.ts +8 -0
- package/dist/src/computer-access/security/desktop-result.js +146 -0
- package/dist/src/computer-access/security/observed-error.d.ts +2 -0
- package/dist/src/computer-access/security/observed-error.js +10 -0
- package/dist/src/computer-access/security/secret-text.d.ts +7 -0
- package/dist/src/computer-access/security/secret-text.js +111 -0
- package/dist/src/computer-access/security/system-results.d.ts +2 -0
- package/dist/src/computer-access/security/system-results.js +53 -0
- package/dist/src/computer-access/system-result-protection.d.ts +11 -0
- package/dist/src/computer-access/system-result-protection.js +1 -0
- package/dist/src/model-gateway/observability/provider-response-capture.d.ts +60 -0
- package/dist/src/model-gateway/observability/provider-response-capture.js +68 -0
- package/dist/src/model-gateway/observability/provider-response-prefix.d.ts +7 -0
- package/dist/src/model-gateway/observability/provider-response-prefix.js +14 -0
- package/dist/src/model-gateway/observability/provider-response-tail.d.ts +8 -0
- package/dist/src/model-gateway/observability/provider-response-tail.js +28 -0
- package/dist/src/model-gateway/observability/provider-sse-diagnostics.d.ts +30 -0
- package/dist/src/model-gateway/observability/provider-sse-diagnostics.js +119 -0
- package/dist/src/model-gateway/observability/provider-trace.js +30 -8
- package/dist/src/model-gateway/providers/ollama/adapter.js +8 -2
- package/dist/src/model-gateway/providers/ollama/stream-normalizer.js +70 -50
- package/dist/src/model-gateway/providers/ollama/stream-termination.d.ts +6 -0
- package/dist/src/model-gateway/providers/ollama/stream-termination.js +20 -0
- package/dist/src/model-gateway/providers/openai/adapter.js +9 -7
- package/dist/src/model-gateway/providers/openai/diagnostics.d.ts +0 -1
- package/dist/src/model-gateway/providers/openai/diagnostics.js +0 -9
- package/dist/src/model-gateway/providers/openai/function-output.d.ts +11 -0
- package/dist/src/model-gateway/providers/openai/function-output.js +37 -0
- package/dist/src/model-gateway/providers/openai/function-result.d.ts +7 -0
- package/dist/src/model-gateway/providers/openai/function-result.js +35 -0
- package/dist/src/model-gateway/providers/openai/message-output-policy.d.ts +3 -0
- package/dist/src/model-gateway/providers/openai/message-output-policy.js +16 -0
- package/dist/src/model-gateway/providers/openai/payload.d.ts +0 -2
- package/dist/src/model-gateway/providers/openai/payload.js +6 -23
- package/dist/src/model-gateway/providers/openai/response-lifetime.d.ts +2 -0
- package/dist/src/model-gateway/providers/openai/response-lifetime.js +64 -0
- package/dist/src/model-gateway/providers/openai/sse-data.d.ts +9 -0
- package/dist/src/model-gateway/providers/openai/sse-data.js +67 -0
- package/dist/src/model-gateway/providers/openai/stream-normalizer.d.ts +10 -22
- package/dist/src/model-gateway/providers/openai/stream-normalizer.js +78 -79
- package/dist/src/model-gateway/providers/openai/stream.js +13 -41
- package/dist/src/model-gateway/providers/openai/structured-message-output.d.ts +42 -0
- package/dist/src/model-gateway/providers/openai/structured-message-output.js +175 -0
- package/dist/src/model-gateway/server/configuration.d.ts +2 -0
- package/dist/src/model-gateway/server/configuration.js +73 -21
- package/dist/src/model-gateway/server.js +5 -1
- package/dist/src/plugin-contract/index.d.ts +1 -0
- package/dist/src/plugin-contract/index.js +1 -0
- package/dist/src/plugin-contract/install-source.d.ts +13 -0
- package/dist/src/plugin-contract/install-source.js +99 -0
- package/dist/src/plugin-contract/manifest.d.ts +4 -1
- package/dist/src/plugin-contract/manifest.js +1 -0
- package/dist/src/plugin-contract/platform-compatibility.d.ts +16 -0
- package/dist/src/plugin-contract/platform-compatibility.js +3 -0
- package/dist/src/plugin-sdk/computer-access.d.ts +12 -0
- package/dist/src/plugin-sdk/computer-access.js +6 -0
- package/dist/src/plugin-sdk/files-windows/process.d.ts +3 -0
- package/dist/src/plugin-sdk/files-windows/process.js +93 -0
- package/dist/src/plugin-sdk/files-windows/read-script.d.ts +1 -0
- package/dist/src/plugin-sdk/files-windows/read-script.js +43 -0
- package/dist/src/plugin-sdk/files-windows/read.d.ts +6 -0
- package/dist/src/plugin-sdk/files-windows/read.js +56 -0
- package/dist/src/plugin-sdk/files-windows/result.d.ts +4 -0
- package/dist/src/plugin-sdk/files-windows/result.js +67 -0
- package/dist/src/plugin-sdk/files.js +4 -0
- package/dist/src/plugin-sdk/index.d.ts +1 -0
- package/dist/src/plugin-sdk/index.js +1 -0
- package/dist/src/plugin-sdk/mutation-result.d.ts +7 -0
- package/dist/src/plugin-sdk/mutation-result.js +11 -0
- package/dist/src/runtime/adapters/in-memory-session-store.js +6 -16
- package/dist/src/runtime/adapters/long-term-memory/file-lock/acquisition.js +20 -3
- package/dist/src/runtime/adapters/long-term-memory/file-lock/owner-record.js +3 -1
- package/dist/src/runtime/adapters/long-term-memory/file-lock/path-observation.d.ts +3 -0
- package/dist/src/runtime/adapters/long-term-memory/file-lock/path-observation.js +20 -0
- package/dist/src/runtime/adapters/long-term-memory/file-lock/snapshot.js +7 -3
- package/dist/src/runtime/adapters/passive-learning-runtime.d.ts +1 -1
- package/dist/src/runtime/adapters/passive-learning-runtime.js +3 -3
- package/dist/src/runtime/adapters/runtime-observation-connection.d.ts +5 -0
- package/dist/src/runtime/adapters/runtime-observation-connection.js +13 -0
- package/dist/src/runtime/admin/config-control.js +2 -1
- package/dist/src/runtime/automations/catalog.d.ts +3 -0
- package/dist/src/runtime/automations/catalog.js +1 -0
- package/dist/src/runtime/automations/model-dependency-projection.d.ts +2 -0
- package/dist/src/runtime/automations/service.d.ts +2 -0
- package/dist/src/runtime/capabilities/automation-builder/authoring-reference.d.ts +10 -5
- package/dist/src/runtime/capabilities/automation-builder/authoring-reference.js +8 -7
- package/dist/src/runtime/capabilities/automation-builder/payload-instructions.d.ts +2 -2
- package/dist/src/runtime/capabilities/automation-builder/payload-instructions.js +2 -2
- package/dist/src/runtime/capabilities/automation-builder/tool-contract.d.ts +2 -2
- package/dist/src/runtime/capabilities/automations/authoring-catalog.js +1 -1
- package/dist/src/runtime/capabilities/automations/authoring-preparation.d.ts +11 -5
- package/dist/src/runtime/capabilities/automations/tool-module.js +1 -1
- package/dist/src/runtime/capabilities/request-permission-catalog.d.ts +3 -1
- package/dist/src/runtime/capabilities/request-permission-catalog.js +21 -2
- package/dist/src/runtime/capabilities/request-permission-tool-registry.d.ts +2 -1
- package/dist/src/runtime/capabilities/request-permission-tool-registry.js +18 -10
- package/dist/src/runtime/capabilities/request-runtime-tool-registry.d.ts +2 -0
- package/dist/src/runtime/capabilities/request-runtime-tool-registry.js +1 -1
- package/dist/src/runtime/capabilities/scheduling/create-operations.d.ts +6 -0
- package/dist/src/runtime/config/builders.js +6 -5
- package/dist/src/runtime/config/effective-model-config-validation.js +4 -35
- package/dist/src/runtime/config/fields.js +15 -0
- package/dist/src/runtime/config/model-context-capacity.d.ts +20 -0
- package/dist/src/runtime/config/model-context-capacity.js +55 -0
- package/dist/src/runtime/config/model-execution-policy.d.ts +5 -1
- package/dist/src/runtime/config/model-execution-policy.js +16 -0
- package/dist/src/runtime/config/model-plugin-config.d.ts +8 -0
- package/dist/src/runtime/config/model-plugin-config.js +40 -0
- package/dist/src/runtime/config/schema.js +5 -1
- package/dist/src/runtime/config/validation/model-profile-validation.js +2 -0
- package/dist/src/runtime/config/validation/runtime-config-validation-contract.d.ts +3 -1
- package/dist/src/runtime/config/validation/runtime-config-validation-contract.js +3 -1
- package/dist/src/runtime/config/validation/runtime-root-section-validation.js +11 -4
- package/dist/src/runtime/config/validation/web-ui-config-validation.js +3 -2
- package/dist/src/runtime/config/web-ui.d.ts +5 -0
- package/dist/src/runtime/config/web-ui.js +5 -0
- package/dist/src/runtime/config.js +2 -0
- package/dist/src/runtime/local-application.d.ts +2 -0
- package/dist/src/runtime/local-host/app-owner.js +50 -6
- package/dist/src/runtime/local-host/app-request-control.d.ts +3 -1
- package/dist/src/runtime/local-host/app-request-control.js +91 -11
- package/dist/src/runtime/local-host/client-requests.js +32 -5
- package/dist/src/runtime/local-host/client-services.d.ts +2 -0
- package/dist/src/runtime/local-host/local-request-diagnostics.d.ts +9 -0
- package/dist/src/runtime/local-host/local-request-diagnostics.js +47 -0
- package/dist/src/runtime/local-host/saved-approvals.js +23 -2
- package/dist/src/runtime/local-host/windows-private-access.js +2 -0
- package/dist/src/runtime/model/model-selection.js +4 -1
- package/dist/src/runtime/observability/request-control-diagnostics.d.ts +6 -0
- package/dist/src/runtime/observability/request-control-diagnostics.js +52 -0
- package/dist/src/runtime/passive-learning/application-catalog.js +3 -1
- package/dist/src/runtime/passive-learning/collection-source.js +7 -0
- package/dist/src/runtime/passive-learning/service.js +2 -3
- package/dist/src/runtime/passive-learning/status-projection.d.ts +2 -0
- package/dist/src/runtime/passive-learning/status-projection.js +9 -0
- package/dist/src/runtime/plugins/configuration-context.d.ts +9 -0
- package/dist/src/runtime/plugins/configuration-context.js +42 -0
- package/dist/src/runtime/plugins/configuration-settings.d.ts +2 -0
- package/dist/src/runtime/plugins/configuration-settings.js +26 -0
- package/dist/src/runtime/plugins/configuration-store.d.ts +23 -0
- package/dist/src/runtime/plugins/configuration-store.js +100 -0
- package/dist/src/runtime/plugins/configuration-write.d.ts +5 -0
- package/dist/src/runtime/plugins/configuration-write.js +58 -0
- package/dist/src/runtime/plugins/installation/archive.d.ts +2 -0
- package/dist/src/runtime/plugins/installation/archive.js +107 -0
- package/dist/src/runtime/plugins/installation/github-download.d.ts +9 -0
- package/dist/src/runtime/plugins/installation/github-download.js +72 -0
- package/dist/src/runtime/plugins/installation/installed-package.d.ts +9 -0
- package/dist/src/runtime/plugins/installation/installed-package.js +66 -0
- package/dist/src/runtime/plugins/installation/package.d.ts +53 -0
- package/dist/src/runtime/plugins/installation/package.js +81 -0
- package/dist/src/runtime/plugins/installation/portable-path.d.ts +2 -0
- package/dist/src/runtime/plugins/installation/portable-path.js +10 -0
- package/dist/src/runtime/plugins/installation/publication.d.ts +10 -0
- package/dist/src/runtime/plugins/installation/publication.js +17 -0
- package/dist/src/runtime/plugins/installation/service.d.ts +48 -0
- package/dist/src/runtime/plugins/installation/service.js +80 -0
- package/dist/src/runtime/plugins/loader.js +34 -38
- package/dist/src/runtime/plugins/manifest-platform-compatibility.d.ts +2 -0
- package/dist/src/runtime/plugins/manifest-platform-compatibility.js +39 -0
- package/dist/src/runtime/plugins/manifest-projection.js +1 -0
- package/dist/src/runtime/plugins/manifest-validator.js +12 -1
- package/dist/src/runtime/plugins/module-cache.d.ts +2 -0
- package/dist/src/runtime/plugins/module-cache.js +19 -0
- package/dist/src/runtime/plugins/platform-compatibility.d.ts +4 -0
- package/dist/src/runtime/plugins/platform-compatibility.js +44 -0
- package/dist/src/runtime/plugins/selection.d.ts +2 -0
- package/dist/src/runtime/plugins/selection.js +16 -11
- package/dist/src/runtime/ports.d.ts +6 -4
- package/dist/src/runtime/request/approval-wait/activation-events.js +19 -7
- package/dist/src/runtime/request/approval-wait/execution-compaction-restore.d.ts +20 -0
- package/dist/src/runtime/request/approval-wait/execution-compaction-restore.js +118 -0
- package/dist/src/runtime/request/approval-wait/super-compaction-restore.js +2 -1
- package/dist/src/runtime/request/dependencies.d.ts +2 -1
- package/dist/src/runtime/request/execution-payload-compacted-evidence.d.ts +1 -1
- package/dist/src/runtime/request/handler.js +8 -0
- package/dist/src/runtime/request/prepared-execution.js +9 -1
- package/dist/src/runtime/request/request-steering.d.ts +4 -0
- package/dist/src/runtime/request/request-steering.js +37 -12
- package/dist/src/runtime/request/worker-capability-composition.d.ts +2 -0
- package/dist/src/runtime/request/worker-capability-composition.js +4 -1
- package/dist/src/runtime/scheduler/journal-index-state.d.ts +1 -1
- package/dist/src/runtime/steps/execution-agent/capability-result-context.d.ts +6 -0
- package/dist/src/runtime/steps/execution-agent/capability-result-context.js +29 -0
- package/dist/src/runtime/steps/execution-agent/format.js +2 -3
- package/dist/src/runtime/steps/execution-agent/input.js +1 -1
- package/dist/src/runtime/steps/execution-agent/prompt.js +5 -5
- package/dist/src/runtime/steps/execution-agent/response-prompt.js +1 -0
- package/dist/src/runtime/steps/execution-agent/state-context.d.ts +2 -3
- package/dist/src/runtime/steps/execution-agent/state-context.js +26 -35
- package/dist/src/runtime/steps/execution-agent/work-plan-contract.d.ts +1 -3
- package/dist/src/runtime/steps/execution-agent/work-plan-contract.js +0 -55
- package/dist/src/runtime/steps/execution-agent/work-plan-schema.d.ts +3 -0
- package/dist/src/runtime/steps/execution-agent/work-plan-schema.js +61 -0
- package/dist/src/sessions/assistant-initiative-message.d.ts +3 -0
- package/dist/src/sessions/assistant-initiative-message.js +12 -0
- package/dist/src/sessions/assistant-initiative.d.ts +2 -2
- package/dist/src/sessions/assistant-initiative.js +1 -7
- package/dist/src/sessions/durable-session-commit.d.ts +2 -1
- package/dist/src/sessions/durable-session-commit.js +9 -4
- package/dist/src/sessions/metadata/projection.d.ts +15 -0
- package/dist/src/sessions/metadata/projection.js +55 -0
- package/dist/src/sessions/metadata/publication.d.ts +12 -0
- package/dist/src/sessions/metadata/publication.js +78 -0
- package/dist/src/sessions/metadata/source-receipt.d.ts +5 -0
- package/dist/src/sessions/metadata/source-receipt.js +42 -0
- package/dist/src/sessions/metadata/store.d.ts +7 -0
- package/dist/src/sessions/metadata/store.js +119 -0
- package/dist/src/sessions/prepared-session-replacement.d.ts +6 -0
- package/dist/src/sessions/prepared-session-replacement.js +46 -0
- package/dist/src/sessions/record/projection.d.ts +3 -1
- package/dist/src/sessions/record/projection.js +26 -18
- package/dist/src/sessions/request-lifecycle/service.js +3 -3
- package/dist/src/sessions/session-service.d.ts +2 -4
- package/dist/src/sessions/session-service.js +4 -16
- package/dist/src/sessions/session-store.d.ts +2 -1
- package/dist/src/sessions/session-store.js +11 -5
- package/dist/src/sessions/snapshot.d.ts +17 -0
- package/dist/src/sessions/snapshot.js +105 -0
- package/dist/src/sessions/types.d.ts +2 -0
- package/dist/src/shared/passive-observation-self-exclusion.d.ts +5 -0
- package/dist/src/shared/passive-observation-self-exclusion.js +37 -0
- package/dist/src/shared/tool-selection.d.ts +2 -0
- package/dist/src/shared/tool-selection.js +7 -0
- package/dist/src/shared/windows-file-io/authority-script.d.ts +1 -0
- package/dist/src/shared/windows-file-io/authority-script.js +94 -0
- package/dist/src/shared/windows-file-io/native-script.d.ts +2 -0
- package/dist/src/shared/windows-file-io/native-script.js +120 -0
- package/dist/src/shared/windows-file-io/read-bytes-script.d.ts +1 -0
- package/dist/src/shared/windows-file-io/read-bytes-script.js +18 -0
- package/dist/src/shared/windows-job-object.d.ts +2 -0
- package/dist/src/shared/windows-job-object.js +66 -0
- package/dist/src/web-ui/app/ARCHITECTURE.md +14 -0
- package/dist/src/web-ui/app/app-bootstrap.js +14 -1
- package/dist/src/web-ui/app/app-state.js +0 -7
- package/dist/src/web-ui/app/app.js +59 -159
- package/dist/src/web-ui/app/components/automations/node-inspector.js +3 -2
- package/dist/src/web-ui/app/components/automations/step-editor-dialog.js +3 -0
- package/dist/src/web-ui/app/components/composer-submission-notice.js +50 -0
- package/dist/src/web-ui/app/components/config-workspace/config-model.js +2 -0
- package/dist/src/web-ui/app/components/config-workspace/model-plugin-permissions.js +136 -0
- package/dist/src/web-ui/app/components/config-workspace/model-plugin-selection.js +180 -0
- package/dist/src/web-ui/app/components/config-workspace/model-plugin-view-state.js +114 -0
- package/dist/src/web-ui/app/components/config-workspace/model-rendering.js +3 -0
- package/dist/src/web-ui/app/components/config-workspace/model-summary.js +39 -0
- package/dist/src/web-ui/app/components/config-workspace/summary-rendering.js +30 -0
- package/dist/src/web-ui/app/components/config-workspace/workspace-events.js +37 -0
- package/dist/src/web-ui/app/components/config-workspace/workspace-mutations.js +24 -2
- package/dist/src/web-ui/app/components/config-workspace/workspace-persistence.js +9 -1
- package/dist/src/web-ui/app/components/config-workspace/workspace-view.js +23 -67
- package/dist/src/web-ui/app/components/config-workspace.js +11 -2
- package/dist/src/web-ui/app/components/conversation-view.js +36 -5
- package/dist/src/web-ui/app/components/dashboard/recent-conversations.js +2 -1
- package/dist/src/web-ui/app/components/dashboard/workspace.js +2 -1
- package/dist/src/web-ui/app/components/home-guidance/daily-review.js +2 -2
- package/dist/src/web-ui/app/components/home-guidance/home-guidance.js +20 -6
- package/dist/src/web-ui/app/components/model-setup/context-window-feedback.js +53 -0
- package/dist/src/web-ui/app/components/model-setup/save-flow.js +3 -1
- package/dist/src/web-ui/app/components/model-setup/save-outcome.js +1 -0
- package/dist/src/web-ui/app/components/model-setup/wizard.js +12 -0
- package/dist/src/web-ui/app/components/operations-summary.js +105 -0
- package/dist/src/web-ui/app/components/passive-learning/activity-controls.js +4 -0
- package/dist/src/web-ui/app/components/passive-learning/collection-access.js +35 -0
- package/dist/src/web-ui/app/components/passive-learning/collection-consent-dialog.js +59 -0
- package/dist/src/web-ui/app/components/passive-learning/collection-consent-gate.js +94 -0
- package/dist/src/web-ui/app/components/passive-learning/computer-update-notice.js +6 -0
- package/dist/src/web-ui/app/components/passive-learning/failure-copy.js +1 -0
- package/dist/src/web-ui/app/components/passive-learning/home.js +8 -11
- package/dist/src/web-ui/app/components/passive-learning/macos-collection-restart-notice.js +1 -0
- package/dist/src/web-ui/app/components/passive-learning/memory.js +2 -4
- package/dist/src/web-ui/app/components/passive-learning/workspace-view.js +2 -2
- package/dist/src/web-ui/app/components/plugins/compatibility.js +13 -0
- package/dist/src/web-ui/app/components/plugins/configuration-draft.js +34 -0
- package/dist/src/web-ui/app/components/plugins/configuration-editor.js +147 -0
- package/dist/src/web-ui/app/components/plugins/configuration-fields.js +103 -0
- package/dist/src/web-ui/app/components/plugins/configuration-retained-secrets.js +20 -0
- package/dist/src/web-ui/app/components/plugins/configuration-settings.js +108 -0
- package/dist/src/web-ui/app/components/plugins/discovery-rendering.js +45 -0
- package/dist/src/web-ui/app/components/plugins/installation-compatibility.js +7 -0
- package/dist/src/web-ui/app/components/plugins/installation.js +213 -0
- package/dist/src/web-ui/app/components/plugins/manager.js +160 -6
- package/dist/src/web-ui/app/components/plugins/removal.js +130 -0
- package/dist/src/web-ui/app/components/plugins/rendering.js +17 -2
- package/dist/src/web-ui/app/components/plugins/summary.js +54 -0
- package/dist/src/web-ui/app/components/plugins/tabs.js +31 -0
- package/dist/src/web-ui/app/components/plugins/view-state.js +3 -1
- package/dist/src/web-ui/app/components/reasoning-override-prompt.js +82 -0
- package/dist/src/web-ui/app/components/runtime-config-activation.js +22 -8
- package/dist/src/web-ui/app/components/runtime-setup/connection-form.js +5 -2
- package/dist/src/web-ui/app/components/runtime-setup/connection-state.js +9 -1
- package/dist/src/web-ui/app/components/runtime-setup/context-window-feedback.js +71 -0
- package/dist/src/web-ui/app/components/runtime-setup/optional-steps.js +9 -4
- package/dist/src/web-ui/app/components/runtime-setup/plugins.js +3 -1
- package/dist/src/web-ui/app/components/runtime-setup/rendering.js +6 -4
- package/dist/src/web-ui/app/components/runtime-setup-guide.d.ts +1 -0
- package/dist/src/web-ui/app/components/runtime-setup-guide.js +15 -3
- package/dist/src/web-ui/app/components/schedules/form.js +10 -8
- package/dist/src/web-ui/app/components/schedules/workspace.js +23 -4
- package/dist/src/web-ui/app/components/session-sidebar-sections.js +2 -2
- package/dist/src/web-ui/app/components/spark-chat/empty-state.js +1 -0
- package/dist/src/web-ui/app/components/spark-chat/handoff-actions.js +9 -3
- package/dist/src/web-ui/app/components/spark-chat/panel.js +1 -0
- package/dist/src/web-ui/app/components/spark-chat/placement.js +4 -7
- package/dist/src/web-ui/app/components/spark-chat/settings.js +7 -3
- package/dist/src/web-ui/app/components/system-host/connection-card.js +35 -0
- package/dist/src/web-ui/app/components/system-host/macos-permissions.js +2 -0
- package/dist/src/web-ui/app/components/system-host/macos-setup.js +1 -1
- package/dist/src/web-ui/app/components/system-host/manager.js +45 -12
- package/dist/src/web-ui/app/components/system-host/native-windows-access.js +50 -0
- package/dist/src/web-ui/app/components/system-host/rendering.js +114 -106
- package/dist/src/web-ui/app/components/system-host/windows-store-setup.js +293 -0
- package/dist/src/web-ui/app/components/workspace-shell.js +6 -0
- package/dist/src/web-ui/app/components/workspace-storage-notice.js +37 -0
- package/dist/src/web-ui/app/computer-access-feature.js +22 -5
- package/dist/src/web-ui/app/configuration-environment-refresh.js +27 -34
- package/dist/src/web-ui/app/configuration-feature.js +44 -3
- package/dist/src/web-ui/app/controllers/app-event-bindings.js +41 -105
- package/dist/src/web-ui/app/controllers/chat-request-controller.d.ts +28 -0
- package/dist/src/web-ui/app/controllers/chat-request-controller.js +34 -66
- package/dist/src/web-ui/app/controllers/composer-attachments-controller.d.ts +15 -40
- package/dist/src/web-ui/app/controllers/composer-attachments-controller.js +26 -69
- package/dist/src/web-ui/app/controllers/composer-draft-view.d.ts +27 -0
- package/dist/src/web-ui/app/controllers/composer-draft-view.js +48 -0
- package/dist/src/web-ui/app/controllers/composer-drafts.d.ts +55 -0
- package/dist/src/web-ui/app/controllers/composer-drafts.js +120 -0
- package/dist/src/web-ui/app/controllers/composer-feature.d.ts +65 -0
- package/dist/src/web-ui/app/controllers/composer-feature.js +124 -0
- package/dist/src/web-ui/app/controllers/composer-queue-controller.d.ts +33 -94
- package/dist/src/web-ui/app/controllers/composer-queue-controller.js +185 -251
- package/dist/src/web-ui/app/controllers/composer-submission-lifecycle.d.ts +48 -0
- package/dist/src/web-ui/app/controllers/composer-submission-lifecycle.js +97 -0
- package/dist/src/web-ui/app/controllers/composer-submit-controller.d.ts +30 -61
- package/dist/src/web-ui/app/controllers/composer-submit-controller.js +56 -138
- package/dist/src/web-ui/app/controllers/composer-surface-controller.js +6 -0
- package/dist/src/web-ui/app/controllers/composer-workspace-controller.d.ts +22 -40
- package/dist/src/web-ui/app/controllers/composer-workspace-controller.js +49 -165
- package/dist/src/web-ui/app/controllers/conversation-navigation-intent.js +15 -0
- package/dist/src/web-ui/app/controllers/conversation-read-state-controller.d.ts +1 -0
- package/dist/src/web-ui/app/controllers/conversation-read-state-controller.js +7 -3
- package/dist/src/web-ui/app/controllers/conversation-request-hydration.js +91 -0
- package/dist/src/web-ui/app/controllers/conversation-session-controller.d.ts +10 -5
- package/dist/src/web-ui/app/controllers/conversation-session-controller.js +97 -162
- package/dist/src/web-ui/app/controllers/conversation-workspace-activation.js +27 -0
- package/dist/src/web-ui/app/controllers/daily-memory-review.js +15 -16
- package/dist/src/web-ui/app/controllers/environment-transition.js +126 -0
- package/dist/src/web-ui/app/controllers/environment-workspace-preparation.js +18 -0
- package/dist/src/web-ui/app/controllers/history-pagination.js +111 -0
- package/dist/src/web-ui/app/controllers/home-composer-feature.d.ts +14 -36
- package/dist/src/web-ui/app/controllers/home-composer-feature.js +17 -114
- package/dist/src/web-ui/app/controllers/home-conversation-activation.js +6 -8
- package/dist/src/web-ui/app/controllers/operations-controller.d.ts +12 -0
- package/dist/src/web-ui/app/controllers/operations-controller.js +28 -21
- package/dist/src/web-ui/app/controllers/passive-learning-controller.js +56 -0
- package/dist/src/web-ui/app/controllers/projects-controller.d.ts +1 -1
- package/dist/src/web-ui/app/controllers/projects-controller.js +6 -1
- package/dist/src/web-ui/app/controllers/reasoning-mode-controller.js +174 -0
- package/dist/src/web-ui/app/controllers/runtime-onboarding-controller.d.ts +1 -0
- package/dist/src/web-ui/app/controllers/runtime-onboarding-controller.js +11 -0
- package/dist/src/web-ui/app/controllers/runtime-selection-controller.d.ts +7 -0
- package/dist/src/web-ui/app/controllers/runtime-selection-controller.js +20 -155
- package/dist/src/web-ui/app/controllers/session-controller.js +43 -19
- package/dist/src/web-ui/app/controllers/session-list-pagination.js +71 -0
- package/dist/src/web-ui/app/controllers/session-pin-updates.js +14 -0
- package/dist/src/web-ui/app/controllers/session-sidebar-controller.js +17 -17
- package/dist/src/web-ui/app/controllers/spark-chat-reading.js +1 -0
- package/dist/src/web-ui/app/controllers/spark-chat-sync.js +26 -7
- package/dist/src/web-ui/app/controllers/steer-controller.js +9 -7
- package/dist/src/web-ui/app/controllers/tool-permission-mode-controller.js +1 -1
- package/dist/src/web-ui/app/controllers/workspace-conversation-opener.js +34 -0
- package/dist/src/web-ui/app/controllers/workspace-route-controller.js +21 -19
- package/dist/src/web-ui/app/dashboard-feature.js +4 -3
- package/dist/src/web-ui/app/index.html +6 -2
- package/dist/src/web-ui/app/lib/history-page-messages.js +49 -0
- package/dist/src/web-ui/app/lib/reasoning-controls.js +35 -0
- package/dist/src/web-ui/app/lib/request-lifecycle-view.js +8 -0
- package/dist/src/web-ui/app/lib/session-composer-queue-ownership.js +58 -0
- package/dist/src/web-ui/app/lib/session-composer-queue.d.ts +12 -0
- package/dist/src/web-ui/app/lib/session-composer-queue.js +25 -6
- package/dist/src/web-ui/app/lib/workspace-route.d.ts +3 -0
- package/dist/src/web-ui/app/lib/workspace-route.js +4 -0
- package/dist/src/web-ui/app/passive-learning-feature.js +16 -4
- package/dist/src/web-ui/app/runtime-onboarding-feature.js +3 -0
- package/dist/src/web-ui/app/schedules-feature.js +5 -3
- package/dist/src/web-ui/app/services/client-preferences.d.ts +18 -10
- package/dist/src/web-ui/app/services/client-preferences.js +25 -16
- package/dist/src/web-ui/app/services/home-guidance-preferences.js +13 -13
- package/dist/src/web-ui/app/services/reasoning-override.js +12 -0
- package/dist/src/web-ui/app/services/runtime-web-client/automations.js +10 -2
- package/dist/src/web-ui/app/services/runtime-web-client/configuration.js +20 -0
- package/dist/src/web-ui/app/services/runtime-web-client/memory.js +7 -2
- package/dist/src/web-ui/app/services/runtime-web-client/plugin-configuration.js +19 -0
- package/dist/src/web-ui/app/services/runtime-web-client/spark-chat.js +4 -4
- package/dist/src/web-ui/app/services/runtime-web-client/system-host.js +4 -0
- package/dist/src/web-ui/app/services/runtime-web-client.d.ts +8 -1
- package/dist/src/web-ui/app/services/runtime-web-client.js +14 -3
- package/dist/src/web-ui/app/services/server-composer-queue.js +32 -0
- package/dist/src/web-ui/app/services/session-sidebar-preferences.js +5 -5
- package/dist/src/web-ui/app/services/workspace-state-storage.js +116 -0
- package/dist/src/web-ui/app/services/workspace-state.js +27 -0
- package/dist/src/web-ui/app/spark-chat-conversation.js +34 -45
- package/dist/src/web-ui/app/spark-chat-feature.js +84 -21
- package/dist/src/web-ui/app/styles/11-product-links.css +30 -0
- package/dist/src/web-ui/app/styles/21-composer-controls.css +16 -0
- package/dist/src/web-ui/app/styles/41-plugin-configuration.css +79 -0
- package/dist/src/web-ui/app/styles/41-plugin-discovery.css +132 -0
- package/dist/src/web-ui/app/styles/41-plugin-management.css +14 -0
- package/dist/src/web-ui/app/styles/42-model-plugin-permissions.css +174 -0
- package/dist/src/web-ui/app/styles/46-system-host.css +61 -107
- package/dist/src/web-ui/app/styles/47-config-controls.css +13 -1
- package/dist/src/web-ui/app/styles/49-collection-consent.css +30 -0
- package/dist/src/web-ui/app/styles/54-spark-chat.css +33 -1
- package/dist/src/web-ui/app/styles/64-workspace-storage.css +23 -0
- package/dist/src/web-ui/app/styles.css +6 -0
- package/dist/src/web-ui/client-state/contracts.d.ts +15 -0
- package/dist/src/web-ui/client-state/contracts.js +13 -0
- package/dist/src/web-ui/client-state/preference-shapes.d.ts +2 -0
- package/dist/src/web-ui/client-state/preference-shapes.js +80 -0
- package/dist/src/web-ui/client-state/preferences.d.ts +3 -0
- package/dist/src/web-ui/client-state/preferences.js +84 -0
- package/dist/src/web-ui/client-state/queue.d.ts +3 -0
- package/dist/src/web-ui/client-state/queue.js +43 -0
- package/dist/src/web-ui/client-state/routes.d.ts +7 -0
- package/dist/src/web-ui/client-state/routes.js +58 -0
- package/dist/src/web-ui/client-state/store.d.ts +14 -0
- package/dist/src/web-ui/client-state/store.js +88 -0
- package/dist/src/web-ui/local-runtime/api-router.js +11 -6
- package/dist/src/web-ui/local-runtime/approval-request-attachment.js +14 -5
- package/dist/src/web-ui/local-runtime/configuration-activation-source.d.ts +1 -1
- package/dist/src/web-ui/local-runtime/configuration-activation-source.js +11 -3
- package/dist/src/web-ui/local-runtime/contracts.d.ts +4 -3
- package/dist/src/web-ui/local-runtime/environment-registry.d.ts +5 -1
- package/dist/src/web-ui/local-runtime/environment-registry.js +53 -11
- package/dist/src/web-ui/local-runtime/history-pagination.d.ts +16 -0
- package/dist/src/web-ui/local-runtime/history-pagination.js +20 -0
- package/dist/src/web-ui/local-runtime/http.js +11 -2
- package/dist/src/web-ui/local-runtime/model-context-capacity-error.d.ts +14 -0
- package/dist/src/web-ui/local-runtime/model-context-capacity-error.js +28 -0
- package/dist/src/web-ui/local-runtime/model-setup-context-window.d.ts +15 -0
- package/dist/src/web-ui/local-runtime/model-setup-context-window.js +25 -0
- package/dist/src/web-ui/local-runtime/model-setup-routes.js +2 -0
- package/dist/src/web-ui/local-runtime/model-setup-service.js +5 -2
- package/dist/src/web-ui/local-runtime/model-setup-validation.d.ts +1 -0
- package/dist/src/web-ui/local-runtime/model-setup-validation.js +14 -7
- package/dist/src/web-ui/local-runtime/plugin-configuration-routes.d.ts +16 -0
- package/dist/src/web-ui/local-runtime/plugin-configuration-routes.js +68 -0
- package/dist/src/web-ui/local-runtime/plugin-installation-routes.d.ts +16 -0
- package/dist/src/web-ui/local-runtime/plugin-installation-routes.js +96 -0
- package/dist/src/web-ui/local-runtime/plugin-management-routes.d.ts +8 -1
- package/dist/src/web-ui/local-runtime/plugin-management-routes.js +17 -0
- package/dist/src/web-ui/local-runtime/plugin-mutation-admission.d.ts +7 -0
- package/dist/src/web-ui/local-runtime/plugin-mutation-admission.js +17 -0
- package/dist/src/web-ui/local-runtime/plugin-removal-routes.d.ts +18 -0
- package/dist/src/web-ui/local-runtime/plugin-removal-routes.js +60 -0
- package/dist/src/web-ui/local-runtime/realtime-controller.js +41 -2
- package/dist/src/web-ui/local-runtime/request-body-error.d.ts +11 -0
- package/dist/src/web-ui/local-runtime/request-body-error.js +14 -0
- package/dist/src/web-ui/local-runtime/request-cancellation-route.js +28 -1
- package/dist/src/web-ui/local-runtime/request-control-observation.d.ts +19 -0
- package/dist/src/web-ui/local-runtime/request-control-observation.js +80 -0
- package/dist/src/web-ui/local-runtime/request-execution.js +66 -34
- package/dist/src/web-ui/local-runtime/runtime-setup-connection-edit.d.ts +2 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-connection-edit.js +35 -22
- package/dist/src/web-ui/local-runtime/runtime-setup-context-window.d.ts +13 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-context-window.js +21 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-credentials.d.ts +15 -1
- package/dist/src/web-ui/local-runtime/runtime-setup-credentials.js +30 -11
- package/dist/src/web-ui/local-runtime/runtime-setup-edit-files.d.ts +20 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-edit-files.js +104 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-edit-journal.d.ts +29 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-edit-journal.js +151 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-edit-recovery.d.ts +7 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-edit-recovery.js +87 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-edit-transaction.d.ts +3 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-edit-transaction.js +37 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-routes.js +2 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-service.js +4 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-validation.js +9 -2
- package/dist/src/web-ui/local-runtime/session-routes.d.ts +1 -0
- package/dist/src/web-ui/local-runtime/session-routes.js +16 -4
- package/dist/src/web-ui/local-runtime/spark-chat-routes.js +4 -3
- package/dist/src/web-ui/local-runtime-backend.js +14 -0
- package/dist/src/web-ui/plugin-capability-selection.js +4 -1
- package/dist/src/web-ui/plugin-configuration-input.d.ts +12 -0
- package/dist/src/web-ui/plugin-configuration-input.js +68 -0
- package/dist/src/web-ui/plugin-configuration-retained-secrets.d.ts +9 -0
- package/dist/src/web-ui/plugin-configuration-retained-secrets.js +48 -0
- package/dist/src/web-ui/plugin-configuration-service.d.ts +52 -0
- package/dist/src/web-ui/plugin-configuration-service.js +66 -0
- package/dist/src/web-ui/plugin-configuration-view.d.ts +25 -0
- package/dist/src/web-ui/plugin-configuration-view.js +45 -0
- package/dist/src/web-ui/plugin-disabled-selection.d.ts +7 -0
- package/dist/src/web-ui/plugin-disabled-selection.js +17 -0
- package/dist/src/web-ui/plugin-management-catalog.d.ts +5 -1
- package/dist/src/web-ui/plugin-management-catalog.js +13 -1
- package/dist/src/web-ui/plugin-management-selection.js +22 -9
- package/dist/src/web-ui/plugin-management-service.d.ts +6 -1
- package/dist/src/web-ui/plugin-management-service.js +11 -7
- package/dist/src/web-ui/plugin-removal-error.d.ts +7 -0
- package/dist/src/web-ui/plugin-removal-error.js +16 -0
- package/dist/src/web-ui/plugin-removal-service.d.ts +31 -0
- package/dist/src/web-ui/plugin-removal-service.js +109 -0
- package/dist/src/web-ui/runtime-setup-gateway.d.ts +6 -2
- package/dist/src/web-ui/runtime-setup-gateway.js +30 -10
- package/dist/src/web-ui/server-readiness.d.ts +3 -0
- package/dist/src/web-ui/server-readiness.js +36 -0
- package/dist/src/web-ui/server.d.ts +2 -0
- package/dist/src/web-ui/server.js +29 -3
- package/dist/src/web-ui/session-read-state/overview.d.ts +42 -0
- package/dist/src/web-ui/session-read-state/overview.js +16 -0
- package/dist/src/web-ui/session-read-state/pagination.d.ts +15 -0
- package/dist/src/web-ui/session-read-state/pagination.js +42 -0
- package/dist/src/web-ui/session-read-state/projection.d.ts +4 -3
- package/dist/src/web-ui/session-read-state/service.d.ts +213 -20
- package/dist/src/web-ui/session-read-state/service.js +25 -23
- package/dist/src/web-ui/session-read-state/visible-messages.d.ts +3 -3
- package/dist/src/web-ui/system-host-service.js +13 -2
- package/dist/src/web-ui/system-host-setup/collection-consent-route.d.ts +3 -0
- package/dist/src/web-ui/system-host-setup/collection-consent-route.js +30 -0
- package/dist/src/web-ui/system-host-setup/companion-linux.js +1 -1
- package/dist/src/web-ui/system-host-setup/installer-contract.d.ts +1 -1
- package/dist/src/web-ui/system-host-setup/installer-contract.js +2 -2
- package/dist/src/web-ui/system-host-setup/installers.js +0 -7
- package/dist/src/web-ui/system-host-setup/local-connection.d.ts +4 -1
- package/dist/src/web-ui/system-host-setup/local-connection.js +10 -17
- package/dist/src/web-ui/system-host-setup/routes.d.ts +2 -0
- package/dist/src/web-ui/system-host-setup/routes.js +32 -9
- package/dist/src/web-ui/system-host-setup/setup-mutation.d.ts +9 -0
- package/dist/src/web-ui/system-host-setup/setup-mutation.js +27 -0
- package/dist/src/web-ui/system-host-setup/windows-store-route.d.ts +13 -0
- package/dist/src/web-ui/system-host-setup/windows-store-route.js +68 -0
- package/docs/configuration.md +46 -0
- package/docs/installation.md +88 -28
- package/docs/plugins.md +310 -6
- package/docs/projects-and-full-plus.md +2 -6
- package/docs/runtime-library.md +0 -1
- package/docs/tool-execution-result-evidence-contract.md +57 -0
- package/docs/windows-companion-store.md +132 -0
- package/package.json +6 -4
- package/plugins/capability-brief/plugin.json +4 -0
- package/plugins/code-outline/README.md +20 -0
- package/plugins/code-outline/plugin.json +1 -0
- package/plugins/code-outline/source/index.ts +16 -20
- package/plugins/code-outline/source/read-failure.ts +40 -0
- package/plugins/code-outline/src/index.cjs +614 -29
- package/plugins/document-reader/README.md +33 -0
- package/plugins/document-reader/plugin.json +2 -0
- package/plugins/document-reader/source/pdf-contract.ts +57 -0
- package/plugins/document-reader/source/pdf-parser.ts +139 -0
- package/plugins/document-reader/source/pdf-process-main.ts +56 -0
- package/plugins/document-reader/source/pdf-process.ts +207 -0
- package/plugins/document-reader/source/pdf-result.ts +79 -0
- package/plugins/document-reader/source/pdf-worker.ts +39 -303
- package/plugins/document-reader/source/pdf.ts +4 -1
- package/plugins/document-reader/source/read-failure.ts +37 -0
- package/plugins/document-reader/source/reader.ts +3 -19
- package/plugins/document-reader/src/index.cjs +995 -211
- package/plugins/exec/README.md +19 -0
- package/plugins/exec/plugin.json +7 -3
- package/plugins/exec/skills/exec_skill/SKILL.md +3 -2
- package/plugins/exec/source/filesystem-file-observer.ts +98 -0
- package/plugins/exec/source/filesystem-observer.ts +8 -79
- package/plugins/exec/source/output-files.ts +12 -6
- package/plugins/exec/source/paths.ts +3 -1
- package/plugins/exec/source/process-manager.ts +8 -24
- package/plugins/exec/source/shell-platform.ts +19 -3
- package/plugins/exec/source/shell-process.ts +55 -0
- package/plugins/exec/source/windows-job-source.ts +1 -0
- package/plugins/exec/source/windows-shell-bootstrap.ts +20 -0
- package/plugins/exec/src/index.cjs +252 -96
- package/plugins/filesystem/README.md +65 -0
- package/plugins/filesystem/plugin.json +8 -2
- package/plugins/filesystem/source/atomic-write.ts +2 -0
- package/plugins/filesystem/source/bounded-io.ts +80 -306
- package/plugins/filesystem/source/directory-sample.ts +2 -0
- package/plugins/filesystem/source/errors.ts +14 -0
- package/plugins/filesystem/source/file-observation.ts +151 -0
- package/plugins/filesystem/source/file-version.ts +41 -0
- package/plugins/filesystem/source/index.ts +6 -0
- package/plugins/filesystem/source/mutation-coordinator.ts +1 -0
- package/plugins/filesystem/source/windows/authority-script.ts +1 -0
- package/plugins/filesystem/source/windows/native-script.ts +1 -0
- package/plugins/filesystem/source/windows/operations.ts +197 -0
- package/plugins/filesystem/source/windows/process.ts +214 -0
- package/plugins/filesystem/source/windows/publication-script.ts +29 -0
- package/plugins/filesystem/source/windows/read-script.ts +63 -0
- package/plugins/filesystem/source/windows/request-availability.ts +67 -0
- package/plugins/filesystem/source/windows/source.ts +42 -0
- package/plugins/filesystem/source/windows/storage-script.ts +11 -0
- package/plugins/filesystem/source/windows/streams-script.ts +24 -0
- package/plugins/filesystem/source/windows/write-script.ts +86 -0
- package/plugins/filesystem/src/index.cjs +1208 -322
- package/plugins/json-inspector/README.md +18 -0
- package/plugins/json-inspector/plugin.json +1 -0
- package/plugins/json-inspector/source/index.ts +16 -19
- package/plugins/json-inspector/source/read-failure.ts +42 -0
- package/plugins/json-inspector/src/index.cjs +612 -27
- package/plugins/local-search/README.md +29 -0
- package/plugins/local-search/plugin.json +2 -0
- package/plugins/local-search/source/errors.ts +2 -0
- package/plugins/local-search/source/paths.ts +3 -0
- package/plugins/local-search/source/ripgrep-process.ts +31 -5
- package/plugins/local-search/source/ripgrep.ts +3 -3
- package/plugins/local-search/source/windows-authority.ts +99 -0
- package/plugins/local-search/source/windows-search-lease.ts +49 -0
- package/plugins/local-search/source/windows-search-process.ts +91 -0
- package/plugins/local-search/source/windows-search-script.ts +52 -0
- package/plugins/local-search/src/index.cjs +595 -26
- package/plugins/memory/plugin.json +4 -0
- package/plugins/memory/source/lock-directory-claim.ts +56 -0
- package/plugins/memory/source/lock-owner-file.ts +71 -0
- package/plugins/memory/source/lock-path-observation.ts +26 -0
- package/plugins/memory/source/prepared-memory-replacement.ts +40 -0
- package/plugins/memory/source/store-lock.ts +12 -7
- package/plugins/memory/source/store.ts +3 -2
- package/plugins/memory/src/index.cjs +174 -25
- package/plugins/project-orientation/README.md +23 -0
- package/plugins/project-orientation/plugin.json +1 -0
- package/plugins/project-orientation/source/index.ts +12 -9
- package/plugins/project-orientation/source/inspection-failure.ts +70 -0
- package/plugins/project-orientation/source/manifest-summary.ts +9 -2
- package/plugins/project-orientation/source/tree.ts +6 -0
- package/plugins/project-orientation/src/index.cjs +647 -31
- package/plugins/system/README.md +81 -5
- package/plugins/system/plugin.json +10 -1
- package/plugins/system/skills/system_actions/SKILL.md +1 -1
- package/plugins/system/source/command-working-directory.ts +47 -0
- package/plugins/system/source/companion-command-output.ts +82 -0
- package/plugins/system/source/computer/handlers.ts +13 -9
- package/plugins/system/source/computer/observation-result.ts +10 -5
- package/plugins/system/source/computer/request-computers.ts +10 -3
- package/plugins/system/source/computer/request-modules.ts +3 -6
- package/plugins/system/source/computer/runtime-platform.ts +18 -0
- package/plugins/system/source/host-dispatch.ts +21 -1
- package/plugins/system/source/index.ts +14 -6
- package/plugins/system/source/local-command-output-retention.ts +16 -0
- package/plugins/system/source/local-command-output.ts +69 -0
- package/plugins/system/source/request-system-modules.ts +14 -2
- package/plugins/system/source/request-target-snapshot.ts +2 -1
- package/plugins/system/source/security/desktop-result.ts +177 -0
- package/plugins/system/source/security/observed-error.ts +10 -0
- package/plugins/system/source/security/secret-text.ts +118 -0
- package/plugins/system/source/security/system-results.ts +62 -0
- package/plugins/system/source/security/windows-output-directory.ts +82 -0
- package/plugins/system/src/index.cjs +1207 -86
- package/plugins/system-probe/plugin.json +8 -2
- package/plugins/system-probe/source/disk-path.ts +8 -0
- package/plugins/system-probe/source/index.ts +10 -5
- package/plugins/system-probe/source/machine-load.ts +33 -0
- package/plugins/system-probe/source/metrics.ts +6 -8
- package/plugins/system-probe/src/index.cjs +49 -16
- package/plugins/web/README.md +2 -2
- package/plugins/web/plugin.json +8 -0
- package/runtime.config.schema.json +25 -1
- package/src/runtime/README.md +12 -2
- package/dist/src/web-ui/system-host-setup/companion-windows.d.ts +0 -2
- package/dist/src/web-ui/system-host-setup/companion-windows.js +0 -108
- package/docs/publishing.md +0 -167
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** Complete grammar is supplied as bounded passive evidence by prepare_draft. */
|
|
2
|
-
export declare const AUTOMATION_BUILDER_PAYLOAD_INSTRUCTIONS = "Return only JSON following authoringReference from prepare_draft. Use version:1 with commands:[{as,mutation}] for existing drafts. Save all related changes together; new nodes omit id and use earlier aliases in bindings. Outputs never pass implicitly. Agent inputs and tool controls are binding maps; payload is a separate binding. Match exact operation schemas and model IDs. Choose
|
|
2
|
+
export declare const AUTOMATION_BUILDER_PAYLOAD_INSTRUCTIONS = "Return only JSON following authoringReference from prepare_draft. Use version:1 with commands:[{as,mutation}] for existing drafts. Save all related changes together; new nodes omit id and use earlier aliases in bindings. Outputs never pass implicitly. Agent inputs and tool controls are binding maps; payload is a separate binding. Match exact operation schemas and model IDs. Choose output channels using the selected operation.outputChannels and authoringReference.bindings. Agents need declared JSON results for data. Inputs, limits, controls and selected tools replace their entire field. Never invent schedules or execute future steps.";
|
|
3
3
|
export declare const AUTOMATION_BUILDER_CREATE_SUMMARY = "Create the entire connected automation from settings and ordered steps in one write; Runtime generates IDs and positions. Discover with browse_catalog, then prepare_draft for exact schemas and the authoring reference for planJson. Returns revision 1, generated IDs and the exact saved draft for inspection; no empty draft or separate step edits are needed. Saves only a draft; the user grants permissions, publishes and runs it.";
|
|
4
4
|
export declare const AUTOMATION_BUILDER_APPLY_SUMMARY = "Save related edits atomically. Use the saved draft from read_draft or a builder receipt, with its revision as expectedRevision. operationRefs is the full inventory: select refs needed within preparation.operationRefLimit; use separate prepare_draft reads if needed. Returns the saved draft without another read. Invalid/stale plans save nothing. Single-field edits use this operation too. Users retain permission, publication and run control.";
|
|
5
5
|
/** Creation describes workflow content; the capability compiles mechanical mutation structure. */
|
|
6
|
-
export declare const AUTOMATION_BUILDER_CREATION_INSTRUCTIONS = "Return only JSON using {\"version\":1,\"settings\":{...},\"steps\":[{\"key\":\"first\",\"kind\":\"tool\"|\"agent\",...}]}. Follow authoringReference.createPlanExample and creationRules. settings is optional; steps are ordered with unique keys. Runtime generates IDs, parents, indices and mutation wrappers. Bind prior $key results explicitly. Tool steps need title and exact operation; agent steps need title, exact modelProfileId and prompt. Use documented defaults and tool schemas. Choose
|
|
6
|
+
export declare const AUTOMATION_BUILDER_CREATION_INSTRUCTIONS = "Return only JSON using {\"version\":1,\"settings\":{...},\"steps\":[{\"key\":\"first\",\"kind\":\"tool\"|\"agent\",...}]}. Follow authoringReference.createPlanExample and creationRules. settings is optional; steps are ordered with unique keys. Runtime generates IDs, parents, indices and mutation wrappers. Bind prior $key results explicitly. Tool steps need title and exact operation; agent steps need title, exact modelProfileId and prompt. Use documented defaults and tool schemas. Choose output channels using the selected operation.outputChannels and authoringReference.bindings. Agents need declared JSON results for data. Result and acceptance are sibling agent fields. A parallel step is {key,kind:parallel,branches:[stepArrays]}. Leave unspecified timing to the user. Save only an inactive draft; never execute future steps.";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** Complete grammar is supplied as bounded passive evidence by prepare_draft. */
|
|
2
|
-
export const AUTOMATION_BUILDER_PAYLOAD_INSTRUCTIONS = "Return only JSON following authoringReference from prepare_draft. Use version:1 with commands:[{as,mutation}] for existing drafts. Save all related changes together; new nodes omit id and use earlier aliases in bindings. Outputs never pass implicitly. Agent inputs and tool controls are binding maps; payload is a separate binding. Match exact operation schemas and model IDs. Choose
|
|
2
|
+
export const AUTOMATION_BUILDER_PAYLOAD_INSTRUCTIONS = "Return only JSON following authoringReference from prepare_draft. Use version:1 with commands:[{as,mutation}] for existing drafts. Save all related changes together; new nodes omit id and use earlier aliases in bindings. Outputs never pass implicitly. Agent inputs and tool controls are binding maps; payload is a separate binding. Match exact operation schemas and model IDs. Choose output channels using the selected operation.outputChannels and authoringReference.bindings. Agents need declared JSON results for data. Inputs, limits, controls and selected tools replace their entire field. Never invent schedules or execute future steps.";
|
|
3
3
|
export const AUTOMATION_BUILDER_CREATE_SUMMARY = "Create the entire connected automation from settings and ordered steps in one write; Runtime generates IDs and positions. Discover with browse_catalog, then prepare_draft for exact schemas and the authoring reference for planJson. Returns revision 1, generated IDs and the exact saved draft for inspection; no empty draft or separate step edits are needed. Saves only a draft; the user grants permissions, publishes and runs it.";
|
|
4
4
|
export const AUTOMATION_BUILDER_APPLY_SUMMARY = "Save related edits atomically. Use the saved draft from read_draft or a builder receipt, with its revision as expectedRevision. operationRefs is the full inventory: select refs needed within preparation.operationRefLimit; use separate prepare_draft reads if needed. Returns the saved draft without another read. Invalid/stale plans save nothing. Single-field edits use this operation too. Users retain permission, publication and run control.";
|
|
5
5
|
/** Creation describes workflow content; the capability compiles mechanical mutation structure. */
|
|
6
|
-
export const AUTOMATION_BUILDER_CREATION_INSTRUCTIONS = "Return only JSON using {\"version\":1,\"settings\":{...},\"steps\":[{\"key\":\"first\",\"kind\":\"tool\"|\"agent\",...}]}. Follow authoringReference.createPlanExample and creationRules. settings is optional; steps are ordered with unique keys. Runtime generates IDs, parents, indices and mutation wrappers. Bind prior $key results explicitly. Tool steps need title and exact operation; agent steps need title, exact modelProfileId and prompt. Use documented defaults and tool schemas. Choose
|
|
6
|
+
export const AUTOMATION_BUILDER_CREATION_INSTRUCTIONS = "Return only JSON using {\"version\":1,\"settings\":{...},\"steps\":[{\"key\":\"first\",\"kind\":\"tool\"|\"agent\",...}]}. Follow authoringReference.createPlanExample and creationRules. settings is optional; steps are ordered with unique keys. Runtime generates IDs, parents, indices and mutation wrappers. Bind prior $key results explicitly. Tool steps need title and exact operation; agent steps need title, exact modelProfileId and prompt. Use documented defaults and tool schemas. Choose output channels using the selected operation.outputChannels and authoringReference.bindings. Agents need declared JSON results for data. Result and acceptance are sibling agent fields. A parallel step is {key,kind:parallel,branches:[stepArrays]}. Leave unspecified timing to the user. Save only an inactive draft; never execute future steps.";
|
|
@@ -22,7 +22,7 @@ export declare const automationBuilderToolContract: {
|
|
|
22
22
|
};
|
|
23
23
|
readonly selectionControlIds: readonly ["title"];
|
|
24
24
|
readonly payload: {
|
|
25
|
-
readonly instructions: "Return only JSON using {\"version\":1,\"settings\":{...},\"steps\":[{\"key\":\"first\",\"kind\":\"tool\"|\"agent\",...}]}. Follow authoringReference.createPlanExample and creationRules. settings is optional; steps are ordered with unique keys. Runtime generates IDs, parents, indices and mutation wrappers. Bind prior $key results explicitly. Tool steps need title and exact operation; agent steps need title, exact modelProfileId and prompt. Use documented defaults and tool schemas. Choose
|
|
25
|
+
readonly instructions: "Return only JSON using {\"version\":1,\"settings\":{...},\"steps\":[{\"key\":\"first\",\"kind\":\"tool\"|\"agent\",...}]}. Follow authoringReference.createPlanExample and creationRules. settings is optional; steps are ordered with unique keys. Runtime generates IDs, parents, indices and mutation wrappers. Bind prior $key results explicitly. Tool steps need title and exact operation; agent steps need title, exact modelProfileId and prompt. Use documented defaults and tool schemas. Choose output channels using the selected operation.outputChannels and authoringReference.bindings. Agents need declared JSON results for data. Result and acceptance are sibling agent fields. A parallel step is {key,kind:parallel,branches:[stepArrays]}. Leave unspecified timing to the user. Save only an inactive draft; never execute future steps.";
|
|
26
26
|
readonly kind: "raw_text";
|
|
27
27
|
readonly param: "planJson";
|
|
28
28
|
readonly minBytes: 2;
|
|
@@ -59,7 +59,7 @@ export declare const automationBuilderToolContract: {
|
|
|
59
59
|
readonly param: "planJson";
|
|
60
60
|
readonly minBytes: 2;
|
|
61
61
|
readonly maxBytes: number;
|
|
62
|
-
readonly instructions: "Return only JSON following authoringReference from prepare_draft. Use version:1 with commands:[{as,mutation}] for existing drafts. Save all related changes together; new nodes omit id and use earlier aliases in bindings. Outputs never pass implicitly. Agent inputs and tool controls are binding maps; payload is a separate binding. Match exact operation schemas and model IDs. Choose
|
|
62
|
+
readonly instructions: "Return only JSON following authoringReference from prepare_draft. Use version:1 with commands:[{as,mutation}] for existing drafts. Save all related changes together; new nodes omit id and use earlier aliases in bindings. Outputs never pass implicitly. Agent inputs and tool controls are binding maps; payload is a separate binding. Match exact operation schemas and model IDs. Choose output channels using the selected operation.outputChannels and authoringReference.bindings. Agents need declared JSON results for data. Inputs, limits, controls and selected tools replace their entire field. Never invent schedules or execute future steps.";
|
|
63
63
|
};
|
|
64
64
|
}];
|
|
65
65
|
};
|
|
@@ -147,7 +147,7 @@ export async function readAutomationAuthoringCatalogOperation(service, automatio
|
|
|
147
147
|
const selected = catalog.grantableOperations.find(matchesReference);
|
|
148
148
|
if (!selected)
|
|
149
149
|
throw new Error("automation_catalog_operation_not_found");
|
|
150
|
-
const { fixedParams: _fixedParams, ...operation } = selected;
|
|
150
|
+
const { fixedParams: _fixedParams, outputChannels: _outputChannels, ...operation } = selected;
|
|
151
151
|
return {
|
|
152
152
|
kind: "automation_authoring_catalog_operation_v1",
|
|
153
153
|
catalogScope: automationAuthoringCatalogScope(automationId),
|
|
@@ -21,6 +21,7 @@ export declare function readAutomationAuthoringPreparation(service: CatalogServi
|
|
|
21
21
|
operationId: string;
|
|
22
22
|
contractVersion: number;
|
|
23
23
|
label: string;
|
|
24
|
+
outputChannels?: import("../../../capabilities/tool-types.js").ToolNormalInvocationOperation["outputChannels"];
|
|
24
25
|
pluginName?: string;
|
|
25
26
|
catalogGroups: readonly import("../../../capabilities/tool-types.js").ToolCatalogGroup[];
|
|
26
27
|
toolDescription?: string;
|
|
@@ -106,7 +107,7 @@ export declare function readAutomationAuthoringPreparation(service: CatalogServi
|
|
|
106
107
|
readonly steps: readonly [{
|
|
107
108
|
readonly key: "evidence";
|
|
108
109
|
readonly kind: "tool";
|
|
109
|
-
readonly title: "Read
|
|
110
|
+
readonly title: "Read text evidence";
|
|
110
111
|
readonly operation: {
|
|
111
112
|
readonly toolName: "catalog_tool";
|
|
112
113
|
readonly operationId: "catalog_operation";
|
|
@@ -122,7 +123,7 @@ export declare function readAutomationAuthoringPreparation(service: CatalogServi
|
|
|
122
123
|
readonly evidence: {
|
|
123
124
|
readonly kind: "node_result";
|
|
124
125
|
readonly nodeId: "$evidence";
|
|
125
|
-
readonly select: "
|
|
126
|
+
readonly select: "text";
|
|
126
127
|
};
|
|
127
128
|
};
|
|
128
129
|
}];
|
|
@@ -385,10 +386,15 @@ export declare function readAutomationAuthoringPreparation(service: CatalogServi
|
|
|
385
386
|
};
|
|
386
387
|
};
|
|
387
388
|
readonly channels: {
|
|
388
|
-
readonly text: "
|
|
389
|
-
readonly data: "
|
|
389
|
+
readonly text: "Saved text.";
|
|
390
|
+
readonly data: "Separate optional JSON; no implicit Text channel.";
|
|
390
391
|
};
|
|
391
|
-
readonly
|
|
392
|
+
readonly outputChannels: {
|
|
393
|
+
content: string;
|
|
394
|
+
metadata: string;
|
|
395
|
+
conditional: string;
|
|
396
|
+
};
|
|
397
|
+
readonly policy: "literal=constants; run_input=definition.inputs; node_result needs prior success. Follow operation.outputChannels; absent=unknown. Whole data needs no pointer. RFC6901 pointers need documented fields (/items/0; ~ as ~0, / as ~1). Never execute steps for output discovery.";
|
|
392
398
|
readonly files: "run_file resolves a new file for each run under its working directory; fileName is one portable filename, no path. source_files requires a configured source and an agent consumer. source_file index selects the frozen batch entry; field=snapshot_path|original_path|version.";
|
|
393
399
|
readonly parallel: "branch_results is agent-only after the referenced parallel join; it supplies each branch's settled tail output/status. A failed/skipped source has no successful node_result for downstream bindings.";
|
|
394
400
|
};
|
|
@@ -110,7 +110,7 @@ async function execute(service, params) {
|
|
|
110
110
|
return { kind: "automation_authoring_catalog_v1", grantsPermissions: false,
|
|
111
111
|
catalogScope: automationAuthoringCatalogScope(automationId),
|
|
112
112
|
permissions: AUTOMATION_AUTHORING_REFERENCE.permissions,
|
|
113
|
-
operations: catalog.grantableOperations.map(({ fixedParams: _fixedParams, ...operation }) => operation),
|
|
113
|
+
operations: catalog.grantableOperations.map(({ fixedParams: _fixedParams, outputChannels: _outputChannels, ...operation }) => operation),
|
|
114
114
|
grantedOperations: catalog.operations.map(({ toolName, operationId, contractVersion }) => ({ toolName, operationId, contractVersion })),
|
|
115
115
|
models: catalog.models,
|
|
116
116
|
savedAgents: catalog.savedAgents.map((agent) => ({
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { type ToolPermissionMode } from "../../capabilities/tool-permission-mode.js";
|
|
2
2
|
import type { RegisteredToolNormalInvocation, ToolDefinition } from "../../capabilities/tool-types.js";
|
|
3
3
|
import type { ToolRegistry } from "../ports.js";
|
|
4
|
+
import { type RuntimeModelPluginConfig } from "../config/model-plugin-config.js";
|
|
4
5
|
/** One lazy registration snapshot; any declared restriction wins across projections. */
|
|
5
|
-
export declare function captureRequestPermissionCatalog(registry: ToolRegistry, mode: ToolPermissionMode): Readonly<{
|
|
6
|
+
export declare function captureRequestPermissionCatalog(registry: ToolRegistry, mode: ToolPermissionMode, modelPlugins?: RuntimeModelPluginConfig): Readonly<{
|
|
7
|
+
isRequestToolBlockedForModel: (name: string) => boolean;
|
|
6
8
|
listDefinitions: () => ToolDefinition[];
|
|
7
9
|
listNormalInvocations: () => readonly RegisteredToolNormalInvocation[] | undefined;
|
|
8
10
|
getDefinition: (name: string) => ToolDefinition | undefined;
|
|
@@ -1,13 +1,22 @@
|
|
|
1
1
|
import { permitsRequiredToolMode, } from "../../capabilities/tool-permission-mode.js";
|
|
2
|
+
import { captureModelPluginConfig, } from "../config/model-plugin-config.js";
|
|
3
|
+
import { matchesToolSelectionId } from "../../shared/tool-selection.js";
|
|
2
4
|
/** One lazy registration snapshot; any declared restriction wins across projections. */
|
|
3
|
-
export function captureRequestPermissionCatalog(registry, mode) {
|
|
5
|
+
export function captureRequestPermissionCatalog(registry, mode, modelPlugins) {
|
|
6
|
+
const modelDeniedSelectors = captureModelPluginConfig(modelPlugins)?.deny ?? [];
|
|
4
7
|
const definitions = Object.freeze([...registry.listDefinitions()]);
|
|
5
8
|
const definitionByName = new Map(definitions.map((definition) => [definition.name, definition]));
|
|
6
9
|
let registrations;
|
|
7
10
|
let resolvedRegistrations = false;
|
|
8
11
|
const registeredAllowedNames = new Set();
|
|
9
12
|
const registeredDeniedNames = new Set();
|
|
10
|
-
const
|
|
13
|
+
const registeredModelDeniedNames = new Set();
|
|
14
|
+
const isDefinitionBlockedForModel = (definition) => modelDeniedSelectors.some((selector) => matchesToolSelectionId(definition.pluginName ?? "", definition.name, selector));
|
|
15
|
+
const permitsDefinition = (definition) => {
|
|
16
|
+
if (isDefinitionBlockedForModel(definition))
|
|
17
|
+
return false;
|
|
18
|
+
return permitsRequiredToolMode(mode, definition.requiredPermissionMode);
|
|
19
|
+
};
|
|
11
20
|
const permitsRegistration = (registration) => {
|
|
12
21
|
const definition = definitionByName.get(registration.toolName);
|
|
13
22
|
if (definition && !permitsDefinition(definition))
|
|
@@ -23,6 +32,8 @@ export function captureRequestPermissionCatalog(registry, mode) {
|
|
|
23
32
|
return undefined;
|
|
24
33
|
}
|
|
25
34
|
for (const registration of source) {
|
|
35
|
+
if (isDefinitionBlockedForModel(registration.definition))
|
|
36
|
+
registeredModelDeniedNames.add(registration.toolName);
|
|
26
37
|
const names = permitsRegistration(registration)
|
|
27
38
|
? registeredAllowedNames
|
|
28
39
|
: registeredDeniedNames;
|
|
@@ -41,7 +52,15 @@ export function captureRequestPermissionCatalog(registry, mode) {
|
|
|
41
52
|
return permitsDefinition(definition);
|
|
42
53
|
return registeredAllowedNames.has(name);
|
|
43
54
|
}
|
|
55
|
+
function isRequestToolBlockedForModel(name) {
|
|
56
|
+
resolveRegistrations();
|
|
57
|
+
if (registeredModelDeniedNames.has(name))
|
|
58
|
+
return true;
|
|
59
|
+
const definition = definitionByName.get(name);
|
|
60
|
+
return definition !== undefined && isDefinitionBlockedForModel(definition);
|
|
61
|
+
}
|
|
44
62
|
return Object.freeze({
|
|
63
|
+
isRequestToolBlockedForModel,
|
|
45
64
|
listDefinitions: () => definitions.filter(({ name }) => isRequestToolAvailable(name)),
|
|
46
65
|
listNormalInvocations: resolveRegistrations,
|
|
47
66
|
getDefinition: (name) => isRequestToolAvailable(name) ? definitionByName.get(name) : undefined,
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type ToolPermissionMode } from "../../capabilities/tool-permission-mode.js";
|
|
2
2
|
import type { ToolRegistry } from "../ports.js";
|
|
3
|
+
import type { RuntimeModelPluginConfig } from "../config/model-plugin-config.js";
|
|
3
4
|
/** Captures user authority once; all discovery and execution use the same gate. */
|
|
4
|
-
export declare function restrictToolRegistryToRequestMode(registry: ToolRegistry, mode: ToolPermissionMode): ToolRegistry;
|
|
5
|
+
export declare function restrictToolRegistryToRequestMode(registry: ToolRegistry, mode: ToolPermissionMode, modelPlugins?: RuntimeModelPluginConfig): ToolRegistry;
|
|
@@ -1,16 +1,24 @@
|
|
|
1
1
|
import { captureRequestPermissionCatalog } from "./request-permission-catalog.js";
|
|
2
2
|
/** Captures user authority once; all discovery and execution use the same gate. */
|
|
3
|
-
export function restrictToolRegistryToRequestMode(registry, mode) {
|
|
4
|
-
const catalog = captureRequestPermissionCatalog(registry, mode);
|
|
3
|
+
export function restrictToolRegistryToRequestMode(registry, mode, modelPlugins) {
|
|
4
|
+
const catalog = captureRequestPermissionCatalog(registry, mode, modelPlugins);
|
|
5
5
|
const isRequestToolAvailable = catalog.isRequestToolAvailable;
|
|
6
|
-
const rejectUnavailableTool = (tool) =>
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
6
|
+
const rejectUnavailableTool = (tool) => {
|
|
7
|
+
const blockedForModel = catalog.isRequestToolBlockedForModel(tool);
|
|
8
|
+
const message = blockedForModel
|
|
9
|
+
? "This tool is blocked for the selected request model profile."
|
|
10
|
+
: "This tool is unavailable for the captured request permission mode.";
|
|
11
|
+
return {
|
|
12
|
+
ok: false,
|
|
13
|
+
tool,
|
|
14
|
+
output: message,
|
|
15
|
+
producedNewInformation: false,
|
|
16
|
+
error: message,
|
|
17
|
+
errorCode: blockedForModel
|
|
18
|
+
? "tool_model_policy_denied"
|
|
19
|
+
: "tool_permission_mode_required",
|
|
20
|
+
};
|
|
21
|
+
};
|
|
14
22
|
const bindAuthority = (state) => ({
|
|
15
23
|
...state,
|
|
16
24
|
requestContext: Object.freeze({
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ToolPermissionMode } from "../../capabilities/tool-permission-mode.js";
|
|
2
2
|
import type { RuntimeConfig, ToolRegistry } from "../ports.js";
|
|
3
|
+
import type { RuntimeModelPluginConfig } from "../config/model-plugin-config.js";
|
|
3
4
|
import type { BoundRequestModelInvocationContext } from "../request/contracts.js";
|
|
4
5
|
import type { ToolRequestAttachment } from "../../capabilities/tool-types.js";
|
|
5
6
|
/**
|
|
@@ -10,6 +11,7 @@ import type { ToolRequestAttachment } from "../../capabilities/tool-types.js";
|
|
|
10
11
|
export declare function createRequestRuntimeToolRegistry(params: Readonly<{
|
|
11
12
|
request: BoundRequestModelInvocationContext;
|
|
12
13
|
toolPermissionMode?: ToolPermissionMode;
|
|
14
|
+
modelPlugins?: RuntimeModelPluginConfig;
|
|
13
15
|
requestAttachments?: readonly ToolRequestAttachment[];
|
|
14
16
|
runtimeConfig?: RuntimeConfig;
|
|
15
17
|
requestWorkingDirectory?: string;
|
|
@@ -9,7 +9,7 @@ import { bindRequestToolRegistry } from "./request-bound-tool-registry.js";
|
|
|
9
9
|
*/
|
|
10
10
|
export function createRequestRuntimeToolRegistry(params) {
|
|
11
11
|
const registry = restrictToolRegistryToRequestMode(params.toolRegistryOverride ??
|
|
12
|
-
createConfiguredToolRegistry(params.runtimeConfig, []), params.toolPermissionMode ?? "ask");
|
|
12
|
+
createConfiguredToolRegistry(params.runtimeConfig, []), params.toolPermissionMode ?? "ask", params.modelPlugins);
|
|
13
13
|
return bindRequestToolRegistry({
|
|
14
14
|
registry,
|
|
15
15
|
modelInvoker: createRequestToolModelInvoker(params.request),
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export declare const scheduleCreateOperations: readonly [Readonly<{
|
|
2
2
|
operationId: string;
|
|
3
3
|
summary: string;
|
|
4
|
+
outputChannels?: import("../../../capabilities/tool-types.js").ToolNormalInvocationOutputChannels;
|
|
4
5
|
input: import("../../../capabilities/tool-types.js").ToolNormalInvocationInput;
|
|
5
6
|
selectionControlIds?: readonly string[];
|
|
6
7
|
fixedParams?: Readonly<Record<string, import("../../../capabilities/tool-types.js").ToolNormalInvocationFixedValue>>;
|
|
@@ -11,6 +12,7 @@ export declare const scheduleCreateOperations: readonly [Readonly<{
|
|
|
11
12
|
}>, Readonly<{
|
|
12
13
|
operationId: string;
|
|
13
14
|
summary: string;
|
|
15
|
+
outputChannels?: import("../../../capabilities/tool-types.js").ToolNormalInvocationOutputChannels;
|
|
14
16
|
input: import("../../../capabilities/tool-types.js").ToolNormalInvocationInput;
|
|
15
17
|
selectionControlIds?: readonly string[];
|
|
16
18
|
fixedParams?: Readonly<Record<string, import("../../../capabilities/tool-types.js").ToolNormalInvocationFixedValue>>;
|
|
@@ -21,6 +23,7 @@ export declare const scheduleCreateOperations: readonly [Readonly<{
|
|
|
21
23
|
}>, Readonly<{
|
|
22
24
|
operationId: string;
|
|
23
25
|
summary: string;
|
|
26
|
+
outputChannels?: import("../../../capabilities/tool-types.js").ToolNormalInvocationOutputChannels;
|
|
24
27
|
input: import("../../../capabilities/tool-types.js").ToolNormalInvocationInput;
|
|
25
28
|
selectionControlIds?: readonly string[];
|
|
26
29
|
fixedParams?: Readonly<Record<string, import("../../../capabilities/tool-types.js").ToolNormalInvocationFixedValue>>;
|
|
@@ -31,6 +34,7 @@ export declare const scheduleCreateOperations: readonly [Readonly<{
|
|
|
31
34
|
}>, Readonly<{
|
|
32
35
|
operationId: string;
|
|
33
36
|
summary: string;
|
|
37
|
+
outputChannels?: import("../../../capabilities/tool-types.js").ToolNormalInvocationOutputChannels;
|
|
34
38
|
input: import("../../../capabilities/tool-types.js").ToolNormalInvocationInput;
|
|
35
39
|
selectionControlIds?: readonly string[];
|
|
36
40
|
fixedParams?: Readonly<Record<string, import("../../../capabilities/tool-types.js").ToolNormalInvocationFixedValue>>;
|
|
@@ -41,6 +45,7 @@ export declare const scheduleCreateOperations: readonly [Readonly<{
|
|
|
41
45
|
}>, Readonly<{
|
|
42
46
|
operationId: string;
|
|
43
47
|
summary: string;
|
|
48
|
+
outputChannels?: import("../../../capabilities/tool-types.js").ToolNormalInvocationOutputChannels;
|
|
44
49
|
input: import("../../../capabilities/tool-types.js").ToolNormalInvocationInput;
|
|
45
50
|
selectionControlIds?: readonly string[];
|
|
46
51
|
fixedParams?: Readonly<Record<string, import("../../../capabilities/tool-types.js").ToolNormalInvocationFixedValue>>;
|
|
@@ -51,6 +56,7 @@ export declare const scheduleCreateOperations: readonly [Readonly<{
|
|
|
51
56
|
}>, Readonly<{
|
|
52
57
|
operationId: string;
|
|
53
58
|
summary: string;
|
|
59
|
+
outputChannels?: import("../../../capabilities/tool-types.js").ToolNormalInvocationOutputChannels;
|
|
54
60
|
input: import("../../../capabilities/tool-types.js").ToolNormalInvocationInput;
|
|
55
61
|
selectionControlIds?: readonly string[];
|
|
56
62
|
fixedParams?: Readonly<Record<string, import("../../../capabilities/tool-types.js").ToolNormalInvocationFixedValue>>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { readFileSync } from "node:fs";
|
|
2
2
|
import { dirname, isAbsolute, resolve } from "node:path";
|
|
3
3
|
import { DEFAULT_RUNTIME_LOGGING_ENABLED, DEFAULT_RUNTIME_LOG_ROTATION_CONFIG, } from "./constants.js";
|
|
4
|
-
import {
|
|
4
|
+
import { buildRuntimeModelExecutionPolicy } from "./model-execution-policy.js";
|
|
5
5
|
import { RuntimeConfigValidationError, validateModelProfileConfig, } from "./validation.js";
|
|
6
6
|
import { readConfigPositiveInt, isRecord, readNestedConfigString, readNestedConfigStringArray, readOptionalBoolean, readOptionalStringMap, } from "./utils.js";
|
|
7
7
|
export function compactTimeouts(timeouts) {
|
|
@@ -56,7 +56,9 @@ export function buildPluginConfig(config) {
|
|
|
56
56
|
const enabled = readOptionalBoolean(config.plugins, "enabled");
|
|
57
57
|
const allow = readNestedConfigStringArray(config.plugins, "allow");
|
|
58
58
|
const deny = readNestedConfigStringArray(config.plugins, "deny");
|
|
59
|
+
const disabledPluginIds = readNestedConfigStringArray(config.plugins, "disabledPluginIds");
|
|
59
60
|
const pluginConfig = {
|
|
61
|
+
...(disabledPluginIds ? { disabledPluginIds } : {}),
|
|
60
62
|
...(enabled !== undefined ? { enabled } : {}),
|
|
61
63
|
...(allow ? { allow } : {}),
|
|
62
64
|
...(deny ? { deny } : {}),
|
|
@@ -432,10 +434,9 @@ function buildModelProfiles(profiles, options) {
|
|
|
432
434
|
if (modelProfile) {
|
|
433
435
|
gatewayEntries.push([profileId, modelProfile]);
|
|
434
436
|
}
|
|
435
|
-
const execution =
|
|
436
|
-
if (execution
|
|
437
|
-
executionEntries.push([profileId,
|
|
438
|
-
}
|
|
437
|
+
const execution = buildRuntimeModelExecutionPolicy(source);
|
|
438
|
+
if (execution)
|
|
439
|
+
executionEntries.push([profileId, execution]);
|
|
439
440
|
}
|
|
440
441
|
return {
|
|
441
442
|
...(gatewayEntries.length > 0
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { validateProfileContextCapacity, } from "./model-context-capacity.js";
|
|
1
2
|
import { RuntimeConfigValidationError } from "./validation.js";
|
|
2
3
|
function hasConfiguredProfile(profiles, profileId) {
|
|
3
4
|
return !!profileId && Object.hasOwn(profiles, profileId);
|
|
@@ -8,40 +9,6 @@ function hasConfiguredInvocationProfile(invocationProfiles, profileId) {
|
|
|
8
9
|
function hasConfiguredCalibrationSlot(profiles, slotId) {
|
|
9
10
|
return Object.values(profiles).some((profile) => Object.hasOwn(profile.calibration ?? {}, slotId));
|
|
10
11
|
}
|
|
11
|
-
function readPositiveSafeInteger(value) {
|
|
12
|
-
return typeof value === "number" &&
|
|
13
|
-
Number.isSafeInteger(value) &&
|
|
14
|
-
value > 0
|
|
15
|
-
? value
|
|
16
|
-
: undefined;
|
|
17
|
-
}
|
|
18
|
-
function validateProfileContextCapacity(params) {
|
|
19
|
-
const field = `models.profiles.${params.profileId}.contextWindowTokens`;
|
|
20
|
-
const declared = readPositiveSafeInteger(params.profile.contextWindowTokens);
|
|
21
|
-
if (declared === undefined) {
|
|
22
|
-
params.issues.push(`${field} must declare the physical context-window capacity as a positive safe integer`);
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
let effective = declared;
|
|
26
|
-
if (params.providerType === "ollama" &&
|
|
27
|
-
Object.hasOwn(params.profile.options ?? {}, "num_ctx")) {
|
|
28
|
-
const allocated = readPositiveSafeInteger(params.profile.options?.num_ctx);
|
|
29
|
-
if (allocated === undefined) {
|
|
30
|
-
params.issues.push(`models.profiles.${params.profileId}.options.num_ctx must be a positive safe integer when configured`);
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
effective = Math.min(effective, allocated);
|
|
34
|
-
}
|
|
35
|
-
const profileFormatReserve = params.profile.context?.formatTokenAccounting?.fixedOverheadTokens ?? 0;
|
|
36
|
-
const defaultFormatReserve = params.defaultContext?.formatTokenAccounting?.fixedOverheadTokens ?? 0;
|
|
37
|
-
const configuredReserve = params.runnerConfig.context.outputReserveTokens +
|
|
38
|
-
params.runnerConfig.context.safetyReserveTokens +
|
|
39
|
-
params.runnerConfig.context.attachmentReserveTokens +
|
|
40
|
-
Math.max(profileFormatReserve, defaultFormatReserve);
|
|
41
|
-
if (configuredReserve >= effective) {
|
|
42
|
-
params.issues.push(`models.profiles.${params.profileId} effective context window ${effective} must exceed configured output, safety, attachment, and format reserves ${configuredReserve}`);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
12
|
function validateProfileReference(params) {
|
|
46
13
|
if (!hasConfiguredProfile(params.profiles, params.profileId)) {
|
|
47
14
|
params.issues.push(`${params.field} references unknown model profile ${params.profileId}`);
|
|
@@ -73,6 +40,7 @@ function validateStepTarget(params) {
|
|
|
73
40
|
*/
|
|
74
41
|
export function validateEffectiveRuntimeModelConfig(params) {
|
|
75
42
|
const issues = [];
|
|
43
|
+
const capacityIssues = [];
|
|
76
44
|
const providers = params.modelPolicy?.providers ?? {};
|
|
77
45
|
const profiles = params.modelPolicy?.profiles ?? {};
|
|
78
46
|
const invocationProfiles = params.modelPolicy?.invocationProfiles ?? {};
|
|
@@ -92,6 +60,7 @@ export function validateEffectiveRuntimeModelConfig(params) {
|
|
|
92
60
|
}
|
|
93
61
|
validateProfileContextCapacity({
|
|
94
62
|
issues,
|
|
63
|
+
capacityIssues,
|
|
95
64
|
profileId,
|
|
96
65
|
profile,
|
|
97
66
|
...(providerId && providers[providerId]
|
|
@@ -169,6 +138,6 @@ export function validateEffectiveRuntimeModelConfig(params) {
|
|
|
169
138
|
});
|
|
170
139
|
}
|
|
171
140
|
if (issues.length > 0) {
|
|
172
|
-
throw new RuntimeConfigValidationError(params.configPath, issues);
|
|
141
|
+
throw new RuntimeConfigValidationError(params.configPath, issues, capacityIssues);
|
|
173
142
|
}
|
|
174
143
|
}
|
|
@@ -137,6 +137,10 @@ export const RUNTIME_CONFIG_SCHEMA_FIELDS = [
|
|
|
137
137
|
env: [field.env],
|
|
138
138
|
description: field.description,
|
|
139
139
|
})),
|
|
140
|
+
{
|
|
141
|
+
path: "webUi.pageSize", type: "positive-number", defaultValue: "20",
|
|
142
|
+
description: "Sessions and messages per Web UI history page, including SPARK.",
|
|
143
|
+
},
|
|
140
144
|
{
|
|
141
145
|
path: "webUi.openOnRuntimeServiceStart",
|
|
142
146
|
type: "boolean",
|
|
@@ -185,6 +189,12 @@ export const RUNTIME_CONFIG_SCHEMA_FIELDS = [
|
|
|
185
189
|
defaultValue: "[]",
|
|
186
190
|
description: "Installed plugin or capability ids denied after applying the allow-list.",
|
|
187
191
|
},
|
|
192
|
+
{
|
|
193
|
+
path: "plugins.disabledPluginIds",
|
|
194
|
+
type: "string-array",
|
|
195
|
+
defaultValue: "[]",
|
|
196
|
+
description: "Exact plugin ids disabled independently of tool selectors. Entries are literal ids, not wildcards.",
|
|
197
|
+
},
|
|
188
198
|
{
|
|
189
199
|
path: "models.providers",
|
|
190
200
|
type: "object-map",
|
|
@@ -210,6 +220,11 @@ export const RUNTIME_CONFIG_SCHEMA_FIELDS = [
|
|
|
210
220
|
type: "object-map",
|
|
211
221
|
description: "Per-model calibration slots keyed by semantic slot id. Runtime step config maps modelStep names to these slot ids. Slots may tune timeout, generation, context, format, and short model-specific instructions.",
|
|
212
222
|
},
|
|
223
|
+
{
|
|
224
|
+
path: "models.profiles.<profileId>.plugins.deny",
|
|
225
|
+
type: "string-array",
|
|
226
|
+
description: "Additional denied plugin or capability selectors for requests selected by this model profile, including configRef profiles. Global plugin restrictions still apply.",
|
|
227
|
+
},
|
|
213
228
|
{
|
|
214
229
|
path: "models.profiles.<profileId>.execution.policy",
|
|
215
230
|
type: "non-empty-string",
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ModelContextConfig, ModelGatewayPolicyConfig } from "../../model-gateway/types.js";
|
|
2
|
+
import type { RequestRunnerConfig } from "./runner/contracts.js";
|
|
3
|
+
export type ModelContextCapacityIssue = Readonly<{
|
|
4
|
+
profileId: string;
|
|
5
|
+
declaredTokens: number;
|
|
6
|
+
effectiveTokens: number;
|
|
7
|
+
reservedTokens: number;
|
|
8
|
+
minimumTokens: number;
|
|
9
|
+
allocationTokens?: number;
|
|
10
|
+
}>;
|
|
11
|
+
/** Keeps the admission invariant and its diagnostic evidence in one owner. */
|
|
12
|
+
export declare function validateProfileContextCapacity(params: {
|
|
13
|
+
issues: string[];
|
|
14
|
+
capacityIssues: ModelContextCapacityIssue[];
|
|
15
|
+
profileId: string;
|
|
16
|
+
profile: NonNullable<ModelGatewayPolicyConfig["profiles"]>[string];
|
|
17
|
+
providerType?: string;
|
|
18
|
+
runnerConfig: RequestRunnerConfig;
|
|
19
|
+
defaultContext?: ModelContextConfig;
|
|
20
|
+
}): void;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
function readPositiveContextCapacity(value) {
|
|
2
|
+
if (typeof value !== "number")
|
|
3
|
+
return undefined;
|
|
4
|
+
if (!Number.isSafeInteger(value))
|
|
5
|
+
return undefined;
|
|
6
|
+
if (value <= 0)
|
|
7
|
+
return undefined;
|
|
8
|
+
return value;
|
|
9
|
+
}
|
|
10
|
+
function hasConfiguredOllamaContextAllocation(providerType, profile) {
|
|
11
|
+
if (providerType !== "ollama")
|
|
12
|
+
return false;
|
|
13
|
+
return Object.hasOwn(profile.options ?? {}, "num_ctx");
|
|
14
|
+
}
|
|
15
|
+
function hasInsufficientModelContextCapacity(effectiveTokens, reservedTokens) {
|
|
16
|
+
return reservedTokens >= effectiveTokens;
|
|
17
|
+
}
|
|
18
|
+
/** Keeps the admission invariant and its diagnostic evidence in one owner. */
|
|
19
|
+
export function validateProfileContextCapacity(params) {
|
|
20
|
+
const field = `models.profiles.${params.profileId}.contextWindowTokens`;
|
|
21
|
+
const declaredTokens = readPositiveContextCapacity(params.profile.contextWindowTokens);
|
|
22
|
+
if (declaredTokens === undefined) {
|
|
23
|
+
params.issues.push(`${field} must declare the physical context-window capacity as a positive safe integer`);
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const hasAllocation = hasConfiguredOllamaContextAllocation(params.providerType, params.profile);
|
|
27
|
+
const allocationTokens = hasAllocation
|
|
28
|
+
? readPositiveContextCapacity(params.profile.options?.num_ctx)
|
|
29
|
+
: undefined;
|
|
30
|
+
const hasInvalidOllamaAllocation = hasAllocation && allocationTokens === undefined;
|
|
31
|
+
if (hasInvalidOllamaAllocation) {
|
|
32
|
+
params.issues.push(`models.profiles.${params.profileId}.options.num_ctx must be a positive safe integer when configured`);
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
const effectiveTokens = allocationTokens === undefined
|
|
36
|
+
? declaredTokens
|
|
37
|
+
: Math.min(declaredTokens, allocationTokens);
|
|
38
|
+
const profileFormatReserve = params.profile.context?.formatTokenAccounting?.fixedOverheadTokens ?? 0;
|
|
39
|
+
const defaultFormatReserve = params.defaultContext?.formatTokenAccounting?.fixedOverheadTokens ?? 0;
|
|
40
|
+
const reservedTokens = params.runnerConfig.context.outputReserveTokens +
|
|
41
|
+
params.runnerConfig.context.safetyReserveTokens +
|
|
42
|
+
params.runnerConfig.context.attachmentReserveTokens +
|
|
43
|
+
Math.max(profileFormatReserve, defaultFormatReserve);
|
|
44
|
+
if (!hasInsufficientModelContextCapacity(effectiveTokens, reservedTokens))
|
|
45
|
+
return;
|
|
46
|
+
params.issues.push(`models.profiles.${params.profileId} effective context window ${effectiveTokens} must exceed configured output, safety, attachment, and format reserves ${reservedTokens}`);
|
|
47
|
+
params.capacityIssues.push({
|
|
48
|
+
profileId: params.profileId,
|
|
49
|
+
declaredTokens,
|
|
50
|
+
effectiveTokens,
|
|
51
|
+
reservedTokens,
|
|
52
|
+
minimumTokens: reservedTokens + 1,
|
|
53
|
+
...(allocationTokens === undefined ? {} : { allocationTokens }),
|
|
54
|
+
});
|
|
55
|
+
}
|
|
@@ -1,13 +1,17 @@
|
|
|
1
|
+
import { type RuntimeModelPluginConfig } from "./model-plugin-config.js";
|
|
1
2
|
export declare const REQUEST_EXECUTION_POLICY_IDS: readonly ["supervisor-worker-v1", "execution-agent-v1"];
|
|
2
3
|
export type RequestExecutionPolicyId = (typeof REQUEST_EXECUTION_POLICY_IDS)[number];
|
|
3
4
|
export declare const DEFAULT_REQUEST_EXECUTION_POLICY_ID: RequestExecutionPolicyId;
|
|
4
5
|
export type RuntimeModelExecutionPolicy = Readonly<{
|
|
5
|
-
policy
|
|
6
|
+
policy?: RequestExecutionPolicyId;
|
|
7
|
+
plugins?: RuntimeModelPluginConfig;
|
|
6
8
|
}>;
|
|
7
9
|
export type RuntimeModelExecutionPolicies = Readonly<Record<string, RuntimeModelExecutionPolicy>>;
|
|
8
10
|
export type RequestExecutionPolicySelection = Readonly<{
|
|
9
11
|
policy: RequestExecutionPolicyId;
|
|
10
12
|
primaryProfileId?: string;
|
|
13
|
+
plugins?: RuntimeModelPluginConfig;
|
|
11
14
|
source: "model_profile" | "default";
|
|
12
15
|
}>;
|
|
13
16
|
export declare function isRequestExecutionPolicyId(value: unknown): value is RequestExecutionPolicyId;
|
|
17
|
+
export declare function buildRuntimeModelExecutionPolicy(source: Record<string, unknown>): RuntimeModelExecutionPolicy | undefined;
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { buildModelPluginConfig, } from "./model-plugin-config.js";
|
|
2
|
+
import { isRecord } from "./utils.js";
|
|
1
3
|
export const REQUEST_EXECUTION_POLICY_IDS = [
|
|
2
4
|
"supervisor-worker-v1",
|
|
3
5
|
"execution-agent-v1",
|
|
@@ -6,3 +8,17 @@ export const DEFAULT_REQUEST_EXECUTION_POLICY_ID = "supervisor-worker-v1";
|
|
|
6
8
|
export function isRequestExecutionPolicyId(value) {
|
|
7
9
|
return REQUEST_EXECUTION_POLICY_IDS.some((policyId) => policyId === value);
|
|
8
10
|
}
|
|
11
|
+
export function buildRuntimeModelExecutionPolicy(source) {
|
|
12
|
+
const execution = isRecord(source.execution) ? source.execution : undefined;
|
|
13
|
+
const configuredPolicy = execution?.policy;
|
|
14
|
+
const policy = isRequestExecutionPolicyId(configuredPolicy)
|
|
15
|
+
? configuredPolicy
|
|
16
|
+
: undefined;
|
|
17
|
+
const plugins = buildModelPluginConfig(source.plugins);
|
|
18
|
+
if (!policy && !plugins)
|
|
19
|
+
return undefined;
|
|
20
|
+
return {
|
|
21
|
+
...(policy ? { policy } : {}),
|
|
22
|
+
...(plugins ? { plugins } : {}),
|
|
23
|
+
};
|
|
24
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** Runtime-only restrictions for the canonical request model profile. */
|
|
2
|
+
export type RuntimeModelPluginConfig = Readonly<{
|
|
3
|
+
deny?: readonly string[];
|
|
4
|
+
}>;
|
|
5
|
+
export declare function captureModelPluginConfig(config: RuntimeModelPluginConfig | undefined): RuntimeModelPluginConfig | undefined;
|
|
6
|
+
export declare function buildModelPluginConfig(value: unknown): RuntimeModelPluginConfig | undefined;
|
|
7
|
+
export declare function validateModelPluginConfig(issues: string[], profile: Record<string, unknown>, displayKey: string): void;
|
|
8
|
+
export declare function modelPluginConfigSchema(): Record<string, unknown>;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { readNestedConfigStringArray } from "./utils.js";
|
|
2
|
+
import { validateOptionalObject, validateOptionalStringArray, } from "./validation/runtime-config-field-validation.js";
|
|
3
|
+
export function captureModelPluginConfig(config) {
|
|
4
|
+
const deny = readNestedConfigStringArray(config, "deny");
|
|
5
|
+
if (!deny)
|
|
6
|
+
return undefined;
|
|
7
|
+
return Object.freeze({ deny: Object.freeze(deny.sort()) });
|
|
8
|
+
}
|
|
9
|
+
export function buildModelPluginConfig(value) {
|
|
10
|
+
const deny = readNestedConfigStringArray(value, "deny");
|
|
11
|
+
return captureModelPluginConfig(deny ? { deny } : undefined);
|
|
12
|
+
}
|
|
13
|
+
function isSupportedModelPluginField(key) {
|
|
14
|
+
return key === "deny";
|
|
15
|
+
}
|
|
16
|
+
export function validateModelPluginConfig(issues, profile, displayKey) {
|
|
17
|
+
const plugins = validateOptionalObject(issues, profile, "plugins", `${displayKey}.plugins`);
|
|
18
|
+
if (!plugins)
|
|
19
|
+
return;
|
|
20
|
+
for (const key of Object.keys(plugins)) {
|
|
21
|
+
if (isSupportedModelPluginField(key))
|
|
22
|
+
continue;
|
|
23
|
+
issues.push(`${displayKey}.plugins.${key} is not a supported configuration field`);
|
|
24
|
+
}
|
|
25
|
+
validateOptionalStringArray(issues, plugins, "deny", `${displayKey}.plugins.deny`);
|
|
26
|
+
}
|
|
27
|
+
export function modelPluginConfigSchema() {
|
|
28
|
+
return {
|
|
29
|
+
type: "object",
|
|
30
|
+
description: "Runtime-only restrictions applied to the entire request selected by this model profile. Global plugin restrictions still apply.",
|
|
31
|
+
properties: {
|
|
32
|
+
deny: {
|
|
33
|
+
type: "array",
|
|
34
|
+
items: { type: "string" },
|
|
35
|
+
description: "Denied plugin IDs, capability names, plugin.capability selectors, or *. These restrictions do not depend on per-step model overrides.",
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
additionalProperties: false,
|
|
39
|
+
};
|
|
40
|
+
}
|