@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
|
@@ -11,14 +11,14 @@ contracts without selecting a fixed workflow.
|
|
|
11
11
|
| -------------------------- | --------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
12
12
|
| Supervisor decision | `src/runtime/steps/supervisor-decision/` | strict parser, default-policy child contracts, exact canonical root, and runtime-owned receipt plus verified lineage for returned Planner/Worker results | `supervisor-decision.test.ts`, `role-call-work-receipt-continuation-pr1.test.ts`, `supervisor-request-runner.test.ts` |
|
|
13
13
|
| Supervisor response | `src/runtime/steps/supervisor-response/` | exact active root and bounded returned-child context; legacy normalized terminal mode | `supervisor-response.test.ts`, `supervisor-request-runner.test.ts`, `request-finalization.test.ts` |
|
|
14
|
-
| Execution Agent decision | `src/runtime/steps/execution-agent/` | strict parser, direct-policy actions and root capability authority, exact canonical state | `execution-agent-decision.test.ts`, `execution-agent-request-runner.test.ts`
|
|
14
|
+
| Execution Agent decision | `src/runtime/steps/execution-agent/` | strict parser, direct-policy actions and root capability authority, exact canonical state | `execution-agent-decision.test.ts`, `execution-agent-request-runner.test.ts`, `model-work-plan-contract.test.ts`, `model-work-plan-runner.test.ts` |
|
|
15
15
|
| Execution Agent response | `src/runtime/steps/execution-agent/response-*` | raw non-empty bounded text from the exact accepted response state; direct-policy exact terminal mode only | `execution-agent-request-runner.test.ts`, `request-finalization.test.ts` |
|
|
16
16
|
| Delegated Planner decision | `src/runtime/steps/planner-decision/` | strict parser, exact Planner caller, registered delegated child contracts, complete known plan declaration, one-Worker-item dispatch, and runtime-owned receipt plus verified lineage for the returned Worker | `planner-decision.test.ts`, `planner-plan-contract.test.ts`, `role-call-work-receipt-continuation-pr1.test.ts`, `role-call-planner-events.test.ts` |
|
|
17
|
-
| Planner Graph advisory | `src/runtime/steps/planner-graph/` | bounded acyclic proposal or decline from the exact advisory objective; no execution authority | `execution-agent-advisory-executors.test.ts`, `
|
|
17
|
+
| Planner Graph advisory | `src/runtime/steps/planner-graph/` | bounded acyclic proposal or decline from the exact advisory objective; no execution authority | `planner-graph-development-topology.test.ts`, `execution-agent-advisory-executors.test.ts`, `model-work-plan-events.test.ts` |
|
|
18
18
|
| Worker decision | `src/runtime/steps/worker-decision/` | strict parser, exact Worker activation, offered capability catalog, and compact receipts for explicit dependency results; a directly bound Planner item excludes the broader request, Planner objective, and sibling tool-result lane | `worker-decision.test.ts`, `worker-capability-decision.test.ts`, `role-call-dependency-work-receipt-pr1.test.ts`, `planner-worker-context-isolation.test.ts`, `planner-worker-tool-result-scope.test.ts` |
|
|
19
19
|
| Worker result | `src/runtime/steps/worker-decision/result-author.ts` | raw text from the exact projected Worker assignment and evidence; Planner-item results retain the same narrowed boundary | `worker-decision.test.ts`, `planner-worker-context-isolation.test.ts`, `supervisor-request-runner.test.ts` |
|
|
20
20
|
| Reviewer decision | `src/runtime/steps/reviewer-decision/` | strict parser and bounded supplied-work projection | `reviewer-decision.test.ts`, `supervisor-request-runner.test.ts` |
|
|
21
|
-
| Auditor advisory | `src/runtime/steps/auditor-decision/` |
|
|
21
|
+
| Auditor advisory | `src/runtime/steps/auditor-decision/` | Auditor-selected exact originals, full inventory coverage, additional bundle requests, and unchanged-review suppression | `auditor-evidence-contract.test.ts`, `auditor-evidence-runner.test.ts`, `auditor-context-admission.test.ts`, `execution-agent-advisory-executors.test.ts` |
|
|
22
22
|
| Capability payload | `src/runtime/orchestration/worker-capabilities/payload-author.ts`, `src/runtime/request/worker-capability-payload.ts` | frozen-policy Worker or root principal, selected operation, immutable controls and payload contract; only a runtime-issued direct-Planner-item receipt can omit source; work-result receipts and lineage are removed before raw authoring | `planner-worker-context-isolation.test.ts`, `worker-capability-payload-author.test.ts`, `worker-payload-dependency-projection-pr1.test.ts`, `execution-agent-request-runner.test.ts` |
|
|
23
23
|
| Degraded finalization | `src/runtime/steps/degraded-finalization/` | bounded failure rendering only | `degraded-finalization.test.ts`, `request-finalization.test.ts` |
|
|
24
24
|
|
|
@@ -62,8 +62,40 @@ or completion authority.
|
|
|
62
62
|
canonical ledger. They establish provenance only; the active model still
|
|
63
63
|
owns the semantic next action and must not treat them as proof of correctness.
|
|
64
64
|
Model-supplied receipts are rejected and `execution-agent-v1` is unchanged.
|
|
65
|
-
-
|
|
66
|
-
|
|
65
|
+
- The Execution Agent treats a selected project or working folder as location,
|
|
66
|
+
not authorization to repurpose a discovered application. Its policy favors
|
|
67
|
+
a new observed-free destination for a new app and clarification when the
|
|
68
|
+
intended existing target remains ambiguous. This is model policy, not a new
|
|
69
|
+
filesystem sandbox. Complex integrated or sequential development may use
|
|
70
|
+
advisory planning; simple requests retain a direct path.
|
|
71
|
+
- An Execution Agent may explicitly adopt a returned Planner proposal and
|
|
72
|
+
report item statuses alongside its existing action. The ledger validates
|
|
73
|
+
the full definition against the exact completed Planner proposal, including
|
|
74
|
+
summary, ordered item IDs, titles and objectives, before emitting plan events.
|
|
75
|
+
Adoption, source replacement and restored state use the same resolver.
|
|
76
|
+
Progress is a model report, not evidence that the paired action succeeded.
|
|
77
|
+
Policy requires matching an item's actual acceptance criteria: static checks
|
|
78
|
+
or written test instructions cannot stand in for unperformed functional tests.
|
|
79
|
+
The advisory remains passive until adoption; delegated plan semantics are
|
|
80
|
+
unchanged.
|
|
81
|
+
- Auditor chooses its original evidence from the full canonical work inventory
|
|
82
|
+
and can request a different complete bundle through `needs_evidence`.
|
|
83
|
+
Inventory previews are not proof. Pass requires every inventory ID classified
|
|
84
|
+
and every needed original present in the current exact bundle. Runtime
|
|
85
|
+
admission validates identity and exact retention against the configured model
|
|
86
|
+
context budget, without a separate fixed entry/character limit or choosing
|
|
87
|
+
semantic relevance. Identical receipt supplements may point to their exact
|
|
88
|
+
location within the unchanged original adapter result; distinct data remains
|
|
89
|
+
complete. Unchanged finished reviews are not offered again; new work or
|
|
90
|
+
steering reopens them. The root normally requests completion review after
|
|
91
|
+
implementation and available validation, then addresses concrete findings
|
|
92
|
+
before re-review. Earlier targeted review remains a model decision when
|
|
93
|
+
requested or useful for the next implementation decision. The root owns
|
|
94
|
+
remediation and final response; availability never schedules an audit.
|
|
95
|
+
Advisory results retain the shared 8,192-character receipt limit. The review
|
|
96
|
+
schema and assignment expose a description limit derived from the complete
|
|
97
|
+
metadata, evidence IDs and worst-case JSON escaping. Metadata that leaves no
|
|
98
|
+
room for a description fails before review; evidence and IDs are not shortened.
|
|
67
99
|
- `reconsider_capability_selection` is a canonical mechanical transition after
|
|
68
100
|
direct controls refinement exhausts structured-output validation. It
|
|
69
101
|
executes nothing, makes no semantic judgment, chooses no replacement, and
|
|
@@ -160,6 +160,23 @@ the active role has changed before completion. These fields are display identity
|
|
|
160
160
|
they do not change runtime stages, tool parameters, approval inputs or evidence.
|
|
161
161
|
The root role identifier remains `supervisor` regardless of its selected contract.
|
|
162
162
|
|
|
163
|
+
Input `eventPresentation.metadata` mappings support typed boolean parameters
|
|
164
|
+
without converting strings or numbers into booleans. Omitted or mistyped values
|
|
165
|
+
use a declared default or remain absent. The system command declaration exposes
|
|
166
|
+
its `elevated` flag (default false) in activity and approval evidence.
|
|
167
|
+
|
|
168
|
+
Input `eventPresentation.metadata` string mappings may opt into `maxLength`
|
|
169
|
+
(an integer from 1 to 4,096) and `preserveWhitespace` (boolean). These options
|
|
170
|
+
apply to string mappings. `preserveWhitespace` is also supported on string arrays:
|
|
171
|
+
opted-in arrays preserve empty values and positions, show up to 32 items bounded
|
|
172
|
+
to 500 characters each, and include `<key>Truncated` and `<key>OmittedCount`.
|
|
173
|
+
Existing mappings keep their 500-character,
|
|
174
|
+
trimmed display summaries. Opted-in strings expose a companion
|
|
175
|
+
`<key>Truncated` flag, preserve text when requested and avoid splitting Unicode
|
|
176
|
+
surrogate pairs. They affect client display only, never accepted tool inputs.
|
|
177
|
+
The system command plugin declares its full 4,096-character command bound;
|
|
178
|
+
clients render that recorded command as inert text, separately from model intent.
|
|
179
|
+
|
|
163
180
|
`eventPresentation.resultMetadata` maps optional display keys to existing tool
|
|
164
181
|
result fields through `{path, kind}` descriptors. Paths select `output` or an
|
|
165
182
|
own-property path under `data` (at most four segments). Kinds are `preview`,
|
package/package.json
CHANGED
|
@@ -81,6 +81,7 @@
|
|
|
81
81
|
"dist/src/plugin-contract/",
|
|
82
82
|
"dist/src/plugin-sdk/",
|
|
83
83
|
"dist/src/web-ui/",
|
|
84
|
+
"dist/plugins/system/",
|
|
84
85
|
"runtime.config.schema.json",
|
|
85
86
|
"src/runtime/README.md",
|
|
86
87
|
"src/runtime/scheduler/README.md",
|
|
@@ -93,6 +94,7 @@
|
|
|
93
94
|
"docs/known-limitations.md",
|
|
94
95
|
"docs/long-term-memory.md",
|
|
95
96
|
"docs/plugins.md",
|
|
97
|
+
"docs/projects-and-full-plus.md",
|
|
96
98
|
"docs/publishing.md",
|
|
97
99
|
"docs/running-locally.md",
|
|
98
100
|
"docs/runtime-invariant-coverage.md",
|
|
@@ -118,6 +120,7 @@
|
|
|
118
120
|
"plugins/local-search/",
|
|
119
121
|
"plugins/memory/",
|
|
120
122
|
"plugins/project-orientation/",
|
|
123
|
+
"plugins/system/",
|
|
121
124
|
"plugins/system-probe/",
|
|
122
125
|
"plugins/web/"
|
|
123
126
|
],
|
|
@@ -169,10 +172,10 @@
|
|
|
169
172
|
"typecheck:all": "tsc -p tsconfig.json --noEmit",
|
|
170
173
|
"typecheck:plugins": "tsc -p tsconfig.plugins.json",
|
|
171
174
|
"validate": "npm run check:plugin-build && npm run typecheck:all && npm test -- --run && npm run build && npm run check:plugins && npm run smoke:runtime-package && npm run check:runtime-package && npm run smoke:packed-runtime-package && npm run check:publication && npm run check:public-snapshot",
|
|
172
|
-
"web-ui": "tsx src/web-ui/server.ts",
|
|
175
|
+
"web-ui": "tsx scripts/build-host-companion.ts && tsx src/web-ui/server.ts",
|
|
173
176
|
"web-ui:install-user-services": "tsx scripts/install-runtime-web-ui-user-services.ts"
|
|
174
177
|
},
|
|
175
178
|
"type": "module",
|
|
176
179
|
"types": "./dist/src/runtime/index.d.ts",
|
|
177
|
-
"version": "1.
|
|
180
|
+
"version": "1.4.0"
|
|
178
181
|
}
|
package/plugins/exec/plugin.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
|
|
3
3
|
"name": "exec",
|
|
4
4
|
"version": "1.0.0",
|
|
5
|
-
"description": "Execute, observe, and cancel
|
|
5
|
+
"description": "Execute, observe, and cancel trusted non-interactive /bin/bash processes on Linux and macOS with per-action approval in Ask/Full.",
|
|
6
6
|
"extensions": {
|
|
7
7
|
"ai.abot.runtime": {
|
|
8
8
|
"version": 1,
|
|
@@ -19,19 +19,29 @@
|
|
|
19
19
|
"capabilities": {
|
|
20
20
|
"exec": {
|
|
21
21
|
"catalogGroups": ["read", "write", "exec"],
|
|
22
|
-
"description": "Execute one
|
|
22
|
+
"description": "Execute one trusted non-interactive /bin/bash command on Linux or macOS. Use an explicit existing directory: `.` and relative paths start at the agent-work root, `workspace/...` selects the workspace, and absolute host paths are accepted. Commands run with the runtime OS user permissions without parsing their contents for path or sensitivity restrictions. Ask/Full require approval of the exact action; FULL+ executes without that prompt. A command still running after the foreground window yields a process ID and cursor that exec_wait can resume without restarting it.",
|
|
23
23
|
"routingCapability": "filesystem_inspection",
|
|
24
|
-
"developmentRoles": ["inspect", "establish", "verify", "auxiliary"],
|
|
24
|
+
"developmentRoles": ["inspect", "establish", "mutate", "verify", "auxiliary"],
|
|
25
25
|
"eventPresentation": {
|
|
26
26
|
"metadata": {
|
|
27
|
-
"command": {
|
|
28
|
-
|
|
27
|
+
"command": {
|
|
28
|
+
"param": "command",
|
|
29
|
+
"kind": "string",
|
|
30
|
+
"maxLength": 4096,
|
|
31
|
+
"preserveWhitespace": true
|
|
32
|
+
},
|
|
33
|
+
"cwd": {
|
|
34
|
+
"param": "cwd",
|
|
35
|
+
"kind": "string",
|
|
36
|
+
"maxLength": 4096,
|
|
37
|
+
"preserveWhitespace": true
|
|
38
|
+
}
|
|
29
39
|
}
|
|
30
40
|
},
|
|
31
41
|
"skills": ["exec_skill"],
|
|
32
42
|
"operations": {
|
|
33
43
|
"execute_command": {
|
|
34
|
-
"summary": "Execute one
|
|
44
|
+
"summary": "Execute one trusted non-interactive /bin/bash command in an explicit existing directory. This sensitive operation requires exact-action approval in Ask/Full and runs automatically in FULL+. The OS user permissions still apply; the selected folder is not a sandbox.",
|
|
35
45
|
"input": {
|
|
36
46
|
"type": "object",
|
|
37
47
|
"additionalProperties": false,
|
|
@@ -46,7 +56,7 @@
|
|
|
46
56
|
"required": ["command", "cwd"]
|
|
47
57
|
},
|
|
48
58
|
"effect": "mixed",
|
|
49
|
-
"approval": "
|
|
59
|
+
"approval": "always"
|
|
50
60
|
}
|
|
51
61
|
}
|
|
52
62
|
},
|
|
@@ -55,6 +65,12 @@
|
|
|
55
65
|
"description": "Continue observing the exact running shell process returned by exec. Use only the process ID and next cursor from the latest exec or exec_wait result. This does not start the command again.",
|
|
56
66
|
"routingCapability": "filesystem_inspection",
|
|
57
67
|
"developmentRoles": ["inspect", "verify", "auxiliary"],
|
|
68
|
+
"eventPresentation": {
|
|
69
|
+
"metadata": {
|
|
70
|
+
"processId": { "param": "process_id", "kind": "string" },
|
|
71
|
+
"cursor": { "param": "cursor", "kind": "number" }
|
|
72
|
+
}
|
|
73
|
+
},
|
|
58
74
|
"skills": ["exec_process_skill"],
|
|
59
75
|
"operations": {
|
|
60
76
|
"wait_for_process": {
|
|
@@ -77,7 +93,7 @@
|
|
|
77
93
|
"required": ["process_id", "cursor"]
|
|
78
94
|
},
|
|
79
95
|
"effect": "read_only",
|
|
80
|
-
"approval": "
|
|
96
|
+
"approval": "always"
|
|
81
97
|
}
|
|
82
98
|
}
|
|
83
99
|
},
|
|
@@ -86,6 +102,11 @@
|
|
|
86
102
|
"description": "Cancel one running shell process previously returned by exec. Use only when the current task no longer needs that process or the user asks to stop it.",
|
|
87
103
|
"routingCapability": "filesystem_inspection",
|
|
88
104
|
"developmentRoles": ["auxiliary"],
|
|
105
|
+
"eventPresentation": {
|
|
106
|
+
"metadata": {
|
|
107
|
+
"processId": { "param": "process_id", "kind": "string" }
|
|
108
|
+
}
|
|
109
|
+
},
|
|
89
110
|
"skills": ["exec_process_skill"],
|
|
90
111
|
"operations": {
|
|
91
112
|
"cancel_process": {
|
|
@@ -103,7 +124,7 @@
|
|
|
103
124
|
"required": ["process_id"]
|
|
104
125
|
},
|
|
105
126
|
"effect": "mixed",
|
|
106
|
-
"approval": "
|
|
127
|
+
"approval": "always"
|
|
107
128
|
}
|
|
108
129
|
}
|
|
109
130
|
}
|
|
@@ -5,3 +5,4 @@
|
|
|
5
5
|
- Use `exec_cancel` only when the current task no longer needs the active process or the user asks to stop it.
|
|
6
6
|
- Process IDs belong to one loaded plugin instance and session; never reuse one across runtimes or sessions.
|
|
7
7
|
- Do not cancel a process whose result is still required, and do not retry a stale cursor unchanged.
|
|
8
|
+
- These are sensitive actions like command execution: Ask/Full request approval through the runtime; FULL+ proceeds without an extra prompt. Approval never permits a different process or a replay of the original command.
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
# Exec Skill
|
|
2
2
|
|
|
3
|
-
- Use `exec` for
|
|
4
|
-
- `exec`
|
|
5
|
-
-
|
|
6
|
-
-
|
|
7
|
-
- The
|
|
8
|
-
-
|
|
9
|
-
-
|
|
10
|
-
- For multi-line input, use a single-quoted here-document
|
|
11
|
-
-
|
|
12
|
-
- If a process remains active, continue the same process with `exec_wait`; do not launch it again.
|
|
3
|
+
- Use `exec` for shell work needed by the user's task. Prefer dedicated capabilities when they express that work directly.
|
|
4
|
+
- `exec` uses non-interactive `/bin/bash` on Linux and macOS; it does not select a Windows shell. Use commands available on that target OS.
|
|
5
|
+
- Supply an explicit existing `cwd`. `.` and relative paths start from the configured agent-work directory, not an implicit Worker directory. `workspace/...` selects the configured workspace; absolute host directories are accepted.
|
|
6
|
+
- To create a project, select an existing parent `cwd` and create its directory in the command. A selected project provides working context, not a filesystem sandbox.
|
|
7
|
+
- The whole exec family is sensitive: Ask and Full request approval of each exact action through the normal tool flow; FULL+ executes without an additional ABot prompt. Submit the needed operation instead of declaring it unavailable solely because of the selected mode.
|
|
8
|
+
- Commands run as the runtime OS user. The plugin does not parse command contents to infer sensitivity or restrict referenced paths. OS permissions still apply; FULL+ does not grant root or Administrator rights.
|
|
9
|
+
- Execution has no interactive terminal and retains time, output and process limits. Use non-interactive forms; a terminal prompt cannot be answered through this tool.
|
|
10
|
+
- For multi-line input, use a single-quoted here-document when it preserves the intended shell input.
|
|
11
|
+
- If a process remains active, continue that exact process with `exec_wait`; do not launch the command again.
|
|
@@ -15,9 +15,9 @@ import {
|
|
|
15
15
|
captureExecFilesystemSnapshot,
|
|
16
16
|
diffExecFilesystemSnapshots,
|
|
17
17
|
} from "./filesystem-observer.js";
|
|
18
|
-
import {
|
|
18
|
+
import { resolveExecWorkingDirectory } from "./paths.js";
|
|
19
19
|
import { createExecProcessManager } from "./process-manager.js";
|
|
20
|
-
import {
|
|
20
|
+
import type { ExecSettings } from "./settings.js";
|
|
21
21
|
import type {
|
|
22
22
|
ExecActionSummary,
|
|
23
23
|
ExecFilesystemDelta,
|
|
@@ -25,12 +25,7 @@ import type {
|
|
|
25
25
|
ExecStreamSnapshot,
|
|
26
26
|
PendingExecExecution,
|
|
27
27
|
} from "./types.js";
|
|
28
|
-
import {
|
|
29
|
-
isInteractiveCommand,
|
|
30
|
-
sanitizeExecCommand,
|
|
31
|
-
scopedPathTokens,
|
|
32
|
-
stripHereDocBodies,
|
|
33
|
-
} from "./validation.js";
|
|
28
|
+
import { readExecCommand } from "./validation.js";
|
|
34
29
|
|
|
35
30
|
const COMMAND_PREVIEW_MAX_CHARS = 768;
|
|
36
31
|
|
|
@@ -81,9 +76,6 @@ function runningResult(
|
|
|
81
76
|
const rendered = renderedOutput(
|
|
82
77
|
[
|
|
83
78
|
`Command: ${execution.commandPreview}`,
|
|
84
|
-
...(execution.commandWasNormalized
|
|
85
|
-
? ["Command normalization: invalid control characters were removed."]
|
|
86
|
-
: []),
|
|
87
79
|
`CWD: ${execution.cwd.logicalPath}`,
|
|
88
80
|
"Process status: running",
|
|
89
81
|
`Process ID: ${snapshot.processId}`,
|
|
@@ -222,9 +214,6 @@ async function finalizeExecResult(params: {
|
|
|
222
214
|
const rendered = renderedOutput(
|
|
223
215
|
[
|
|
224
216
|
`Command: ${execution.commandPreview}`,
|
|
225
|
-
...(execution.commandWasNormalized
|
|
226
|
-
? ["Command normalization: invalid control characters were removed."]
|
|
227
|
-
: []),
|
|
228
217
|
`CWD: ${execution.cwd.logicalPath}`,
|
|
229
218
|
`Process ID: ${snapshot.processId}`,
|
|
230
219
|
`Process status: ${snapshot.terminationReason ?? "completed"}`,
|
|
@@ -332,34 +321,12 @@ export function createExecHandlers(
|
|
|
332
321
|
|
|
333
322
|
const exec: ToolImplementation = async (params, context) => {
|
|
334
323
|
try {
|
|
335
|
-
const
|
|
336
|
-
name: "command",
|
|
337
|
-
trim: false,
|
|
338
|
-
maxLength: EXEC_COMMAND_MAX_CHARS,
|
|
339
|
-
});
|
|
340
|
-
const { command, normalized } = sanitizeExecCommand(rawCommand);
|
|
341
|
-
if (!command) {
|
|
342
|
-
throw new ExecPluginError(
|
|
343
|
-
"exec_command_invalid",
|
|
344
|
-
"The command is empty after invalid control characters are removed.",
|
|
345
|
-
);
|
|
346
|
-
}
|
|
347
|
-
const interactive = isInteractiveCommand(command);
|
|
348
|
-
if (interactive) {
|
|
349
|
-
throw new ExecPluginError(
|
|
350
|
-
"exec_interactive_command_blocked",
|
|
351
|
-
`Interactive command ${interactive} is not supported by the non-interactive exec plugin.`,
|
|
352
|
-
);
|
|
353
|
-
}
|
|
324
|
+
const command = readExecCommand(params.command);
|
|
354
325
|
const cwd = await resolveExecWorkingDirectory(
|
|
355
326
|
pluginContext,
|
|
356
327
|
context,
|
|
357
328
|
params.cwd,
|
|
358
329
|
);
|
|
359
|
-
const staticCommand = stripHereDocBodies(command);
|
|
360
|
-
for (const token of scopedPathTokens(staticCommand)) {
|
|
361
|
-
resolveExecScopedPath(pluginContext, context, token, cwd);
|
|
362
|
-
}
|
|
363
330
|
const filesystemStateBefore = await captureExecFilesystemSnapshot(
|
|
364
331
|
cwd.absolutePath,
|
|
365
332
|
cwd.logicalPath,
|
|
@@ -370,7 +337,6 @@ export function createExecHandlers(
|
|
|
370
337
|
}).text;
|
|
371
338
|
const execution: PendingExecExecution = Object.freeze({
|
|
372
339
|
commandPreview,
|
|
373
|
-
commandWasNormalized: normalized,
|
|
374
340
|
cwd,
|
|
375
341
|
filesystemStateBefore,
|
|
376
342
|
hardTimeoutMs: settings.hardTimeoutMs,
|
|
@@ -1,69 +1,86 @@
|
|
|
1
|
-
import { stat } from "node:fs/promises";
|
|
2
|
-
import { isAbsolute, posix } from "node:path";
|
|
1
|
+
import { realpath, stat } from "node:fs/promises";
|
|
2
|
+
import { isAbsolute, posix, relative, sep } from "node:path";
|
|
3
3
|
|
|
4
4
|
import {
|
|
5
5
|
readRequiredString,
|
|
6
6
|
resolvePluginPath,
|
|
7
|
-
type ResolvedRuntimeToolPath,
|
|
8
7
|
type RuntimePluginLoadContext,
|
|
9
8
|
type ToolExecutionContext,
|
|
10
9
|
} from "../../../src/plugin-sdk/index.js";
|
|
11
|
-
|
|
12
10
|
import { ExecPluginError } from "./errors.js";
|
|
11
|
+
import type { ExecWorkingDirectory } from "./types.js";
|
|
13
12
|
|
|
14
|
-
|
|
15
|
-
"agent_work",
|
|
16
|
-
"workspace",
|
|
17
|
-
] as const);
|
|
18
|
-
|
|
19
|
-
function resolverContext(
|
|
20
|
-
pluginContext: RuntimePluginLoadContext,
|
|
21
|
-
executionContext: ToolExecutionContext | undefined,
|
|
22
|
-
): Pick<RuntimePluginLoadContext, "runtimePathResolver"> {
|
|
23
|
-
return {
|
|
24
|
-
runtimePathResolver:
|
|
25
|
-
executionContext?.runtimePathResolver ??
|
|
26
|
-
pluginContext.runtimePathResolver,
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
export function resolveExecPath(
|
|
13
|
+
function resolveContextualDirectory(
|
|
31
14
|
pluginContext: RuntimePluginLoadContext,
|
|
32
15
|
executionContext: ToolExecutionContext | undefined,
|
|
33
|
-
|
|
34
|
-
):
|
|
35
|
-
return
|
|
36
|
-
|
|
37
|
-
|
|
16
|
+
requestedPath: string,
|
|
17
|
+
): Readonly<{ absolutePath: string; base?: ExecWorkingDirectory }> {
|
|
18
|
+
if (isAbsolute(requestedPath)) return { absolutePath: requestedPath };
|
|
19
|
+
const isWorkspaceAlias =
|
|
20
|
+
requestedPath === "workspace" || requestedPath.startsWith("workspace/");
|
|
21
|
+
const base = resolvePluginPath(
|
|
38
22
|
{
|
|
39
|
-
|
|
40
|
-
|
|
23
|
+
runtimePathResolver:
|
|
24
|
+
executionContext?.runtimePathResolver ??
|
|
25
|
+
pluginContext.runtimePathResolver,
|
|
41
26
|
},
|
|
27
|
+
isWorkspaceAlias ? "workspace" : ".",
|
|
28
|
+
{ allowedLocations: [isWorkspaceAlias ? "workspace" : "agent_work"] },
|
|
42
29
|
);
|
|
30
|
+
const relativePath = isWorkspaceAlias
|
|
31
|
+
? requestedPath.slice("workspace".length + 1) || "."
|
|
32
|
+
: requestedPath;
|
|
33
|
+
return { absolutePath: `${base.absolutePath}${sep}${relativePath}`, base };
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function isOutsideExecContextBase(relativePath: string): boolean {
|
|
37
|
+
if (relativePath === "..") return true;
|
|
38
|
+
if (relativePath.startsWith(`..${sep}`)) return true;
|
|
39
|
+
return isAbsolute(relativePath);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function logicalDirectory(
|
|
43
|
+
absolutePath: string,
|
|
44
|
+
base: ExecWorkingDirectory | undefined,
|
|
45
|
+
): string {
|
|
46
|
+
if (!base) return absolutePath;
|
|
47
|
+
const fromBase = relative(base.absolutePath, absolutePath);
|
|
48
|
+
if (isOutsideExecContextBase(fromBase)) return absolutePath;
|
|
49
|
+
return posix.join(base.logicalPath, fromBase.split(sep).join("/") || ".");
|
|
43
50
|
}
|
|
44
51
|
|
|
45
52
|
export async function resolveExecWorkingDirectory(
|
|
46
53
|
pluginContext: RuntimePluginLoadContext,
|
|
47
54
|
executionContext: ToolExecutionContext | undefined,
|
|
48
55
|
rawPath: unknown,
|
|
49
|
-
): Promise<
|
|
56
|
+
): Promise<ExecWorkingDirectory> {
|
|
50
57
|
const requestedPath = readRequiredString(rawPath, {
|
|
51
58
|
name: "cwd",
|
|
59
|
+
trim: false,
|
|
52
60
|
maxLength: 4_096,
|
|
53
61
|
});
|
|
54
|
-
|
|
62
|
+
if (requestedPath.includes("\0")) {
|
|
63
|
+
throw new ExecPluginError(
|
|
64
|
+
"exec_cwd_invalid",
|
|
65
|
+
"The selected cwd contains NUL characters.",
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
const target = resolveContextualDirectory(
|
|
55
69
|
pluginContext,
|
|
56
70
|
executionContext,
|
|
57
71
|
requestedPath,
|
|
58
72
|
);
|
|
73
|
+
let absolutePath: string;
|
|
59
74
|
let info;
|
|
60
75
|
try {
|
|
61
|
-
|
|
76
|
+
// The contextual base is not a permission boundary for raw shell execution.
|
|
77
|
+
absolutePath = await realpath(target.absolutePath);
|
|
78
|
+
info = await stat(absolutePath);
|
|
62
79
|
} catch (error) {
|
|
63
80
|
if (error instanceof Error && "code" in error && error.code === "ENOENT") {
|
|
64
81
|
throw new ExecPluginError(
|
|
65
82
|
"exec_cwd_not_found",
|
|
66
|
-
"The selected cwd does not exist. Select an existing
|
|
83
|
+
"The selected cwd does not exist. Select an existing directory.",
|
|
67
84
|
);
|
|
68
85
|
}
|
|
69
86
|
throw new ExecPluginError(
|
|
@@ -77,21 +94,8 @@ export async function resolveExecWorkingDirectory(
|
|
|
77
94
|
"The selected cwd is not a directory.",
|
|
78
95
|
);
|
|
79
96
|
}
|
|
80
|
-
return
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
pluginContext: RuntimePluginLoadContext,
|
|
85
|
-
executionContext: ToolExecutionContext | undefined,
|
|
86
|
-
rawPath: string,
|
|
87
|
-
cwd: ResolvedRuntimeToolPath,
|
|
88
|
-
): ResolvedRuntimeToolPath {
|
|
89
|
-
const normalized = rawPath.replaceAll("\\", "/");
|
|
90
|
-
const requested =
|
|
91
|
-
isAbsolute(rawPath) ||
|
|
92
|
-
normalized === "workspace" ||
|
|
93
|
-
normalized.startsWith("workspace/")
|
|
94
|
-
? rawPath
|
|
95
|
-
: posix.join(cwd.logicalPath, normalized || ".");
|
|
96
|
-
return resolveExecPath(pluginContext, executionContext, requested);
|
|
97
|
+
return Object.freeze({
|
|
98
|
+
absolutePath,
|
|
99
|
+
logicalPath: logicalDirectory(absolutePath, target.base),
|
|
100
|
+
});
|
|
97
101
|
}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import type { ResolvedRuntimeToolPath } from "../../../src/plugin-sdk/index.js";
|
|
2
|
-
|
|
3
1
|
export type ExecActionSummary = Readonly<{
|
|
4
2
|
type: string;
|
|
5
3
|
target?: string;
|
|
@@ -66,10 +64,14 @@ export type ExecFilesystemDelta = Readonly<{
|
|
|
66
64
|
}>;
|
|
67
65
|
}>;
|
|
68
66
|
|
|
67
|
+
export type ExecWorkingDirectory = Readonly<{
|
|
68
|
+
absolutePath: string;
|
|
69
|
+
logicalPath: string;
|
|
70
|
+
}>;
|
|
71
|
+
|
|
69
72
|
export type PendingExecExecution = Readonly<{
|
|
70
73
|
commandPreview: string;
|
|
71
|
-
|
|
72
|
-
cwd: ResolvedRuntimeToolPath;
|
|
74
|
+
cwd: ExecWorkingDirectory;
|
|
73
75
|
filesystemStateBefore: ExecFilesystemSnapshot | null;
|
|
74
76
|
hardTimeoutMs: number;
|
|
75
77
|
idleTimeoutMs: number;
|