@abot-ai/runtime 1.6.0 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (750) hide show
  1. package/README.md +2 -0
  2. package/dist/src/bridge/request-steering.js +60 -15
  3. package/dist/src/capabilities/normal-invocation/contracts.d.ts +3 -0
  4. package/dist/src/capabilities/normal-invocation/output-channels.d.ts +10 -0
  5. package/dist/src/capabilities/normal-invocation/output-channels.js +29 -0
  6. package/dist/src/capabilities/normal-invocation/validator.js +4 -2
  7. package/dist/src/capabilities/tool-request-resources.d.ts +3 -0
  8. package/dist/src/capabilities/tool-types.d.ts +1 -1
  9. package/dist/src/cli/abot.js +2 -0
  10. package/dist/src/cli/host-companion-bundle.mjs +8003 -6796
  11. package/dist/src/cli/host-companion-entry.js +5 -22
  12. package/dist/src/cli/host-companion-input.d.ts +3 -0
  13. package/dist/src/cli/host-companion-input.js +21 -0
  14. package/dist/src/cli/host-companion-lifecycle.d.ts +11 -0
  15. package/dist/src/cli/host-companion-lifecycle.js +32 -0
  16. package/dist/src/cli/host-companion-setup-target.d.ts +4 -0
  17. package/dist/src/cli/host-companion-setup-target.js +17 -0
  18. package/dist/src/cli/host-companion-startup.d.ts +2 -0
  19. package/dist/src/cli/host-companion-startup.js +7 -2
  20. package/dist/src/cli/host-companion.d.ts +6 -0
  21. package/dist/src/cli/host-companion.js +30 -27
  22. package/dist/src/cli/windows-companion-store-entry.d.ts +9 -0
  23. package/dist/src/cli/windows-companion-store-entry.js +67 -0
  24. package/dist/src/computer-access/collection-consent.d.ts +9 -0
  25. package/dist/src/computer-access/collection-consent.js +47 -0
  26. package/dist/src/computer-access/command-output-capture.d.ts +48 -0
  27. package/dist/src/computer-access/command-output-capture.js +202 -0
  28. package/dist/src/computer-access/command-output-protection.d.ts +17 -0
  29. package/dist/src/computer-access/command-output-protection.js +59 -0
  30. package/dist/src/computer-access/command-output-retention.d.ts +5 -0
  31. package/dist/src/computer-access/command-output-retention.js +90 -0
  32. package/dist/src/computer-access/command-output.d.ts +7 -0
  33. package/dist/src/computer-access/command-output.js +1 -0
  34. package/dist/src/computer-access/commands.d.ts +1 -0
  35. package/dist/src/computer-access/commands.js +1 -1
  36. package/dist/src/computer-access/companion/command-output-protocol.d.ts +12 -0
  37. package/dist/src/computer-access/companion/command-output-protocol.js +28 -0
  38. package/dist/src/computer-access/companion/command-output.d.ts +14 -0
  39. package/dist/src/computer-access/companion/command-output.js +127 -0
  40. package/dist/src/computer-access/companion/install-link-macos.d.ts +7 -0
  41. package/dist/src/computer-access/companion/install-link-macos.js +49 -0
  42. package/dist/src/computer-access/companion/install-link-registration.d.ts +4 -0
  43. package/dist/src/computer-access/companion/install-link-registration.js +184 -0
  44. package/dist/src/computer-access/companion/install-link-windows.d.ts +4 -0
  45. package/dist/src/computer-access/companion/install-link-windows.js +65 -0
  46. package/dist/src/computer-access/companion/install-link.d.ts +9 -0
  47. package/dist/src/computer-access/companion/install-link.js +54 -0
  48. package/dist/src/computer-access/companion/native-messages.js +3 -0
  49. package/dist/src/computer-access/companion/native-notifications.js +3 -2
  50. package/dist/src/computer-access/companion/native-session.d.ts +1 -0
  51. package/dist/src/computer-access/companion/native-session.js +20 -4
  52. package/dist/src/computer-access/companion/native-supervisor.js +1 -0
  53. package/dist/src/computer-access/companion/notification-windows.d.ts +1 -1
  54. package/dist/src/computer-access/companion/notification-windows.js +8 -3
  55. package/dist/src/computer-access/companion/observation-filter.js +2 -26
  56. package/dist/src/computer-access/companion/observation-process.d.ts +2 -0
  57. package/dist/src/computer-access/companion/observation-process.js +51 -25
  58. package/dist/src/computer-access/companion/observation-redaction.d.ts +2 -7
  59. package/dist/src/computer-access/companion/observation-redaction.js +2 -111
  60. package/dist/src/computer-access/companion/protocol.d.ts +1 -1
  61. package/dist/src/computer-access/companion/protocol.js +6 -0
  62. package/dist/src/computer-access/companion/release-version.d.ts +1 -1
  63. package/dist/src/computer-access/companion/release-version.js +1 -1
  64. package/dist/src/computer-access/companion/secret-protection-protocol.d.ts +6 -0
  65. package/dist/src/computer-access/companion/secret-protection-protocol.js +6 -0
  66. package/dist/src/computer-access/companion/windows-store/connection-error.d.ts +7 -0
  67. package/dist/src/computer-access/companion/windows-store/connection-error.js +19 -0
  68. package/dist/src/computer-access/companion/windows-store/connection-link.d.ts +13 -0
  69. package/dist/src/computer-access/companion/windows-store/connection-link.js +109 -0
  70. package/dist/src/computer-access/companion/windows-store/identity.d.ts +13 -0
  71. package/dist/src/computer-access/companion/windows-store/identity.js +13 -0
  72. package/dist/src/computer-access/companion/windows-store/lifecycle.d.ts +5 -0
  73. package/dist/src/computer-access/companion/windows-store/lifecycle.js +90 -0
  74. package/dist/src/computer-access/computer/companion-sessions.js +7 -6
  75. package/dist/src/computer-access/computer/unix-native-process.js +23 -11
  76. package/dist/src/computer-access/contracts.d.ts +1 -1
  77. package/dist/src/computer-access/handlers.d.ts +3 -1
  78. package/dist/src/computer-access/handlers.js +83 -11
  79. package/dist/src/computer-access/host-observation.d.ts +3 -3
  80. package/dist/src/computer-access/native-observation-connection.d.ts +12 -0
  81. package/dist/src/computer-access/native-observation-connection.js +78 -0
  82. package/dist/src/computer-access/native-observation-ownership.d.ts +6 -0
  83. package/dist/src/computer-access/native-observation-ownership.js +55 -0
  84. package/dist/src/computer-access/native-observation-shutdown.d.ts +7 -0
  85. package/dist/src/computer-access/native-observation-shutdown.js +58 -0
  86. package/dist/src/computer-access/observation-source.d.ts +6 -0
  87. package/dist/src/computer-access/observation-source.js +10 -0
  88. package/dist/src/computer-access/process-capture.d.ts +6 -0
  89. package/dist/src/computer-access/process-capture.js +1 -0
  90. package/dist/src/computer-access/process-result.d.ts +2 -0
  91. package/dist/src/computer-access/process-result.js +14 -6
  92. package/dist/src/computer-access/process-runner.d.ts +2 -1
  93. package/dist/src/computer-access/process-runner.js +21 -13
  94. package/dist/src/computer-access/security/desktop-result.d.ts +8 -0
  95. package/dist/src/computer-access/security/desktop-result.js +146 -0
  96. package/dist/src/computer-access/security/observed-error.d.ts +2 -0
  97. package/dist/src/computer-access/security/observed-error.js +10 -0
  98. package/dist/src/computer-access/security/secret-text.d.ts +7 -0
  99. package/dist/src/computer-access/security/secret-text.js +111 -0
  100. package/dist/src/computer-access/security/system-results.d.ts +2 -0
  101. package/dist/src/computer-access/security/system-results.js +53 -0
  102. package/dist/src/computer-access/system-result-protection.d.ts +11 -0
  103. package/dist/src/computer-access/system-result-protection.js +1 -0
  104. package/dist/src/model-gateway/observability/provider-response-capture.d.ts +60 -0
  105. package/dist/src/model-gateway/observability/provider-response-capture.js +68 -0
  106. package/dist/src/model-gateway/observability/provider-response-prefix.d.ts +7 -0
  107. package/dist/src/model-gateway/observability/provider-response-prefix.js +14 -0
  108. package/dist/src/model-gateway/observability/provider-response-tail.d.ts +8 -0
  109. package/dist/src/model-gateway/observability/provider-response-tail.js +28 -0
  110. package/dist/src/model-gateway/observability/provider-sse-diagnostics.d.ts +30 -0
  111. package/dist/src/model-gateway/observability/provider-sse-diagnostics.js +119 -0
  112. package/dist/src/model-gateway/observability/provider-trace.js +30 -8
  113. package/dist/src/model-gateway/providers/ollama/adapter.js +8 -2
  114. package/dist/src/model-gateway/providers/ollama/stream-normalizer.js +70 -50
  115. package/dist/src/model-gateway/providers/ollama/stream-termination.d.ts +6 -0
  116. package/dist/src/model-gateway/providers/ollama/stream-termination.js +20 -0
  117. package/dist/src/model-gateway/providers/openai/adapter.js +9 -7
  118. package/dist/src/model-gateway/providers/openai/diagnostics.d.ts +0 -1
  119. package/dist/src/model-gateway/providers/openai/diagnostics.js +0 -9
  120. package/dist/src/model-gateway/providers/openai/function-output.d.ts +11 -0
  121. package/dist/src/model-gateway/providers/openai/function-output.js +37 -0
  122. package/dist/src/model-gateway/providers/openai/function-result.d.ts +7 -0
  123. package/dist/src/model-gateway/providers/openai/function-result.js +35 -0
  124. package/dist/src/model-gateway/providers/openai/message-output-policy.d.ts +3 -0
  125. package/dist/src/model-gateway/providers/openai/message-output-policy.js +16 -0
  126. package/dist/src/model-gateway/providers/openai/payload.d.ts +0 -2
  127. package/dist/src/model-gateway/providers/openai/payload.js +6 -23
  128. package/dist/src/model-gateway/providers/openai/response-lifetime.d.ts +2 -0
  129. package/dist/src/model-gateway/providers/openai/response-lifetime.js +64 -0
  130. package/dist/src/model-gateway/providers/openai/sse-data.d.ts +9 -0
  131. package/dist/src/model-gateway/providers/openai/sse-data.js +67 -0
  132. package/dist/src/model-gateway/providers/openai/stream-normalizer.d.ts +10 -22
  133. package/dist/src/model-gateway/providers/openai/stream-normalizer.js +78 -79
  134. package/dist/src/model-gateway/providers/openai/stream.js +13 -41
  135. package/dist/src/model-gateway/providers/openai/structured-message-output.d.ts +42 -0
  136. package/dist/src/model-gateway/providers/openai/structured-message-output.js +175 -0
  137. package/dist/src/model-gateway/server/configuration.d.ts +2 -0
  138. package/dist/src/model-gateway/server/configuration.js +73 -21
  139. package/dist/src/model-gateway/server.js +5 -1
  140. package/dist/src/plugin-contract/index.d.ts +1 -0
  141. package/dist/src/plugin-contract/index.js +1 -0
  142. package/dist/src/plugin-contract/install-source.d.ts +13 -0
  143. package/dist/src/plugin-contract/install-source.js +99 -0
  144. package/dist/src/plugin-contract/manifest.d.ts +4 -1
  145. package/dist/src/plugin-contract/manifest.js +1 -0
  146. package/dist/src/plugin-contract/platform-compatibility.d.ts +16 -0
  147. package/dist/src/plugin-contract/platform-compatibility.js +3 -0
  148. package/dist/src/plugin-sdk/computer-access.d.ts +12 -0
  149. package/dist/src/plugin-sdk/computer-access.js +6 -0
  150. package/dist/src/plugin-sdk/files-windows/process.d.ts +3 -0
  151. package/dist/src/plugin-sdk/files-windows/process.js +93 -0
  152. package/dist/src/plugin-sdk/files-windows/read-script.d.ts +1 -0
  153. package/dist/src/plugin-sdk/files-windows/read-script.js +43 -0
  154. package/dist/src/plugin-sdk/files-windows/read.d.ts +6 -0
  155. package/dist/src/plugin-sdk/files-windows/read.js +56 -0
  156. package/dist/src/plugin-sdk/files-windows/result.d.ts +4 -0
  157. package/dist/src/plugin-sdk/files-windows/result.js +67 -0
  158. package/dist/src/plugin-sdk/files.js +4 -0
  159. package/dist/src/plugin-sdk/index.d.ts +1 -0
  160. package/dist/src/plugin-sdk/index.js +1 -0
  161. package/dist/src/plugin-sdk/mutation-result.d.ts +7 -0
  162. package/dist/src/plugin-sdk/mutation-result.js +11 -0
  163. package/dist/src/runtime/adapters/in-memory-session-store.js +6 -16
  164. package/dist/src/runtime/adapters/long-term-memory/file-lock/acquisition.js +20 -3
  165. package/dist/src/runtime/adapters/long-term-memory/file-lock/owner-record.js +3 -1
  166. package/dist/src/runtime/adapters/long-term-memory/file-lock/path-observation.d.ts +3 -0
  167. package/dist/src/runtime/adapters/long-term-memory/file-lock/path-observation.js +20 -0
  168. package/dist/src/runtime/adapters/long-term-memory/file-lock/snapshot.js +7 -3
  169. package/dist/src/runtime/adapters/passive-learning-runtime.d.ts +1 -1
  170. package/dist/src/runtime/adapters/passive-learning-runtime.js +3 -3
  171. package/dist/src/runtime/adapters/runtime-observation-connection.d.ts +5 -0
  172. package/dist/src/runtime/adapters/runtime-observation-connection.js +13 -0
  173. package/dist/src/runtime/admin/config-control.js +2 -1
  174. package/dist/src/runtime/automations/catalog.d.ts +3 -0
  175. package/dist/src/runtime/automations/catalog.js +1 -0
  176. package/dist/src/runtime/automations/model-dependency-projection.d.ts +2 -0
  177. package/dist/src/runtime/automations/service.d.ts +2 -0
  178. package/dist/src/runtime/capabilities/automation-builder/authoring-reference.d.ts +10 -5
  179. package/dist/src/runtime/capabilities/automation-builder/authoring-reference.js +8 -7
  180. package/dist/src/runtime/capabilities/automation-builder/payload-instructions.d.ts +2 -2
  181. package/dist/src/runtime/capabilities/automation-builder/payload-instructions.js +2 -2
  182. package/dist/src/runtime/capabilities/automation-builder/tool-contract.d.ts +2 -2
  183. package/dist/src/runtime/capabilities/automations/authoring-catalog.js +1 -1
  184. package/dist/src/runtime/capabilities/automations/authoring-preparation.d.ts +11 -5
  185. package/dist/src/runtime/capabilities/automations/tool-module.js +1 -1
  186. package/dist/src/runtime/capabilities/request-permission-catalog.d.ts +3 -1
  187. package/dist/src/runtime/capabilities/request-permission-catalog.js +21 -2
  188. package/dist/src/runtime/capabilities/request-permission-tool-registry.d.ts +2 -1
  189. package/dist/src/runtime/capabilities/request-permission-tool-registry.js +18 -10
  190. package/dist/src/runtime/capabilities/request-runtime-tool-registry.d.ts +2 -0
  191. package/dist/src/runtime/capabilities/request-runtime-tool-registry.js +1 -1
  192. package/dist/src/runtime/capabilities/scheduling/create-operations.d.ts +6 -0
  193. package/dist/src/runtime/config/builders.js +6 -5
  194. package/dist/src/runtime/config/effective-model-config-validation.js +4 -35
  195. package/dist/src/runtime/config/fields.js +15 -0
  196. package/dist/src/runtime/config/model-context-capacity.d.ts +20 -0
  197. package/dist/src/runtime/config/model-context-capacity.js +55 -0
  198. package/dist/src/runtime/config/model-execution-policy.d.ts +5 -1
  199. package/dist/src/runtime/config/model-execution-policy.js +16 -0
  200. package/dist/src/runtime/config/model-plugin-config.d.ts +8 -0
  201. package/dist/src/runtime/config/model-plugin-config.js +40 -0
  202. package/dist/src/runtime/config/schema.js +5 -1
  203. package/dist/src/runtime/config/validation/model-profile-validation.js +2 -0
  204. package/dist/src/runtime/config/validation/runtime-config-validation-contract.d.ts +3 -1
  205. package/dist/src/runtime/config/validation/runtime-config-validation-contract.js +3 -1
  206. package/dist/src/runtime/config/validation/runtime-root-section-validation.js +11 -4
  207. package/dist/src/runtime/config/validation/web-ui-config-validation.js +3 -2
  208. package/dist/src/runtime/config/web-ui.d.ts +5 -0
  209. package/dist/src/runtime/config/web-ui.js +5 -0
  210. package/dist/src/runtime/config.js +2 -0
  211. package/dist/src/runtime/local-application.d.ts +2 -0
  212. package/dist/src/runtime/local-host/app-owner.js +50 -6
  213. package/dist/src/runtime/local-host/app-request-control.d.ts +3 -1
  214. package/dist/src/runtime/local-host/app-request-control.js +91 -11
  215. package/dist/src/runtime/local-host/client-requests.js +32 -5
  216. package/dist/src/runtime/local-host/client-services.d.ts +2 -0
  217. package/dist/src/runtime/local-host/local-request-diagnostics.d.ts +9 -0
  218. package/dist/src/runtime/local-host/local-request-diagnostics.js +47 -0
  219. package/dist/src/runtime/local-host/saved-approvals.js +23 -2
  220. package/dist/src/runtime/local-host/windows-private-access.js +2 -0
  221. package/dist/src/runtime/model/model-selection.js +4 -1
  222. package/dist/src/runtime/observability/request-control-diagnostics.d.ts +6 -0
  223. package/dist/src/runtime/observability/request-control-diagnostics.js +52 -0
  224. package/dist/src/runtime/passive-learning/application-catalog.js +3 -1
  225. package/dist/src/runtime/passive-learning/collection-source.js +7 -0
  226. package/dist/src/runtime/passive-learning/service.js +2 -3
  227. package/dist/src/runtime/passive-learning/status-projection.d.ts +2 -0
  228. package/dist/src/runtime/passive-learning/status-projection.js +9 -0
  229. package/dist/src/runtime/plugins/configuration-context.d.ts +9 -0
  230. package/dist/src/runtime/plugins/configuration-context.js +42 -0
  231. package/dist/src/runtime/plugins/configuration-settings.d.ts +2 -0
  232. package/dist/src/runtime/plugins/configuration-settings.js +26 -0
  233. package/dist/src/runtime/plugins/configuration-store.d.ts +23 -0
  234. package/dist/src/runtime/plugins/configuration-store.js +100 -0
  235. package/dist/src/runtime/plugins/configuration-write.d.ts +5 -0
  236. package/dist/src/runtime/plugins/configuration-write.js +58 -0
  237. package/dist/src/runtime/plugins/installation/archive.d.ts +2 -0
  238. package/dist/src/runtime/plugins/installation/archive.js +107 -0
  239. package/dist/src/runtime/plugins/installation/github-download.d.ts +9 -0
  240. package/dist/src/runtime/plugins/installation/github-download.js +72 -0
  241. package/dist/src/runtime/plugins/installation/installed-package.d.ts +9 -0
  242. package/dist/src/runtime/plugins/installation/installed-package.js +66 -0
  243. package/dist/src/runtime/plugins/installation/package.d.ts +53 -0
  244. package/dist/src/runtime/plugins/installation/package.js +81 -0
  245. package/dist/src/runtime/plugins/installation/portable-path.d.ts +2 -0
  246. package/dist/src/runtime/plugins/installation/portable-path.js +10 -0
  247. package/dist/src/runtime/plugins/installation/publication.d.ts +10 -0
  248. package/dist/src/runtime/plugins/installation/publication.js +17 -0
  249. package/dist/src/runtime/plugins/installation/service.d.ts +48 -0
  250. package/dist/src/runtime/plugins/installation/service.js +80 -0
  251. package/dist/src/runtime/plugins/loader.js +34 -38
  252. package/dist/src/runtime/plugins/manifest-platform-compatibility.d.ts +2 -0
  253. package/dist/src/runtime/plugins/manifest-platform-compatibility.js +39 -0
  254. package/dist/src/runtime/plugins/manifest-projection.js +1 -0
  255. package/dist/src/runtime/plugins/manifest-validator.js +12 -1
  256. package/dist/src/runtime/plugins/module-cache.d.ts +2 -0
  257. package/dist/src/runtime/plugins/module-cache.js +19 -0
  258. package/dist/src/runtime/plugins/platform-compatibility.d.ts +4 -0
  259. package/dist/src/runtime/plugins/platform-compatibility.js +44 -0
  260. package/dist/src/runtime/plugins/selection.d.ts +2 -0
  261. package/dist/src/runtime/plugins/selection.js +16 -11
  262. package/dist/src/runtime/ports.d.ts +6 -4
  263. package/dist/src/runtime/request/approval-wait/activation-events.js +19 -7
  264. package/dist/src/runtime/request/approval-wait/execution-compaction-restore.d.ts +20 -0
  265. package/dist/src/runtime/request/approval-wait/execution-compaction-restore.js +118 -0
  266. package/dist/src/runtime/request/approval-wait/super-compaction-restore.js +2 -1
  267. package/dist/src/runtime/request/dependencies.d.ts +2 -1
  268. package/dist/src/runtime/request/execution-payload-compacted-evidence.d.ts +1 -1
  269. package/dist/src/runtime/request/handler.js +8 -0
  270. package/dist/src/runtime/request/prepared-execution.js +9 -1
  271. package/dist/src/runtime/request/request-steering.d.ts +4 -0
  272. package/dist/src/runtime/request/request-steering.js +37 -12
  273. package/dist/src/runtime/request/worker-capability-composition.d.ts +2 -0
  274. package/dist/src/runtime/request/worker-capability-composition.js +4 -1
  275. package/dist/src/runtime/scheduler/journal-index-state.d.ts +1 -1
  276. package/dist/src/runtime/steps/execution-agent/capability-result-context.d.ts +6 -0
  277. package/dist/src/runtime/steps/execution-agent/capability-result-context.js +29 -0
  278. package/dist/src/runtime/steps/execution-agent/format.js +2 -3
  279. package/dist/src/runtime/steps/execution-agent/input.js +1 -1
  280. package/dist/src/runtime/steps/execution-agent/prompt.js +5 -5
  281. package/dist/src/runtime/steps/execution-agent/response-prompt.js +1 -0
  282. package/dist/src/runtime/steps/execution-agent/state-context.d.ts +2 -3
  283. package/dist/src/runtime/steps/execution-agent/state-context.js +26 -35
  284. package/dist/src/runtime/steps/execution-agent/work-plan-contract.d.ts +1 -3
  285. package/dist/src/runtime/steps/execution-agent/work-plan-contract.js +0 -55
  286. package/dist/src/runtime/steps/execution-agent/work-plan-schema.d.ts +3 -0
  287. package/dist/src/runtime/steps/execution-agent/work-plan-schema.js +61 -0
  288. package/dist/src/sessions/assistant-initiative-message.d.ts +3 -0
  289. package/dist/src/sessions/assistant-initiative-message.js +12 -0
  290. package/dist/src/sessions/assistant-initiative.d.ts +2 -2
  291. package/dist/src/sessions/assistant-initiative.js +1 -7
  292. package/dist/src/sessions/durable-session-commit.d.ts +2 -1
  293. package/dist/src/sessions/durable-session-commit.js +9 -4
  294. package/dist/src/sessions/metadata/projection.d.ts +15 -0
  295. package/dist/src/sessions/metadata/projection.js +55 -0
  296. package/dist/src/sessions/metadata/publication.d.ts +12 -0
  297. package/dist/src/sessions/metadata/publication.js +78 -0
  298. package/dist/src/sessions/metadata/source-receipt.d.ts +5 -0
  299. package/dist/src/sessions/metadata/source-receipt.js +42 -0
  300. package/dist/src/sessions/metadata/store.d.ts +7 -0
  301. package/dist/src/sessions/metadata/store.js +119 -0
  302. package/dist/src/sessions/prepared-session-replacement.d.ts +6 -0
  303. package/dist/src/sessions/prepared-session-replacement.js +46 -0
  304. package/dist/src/sessions/record/projection.d.ts +3 -1
  305. package/dist/src/sessions/record/projection.js +26 -18
  306. package/dist/src/sessions/request-lifecycle/service.js +3 -3
  307. package/dist/src/sessions/session-service.d.ts +2 -4
  308. package/dist/src/sessions/session-service.js +4 -16
  309. package/dist/src/sessions/session-store.d.ts +2 -1
  310. package/dist/src/sessions/session-store.js +11 -5
  311. package/dist/src/sessions/snapshot.d.ts +17 -0
  312. package/dist/src/sessions/snapshot.js +105 -0
  313. package/dist/src/sessions/types.d.ts +2 -0
  314. package/dist/src/shared/passive-observation-self-exclusion.d.ts +5 -0
  315. package/dist/src/shared/passive-observation-self-exclusion.js +37 -0
  316. package/dist/src/shared/tool-selection.d.ts +2 -0
  317. package/dist/src/shared/tool-selection.js +7 -0
  318. package/dist/src/shared/windows-file-io/authority-script.d.ts +1 -0
  319. package/dist/src/shared/windows-file-io/authority-script.js +94 -0
  320. package/dist/src/shared/windows-file-io/native-script.d.ts +2 -0
  321. package/dist/src/shared/windows-file-io/native-script.js +120 -0
  322. package/dist/src/shared/windows-file-io/read-bytes-script.d.ts +1 -0
  323. package/dist/src/shared/windows-file-io/read-bytes-script.js +18 -0
  324. package/dist/src/shared/windows-job-object.d.ts +2 -0
  325. package/dist/src/shared/windows-job-object.js +66 -0
  326. package/dist/src/web-ui/app/ARCHITECTURE.md +14 -0
  327. package/dist/src/web-ui/app/app-bootstrap.js +14 -1
  328. package/dist/src/web-ui/app/app-state.js +0 -7
  329. package/dist/src/web-ui/app/app.js +59 -159
  330. package/dist/src/web-ui/app/components/automations/node-inspector.js +3 -2
  331. package/dist/src/web-ui/app/components/automations/step-editor-dialog.js +3 -0
  332. package/dist/src/web-ui/app/components/composer-submission-notice.js +50 -0
  333. package/dist/src/web-ui/app/components/config-workspace/config-model.js +2 -0
  334. package/dist/src/web-ui/app/components/config-workspace/model-plugin-permissions.js +136 -0
  335. package/dist/src/web-ui/app/components/config-workspace/model-plugin-selection.js +180 -0
  336. package/dist/src/web-ui/app/components/config-workspace/model-plugin-view-state.js +114 -0
  337. package/dist/src/web-ui/app/components/config-workspace/model-rendering.js +3 -0
  338. package/dist/src/web-ui/app/components/config-workspace/model-summary.js +39 -0
  339. package/dist/src/web-ui/app/components/config-workspace/summary-rendering.js +30 -0
  340. package/dist/src/web-ui/app/components/config-workspace/workspace-events.js +37 -0
  341. package/dist/src/web-ui/app/components/config-workspace/workspace-mutations.js +24 -2
  342. package/dist/src/web-ui/app/components/config-workspace/workspace-persistence.js +9 -1
  343. package/dist/src/web-ui/app/components/config-workspace/workspace-view.js +23 -67
  344. package/dist/src/web-ui/app/components/config-workspace.js +11 -2
  345. package/dist/src/web-ui/app/components/conversation-view.js +36 -5
  346. package/dist/src/web-ui/app/components/dashboard/recent-conversations.js +2 -1
  347. package/dist/src/web-ui/app/components/dashboard/workspace.js +2 -1
  348. package/dist/src/web-ui/app/components/home-guidance/daily-review.js +2 -2
  349. package/dist/src/web-ui/app/components/home-guidance/home-guidance.js +20 -6
  350. package/dist/src/web-ui/app/components/model-setup/context-window-feedback.js +53 -0
  351. package/dist/src/web-ui/app/components/model-setup/save-flow.js +3 -1
  352. package/dist/src/web-ui/app/components/model-setup/save-outcome.js +1 -0
  353. package/dist/src/web-ui/app/components/model-setup/wizard.js +12 -0
  354. package/dist/src/web-ui/app/components/operations-summary.js +105 -0
  355. package/dist/src/web-ui/app/components/passive-learning/activity-controls.js +4 -0
  356. package/dist/src/web-ui/app/components/passive-learning/collection-access.js +35 -0
  357. package/dist/src/web-ui/app/components/passive-learning/collection-consent-dialog.js +59 -0
  358. package/dist/src/web-ui/app/components/passive-learning/collection-consent-gate.js +94 -0
  359. package/dist/src/web-ui/app/components/passive-learning/computer-update-notice.js +6 -0
  360. package/dist/src/web-ui/app/components/passive-learning/failure-copy.js +1 -0
  361. package/dist/src/web-ui/app/components/passive-learning/home.js +8 -11
  362. package/dist/src/web-ui/app/components/passive-learning/macos-collection-restart-notice.js +1 -0
  363. package/dist/src/web-ui/app/components/passive-learning/memory.js +2 -4
  364. package/dist/src/web-ui/app/components/passive-learning/workspace-view.js +2 -2
  365. package/dist/src/web-ui/app/components/plugins/compatibility.js +13 -0
  366. package/dist/src/web-ui/app/components/plugins/configuration-draft.js +34 -0
  367. package/dist/src/web-ui/app/components/plugins/configuration-editor.js +147 -0
  368. package/dist/src/web-ui/app/components/plugins/configuration-fields.js +103 -0
  369. package/dist/src/web-ui/app/components/plugins/configuration-retained-secrets.js +20 -0
  370. package/dist/src/web-ui/app/components/plugins/configuration-settings.js +108 -0
  371. package/dist/src/web-ui/app/components/plugins/discovery-rendering.js +45 -0
  372. package/dist/src/web-ui/app/components/plugins/installation-compatibility.js +7 -0
  373. package/dist/src/web-ui/app/components/plugins/installation.js +213 -0
  374. package/dist/src/web-ui/app/components/plugins/manager.js +160 -6
  375. package/dist/src/web-ui/app/components/plugins/removal.js +130 -0
  376. package/dist/src/web-ui/app/components/plugins/rendering.js +17 -2
  377. package/dist/src/web-ui/app/components/plugins/summary.js +54 -0
  378. package/dist/src/web-ui/app/components/plugins/tabs.js +31 -0
  379. package/dist/src/web-ui/app/components/plugins/view-state.js +3 -1
  380. package/dist/src/web-ui/app/components/reasoning-override-prompt.js +82 -0
  381. package/dist/src/web-ui/app/components/runtime-config-activation.js +22 -8
  382. package/dist/src/web-ui/app/components/runtime-setup/connection-form.js +5 -2
  383. package/dist/src/web-ui/app/components/runtime-setup/connection-state.js +9 -1
  384. package/dist/src/web-ui/app/components/runtime-setup/context-window-feedback.js +71 -0
  385. package/dist/src/web-ui/app/components/runtime-setup/optional-steps.js +9 -4
  386. package/dist/src/web-ui/app/components/runtime-setup/plugins.js +3 -1
  387. package/dist/src/web-ui/app/components/runtime-setup/rendering.js +6 -4
  388. package/dist/src/web-ui/app/components/runtime-setup-guide.d.ts +1 -0
  389. package/dist/src/web-ui/app/components/runtime-setup-guide.js +15 -3
  390. package/dist/src/web-ui/app/components/schedules/form.js +10 -8
  391. package/dist/src/web-ui/app/components/schedules/workspace.js +23 -4
  392. package/dist/src/web-ui/app/components/session-sidebar-sections.js +2 -2
  393. package/dist/src/web-ui/app/components/spark-chat/empty-state.js +1 -0
  394. package/dist/src/web-ui/app/components/spark-chat/handoff-actions.js +9 -3
  395. package/dist/src/web-ui/app/components/spark-chat/panel.js +1 -0
  396. package/dist/src/web-ui/app/components/spark-chat/placement.js +4 -7
  397. package/dist/src/web-ui/app/components/spark-chat/settings.js +7 -3
  398. package/dist/src/web-ui/app/components/system-host/connection-card.js +35 -0
  399. package/dist/src/web-ui/app/components/system-host/macos-permissions.js +2 -0
  400. package/dist/src/web-ui/app/components/system-host/macos-setup.js +1 -1
  401. package/dist/src/web-ui/app/components/system-host/manager.js +45 -12
  402. package/dist/src/web-ui/app/components/system-host/native-windows-access.js +50 -0
  403. package/dist/src/web-ui/app/components/system-host/rendering.js +114 -106
  404. package/dist/src/web-ui/app/components/system-host/windows-store-setup.js +293 -0
  405. package/dist/src/web-ui/app/components/workspace-shell.js +6 -0
  406. package/dist/src/web-ui/app/components/workspace-storage-notice.js +37 -0
  407. package/dist/src/web-ui/app/computer-access-feature.js +22 -5
  408. package/dist/src/web-ui/app/configuration-environment-refresh.js +27 -34
  409. package/dist/src/web-ui/app/configuration-feature.js +44 -3
  410. package/dist/src/web-ui/app/controllers/app-event-bindings.js +41 -105
  411. package/dist/src/web-ui/app/controllers/chat-request-controller.d.ts +28 -0
  412. package/dist/src/web-ui/app/controllers/chat-request-controller.js +34 -66
  413. package/dist/src/web-ui/app/controllers/composer-attachments-controller.d.ts +15 -40
  414. package/dist/src/web-ui/app/controllers/composer-attachments-controller.js +26 -69
  415. package/dist/src/web-ui/app/controllers/composer-draft-view.d.ts +27 -0
  416. package/dist/src/web-ui/app/controllers/composer-draft-view.js +48 -0
  417. package/dist/src/web-ui/app/controllers/composer-drafts.d.ts +55 -0
  418. package/dist/src/web-ui/app/controllers/composer-drafts.js +120 -0
  419. package/dist/src/web-ui/app/controllers/composer-feature.d.ts +65 -0
  420. package/dist/src/web-ui/app/controllers/composer-feature.js +124 -0
  421. package/dist/src/web-ui/app/controllers/composer-queue-controller.d.ts +33 -94
  422. package/dist/src/web-ui/app/controllers/composer-queue-controller.js +185 -251
  423. package/dist/src/web-ui/app/controllers/composer-submission-lifecycle.d.ts +48 -0
  424. package/dist/src/web-ui/app/controllers/composer-submission-lifecycle.js +97 -0
  425. package/dist/src/web-ui/app/controllers/composer-submit-controller.d.ts +30 -61
  426. package/dist/src/web-ui/app/controllers/composer-submit-controller.js +56 -138
  427. package/dist/src/web-ui/app/controllers/composer-surface-controller.js +6 -0
  428. package/dist/src/web-ui/app/controllers/composer-workspace-controller.d.ts +22 -40
  429. package/dist/src/web-ui/app/controllers/composer-workspace-controller.js +49 -165
  430. package/dist/src/web-ui/app/controllers/conversation-navigation-intent.js +15 -0
  431. package/dist/src/web-ui/app/controllers/conversation-read-state-controller.d.ts +1 -0
  432. package/dist/src/web-ui/app/controllers/conversation-read-state-controller.js +7 -3
  433. package/dist/src/web-ui/app/controllers/conversation-request-hydration.js +91 -0
  434. package/dist/src/web-ui/app/controllers/conversation-session-controller.d.ts +10 -5
  435. package/dist/src/web-ui/app/controllers/conversation-session-controller.js +97 -162
  436. package/dist/src/web-ui/app/controllers/conversation-workspace-activation.js +27 -0
  437. package/dist/src/web-ui/app/controllers/daily-memory-review.js +15 -16
  438. package/dist/src/web-ui/app/controllers/environment-transition.js +126 -0
  439. package/dist/src/web-ui/app/controllers/environment-workspace-preparation.js +18 -0
  440. package/dist/src/web-ui/app/controllers/history-pagination.js +111 -0
  441. package/dist/src/web-ui/app/controllers/home-composer-feature.d.ts +14 -36
  442. package/dist/src/web-ui/app/controllers/home-composer-feature.js +17 -114
  443. package/dist/src/web-ui/app/controllers/home-conversation-activation.js +6 -8
  444. package/dist/src/web-ui/app/controllers/operations-controller.d.ts +12 -0
  445. package/dist/src/web-ui/app/controllers/operations-controller.js +28 -21
  446. package/dist/src/web-ui/app/controllers/passive-learning-controller.js +56 -0
  447. package/dist/src/web-ui/app/controllers/projects-controller.d.ts +1 -1
  448. package/dist/src/web-ui/app/controllers/projects-controller.js +6 -1
  449. package/dist/src/web-ui/app/controllers/reasoning-mode-controller.js +174 -0
  450. package/dist/src/web-ui/app/controllers/runtime-onboarding-controller.d.ts +1 -0
  451. package/dist/src/web-ui/app/controllers/runtime-onboarding-controller.js +11 -0
  452. package/dist/src/web-ui/app/controllers/runtime-selection-controller.d.ts +7 -0
  453. package/dist/src/web-ui/app/controllers/runtime-selection-controller.js +20 -155
  454. package/dist/src/web-ui/app/controllers/session-controller.js +43 -19
  455. package/dist/src/web-ui/app/controllers/session-list-pagination.js +71 -0
  456. package/dist/src/web-ui/app/controllers/session-pin-updates.js +14 -0
  457. package/dist/src/web-ui/app/controllers/session-sidebar-controller.js +17 -17
  458. package/dist/src/web-ui/app/controllers/spark-chat-reading.js +1 -0
  459. package/dist/src/web-ui/app/controllers/spark-chat-sync.js +26 -7
  460. package/dist/src/web-ui/app/controllers/steer-controller.js +9 -7
  461. package/dist/src/web-ui/app/controllers/tool-permission-mode-controller.js +1 -1
  462. package/dist/src/web-ui/app/controllers/workspace-conversation-opener.js +34 -0
  463. package/dist/src/web-ui/app/controllers/workspace-route-controller.js +21 -19
  464. package/dist/src/web-ui/app/dashboard-feature.js +4 -3
  465. package/dist/src/web-ui/app/index.html +6 -2
  466. package/dist/src/web-ui/app/lib/history-page-messages.js +49 -0
  467. package/dist/src/web-ui/app/lib/reasoning-controls.js +35 -0
  468. package/dist/src/web-ui/app/lib/request-lifecycle-view.js +8 -0
  469. package/dist/src/web-ui/app/lib/session-composer-queue-ownership.js +58 -0
  470. package/dist/src/web-ui/app/lib/session-composer-queue.d.ts +12 -0
  471. package/dist/src/web-ui/app/lib/session-composer-queue.js +25 -6
  472. package/dist/src/web-ui/app/lib/workspace-route.d.ts +3 -0
  473. package/dist/src/web-ui/app/lib/workspace-route.js +4 -0
  474. package/dist/src/web-ui/app/passive-learning-feature.js +16 -4
  475. package/dist/src/web-ui/app/runtime-onboarding-feature.js +3 -0
  476. package/dist/src/web-ui/app/schedules-feature.js +5 -3
  477. package/dist/src/web-ui/app/services/client-preferences.d.ts +18 -10
  478. package/dist/src/web-ui/app/services/client-preferences.js +25 -16
  479. package/dist/src/web-ui/app/services/home-guidance-preferences.js +13 -13
  480. package/dist/src/web-ui/app/services/reasoning-override.js +12 -0
  481. package/dist/src/web-ui/app/services/runtime-web-client/automations.js +10 -2
  482. package/dist/src/web-ui/app/services/runtime-web-client/configuration.js +20 -0
  483. package/dist/src/web-ui/app/services/runtime-web-client/memory.js +7 -2
  484. package/dist/src/web-ui/app/services/runtime-web-client/plugin-configuration.js +19 -0
  485. package/dist/src/web-ui/app/services/runtime-web-client/spark-chat.js +4 -4
  486. package/dist/src/web-ui/app/services/runtime-web-client/system-host.js +4 -0
  487. package/dist/src/web-ui/app/services/runtime-web-client.d.ts +8 -1
  488. package/dist/src/web-ui/app/services/runtime-web-client.js +14 -3
  489. package/dist/src/web-ui/app/services/server-composer-queue.js +32 -0
  490. package/dist/src/web-ui/app/services/session-sidebar-preferences.js +5 -5
  491. package/dist/src/web-ui/app/services/workspace-state-storage.js +116 -0
  492. package/dist/src/web-ui/app/services/workspace-state.js +27 -0
  493. package/dist/src/web-ui/app/spark-chat-conversation.js +34 -45
  494. package/dist/src/web-ui/app/spark-chat-feature.js +84 -21
  495. package/dist/src/web-ui/app/styles/11-product-links.css +30 -0
  496. package/dist/src/web-ui/app/styles/21-composer-controls.css +16 -0
  497. package/dist/src/web-ui/app/styles/41-plugin-configuration.css +79 -0
  498. package/dist/src/web-ui/app/styles/41-plugin-discovery.css +132 -0
  499. package/dist/src/web-ui/app/styles/41-plugin-management.css +14 -0
  500. package/dist/src/web-ui/app/styles/42-model-plugin-permissions.css +174 -0
  501. package/dist/src/web-ui/app/styles/46-system-host.css +61 -107
  502. package/dist/src/web-ui/app/styles/47-config-controls.css +13 -1
  503. package/dist/src/web-ui/app/styles/49-collection-consent.css +30 -0
  504. package/dist/src/web-ui/app/styles/54-spark-chat.css +33 -1
  505. package/dist/src/web-ui/app/styles/64-workspace-storage.css +23 -0
  506. package/dist/src/web-ui/app/styles.css +6 -0
  507. package/dist/src/web-ui/client-state/contracts.d.ts +15 -0
  508. package/dist/src/web-ui/client-state/contracts.js +13 -0
  509. package/dist/src/web-ui/client-state/preference-shapes.d.ts +2 -0
  510. package/dist/src/web-ui/client-state/preference-shapes.js +80 -0
  511. package/dist/src/web-ui/client-state/preferences.d.ts +3 -0
  512. package/dist/src/web-ui/client-state/preferences.js +84 -0
  513. package/dist/src/web-ui/client-state/queue.d.ts +3 -0
  514. package/dist/src/web-ui/client-state/queue.js +43 -0
  515. package/dist/src/web-ui/client-state/routes.d.ts +7 -0
  516. package/dist/src/web-ui/client-state/routes.js +58 -0
  517. package/dist/src/web-ui/client-state/store.d.ts +14 -0
  518. package/dist/src/web-ui/client-state/store.js +88 -0
  519. package/dist/src/web-ui/local-runtime/api-router.js +11 -6
  520. package/dist/src/web-ui/local-runtime/approval-request-attachment.js +14 -5
  521. package/dist/src/web-ui/local-runtime/configuration-activation-source.d.ts +1 -1
  522. package/dist/src/web-ui/local-runtime/configuration-activation-source.js +11 -3
  523. package/dist/src/web-ui/local-runtime/contracts.d.ts +4 -3
  524. package/dist/src/web-ui/local-runtime/environment-registry.d.ts +5 -1
  525. package/dist/src/web-ui/local-runtime/environment-registry.js +53 -11
  526. package/dist/src/web-ui/local-runtime/history-pagination.d.ts +16 -0
  527. package/dist/src/web-ui/local-runtime/history-pagination.js +20 -0
  528. package/dist/src/web-ui/local-runtime/http.js +11 -2
  529. package/dist/src/web-ui/local-runtime/model-context-capacity-error.d.ts +14 -0
  530. package/dist/src/web-ui/local-runtime/model-context-capacity-error.js +28 -0
  531. package/dist/src/web-ui/local-runtime/model-setup-context-window.d.ts +15 -0
  532. package/dist/src/web-ui/local-runtime/model-setup-context-window.js +25 -0
  533. package/dist/src/web-ui/local-runtime/model-setup-routes.js +2 -0
  534. package/dist/src/web-ui/local-runtime/model-setup-service.js +5 -2
  535. package/dist/src/web-ui/local-runtime/model-setup-validation.d.ts +1 -0
  536. package/dist/src/web-ui/local-runtime/model-setup-validation.js +14 -7
  537. package/dist/src/web-ui/local-runtime/plugin-configuration-routes.d.ts +16 -0
  538. package/dist/src/web-ui/local-runtime/plugin-configuration-routes.js +68 -0
  539. package/dist/src/web-ui/local-runtime/plugin-installation-routes.d.ts +16 -0
  540. package/dist/src/web-ui/local-runtime/plugin-installation-routes.js +96 -0
  541. package/dist/src/web-ui/local-runtime/plugin-management-routes.d.ts +8 -1
  542. package/dist/src/web-ui/local-runtime/plugin-management-routes.js +17 -0
  543. package/dist/src/web-ui/local-runtime/plugin-mutation-admission.d.ts +7 -0
  544. package/dist/src/web-ui/local-runtime/plugin-mutation-admission.js +17 -0
  545. package/dist/src/web-ui/local-runtime/plugin-removal-routes.d.ts +18 -0
  546. package/dist/src/web-ui/local-runtime/plugin-removal-routes.js +60 -0
  547. package/dist/src/web-ui/local-runtime/realtime-controller.js +41 -2
  548. package/dist/src/web-ui/local-runtime/request-body-error.d.ts +11 -0
  549. package/dist/src/web-ui/local-runtime/request-body-error.js +14 -0
  550. package/dist/src/web-ui/local-runtime/request-cancellation-route.js +28 -1
  551. package/dist/src/web-ui/local-runtime/request-control-observation.d.ts +19 -0
  552. package/dist/src/web-ui/local-runtime/request-control-observation.js +80 -0
  553. package/dist/src/web-ui/local-runtime/request-execution.js +66 -34
  554. package/dist/src/web-ui/local-runtime/runtime-setup-connection-edit.d.ts +2 -0
  555. package/dist/src/web-ui/local-runtime/runtime-setup-connection-edit.js +35 -22
  556. package/dist/src/web-ui/local-runtime/runtime-setup-context-window.d.ts +13 -0
  557. package/dist/src/web-ui/local-runtime/runtime-setup-context-window.js +21 -0
  558. package/dist/src/web-ui/local-runtime/runtime-setup-credentials.d.ts +15 -1
  559. package/dist/src/web-ui/local-runtime/runtime-setup-credentials.js +30 -11
  560. package/dist/src/web-ui/local-runtime/runtime-setup-edit-files.d.ts +20 -0
  561. package/dist/src/web-ui/local-runtime/runtime-setup-edit-files.js +104 -0
  562. package/dist/src/web-ui/local-runtime/runtime-setup-edit-journal.d.ts +29 -0
  563. package/dist/src/web-ui/local-runtime/runtime-setup-edit-journal.js +151 -0
  564. package/dist/src/web-ui/local-runtime/runtime-setup-edit-recovery.d.ts +7 -0
  565. package/dist/src/web-ui/local-runtime/runtime-setup-edit-recovery.js +87 -0
  566. package/dist/src/web-ui/local-runtime/runtime-setup-edit-transaction.d.ts +3 -0
  567. package/dist/src/web-ui/local-runtime/runtime-setup-edit-transaction.js +37 -0
  568. package/dist/src/web-ui/local-runtime/runtime-setup-routes.js +2 -0
  569. package/dist/src/web-ui/local-runtime/runtime-setup-service.js +4 -0
  570. package/dist/src/web-ui/local-runtime/runtime-setup-validation.js +9 -2
  571. package/dist/src/web-ui/local-runtime/session-routes.d.ts +1 -0
  572. package/dist/src/web-ui/local-runtime/session-routes.js +16 -4
  573. package/dist/src/web-ui/local-runtime/spark-chat-routes.js +4 -3
  574. package/dist/src/web-ui/local-runtime-backend.js +14 -0
  575. package/dist/src/web-ui/plugin-capability-selection.js +4 -1
  576. package/dist/src/web-ui/plugin-configuration-input.d.ts +12 -0
  577. package/dist/src/web-ui/plugin-configuration-input.js +68 -0
  578. package/dist/src/web-ui/plugin-configuration-retained-secrets.d.ts +9 -0
  579. package/dist/src/web-ui/plugin-configuration-retained-secrets.js +48 -0
  580. package/dist/src/web-ui/plugin-configuration-service.d.ts +52 -0
  581. package/dist/src/web-ui/plugin-configuration-service.js +66 -0
  582. package/dist/src/web-ui/plugin-configuration-view.d.ts +25 -0
  583. package/dist/src/web-ui/plugin-configuration-view.js +45 -0
  584. package/dist/src/web-ui/plugin-disabled-selection.d.ts +7 -0
  585. package/dist/src/web-ui/plugin-disabled-selection.js +17 -0
  586. package/dist/src/web-ui/plugin-management-catalog.d.ts +5 -1
  587. package/dist/src/web-ui/plugin-management-catalog.js +13 -1
  588. package/dist/src/web-ui/plugin-management-selection.js +22 -9
  589. package/dist/src/web-ui/plugin-management-service.d.ts +6 -1
  590. package/dist/src/web-ui/plugin-management-service.js +11 -7
  591. package/dist/src/web-ui/plugin-removal-error.d.ts +7 -0
  592. package/dist/src/web-ui/plugin-removal-error.js +16 -0
  593. package/dist/src/web-ui/plugin-removal-service.d.ts +31 -0
  594. package/dist/src/web-ui/plugin-removal-service.js +109 -0
  595. package/dist/src/web-ui/runtime-setup-gateway.d.ts +6 -2
  596. package/dist/src/web-ui/runtime-setup-gateway.js +30 -10
  597. package/dist/src/web-ui/server-readiness.d.ts +3 -0
  598. package/dist/src/web-ui/server-readiness.js +36 -0
  599. package/dist/src/web-ui/server.d.ts +2 -0
  600. package/dist/src/web-ui/server.js +29 -3
  601. package/dist/src/web-ui/session-read-state/overview.d.ts +42 -0
  602. package/dist/src/web-ui/session-read-state/overview.js +16 -0
  603. package/dist/src/web-ui/session-read-state/pagination.d.ts +15 -0
  604. package/dist/src/web-ui/session-read-state/pagination.js +42 -0
  605. package/dist/src/web-ui/session-read-state/projection.d.ts +4 -3
  606. package/dist/src/web-ui/session-read-state/service.d.ts +213 -20
  607. package/dist/src/web-ui/session-read-state/service.js +25 -23
  608. package/dist/src/web-ui/session-read-state/visible-messages.d.ts +3 -3
  609. package/dist/src/web-ui/system-host-service.js +13 -2
  610. package/dist/src/web-ui/system-host-setup/collection-consent-route.d.ts +3 -0
  611. package/dist/src/web-ui/system-host-setup/collection-consent-route.js +30 -0
  612. package/dist/src/web-ui/system-host-setup/companion-linux.js +1 -1
  613. package/dist/src/web-ui/system-host-setup/installer-contract.d.ts +1 -1
  614. package/dist/src/web-ui/system-host-setup/installer-contract.js +2 -2
  615. package/dist/src/web-ui/system-host-setup/installers.js +0 -7
  616. package/dist/src/web-ui/system-host-setup/local-connection.d.ts +4 -1
  617. package/dist/src/web-ui/system-host-setup/local-connection.js +10 -17
  618. package/dist/src/web-ui/system-host-setup/routes.d.ts +2 -0
  619. package/dist/src/web-ui/system-host-setup/routes.js +32 -9
  620. package/dist/src/web-ui/system-host-setup/setup-mutation.d.ts +9 -0
  621. package/dist/src/web-ui/system-host-setup/setup-mutation.js +27 -0
  622. package/dist/src/web-ui/system-host-setup/windows-store-route.d.ts +13 -0
  623. package/dist/src/web-ui/system-host-setup/windows-store-route.js +68 -0
  624. package/docs/configuration.md +46 -0
  625. package/docs/installation.md +88 -28
  626. package/docs/plugins.md +310 -6
  627. package/docs/projects-and-full-plus.md +2 -6
  628. package/docs/runtime-library.md +0 -1
  629. package/docs/tool-execution-result-evidence-contract.md +57 -0
  630. package/docs/windows-companion-store.md +132 -0
  631. package/package.json +6 -4
  632. package/plugins/capability-brief/plugin.json +4 -0
  633. package/plugins/code-outline/README.md +20 -0
  634. package/plugins/code-outline/plugin.json +1 -0
  635. package/plugins/code-outline/source/index.ts +16 -20
  636. package/plugins/code-outline/source/read-failure.ts +40 -0
  637. package/plugins/code-outline/src/index.cjs +614 -29
  638. package/plugins/document-reader/README.md +33 -0
  639. package/plugins/document-reader/plugin.json +2 -0
  640. package/plugins/document-reader/source/pdf-contract.ts +57 -0
  641. package/plugins/document-reader/source/pdf-parser.ts +139 -0
  642. package/plugins/document-reader/source/pdf-process-main.ts +56 -0
  643. package/plugins/document-reader/source/pdf-process.ts +207 -0
  644. package/plugins/document-reader/source/pdf-result.ts +79 -0
  645. package/plugins/document-reader/source/pdf-worker.ts +39 -303
  646. package/plugins/document-reader/source/pdf.ts +4 -1
  647. package/plugins/document-reader/source/read-failure.ts +37 -0
  648. package/plugins/document-reader/source/reader.ts +3 -19
  649. package/plugins/document-reader/src/index.cjs +995 -211
  650. package/plugins/exec/README.md +19 -0
  651. package/plugins/exec/plugin.json +7 -3
  652. package/plugins/exec/skills/exec_skill/SKILL.md +3 -2
  653. package/plugins/exec/source/filesystem-file-observer.ts +98 -0
  654. package/plugins/exec/source/filesystem-observer.ts +8 -79
  655. package/plugins/exec/source/output-files.ts +12 -6
  656. package/plugins/exec/source/paths.ts +3 -1
  657. package/plugins/exec/source/process-manager.ts +8 -24
  658. package/plugins/exec/source/shell-platform.ts +19 -3
  659. package/plugins/exec/source/shell-process.ts +55 -0
  660. package/plugins/exec/source/windows-job-source.ts +1 -0
  661. package/plugins/exec/source/windows-shell-bootstrap.ts +20 -0
  662. package/plugins/exec/src/index.cjs +252 -96
  663. package/plugins/filesystem/README.md +65 -0
  664. package/plugins/filesystem/plugin.json +8 -2
  665. package/plugins/filesystem/source/atomic-write.ts +2 -0
  666. package/plugins/filesystem/source/bounded-io.ts +80 -306
  667. package/plugins/filesystem/source/directory-sample.ts +2 -0
  668. package/plugins/filesystem/source/errors.ts +14 -0
  669. package/plugins/filesystem/source/file-observation.ts +151 -0
  670. package/plugins/filesystem/source/file-version.ts +41 -0
  671. package/plugins/filesystem/source/index.ts +6 -0
  672. package/plugins/filesystem/source/mutation-coordinator.ts +1 -0
  673. package/plugins/filesystem/source/windows/authority-script.ts +1 -0
  674. package/plugins/filesystem/source/windows/native-script.ts +1 -0
  675. package/plugins/filesystem/source/windows/operations.ts +197 -0
  676. package/plugins/filesystem/source/windows/process.ts +214 -0
  677. package/plugins/filesystem/source/windows/publication-script.ts +29 -0
  678. package/plugins/filesystem/source/windows/read-script.ts +63 -0
  679. package/plugins/filesystem/source/windows/request-availability.ts +67 -0
  680. package/plugins/filesystem/source/windows/source.ts +42 -0
  681. package/plugins/filesystem/source/windows/storage-script.ts +11 -0
  682. package/plugins/filesystem/source/windows/streams-script.ts +24 -0
  683. package/plugins/filesystem/source/windows/write-script.ts +86 -0
  684. package/plugins/filesystem/src/index.cjs +1208 -322
  685. package/plugins/json-inspector/README.md +18 -0
  686. package/plugins/json-inspector/plugin.json +1 -0
  687. package/plugins/json-inspector/source/index.ts +16 -19
  688. package/plugins/json-inspector/source/read-failure.ts +42 -0
  689. package/plugins/json-inspector/src/index.cjs +612 -27
  690. package/plugins/local-search/README.md +29 -0
  691. package/plugins/local-search/plugin.json +2 -0
  692. package/plugins/local-search/source/errors.ts +2 -0
  693. package/plugins/local-search/source/paths.ts +3 -0
  694. package/plugins/local-search/source/ripgrep-process.ts +31 -5
  695. package/plugins/local-search/source/ripgrep.ts +3 -3
  696. package/plugins/local-search/source/windows-authority.ts +99 -0
  697. package/plugins/local-search/source/windows-search-lease.ts +49 -0
  698. package/plugins/local-search/source/windows-search-process.ts +91 -0
  699. package/plugins/local-search/source/windows-search-script.ts +52 -0
  700. package/plugins/local-search/src/index.cjs +595 -26
  701. package/plugins/memory/plugin.json +4 -0
  702. package/plugins/memory/source/lock-directory-claim.ts +56 -0
  703. package/plugins/memory/source/lock-owner-file.ts +71 -0
  704. package/plugins/memory/source/lock-path-observation.ts +26 -0
  705. package/plugins/memory/source/prepared-memory-replacement.ts +40 -0
  706. package/plugins/memory/source/store-lock.ts +12 -7
  707. package/plugins/memory/source/store.ts +3 -2
  708. package/plugins/memory/src/index.cjs +174 -25
  709. package/plugins/project-orientation/README.md +23 -0
  710. package/plugins/project-orientation/plugin.json +1 -0
  711. package/plugins/project-orientation/source/index.ts +12 -9
  712. package/plugins/project-orientation/source/inspection-failure.ts +70 -0
  713. package/plugins/project-orientation/source/manifest-summary.ts +9 -2
  714. package/plugins/project-orientation/source/tree.ts +6 -0
  715. package/plugins/project-orientation/src/index.cjs +647 -31
  716. package/plugins/system/README.md +81 -5
  717. package/plugins/system/plugin.json +10 -1
  718. package/plugins/system/skills/system_actions/SKILL.md +1 -1
  719. package/plugins/system/source/command-working-directory.ts +47 -0
  720. package/plugins/system/source/companion-command-output.ts +82 -0
  721. package/plugins/system/source/computer/handlers.ts +13 -9
  722. package/plugins/system/source/computer/observation-result.ts +10 -5
  723. package/plugins/system/source/computer/request-computers.ts +10 -3
  724. package/plugins/system/source/computer/request-modules.ts +3 -6
  725. package/plugins/system/source/computer/runtime-platform.ts +18 -0
  726. package/plugins/system/source/host-dispatch.ts +21 -1
  727. package/plugins/system/source/index.ts +14 -6
  728. package/plugins/system/source/local-command-output-retention.ts +16 -0
  729. package/plugins/system/source/local-command-output.ts +69 -0
  730. package/plugins/system/source/request-system-modules.ts +14 -2
  731. package/plugins/system/source/request-target-snapshot.ts +2 -1
  732. package/plugins/system/source/security/desktop-result.ts +177 -0
  733. package/plugins/system/source/security/observed-error.ts +10 -0
  734. package/plugins/system/source/security/secret-text.ts +118 -0
  735. package/plugins/system/source/security/system-results.ts +62 -0
  736. package/plugins/system/source/security/windows-output-directory.ts +82 -0
  737. package/plugins/system/src/index.cjs +1207 -86
  738. package/plugins/system-probe/plugin.json +8 -2
  739. package/plugins/system-probe/source/disk-path.ts +8 -0
  740. package/plugins/system-probe/source/index.ts +10 -5
  741. package/plugins/system-probe/source/machine-load.ts +33 -0
  742. package/plugins/system-probe/source/metrics.ts +6 -8
  743. package/plugins/system-probe/src/index.cjs +49 -16
  744. package/plugins/web/README.md +2 -2
  745. package/plugins/web/plugin.json +8 -0
  746. package/runtime.config.schema.json +25 -1
  747. package/src/runtime/README.md +12 -2
  748. package/dist/src/web-ui/system-host-setup/companion-windows.d.ts +0 -2
  749. package/dist/src/web-ui/system-host-setup/companion-windows.js +0 -108
  750. package/docs/publishing.md +0 -167
