@abot-ai/runtime 1.3.1 → 1.4.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/dist/plugins/system/source/application-catalog.d.ts +14 -0
- package/dist/plugins/system/source/application-catalog.js +185 -0
- package/dist/plugins/system/source/application-launch.d.ts +10 -0
- package/dist/plugins/system/source/application-launch.js +80 -0
- package/dist/plugins/system/source/application-observation.d.ts +25 -0
- package/dist/plugins/system/source/application-observation.js +53 -0
- package/dist/plugins/system/source/commands.d.ts +7 -0
- package/dist/plugins/system/source/commands.js +71 -0
- package/dist/plugins/system/source/companion/autostart.d.ts +16 -0
- package/dist/plugins/system/source/companion/autostart.js +146 -0
- package/dist/plugins/system/source/companion/broker-location.d.ts +11 -0
- package/dist/plugins/system/source/companion/broker-location.js +76 -0
- package/dist/plugins/system/source/companion/broker-server.d.ts +4 -0
- package/dist/plugins/system/source/companion/broker-server.js +147 -0
- package/dist/plugins/system/source/companion/connection.d.ts +25 -0
- package/dist/plugins/system/source/companion/connection.js +182 -0
- package/dist/plugins/system/source/companion/liveness.d.ts +3 -0
- package/dist/plugins/system/source/companion/liveness.js +20 -0
- package/dist/plugins/system/source/companion/native-address.d.ts +12 -0
- package/dist/plugins/system/source/companion/native-address.js +41 -0
- package/dist/plugins/system/source/companion/native-identity.d.ts +2 -0
- package/dist/plugins/system/source/companion/native-identity.js +23 -0
- package/dist/plugins/system/source/companion/native-messages.d.ts +9 -0
- package/dist/plugins/system/source/companion/native-messages.js +77 -0
- package/dist/plugins/system/source/companion/native-session.d.ts +19 -0
- package/dist/plugins/system/source/companion/native-session.js +205 -0
- package/dist/plugins/system/source/companion/native-state.d.ts +22 -0
- package/dist/plugins/system/source/companion/native-state.js +126 -0
- package/dist/plugins/system/source/companion/native-supervisor.d.ts +10 -0
- package/dist/plugins/system/source/companion/native-supervisor.js +93 -0
- package/dist/plugins/system/source/companion/pairing-store.d.ts +22 -0
- package/dist/plugins/system/source/companion/pairing-store.js +102 -0
- package/dist/plugins/system/source/companion/private-store.d.ts +4 -0
- package/dist/plugins/system/source/companion/private-store.js +59 -0
- package/dist/plugins/system/source/companion/process-owner-identity.d.ts +22 -0
- package/dist/plugins/system/source/companion/process-owner-identity.js +144 -0
- package/dist/plugins/system/source/companion/protocol.d.ts +57 -0
- package/dist/plugins/system/source/companion/protocol.js +66 -0
- package/dist/plugins/system/source/contracts.d.ts +38 -0
- package/dist/plugins/system/source/contracts.js +7 -0
- package/dist/plugins/system/source/elevation.d.ts +8 -0
- package/dist/plugins/system/source/elevation.js +57 -0
- package/dist/plugins/system/source/handlers.d.ts +3 -0
- package/dist/plugins/system/source/handlers.js +90 -0
- package/dist/plugins/system/source/host-evidence.d.ts +4 -0
- package/dist/plugins/system/source/host-evidence.js +52 -0
- package/dist/plugins/system/source/host-observation.d.ts +25 -0
- package/dist/plugins/system/source/host-observation.js +59 -0
- package/dist/plugins/system/source/process-result.d.ts +4 -0
- package/dist/plugins/system/source/process-result.js +86 -0
- package/dist/plugins/system/source/process-runner.d.ts +3 -0
- package/dist/plugins/system/source/process-runner.js +103 -0
- package/dist/plugins/system/source/target-observation.d.ts +18 -0
- package/dist/plugins/system/source/target-observation.js +29 -0
- package/dist/plugins/system/source/targets.d.ts +8 -0
- package/dist/plugins/system/source/targets.js +101 -0
- package/dist/scripts/add-runtime-model.js +10 -53
- package/dist/scripts/runtime-model-addition.d.ts +13 -0
- package/dist/scripts/runtime-model-addition.js +53 -0
- package/dist/scripts/runtime-setup-files.d.ts +3 -1
- package/dist/scripts/runtime-setup-files.js +18 -1
- package/dist/src/capabilities/file-output-presentation.d.ts +43 -0
- package/dist/src/capabilities/file-output-presentation.js +133 -0
- package/dist/src/capabilities/tool-definition-validator/definition-parser.js +2 -0
- package/dist/src/capabilities/tool-definition-validator/event-input-text-options.d.ts +5 -0
- package/dist/src/capabilities/tool-definition-validator/event-input-text-options.js +37 -0
- package/dist/src/capabilities/tool-definition-validator/event-presentation.js +3 -0
- package/dist/src/capabilities/tool-definition-validator/module-registry.js +12 -0
- package/dist/src/capabilities/tool-event-input-text.d.ts +9 -0
- package/dist/src/capabilities/tool-event-input-text.js +64 -0
- package/dist/src/capabilities/tool-event-metadata.js +10 -0
- package/dist/src/capabilities/tool-executor.d.ts +1 -0
- package/dist/src/capabilities/tool-executor.js +1 -0
- package/dist/src/capabilities/tool-permission-mode.d.ts +7 -0
- package/dist/src/capabilities/tool-permission-mode.js +27 -0
- package/dist/src/capabilities/tool-types.d.ts +18 -2
- package/dist/src/cli/abot.js +18 -15
- package/dist/src/cli/host-companion-bundle.mjs +5201 -0
- package/dist/src/cli/host-companion-entry.d.ts +8 -0
- package/dist/src/cli/host-companion-entry.js +70 -0
- package/dist/src/cli/host-companion-startup.d.ts +4 -0
- package/dist/src/cli/host-companion-startup.js +35 -0
- package/dist/src/cli/host-companion.d.ts +5 -0
- package/dist/src/cli/host-companion.js +203 -0
- package/dist/src/model-gateway/server/configuration.js +4 -1
- package/dist/src/model-gateway/server/contracts.d.ts +2 -0
- package/dist/src/plugin-contract/entrypoint.d.ts +4 -2
- package/dist/src/plugin-contract/manifest.d.ts +1 -0
- package/dist/src/runtime/adapters/config-file-transaction.d.ts +46 -0
- package/dist/src/runtime/adapters/config-file-transaction.js +158 -0
- package/dist/src/runtime/adapters/configured-skill-provider.js +3 -3
- package/dist/src/runtime/adapters/in-memory-session-store.js +11 -1
- package/dist/src/runtime/adapters/long-term-memory/file-lock/acquisition.js +7 -3
- package/dist/src/runtime/adapters/long-term-memory/file-lock/contracts.d.ts +4 -1
- package/dist/src/runtime/adapters/long-term-memory/file-lock/install.d.ts +1 -1
- package/dist/src/runtime/adapters/long-term-memory/file-lock/install.js +5 -1
- package/dist/src/runtime/adapters/long-term-memory/file-lock/owner-identity.d.ts +3 -0
- package/dist/src/runtime/adapters/long-term-memory/file-lock/owner-identity.js +15 -0
- package/dist/src/runtime/adapters/long-term-memory/file-lock/owner-record.js +2 -0
- package/dist/src/runtime/adapters/long-term-memory/onboarding-config-repository.js +17 -43
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/catalog/registrations.js +6 -2
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/approval.js +10 -1
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/execution-binding.d.ts +11 -0
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/execution-binding.js +37 -0
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/file-output-presentation.d.ts +7 -0
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/file-output-presentation.js +105 -0
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/run.js +29 -3
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/shared/action-fingerprint.d.ts +1 -0
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/shared/action-fingerprint.js +1 -0
- package/dist/src/runtime/capabilities/configured-tool-registry.js +9 -1
- package/dist/src/runtime/capabilities/file-output-root-identity.d.ts +5 -0
- package/dist/src/runtime/capabilities/file-output-root-identity.js +146 -0
- package/dist/src/runtime/capabilities/file-output-root-marker-creation.d.ts +5 -0
- package/dist/src/runtime/capabilities/file-output-root-marker-creation.js +63 -0
- package/dist/src/runtime/capabilities/request-bound-tool-registry.d.ts +1 -0
- package/dist/src/runtime/capabilities/request-bound-tool-registry.js +6 -1
- package/dist/src/runtime/capabilities/request-module-preparation.d.ts +3 -0
- package/dist/src/runtime/capabilities/request-module-preparation.js +102 -0
- package/dist/src/runtime/capabilities/request-permission-catalog.d.ts +10 -0
- package/dist/src/runtime/capabilities/request-permission-catalog.js +50 -0
- package/dist/src/runtime/capabilities/request-permission-tool-registry.d.ts +4 -0
- package/dist/src/runtime/capabilities/request-permission-tool-registry.js +61 -0
- package/dist/src/runtime/capabilities/request-runtime-tool-registry.d.ts +3 -0
- package/dist/src/runtime/capabilities/request-runtime-tool-registry.js +5 -2
- package/dist/src/runtime/capabilities/request-working-directory.d.ts +3 -0
- package/dist/src/runtime/capabilities/request-working-directory.js +12 -0
- package/dist/src/runtime/composition.d.ts +2 -0
- package/dist/src/runtime/config/runner/loader.d.ts +4 -0
- package/dist/src/runtime/config/runner/loader.js +23 -3
- package/dist/src/runtime/context/capability-brief-budget.d.ts +18 -0
- package/dist/src/runtime/context/capability-brief-budget.js +38 -0
- package/dist/src/runtime/context/capability-brief-readmission.d.ts +21 -0
- package/dist/src/runtime/context/capability-brief-readmission.js +47 -0
- package/dist/src/runtime/context/capability-brief.d.ts +9 -2
- package/dist/src/runtime/context/capability-brief.js +21 -39
- package/dist/src/runtime/context/capability-descriptions.d.ts +3 -0
- package/dist/src/runtime/context/capability-descriptions.js +23 -0
- package/dist/src/runtime/default-environment-adapters.js +3 -4
- package/dist/src/runtime/local-application.d.ts +18 -0
- package/dist/src/runtime/local-application.js +12 -0
- package/dist/src/runtime/local-host/app-service-dispatch.d.ts +1 -0
- package/dist/src/runtime/local-host/app-service-dispatch.js +9 -0
- package/dist/src/runtime/local-host/client-services.d.ts +16 -0
- package/dist/src/runtime/local-host/client-services.js +3 -2
- package/dist/src/runtime/local-host/contracts.d.ts +4 -0
- package/dist/src/runtime/local-host/startup-connection.js +22 -7
- package/dist/src/runtime/local-host/transport.js +14 -2
- package/dist/src/runtime/orchestration/role-calls/candidate-validation.js +5 -2
- package/dist/src/runtime/orchestration/role-calls/command-decoder.js +3 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/work-plan-transition.d.ts +3 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/work-plan-transition.js +46 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch.js +3 -0
- package/dist/src/runtime/orchestration/role-calls/contracts.d.ts +8 -4
- package/dist/src/runtime/orchestration/role-calls/transactions.js +2 -0
- package/dist/src/runtime/orchestration/role-calls/work-plan-contracts.d.ts +48 -0
- package/dist/src/runtime/orchestration/role-calls/work-plan-contracts.js +9 -0
- package/dist/src/runtime/orchestration/role-calls/work-plan-source.d.ts +7 -0
- package/dist/src/runtime/orchestration/role-calls/work-plan-source.js +85 -0
- package/dist/src/runtime/orchestration/role-calls/work-plan-transactions.d.ts +3 -0
- package/dist/src/runtime/orchestration/role-calls/work-plan-transactions.js +17 -0
- package/dist/src/runtime/orchestration/role-calls/work-plan-validation.d.ts +10 -0
- package/dist/src/runtime/orchestration/role-calls/work-plan-validation.js +149 -0
- package/dist/src/runtime/orchestration/worker-capabilities/contracts.d.ts +1 -1
- package/dist/src/runtime/orchestration/worker-capabilities/contracts.js +1 -1
- package/dist/src/runtime/plugins/compiled-catalog.d.ts +2 -1
- package/dist/src/runtime/plugins/configured-manifests.d.ts +3 -0
- package/dist/src/runtime/plugins/configured-manifests.js +37 -0
- package/dist/src/runtime/plugins/entrypoint-validation.d.ts +6 -0
- package/dist/src/runtime/plugins/entrypoint-validation.js +74 -0
- package/dist/src/runtime/plugins/loader.js +11 -123
- package/dist/src/runtime/plugins/manifest-discovery.d.ts +4 -1
- package/dist/src/runtime/plugins/manifest-discovery.js +8 -1
- package/dist/src/runtime/plugins/manifest-projection.js +3 -0
- package/dist/src/runtime/plugins/manifest-validator.js +7 -1
- package/dist/src/runtime/plugins/runtime-capability-plugins.d.ts +4 -0
- package/dist/src/runtime/plugins/runtime-capability-plugins.js +7 -0
- package/dist/src/runtime/plugins/selection.d.ts +14 -0
- package/dist/src/runtime/plugins/selection.js +38 -0
- package/dist/src/runtime/ports.d.ts +8 -2
- package/dist/src/runtime/projects/contracts.d.ts +40 -0
- package/dist/src/runtime/projects/contracts.js +10 -0
- package/dist/src/runtime/projects/folders.d.ts +7 -0
- package/dist/src/runtime/projects/folders.js +110 -0
- package/dist/src/runtime/projects/repository.d.ts +10 -0
- package/dist/src/runtime/projects/repository.js +54 -0
- package/dist/src/runtime/projects/service.d.ts +3 -0
- package/dist/src/runtime/projects/service.js +34 -0
- package/dist/src/runtime/projects/session-paths.d.ts +5 -0
- package/dist/src/runtime/projects/session-paths.js +13 -0
- package/dist/src/runtime/request/execution-agent-plan-update.d.ts +4 -0
- package/dist/src/runtime/request/execution-agent-plan-update.js +13 -0
- package/dist/src/runtime/request/execution-agent-root-execution.js +9 -1
- package/dist/src/runtime/request/handler.js +9 -2
- package/dist/src/runtime/request/input.d.ts +2 -1
- package/dist/src/runtime/request/input.js +1 -6
- package/dist/src/runtime/request/role-call-planner-events.js +4 -0
- package/dist/src/runtime/request/role-executor-composition.js +9 -1
- package/dist/src/runtime/request/root-contract.d.ts +6 -1
- package/dist/src/runtime/request/root-execution-kernel.js +17 -0
- package/dist/src/runtime/request/root-plan-event-projection.d.ts +3 -0
- package/dist/src/runtime/request/root-plan-event-projection.js +32 -0
- package/dist/src/runtime/request/root-plan-update.d.ts +15 -0
- package/dist/src/runtime/request/root-plan-update.js +20 -0
- package/dist/src/runtime/request/worker-capability-composition.d.ts +1 -0
- package/dist/src/runtime/request/worker-capability-composition.js +2 -0
- package/dist/src/runtime/runtime-environment.d.ts +1 -0
- package/dist/src/runtime/runtime-environment.js +2 -0
- package/dist/src/runtime/steps/auditor-decision/advisory-receipt.d.ts +32 -0
- package/dist/src/runtime/steps/auditor-decision/advisory-receipt.js +106 -0
- package/dist/src/runtime/steps/auditor-decision/advisory-result-budget.d.ts +5 -0
- package/dist/src/runtime/steps/auditor-decision/advisory-result-budget.js +40 -0
- package/dist/src/runtime/steps/auditor-decision/audit-input-state.d.ts +12 -0
- package/dist/src/runtime/steps/auditor-decision/audit-input-state.js +101 -0
- package/dist/src/runtime/steps/auditor-decision/contracts.d.ts +31 -16
- package/dist/src/runtime/steps/auditor-decision/contracts.js +3 -3
- package/dist/src/runtime/steps/auditor-decision/evidence-binding.d.ts +5 -0
- package/dist/src/runtime/steps/auditor-decision/evidence-binding.js +43 -0
- package/dist/src/runtime/steps/auditor-decision/evidence-coverage.d.ts +2 -0
- package/dist/src/runtime/steps/auditor-decision/evidence-coverage.js +71 -0
- package/dist/src/runtime/steps/auditor-decision/evidence-inventory.d.ts +13 -0
- package/dist/src/runtime/steps/auditor-decision/evidence-inventory.js +89 -0
- package/dist/src/runtime/steps/auditor-decision/evidence-representation.d.ts +10 -0
- package/dist/src/runtime/steps/auditor-decision/evidence-representation.js +56 -0
- package/dist/src/runtime/steps/auditor-decision/evidence-selection.d.ts +9 -0
- package/dist/src/runtime/steps/auditor-decision/evidence-selection.js +71 -0
- package/dist/src/runtime/steps/auditor-decision/format.js +44 -2
- package/dist/src/runtime/steps/auditor-decision/index.d.ts +3 -0
- package/dist/src/runtime/steps/auditor-decision/index.js +3 -0
- package/dist/src/runtime/steps/auditor-decision/input.d.ts +2 -2
- package/dist/src/runtime/steps/auditor-decision/input.js +64 -20
- package/dist/src/runtime/steps/auditor-decision/parser.js +38 -23
- package/dist/src/runtime/steps/auditor-decision/projection.js +49 -99
- package/dist/src/runtime/steps/auditor-decision/prompt.d.ts +1 -1
- package/dist/src/runtime/steps/auditor-decision/prompt.js +9 -4
- package/dist/src/runtime/steps/auditor-decision/run.js +79 -47
- package/dist/src/runtime/steps/execution-agent/contracts.d.ts +8 -1
- package/dist/src/runtime/steps/execution-agent/contracts.js +2 -0
- package/dist/src/runtime/steps/execution-agent/decision-parsing.js +4 -0
- package/dist/src/runtime/steps/execution-agent/format.js +4 -3
- package/dist/src/runtime/steps/execution-agent/input.js +10 -11
- package/dist/src/runtime/steps/execution-agent/prompt.d.ts +1 -0
- package/dist/src/runtime/steps/execution-agent/prompt.js +11 -4
- package/dist/src/runtime/steps/execution-agent/state-context.js +10 -0
- package/dist/src/runtime/steps/execution-agent/work-plan-contract.d.ts +18 -0
- package/dist/src/runtime/steps/execution-agent/work-plan-contract.js +86 -0
- package/dist/src/runtime/steps/execution-agent/work-plan-decision-parsing.d.ts +2 -0
- package/dist/src/runtime/steps/execution-agent/work-plan-decision-parsing.js +38 -0
- package/dist/src/runtime/steps/execution-agent/work-plan-sources.d.ts +6 -0
- package/dist/src/runtime/steps/execution-agent/work-plan-sources.js +54 -0
- package/dist/src/runtime/steps/planner-decision/capability-brief.d.ts +40 -0
- package/dist/src/runtime/steps/planner-decision/capability-brief.js +47 -0
- package/dist/src/runtime/steps/planner-decision/input.d.ts +4 -2
- package/dist/src/runtime/steps/planner-decision/input.js +23 -13
- package/dist/src/runtime/steps/planner-decision/prompt.js +2 -2
- package/dist/src/runtime/steps/planner-decision/run.js +11 -7
- package/dist/src/runtime/steps/planner-graph/parser.js +0 -11
- package/dist/src/runtime/steps/planner-graph/prompt.js +2 -1
- package/dist/src/runtime/steps/supervisor-decision/capability-brief-readmission.d.ts +10 -0
- package/dist/src/runtime/steps/supervisor-decision/capability-brief-readmission.js +39 -0
- package/dist/src/runtime/steps/supervisor-decision/run.js +2 -1
- package/dist/src/runtime/steps/worker-decision/parser/accepted-decision.d.ts +3 -1
- package/dist/src/runtime/steps/worker-decision/parser/accepted-decision.js +20 -1
- package/dist/src/runtime/steps/worker-decision/parser/capability-batch-validation.d.ts +1 -1
- package/dist/src/runtime/steps/worker-decision/parser/capability-batch-validation.js +6 -6
- package/dist/src/runtime/steps/worker-decision/parser/capability-invocation-validation.js +2 -1
- package/dist/src/sessions/project-binding.d.ts +12 -0
- package/dist/src/sessions/project-binding.js +49 -0
- package/dist/src/sessions/record/projection.d.ts +6 -1
- package/dist/src/sessions/record/projection.js +1 -0
- package/dist/src/sessions/session-service.d.ts +2 -1
- package/dist/src/sessions/session-service.js +11 -1
- package/dist/src/sessions/types.d.ts +7 -0
- package/dist/src/web-ui/app/ARCHITECTURE.md +121 -1
- package/dist/src/web-ui/app/app-bootstrap.js +3 -0
- package/dist/src/web-ui/app/app-dom.js +3 -0
- package/dist/src/web-ui/app/app-state.js +38 -0
- package/dist/src/web-ui/app/app.js +76 -67
- package/dist/src/web-ui/app/components/config-workspace/config-model.js +23 -3
- package/dist/src/web-ui/app/components/config-workspace/dashboard-rendering.js +2 -0
- package/dist/src/web-ui/app/components/config-workspace/field-rendering.js +2 -0
- package/dist/src/web-ui/app/components/config-workspace/model-rendering.js +6 -0
- package/dist/src/web-ui/app/components/config-workspace/model-setup-entry.js +27 -0
- package/dist/src/web-ui/app/components/config-workspace/raw-config-repair.js +28 -0
- package/dist/src/web-ui/app/components/config-workspace/workspace-events.js +5 -0
- package/dist/src/web-ui/app/components/config-workspace/workspace-mutations.js +23 -3
- package/dist/src/web-ui/app/components/config-workspace/workspace-persistence.js +26 -8
- package/dist/src/web-ui/app/components/config-workspace/workspace-view.js +56 -0
- package/dist/src/web-ui/app/components/config-workspace.js +11 -0
- package/dist/src/web-ui/app/components/conversation-activity.d.ts +6 -0
- package/dist/src/web-ui/app/components/conversation-activity.js +10 -2
- package/dist/src/web-ui/app/components/conversation-file-action.js +33 -0
- package/dist/src/web-ui/app/components/conversation-file-focus.d.ts +12 -0
- package/dist/src/web-ui/app/components/conversation-file-focus.js +149 -0
- package/dist/src/web-ui/app/components/conversation-file-preview.d.ts +23 -0
- package/dist/src/web-ui/app/components/conversation-file-preview.js +247 -0
- package/dist/src/web-ui/app/components/conversation-role-cards.d.ts +6 -0
- package/dist/src/web-ui/app/components/conversation-role-cards.js +10 -2
- package/dist/src/web-ui/app/components/conversation-tool-evidence.d.ts +9 -0
- package/dist/src/web-ui/app/components/conversation-tool-evidence.js +129 -0
- package/dist/src/web-ui/app/components/conversation-tools.d.ts +6 -0
- package/dist/src/web-ui/app/components/conversation-tools.js +25 -105
- package/dist/src/web-ui/app/components/conversation-view.js +10 -1
- package/dist/src/web-ui/app/components/dashboard/workspace.js +19 -7
- package/dist/src/web-ui/app/components/model-setup/rendering.js +99 -0
- package/dist/src/web-ui/app/components/model-setup/save-flow.js +111 -0
- package/dist/src/web-ui/app/components/model-setup/save-outcome.js +16 -0
- package/dist/src/web-ui/app/components/model-setup/validation.js +125 -0
- package/dist/src/web-ui/app/components/model-setup/wizard.d.ts +44 -0
- package/dist/src/web-ui/app/components/model-setup/wizard.js +370 -0
- package/dist/src/web-ui/app/components/plugins/manager.js +200 -0
- package/dist/src/web-ui/app/components/plugins/rendering.js +124 -0
- package/dist/src/web-ui/app/components/plugins/view-state.js +123 -0
- package/dist/src/web-ui/app/components/project-creation.js +119 -0
- package/dist/src/web-ui/app/components/project-session-groups.js +95 -0
- package/dist/src/web-ui/app/components/runtime-config-activation.js +83 -0
- package/dist/src/web-ui/app/components/runtime-setup/bridge-guide.d.ts +9 -0
- package/dist/src/web-ui/app/components/runtime-setup/bridge-guide.js +198 -0
- package/dist/src/web-ui/app/components/runtime-setup/bridge-rendering.js +107 -0
- package/dist/src/web-ui/app/components/runtime-setup/commands.js +54 -0
- package/dist/src/web-ui/app/components/runtime-setup/configuration-recovery.js +25 -0
- package/dist/src/web-ui/app/components/runtime-setup/connection-form.js +154 -0
- package/dist/src/web-ui/app/components/runtime-setup/connection-state.js +71 -0
- package/dist/src/web-ui/app/components/runtime-setup/context-window.js +18 -0
- package/dist/src/web-ui/app/components/runtime-setup/embedding-credential-status.d.ts +15 -0
- package/dist/src/web-ui/app/components/runtime-setup/embedding-credential-status.js +87 -0
- package/dist/src/web-ui/app/components/runtime-setup/embedding-provider-receipt.js +30 -0
- package/dist/src/web-ui/app/components/runtime-setup/embedding-rendering.js +57 -0
- package/dist/src/web-ui/app/components/runtime-setup/embedding.js +284 -0
- package/dist/src/web-ui/app/components/runtime-setup/optional-steps.js +117 -0
- package/dist/src/web-ui/app/components/runtime-setup/plugins.js +173 -0
- package/dist/src/web-ui/app/components/runtime-setup/rendering.js +141 -0
- package/dist/src/web-ui/app/components/runtime-setup/validation.js +69 -0
- package/dist/src/web-ui/app/components/runtime-setup/view-state.js +58 -0
- package/dist/src/web-ui/app/components/runtime-setup/wizard-shell.js +27 -0
- package/dist/src/web-ui/app/components/runtime-setup-guide.d.ts +66 -5
- package/dist/src/web-ui/app/components/runtime-setup-guide.js +415 -461
- package/dist/src/web-ui/app/components/system-host/download.js +38 -0
- package/dist/src/web-ui/app/components/system-host/manager.js +249 -0
- package/dist/src/web-ui/app/components/system-host/rendering.js +88 -0
- package/dist/src/web-ui/app/components/system-host/setup-notice.js +87 -0
- package/dist/src/web-ui/app/components/system-host/visibility.js +35 -0
- package/dist/src/web-ui/app/components/tool-approval-card.d.ts +4 -0
- package/dist/src/web-ui/app/components/tool-approval-card.js +15 -0
- package/dist/src/web-ui/app/configuration-environment-refresh.js +118 -0
- package/dist/src/web-ui/app/configuration-feature.js +125 -4
- package/dist/src/web-ui/app/controllers/app-event-bindings.js +2 -0
- package/dist/src/web-ui/app/controllers/composer-workspace-controller.d.ts +1 -0
- package/dist/src/web-ui/app/controllers/composer-workspace-controller.js +4 -3
- package/dist/src/web-ui/app/controllers/conversation-file-preview-controller.d.ts +24 -0
- package/dist/src/web-ui/app/controllers/conversation-file-preview-controller.js +158 -0
- package/dist/src/web-ui/app/controllers/conversation-file-preview-feature.d.ts +19 -0
- package/dist/src/web-ui/app/controllers/conversation-file-preview-feature.js +63 -0
- package/dist/src/web-ui/app/controllers/conversation-session-controller.d.ts +1 -0
- package/dist/src/web-ui/app/controllers/conversation-session-controller.js +2 -0
- package/dist/src/web-ui/app/controllers/conversation-view-feature.js +28 -0
- package/dist/src/web-ui/app/controllers/dashboard-controller.js +17 -0
- package/dist/src/web-ui/app/controllers/projects-controller.d.ts +45 -0
- package/dist/src/web-ui/app/controllers/projects-controller.js +278 -0
- package/dist/src/web-ui/app/controllers/realtime-event-controller.js +3 -0
- package/dist/src/web-ui/app/controllers/runtime-onboarding-controller.js +13 -6
- package/dist/src/web-ui/app/controllers/runtime-selection-controller.d.ts +7 -1
- package/dist/src/web-ui/app/controllers/runtime-selection-controller.js +11 -95
- package/dist/src/web-ui/app/controllers/session-controller.js +64 -57
- package/dist/src/web-ui/app/controllers/tool-permission-mode-controller.d.ts +20 -0
- package/dist/src/web-ui/app/controllers/tool-permission-mode-controller.js +116 -0
- package/dist/src/web-ui/app/dashboard-feature.js +32 -10
- package/dist/src/web-ui/app/index.html +44 -7
- package/dist/src/web-ui/app/lib/conversation-file-preview.d.ts +12 -0
- package/dist/src/web-ui/app/lib/conversation-file-reference.d.ts +30 -0
- package/dist/src/web-ui/app/lib/conversation-file-reference.js +66 -0
- package/dist/src/web-ui/app/lib/tool-activity-event.d.ts +2 -0
- package/dist/src/web-ui/app/lib/tool-activity-event.js +18 -6
- package/dist/src/web-ui/app/lib/tool-activity-model.d.ts +2 -0
- package/dist/src/web-ui/app/lib/tool-activity-model.js +4 -2
- package/dist/src/web-ui/app/lib/tool-permission-mode.d.ts +16 -0
- package/dist/src/web-ui/app/lib/tool-permission-mode.js +60 -0
- package/dist/src/web-ui/app/lib/tool-process-activity-fields.js +102 -0
- package/dist/src/web-ui/app/projects-feature.js +134 -0
- package/dist/src/web-ui/app/runtime-onboarding-feature.d.ts +34 -0
- package/dist/src/web-ui/app/runtime-onboarding-feature.js +92 -0
- package/dist/src/web-ui/app/runtime-setup-page-lifecycle.d.ts +5 -0
- package/dist/src/web-ui/app/runtime-setup-page-lifecycle.js +13 -0
- package/dist/src/web-ui/app/services/client-preferences.d.ts +24 -0
- package/dist/src/web-ui/app/services/client-preferences.js +32 -19
- package/dist/src/web-ui/app/services/runtime-web-client/configuration.js +46 -0
- package/dist/src/web-ui/app/services/runtime-web-client/conversation-files.d.ts +28 -0
- package/dist/src/web-ui/app/services/runtime-web-client/conversation-files.js +75 -0
- package/dist/src/web-ui/app/services/runtime-web-client/projects.d.ts +19 -0
- package/dist/src/web-ui/app/services/runtime-web-client/projects.js +34 -0
- package/dist/src/web-ui/app/services/runtime-web-client/system-host.js +27 -0
- package/dist/src/web-ui/app/services/runtime-web-client.d.ts +52 -0
- package/dist/src/web-ui/app/services/runtime-web-client.js +35 -4
- package/dist/src/web-ui/app/styles/13-projects.css +272 -0
- package/dist/src/web-ui/app/styles/18-dashboard.css +0 -5
- package/dist/src/web-ui/app/styles/19-runtime-setup.css +411 -0
- package/dist/src/web-ui/app/styles/20-chat-composer.css +0 -384
- package/dist/src/web-ui/app/styles/29-conversation-file-preview.css +254 -0
- package/dist/src/web-ui/app/styles/37-runtime-activation.css +26 -0
- package/dist/src/web-ui/app/styles/38-schedule-workspace.css +1 -10
- package/dist/src/web-ui/app/styles/41-plugin-management.css +351 -0
- package/dist/src/web-ui/app/styles/42-runtime-setup-plugins.css +179 -0
- package/dist/src/web-ui/app/styles/43-model-setup.css +73 -0
- package/dist/src/web-ui/app/styles/44-model-provider-cards.css +63 -0
- package/dist/src/web-ui/app/styles/45-bridge-setup.css +44 -0
- package/dist/src/web-ui/app/styles/46-system-host.css +132 -0
- package/dist/src/web-ui/app/styles.css +10 -0
- package/dist/src/web-ui/config-dashboard-backend.d.ts +5 -0
- package/dist/src/web-ui/config-dashboard-backend.js +94 -114
- package/dist/src/web-ui/config-dashboard-model-identity.d.ts +7 -0
- package/dist/src/web-ui/config-dashboard-model-identity.js +45 -0
- package/dist/src/web-ui/config-dashboard-save-transaction.d.ts +5 -0
- package/dist/src/web-ui/config-dashboard-save-transaction.js +21 -0
- package/dist/src/web-ui/environment-config.d.ts +17 -0
- package/dist/src/web-ui/environment-config.js +60 -0
- package/dist/src/web-ui/forwarded-loopback-policy.d.ts +2 -0
- package/dist/src/web-ui/forwarded-loopback-policy.js +14 -0
- package/dist/src/web-ui/local-runtime/api-router.d.ts +7 -0
- package/dist/src/web-ui/local-runtime/api-router.js +136 -12
- package/dist/src/web-ui/local-runtime/config-mutation-request.d.ts +8 -0
- package/dist/src/web-ui/local-runtime/config-mutation-request.js +55 -0
- package/dist/src/web-ui/local-runtime/configuration-activation-environments.d.ts +22 -0
- package/dist/src/web-ui/local-runtime/configuration-activation-environments.js +106 -0
- package/dist/src/web-ui/local-runtime/configuration-activation-source.d.ts +7 -0
- package/dist/src/web-ui/local-runtime/configuration-activation-source.js +36 -0
- package/dist/src/web-ui/local-runtime/configuration-activation.d.ts +20 -0
- package/dist/src/web-ui/local-runtime/configuration-activation.js +107 -0
- package/dist/src/web-ui/local-runtime/contracts.d.ts +8 -0
- package/dist/src/web-ui/local-runtime/conversation-file-access.d.ts +30 -0
- package/dist/src/web-ui/local-runtime/conversation-file-access.js +131 -0
- package/dist/src/web-ui/local-runtime/conversation-file-content.d.ts +21 -0
- package/dist/src/web-ui/local-runtime/conversation-file-content.js +75 -0
- package/dist/src/web-ui/local-runtime/conversation-file-format.d.ts +12 -0
- package/dist/src/web-ui/local-runtime/conversation-file-format.js +87 -0
- package/dist/src/web-ui/local-runtime/conversation-file-native-open.d.ts +10 -0
- package/dist/src/web-ui/local-runtime/conversation-file-native-open.js +94 -0
- package/dist/src/web-ui/local-runtime/conversation-file-native-request.d.ts +4 -0
- package/dist/src/web-ui/local-runtime/conversation-file-native-request.js +72 -0
- package/dist/src/web-ui/local-runtime/conversation-file-routes.d.ts +11 -0
- package/dist/src/web-ui/local-runtime/conversation-file-routes.js +105 -0
- package/dist/src/web-ui/local-runtime/conversation-file-target.d.ts +14 -0
- package/dist/src/web-ui/local-runtime/conversation-file-target.js +158 -0
- package/dist/src/web-ui/local-runtime/environment-registry.d.ts +14 -0
- package/dist/src/web-ui/local-runtime/environment-registry.js +121 -6
- package/dist/src/web-ui/local-runtime/memory-onboarding-routes.d.ts +2 -1
- package/dist/src/web-ui/local-runtime/memory-onboarding-routes.js +15 -10
- package/dist/src/web-ui/local-runtime/model-setup-catalog.d.ts +17 -0
- package/dist/src/web-ui/local-runtime/model-setup-catalog.js +45 -0
- package/dist/src/web-ui/local-runtime/model-setup-identity.d.ts +16 -0
- package/dist/src/web-ui/local-runtime/model-setup-identity.js +20 -0
- package/dist/src/web-ui/local-runtime/model-setup-input.d.ts +24 -0
- package/dist/src/web-ui/local-runtime/model-setup-input.js +107 -0
- package/dist/src/web-ui/local-runtime/model-setup-provider.d.ts +17 -0
- package/dist/src/web-ui/local-runtime/model-setup-provider.js +68 -0
- package/dist/src/web-ui/local-runtime/model-setup-retry.d.ts +14 -0
- package/dist/src/web-ui/local-runtime/model-setup-retry.js +47 -0
- package/dist/src/web-ui/local-runtime/model-setup-routes.d.ts +12 -0
- package/dist/src/web-ui/local-runtime/model-setup-routes.js +50 -0
- package/dist/src/web-ui/local-runtime/model-setup-service.d.ts +30 -0
- package/dist/src/web-ui/local-runtime/model-setup-service.js +93 -0
- package/dist/src/web-ui/local-runtime/model-setup-validation.d.ts +5 -0
- package/dist/src/web-ui/local-runtime/model-setup-validation.js +33 -0
- package/dist/src/web-ui/local-runtime/plugin-management-routes.d.ts +14 -0
- package/dist/src/web-ui/local-runtime/plugin-management-routes.js +50 -0
- package/dist/src/web-ui/local-runtime/project-routes.d.ts +17 -0
- package/dist/src/web-ui/local-runtime/project-routes.js +93 -0
- package/dist/src/web-ui/local-runtime/provider-credential-identity.d.ts +3 -0
- package/dist/src/web-ui/local-runtime/provider-credential-identity.js +18 -0
- package/dist/src/web-ui/local-runtime/request-execution.d.ts +1 -0
- package/dist/src/web-ui/local-runtime/request-execution.js +8 -0
- package/dist/src/web-ui/local-runtime/runtime-availability.js +36 -7
- package/dist/src/web-ui/local-runtime/runtime-setup-completion.d.ts +13 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-completion.js +28 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-connection-edit.d.ts +13 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-connection-edit.js +110 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-credential-completion.d.ts +4 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-credential-completion.js +21 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-credentials.d.ts +14 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-credentials.js +148 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-draft-recovery.d.ts +7 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-draft-recovery.js +18 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-draft.d.ts +21 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-draft.js +105 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-embedding-invalidation.d.ts +8 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-embedding-invalidation.js +40 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-environment-assignment.d.ts +1 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-environment-assignment.js +27 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-input.d.ts +19 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-input.js +82 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-model-file.d.ts +7 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-model-file.js +35 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-provider-ownership-recovery.d.ts +4 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-provider-ownership-recovery.js +23 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-provider-retention.d.ts +11 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-provider-retention.js +31 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-provider.d.ts +11 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-provider.js +60 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-receipt-file.d.ts +8 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-receipt-file.js +77 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-routes.d.ts +35 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-routes.js +56 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-scaffold.d.ts +17 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-scaffold.js +229 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-service.d.ts +65 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-service.js +195 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-validation.d.ts +8 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-validation.js +35 -0
- package/dist/src/web-ui/local-runtime/saved-model-catalog.d.ts +3 -0
- package/dist/src/web-ui/local-runtime/saved-model-catalog.js +20 -0
- package/dist/src/web-ui/local-runtime/setup-embedding-input.d.ts +8 -0
- package/dist/src/web-ui/local-runtime/setup-embedding-input.js +71 -0
- package/dist/src/web-ui/local-runtime/setup-embedding-provider.d.ts +13 -0
- package/dist/src/web-ui/local-runtime/setup-embedding-provider.js +114 -0
- package/dist/src/web-ui/local-runtime/setup-embedding-routes.d.ts +12 -0
- package/dist/src/web-ui/local-runtime/setup-embedding-routes.js +53 -0
- package/dist/src/web-ui/local-runtime/setup-embedding-service.d.ts +32 -0
- package/dist/src/web-ui/local-runtime/setup-embedding-service.js +59 -0
- package/dist/src/web-ui/local-runtime-backend.d.ts +1 -0
- package/dist/src/web-ui/local-runtime-backend.js +3 -0
- package/dist/src/web-ui/plugin-capability-selection.d.ts +14 -0
- package/dist/src/web-ui/plugin-capability-selection.js +48 -0
- package/dist/src/web-ui/plugin-management-catalog.d.ts +26 -0
- package/dist/src/web-ui/plugin-management-catalog.js +56 -0
- package/dist/src/web-ui/plugin-management-selection.d.ts +16 -0
- package/dist/src/web-ui/plugin-management-selection.js +71 -0
- package/dist/src/web-ui/plugin-management-service.d.ts +29 -0
- package/dist/src/web-ui/plugin-management-service.js +150 -0
- package/dist/src/web-ui/request-authority.d.ts +8 -0
- package/dist/src/web-ui/request-authority.js +129 -0
- package/dist/src/web-ui/runtime-setup-gateway-address.d.ts +3 -0
- package/dist/src/web-ui/runtime-setup-gateway-address.js +26 -0
- package/dist/src/web-ui/runtime-setup-gateway.d.ts +29 -0
- package/dist/src/web-ui/runtime-setup-gateway.js +177 -0
- package/dist/src/web-ui/runtime-setup-shutdown.d.ts +2 -0
- package/dist/src/web-ui/runtime-setup-shutdown.js +20 -0
- package/dist/src/web-ui/server.d.ts +7 -14
- package/dist/src/web-ui/server.js +53 -63
- package/dist/src/web-ui/session-read-state/service.d.ts +12 -2
- package/dist/src/web-ui/system-host-service.d.ts +19 -0
- package/dist/src/web-ui/system-host-service.js +159 -0
- package/dist/src/web-ui/system-host-setup/companion-bundle.d.ts +2 -0
- package/dist/src/web-ui/system-host-setup/companion-bundle.js +12 -0
- package/dist/src/web-ui/system-host-setup/companion-macos.d.ts +2 -0
- package/dist/src/web-ui/system-host-setup/companion-macos.js +74 -0
- package/dist/src/web-ui/system-host-setup/companion-windows.d.ts +2 -0
- package/dist/src/web-ui/system-host-setup/companion-windows.js +105 -0
- package/dist/src/web-ui/system-host-setup/installer-contract.d.ts +18 -0
- package/dist/src/web-ui/system-host-setup/installer-contract.js +51 -0
- package/dist/src/web-ui/system-host-setup/installers.d.ts +6 -0
- package/dist/src/web-ui/system-host-setup/installers.js +30 -0
- package/dist/src/web-ui/system-host-setup/native-authorization.d.ts +3 -0
- package/dist/src/web-ui/system-host-setup/native-authorization.js +11 -0
- package/dist/src/web-ui/system-host-setup/node-distribution.d.ts +19 -0
- package/dist/src/web-ui/system-host-setup/node-distribution.js +9 -0
- package/dist/src/web-ui/system-host-setup/readiness.d.ts +18 -0
- package/dist/src/web-ui/system-host-setup/readiness.js +70 -0
- package/dist/src/web-ui/system-host-setup/routes.d.ts +20 -0
- package/dist/src/web-ui/system-host-setup/routes.js +121 -0
- package/dist/src/web-ui/system-host-setup/windows-script-wrapper.d.ts +2 -0
- package/dist/src/web-ui/system-host-setup/windows-script-wrapper.js +17 -0
- package/dist/src/web-ui/system-host-setup/wsl-interop-config.d.ts +3 -0
- package/dist/src/web-ui/system-host-setup/wsl-interop-config.js +67 -0
- package/dist/src/web-ui/system-host-setup/wsl-interop-windows.d.ts +1 -0
- package/dist/src/web-ui/system-host-setup/wsl-interop-windows.js +49 -0
- package/dist/src/web-ui/system-host-upgrade-authority.d.ts +5 -0
- package/dist/src/web-ui/system-host-upgrade-authority.js +13 -0
- package/docs/architecture.md +6 -1
- package/docs/installation.md +53 -17
- package/docs/known-limitations.md +14 -0
- package/docs/plugins.md +124 -19
- package/docs/projects-and-full-plus.md +218 -0
- package/docs/runtime-invariant-coverage.md +6 -3
- package/docs/runtime-prompt-policy-contracts.md +37 -5
- package/docs/runtime-public-contracts.md +17 -0
- package/package.json +5 -2
- package/plugins/exec/plugin.json +30 -9
- package/plugins/exec/skills/exec_process_skill/SKILL.md +1 -0
- package/plugins/exec/skills/exec_skill/SKILL.md +9 -10
- package/plugins/exec/source/handlers.ts +4 -38
- package/plugins/exec/source/paths.ts +53 -49
- package/plugins/exec/source/types.ts +6 -4
- package/plugins/exec/source/validation.ts +33 -198
- package/plugins/exec/src/index.cjs +62 -204
- package/plugins/filesystem/plugin.json +1 -1
- package/plugins/filesystem/skills/dev_view_skill/SKILL.md +7 -0
- package/plugins/filesystem/source/atomic-write.ts +6 -3
- package/plugins/filesystem/source/dev-view.ts +2 -1
- package/plugins/filesystem/source/directory-authority-write.ts +4 -0
- package/plugins/filesystem/source/edit-file.ts +3 -0
- package/plugins/filesystem/source/file-output-presentation.ts +42 -0
- package/plugins/filesystem/source/mutation-parent.ts +18 -9
- package/plugins/filesystem/source/view-locator.ts +141 -0
- package/plugins/filesystem/source/view-window.ts +12 -25
- package/plugins/filesystem/source/write-file.ts +8 -0
- package/plugins/filesystem/src/index.cjs +162 -35
- package/plugins/system/plugin.json +374 -0
- package/plugins/system/skills/system_actions/SKILL.md +31 -0
- package/plugins/system/source/application-catalog.ts +237 -0
- package/plugins/system/source/application-launch.ts +113 -0
- package/plugins/system/source/application-observation.ts +78 -0
- package/plugins/system/source/commands.ts +106 -0
- package/plugins/system/source/companion/autostart.ts +185 -0
- package/plugins/system/source/companion/broker-client.ts +183 -0
- package/plugins/system/source/companion/broker-location.ts +89 -0
- package/plugins/system/source/companion/broker-server.ts +169 -0
- package/plugins/system/source/companion/connection.ts +211 -0
- package/plugins/system/source/companion/liveness.ts +23 -0
- package/plugins/system/source/companion/native-address.ts +55 -0
- package/plugins/system/source/companion/native-identity.ts +26 -0
- package/plugins/system/source/companion/native-messages.ts +100 -0
- package/plugins/system/source/companion/native-session.ts +268 -0
- package/plugins/system/source/companion/native-state.ts +135 -0
- package/plugins/system/source/companion/native-supervisor.ts +98 -0
- package/plugins/system/source/companion/pairing-store.ts +110 -0
- package/plugins/system/source/companion/private-store.ts +58 -0
- package/plugins/system/source/companion/process-owner-identity.ts +190 -0
- package/plugins/system/source/companion/protocol.ts +108 -0
- package/plugins/system/source/contracts.ts +44 -0
- package/plugins/system/source/elevation.ts +88 -0
- package/plugins/system/source/handlers.ts +120 -0
- package/plugins/system/source/host-dispatch.ts +106 -0
- package/plugins/system/source/host-evidence.ts +72 -0
- package/plugins/system/source/host-observation.ts +66 -0
- package/plugins/system/source/index.ts +8 -0
- package/plugins/system/source/process-result.ts +111 -0
- package/plugins/system/source/process-runner.ts +104 -0
- package/plugins/system/source/request-system-modules.ts +117 -0
- package/plugins/system/source/request-target-snapshot.ts +163 -0
- package/plugins/system/source/target-observation.ts +43 -0
- package/plugins/system/source/targets.ts +147 -0
- package/plugins/system/src/index.cjs +1730 -0
- package/src/runtime/README.md +36 -8
- package/src/runtime/local-host/README.md +7 -0
- package/dist/src/runtime/steps/planner-decision/capability-catalog-context.d.ts +0 -14
- package/dist/src/runtime/steps/planner-decision/capability-catalog-context.js +0 -87
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { failureResult, successResult, } from "../../../src/plugin-sdk/index.js";
|
|
2
|
+
const STREAM_EXCERPT_CHARS = 2_000;
|
|
3
|
+
const IDENTITY_EXCERPT_CHARS = 512;
|
|
4
|
+
const LEGACY_EVIDENCE_LABELS = {
|
|
5
|
+
command_process_completion: "system command process completion",
|
|
6
|
+
launch_request_dispatch: "application launch request dispatch",
|
|
7
|
+
};
|
|
8
|
+
export function systemProcessResult(target, result, evidenceScope, application) {
|
|
9
|
+
const stdoutOmittedChars = Math.max(0, result.stdout.length - STREAM_EXCERPT_CHARS);
|
|
10
|
+
const stderrOmittedChars = Math.max(0, result.stderr.length - STREAM_EXCERPT_CHARS);
|
|
11
|
+
const data = {
|
|
12
|
+
evidenceScope,
|
|
13
|
+
evidence: LEGACY_EVIDENCE_LABELS[evidenceScope],
|
|
14
|
+
independentOutcomeCheck: "not_performed",
|
|
15
|
+
target: target.id,
|
|
16
|
+
transport: target.transport,
|
|
17
|
+
processStatus: result.status,
|
|
18
|
+
spawnedProcess: result.spawnedProcess ?? null,
|
|
19
|
+
...(application ? { catalogApplication: application } : {}),
|
|
20
|
+
outputTruncated: result.outputTruncated,
|
|
21
|
+
summaryOmittedChars: {
|
|
22
|
+
stdout: stdoutOmittedChars,
|
|
23
|
+
stderr: stderrOmittedChars,
|
|
24
|
+
},
|
|
25
|
+
observationMeta: {
|
|
26
|
+
kind: "volatile_external",
|
|
27
|
+
carryPolicy: "never",
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
const output = [
|
|
31
|
+
`Adapter evidence: ${evidenceScope}. Independent outcome check: not performed. Completion/dispatch alone does not verify the requested application, window or system effect; evaluate command evidence separately.`,
|
|
32
|
+
`Target: ${target.id} (${target.transport})`,
|
|
33
|
+
`Process status: ${result.status}; exit code: ${result.exitCode ?? "unavailable"}`,
|
|
34
|
+
result.spawnedProcess
|
|
35
|
+
? `Spawned helper: ${identityExcerpt(result.spawnedProcess.executable)}; PID ${result.spawnedProcess.pid} in runtime OS namespace. Identity comes from spawn arguments, not application image inspection.`
|
|
36
|
+
: "Spawned helper identity: not recorded.",
|
|
37
|
+
...(application
|
|
38
|
+
? [
|
|
39
|
+
`Revalidated catalog identity: ${identityExcerpt(application.id)} (identity only; no application process/window check).`,
|
|
40
|
+
]
|
|
41
|
+
: []),
|
|
42
|
+
"STDOUT excerpt:",
|
|
43
|
+
result.stdout.slice(0, STREAM_EXCERPT_CHARS) || "(empty)",
|
|
44
|
+
"STDERR excerpt:",
|
|
45
|
+
result.stderr.slice(0, STREAM_EXCERPT_CHARS) || "(empty)",
|
|
46
|
+
`Summary omitted characters: stdout=${stdoutOmittedChars}, stderr=${stderrOmittedChars}. Raw stream capture truncated: ${result.outputTruncated}.`,
|
|
47
|
+
].join("\n");
|
|
48
|
+
if (hasSuccessfulSystemObservation(result)) {
|
|
49
|
+
return successResult({
|
|
50
|
+
output,
|
|
51
|
+
stdout: result.stdout,
|
|
52
|
+
stderr: result.stderr,
|
|
53
|
+
exitCode: 0,
|
|
54
|
+
data,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
const errorCode = result.status === "completed"
|
|
58
|
+
? "system_command_failed"
|
|
59
|
+
: `system_${result.status}`;
|
|
60
|
+
return failureResult({
|
|
61
|
+
errorCode,
|
|
62
|
+
message: hasUncertainDescendantState(result)
|
|
63
|
+
? "System command observation stopped. External or detached descendants may remain; inspect the target before retrying."
|
|
64
|
+
: "The target did not report successful command completion.",
|
|
65
|
+
output,
|
|
66
|
+
stdout: result.stdout,
|
|
67
|
+
stderr: result.stderr,
|
|
68
|
+
...(result.exitCode !== null ? { exitCode: result.exitCode } : {}),
|
|
69
|
+
data,
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
function hasSuccessfulSystemObservation(result) {
|
|
73
|
+
if (result.status !== "completed")
|
|
74
|
+
return false;
|
|
75
|
+
return result.exitCode === 0;
|
|
76
|
+
}
|
|
77
|
+
function hasUncertainDescendantState(result) {
|
|
78
|
+
if (result.status === "timeout")
|
|
79
|
+
return true;
|
|
80
|
+
return result.status === "aborted";
|
|
81
|
+
}
|
|
82
|
+
function identityExcerpt(identity) {
|
|
83
|
+
if (identity.length <= IDENTITY_EXCERPT_CHARS)
|
|
84
|
+
return identity;
|
|
85
|
+
return `${identity.slice(0, IDENTITY_EXCERPT_CHARS)} [${identity.length - IDENTITY_EXCERPT_CHARS} characters omitted; full identity in result data]`;
|
|
86
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
2
|
+
const STREAM_MAX_CHARS = 16_000;
|
|
3
|
+
/** Bounded process observation; exit zero proves command completion, not effects. */
|
|
4
|
+
export function runSystemProcess(input) {
|
|
5
|
+
if (input.abortSignal?.aborted)
|
|
6
|
+
return Promise.resolve({
|
|
7
|
+
exitCode: null,
|
|
8
|
+
stdout: "",
|
|
9
|
+
stderr: "",
|
|
10
|
+
status: "aborted",
|
|
11
|
+
outputTruncated: false,
|
|
12
|
+
});
|
|
13
|
+
return new Promise((resolve) => {
|
|
14
|
+
const streamMaxChars = Math.min(input.outputMaxChars ?? STREAM_MAX_CHARS, 512_000);
|
|
15
|
+
let stdout = "";
|
|
16
|
+
let stderr = "";
|
|
17
|
+
let truncated = false;
|
|
18
|
+
let settled = false;
|
|
19
|
+
let status = "completed";
|
|
20
|
+
let spawnedProcess;
|
|
21
|
+
let timeout;
|
|
22
|
+
let stopGrace;
|
|
23
|
+
const finish = (exitCode) => {
|
|
24
|
+
if (settled)
|
|
25
|
+
return;
|
|
26
|
+
settled = true;
|
|
27
|
+
if (timeout)
|
|
28
|
+
clearTimeout(timeout);
|
|
29
|
+
if (stopGrace)
|
|
30
|
+
clearTimeout(stopGrace);
|
|
31
|
+
input.abortSignal?.removeEventListener("abort", abort);
|
|
32
|
+
resolve(Object.freeze({
|
|
33
|
+
exitCode,
|
|
34
|
+
stdout,
|
|
35
|
+
stderr,
|
|
36
|
+
status,
|
|
37
|
+
outputTruncated: truncated,
|
|
38
|
+
...(spawnedProcess ? { spawnedProcess } : {}),
|
|
39
|
+
}));
|
|
40
|
+
};
|
|
41
|
+
const child = spawn(input.executable, [...input.args], {
|
|
42
|
+
...(input.cwd ? { cwd: input.cwd } : {}),
|
|
43
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
44
|
+
windowsHide: true,
|
|
45
|
+
detached: process.platform !== "win32",
|
|
46
|
+
});
|
|
47
|
+
child.once("spawn", () => {
|
|
48
|
+
if (child.pid === undefined)
|
|
49
|
+
return;
|
|
50
|
+
spawnedProcess = {
|
|
51
|
+
pid: child.pid,
|
|
52
|
+
pidNamespace: "runtime_os",
|
|
53
|
+
executable: input.executable,
|
|
54
|
+
identitySource: "spawn_arguments",
|
|
55
|
+
};
|
|
56
|
+
});
|
|
57
|
+
const stop = (reason) => {
|
|
58
|
+
if (settled)
|
|
59
|
+
return;
|
|
60
|
+
status = reason;
|
|
61
|
+
const pid = child.pid;
|
|
62
|
+
if (pid && process.platform !== "win32") {
|
|
63
|
+
try {
|
|
64
|
+
process.kill(-pid, "SIGKILL");
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
child.kill("SIGKILL");
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
child.kill("SIGKILL");
|
|
72
|
+
}
|
|
73
|
+
// Native/external descendants can outlive a stopped transport; never claim
|
|
74
|
+
// their termination from the shell observation alone.
|
|
75
|
+
stopGrace = setTimeout(() => finish(null), 1_000);
|
|
76
|
+
stopGrace.unref();
|
|
77
|
+
};
|
|
78
|
+
const abort = () => stop("aborted");
|
|
79
|
+
child.stdout.setEncoding("utf8");
|
|
80
|
+
child.stderr.setEncoding("utf8");
|
|
81
|
+
child.stdout.on("data", (chunk) => {
|
|
82
|
+
const remaining = streamMaxChars - stdout.length;
|
|
83
|
+
truncated ||= chunk.length > remaining;
|
|
84
|
+
stdout += chunk.slice(0, remaining);
|
|
85
|
+
});
|
|
86
|
+
child.stderr.on("data", (chunk) => {
|
|
87
|
+
const remaining = streamMaxChars - stderr.length;
|
|
88
|
+
truncated ||= chunk.length > remaining;
|
|
89
|
+
stderr += chunk.slice(0, remaining);
|
|
90
|
+
});
|
|
91
|
+
child.once("error", (error) => {
|
|
92
|
+
status = "spawn_failed";
|
|
93
|
+
stderr = error.message.slice(0, STREAM_MAX_CHARS);
|
|
94
|
+
finish(null);
|
|
95
|
+
});
|
|
96
|
+
child.once("close", (code) => finish(code));
|
|
97
|
+
timeout = setTimeout(() => stop("timeout"), input.timeoutMs ?? 30_000);
|
|
98
|
+
timeout.unref();
|
|
99
|
+
input.abortSignal?.addEventListener("abort", abort, { once: true });
|
|
100
|
+
if (input.abortSignal?.aborted)
|
|
101
|
+
abort();
|
|
102
|
+
});
|
|
103
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { SystemProcessRunner, SystemTarget, SystemTargetId } from "./contracts.js";
|
|
2
|
+
import { observeSystemHost } from "./host-observation.js";
|
|
3
|
+
type TargetObservation = Readonly<(SystemTarget & {
|
|
4
|
+
available: true;
|
|
5
|
+
commandExecutionAvailable: true;
|
|
6
|
+
guiSessionStatus: "not_checked";
|
|
7
|
+
}) | {
|
|
8
|
+
id: SystemTargetId;
|
|
9
|
+
available: false;
|
|
10
|
+
reason: string;
|
|
11
|
+
}>;
|
|
12
|
+
export type SystemTargetObservation = Readonly<{
|
|
13
|
+
host: ReturnType<typeof observeSystemHost>;
|
|
14
|
+
availabilityScope: "command_execution_only";
|
|
15
|
+
targets: readonly TargetObservation[];
|
|
16
|
+
}>;
|
|
17
|
+
export declare function observeSystemTargets(run?: SystemProcessRunner): Promise<SystemTargetObservation>;
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { observeSystemHost } from "./host-observation.js";
|
|
2
|
+
import { runSystemProcess } from "./process-runner.js";
|
|
3
|
+
import { resolveSystemTarget } from "./targets.js";
|
|
4
|
+
export async function observeSystemTargets(run = runSystemProcess) {
|
|
5
|
+
const observations = [];
|
|
6
|
+
for (const id of ["linux", "macos", "windows"]) {
|
|
7
|
+
try {
|
|
8
|
+
const target = await resolveSystemTarget(id, run);
|
|
9
|
+
observations.push({
|
|
10
|
+
...target,
|
|
11
|
+
available: true,
|
|
12
|
+
commandExecutionAvailable: true,
|
|
13
|
+
guiSessionStatus: "not_checked",
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
catch (error) {
|
|
17
|
+
observations.push({
|
|
18
|
+
id,
|
|
19
|
+
available: false,
|
|
20
|
+
reason: error instanceof Error ? error.message : String(error),
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return {
|
|
25
|
+
host: observeSystemHost(),
|
|
26
|
+
availabilityScope: "command_execution_only",
|
|
27
|
+
targets: observations,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type SystemProcessRunner, type SystemTarget, type SystemTargetId } from "./contracts.js";
|
|
2
|
+
export declare function powershellArguments(script: string): string[];
|
|
3
|
+
export declare function powershellLiteral(value: string): string;
|
|
4
|
+
export declare function shellLiteral(value: string): string;
|
|
5
|
+
export declare function windowsSystemCommandScript(command: string, cwd: string): string;
|
|
6
|
+
export declare function findExecutable(name: string, additional?: readonly string[]): Promise<string | undefined>;
|
|
7
|
+
export declare function resolveSystemTarget(id: SystemTargetId, run?: SystemProcessRunner): Promise<SystemTarget>;
|
|
8
|
+
export declare function readSystemTargetId(value: unknown): SystemTargetId;
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { constants } from "node:fs";
|
|
2
|
+
import { access } from "node:fs/promises";
|
|
3
|
+
import { delimiter, join } from "node:path";
|
|
4
|
+
import { SystemOperationError, } from "./contracts.js";
|
|
5
|
+
import { runSystemProcess } from "./process-runner.js";
|
|
6
|
+
import { isWslHostRuntime, readSystemHostFacts } from "./host-observation.js";
|
|
7
|
+
export function powershellArguments(script) {
|
|
8
|
+
const preamble = "$ErrorActionPreference='Stop';[Console]::OutputEncoding=[Text.UTF8Encoding]::new();$global:LASTEXITCODE=0;";
|
|
9
|
+
return [
|
|
10
|
+
"-NoLogo",
|
|
11
|
+
"-NoProfile",
|
|
12
|
+
"-NonInteractive",
|
|
13
|
+
"-EncodedCommand",
|
|
14
|
+
Buffer.from(preamble + script, "utf16le").toString("base64"),
|
|
15
|
+
];
|
|
16
|
+
}
|
|
17
|
+
export function powershellLiteral(value) {
|
|
18
|
+
return "'" + value.replaceAll("'", "''") + "'";
|
|
19
|
+
}
|
|
20
|
+
export function shellLiteral(value) {
|
|
21
|
+
return "'" + value.replaceAll("'", "'\"'\"'") + "'";
|
|
22
|
+
}
|
|
23
|
+
export function windowsSystemCommandScript(command, cwd) {
|
|
24
|
+
return `Set-Location -LiteralPath ${powershellLiteral(cwd)};${command}\nif ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }`;
|
|
25
|
+
}
|
|
26
|
+
export async function findExecutable(name, additional = []) {
|
|
27
|
+
const candidates = [
|
|
28
|
+
...additional,
|
|
29
|
+
...(process.env.PATH ?? "")
|
|
30
|
+
.split(delimiter)
|
|
31
|
+
.filter(Boolean)
|
|
32
|
+
.map((directory) => join(directory, name)),
|
|
33
|
+
];
|
|
34
|
+
for (const candidate of candidates) {
|
|
35
|
+
try {
|
|
36
|
+
await access(candidate, constants.X_OK);
|
|
37
|
+
return candidate;
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
/* next observed candidate */
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
export async function resolveSystemTarget(id, run = runSystemProcess) {
|
|
46
|
+
if (isNativeUnixTarget(id))
|
|
47
|
+
return resolveNativeUnixTarget(id);
|
|
48
|
+
if (id !== "windows")
|
|
49
|
+
throw new SystemOperationError("system_target_unavailable", `The runtime is not executing on ${id}.`);
|
|
50
|
+
const nativeWindows = process.platform === "win32";
|
|
51
|
+
const wslWindows = isWslHostRuntime(readSystemHostFacts());
|
|
52
|
+
if (!hasWindowsExecutionTransport(nativeWindows, wslWindows))
|
|
53
|
+
throw new SystemOperationError("system_target_unavailable", "No Windows execution transport is available on this host.");
|
|
54
|
+
const canonicalShell = nativeWindows
|
|
55
|
+
? join(process.env.SystemRoot ?? "C:\\Windows", "System32", "WindowsPowerShell", "v1.0", "powershell.exe")
|
|
56
|
+
: "/mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe";
|
|
57
|
+
const shell = await findExecutable("powershell.exe", [canonicalShell]);
|
|
58
|
+
if (!shell)
|
|
59
|
+
throw new SystemOperationError("system_target_unavailable", "A native Windows PowerShell executable was not found; Windows interop is unavailable.");
|
|
60
|
+
const probe = await run({
|
|
61
|
+
executable: shell,
|
|
62
|
+
args: powershellArguments("[Environment]::OSVersion.Platform.ToString()"),
|
|
63
|
+
timeoutMs: 5_000,
|
|
64
|
+
});
|
|
65
|
+
if (!hasObservedWindowsPlatform(probe))
|
|
66
|
+
throw new SystemOperationError("system_target_unavailable", "Windows PowerShell could not execute. WSL executable interop may be disabled; enable a real Windows execution transport on the host.");
|
|
67
|
+
return { id, transport: nativeWindows ? "native" : "wsl_interop", shell };
|
|
68
|
+
}
|
|
69
|
+
export function readSystemTargetId(value) {
|
|
70
|
+
if (value === "linux" || value === "macos" || value === "windows")
|
|
71
|
+
return value;
|
|
72
|
+
throw new SystemOperationError("system_target_required", "Select an explicit target returned by system_targets: linux, macos, or windows.");
|
|
73
|
+
}
|
|
74
|
+
function isNativeUnixTarget(id) {
|
|
75
|
+
if (id === "linux")
|
|
76
|
+
return process.platform === "linux";
|
|
77
|
+
if (id === "macos")
|
|
78
|
+
return process.platform === "darwin";
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
async function resolveNativeUnixTarget(id) {
|
|
82
|
+
try {
|
|
83
|
+
await access("/bin/bash", constants.X_OK);
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
throw new SystemOperationError("system_target_unavailable", "The native target has no executable /bin/bash.");
|
|
87
|
+
}
|
|
88
|
+
return { id, transport: "native", shell: "/bin/bash" };
|
|
89
|
+
}
|
|
90
|
+
function hasWindowsExecutionTransport(nativeWindows, wslWindows) {
|
|
91
|
+
if (nativeWindows)
|
|
92
|
+
return true;
|
|
93
|
+
return wslWindows;
|
|
94
|
+
}
|
|
95
|
+
function hasObservedWindowsPlatform(probe) {
|
|
96
|
+
if (probe.status !== "completed")
|
|
97
|
+
return false;
|
|
98
|
+
if (probe.exitCode !== 0)
|
|
99
|
+
return false;
|
|
100
|
+
return probe.stdout.trim() === "Win32NT";
|
|
101
|
+
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { mergeRuntimeModelAddition, parseRuntimeModelProfileId, } from "./runtime-model-addition.js";
|
|
1
2
|
import { constants } from "node:fs";
|
|
2
3
|
import { access, mkdir } from "node:fs/promises";
|
|
3
4
|
import { dirname, join, resolve } from "node:path";
|
|
@@ -15,13 +16,6 @@ function requireValue(argv, index, flag) {
|
|
|
15
16
|
}
|
|
16
17
|
return value;
|
|
17
18
|
}
|
|
18
|
-
function parseProfile(value) {
|
|
19
|
-
const profile = value.trim();
|
|
20
|
-
if (!/^[A-Za-z0-9][A-Za-z0-9._-]*$/u.test(profile)) {
|
|
21
|
-
throw new Error("--profile must start with a letter or number and use only letters, numbers, dot, underscore, or dash");
|
|
22
|
-
}
|
|
23
|
-
return profile;
|
|
24
|
-
}
|
|
25
19
|
function parseArgs(argv, commandMode) {
|
|
26
20
|
let rootDir = process.cwd();
|
|
27
21
|
let provider;
|
|
@@ -56,12 +50,12 @@ function parseArgs(argv, commandMode) {
|
|
|
56
50
|
continue;
|
|
57
51
|
}
|
|
58
52
|
if (arg === "--profile") {
|
|
59
|
-
profile =
|
|
53
|
+
profile = parseRuntimeModelProfileId(requireValue(argv, index, "--profile"));
|
|
60
54
|
index += 1;
|
|
61
55
|
continue;
|
|
62
56
|
}
|
|
63
57
|
if (arg.startsWith("--profile=")) {
|
|
64
|
-
profile =
|
|
58
|
+
profile = parseRuntimeModelProfileId(arg.slice("--profile=".length));
|
|
65
59
|
continue;
|
|
66
60
|
}
|
|
67
61
|
if (arg === "--base-url") {
|
|
@@ -135,49 +129,6 @@ function readConfigMap(parent, key) {
|
|
|
135
129
|
throw new Error(`${key} must be a JSON object`);
|
|
136
130
|
return value;
|
|
137
131
|
}
|
|
138
|
-
function mergeRuntimeConfig(runtimeConfig, options) {
|
|
139
|
-
const models = readConfigMap(runtimeConfig, "models");
|
|
140
|
-
const providers = readConfigMap(models, "providers");
|
|
141
|
-
const profiles = readConfigMap(models, "profiles");
|
|
142
|
-
if (profiles[options.profile] !== undefined) {
|
|
143
|
-
throw new Error(`model profile already exists: ${options.profile}; no files were changed`);
|
|
144
|
-
}
|
|
145
|
-
const existingProvider = providers[options.provider];
|
|
146
|
-
if (existingProvider !== undefined) {
|
|
147
|
-
if (!isRecord(existingProvider) ||
|
|
148
|
-
existingProvider.type !== options.provider) {
|
|
149
|
-
throw new Error(`provider id is already configured with a different adapter: ${options.provider}; no files were changed`);
|
|
150
|
-
}
|
|
151
|
-
if (options.provider === "ollama" &&
|
|
152
|
-
options.baseUrl &&
|
|
153
|
-
existingProvider.baseUrl !== options.baseUrl) {
|
|
154
|
-
throw new Error(`provider ${options.provider} already uses a different base URL; no files were changed`);
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
return {
|
|
158
|
-
providerAdded: existingProvider === undefined,
|
|
159
|
-
config: {
|
|
160
|
-
...runtimeConfig,
|
|
161
|
-
models: {
|
|
162
|
-
...models,
|
|
163
|
-
providers: {
|
|
164
|
-
...providers,
|
|
165
|
-
...(existingProvider === undefined
|
|
166
|
-
? {
|
|
167
|
-
[options.provider]: buildProviderConfig(options.provider, options.baseUrl),
|
|
168
|
-
}
|
|
169
|
-
: {}),
|
|
170
|
-
},
|
|
171
|
-
profiles: {
|
|
172
|
-
...profiles,
|
|
173
|
-
[options.profile]: {
|
|
174
|
-
configRef: `./models/${options.profile}.config.json`,
|
|
175
|
-
},
|
|
176
|
-
},
|
|
177
|
-
},
|
|
178
|
-
},
|
|
179
|
-
};
|
|
180
|
-
}
|
|
181
132
|
function selectDefaultProfile(runnerConfig, profile) {
|
|
182
133
|
const models = readConfigMap(runnerConfig, "models");
|
|
183
134
|
const defaults = readConfigMap(models, "defaults");
|
|
@@ -211,7 +162,13 @@ export async function runAddRuntimeModel(argv = process.argv.slice(2), runOption
|
|
|
211
162
|
if (options.setDefault) {
|
|
212
163
|
parseRequestRunnerConfig(runnerConfig, runnerConfigPath);
|
|
213
164
|
}
|
|
214
|
-
const merged =
|
|
165
|
+
const merged = mergeRuntimeModelAddition(runtimeConfig, {
|
|
166
|
+
profileId: options.profile,
|
|
167
|
+
providerId: options.provider,
|
|
168
|
+
provider: buildProviderConfig(options.provider, options.baseUrl),
|
|
169
|
+
profile: { configRef: `./models/${options.profile}.config.json` },
|
|
170
|
+
baseUrl: options.baseUrl,
|
|
171
|
+
});
|
|
215
172
|
const nextRunnerConfig = options.setDefault
|
|
216
173
|
? selectDefaultProfile(runnerConfig, options.profile)
|
|
217
174
|
: runnerConfig;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type JsonObject } from "./runtime-setup-files.js";
|
|
2
|
+
export declare function parseRuntimeModelProfileId(value: string): string;
|
|
3
|
+
/** Shared additive merge for CLI file references and Web inline model profiles. */
|
|
4
|
+
export declare function mergeRuntimeModelAddition(runtimeConfig: JsonObject, input: {
|
|
5
|
+
profileId: string;
|
|
6
|
+
providerId: string;
|
|
7
|
+
provider: JsonObject;
|
|
8
|
+
profile: JsonObject;
|
|
9
|
+
baseUrl?: string;
|
|
10
|
+
}): Readonly<{
|
|
11
|
+
config: JsonObject;
|
|
12
|
+
providerAdded: boolean;
|
|
13
|
+
}>;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { isRecord } from "./runtime-setup-files.js";
|
|
2
|
+
export function parseRuntimeModelProfileId(value) {
|
|
3
|
+
const profile = value.trim();
|
|
4
|
+
if (!/^[A-Za-z0-9][A-Za-z0-9._-]*$/u.test(profile)) {
|
|
5
|
+
throw new Error("--profile must start with a letter or number and use only letters, numbers, dot, underscore, or dash");
|
|
6
|
+
}
|
|
7
|
+
return profile;
|
|
8
|
+
}
|
|
9
|
+
function readConfigMap(parent, key) {
|
|
10
|
+
const value = parent[key];
|
|
11
|
+
if (value === undefined)
|
|
12
|
+
return {};
|
|
13
|
+
if (!isRecord(value))
|
|
14
|
+
throw new Error(`${key} must be a JSON object`);
|
|
15
|
+
return value;
|
|
16
|
+
}
|
|
17
|
+
/** Shared additive merge for CLI file references and Web inline model profiles. */
|
|
18
|
+
export function mergeRuntimeModelAddition(runtimeConfig, input) {
|
|
19
|
+
const models = readConfigMap(runtimeConfig, "models");
|
|
20
|
+
const providers = readConfigMap(models, "providers");
|
|
21
|
+
const profiles = readConfigMap(models, "profiles");
|
|
22
|
+
if (profiles[input.profileId] !== undefined) {
|
|
23
|
+
throw new Error(`model profile already exists: ${input.profileId}; no files were changed`);
|
|
24
|
+
}
|
|
25
|
+
const existingProvider = providers[input.providerId];
|
|
26
|
+
if (existingProvider !== undefined) {
|
|
27
|
+
if (!isRecord(existingProvider) ||
|
|
28
|
+
existingProvider.type !== input.provider.type) {
|
|
29
|
+
throw new Error(`provider id is already configured with a different adapter: ${input.providerId}; no files were changed`);
|
|
30
|
+
}
|
|
31
|
+
if (input.provider.type === "ollama" &&
|
|
32
|
+
input.baseUrl &&
|
|
33
|
+
existingProvider.baseUrl !== input.baseUrl) {
|
|
34
|
+
throw new Error(`provider ${input.providerId} already uses a different base URL; no files were changed`);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return {
|
|
38
|
+
providerAdded: existingProvider === undefined,
|
|
39
|
+
config: {
|
|
40
|
+
...runtimeConfig,
|
|
41
|
+
models: {
|
|
42
|
+
...models,
|
|
43
|
+
providers: {
|
|
44
|
+
...providers,
|
|
45
|
+
...(existingProvider === undefined
|
|
46
|
+
? { [input.providerId]: input.provider }
|
|
47
|
+
: {}),
|
|
48
|
+
},
|
|
49
|
+
profiles: { ...profiles, [input.profileId]: input.profile },
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
}
|
|
@@ -10,4 +10,6 @@ export declare function writeJsonObject(path: string, value: JsonObject, options
|
|
|
10
10
|
exclusive?: boolean;
|
|
11
11
|
}>): Promise<void>;
|
|
12
12
|
export declare function buildProviderConfig(provider: Provider, baseUrl?: string): JsonObject;
|
|
13
|
-
export declare function buildModelConfig(template: JsonObject, provider: Provider, model: string): JsonObject;
|
|
13
|
+
export declare function buildModelConfig(template: JsonObject, provider: Provider, model: string, contextWindowTokens?: number): JsonObject;
|
|
14
|
+
export declare function parseContextWindowTokens(value: unknown): number | undefined;
|
|
15
|
+
export declare function readDefaultContextWindowTokens(): Promise<number>;
|
|
@@ -76,13 +76,16 @@ export function buildProviderConfig(provider, baseUrl) {
|
|
|
76
76
|
}
|
|
77
77
|
return { type: provider };
|
|
78
78
|
}
|
|
79
|
-
export function buildModelConfig(template, provider, model) {
|
|
79
|
+
export function buildModelConfig(template, provider, model, contextWindowTokens) {
|
|
80
80
|
const context = isRecord(template.context) ? template.context : {};
|
|
81
81
|
return {
|
|
82
82
|
...template,
|
|
83
83
|
label: model,
|
|
84
84
|
provider,
|
|
85
85
|
model,
|
|
86
|
+
...(contextWindowTokens !== undefined
|
|
87
|
+
? { contextWindowTokens: parseContextWindowTokens(contextWindowTokens) }
|
|
88
|
+
: {}),
|
|
86
89
|
...(provider === "openai"
|
|
87
90
|
? {
|
|
88
91
|
execution: {
|
|
@@ -98,3 +101,17 @@ export function buildModelConfig(template, provider, model) {
|
|
|
98
101
|
},
|
|
99
102
|
};
|
|
100
103
|
}
|
|
104
|
+
export function parseContextWindowTokens(value) {
|
|
105
|
+
if (value === undefined)
|
|
106
|
+
return undefined;
|
|
107
|
+
if (typeof value !== "number" || !Number.isSafeInteger(value) || value <= 0)
|
|
108
|
+
throw new Error("Context window must be a positive whole number of tokens.");
|
|
109
|
+
return value;
|
|
110
|
+
}
|
|
111
|
+
export async function readDefaultContextWindowTokens() {
|
|
112
|
+
const template = await readJsonObject(join(resolveRuntimePackageRoot(import.meta.dirname), "examples/models/default.config.json"));
|
|
113
|
+
const value = parseContextWindowTokens(template.contextWindowTokens);
|
|
114
|
+
if (value === undefined)
|
|
115
|
+
throw new Error("The model template is missing its context window.");
|
|
116
|
+
return value;
|
|
117
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { BigIntStats } from "node:fs";
|
|
2
|
+
import type { ResolvedRuntimeToolPath } from "./tool-types.js";
|
|
3
|
+
export type ToolFileOutputLocation = "agent_work" | "workspace";
|
|
4
|
+
export type ToolFileOutputOperation = "created" | "updated";
|
|
5
|
+
/** Client presentation only; this receipt never belongs to a tool result. */
|
|
6
|
+
export type ToolFileOutputReceipt = Readonly<{
|
|
7
|
+
version: 1;
|
|
8
|
+
location: ToolFileOutputLocation;
|
|
9
|
+
rootId: string;
|
|
10
|
+
relativePath: string;
|
|
11
|
+
logicalPath: string;
|
|
12
|
+
operation: ToolFileOutputOperation;
|
|
13
|
+
}>;
|
|
14
|
+
export type ToolFileOutputReport = Readonly<{
|
|
15
|
+
target: ResolvedRuntimeToolPath;
|
|
16
|
+
operation: ToolFileOutputOperation;
|
|
17
|
+
rootIdentity?: ToolFileOutputRootIdentity;
|
|
18
|
+
}>;
|
|
19
|
+
/** Captured from the actual mutation root while its directory handle is held. */
|
|
20
|
+
export type ToolFileOutputRootIdentity = Readonly<{
|
|
21
|
+
device: string;
|
|
22
|
+
inode: string;
|
|
23
|
+
birthtimeNs: string;
|
|
24
|
+
}>;
|
|
25
|
+
/** Reports a committed file mutation to the host, outside model-visible data. */
|
|
26
|
+
export type ToolFileOutputReporter = (report: ToolFileOutputReport) => void;
|
|
27
|
+
type ToolFileOutputRootStats = Pick<BigIntStats, "dev" | "ino" | "birthtimeNs" | "isDirectory">;
|
|
28
|
+
export declare function hasStableFileOutputRootIdentity(identity: ToolFileOutputRootStats): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* The caller supplies the canonical rootPath returned by the host resolver.
|
|
31
|
+
* Encoding: SHA-256 of UTF-8 JSON [v3 domain, location, canonical root, decimal
|
|
32
|
+
* device, inode, birthtimeNs, root marker token], with a sha256: prefix. The
|
|
33
|
+
* random marker distinguishes roots even if an inode and birth time are reused.
|
|
34
|
+
* Child changes must not invalidate the root, so mtime/ctime are never included.
|
|
35
|
+
* Older path-only hashes cannot match; unavailable birth identity fails closed.
|
|
36
|
+
*/
|
|
37
|
+
export declare function createFileOutputRootId(location: ToolFileOutputLocation, canonicalRoot: string, identity: ToolFileOutputRootStats, markerToken: string): string;
|
|
38
|
+
export declare function isToolFileOutputLocation(value: unknown): value is ToolFileOutputLocation;
|
|
39
|
+
/** A detached host report binding; filesystem authority is verified separately. */
|
|
40
|
+
export declare function parseToolFileOutputRootIdentity(value: unknown): ToolFileOutputRootIdentity | undefined;
|
|
41
|
+
/** Structural validation is not authorization; the server must verify origin. */
|
|
42
|
+
export declare function parseToolFileOutputReceipt(value: unknown): ToolFileOutputReceipt | undefined;
|
|
43
|
+
export {};
|