@abot-ai/runtime 1.7.0 → 1.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +216 -222
- package/dist/src/capabilities/tool-definition-validator/definition-parser.js +8 -0
- package/dist/src/capabilities/tool-request-resources.d.ts +3 -0
- package/dist/src/capabilities/tool-types.d.ts +4 -0
- package/dist/src/cli/abot.js +2 -0
- package/dist/src/cli/host-companion-bundle.mjs +751 -333
- package/dist/src/computer-access/collection-consent.d.ts +9 -0
- package/dist/src/computer-access/collection-consent.js +47 -0
- package/dist/src/computer-access/command-output-capture.d.ts +17 -6
- package/dist/src/computer-access/command-output-capture.js +134 -68
- package/dist/src/computer-access/command-output-protection.d.ts +17 -0
- package/dist/src/computer-access/command-output-protection.js +59 -0
- package/dist/src/computer-access/companion/command-output.d.ts +1 -0
- package/dist/src/computer-access/companion/command-output.js +23 -6
- package/dist/src/computer-access/companion/install-link-macos.js +2 -1
- package/dist/src/computer-access/companion/native-notifications.js +3 -2
- package/dist/src/computer-access/companion/native-session.js +6 -2
- package/dist/src/computer-access/companion/observation-filter.js +2 -26
- package/dist/src/computer-access/companion/observation-process.d.ts +2 -0
- package/dist/src/computer-access/companion/observation-process.js +51 -25
- package/dist/src/computer-access/companion/observation-redaction.d.ts +2 -7
- package/dist/src/computer-access/companion/observation-redaction.js +2 -111
- package/dist/src/computer-access/companion/secret-protection-protocol.d.ts +6 -0
- package/dist/src/computer-access/companion/secret-protection-protocol.js +6 -0
- package/dist/src/computer-access/computer/companion-sessions.js +7 -6
- package/dist/src/computer-access/computer/unix-native-process.js +23 -11
- package/dist/src/computer-access/handlers.d.ts +2 -1
- package/dist/src/computer-access/handlers.js +79 -11
- package/dist/src/computer-access/host-observation.d.ts +3 -3
- package/dist/src/computer-access/native-observation-connection.d.ts +12 -0
- package/dist/src/computer-access/native-observation-connection.js +78 -0
- package/dist/src/computer-access/native-observation-ownership.d.ts +6 -0
- package/dist/src/computer-access/native-observation-ownership.js +55 -0
- package/dist/src/computer-access/native-observation-shutdown.d.ts +7 -0
- package/dist/src/computer-access/native-observation-shutdown.js +58 -0
- package/dist/src/computer-access/observation-source.d.ts +6 -0
- package/dist/src/computer-access/observation-source.js +10 -0
- package/dist/src/computer-access/security/desktop-result.d.ts +8 -0
- package/dist/src/computer-access/security/desktop-result.js +146 -0
- package/dist/src/computer-access/security/observed-error.d.ts +2 -0
- package/dist/src/computer-access/security/observed-error.js +10 -0
- package/dist/src/computer-access/security/secret-text.d.ts +7 -0
- package/dist/src/computer-access/security/secret-text.js +111 -0
- package/dist/src/computer-access/security/system-results.d.ts +2 -0
- package/dist/src/computer-access/security/system-results.js +53 -0
- package/dist/src/computer-access/system-result-protection.d.ts +11 -0
- package/dist/src/computer-access/system-result-protection.js +1 -0
- package/dist/src/model-gateway/observability/provider-response-capture.d.ts +60 -0
- package/dist/src/model-gateway/observability/provider-response-capture.js +68 -0
- package/dist/src/model-gateway/observability/provider-response-prefix.d.ts +7 -0
- package/dist/src/model-gateway/observability/provider-response-prefix.js +14 -0
- package/dist/src/model-gateway/observability/provider-response-tail.d.ts +8 -0
- package/dist/src/model-gateway/observability/provider-response-tail.js +28 -0
- package/dist/src/model-gateway/observability/provider-sse-diagnostics.d.ts +30 -0
- package/dist/src/model-gateway/observability/provider-sse-diagnostics.js +119 -0
- package/dist/src/model-gateway/observability/provider-trace.js +30 -8
- package/dist/src/model-gateway/protocol/message-contract.d.ts +1 -0
- package/dist/src/model-gateway/protocol/message-contract.js +1 -1
- package/dist/src/model-gateway/providers/ollama/adapter.js +8 -2
- package/dist/src/model-gateway/providers/ollama/stream-normalizer.js +70 -50
- package/dist/src/model-gateway/providers/ollama/stream-termination.d.ts +6 -0
- package/dist/src/model-gateway/providers/ollama/stream-termination.js +20 -0
- package/dist/src/model-gateway/providers/openai/adapter.js +9 -7
- package/dist/src/model-gateway/providers/openai/diagnostics.d.ts +0 -1
- package/dist/src/model-gateway/providers/openai/diagnostics.js +0 -9
- package/dist/src/model-gateway/providers/openai/function-output.d.ts +11 -0
- package/dist/src/model-gateway/providers/openai/function-output.js +37 -0
- package/dist/src/model-gateway/providers/openai/function-result.d.ts +7 -0
- package/dist/src/model-gateway/providers/openai/function-result.js +35 -0
- package/dist/src/model-gateway/providers/openai/message-output-policy.d.ts +3 -0
- package/dist/src/model-gateway/providers/openai/message-output-policy.js +16 -0
- package/dist/src/model-gateway/providers/openai/payload.d.ts +0 -2
- package/dist/src/model-gateway/providers/openai/payload.js +6 -23
- package/dist/src/model-gateway/providers/openai/response-lifetime.d.ts +2 -0
- package/dist/src/model-gateway/providers/openai/response-lifetime.js +64 -0
- package/dist/src/model-gateway/providers/openai/sse-data.d.ts +9 -0
- package/dist/src/model-gateway/providers/openai/sse-data.js +67 -0
- package/dist/src/model-gateway/providers/openai/stream-normalizer.d.ts +10 -22
- package/dist/src/model-gateway/providers/openai/stream-normalizer.js +78 -79
- package/dist/src/model-gateway/providers/openai/stream.js +13 -41
- package/dist/src/model-gateway/providers/openai/structured-message-output.d.ts +42 -0
- package/dist/src/model-gateway/providers/openai/structured-message-output.js +175 -0
- package/dist/src/model-gateway/server/chat-handler.js +5 -7
- package/dist/src/model-gateway/server/chat-stream-response.d.ts +7 -0
- package/dist/src/model-gateway/server/chat-stream-response.js +25 -0
- package/dist/src/model-gateway/server.js +5 -1
- package/dist/src/plugin-contract/index.d.ts +1 -0
- package/dist/src/plugin-contract/index.js +1 -0
- package/dist/src/plugin-contract/manifest.d.ts +2 -0
- package/dist/src/plugin-contract/manifest.js +1 -0
- package/dist/src/plugin-contract/platform-compatibility.d.ts +16 -0
- package/dist/src/plugin-contract/platform-compatibility.js +3 -0
- package/dist/src/plugin-sdk/computer-access.d.ts +4 -0
- package/dist/src/plugin-sdk/computer-access.js +1 -0
- package/dist/src/plugin-sdk/files-windows/process.d.ts +3 -0
- package/dist/src/plugin-sdk/files-windows/process.js +93 -0
- package/dist/src/plugin-sdk/files-windows/read-script.d.ts +1 -0
- package/dist/src/plugin-sdk/files-windows/read-script.js +43 -0
- package/dist/src/plugin-sdk/files-windows/read.d.ts +6 -0
- package/dist/src/plugin-sdk/files-windows/read.js +56 -0
- package/dist/src/plugin-sdk/files-windows/result.d.ts +4 -0
- package/dist/src/plugin-sdk/files-windows/result.js +67 -0
- package/dist/src/plugin-sdk/files.js +4 -0
- package/dist/src/plugin-sdk/index.d.ts +1 -0
- package/dist/src/plugin-sdk/index.js +1 -0
- package/dist/src/plugin-sdk/mutation-result.d.ts +7 -0
- package/dist/src/plugin-sdk/mutation-result.js +11 -0
- package/dist/src/runtime/adapters/long-term-memory/file-lock/acquisition.js +20 -3
- package/dist/src/runtime/adapters/long-term-memory/file-lock/owner-record.js +3 -1
- package/dist/src/runtime/adapters/long-term-memory/file-lock/path-observation.d.ts +3 -0
- package/dist/src/runtime/adapters/long-term-memory/file-lock/path-observation.js +20 -0
- package/dist/src/runtime/adapters/long-term-memory/file-lock/snapshot.js +7 -3
- package/dist/src/runtime/adapters/passive-learning-runtime.d.ts +1 -1
- package/dist/src/runtime/adapters/passive-learning-runtime.js +3 -3
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-rejection.d.ts +2 -2
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-rejection.js +2 -2
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/prepared-execution.js +17 -11
- package/dist/src/runtime/adapters/runtime-observation-connection.d.ts +5 -0
- package/dist/src/runtime/adapters/runtime-observation-connection.js +13 -0
- package/dist/src/runtime/capabilities/tool-availability.js +6 -0
- package/dist/src/runtime/context/capability-brief.d.ts +2 -2
- package/dist/src/runtime/context/capability-brief.js +3 -3
- package/dist/src/runtime/context/capability-descriptions.d.ts +3 -2
- package/dist/src/runtime/context/capability-descriptions.js +57 -20
- package/dist/src/runtime/local-host/windows-private-access.js +2 -0
- package/dist/src/runtime/long-term-memory/conversation-authoring/context.d.ts +6 -1
- package/dist/src/runtime/long-term-memory/conversation-authoring/context.js +51 -25
- package/dist/src/runtime/long-term-memory/initial-context.d.ts +17 -0
- package/dist/src/runtime/long-term-memory/initial-context.js +57 -0
- package/dist/src/runtime/long-term-memory/projection.js +1 -1
- package/dist/src/runtime/orchestration/role-calls/candidate-validation.js +2 -1
- package/dist/src/runtime/orchestration/role-calls/checkpoint-state.d.ts +1 -1
- package/dist/src/runtime/orchestration/role-calls/checkpoint-state.js +5 -2
- package/dist/src/runtime/orchestration/role-calls/contracts.d.ts +2 -1
- package/dist/src/runtime/orchestration/role-calls/ledger.d.ts +2 -1
- package/dist/src/runtime/orchestration/role-calls/ledger.js +2 -2
- package/dist/src/runtime/orchestration/role-calls/memory-recall-contract.d.ts +7 -0
- package/dist/src/runtime/orchestration/role-calls/memory-recall-state-validation.d.ts +2 -0
- package/dist/src/runtime/orchestration/role-calls/memory-recall-state-validation.js +88 -0
- package/dist/src/runtime/orchestration/role-calls/reducer.d.ts +1 -1
- package/dist/src/runtime/orchestration/role-calls/reducer.js +2 -1
- package/dist/src/runtime/orchestration/worker-capabilities/contracts.d.ts +3 -1
- package/dist/src/runtime/orchestration/worker-capabilities/contracts.js +1 -1
- package/dist/src/runtime/orchestration/worker-capabilities/execution/approval-group.js +5 -1
- package/dist/src/runtime/orchestration/worker-capabilities/execution/execution-freshness.d.ts +5 -0
- package/dist/src/runtime/orchestration/worker-capabilities/execution/execution-freshness.js +31 -0
- package/dist/src/runtime/passive-learning/application-catalog.js +3 -1
- package/dist/src/runtime/passive-learning/collection-source.js +7 -0
- package/dist/src/runtime/passive-learning/service.js +2 -3
- package/dist/src/runtime/passive-learning/status-projection.d.ts +2 -0
- package/dist/src/runtime/passive-learning/status-projection.js +9 -0
- package/dist/src/runtime/plugins/installation/package.d.ts +8 -0
- package/dist/src/runtime/plugins/installation/package.js +2 -0
- package/dist/src/runtime/plugins/installation/service.d.ts +7 -0
- package/dist/src/runtime/plugins/loader.js +24 -14
- package/dist/src/runtime/plugins/manifest-platform-compatibility.d.ts +2 -0
- package/dist/src/runtime/plugins/manifest-platform-compatibility.js +39 -0
- package/dist/src/runtime/plugins/manifest-projection.js +3 -0
- package/dist/src/runtime/plugins/manifest-validator.js +9 -1
- package/dist/src/runtime/plugins/platform-compatibility.d.ts +4 -0
- package/dist/src/runtime/plugins/platform-compatibility.js +44 -0
- package/dist/src/runtime/request/approval-wait/activation-events.js +19 -7
- package/dist/src/runtime/request/approval-wait/execution-compaction-restore.d.ts +20 -0
- package/dist/src/runtime/request/approval-wait/execution-compaction-restore.js +118 -0
- package/dist/src/runtime/request/approval-wait/super-compaction-restore.js +2 -1
- package/dist/src/runtime/request/capability-execution-freshness.js +6 -1
- package/dist/src/runtime/request/execution-agent-root-execution.js +11 -1
- package/dist/src/runtime/request/prepared-execution.js +3 -0
- package/dist/src/runtime/request/root-contract.d.ts +2 -0
- package/dist/src/runtime/request/root-execution-kernel.js +1 -0
- package/dist/src/runtime/request/runner.js +9 -3
- package/dist/src/runtime/request/supervisor-root-execution.js +6 -0
- package/dist/src/runtime/steps/execution-agent/capability-result-context.d.ts +6 -0
- package/dist/src/runtime/steps/execution-agent/capability-result-context.js +29 -0
- package/dist/src/runtime/steps/execution-agent/contracts.d.ts +10 -0
- package/dist/src/runtime/steps/execution-agent/decision-parsing.js +13 -1
- package/dist/src/runtime/steps/execution-agent/direct-response-configuration.d.ts +3 -0
- package/dist/src/runtime/steps/execution-agent/direct-response-configuration.js +64 -0
- package/dist/src/runtime/steps/execution-agent/direct-response-contract.d.ts +7 -0
- package/dist/src/runtime/steps/execution-agent/direct-response-contract.js +56 -0
- package/dist/src/runtime/steps/execution-agent/direct-response-policy.d.ts +9 -0
- package/dist/src/runtime/steps/execution-agent/direct-response-policy.js +30 -0
- package/dist/src/runtime/steps/execution-agent/direct-response-prompt.d.ts +7 -0
- package/dist/src/runtime/steps/execution-agent/direct-response-prompt.js +43 -0
- package/dist/src/runtime/steps/execution-agent/format.js +4 -3
- package/dist/src/runtime/steps/execution-agent/input.d.ts +2 -0
- package/dist/src/runtime/steps/execution-agent/input.js +22 -1
- package/dist/src/runtime/steps/execution-agent/plugin-catalog.d.ts +4 -0
- package/dist/src/runtime/steps/execution-agent/plugin-catalog.js +8 -0
- package/dist/src/runtime/steps/execution-agent/prompt.d.ts +1 -0
- package/dist/src/runtime/steps/execution-agent/prompt.js +7 -8
- package/dist/src/runtime/steps/execution-agent/response-prompt.js +1 -0
- package/dist/src/runtime/steps/execution-agent/response-run.js +5 -11
- package/dist/src/runtime/steps/execution-agent/run.js +4 -1
- package/dist/src/runtime/steps/execution-agent/state-context.d.ts +3 -5
- package/dist/src/runtime/steps/execution-agent/state-context.js +5 -51
- package/dist/src/runtime/steps/execution-agent/work-plan-contract.d.ts +1 -3
- package/dist/src/runtime/steps/execution-agent/work-plan-contract.js +0 -55
- package/dist/src/runtime/steps/execution-agent/work-plan-schema.d.ts +3 -0
- package/dist/src/runtime/steps/execution-agent/work-plan-schema.js +61 -0
- package/dist/src/runtime/steps/planner-decision/capability-brief.d.ts +2 -0
- package/dist/src/runtime/steps/planner-decision/prompt.js +26 -49
- package/dist/src/runtime/steps/supervisor-decision/input.d.ts +1 -0
- package/dist/src/runtime/steps/supervisor-decision/input.js +5 -0
- package/dist/src/runtime/steps/supervisor-decision/prompt.d.ts +1 -0
- package/dist/src/runtime/steps/supervisor-decision/prompt.js +6 -2
- package/dist/src/runtime/steps/supervisor-decision/run.d.ts +1 -0
- package/dist/src/runtime/steps/supervisor-decision/run.js +4 -0
- package/dist/src/runtime/steps/supervisor-response/run.d.ts +2 -0
- package/dist/src/runtime/steps/supervisor-response/run.js +3 -6
- package/dist/src/sessions/durable-session-commit.js +3 -3
- package/dist/src/sessions/prepared-session-replacement.d.ts +6 -0
- package/dist/src/sessions/prepared-session-replacement.js +46 -0
- package/dist/src/sessions/session-store.js +3 -3
- package/dist/src/shared/passive-observation-self-exclusion.d.ts +5 -0
- package/dist/src/shared/passive-observation-self-exclusion.js +37 -0
- package/dist/src/shared/windows-file-io/authority-script.d.ts +1 -0
- package/dist/src/shared/windows-file-io/authority-script.js +94 -0
- package/dist/src/shared/windows-file-io/native-script.d.ts +2 -0
- package/dist/src/shared/windows-file-io/native-script.js +120 -0
- package/dist/src/shared/windows-file-io/read-bytes-script.d.ts +1 -0
- package/dist/src/shared/windows-file-io/read-bytes-script.js +18 -0
- package/dist/src/shared/windows-job-object.d.ts +2 -0
- package/dist/src/shared/windows-job-object.js +66 -0
- package/dist/src/web-ui/app/ARCHITECTURE.md +1 -1
- package/dist/src/web-ui/app/app-bootstrap.js +14 -1
- package/dist/src/web-ui/app/app-state.js +0 -7
- package/dist/src/web-ui/app/app.js +54 -156
- package/dist/src/web-ui/app/components/automations/node-inspector.js +3 -2
- package/dist/src/web-ui/app/components/automations/step-editor-dialog.js +3 -0
- package/dist/src/web-ui/app/components/automations/timeline.js +3 -2
- package/dist/src/web-ui/app/components/composer-submission-notice.js +50 -0
- package/dist/src/web-ui/app/components/config-workspace/model-plugin-permissions.js +7 -1
- package/dist/src/web-ui/app/components/config-workspace/workspace-mutations.js +22 -2
- package/dist/src/web-ui/app/components/dashboard/compact-layout.js +137 -0
- package/dist/src/web-ui/app/components/dashboard/icons.js +5 -0
- package/dist/src/web-ui/app/components/dashboard/widget-card.js +85 -0
- package/dist/src/web-ui/app/components/dashboard/widget-dialog.js +83 -0
- package/dist/src/web-ui/app/components/dashboard/widget-summaries.js +155 -0
- package/dist/src/web-ui/app/components/dashboard/workspace.js +28 -4
- package/dist/src/web-ui/app/components/home-guidance/daily-review.js +2 -2
- package/dist/src/web-ui/app/components/home-guidance/home-guidance.js +20 -6
- package/dist/src/web-ui/app/components/model-setup/context-window-feedback.js +53 -0
- package/dist/src/web-ui/app/components/model-setup/save-flow.js +3 -1
- package/dist/src/web-ui/app/components/model-setup/save-outcome.js +1 -0
- package/dist/src/web-ui/app/components/model-setup/wizard.js +12 -0
- package/dist/src/web-ui/app/components/operations-summary.js +2 -1
- package/dist/src/web-ui/app/components/passive-learning/activity-controls.js +4 -0
- package/dist/src/web-ui/app/components/passive-learning/collection-access.js +35 -0
- package/dist/src/web-ui/app/components/passive-learning/collection-consent-dialog.js +59 -0
- package/dist/src/web-ui/app/components/passive-learning/collection-consent-gate.js +94 -0
- package/dist/src/web-ui/app/components/passive-learning/computer-update-notice.js +6 -0
- package/dist/src/web-ui/app/components/passive-learning/failure-copy.js +1 -0
- package/dist/src/web-ui/app/components/passive-learning/home-widget-preview.js +32 -0
- package/dist/src/web-ui/app/components/passive-learning/home.js +11 -3
- package/dist/src/web-ui/app/components/passive-learning/macos-collection-restart-notice.js +1 -0
- package/dist/src/web-ui/app/components/passive-learning/memory.js +2 -4
- package/dist/src/web-ui/app/components/passive-learning/workspace-view.js +2 -2
- package/dist/src/web-ui/app/components/plugins/compatibility.js +13 -0
- package/dist/src/web-ui/app/components/plugins/discovery-rendering.js +9 -1
- package/dist/src/web-ui/app/components/plugins/installation-compatibility.js +7 -0
- package/dist/src/web-ui/app/components/plugins/installation.js +2 -1
- package/dist/src/web-ui/app/components/plugins/rendering.js +3 -0
- package/dist/src/web-ui/app/components/reasoning-override-prompt.js +82 -0
- package/dist/src/web-ui/app/components/runtime-config-activation.js +22 -8
- package/dist/src/web-ui/app/components/runtime-setup/optional-steps.js +7 -4
- package/dist/src/web-ui/app/components/runtime-setup/plugins.js +3 -1
- package/dist/src/web-ui/app/components/runtime-setup/rendering.js +6 -4
- package/dist/src/web-ui/app/components/runtime-setup-guide.d.ts +1 -0
- package/dist/src/web-ui/app/components/schedules/details.js +3 -2
- package/dist/src/web-ui/app/components/schedules/form.js +10 -8
- package/dist/src/web-ui/app/components/schedules/workspace.js +23 -4
- package/dist/src/web-ui/app/components/session-sidebar-sections.js +2 -2
- package/dist/src/web-ui/app/components/spark-chat/handoff-actions.js +9 -3
- package/dist/src/web-ui/app/components/spark-chat/panel.js +1 -1
- package/dist/src/web-ui/app/components/spark-chat/placement.js +4 -7
- package/dist/src/web-ui/app/components/spark-chat/settings.js +8 -4
- package/dist/src/web-ui/app/components/system-host/home-widget-permission-preview.js +75 -0
- package/dist/src/web-ui/app/components/system-host/home-widget-summary.js +93 -0
- package/dist/src/web-ui/app/components/system-host/macos-permission-rendering.js +2 -2
- package/dist/src/web-ui/app/components/system-host/macos-permissions.js +2 -0
- package/dist/src/web-ui/app/components/system-host/native-windows-access.js +50 -0
- package/dist/src/web-ui/app/components/system-host/rendering.js +6 -3
- package/dist/src/web-ui/app/components/system-host/windows-store-setup.js +2 -2
- package/dist/src/web-ui/app/components/workspace-storage-notice.js +37 -0
- package/dist/src/web-ui/app/computer-access-feature.js +13 -1
- package/dist/src/web-ui/app/configuration-environment-refresh.js +27 -34
- package/dist/src/web-ui/app/configuration-feature.js +11 -1
- package/dist/src/web-ui/app/controllers/app-event-bindings.js +38 -105
- package/dist/src/web-ui/app/controllers/chat-request-controller.d.ts +28 -0
- package/dist/src/web-ui/app/controllers/chat-request-controller.js +34 -66
- package/dist/src/web-ui/app/controllers/composer-attachments-controller.d.ts +15 -40
- package/dist/src/web-ui/app/controllers/composer-attachments-controller.js +26 -69
- package/dist/src/web-ui/app/controllers/composer-draft-view.d.ts +27 -0
- package/dist/src/web-ui/app/controllers/composer-draft-view.js +48 -0
- package/dist/src/web-ui/app/controllers/composer-drafts.d.ts +55 -0
- package/dist/src/web-ui/app/controllers/composer-drafts.js +120 -0
- package/dist/src/web-ui/app/controllers/composer-feature.d.ts +65 -0
- package/dist/src/web-ui/app/controllers/composer-feature.js +124 -0
- package/dist/src/web-ui/app/controllers/composer-queue-controller.d.ts +33 -94
- package/dist/src/web-ui/app/controllers/composer-queue-controller.js +185 -251
- package/dist/src/web-ui/app/controllers/composer-submission-lifecycle.d.ts +48 -0
- package/dist/src/web-ui/app/controllers/composer-submission-lifecycle.js +97 -0
- package/dist/src/web-ui/app/controllers/composer-submit-controller.d.ts +30 -61
- package/dist/src/web-ui/app/controllers/composer-submit-controller.js +56 -138
- package/dist/src/web-ui/app/controllers/composer-surface-controller.js +6 -0
- package/dist/src/web-ui/app/controllers/composer-workspace-controller.d.ts +22 -40
- package/dist/src/web-ui/app/controllers/composer-workspace-controller.js +49 -165
- package/dist/src/web-ui/app/controllers/conversation-navigation-intent.js +15 -0
- package/dist/src/web-ui/app/controllers/conversation-request-hydration.js +20 -17
- package/dist/src/web-ui/app/controllers/conversation-session-controller.d.ts +1 -2
- package/dist/src/web-ui/app/controllers/conversation-session-controller.js +49 -22
- package/dist/src/web-ui/app/controllers/conversation-workspace-activation.js +27 -0
- package/dist/src/web-ui/app/controllers/daily-memory-review.js +15 -16
- package/dist/src/web-ui/app/controllers/environment-transition.js +126 -0
- package/dist/src/web-ui/app/controllers/environment-workspace-preparation.js +18 -0
- package/dist/src/web-ui/app/controllers/home-composer-feature.d.ts +14 -36
- package/dist/src/web-ui/app/controllers/home-composer-feature.js +17 -114
- package/dist/src/web-ui/app/controllers/home-conversation-activation.js +6 -8
- package/dist/src/web-ui/app/controllers/operations-controller.js +2 -1
- package/dist/src/web-ui/app/controllers/passive-learning-controller.js +56 -0
- package/dist/src/web-ui/app/controllers/projects-controller.d.ts +1 -1
- package/dist/src/web-ui/app/controllers/projects-controller.js +6 -1
- package/dist/src/web-ui/app/controllers/reasoning-mode-controller.js +174 -0
- package/dist/src/web-ui/app/controllers/runtime-selection-controller.d.ts +7 -0
- package/dist/src/web-ui/app/controllers/runtime-selection-controller.js +20 -155
- package/dist/src/web-ui/app/controllers/session-controller.js +33 -17
- package/dist/src/web-ui/app/controllers/session-pin-updates.js +14 -0
- package/dist/src/web-ui/app/controllers/session-sidebar-controller.js +12 -14
- package/dist/src/web-ui/app/controllers/spark-chat-sync.js +2 -2
- package/dist/src/web-ui/app/controllers/steer-controller.js +9 -7
- package/dist/src/web-ui/app/controllers/tool-permission-mode-controller.js +1 -1
- package/dist/src/web-ui/app/controllers/workspace-conversation-opener.js +34 -0
- package/dist/src/web-ui/app/dashboard-feature.js +12 -2
- package/dist/src/web-ui/app/lib/reasoning-controls.js +40 -0
- package/dist/src/web-ui/app/lib/session-composer-queue-ownership.js +58 -0
- package/dist/src/web-ui/app/lib/session-composer-queue.d.ts +12 -0
- package/dist/src/web-ui/app/lib/session-composer-queue.js +25 -6
- package/dist/src/web-ui/app/passive-learning-feature.js +18 -5
- package/dist/src/web-ui/app/schedules-feature.js +5 -3
- package/dist/src/web-ui/app/services/client-preferences.d.ts +18 -10
- package/dist/src/web-ui/app/services/client-preferences.js +25 -16
- package/dist/src/web-ui/app/services/home-guidance-preferences.js +13 -13
- package/dist/src/web-ui/app/services/reasoning-override.js +12 -0
- package/dist/src/web-ui/app/services/runtime-web-client/automations.js +10 -2
- package/dist/src/web-ui/app/services/runtime-web-client/memory.js +7 -2
- package/dist/src/web-ui/app/services/runtime-web-client/system-host.js +2 -0
- package/dist/src/web-ui/app/services/runtime-web-client.d.ts +2 -0
- package/dist/src/web-ui/app/services/runtime-web-client.js +2 -0
- package/dist/src/web-ui/app/services/server-composer-queue.js +32 -0
- package/dist/src/web-ui/app/services/session-sidebar-preferences.js +5 -5
- package/dist/src/web-ui/app/services/workspace-state-storage.js +116 -0
- package/dist/src/web-ui/app/services/workspace-state.js +27 -0
- package/dist/src/web-ui/app/spark-chat-conversation.js +34 -45
- package/dist/src/web-ui/app/spark-chat-feature.js +10 -4
- package/dist/src/web-ui/app/styles/21-composer-controls.css +16 -0
- package/dist/src/web-ui/app/styles/41-plugin-management.css +8 -0
- package/dist/src/web-ui/app/styles/42-model-plugin-permissions.css +1 -0
- package/dist/src/web-ui/app/styles/49-collection-consent.css +30 -0
- package/dist/src/web-ui/app/styles/64-workspace-storage.css +23 -0
- package/dist/src/web-ui/app/styles/95-home-widgets.css +109 -0
- package/dist/src/web-ui/app/styles.css +3 -0
- package/dist/src/web-ui/client-state/contracts.d.ts +15 -0
- package/dist/src/web-ui/client-state/contracts.js +13 -0
- package/dist/src/web-ui/client-state/preference-shapes.d.ts +2 -0
- package/dist/src/web-ui/client-state/preference-shapes.js +80 -0
- package/dist/src/web-ui/client-state/preferences.d.ts +3 -0
- package/dist/src/web-ui/client-state/preferences.js +84 -0
- package/dist/src/web-ui/client-state/queue.d.ts +3 -0
- package/dist/src/web-ui/client-state/queue.js +43 -0
- package/dist/src/web-ui/client-state/routes.d.ts +7 -0
- package/dist/src/web-ui/client-state/routes.js +58 -0
- package/dist/src/web-ui/client-state/store.d.ts +14 -0
- package/dist/src/web-ui/client-state/store.js +88 -0
- package/dist/src/web-ui/local-runtime/configuration-activation-source.js +2 -0
- package/dist/src/web-ui/local-runtime/http.js +11 -2
- package/dist/src/web-ui/local-runtime/model-context-capacity-error.d.ts +14 -0
- package/dist/src/web-ui/local-runtime/model-context-capacity-error.js +28 -0
- package/dist/src/web-ui/local-runtime/model-setup-context-window.d.ts +15 -0
- package/dist/src/web-ui/local-runtime/model-setup-context-window.js +25 -0
- package/dist/src/web-ui/local-runtime/model-setup-routes.js +2 -0
- package/dist/src/web-ui/local-runtime/model-setup-service.js +5 -2
- package/dist/src/web-ui/local-runtime/model-setup-validation.d.ts +1 -0
- package/dist/src/web-ui/local-runtime/model-setup-validation.js +14 -7
- package/dist/src/web-ui/local-runtime/request-body-error.d.ts +11 -0
- package/dist/src/web-ui/local-runtime/request-body-error.js +14 -0
- package/dist/src/web-ui/local-runtime/request-control-observation.js +2 -2
- package/dist/src/web-ui/local-runtime/request-execution.js +18 -18
- package/dist/src/web-ui/local-runtime/runtime-setup-connection-edit.d.ts +2 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-connection-edit.js +35 -22
- package/dist/src/web-ui/local-runtime/runtime-setup-context-window.d.ts +2 -9
- package/dist/src/web-ui/local-runtime/runtime-setup-context-window.js +4 -27
- package/dist/src/web-ui/local-runtime/runtime-setup-credentials.d.ts +15 -1
- package/dist/src/web-ui/local-runtime/runtime-setup-credentials.js +30 -11
- package/dist/src/web-ui/local-runtime/runtime-setup-edit-files.d.ts +20 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-edit-files.js +104 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-edit-journal.d.ts +29 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-edit-journal.js +151 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-edit-recovery.d.ts +7 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-edit-recovery.js +87 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-edit-transaction.d.ts +3 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-edit-transaction.js +37 -0
- package/dist/src/web-ui/local-runtime/runtime-setup-service.js +4 -0
- package/dist/src/web-ui/local-runtime-backend.js +14 -0
- package/dist/src/web-ui/plugin-management-catalog.d.ts +3 -1
- package/dist/src/web-ui/plugin-management-catalog.js +3 -1
- package/dist/src/web-ui/plugin-management-service.d.ts +1 -0
- package/dist/src/web-ui/plugin-removal-service.d.ts +1 -0
- package/dist/src/web-ui/server-readiness.d.ts +3 -0
- package/dist/src/web-ui/server-readiness.js +36 -0
- package/dist/src/web-ui/server.d.ts +2 -0
- package/dist/src/web-ui/server.js +23 -1
- package/dist/src/web-ui/system-host-service.js +13 -2
- package/dist/src/web-ui/system-host-setup/collection-consent-route.d.ts +3 -0
- package/dist/src/web-ui/system-host-setup/collection-consent-route.js +30 -0
- package/docs/installation.md +44 -5
- package/docs/plugins.md +174 -28
- package/docs/tool-execution-result-evidence-contract.md +57 -0
- package/docs/windows-companion-store.md +5 -0
- package/package.json +4 -2
- package/plugins/capability-brief/plugin.json +5 -1
- package/plugins/code-outline/README.md +20 -0
- package/plugins/code-outline/plugin.json +2 -1
- package/plugins/code-outline/source/index.ts +16 -20
- package/plugins/code-outline/source/read-failure.ts +40 -0
- package/plugins/code-outline/src/index.cjs +614 -29
- package/plugins/document-reader/README.md +33 -0
- package/plugins/document-reader/plugin.json +2 -1
- package/plugins/document-reader/source/pdf-contract.ts +57 -0
- package/plugins/document-reader/source/pdf-parser.ts +139 -0
- package/plugins/document-reader/source/pdf-process-main.ts +56 -0
- package/plugins/document-reader/source/pdf-process.ts +207 -0
- package/plugins/document-reader/source/pdf-result.ts +79 -0
- package/plugins/document-reader/source/pdf-worker.ts +39 -303
- package/plugins/document-reader/source/pdf.ts +4 -1
- package/plugins/document-reader/source/read-failure.ts +37 -0
- package/plugins/document-reader/source/reader.ts +3 -19
- package/plugins/document-reader/src/index.cjs +995 -211
- package/plugins/exec/README.md +19 -0
- package/plugins/exec/plugin.json +4 -3
- package/plugins/exec/skills/exec_skill/SKILL.md +3 -2
- package/plugins/exec/source/filesystem-file-observer.ts +98 -0
- package/plugins/exec/source/filesystem-observer.ts +8 -79
- package/plugins/exec/source/output-files.ts +12 -6
- package/plugins/exec/source/paths.ts +3 -1
- package/plugins/exec/source/process-manager.ts +8 -24
- package/plugins/exec/source/shell-platform.ts +19 -3
- package/plugins/exec/source/shell-process.ts +55 -0
- package/plugins/exec/source/windows-job-source.ts +1 -0
- package/plugins/exec/source/windows-shell-bootstrap.ts +20 -0
- package/plugins/exec/src/index.cjs +252 -96
- package/plugins/filesystem/README.md +65 -0
- package/plugins/filesystem/plugin.json +7 -3
- package/plugins/filesystem/source/atomic-write.ts +2 -0
- package/plugins/filesystem/source/bounded-io.ts +80 -306
- package/plugins/filesystem/source/directory-sample.ts +2 -0
- package/plugins/filesystem/source/errors.ts +14 -0
- package/plugins/filesystem/source/file-observation.ts +151 -0
- package/plugins/filesystem/source/file-version.ts +41 -0
- package/plugins/filesystem/source/index.ts +6 -0
- package/plugins/filesystem/source/mutation-coordinator.ts +1 -0
- package/plugins/filesystem/source/windows/authority-script.ts +1 -0
- package/plugins/filesystem/source/windows/native-script.ts +1 -0
- package/plugins/filesystem/source/windows/operations.ts +197 -0
- package/plugins/filesystem/source/windows/process.ts +214 -0
- package/plugins/filesystem/source/windows/publication-script.ts +29 -0
- package/plugins/filesystem/source/windows/read-script.ts +63 -0
- package/plugins/filesystem/source/windows/request-availability.ts +67 -0
- package/plugins/filesystem/source/windows/source.ts +42 -0
- package/plugins/filesystem/source/windows/storage-script.ts +11 -0
- package/plugins/filesystem/source/windows/streams-script.ts +24 -0
- package/plugins/filesystem/source/windows/write-script.ts +86 -0
- package/plugins/filesystem/src/index.cjs +1208 -322
- package/plugins/json-inspector/README.md +18 -0
- package/plugins/json-inspector/plugin.json +2 -1
- package/plugins/json-inspector/source/index.ts +16 -19
- package/plugins/json-inspector/source/read-failure.ts +42 -0
- package/plugins/json-inspector/src/index.cjs +612 -27
- package/plugins/local-search/README.md +29 -0
- package/plugins/local-search/plugin.json +2 -1
- package/plugins/local-search/source/errors.ts +2 -0
- package/plugins/local-search/source/paths.ts +3 -0
- package/plugins/local-search/source/ripgrep-process.ts +31 -5
- package/plugins/local-search/source/ripgrep.ts +3 -3
- package/plugins/local-search/source/windows-authority.ts +99 -0
- package/plugins/local-search/source/windows-search-lease.ts +49 -0
- package/plugins/local-search/source/windows-search-process.ts +91 -0
- package/plugins/local-search/source/windows-search-script.ts +52 -0
- package/plugins/local-search/src/index.cjs +595 -26
- package/plugins/memory/plugin.json +5 -1
- package/plugins/memory/source/lock-directory-claim.ts +56 -0
- package/plugins/memory/source/lock-owner-file.ts +71 -0
- package/plugins/memory/source/lock-path-observation.ts +26 -0
- package/plugins/memory/source/prepared-memory-replacement.ts +40 -0
- package/plugins/memory/source/store-lock.ts +12 -7
- package/plugins/memory/source/store.ts +3 -2
- package/plugins/memory/src/index.cjs +174 -25
- package/plugins/project-orientation/README.md +23 -0
- package/plugins/project-orientation/plugin.json +2 -1
- package/plugins/project-orientation/source/index.ts +12 -9
- package/plugins/project-orientation/source/inspection-failure.ts +70 -0
- package/plugins/project-orientation/source/manifest-summary.ts +9 -2
- package/plugins/project-orientation/source/tree.ts +6 -0
- package/plugins/project-orientation/src/index.cjs +647 -31
- package/plugins/system/README.md +51 -15
- package/plugins/system/plugin.json +6 -2
- package/plugins/system/skills/system_actions/SKILL.md +1 -1
- package/plugins/system/source/command-working-directory.ts +47 -0
- package/plugins/system/source/computer/handlers.ts +13 -9
- package/plugins/system/source/computer/observation-result.ts +10 -5
- package/plugins/system/source/computer/request-computers.ts +10 -3
- package/plugins/system/source/computer/request-modules.ts +3 -6
- package/plugins/system/source/computer/runtime-platform.ts +18 -0
- package/plugins/system/source/host-dispatch.ts +18 -2
- package/plugins/system/source/index.ts +5 -3
- package/plugins/system/source/local-command-output-retention.ts +16 -0
- package/plugins/system/source/local-command-output.ts +16 -8
- package/plugins/system/source/request-system-modules.ts +12 -2
- package/plugins/system/source/request-target-snapshot.ts +2 -1
- package/plugins/system/source/security/desktop-result.ts +177 -0
- package/plugins/system/source/security/observed-error.ts +10 -0
- package/plugins/system/source/security/secret-text.ts +118 -0
- package/plugins/system/source/security/system-results.ts +62 -0
- package/plugins/system/source/security/windows-output-directory.ts +82 -0
- package/plugins/system/src/index.cjs +837 -151
- package/plugins/system-probe/plugin.json +9 -3
- package/plugins/system-probe/source/disk-path.ts +8 -0
- package/plugins/system-probe/source/index.ts +10 -5
- package/plugins/system-probe/source/machine-load.ts +33 -0
- package/plugins/system-probe/source/metrics.ts +6 -8
- package/plugins/system-probe/src/index.cjs +49 -16
- package/plugins/web/plugin.json +5 -1
package/docs/plugins.md
CHANGED
|
@@ -237,12 +237,71 @@ options, or skill lists in `runtime.config.json`. Installing or changing a
|
|
|
237
237
|
plugin means changing its package under `plugins/`; runtime config only decides
|
|
238
238
|
whether that installed capability is available.
|
|
239
239
|
|
|
240
|
+
## Runtime Platform Compatibility
|
|
241
|
+
|
|
242
|
+
A plugin can declare where its code can run using a separate manifest extension:
|
|
243
|
+
`extensions["ai.abot.compatibility"] = { "version": 1, "runtimePlatforms": ["linux", "darwin"] }`.
|
|
244
|
+
The executable `ai.abot.runtime` extension remains at version 1.
|
|
245
|
+
|
|
246
|
+
`runtimePlatforms` is a non-empty, duplicate-free list of Node platform names:
|
|
247
|
+
`linux`, `darwin` (macOS), or `win32` (Windows). Unsupported versions, platform
|
|
248
|
+
names and fields are rejected. Declare only platforms on which the complete
|
|
249
|
+
plugin can safely load; individual operations may still require permissions,
|
|
250
|
+
external programs or a connected computer.
|
|
251
|
+
|
|
252
|
+
The declaration describes the **Runtime host**, not the browser or the computer
|
|
253
|
+
controlled by a tool. A Linux Runtime in WSL or a Linux Docker container remains
|
|
254
|
+
`linux`, including when SYSTEM controls a Windows Companion. It does not grant
|
|
255
|
+
permissions or replace the tool's request-time target checks.
|
|
256
|
+
|
|
257
|
+
Hosts with this compatibility support apply the following policy before resolving
|
|
258
|
+
plugin settings/secrets or importing executable plugin code:
|
|
259
|
+
|
|
260
|
+
- A declared matching platform can load, subject to the existing saved selection.
|
|
261
|
+
- A declared non-matching platform cannot load.
|
|
262
|
+
- Without a declaration, existing non-Windows behavior is preserved. Native
|
|
263
|
+
Windows reports **Compatibility not declared** and does not load the plugin.
|
|
264
|
+
|
|
265
|
+
Installed, onboarding and model-selection views show compatibility separately
|
|
266
|
+
from saved plugin/tool selection. Changing hosts does not rewrite saved selection
|
|
267
|
+
or erase settings and keys. An incompatible package remains inspectable,
|
|
268
|
+
configurable and removable. It can be installed for later use on a supported
|
|
269
|
+
host; the review and installation result explain that it will not load here.
|
|
270
|
+
Applying configuration cannot bypass the loader gate.
|
|
271
|
+
|
|
272
|
+
**Older hosts:** ABot 1.7.0 accepts and preserves additional extension namespaces
|
|
273
|
+
but does not enforce this declaration. Its existing behavior remains unchanged.
|
|
274
|
+
This metadata is not an enforcement guarantee on older hosts, nor a claim that
|
|
275
|
+
ABot 1.7.0 or its bundled plugins support native Windows. Existing bundled plugin
|
|
276
|
+
manifests are not certified for Windows by this contract change.
|
|
277
|
+
|
|
278
|
+
The required `windows-compatibility` CI job builds the Runtime, checks types and
|
|
279
|
+
plugin packages, and runs the focused platform contract and loader suites on
|
|
280
|
+
Windows with Node 24. It complements the Linux validation and macOS Companion
|
|
281
|
+
checks; it does not certify all native Windows tool operations or Store packaging.
|
|
282
|
+
|
|
240
283
|
## Manifest Contract
|
|
241
284
|
|
|
242
285
|
`@abot-ai/runtime/plugin-sdk` is the single public plugin-authoring entrypoint. It
|
|
243
286
|
exports the manifest constants and types, entrypoint contract, and bounded
|
|
244
287
|
authoring helpers consumed by plugin implementations.
|
|
245
288
|
|
|
289
|
+
The SDK's `readBoundedRegularFile(path, { rootPath, maxBytes, signal })` reads one
|
|
290
|
+
regular file within its authorized root and returns bounded bytes or a typed
|
|
291
|
+
refusal. On native Windows, it uses the same C# handle primitives as `filesystem`,
|
|
292
|
+
compiled by the built-in Windows PowerShell for each read. Root and file identity
|
|
293
|
+
are checked before reading; traversal rejects reparse points beneath the root,
|
|
294
|
+
including junctions. Binary content and documents up to 10 MiB are covered by
|
|
295
|
+
native tests; each caller still sets its own size limit. Linux/macOS retain the
|
|
296
|
+
existing no-follow file-descriptor path.
|
|
297
|
+
|
|
298
|
+
A Windows policy or compiler restriction returns `safe_open_unsupported`. Plugins
|
|
299
|
+
must report that safe reading is unavailable and avoid automatic retries or a
|
|
300
|
+
less restricted fallback. Cancellation stops the helper and throws `AbortError`;
|
|
301
|
+
a helper deadline (15 seconds) or ordinary I/O failure remains an explicit error.
|
|
302
|
+
This SDK support does not enable Windows compatibility in a plugin manifest.
|
|
303
|
+
Each plugin must still declare and validate its own Windows support.
|
|
304
|
+
|
|
246
305
|
The manifest follows the Agent Plugins 1.0 package shape and keeps the local
|
|
247
306
|
executable contract under `extensions.ai.abot.runtime`:
|
|
248
307
|
|
|
@@ -328,25 +387,34 @@ and exposes the OR-union of matching capabilities. The Worker still selects
|
|
|
328
387
|
the concrete capability and controls.
|
|
329
388
|
|
|
330
389
|
Supervisor routing and delegated Planner each receive one optional, passive
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
390
|
+
brief from the request-filtered registry. They share EA's plain-text discovery
|
|
391
|
+
catalog, organized by selectable group id with ` | ` between group entries:
|
|
392
|
+
|
|
393
|
+
```text
|
|
394
|
+
Tool groups: scheduling: schedules | write: filesystem [edit_file, write_file]
|
|
395
|
+
Plugin descriptions: filesystem: Inspect, read, write, and edit files within configured agent-work and workspace roots.
|
|
396
|
+
```
|
|
397
|
+
|
|
398
|
+
Each group lists its plugins and their tool names as `group: plugin [tool names]`.
|
|
399
|
+
Native tools appear by name without a plugin wrapper; groups without tool entries
|
|
400
|
+
remain bare ids. A plugin may span groups, and a group may contain several plugins.
|
|
401
|
+
Reserved characters in tool names are percent-encoded. Each optional plugin
|
|
402
|
+
description appears once on the separate `Plugin descriptions:` line, with
|
|
403
|
+
whitespace normalized, `|` displayed as `/`, and at most 160 Unicode code points
|
|
404
|
+
plus `....` when truncated. Missing descriptions leave the tool bindings intact;
|
|
405
|
+
the description line is omitted when none are available. This index lists tool
|
|
406
|
+
names, not individual operations, summaries or parameter schemas. Worker still
|
|
407
|
+
receives the exact operations and controls from the selected groups.
|
|
408
|
+
|
|
409
|
+
Admission preserves the existing context, configured instructions, calibration,
|
|
410
|
+
output and safety reserves and compaction threshold. Root steering is reserved
|
|
411
|
+
only for Supervisor; it does not enter the bounded Planner call. When the whole
|
|
412
|
+
plugin catalog cannot fit, complete group counts and effects remain available
|
|
413
|
+
under the existing 512-token ceiling, or the optional brief is omitted. Legal
|
|
414
|
+
group ids remain in the response schema. Neither fallback restores operation
|
|
415
|
+
details, selects a partial set of plugins, or adds a model decision. The brief
|
|
416
|
+
carries no execution authority or completion evidence. EA's output and the
|
|
417
|
+
Worker, approval and terminal-response contracts remain unchanged.
|
|
350
418
|
Before each Supervisor routing or Planner attempt, including structured-output repairs,
|
|
351
419
|
the optional brief is reselected against the actual projected messages plus
|
|
352
420
|
current consumer-specific calibration and context. It retains its reference position or is
|
|
@@ -364,15 +432,15 @@ receive it. Planner uses this same brief instead of a separate aggregate-tag
|
|
|
364
432
|
catalog. Its existing group-selection schema and Worker scope enforcement stay
|
|
365
433
|
unchanged; descriptions do not select a group or execute an operation.
|
|
366
434
|
|
|
367
|
-
Under `execution-agent-v1`, the canonical root receives
|
|
368
|
-
|
|
369
|
-
or
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
may still invoke an unscoped
|
|
435
|
+
Under `execution-agent-v1`, the canonical root receives the same plain-text
|
|
436
|
+
discovery catalog shown above. Descriptions supply discovery context, not
|
|
437
|
+
instructions or authority. The root may mechanically open or extend
|
|
438
|
+
its RoleCall scope. Only then does the active catalog expose each capability's
|
|
439
|
+
id, exact summary, and effect, with selection controls in the decision schema.
|
|
440
|
+
It selects concrete capabilities only from that active scope. Scope updates,
|
|
441
|
+
binding, payload authoring, execution, and settlement retain the shared engine
|
|
442
|
+
and ledger. Unknown, empty, invalid, repeated, or no-op scopes are rejected. Requests
|
|
443
|
+
without Worker capabilities may still invoke an unscoped knowledge-only Worker.
|
|
376
444
|
|
|
377
445
|
Skill ids resolve only inside the same plugin package. For the example above,
|
|
378
446
|
the loader reads:
|
|
@@ -492,6 +560,36 @@ they must not include secrets and they never act as instructions, new user
|
|
|
492
560
|
intent, or proof that the whole request completed. See
|
|
493
561
|
[tool-execution-result-evidence-contract.md](tool-execution-result-evidence-contract.md).
|
|
494
562
|
|
|
563
|
+
### Reporting a confirmed mutation
|
|
564
|
+
|
|
565
|
+
Use `successResult()` for ordinary successful observations. After the owning
|
|
566
|
+
plugin has confirmed a completed mutation, use `mutationSuccessResult()` to
|
|
567
|
+
preserve its receipt and add the Runtime's required `data.mutationEvidence: true`:
|
|
568
|
+
|
|
569
|
+
```ts
|
|
570
|
+
import { mutationSuccessResult } from "@abot-ai/runtime/plugin-sdk";
|
|
571
|
+
|
|
572
|
+
// apiReceipt is the result of a completed write already confirmed by this handler.
|
|
573
|
+
return mutationSuccessResult({
|
|
574
|
+
output: "The article was published.",
|
|
575
|
+
data: apiReceipt,
|
|
576
|
+
}, context.resultBudget);
|
|
577
|
+
```
|
|
578
|
+
|
|
579
|
+
The helper does not execute the operation or independently verify its effect.
|
|
580
|
+
Do not use it for a failed, ambiguous, pending, or no-op operation. It retains
|
|
581
|
+
the same JSON and result-size bounds as `successResult()`; a rejected receipt
|
|
582
|
+
returns a failure without asserting mutation evidence. The existing generic
|
|
583
|
+
helper does not infer a mutation from `ok`, `progress`, prose, or the presence of
|
|
584
|
+
arbitrary data. Explicit `actions`, `progress`, and other result fields remain
|
|
585
|
+
available to the owning plugin.
|
|
586
|
+
|
|
587
|
+
The adapter records operation outcome separately from observed effect.
|
|
588
|
+
For a `mutating` operation, `ok: true` without `mutationEvidence: true` is
|
|
589
|
+
classified as `mutation_evidence_missing`. The new helper supplies that marker
|
|
590
|
+
after the plugin has established the evidence; it does not change the Runtime's
|
|
591
|
+
classification rules or prove completion of the user's whole request.
|
|
592
|
+
|
|
495
593
|
### EXEC output storage
|
|
496
594
|
|
|
497
595
|
EXEC captures stdout and stderr in private files under its injected `stateDir`.
|
|
@@ -654,6 +752,54 @@ counts imply full-file coverage.
|
|
|
654
752
|
|
|
655
753
|
No concrete tool or skill mapping should be added anywhere under `src/runtime`.
|
|
656
754
|
|
|
755
|
+
### Native Windows plugin support
|
|
756
|
+
|
|
757
|
+
The native Windows group contains `capability-brief`, `code-outline`,
|
|
758
|
+
`document-reader`, `exec`, `filesystem`, `json-inspector`, `local-search`, `memory`, `web`,
|
|
759
|
+
`project-orientation`, `system-probe`, and `system`.
|
|
760
|
+
Each declares `win32` in its versioned
|
|
761
|
+
`ai.abot.compatibility` extension, alongside its existing Linux and macOS support.
|
|
762
|
+
Compatibility uses the Runtime process OS, not the browser or a paired computer.
|
|
763
|
+
A Windows-only plugin should declare only `win32`; other hosts will not load it.
|
|
764
|
+
|
|
765
|
+
On native Windows, SYSTEM provides `system_targets`, `system_command`,
|
|
766
|
+
`system_applications`, and `system_launch`. Commands run in local PowerShell and
|
|
767
|
+
retain existing approvals, cancellation, and protected output handling. Desktop
|
|
768
|
+
observation and input (`computer_*`) are excluded from the request catalog in
|
|
769
|
+
this phase. Linux/macOS Runtime and WSL/Docker Companion routes retain their
|
|
770
|
+
existing capabilities. This phase does not add screenshot OCR.
|
|
771
|
+
|
|
772
|
+
`system-probe` reports Windows load averages as unsupported instead of presenting
|
|
773
|
+
the OS's placeholder zeros as measured load. Its default disk probe uses the
|
|
774
|
+
Runtime installation's filesystem; an explicit path selects that path's volume.
|
|
775
|
+
|
|
776
|
+
`code-outline` uses the SDK's bounded file reader on Windows, with the same
|
|
777
|
+
authorized roots, parser and output limits as Linux/macOS. If safe reading is
|
|
778
|
+
unavailable, it reports the restriction explicitly and tells the model not to
|
|
779
|
+
retry or bypass it. See [Code Outline](../plugins/code-outline/README.md).
|
|
780
|
+
|
|
781
|
+
`document-reader` uses the SDK's bounded Windows reader for configured paths
|
|
782
|
+
and request attachments, with shared text, Office and PDF parsers and limits.
|
|
783
|
+
A blocked reader reports an explicit no-retry restriction.
|
|
784
|
+
See [Document Reader](../plugins/document-reader/README.md).
|
|
785
|
+
|
|
786
|
+
`json-inspector` uses the SDK's bounded Windows reader with the existing path,
|
|
787
|
+
UTF-8, size and summary limits. A blocked reader reports an explicit no-retry
|
|
788
|
+
restriction. See [JSON Inspector](../plugins/json-inspector/README.md).
|
|
789
|
+
|
|
790
|
+
`project-orientation` uses the SDK's bounded Windows reader for package
|
|
791
|
+
metadata and retains its existing directory-tree and result limits. Blocked
|
|
792
|
+
manifest reads return an explicit no-retry restriction.
|
|
793
|
+
See [Project Orientation](../plugins/project-orientation/README.md).
|
|
794
|
+
|
|
795
|
+
`local-search` uses native Windows ripgrep through a PowerShell/C# helper that
|
|
796
|
+
pins the selected path and owns the child process through a Job Object. Existing
|
|
797
|
+
query, output, timeout and cancellation limits still apply. A blocked helper
|
|
798
|
+
fails explicitly without a retry or policy bypass.
|
|
799
|
+
See [Local Search](../plugins/local-search/README.md).
|
|
800
|
+
|
|
801
|
+
Enabling manifests alone is not a validation step.
|
|
802
|
+
|
|
657
803
|
### Shared Computer access
|
|
658
804
|
|
|
659
805
|
Plugins that need host facilities can import the opt-in
|
|
@@ -96,6 +96,63 @@ secrets. Secret acquisition and redaction remain responsibilities of the
|
|
|
96
96
|
owning tool/host boundary; core orchestration must not guess sensitive field
|
|
97
97
|
semantics from arbitrary JSON keys.
|
|
98
98
|
|
|
99
|
+
### Observed-content secret protection, version 1
|
|
100
|
+
|
|
101
|
+
Companion and the internal passive collector own host-side protection. The same
|
|
102
|
+
collector protects SPARK whether it runs inside Companion or locally in Runtime.
|
|
103
|
+
SYSTEM owns a separate implementation for its independent native operations.
|
|
104
|
+
The implementations share conformance cases, not a runtime detector dependency.
|
|
105
|
+
|
|
106
|
+
Required text checks preserve the existing SPARK whole-field detector: credential
|
|
107
|
+
labels, authorization/userinfo, supported provider tokens, private-key indicators
|
|
108
|
+
and compact JOSE tokens, including the supported escaped and encoded forms.
|
|
109
|
+
Successful checking means no known indicator was found; it is not a claim that
|
|
110
|
+
the content contains no secrets. Unknown encodings and arbitrary unlabelled
|
|
111
|
+
secrets remain outside detection. SPARK's existing collection semantics stay intact.
|
|
112
|
+
|
|
113
|
+
Check full observed fields before excerpts or delivery. A suspected field is
|
|
114
|
+
replaced with `[REDACTED]`; unchecked content must not reach logs, model evidence,
|
|
115
|
+
continuation snapshots or cross-host transport. Desktop frame/media retention
|
|
116
|
+
also follows these checks. Temporary local acquisition belongs inside the checking
|
|
117
|
+
boundary; checking must not use a remote model.
|
|
118
|
+
An incomplete required check, malformed encoding or scanner failure withholds
|
|
119
|
+
the affected content and preserves only a non-sensitive technical receipt.
|
|
120
|
+
|
|
121
|
+
Command capture may write unchecked bytes to private local files using the existing
|
|
122
|
+
disk-backed capture mechanism. After natural EOF, both full streams must pass
|
|
123
|
+
checking before any read or delivery is admitted. Suspected content is replaced
|
|
124
|
+
with checked text; failed checking withholds output and attempts to remove the raw
|
|
125
|
+
capture. Existing retention cleanup handles leftovers after failure or interruption.
|
|
126
|
+
This permits temporary raw disk storage, not model access before checking; the
|
|
127
|
+
compaction model must also receive only checked text. Deletion is ordinary file
|
|
128
|
+
cleanup, not a claim of forensic erasure.
|
|
129
|
+
|
|
130
|
+
There is no new logical total-output quota: admitted complete stdout/stderr retain
|
|
131
|
+
the existing context-text handoff, canonical evidence and core compaction path.
|
|
132
|
+
Full-text checking and delivery still materialize text in memory. Capture/storage
|
|
133
|
+
failure does not erase an already dispatched action or justify replaying it for
|
|
134
|
+
output. Published byte counts and digests describe admitted bytes only.
|
|
135
|
+
|
|
136
|
+
Version 1 desktop checks cover descriptive metadata and accessibility text.
|
|
137
|
+
Suspicion in those fields also withholds the associated image before frame or
|
|
138
|
+
media retention. Control bindings, coordinates and dispatch receipts keep their
|
|
139
|
+
mechanical meaning; sensitive actionable catalog identities are withheld rather
|
|
140
|
+
than replaced by a synthetic actionable identifier. Pixel-only content is not
|
|
141
|
+
inspected: OCR and its deployment requirements are explicitly deferred.
|
|
142
|
+
|
|
143
|
+
SYSTEM requires `host_secret_protection_v1` before dispatching protected Companion
|
|
144
|
+
operations, and the existing complete-output capability for commands. A missing
|
|
145
|
+
capability is an upgrade-required failure before dispatch, not a fallback to an
|
|
146
|
+
unprotected path. Installed Companion and independently distributed SYSTEM bundles
|
|
147
|
+
must be validated separately; changing Runtime source does not update either.
|
|
148
|
+
|
|
149
|
+
Conformance covers known indicators, ordinary text, encodings and chunk boundaries,
|
|
150
|
+
late suspicion, scanner/transport failure, pre-admission storage and frame sinks,
|
|
151
|
+
and preservation of exact clean large output and accepted action receipts. Both
|
|
152
|
+
supported implementations must pass the same applicable cases before release.
|
|
153
|
+
This contract does not sandbox an arbitrary third-party plugin's own filesystem
|
|
154
|
+
or network access, nor retroactively remove previously retained observations.
|
|
155
|
+
|
|
99
156
|
## Canonical Lifecycle
|
|
100
157
|
|
|
101
158
|
```text
|
|
@@ -10,6 +10,11 @@ The Store app and Runtime have separate releases.
|
|
|
10
10
|
|
|
11
11
|
## Connection experience
|
|
12
12
|
|
|
13
|
+
A Runtime running directly on Windows uses local access and collection without
|
|
14
|
+
Companion pairing. The Store connection remains available for a Windows computer
|
|
15
|
+
used with a WSL or Docker Runtime. Spark also requires an installation-wide
|
|
16
|
+
collection acknowledgment in the Web UI; accepting it does not start collection.
|
|
17
|
+
|
|
13
18
|
The Web UI links to the Store for one installation. The user returns to ABot,
|
|
14
19
|
requests a connection link and explicitly opens Companion. Companion shows the
|
|
15
20
|
Runtime address and asks for confirmation before pairing. Users who already
|
package/package.json
CHANGED
|
@@ -18,12 +18,14 @@
|
|
|
18
18
|
},
|
|
19
19
|
"description": "Open runtime for local AI agents.",
|
|
20
20
|
"devDependencies": {
|
|
21
|
+
"@actions/expressions": "^0.3.61",
|
|
21
22
|
"@types/node": "^25.5.2",
|
|
22
23
|
"esbuild": "^0.28.2",
|
|
23
24
|
"prettier": "^3.8.1",
|
|
24
25
|
"tsx": "^4.23.13",
|
|
25
26
|
"typescript": "^6.0.2",
|
|
26
|
-
"vitest": "^4.1.11"
|
|
27
|
+
"vitest": "^4.1.11",
|
|
28
|
+
"yaml": "^2.9.1"
|
|
27
29
|
},
|
|
28
30
|
"engines": {
|
|
29
31
|
"node": "^20.19.0 || >=22.12.0"
|
|
@@ -181,5 +183,5 @@
|
|
|
181
183
|
},
|
|
182
184
|
"type": "module",
|
|
183
185
|
"types": "./dist/src/runtime/index.d.ts",
|
|
184
|
-
"version": "1.
|
|
186
|
+
"version": "1.8.1"
|
|
185
187
|
}
|
|
@@ -2,8 +2,12 @@
|
|
|
2
2
|
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
|
|
3
3
|
"name": "capability-brief",
|
|
4
4
|
"version": "1.0.0",
|
|
5
|
-
"description": "Describe the
|
|
5
|
+
"description": "Describe the tools and operations available to the current request.",
|
|
6
6
|
"extensions": {
|
|
7
|
+
"ai.abot.compatibility": {
|
|
8
|
+
"version": 1,
|
|
9
|
+
"runtimePlatforms": ["linux", "darwin", "win32"]
|
|
10
|
+
},
|
|
7
11
|
"ai.abot.runtime": {
|
|
8
12
|
"version": 1,
|
|
9
13
|
"entrypoint": "./src/index.cjs",
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Code Outline
|
|
2
|
+
|
|
3
|
+
Extracts a bounded structural outline from one source file on Linux, macOS,
|
|
4
|
+
or native Windows. Relative paths use the configured agent work directory;
|
|
5
|
+
`workspace/...` uses configured workspace sources. Absolute host paths must
|
|
6
|
+
remain inside an authorized root. Request path restrictions still apply.
|
|
7
|
+
|
|
8
|
+
The existing parser and limits are shared across platforms: at most 512 KiB
|
|
9
|
+
of source, 160 symbols, 40 imports and 6,000 output characters. JavaScript and
|
|
10
|
+
TypeScript use the syntax parser; other supported formats use the existing
|
|
11
|
+
pattern-based outline. The tool does not execute the source.
|
|
12
|
+
|
|
13
|
+
## Windows requirements
|
|
14
|
+
|
|
15
|
+
Windows uses the SDK's built-in Windows PowerShell/C# reader. No Companion,
|
|
16
|
+
WSL, Docker, administrator elevation or execution-policy bypass is required.
|
|
17
|
+
If computer policy blocks the reader, the tool reports
|
|
18
|
+
`code_outline_safe_read_unavailable` and tells the model not to retry or
|
|
19
|
+
bypass the restriction. Cancellation stops the read. Reparse-point escapes
|
|
20
|
+
and files larger than the limit are rejected without returning source.
|
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
|
|
3
3
|
"name": "code-outline",
|
|
4
4
|
"version": "0.1.1",
|
|
5
|
-
"description": "
|
|
5
|
+
"description": "Read the structure, imports, and symbols of a source file.",
|
|
6
6
|
"extensions": {
|
|
7
|
+
"ai.abot.compatibility": { "version": 1, "runtimePlatforms": ["linux", "darwin", "win32"] },
|
|
7
8
|
"ai.abot.runtime": {
|
|
8
9
|
"version": 1,
|
|
9
10
|
"entrypoint": "./src/index.cjs",
|
|
@@ -13,6 +13,7 @@ import {
|
|
|
13
13
|
} from "../../../src/plugin-sdk/index.js";
|
|
14
14
|
|
|
15
15
|
import { buildCodeOutline } from "./parser.js";
|
|
16
|
+
import { codeOutlineReadFailure } from "./read-failure.js";
|
|
16
17
|
|
|
17
18
|
const MAX_FILE_BYTES = 512 * 1024;
|
|
18
19
|
const DEFAULT_MAX_SYMBOLS = 160;
|
|
@@ -36,7 +37,8 @@ export default defineRuntimePlugin((context) => {
|
|
|
36
37
|
const pathContext = {
|
|
37
38
|
...context,
|
|
38
39
|
runtimePathResolver:
|
|
39
|
-
executionContext?.runtimePathResolver ??
|
|
40
|
+
executionContext?.runtimePathResolver ??
|
|
41
|
+
context.runtimePathResolver,
|
|
40
42
|
};
|
|
41
43
|
try {
|
|
42
44
|
const requestedPath = readRequiredString(params.path, "path");
|
|
@@ -47,26 +49,9 @@ export default defineRuntimePlugin((context) => {
|
|
|
47
49
|
const file = await readBoundedRegularFile(target.absolutePath, {
|
|
48
50
|
maxBytes: MAX_FILE_BYTES,
|
|
49
51
|
rootPath: target.rootPath,
|
|
52
|
+
signal: executionContext?.abortSignal,
|
|
50
53
|
});
|
|
51
|
-
if (!file.ok
|
|
52
|
-
return failureResult({
|
|
53
|
-
errorCode: "code_outline_target_not_file",
|
|
54
|
-
message:
|
|
55
|
-
"The requested code-outline target is not a regular file.",
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
if (!file.ok && file.reason === "too_large") {
|
|
59
|
-
return failureResult({
|
|
60
|
-
errorCode: "code_outline_file_too_large",
|
|
61
|
-
message: `The requested file exceeds the ${MAX_FILE_BYTES}-byte outline limit.`,
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
if (!file.ok) {
|
|
65
|
-
return failureResult({
|
|
66
|
-
errorCode: "code_outline_file_changed",
|
|
67
|
-
message: "The requested file changed while it was being read.",
|
|
68
|
-
});
|
|
69
|
-
}
|
|
54
|
+
if (!file.ok) return codeOutlineReadFailure(file, MAX_FILE_BYTES);
|
|
70
55
|
const source = file.bytes.toString("utf8");
|
|
71
56
|
const maxSymbols = readBoundedInteger(params.maxSymbols, {
|
|
72
57
|
defaultValue: defaultMaxSymbols,
|
|
@@ -118,6 +103,17 @@ export default defineRuntimePlugin((context) => {
|
|
|
118
103
|
},
|
|
119
104
|
});
|
|
120
105
|
} catch (error) {
|
|
106
|
+
const readWasAborted =
|
|
107
|
+
executionContext?.abortSignal?.aborted &&
|
|
108
|
+
error instanceof Error &&
|
|
109
|
+
error.name === "AbortError";
|
|
110
|
+
if (readWasAborted) {
|
|
111
|
+
return failureResult({
|
|
112
|
+
errorCode: "code_outline_cancelled",
|
|
113
|
+
message: "Code outline inspection was cancelled.",
|
|
114
|
+
interruption: "aborted",
|
|
115
|
+
});
|
|
116
|
+
}
|
|
121
117
|
return failureFromError(error, {
|
|
122
118
|
fallbackCode: "code_outline_failed",
|
|
123
119
|
fallbackMessage: "Code outline inspection failed.",
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import {
|
|
2
|
+
failureResult,
|
|
3
|
+
type BoundedRegularFileReadFailure,
|
|
4
|
+
} from "../../../src/plugin-sdk/index.js";
|
|
5
|
+
|
|
6
|
+
export function codeOutlineReadFailure(
|
|
7
|
+
file: BoundedRegularFileReadFailure,
|
|
8
|
+
maxBytes: number,
|
|
9
|
+
) {
|
|
10
|
+
switch (file.reason) {
|
|
11
|
+
case "not_regular_file":
|
|
12
|
+
return failureResult({
|
|
13
|
+
errorCode: "code_outline_target_not_file",
|
|
14
|
+
message: "The requested code-outline target is not a regular file.",
|
|
15
|
+
});
|
|
16
|
+
case "too_large":
|
|
17
|
+
return failureResult({
|
|
18
|
+
errorCode: "code_outline_file_too_large",
|
|
19
|
+
message:
|
|
20
|
+
"The requested file exceeds the " + maxBytes + "-byte outline limit.",
|
|
21
|
+
});
|
|
22
|
+
case "outside_root":
|
|
23
|
+
return failureResult({
|
|
24
|
+
errorCode: "code_outline_outside_root",
|
|
25
|
+
message:
|
|
26
|
+
"The requested file resolves outside its authorized root. Do not retry this target or bypass the path restriction.",
|
|
27
|
+
});
|
|
28
|
+
case "safe_open_unsupported":
|
|
29
|
+
return failureResult({
|
|
30
|
+
errorCode: "code_outline_safe_read_unavailable",
|
|
31
|
+
message:
|
|
32
|
+
"Safe file reading is unavailable on this system. On Windows, computer policy may block the required PowerShell/C# helper. Do not retry or bypass this restriction with another tool; ask the user to check the system requirements or contact their administrator.",
|
|
33
|
+
});
|
|
34
|
+
case "changed_during_read":
|
|
35
|
+
return failureResult({
|
|
36
|
+
errorCode: "code_outline_file_changed",
|
|
37
|
+
message: "The requested file changed while it was being read.",
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}
|