package/docs/plugins.md CHANGED
@@ -16,6 +16,9 @@ the same physical directory, the catalog is discovered only once.
16
16
  Open **Plugins** to see installed manifests, capability counts,
17
17
  and enabled, partially enabled or disabled selections. Switches save the selected
18
18
  plugin's configuration while preserving capability-specific allow/deny rules.
19
+ Whole-plugin switches use `plugins.disabledPluginIds`, an exact list of plugin
20
+ IDs independent of capability names and qualified selectors. The list does not
21
+ interpret wildcards; legacy `allow` and `deny` rules keep their existing meaning.
19
22
  Choose **Manage tools** on a plugin to manage its declared tools inside the same card.
20
23
  The card keeps its size; the tool list scrolls when needed. Use **Back** or Escape
21
24
  to return to the plugin overview. For example, disabling filesystem.read_file
@@ -26,14 +29,164 @@ tools switched off.
26
29
  Global, parent-plugin and broad tool deny rules remain explicit blockers.
27
30
  A child switch does not silently remove those rules or enable sibling tools.
28
31
 
32
+ Install, configuration saves, enable/disable and Remove require every owning Runtime to be idle.
33
+ While a conversation or Job is running, these actions return a clear message
34
+ without saving the requested change. Open but idle conversations do not block
35
+ changes; browsing and reviewing repositories remain available. If another process
36
+ owns an environment, use the owning Web UI so its activity can be verified.
37
+
29
38
  Choose **Apply changes** to activate saved settings. The Web process replaces
