@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,133 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
export function hasStableFileOutputRootIdentity(identity) {
|
|
3
|
+
if (!identity.isDirectory())
|
|
4
|
+
return false;
|
|
5
|
+
if (typeof identity.dev !== "bigint")
|
|
6
|
+
return false;
|
|
7
|
+
if (identity.dev < 0n)
|
|
8
|
+
return false;
|
|
9
|
+
if (typeof identity.ino !== "bigint")
|
|
10
|
+
return false;
|
|
11
|
+
if (identity.ino <= 0n)
|
|
12
|
+
return false;
|
|
13
|
+
if (typeof identity.birthtimeNs !== "bigint")
|
|
14
|
+
return false;
|
|
15
|
+
return identity.birthtimeNs > 0n;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* The caller supplies the canonical rootPath returned by the host resolver.
|
|
19
|
+
* Encoding: SHA-256 of UTF-8 JSON [v3 domain, location, canonical root, decimal
|
|
20
|
+
* device, inode, birthtimeNs, root marker token], with a sha256: prefix. The
|
|
21
|
+
* random marker distinguishes roots even if an inode and birth time are reused.
|
|
22
|
+
* Child changes must not invalidate the root, so mtime/ctime are never included.
|
|
23
|
+
* Older path-only hashes cannot match; unavailable birth identity fails closed.
|
|
24
|
+
*/
|
|
25
|
+
export function createFileOutputRootId(location, canonicalRoot, identity, markerToken) {
|
|
26
|
+
if (!hasStableFileOutputRootIdentity(identity))
|
|
27
|
+
throw new Error("Stable file-output root identity is unavailable.");
|
|
28
|
+
if (!/^[a-f0-9]{64}$/u.test(markerToken))
|
|
29
|
+
throw new Error("Stable file-output root marker is unavailable.");
|
|
30
|
+
const encoded = JSON.stringify([
|
|
31
|
+
"abot-file-output-root-v3",
|
|
32
|
+
location,
|
|
33
|
+
canonicalRoot,
|
|
34
|
+
identity.dev.toString(),
|
|
35
|
+
identity.ino.toString(),
|
|
36
|
+
identity.birthtimeNs.toString(),
|
|
37
|
+
markerToken,
|
|
38
|
+
]);
|
|
39
|
+
return `sha256:${createHash("sha256").update(encoded, "utf8").digest("hex")}`;
|
|
40
|
+
}
|
|
41
|
+
export function isToolFileOutputLocation(value) {
|
|
42
|
+
return value === "agent_work" || value === "workspace";
|
|
43
|
+
}
|
|
44
|
+
function isFileOutputRecord(value) {
|
|
45
|
+
if (value === null)
|
|
46
|
+
return false;
|
|
47
|
+
if (typeof value !== "object")
|
|
48
|
+
return false;
|
|
49
|
+
return !Array.isArray(value);
|
|
50
|
+
}
|
|
51
|
+
function isRootIdentityInteger(value) {
|
|
52
|
+
if (typeof value !== "string")
|
|
53
|
+
return false;
|
|
54
|
+
return /^(?:0|[1-9][0-9]{0,63})$/u.test(value);
|
|
55
|
+
}
|
|
56
|
+
/** A detached host report binding; filesystem authority is verified separately. */
|
|
57
|
+
export function parseToolFileOutputRootIdentity(value) {
|
|
58
|
+
if (!isFileOutputRecord(value))
|
|
59
|
+
return undefined;
|
|
60
|
+
if (!isRootIdentityInteger(value.device))
|
|
61
|
+
return undefined;
|
|
62
|
+
if (!isRootIdentityInteger(value.inode))
|
|
63
|
+
return undefined;
|
|
64
|
+
if (value.inode === "0")
|
|
65
|
+
return undefined;
|
|
66
|
+
if (!isRootIdentityInteger(value.birthtimeNs))
|
|
67
|
+
return undefined;
|
|
68
|
+
if (value.birthtimeNs === "0")
|
|
69
|
+
return undefined;
|
|
70
|
+
return Object.freeze({
|
|
71
|
+
device: value.device,
|
|
72
|
+
inode: value.inode,
|
|
73
|
+
birthtimeNs: value.birthtimeNs,
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
function isFileOutputRelativePath(value) {
|
|
77
|
+
if (typeof value !== "string")
|
|
78
|
+
return false;
|
|
79
|
+
if (value.length === 0)
|
|
80
|
+
return false;
|
|
81
|
+
if (value.length > 4096)
|
|
82
|
+
return false;
|
|
83
|
+
if (value.includes("\0"))
|
|
84
|
+
return false;
|
|
85
|
+
if (value.includes("\\"))
|
|
86
|
+
return false;
|
|
87
|
+
if (/^[A-Za-z]:/u.test(value))
|
|
88
|
+
return false;
|
|
89
|
+
return value.split("/").every(isFileOutputPathSegment);
|
|
90
|
+
}
|
|
91
|
+
function isFileOutputPathSegment(value) {
|
|
92
|
+
if (value.length === 0)
|
|
93
|
+
return false;
|
|
94
|
+
if (value === ".")
|
|
95
|
+
return false;
|
|
96
|
+
return value !== "..";
|
|
97
|
+
}
|
|
98
|
+
function isFileOutputOperation(value) {
|
|
99
|
+
return value === "created" || value === "updated";
|
|
100
|
+
}
|
|
101
|
+
function isFileOutputRootId(value) {
|
|
102
|
+
if (typeof value !== "string")
|
|
103
|
+
return false;
|
|
104
|
+
return /^sha256:[a-f0-9]{64}$/u.test(value);
|
|
105
|
+
}
|
|
106
|
+
/** Structural validation is not authorization; the server must verify origin. */
|
|
107
|
+
export function parseToolFileOutputReceipt(value) {
|
|
108
|
+
if (!isFileOutputRecord(value))
|
|
109
|
+
return undefined;
|
|
110
|
+
if (value.version !== 1)
|
|
111
|
+
return undefined;
|
|
112
|
+
if (!isToolFileOutputLocation(value.location))
|
|
113
|
+
return undefined;
|
|
114
|
+
if (!isFileOutputRelativePath(value.relativePath))
|
|
115
|
+
return undefined;
|
|
116
|
+
if (!isFileOutputOperation(value.operation))
|
|
117
|
+
return undefined;
|
|
118
|
+
if (!isFileOutputRootId(value.rootId))
|
|
119
|
+
return undefined;
|
|
120
|
+
const logicalPath = value.location === "workspace"
|
|
121
|
+
? `workspace/${value.relativePath}`
|
|
122
|
+
: value.relativePath;
|
|
123
|
+
if (value.logicalPath !== logicalPath)
|
|
124
|
+
return undefined;
|
|
125
|
+
return Object.freeze({
|
|
126
|
+
version: 1,
|
|
127
|
+
location: value.location,
|
|
128
|
+
rootId: value.rootId,
|
|
129
|
+
relativePath: value.relativePath,
|
|
130
|
+
logicalPath,
|
|
131
|
+
operation: value.operation,
|
|
132
|
+
});
|
|
133
|
+
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { parseRequiredToolPermissionMode } from "../tool-permission-mode.js";
|
|
1
2
|
import { isDevelopmentRole, isExecutionEffect, isRoutingCapability, parseParamsByCommand, parseRuntimePathBindings, parseToolCatalogGroups, } from "./definition-fields.js";
|
|
2
3
|
import { parseEventPresentation } from "./event-presentation.js";
|
|
3
4
|
import { parsePayloadChannelSpec } from "./payload-channel-spec.js";
|
|
@@ -48,6 +49,7 @@ export function parseToolDefinition(raw) {
|
|
|
48
49
|
const parsedEventPresentation = parseEventPresentation(name, eventPresentation);
|
|
49
50
|
return {
|
|
50
51
|
name,
|
|
52
|
+
requiredPermissionMode: parseRequiredToolPermissionMode(raw.requiredPermissionMode, `${name}.requiredPermissionMode`),
|
|
51
53
|
...(typeof description === "string" ? { description } : {}),
|
|
52
54
|
routingCapability,
|
|
53
55
|
...(controlsRefinement === "mechanical_when_complete"
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ToolEventMetadataProjection } from "../tool-types.js";
|
|
2
|
+
type InputTextOptions = Pick<ToolEventMetadataProjection, "maxLength" | "preserveWhitespace">;
|
|
3
|
+
/** The same optional input-text contract applies to manifests and tool modules. */
|
|
4
|
+
export declare function parseEventInputTextOptions(projection: Record<string, unknown>, path: string): InputTextOptions;
|
|
5
|
+
export {};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/** The same optional input-text contract applies to manifests and tool modules. */
|
|
2
|
+
export function parseEventInputTextOptions(projection, path) {
|
|
3
|
+
const { maxLength, preserveWhitespace } = projection;
|
|
4
|
+
if (maxLength === undefined && preserveWhitespace === undefined)
|
|
5
|
+
return {};
|
|
6
|
+
if (!supportsInputTextOptions(projection.kind)) {
|
|
7
|
+
throw new Error(`${path} text options require kind string or string_array`);
|
|
8
|
+
}
|
|
9
|
+
if (maxLength !== undefined && projection.kind !== "string") {
|
|
10
|
+
throw new Error(`${path}.maxLength requires kind string`);
|
|
11
|
+
}
|
|
12
|
+
if (!hasSupportedInputTextLength(maxLength)) {
|
|
13
|
+
throw new Error(`${path}.maxLength must be an integer from 1 to 4096`);
|
|
14
|
+
}
|
|
15
|
+
if (!hasSupportedWhitespaceOption(preserveWhitespace)) {
|
|
16
|
+
throw new Error(`${path}.preserveWhitespace must be a boolean`);
|
|
17
|
+
}
|
|
18
|
+
return {
|
|
19
|
+
...(maxLength !== undefined ? { maxLength } : {}),
|
|
20
|
+
...(preserveWhitespace !== undefined ? { preserveWhitespace } : {}),
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
function hasSupportedInputTextLength(value) {
|
|
24
|
+
if (value === undefined)
|
|
25
|
+
return true;
|
|
26
|
+
if (typeof value !== "number" || !Number.isInteger(value))
|
|
27
|
+
return false;
|
|
28
|
+
return value >= 1 && value <= 4_096;
|
|
29
|
+
}
|
|
30
|
+
function hasSupportedWhitespaceOption(value) {
|
|
31
|
+
if (value === undefined)
|
|
32
|
+
return true;
|
|
33
|
+
return typeof value === "boolean";
|
|
34
|
+
}
|
|
35
|
+
function supportsInputTextOptions(kind) {
|
|
36
|
+
return kind === "string" || kind === "string_array";
|
|
37
|
+
}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { isToolDefinitionRecordValue } from "./definition-shape.js";
|
|
2
2
|
import { parseEventResultMetadata } from "./event-result-metadata.js";
|
|
3
|
+
import { parseEventInputTextOptions } from "./event-input-text-options.js";
|
|
3
4
|
const EVENT_PROJECTION_KINDS = [
|
|
4
5
|
"string",
|
|
5
6
|
"number",
|
|
7
|
+
"boolean",
|
|
6
8
|
"string_array",
|
|
7
9
|
"length",
|
|
8
10
|
];
|
|
@@ -45,6 +47,7 @@ function parseEventMetadataProjection(toolName, key, raw) {
|
|
|
45
47
|
{
|
|
46
48
|
param: param.trim(),
|
|
47
49
|
kind,
|
|
50
|
+
...parseEventInputTextOptions(raw, `eventPresentation.metadata.${key} (${toolName})`),
|
|
48
51
|
...(fallback !== undefined ? { default: fallback } : {}),
|
|
49
52
|
},
|
|
50
53
|
];
|
|
@@ -51,6 +51,9 @@ export function validateToolModuleDeclarations(modules) {
|
|
|
51
51
|
implementation: tool.implementation,
|
|
52
52
|
...(tool.adapter ? { adapter: tool.adapter } : {}),
|
|
53
53
|
normalInvocation: tool.normalInvocation,
|
|
54
|
+
...(source.prepareRequest
|
|
55
|
+
? { prepareRequest: source.prepareRequest }
|
|
56
|
+
: {}),
|
|
54
57
|
};
|
|
55
58
|
});
|
|
56
59
|
}
|
|
@@ -62,6 +65,7 @@ function parseToolAdapter(toolName, raw) {
|
|
|
62
65
|
}
|
|
63
66
|
const normalizeCall = raw.normalizeCall;
|
|
64
67
|
const validateCall = raw.validateCall;
|
|
68
|
+
const executionBinding = raw.executionBinding;
|
|
65
69
|
if (normalizeCall !== undefined && typeof normalizeCall !== "function") {
|
|
66
70
|
throw new Error(`Invalid tool module for ${toolName} (adapter.normalizeCall)`);
|
|
67
71
|
}
|
|
@@ -69,6 +73,14 @@ function parseToolAdapter(toolName, raw) {
|
|
|
69
73
|
throw new Error(`Invalid tool module for ${toolName} (adapter.validateCall)`);
|
|
70
74
|
}
|
|
71
75
|
const adapter = {};
|
|
76
|
+
if (executionBinding !== undefined &&
|
|
77
|
+
typeof executionBinding !== "function") {
|
|
78
|
+
throw new Error(`Invalid tool module for ${toolName} (adapter.executionBinding)`);
|
|
79
|
+
}
|
|
80
|
+
if (typeof executionBinding === "function") {
|
|
81
|
+
adapter.executionBinding =
|
|
82
|
+
executionBinding;
|
|
83
|
+
}
|
|
72
84
|
if (typeof normalizeCall === "function") {
|
|
73
85
|
adapter.normalizeCall = normalizeCall;
|
|
74
86
|
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ToolEventMetadataProjection } from "./tool-types.js";
|
|
2
|
+
/** Opt-in exact text stays display-only and never replaces the accepted input. */
|
|
3
|
+
export declare function projectDeclaredInputText(raw: unknown, projection: ToolEventMetadataProjection): Readonly<{
|
|
4
|
+
text: string;
|
|
5
|
+
truncated: boolean;
|
|
6
|
+
}> | undefined;
|
|
7
|
+
export declare function hasDeclaredInputTextOptions(projection: ToolEventMetadataProjection): boolean;
|
|
8
|
+
/** Preserve array positions, empty values and whitespace in opt-in arguments. */
|
|
9
|
+
export declare function projectDeclaredInputFields(key: string, raw: unknown, projection: ToolEventMetadataProjection): [string, unknown][];
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/** Opt-in exact text stays display-only and never replaces the accepted input. */
|
|
2
|
+
export function projectDeclaredInputText(raw, projection) {
|
|
3
|
+
if (typeof raw !== "string")
|
|
4
|
+
return undefined;
|
|
5
|
+
const text = projection.preserveWhitespace === true ? raw : raw.trim();
|
|
6
|
+
if (text.length === 0)
|
|
7
|
+
return undefined;
|
|
8
|
+
const limit = Math.min(4_096, projection.maxLength ?? 500);
|
|
9
|
+
let end = Math.min(text.length, limit);
|
|
10
|
+
if (splitsInputTextSurrogatePair(text, end))
|
|
11
|
+
end -= 1;
|
|
12
|
+
return { text: text.slice(0, end), truncated: end < text.length };
|
|
13
|
+
}
|
|
14
|
+
export function hasDeclaredInputTextOptions(projection) {
|
|
15
|
+
if (projection.kind !== "string" && projection.kind !== "string_array")
|
|
16
|
+
return false;
|
|
17
|
+
if (projection.maxLength !== undefined)
|
|
18
|
+
return true;
|
|
19
|
+
return projection.preserveWhitespace !== undefined;
|
|
20
|
+
}
|
|
21
|
+
function splitsInputTextSurrogatePair(text, end) {
|
|
22
|
+
if (end <= 0 || end >= text.length)
|
|
23
|
+
return false;
|
|
24
|
+
const before = text.charCodeAt(end - 1);
|
|
25
|
+
const after = text.charCodeAt(end);
|
|
26
|
+
if (before < 0xd800 || before > 0xdbff)
|
|
27
|
+
return false;
|
|
28
|
+
return after >= 0xdc00 && after <= 0xdfff;
|
|
29
|
+
}
|
|
30
|
+
/** Preserve array positions, empty values and whitespace in opt-in arguments. */
|
|
31
|
+
export function projectDeclaredInputFields(key, raw, projection) {
|
|
32
|
+
if (projection.kind === "string_array") {
|
|
33
|
+
return projectDeclaredInputArray(key, raw, projection);
|
|
34
|
+
}
|
|
35
|
+
const text = projectDeclaredInputText(raw, projection);
|
|
36
|
+
return text
|
|
37
|
+
? [
|
|
38
|
+
[key, text.text],
|
|
39
|
+
[`${key}Truncated`, text.truncated],
|
|
40
|
+
]
|
|
41
|
+
: [];
|
|
42
|
+
}
|
|
43
|
+
function projectDeclaredInputArray(key, raw, projection) {
|
|
44
|
+
if (!hasOnlyStringArguments(raw))
|
|
45
|
+
return [];
|
|
46
|
+
const omittedCount = Math.max(0, raw.length - 32);
|
|
47
|
+
let truncated = omittedCount > 0;
|
|
48
|
+
const values = raw.slice(0, 32).map((argument) => {
|
|
49
|
+
const text = projectDeclaredInputText(argument, projection);
|
|
50
|
+
if (text?.truncated)
|
|
51
|
+
truncated = true;
|
|
52
|
+
return text?.text ?? "";
|
|
53
|
+
});
|
|
54
|
+
return [
|
|
55
|
+
[key, values],
|
|
56
|
+
[`${key}Truncated`, truncated],
|
|
57
|
+
[`${key}OmittedCount`, omittedCount],
|
|
58
|
+
];
|
|
59
|
+
}
|
|
60
|
+
function hasOnlyStringArguments(raw) {
|
|
61
|
+
if (!Array.isArray(raw))
|
|
62
|
+
return false;
|
|
63
|
+
return raw.every((value) => typeof value === "string");
|
|
64
|
+
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { projectToolResultEventMetadata } from "./tool-result-event-projection.js";
|
|
2
|
+
import { hasDeclaredInputTextOptions, projectDeclaredInputFields, } from "./tool-event-input-text.js";
|
|
2
3
|
function safeTrim(value) {
|
|
3
4
|
return typeof value === "string" ? value.trim() : "";
|
|
4
5
|
}
|
|
@@ -99,6 +100,9 @@ function buildDeclaredCallMeta(call, definition) {
|
|
|
99
100
|
if (!projections)
|
|
100
101
|
return undefined;
|
|
101
102
|
const values = Object.fromEntries(Object.entries(projections).flatMap(([key, projection]) => {
|
|
103
|
+
if (hasDeclaredInputTextOptions(projection)) {
|
|
104
|
+
return projectDeclaredInputFields(key, call.params[projection.param] ?? projection.default, projection);
|
|
105
|
+
}
|
|
102
106
|
let value;
|
|
103
107
|
switch (projection.kind) {
|
|
104
108
|
case "string":
|
|
@@ -107,6 +111,12 @@ function buildDeclaredCallMeta(call, definition) {
|
|
|
107
111
|
case "number":
|
|
108
112
|
value = readNumberParam(call.params, projection.param);
|
|
109
113
|
break;
|
|
114
|
+
case "boolean":
|
|
115
|
+
value =
|
|
116
|
+
typeof call.params[projection.param] === "boolean"
|
|
117
|
+
? call.params[projection.param]
|
|
118
|
+
: undefined;
|
|
119
|
+
break;
|
|
110
120
|
case "string_array":
|
|
111
121
|
value = readStringArrayParam(call.params, projection.param);
|
|
112
122
|
break;
|
|
@@ -5,6 +5,7 @@ type ToolExecutorOptions = {
|
|
|
5
5
|
sharedState?: ToolExecutionContext["sharedState"];
|
|
6
6
|
modelInvoker?: ToolExecutionContext["modelInvoker"];
|
|
7
7
|
runtimePathResolver?: ToolExecutionContext["runtimePathResolver"];
|
|
8
|
+
reportFileOutput?: ToolExecutionContext["reportFileOutput"];
|
|
8
9
|
};
|
|
9
10
|
export declare function executeToolCall(call: ToolCall, options?: ToolExecutorOptions): Promise<ToolExecutionResult>;
|
|
10
11
|
export {};
|
|
@@ -101,6 +101,7 @@ export async function executeToolCall(call, options = {}) {
|
|
|
101
101
|
sharedState: options.sharedState,
|
|
102
102
|
modelInvoker: options.modelInvoker,
|
|
103
103
|
runtimePathResolver: options.runtimePathResolver,
|
|
104
|
+
reportFileOutput: options.reportFileOutput,
|
|
104
105
|
});
|
|
105
106
|
const rawOutput = options.abortSignal
|
|
106
107
|
? await raceWithAbort(execution, options.abortSignal)
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** User-selected request authority. Never infer this value from model content. */
|
|
2
|
+
export type ToolPermissionMode = "ask" | "full_access" | "full_plus";
|
|
3
|
+
export type ToolRequiredPermissionMode = "full_plus";
|
|
4
|
+
export declare function resolveToolPermissionMode(value: unknown): ToolPermissionMode;
|
|
5
|
+
export declare function permitsRequiredToolMode(mode: ToolPermissionMode, requiredMode: ToolRequiredPermissionMode | undefined): boolean;
|
|
6
|
+
export declare function requiresToolActionApproval(mode: ToolPermissionMode, force: boolean): boolean;
|
|
7
|
+
export declare function parseRequiredToolPermissionMode(value: unknown, path: string): ToolRequiredPermissionMode | undefined;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export function resolveToolPermissionMode(value) {
|
|
2
|
+
if (value === "full_plus")
|
|
3
|
+
return "full_plus";
|
|
4
|
+
const mode = typeof value === "string" ? value.trim().toLowerCase() : "";
|
|
5
|
+
if (mode === "full_access" || mode === "full")
|
|
6
|
+
return "full_access";
|
|
7
|
+
return "ask";
|
|
8
|
+
}
|
|
9
|
+
export function permitsRequiredToolMode(mode, requiredMode) {
|
|
10
|
+
if (requiredMode === undefined)
|
|
11
|
+
return true;
|
|
12
|
+
return mode === requiredMode;
|
|
13
|
+
}
|
|
14
|
+
export function requiresToolActionApproval(mode, force) {
|
|
15
|
+
if (mode === "full_plus")
|
|
16
|
+
return false;
|
|
17
|
+
if (force)
|
|
18
|
+
return true;
|
|
19
|
+
return mode === "ask";
|
|
20
|
+
}
|
|
21
|
+
export function parseRequiredToolPermissionMode(value, path) {
|
|
22
|
+
if (value === undefined)
|
|
23
|
+
return undefined;
|
|
24
|
+
if (value === "full_plus")
|
|
25
|
+
return value;
|
|
26
|
+
throw new Error(`${path} must be full_plus when declared`);
|
|
27
|
+
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import type { ToolPermissionMode, ToolRequiredPermissionMode } from "./tool-permission-mode.js";
|
|
1
2
|
import type { ModelStep } from "../shared/types.js";
|
|
2
3
|
import type { RuntimeAttachmentKind } from "../shared/attachments.js";
|
|
3
4
|
import type { ToolNormalInvocationContract } from "./normal-invocation/contracts.js";
|
|
5
|
+
import type { ToolFileOutputReporter } from "./file-output-presentation.js";
|
|
4
6
|
export type { ToolNormalInvocationApproval, ToolNormalInvocationArrayInput, ToolNormalInvocationBooleanInput, ToolNormalInvocationBoundedStringInput, ToolNormalInvocationContract, ToolNormalInvocationEnumInput, ToolNormalInvocationEffect, ToolNormalInvocationFixedValue, ToolNormalInvocationInput, ToolNormalInvocationInputValidation, ToolNormalInvocationNumberInput, ToolNormalInvocationOperation, ToolNormalInvocationPayload, ToolNormalInvocationPropertyInput, ToolNormalInvocationScalarInput, ToolNormalInvocationUnboundedStringInput, } from "./normal-invocation/contracts.js";
|
|
5
7
|
export type ToolRoutingCapability = "filesystem_inspection" | "filesystem_mutation" | "semantic_lookup" | "semantic_mutation" | "web_lookup";
|
|
6
8
|
export type ToolDevelopmentRole = "inspect" | "establish" | "mutate" | "verify" | "auxiliary";
|
|
@@ -11,7 +13,9 @@ export type ToolExecutionEffect = "read_only" | "mutating" | "mixed";
|
|
|
11
13
|
export type ToolControlsRefinement = "mechanical_when_complete";
|
|
12
14
|
export type ToolEventMetadataProjection = Readonly<{
|
|
13
15
|
param: string;
|
|
14
|
-
kind: "string" | "number" | "string_array" | "length";
|
|
16
|
+
kind: "string" | "number" | "boolean" | "string_array" | "length";
|
|
17
|
+
maxLength?: number;
|
|
18
|
+
preserveWhitespace?: boolean;
|
|
15
19
|
default?: string | number | boolean;
|
|
16
20
|
}>;
|
|
17
21
|
export type ToolEventLifecycleCopy = Readonly<{
|
|
@@ -86,6 +90,7 @@ export type ToolRuntimePathBinding = Readonly<{
|
|
|
86
90
|
default?: ".";
|
|
87
91
|
}>;
|
|
88
92
|
export type ToolDefinition = {
|
|
93
|
+
requiredPermissionMode?: ToolRequiredPermissionMode;
|
|
89
94
|
name: string;
|
|
90
95
|
description?: string;
|
|
91
96
|
routingCapability: ToolRoutingCapability;
|
|
@@ -106,7 +111,7 @@ export type CanonicalToolDefinitionDeclaration = Omit<ToolDefinition, "params" |
|
|
|
106
111
|
export type ToolDefinitionDeclaration = CanonicalToolDefinitionDeclaration;
|
|
107
112
|
export type ToolExecutionRequestContext = Readonly<{
|
|
108
113
|
agentMode: "fast" | "reasoning" | "deep";
|
|
109
|
-
toolPermissionMode:
|
|
114
|
+
toolPermissionMode: ToolPermissionMode;
|
|
110
115
|
modelPreference?: Readonly<{
|
|
111
116
|
profileId: string;
|
|
112
117
|
scope?: "main" | "all";
|
|
@@ -181,6 +186,8 @@ export type ToolExecutionContext = {
|
|
|
181
186
|
sharedState?: ToolExecutionSharedState;
|
|
182
187
|
/** Runtime-owned path interpretation and containment authority. */
|
|
183
188
|
runtimePathResolver?: RuntimeToolPathResolver;
|
|
189
|
+
/** Optional host presentation channel; never add its data to tool results. */
|
|
190
|
+
reportFileOutput?: ToolFileOutputReporter;
|
|
184
191
|
/** Trusted request-bound service for tools whose own implementation uses a model. */
|
|
185
192
|
modelInvoker?: ToolModelInvoker;
|
|
186
193
|
};
|
|
@@ -195,6 +202,12 @@ export type ToolCallAdapter = {
|
|
|
195
202
|
error: string;
|
|
196
203
|
repairHint?: string;
|
|
197
204
|
} | null;
|
|
205
|
+
/** Request-captured execution authority; never projected into model controls. */
|
|
206
|
+
executionBinding?: (input: ToolCallAdapterInput) => Readonly<{
|
|
207
|
+
identity: string;
|
|
208
|
+
/** Human approval/activity disclosure only, never tool-result evidence. */
|
|
209
|
+
metadata?: Readonly<Record<string, unknown>>;
|
|
210
|
+
}>;
|
|
198
211
|
};
|
|
199
212
|
export type ToolModule = {
|
|
200
213
|
definition: ToolDefinition;
|
|
@@ -206,7 +219,10 @@ type ToolModuleDeclarationBase = Omit<ToolModule, "definition" | "normalInvocati
|
|
|
206
219
|
export type ToolModuleDeclaration = ToolModuleDeclarationBase & {
|
|
207
220
|
definition: CanonicalToolDefinitionDeclaration;
|
|
208
221
|
normalInvocation: ToolNormalInvocationContract;
|
|
222
|
+
/** Shared callback identity groups already selected modules for one request. */
|
|
223
|
+
prepareRequest?: ToolModuleRequestPreparation;
|
|
209
224
|
};
|
|
225
|
+
export type ToolModuleRequestPreparation = (modules: readonly ToolModuleDeclaration[]) => Promise<readonly ToolModuleDeclaration[]>;
|
|
210
226
|
export type RegisteredToolNormalInvocation = Readonly<{
|
|
211
227
|
toolName: string;
|
|
212
228
|
definition: ToolDefinition;
|
package/dist/src/cli/abot.js
CHANGED
|
@@ -2,11 +2,13 @@ import { join, resolve } from "node:path";
|
|
|
2
2
|
import { runAddRuntimeModel } from "../../scripts/add-runtime-model.js";
|
|
3
3
|
import { runInitRuntime } from "../../scripts/init-runtime.js";
|
|
4
4
|
import { runConfigureLongTermMemory } from "../../scripts/configure-long-term-memory.js";
|
|
5
|
-
import {
|
|
5
|
+
import { resolveProviderAdapters } from "../model-gateway/server.js";
|
|
6
6
|
import { loadDotEnvFile } from "../shared/load-dotenv.js";
|
|
7
|
-
import {
|
|
7
|
+
import { closeRuntimeSetupServices } from "../web-ui/runtime-setup-shutdown.js";
|
|
8
|
+
import { RuntimeSetupGateway } from "../web-ui/runtime-setup-gateway.js";
|
|
8
9
|
import { startWebUiServer } from "../web-ui/server.js";
|
|
9
10
|
import { resolveWebUiAddress } from "../web-ui/web-ui-address.js";
|
|
11
|
+
import { runHostCompanionCli } from "./host-companion.js";
|
|
10
12
|
function printHelp() {
|
|
11
13
|
console.log([
|
|
12
14
|
"ABot Runtime",
|
|
@@ -16,12 +18,14 @@ function printHelp() {
|
|
|
16
18
|
" abot add-model --profile <profile-id> --provider <provider> --model <model-id> [options]",
|
|
17
19
|
" abot memory <status|models|enable|disable> [options]",
|
|
18
20
|
" abot start",
|
|
21
|
+
" abot host <connect|status|disconnect|uninstall|run>",
|
|
19
22
|
"",
|
|
20
23
|
"Commands:",
|
|
21
24
|
" init Create the first machine-local runtime configuration.",
|
|
22
25
|
" add-model Add a provider/model profile without replacing existing ones.",
|
|
23
26
|
" memory Configure passive long-term memory embeddings.",
|
|
24
27
|
" start Start the local model gateway and Web UI.",
|
|
28
|
+
" host Pair this computer with a local Docker Runtime.",
|
|
25
29
|
].join("\n"));
|
|
26
30
|
}
|
|
27
31
|
async function runStart(args) {
|
|
@@ -37,17 +41,12 @@ async function runStart(args) {
|
|
|
37
41
|
const webAddress = resolveWebUiAddress(process.env);
|
|
38
42
|
const appDir = resolve(import.meta.dirname, "../web-ui/app");
|
|
39
43
|
const providerAdapters = resolveProviderAdapters({});
|
|
40
|
-
|
|
44
|
+
const gateway = new RuntimeSetupGateway({ rootDir, providerAdapters });
|
|
41
45
|
try {
|
|
42
|
-
gateway
|
|
43
|
-
const gatewayPort = resolveModelGatewayPort();
|
|
44
|
-
gateway.listen(gatewayPort, "127.0.0.1", () => {
|
|
45
|
-
console.log(`model gateway listening on http://127.0.0.1:${gatewayPort}`);
|
|
46
|
-
});
|
|
46
|
+
await gateway.activate(process.env.LLM_RUNTIME_CONFIG_FILE);
|
|
47
47
|
}
|
|
48
|
-
catch
|
|
49
|
-
console.
|
|
50
|
-
console.warn("Complete model setup, stop ABot, and run abot start again.");
|
|
48
|
+
catch {
|
|
49
|
+
console.log("Complete model setup in the Web UI to start the model gateway.");
|
|
51
50
|
}
|
|
52
51
|
const webUi = startWebUiServer({
|
|
53
52
|
appDir,
|
|
@@ -56,6 +55,9 @@ async function runStart(args) {
|
|
|
56
55
|
port: webAddress.port,
|
|
57
56
|
setupCommandMode: "package",
|
|
58
57
|
providerAdapters,
|
|
58
|
+
onRuntimeSetup: (configPath) => gateway.activate(configPath),
|
|
59
|
+
createRuntimeSetupRestorePoint: () => gateway.createRestorePoint(),
|
|
60
|
+
checkRuntimeSetupActivation: (configPath) => gateway.checkActivation(configPath),
|
|
59
61
|
});
|
|
60
62
|
console.log(`Open ${webAddress.browserUrl}`);
|
|
61
63
|
await new Promise((resolveExit, rejectExit) => {
|
|
@@ -64,10 +66,7 @@ async function runStart(args) {
|
|
|
64
66
|
if (closing)
|
|
65
67
|
return;
|
|
66
68
|
closing = true;
|
|
67
|
-
void
|
|
68
|
-
webUi.close(),
|
|
69
|
-
...(gateway ? [closeHttpServerImmediately(gateway)] : []),
|
|
70
|
-
]).then(() => resolveExit(), rejectExit);
|
|
69
|
+
void closeRuntimeSetupServices(() => webUi.close(), () => gateway.close()).then(() => resolveExit(), rejectExit);
|
|
71
70
|
};
|
|
72
71
|
process.once("SIGINT", shutdown);
|
|
73
72
|
process.once("SIGTERM", shutdown);
|
|
@@ -98,5 +97,9 @@ export async function runAbotCli(argv = process.argv.slice(2)) {
|
|
|
98
97
|
await runStart(args);
|
|
99
98
|
return;
|
|
100
99
|
}
|
|
100
|
+
if (command === "host") {
|
|
101
|
+
await runHostCompanionCli(args);
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
101
104
|
throw new Error(`unknown command: ${command}`);
|
|
102
105
|
}
|