30
39
  only its own idle environments and preserves session and Job files. If any
31
40
  environment is working, or another process owns it, changes remain saved and
32
41
  the UI explains why they cannot yet be applied. Saving a switch alone does not
33
42
  change tools available to an already running agent.
34
43
 
35
- This screen manages packages already installed on disk; it does not install
36
- plugins from a marketplace.
44
+ ## Configure Plugin Values
45
+
46
+ Choose **Configure** on an installed plugin, or use the same form during its
47
+ installation review. Fields come from the existing `settings.defaults` and
48
+ `secrets` declarations. Strings, numbers and booleans use ordinary controls;
49
+ objects, arrays and null defaults use JSON. The host checks declared setting
50
+ names and top-level default types. A null default supplies no type information;
51
+ semantic checks such as URL validity remain the plugin's responsibility.
52
+ The form shows whether each setting uses the plugin default or a local value.
53
+ Saving credentials alone leaves inherited defaults unchanged. Editing a setting
54
+ creates a local override, even when its value equals today's default; **Use plugin
55
+ default** removes that override when saved. Existing saved values stay local until
56
+ explicitly reset, so no upgrade automatically rewrites a user's configuration.
57
+ No manifest schema or SDK changes are required. If an upgraded plugin changes a
58
+ setting's default type, an incompatible retained value blocks loading with an
59
+ explicit configuration error. Configure remains available to correct the value;
60
+ the host does not silently replace it with a default.
61
+
62
+ **Save changes** persists values locally; **Apply changes** loads them into new
63
+ idle Runtime owners. Existing owners retain their loaded values, including when
64
+ activation fails and restores the previous configuration. GET returns settings
65
+ and credential-presence flags, never secret values. Passwords remain in their
66
+ mounted controls until submitted, and are cleared after submission.
67
+
68
+ Values are shared across environments of the same consumer root and are stored
69
+ in `<consumer-root>/.runtime/plugin-configuration.json`, outside plugin packages,
70
+ with owner-only file permissions. On POSIX, an existing file with any group or
71
+ other-user permission is rejected before its contents are read. Restore its
72
+ permissions with `chmod 600 .runtime/plugin-configuration.json` from the installation
73
+ root; the host does not change permissions automatically. They are local plaintext
74
+ configuration, not an
75
+ encrypted vault. This file must not be committed, published, or shared with a
76
+ plugin repository. The existing `.runtime/` exclusion also keeps it out of Git
77
+ and packages. Settings override declared defaults; undeclared settings are not
78
+ passed to plugins. A locally configured secret is bound to its declared name
79
+ and environment-variable name and is delivered through `context.secrets.get`.
80
+ Without a local override, the existing process environment remains the source.
81
+ Saving plugin values does not write `.env` or change `process.env`. Browser revision
82
+ tokens use a private process key rather than an unkeyed digest of secret-bearing
83
+ content. Reload an open form after restarting its Web UI process.
84
+
85
+ Keys removed from the current manifest, or whose environment binding changed,
86
+ appear under **Keys no longer used by this plugin** without exposing their values.
87
+ They remain saved until the user selects **Delete saved key** and saves. Ordinary
88
+ settings edits do not delete them. A changed binding under the same key name
89
+ requires explicitly deleting the old saved key before setting or clearing its
90
+ replacement; both choices can be submitted in one save. Configure remains
91
+ available for these keys even when the plugin has no current settings or secrets.
92
+
93
+ For each secret, keep the current value, replace it, or explicitly clear it.
94
+ Clear suppresses an inherited value for this plugin without deleting a shared
95
+ environment variable. Clearing a required secret prevents the plugin from
96
+ loading on the next Apply until the key is configured again. Remove retains
97
+ local settings and secrets; a later installation review shows the retained
98
+ settings and presence flags. Required secrets are checked before installation
99
+ commits, and failed selection saves roll back the local configuration and package.
100
+
101
+ ## Install Community Plugins
102
+
103
+ The **Installed** tab manages the existing catalog. **Discover** links to the
104
+ [ABot Marketplace](https://abot-ai.com/marketplace/) and installs public GitHub packages independently of that directory.
105
+ The Marketplace is a directory of community-owned repositories; listing approval
106
+ does not grant a repository permission to run on a user's machine.
107
+
108
+ Paste a repository URL in **Discover**, optionally choosing a branch, tag or
109
+ commit and a folder inside the repository. **Review plugin** resolves the source
110
+ to an exact commit, validates the manifest and its declared files without
111
+ executing plugin code, and displays its tools and configuration form.
112
+ Fill in required secrets before confirming installation.
113
+ **Install and enable** downloads the same commit, checks the reviewed content
114
+ digest, and installs it at `<consumer-root>/plugins/<manifest.name>`. Existing
115
+ plugin IDs and capability IDs are rejected; this flow never replaces a plugin.
116
+ Package publication and selection saving share the configuration lock with Apply;
117
+ a failed save removes the uncommitted package before Apply can discover it.
118
+ The normal configuration controls and global restrictions still apply.
119
+ The review offers **Install and enable** at both ends. After installation, the
120
+ UI returns to **Installed** with a status message. Choose **Apply changes** to
121
+ load the plugin into the Runtime.
122
+
123
+ Publishers must commit a complete package: `plugin.json`, its built CommonJS
124
+ `.cjs` entrypoint, referenced skills and all required assets. Bundle dependencies
125
+ that are not supplied by the public plugin SDK. Installation does not execute
126
+ `npm install`, build commands, lifecycle scripts or repository code. Public HTTPS
127
+ repositories on `github.com` are supported; private repositories, updates and
128
+ Studio packages are outside this first installation flow. Repository ZIPs are
129
+ limited to 25 MiB and 2,000 entries, with at most 16 MiB per extracted file and
130
+ 64 MiB total. Symlinks, traversal and non-portable filenames are rejected.
131
+
132
+ ### Install In ABot Links
133
+
134
+ Computer Access setup registers the `abot:` URL scheme on Windows, macOS and
135
+ Linux desktops. Existing installations can use **Update** in Computer Access
136
+ to install Companion release 12 and register links while keeping their pairing.
137
+ A website can render an ordinary link using this contract:
138
+
139
+ ```js
140
+ const link = new URL("abot://install");
141
+ link.searchParams.set("kind", "plugin");
142
+ link.searchParams.set("repo", "https://github.com/owner/plugin");
143
+ link.searchParams.set("ref", "v1.0.0"); // optional; a commit is recommended
144
+ link.searchParams.set("path", "plugins/example"); // optional repository folder
145
+ installAnchor.href = link.toString();
146
+ ```
147
+
148
+ Clicking the link opens **Discover** in the Runtime saved in the local Computer
149
+ Access pairing, with the source ready for review. A link cannot choose another
150
+ Runtime address or bypass local installation confirmation. The browser may ask
151
+ to open ABot. Without Computer Access, users can paste the same repository URL.
152
+ Companion disconnect/uninstall removes its owned protocol registration.
153
+
154
+ The local API uses `POST /runtime/plugins/inspect` with
155
+ `{ repository, ref?, path? }`, returning `{ ok, review }`.
156
+ Installation uses `POST /runtime/plugins/install` with
157
+ `{ source: review.source, digest: review.digest }`. Both require same-origin
158
+ JSON requests and completed Runtime setup. These APIs operate on the configured
159
+ consumer root and configuration file; they do not depend on the Marketplace.
160
+
161
+ ## Remove Community Plugins
162
+
163
+ **Remove** is available in the ongoing Plugins screen for packages installed by
164
+ this GitHub flow. After confirmation, it saves a disable, applies configuration
165
+ through the existing idle-owner checks, and only then deletes the installed
166
+ folder. Built-in plugins and manually copied folders without an installation
167
+ receipt do not offer Remove. Removal adds only the target's exact ID to
168
+ `plugins.disabledPluginIds`, so names shared with other tools or qualified
169
+ selectors cannot change another plugin's selection.
170
+
171
+ If work starts after the disable was saved but before Apply, the files remain.
172
+ Finish the active work, then choose **Remove** again. A failed Apply or any
173
+ concurrent configuration change also prevents deletion. Removal verifies the
174
+ moved directory before deleting it and retires its cached CommonJS modules so
175
+ a later installation loads the new entrypoint and package-local dependencies.
176
+ Selection rules remain in the configuration so removal cannot widen another
177
+ plugin's allow policy. Installing the same plugin again clears its exact disabled
178
+ ID and preserves other disabled IDs and capability-specific deny rules. Existing
179
+ qualified denies are not inferred to be removal-generated; review such legacy
180
+ rules explicitly in Advanced settings if they still disable the tools.
181
+
182
+ `POST /runtime/plugins/remove` accepts `{ pluginId }`, with the same origin,
183
+ JSON and completed-setup requirements as installation. It returns `removed`,
184
+ `activation`, a status message and the refreshed plugin snapshot. This removes
185
+ the installed plugin folder, including data the plugin kept inside it; files
186
+ stored elsewhere are retained. If Apply succeeds but a later removal check fails,
187
+ the error retains its HTTP status and code and includes `activation` with status
188
+ `ready`. The UI refreshes the active environments; `config_changed` still marks
189
+ the newer saved configuration as pending activation.
37
190
 
38
191
  ## Package Shape
39
192
 
@@ -84,12 +237,71 @@ options, or skill lists in `runtime.config.json`. Installing or changing a
84
237
  plugin means changing its package under `plugins/`; runtime config only decides
85
238
  whether that installed capability is available.
86
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
+
87
283
  ## Manifest Contract
88
284
 
89
285
  `@abot-ai/runtime/plugin-sdk` is the single public plugin-authoring entrypoint. It
90
286
  exports the manifest constants and types, entrypoint contract, and bounded
91
287
  authoring helpers consumed by plugin implementations.
92
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
+
93
305
  The manifest follows the Agent Plugins 1.0 package shape and keeps the local
94
306
  executable contract under `extensions.ai.abot.runtime`:
95
307
 
@@ -143,6 +355,16 @@ input, effect, and approval. Optional capability metadata such as client event
143
355
  presentation, payload authoring, development roles, and selection grounding
144
356
  belongs here as well—not in runtime orchestration.
145
357
 
358
+ An operation may declare `outputChannels` alongside `summary`, for example
359
+ `{"text":"content","data":"metadata"}`. Both fields are required when declared:
360
+ `content` can carry substantive output (possibly bounded or summarized),
361
+ `metadata` contains only identifiers/status/counts/receipts, and `conditional`
362
+ depends on the operation inputs. Omission means unknown, not metadata. This
363
+ passive declaration describes the saved Studio channels, not every field in a
364
+ chat tool result; it changes no execution or binding behavior. Only selected
365
+ Studio `prepare_draft` operations expose it to models; ordinary tool summaries
366
+ and discovery stay concise. Whole Data bindings do not need field pointers.
367
+
146
368
  A plugin declares sensitive operations with `approval: "always"` in its
147
369
  manifest, as the bundled EXEC and SYSTEM plugins do. Apply that policy to every
148
370
  operation when the whole plugin is sensitive. The generic approval boundary
@@ -201,10 +423,14 @@ receive it. Planner uses this same brief instead of a separate aggregate-tag
201
423
  catalog. Its existing group-selection schema and Worker scope enforcement stay
202
424
  unchanged; descriptions do not select a group or execute an operation.
203
425
 
204
- Under `execution-agent-v1`, the canonical root receives group descriptions
205
- generated from member capability ids and summaries, and may mechanically open
206
- or extend its own RoleCall scope.
207
- It then selects a concrete capability only from that active scope. Scope
426
+ Under `execution-agent-v1`, the canonical root receives every group and member
427
+ in ASCII order on each decision, and may mechanically open or extend its own
428
+ RoleCall scope. A capability's exact summary appears as `capabilityId: summary`
429
+ at its first group membership; later memberships contain only its id, referring
430
+ to that definition. The first group has no selection priority. Descriptions
431
+ are neither sampled, truncated, nor synthesized. The active catalog supplies
432
+ each capability's id and effect; its selection controls remain in the decision
433
+ schema. It then selects a concrete capability only from that active scope. Scope
208
434
  updates, capability binding, payload authoring, adapter execution, and
209
435
  settlement use the same ledger and capability engine as delegated Worker
210
436
  execution. Unknown, empty, invalid, repeated, or no-op scopes are rejected
@@ -329,6 +555,36 @@ they must not include secrets and they never act as instructions, new user
329
555
  intent, or proof that the whole request completed. See
330
556
  [tool-execution-result-evidence-contract.md](tool-execution-result-evidence-contract.md).
331
557
 
558
+ ### Reporting a confirmed mutation
559
+
560
+ Use `successResult()` for ordinary successful observations. After the owning
561
+ plugin has confirmed a completed mutation, use `mutationSuccessResult()` to
562
+ preserve its receipt and add the Runtime's required `data.mutationEvidence: true`:
563
+
564
+ ```ts
565
+ import { mutationSuccessResult } from "@abot-ai/runtime/plugin-sdk";
566
+
567
+ // apiReceipt is the result of a completed write already confirmed by this handler.
568
+ return mutationSuccessResult({
569
+ output: "The article was published.",
570
+ data: apiReceipt,
571
+ }, context.resultBudget);
572
+ ```
573
+
574
+ The helper does not execute the operation or independently verify its effect.
575
+ Do not use it for a failed, ambiguous, pending, or no-op operation. It retains
576
+ the same JSON and result-size bounds as `successResult()`; a rejected receipt
577
+ returns a failure without asserting mutation evidence. The existing generic
578
+ helper does not infer a mutation from `ok`, `progress`, prose, or the presence of
579
+ arbitrary data. Explicit `actions`, `progress`, and other result fields remain
580
+ available to the owning plugin.
581
+
582
+ The adapter records operation outcome separately from observed effect.
583
+ For a `mutating` operation, `ok: true` without `mutationEvidence: true` is
584
+ classified as `mutation_evidence_missing`. The new helper supplies that marker
585
+ after the plugin has established the evidence; it does not change the Runtime's
586
+ classification rules or prove completion of the user's whole request.
587
+
332
588
  ### EXEC output storage
333
589
 
334
590
  EXEC captures stdout and stderr in private files under its injected `stateDir`.
@@ -491,6 +747,54 @@ counts imply full-file coverage.
491
747
 
492
748
  No concrete tool or skill mapping should be added anywhere under `src/runtime`.
493
749
 
750
+ ### Native Windows plugin support
751
+
752
+ The native Windows group contains `capability-brief`, `code-outline`,
753
+ `document-reader`, `exec`, `filesystem`, `json-inspector`, `local-search`, `memory`, `web`,
754
+ `project-orientation`, `system-probe`, and `system`.
755
+ Each declares `win32` in its versioned
756
+ `ai.abot.compatibility` extension, alongside its existing Linux and macOS support.
757
+ Compatibility uses the Runtime process OS, not the browser or a paired computer.
758
+ A Windows-only plugin should declare only `win32`; other hosts will not load it.
759
+
760
+ On native Windows, SYSTEM provides `system_targets`, `system_command`,
761
+ `system_applications`, and `system_launch`. Commands run in local PowerShell and
762
+ retain existing approvals, cancellation, and protected output handling. Desktop
763
+ observation and input (`computer_*`) are excluded from the request catalog in
764
+ this phase. Linux/macOS Runtime and WSL/Docker Companion routes retain their
765
+ existing capabilities. This phase does not add screenshot OCR.
766
+
767
+ `system-probe` reports Windows load averages as unsupported instead of presenting
768
+ the OS's placeholder zeros as measured load. Its default disk probe uses the
769
+ Runtime installation's filesystem; an explicit path selects that path's volume.
770
+
771
+ `code-outline` uses the SDK's bounded file reader on Windows, with the same
772
+ authorized roots, parser and output limits as Linux/macOS. If safe reading is
773
+ unavailable, it reports the restriction explicitly and tells the model not to
774
+ retry or bypass it. See [Code Outline](../plugins/code-outline/README.md).
775
+
776
+ `document-reader` uses the SDK's bounded Windows reader for configured paths
777
+ and request attachments, with shared text, Office and PDF parsers and limits.
778
+ A blocked reader reports an explicit no-retry restriction.
779
+ See [Document Reader](../plugins/document-reader/README.md).
780
+
781
+ `json-inspector` uses the SDK's bounded Windows reader with the existing path,
782
+ UTF-8, size and summary limits. A blocked reader reports an explicit no-retry
783
+ restriction. See [JSON Inspector](../plugins/json-inspector/README.md).
784
+
785
+ `project-orientation` uses the SDK's bounded Windows reader for package
786
+ metadata and retains its existing directory-tree and result limits. Blocked
787
+ manifest reads return an explicit no-retry restriction.
788
+ See [Project Orientation](../plugins/project-orientation/README.md).
789
+
790
+ `local-search` uses native Windows ripgrep through a PowerShell/C# helper that
791
+ pins the selected path and owns the child process through a Job Object. Existing
792
+ query, output, timeout and cancellation limits still apply. A blocked helper
793
+ fails explicitly without a retry or policy bypass.
794
+ See [Local Search](../plugins/local-search/README.md).
795
+
796
+ Enabling manifests alone is not a validation step.
797
+
494
798
  ### Shared Computer access
495
799
 
496
800
  Plugins that need host facilities can import the opt-in
@@ -206,12 +206,8 @@ system action. Cancellation or revocation attempts to stop an in-flight command,
206
206
  but effects already performed are not rolled back. If a connection is lost during
207
207
  execution, inspect the actual host state before trying the action again.
208
208
 
209
- ## Validation status
209
+ ## Platform validation
210
210
 
211
- Implementation and validation progress are recorded in the task journal. Native
212
- Mac QA is performed separately with the owner; mocked platform tests are not a
213
- claim that an actual Mac was tested. No release or installation update is implied
214
- by changes in a development worktree.
215
211
  Native Windows/macOS companion installation, login startup and visible-application
216
- QA remain separate checks on the real desktop systems; Linux protocol and package
212
+ behavior require checks on the target systems; Linux protocol and package
217
213
  tests do not establish those results.
@@ -13,7 +13,6 @@ For invariant coverage, see
13
13
  [runtime-invariant-coverage.md](runtime-invariant-coverage.md).
14
14
  For bridge/runtime ownership, see [bridge-compatibility.md](bridge-compatibility.md).
15
15
  For current limitations, see [known-limitations.md](known-limitations.md).
16
- For package and publication gates, see [publishing.md](publishing.md).
17
16
 
18
17
  ## Basic Composition
19
18
 
@@ -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
@@ -0,0 +1,132 @@
1
+ # Windows Companion Store delivery
2
+
3
+ ## Current status
4
+
5
+ **ABot AI Companion** is available from
6
+ [Microsoft Store](https://apps.microsoft.com/detail/9PK2FDQQLQS9), product ID
7
+ `9PK2FDQQLQS9`. Runtime 1.7.0 provides the guided connection flow described below.
8
+
9
+ The Store app and Runtime have separate releases.
10
+
11
+ ## Connection experience
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
+
18
+ The Web UI links to the Store for one installation. The user returns to ABot,
19
+ requests a connection link and explicitly opens Companion. Companion shows the
20
+ Runtime address and asks for confirmation before pairing. Users who already
21
+ installed Companion go directly to connecting. The Web UI confirms the live
22
+ connection after pairing.
23
+
24
+ Before **Allow connection** is enabled, users must select an initially unchecked
25
+ acknowledgment of the described computer access and data sharing. The dialog
26
+ links to the [software terms](https://abot-ai.com/terms/#software) and
27
+ [privacy policy](https://abot-ai.com/privacy/#software); opening either link does
28
+ not grant consent. Task permissions and optional SPARK controls remain separate.
29
+ Disconnecting does not erase data already sent to the Runtime or other services.
30
+
31
+ For a paired computer that is offline, **Open Companion** uses the fixed
32
+ `abot-companion://open` activation without creating an invitation. It opens the
33
+ saved connection or explains how to re-pair when local credentials are missing.
34
+ **Set up again** requires confirmation, revokes the old server pairing using
35
+ the existing endpoint, then requests a fresh invitation. An upgrade invitation
36
+ never substitutes for a new pairing grant when local credentials are missing.
37
+ After explicit consent, a fresh connection consumes the new grant even when an
38
+ old local credential remains. The previous owned process is stopped before that
39
+ exchange. A failed exchange preserves the saved credential but does not restart
40
+ the previous process;
41
+ an upgrade continues to use the matching saved host identity.
42
+
43
+ Every user installs the same package. The personalized, expiring invitation is
44
+ sent through the `abot-companion:` protocol after installation. It carries the
45
+ existing pairing or upgrade grant, not a second authentication scheme. The Web UI
46
+ keeps it only in the current surface, clears it after connection or expiry, and
47
+ does not save it to browser storage. Do not put connection links in logs, support
48
+ reports or screenshots.
49
+
50
+ The current invitation contract accepts a local HTTP loopback Runtime address.
51
+ Docker must publish its Web UI port on the Windows host's loopback; other setups
52
+ must expose the Runtime through an appropriate local forward. Opening ABot on a
53
+ different computer does not make that remote Runtime address a valid invitation.
54
+
55
+ ## Shared components
56
+
57
+ | Owner | Responsibility |
58
+ | --- | --- |
59
+ | Shared Web UI connection manager | Connection status, readiness polling, unpairing and onboarding lifecycle. |
60
+ | Windows Store UI module and route | Store link, temporary invitation and explicit launch. The route uses the existing pairing store. |
61
+ | Windows desktop shell | Display connection status and consent, activate links and call the bundled Node entry. |
62
+ | Shared Companion and CLI lifecycle | Pairing credentials, command and desktop capabilities, connection protocol, reconnect behavior and permission checks. |
63
+ | Windows Store lifecycle adapter and MSIX package | Windows package activation, startup integration, notification identity and package updates. |
64
+
65
+ The desktop shell does not implement another pairing store or copy the Companion
66
+ protocol. Shared fixes belong in the shared Companion implementation; Windows
67
+ presentation and package integration stay in the Windows adapter. The package
68
+ contains the runtime dependencies needed for connection.
69
+
70
+ The Store integration changes Windows delivery. Native macOS connection, manual
71
+ Mac connection, Linux setup and WSL command routing keep their existing owners
72
+ and behavior. A WSL Runtime can use the Windows desktop Companion without a WSL
73
+ restart.
74
+
75
+ ## Version and update ownership
76
+
77
+ The **MSIX package version** orders Windows package updates. The **Companion
78
+ release version**, owned by `src/computer-access/companion/release-version.ts`,
79
+ describes the Companion behavior expected by the Runtime. These are different
80
+ values: a packaging or shell-only rebuild can require a newer MSIX version
81
+ without changing the Companion release contract.
82
+
83
+ If the Runtime requires a Companion release newer than the installed package,
84
+ the invitation is rejected with a request to update through Microsoft Store.
85
+ The Store supplies the replacement package; the Runtime does not overwrite
86
+ Store-owned executable files. Store updates are intended to preserve the user's
87
+ saved pairing.
88
+
89
+ The Store identity is owned by
90
+ `src/computer-access/companion/windows-store/identity.ts`. Packaging and the
91
+ Companion must use this same identity. Do not create another copy of protocol
92
+ version or package identity policy in the Web UI or desktop shell.
93
+
94
+ ## Build from source
95
+
96
+ Build Companion from this repository.
97
+ The build uses the pinned Windows Node.js distributions, checking the archive
98
+ hash before extracting only `node.exe` and its license. Supply an explicit
99
+ four-part Store version with a zero last component.
100
+
101
+ ```sh
102
+ npx tsx scripts/build-windows-companion-store.ts \
103
+ --output-dir <new-layout-directory> \
104
+ --node-archive <verified-node-windows-zip> \
105
+ --version <major.minor.patch.0> --architecture x64
106
+ ```
107
+
108
+ Then, in Windows PowerShell, use the .NET Framework compiler and an authentic
109
+ Microsoft Windows SDK `MakeAppx.exe`:
110
+
111
+ ```powershell
112
+ ./scripts/build-windows-companion-store.ps1 `
113
+ -LayoutDirectory <layout-directory> `
114
+ -MakeAppxPath <local-windows-sdk-makeappx-path> `
115
+ -OutputPath <new-msix-path>
116
+ ```
117
+
118
+ Keep the SDK tools on a local Windows volume. Package inputs and output can
119
+ remain in the WSL checkout. The output is unsigned and is not installed,
120
+ registered, signed or submitted by these scripts.
121
+
122
+ ## Package contents
123
+
124
+ The public source includes the Windows shell and packaging scripts. The MSIX
125
+ contains the compiled shell, bundled shared Companion, pinned Node executable,
126
+ licenses, icons and Windows manifest. The Store package and Node executable are
127
+ not part of the Runtime npm package.
128
+
129
+ Pairing invitations are generated when the user requests a connection. They are
130
+ never baked into the Store package. Local configurations, API keys, saved pairing
131
+ and logs must stay outside the Store package. Store product and publisher identity
132
+ values are public package metadata, not authentication credentials.
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"
@@ -95,11 +97,11 @@
95
97
  "docs/bridge-compatibility.md",
96
98
  "docs/configuration.md",
97
99
  "docs/installation.md",
100
+ "docs/windows-companion-store.md",
98
101
  "docs/known-limitations.md",
99
102
  "docs/long-term-memory.md",
100
103
  "docs/plugins.md",
101
104
  "docs/projects-and-full-plus.md",
102
- "docs/publishing.md",
103
105
  "docs/running-locally.md",
104
106
  "docs/runtime-invariant-coverage.md",
105
107
  "docs/runtime-library.md",
@@ -128,7 +130,7 @@
128
130
  "plugins/system-probe/",
129
131
  "plugins/web/"
130
132
  ],
131
- "homepage": "https://github.com/Dorshitrit/abot-runtime#readme",
133
+ "homepage": "https://abot-ai.com/",
132
134
  "keywords": [
133
135
  "llm",
134
136
  "runtime",
@@ -181,5 +183,5 @@
181
183
  },
182
184
  "type": "module",
183
185
  "types": "./dist/src/runtime/index.d.ts",
184
- "version": "1.6.0"
186
+ "version": "1.8.0"
185
187
  }
@@ -4,6 +4,10 @@
4
4
  "version": "1.0.0",
5
5
  "description": "Describe the request-effective ABot tool catalog on demand.",
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",