@abot-ai/runtime 1.3.1 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (634) hide show
  1. package/dist/plugins/system/source/application-catalog.d.ts +14 -0
  2. package/dist/plugins/system/source/application-catalog.js +185 -0
  3. package/dist/plugins/system/source/application-launch.d.ts +10 -0
  4. package/dist/plugins/system/source/application-launch.js +80 -0
  5. package/dist/plugins/system/source/application-observation.d.ts +25 -0
  6. package/dist/plugins/system/source/application-observation.js +53 -0
  7. package/dist/plugins/system/source/commands.d.ts +7 -0
  8. package/dist/plugins/system/source/commands.js +71 -0
  9. package/dist/plugins/system/source/companion/autostart.d.ts +16 -0
  10. package/dist/plugins/system/source/companion/autostart.js +146 -0
  11. package/dist/plugins/system/source/companion/broker-location.d.ts +11 -0
  12. package/dist/plugins/system/source/companion/broker-location.js +76 -0
  13. package/dist/plugins/system/source/companion/broker-server.d.ts +4 -0
  14. package/dist/plugins/system/source/companion/broker-server.js +147 -0
  15. package/dist/plugins/system/source/companion/connection.d.ts +25 -0
  16. package/dist/plugins/system/source/companion/connection.js +182 -0
  17. package/dist/plugins/system/source/companion/liveness.d.ts +3 -0
  18. package/dist/plugins/system/source/companion/liveness.js +20 -0
  19. package/dist/plugins/system/source/companion/native-address.d.ts +12 -0
  20. package/dist/plugins/system/source/companion/native-address.js +41 -0
  21. package/dist/plugins/system/source/companion/native-identity.d.ts +2 -0
  22. package/dist/plugins/system/source/companion/native-identity.js +23 -0
  23. package/dist/plugins/system/source/companion/native-messages.d.ts +9 -0
  24. package/dist/plugins/system/source/companion/native-messages.js +77 -0
  25. package/dist/plugins/system/source/companion/native-session.d.ts +19 -0
  26. package/dist/plugins/system/source/companion/native-session.js +205 -0
  27. package/dist/plugins/system/source/companion/native-state.d.ts +22 -0
  28. package/dist/plugins/system/source/companion/native-state.js +126 -0
  29. package/dist/plugins/system/source/companion/native-supervisor.d.ts +10 -0
  30. package/dist/plugins/system/source/companion/native-supervisor.js +93 -0
  31. package/dist/plugins/system/source/companion/pairing-store.d.ts +22 -0
  32. package/dist/plugins/system/source/companion/pairing-store.js +102 -0
  33. package/dist/plugins/system/source/companion/private-store.d.ts +4 -0
  34. package/dist/plugins/system/source/companion/private-store.js +59 -0
  35. package/dist/plugins/system/source/companion/process-owner-identity.d.ts +22 -0
  36. package/dist/plugins/system/source/companion/process-owner-identity.js +144 -0
  37. package/dist/plugins/system/source/companion/protocol.d.ts +57 -0
  38. package/dist/plugins/system/source/companion/protocol.js +66 -0
  39. package/dist/plugins/system/source/contracts.d.ts +38 -0
  40. package/dist/plugins/system/source/contracts.js +7 -0
  41. package/dist/plugins/system/source/elevation.d.ts +8 -0
  42. package/dist/plugins/system/source/elevation.js +57 -0
  43. package/dist/plugins/system/source/handlers.d.ts +3 -0
  44. package/dist/plugins/system/source/handlers.js +90 -0
  45. package/dist/plugins/system/source/host-evidence.d.ts +4 -0
  46. package/dist/plugins/system/source/host-evidence.js +52 -0
  47. package/dist/plugins/system/source/host-observation.d.ts +25 -0
  48. package/dist/plugins/system/source/host-observation.js +59 -0
  49. package/dist/plugins/system/source/process-result.d.ts +4 -0
  50. package/dist/plugins/system/source/process-result.js +86 -0
  51. package/dist/plugins/system/source/process-runner.d.ts +3 -0
  52. package/dist/plugins/system/source/process-runner.js +103 -0
  53. package/dist/plugins/system/source/target-observation.d.ts +18 -0
  54. package/dist/plugins/system/source/target-observation.js +29 -0
  55. package/dist/plugins/system/source/targets.d.ts +8 -0
  56. package/dist/plugins/system/source/targets.js +101 -0
  57. package/dist/scripts/add-runtime-model.js +10 -53
  58. package/dist/scripts/runtime-model-addition.d.ts +13 -0
  59. package/dist/scripts/runtime-model-addition.js +53 -0
  60. package/dist/scripts/runtime-setup-files.d.ts +3 -1
  61. package/dist/scripts/runtime-setup-files.js +18 -1
  62. package/dist/src/capabilities/file-output-presentation.d.ts +43 -0
  63. package/dist/src/capabilities/file-output-presentation.js +133 -0
  64. package/dist/src/capabilities/tool-definition-validator/definition-parser.js +2 -0
  65. package/dist/src/capabilities/tool-definition-validator/event-input-text-options.d.ts +5 -0
  66. package/dist/src/capabilities/tool-definition-validator/event-input-text-options.js +37 -0
  67. package/dist/src/capabilities/tool-definition-validator/event-presentation.js +3 -0
  68. package/dist/src/capabilities/tool-definition-validator/module-registry.js +12 -0
  69. package/dist/src/capabilities/tool-event-input-text.d.ts +9 -0
  70. package/dist/src/capabilities/tool-event-input-text.js +64 -0
  71. package/dist/src/capabilities/tool-event-metadata.js +10 -0
  72. package/dist/src/capabilities/tool-executor.d.ts +1 -0
  73. package/dist/src/capabilities/tool-executor.js +1 -0
  74. package/dist/src/capabilities/tool-permission-mode.d.ts +7 -0
  75. package/dist/src/capabilities/tool-permission-mode.js +27 -0
  76. package/dist/src/capabilities/tool-types.d.ts +18 -2
  77. package/dist/src/cli/abot.js +18 -15
  78. package/dist/src/cli/host-companion-bundle.mjs +5201 -0
  79. package/dist/src/cli/host-companion-entry.d.ts +8 -0
  80. package/dist/src/cli/host-companion-entry.js +70 -0
  81. package/dist/src/cli/host-companion-startup.d.ts +4 -0
  82. package/dist/src/cli/host-companion-startup.js +35 -0
  83. package/dist/src/cli/host-companion.d.ts +5 -0
  84. package/dist/src/cli/host-companion.js +203 -0
  85. package/dist/src/model-gateway/server/configuration.js +4 -1
  86. package/dist/src/model-gateway/server/contracts.d.ts +2 -0
  87. package/dist/src/plugin-contract/entrypoint.d.ts +4 -2
  88. package/dist/src/plugin-contract/manifest.d.ts +1 -0
  89. package/dist/src/runtime/adapters/config-file-transaction.d.ts +46 -0
  90. package/dist/src/runtime/adapters/config-file-transaction.js +158 -0
  91. package/dist/src/runtime/adapters/configured-skill-provider.js +3 -3
  92. package/dist/src/runtime/adapters/in-memory-session-store.js +11 -1
  93. package/dist/src/runtime/adapters/long-term-memory/file-lock/acquisition.js +7 -3
  94. package/dist/src/runtime/adapters/long-term-memory/file-lock/contracts.d.ts +4 -1
  95. package/dist/src/runtime/adapters/long-term-memory/file-lock/install.d.ts +1 -1
  96. package/dist/src/runtime/adapters/long-term-memory/file-lock/install.js +5 -1
  97. package/dist/src/runtime/adapters/long-term-memory/file-lock/owner-identity.d.ts +3 -0
  98. package/dist/src/runtime/adapters/long-term-memory/file-lock/owner-identity.js +15 -0
  99. package/dist/src/runtime/adapters/long-term-memory/file-lock/owner-record.js +2 -0
  100. package/dist/src/runtime/adapters/long-term-memory/onboarding-config-repository.js +17 -43
  101. package/dist/src/runtime/adapters/registered-tool-normal-invocations/catalog/registrations.js +6 -2
  102. package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/approval.js +10 -1
  103. package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/execution-binding.d.ts +11 -0
  104. package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/execution-binding.js +37 -0
  105. package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/file-output-presentation.d.ts +7 -0
  106. package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/file-output-presentation.js +105 -0
  107. package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/run.js +29 -3
  108. package/dist/src/runtime/adapters/registered-tool-normal-invocations/shared/action-fingerprint.d.ts +1 -0
  109. package/dist/src/runtime/adapters/registered-tool-normal-invocations/shared/action-fingerprint.js +1 -0
  110. package/dist/src/runtime/capabilities/configured-tool-registry.js +9 -1
  111. package/dist/src/runtime/capabilities/file-output-root-identity.d.ts +5 -0
  112. package/dist/src/runtime/capabilities/file-output-root-identity.js +146 -0
  113. package/dist/src/runtime/capabilities/file-output-root-marker-creation.d.ts +5 -0
  114. package/dist/src/runtime/capabilities/file-output-root-marker-creation.js +63 -0
  115. package/dist/src/runtime/capabilities/request-bound-tool-registry.d.ts +1 -0
  116. package/dist/src/runtime/capabilities/request-bound-tool-registry.js +6 -1
  117. package/dist/src/runtime/capabilities/request-module-preparation.d.ts +3 -0
  118. package/dist/src/runtime/capabilities/request-module-preparation.js +102 -0
  119. package/dist/src/runtime/capabilities/request-permission-catalog.d.ts +10 -0
  120. package/dist/src/runtime/capabilities/request-permission-catalog.js +50 -0
  121. package/dist/src/runtime/capabilities/request-permission-tool-registry.d.ts +4 -0
  122. package/dist/src/runtime/capabilities/request-permission-tool-registry.js +61 -0
  123. package/dist/src/runtime/capabilities/request-runtime-tool-registry.d.ts +3 -0
  124. package/dist/src/runtime/capabilities/request-runtime-tool-registry.js +5 -2
  125. package/dist/src/runtime/capabilities/request-working-directory.d.ts +3 -0
  126. package/dist/src/runtime/capabilities/request-working-directory.js +12 -0
  127. package/dist/src/runtime/composition.d.ts +2 -0
  128. package/dist/src/runtime/config/runner/loader.d.ts +4 -0
  129. package/dist/src/runtime/config/runner/loader.js +23 -3
  130. package/dist/src/runtime/context/capability-brief-budget.d.ts +18 -0
  131. package/dist/src/runtime/context/capability-brief-budget.js +38 -0
  132. package/dist/src/runtime/context/capability-brief-readmission.d.ts +21 -0
  133. package/dist/src/runtime/context/capability-brief-readmission.js +47 -0
  134. package/dist/src/runtime/context/capability-brief.d.ts +9 -2
  135. package/dist/src/runtime/context/capability-brief.js +21 -39
  136. package/dist/src/runtime/context/capability-descriptions.d.ts +3 -0
  137. package/dist/src/runtime/context/capability-descriptions.js +23 -0
  138. package/dist/src/runtime/default-environment-adapters.js +3 -4
  139. package/dist/src/runtime/local-application.d.ts +18 -0
  140. package/dist/src/runtime/local-application.js +12 -0
  141. package/dist/src/runtime/local-host/app-service-dispatch.d.ts +1 -0
  142. package/dist/src/runtime/local-host/app-service-dispatch.js +9 -0
  143. package/dist/src/runtime/local-host/client-services.d.ts +16 -0
  144. package/dist/src/runtime/local-host/client-services.js +3 -2
  145. package/dist/src/runtime/local-host/contracts.d.ts +4 -0
  146. package/dist/src/runtime/local-host/startup-connection.js +22 -7
  147. package/dist/src/runtime/local-host/transport.js +14 -2
  148. package/dist/src/runtime/orchestration/role-calls/candidate-validation.js +5 -2
  149. package/dist/src/runtime/orchestration/role-calls/command-decoder.js +3 -0
  150. package/dist/src/runtime/orchestration/role-calls/command-dispatch/work-plan-transition.d.ts +3 -0
  151. package/dist/src/runtime/orchestration/role-calls/command-dispatch/work-plan-transition.js +46 -0
  152. package/dist/src/runtime/orchestration/role-calls/command-dispatch.js +3 -0
  153. package/dist/src/runtime/orchestration/role-calls/contracts.d.ts +8 -4
  154. package/dist/src/runtime/orchestration/role-calls/transactions.js +2 -0
  155. package/dist/src/runtime/orchestration/role-calls/work-plan-contracts.d.ts +48 -0
  156. package/dist/src/runtime/orchestration/role-calls/work-plan-contracts.js +9 -0
  157. package/dist/src/runtime/orchestration/role-calls/work-plan-source.d.ts +7 -0
  158. package/dist/src/runtime/orchestration/role-calls/work-plan-source.js +85 -0
  159. package/dist/src/runtime/orchestration/role-calls/work-plan-transactions.d.ts +3 -0
  160. package/dist/src/runtime/orchestration/role-calls/work-plan-transactions.js +17 -0
  161. package/dist/src/runtime/orchestration/role-calls/work-plan-validation.d.ts +10 -0
  162. package/dist/src/runtime/orchestration/role-calls/work-plan-validation.js +149 -0
  163. package/dist/src/runtime/orchestration/worker-capabilities/contracts.d.ts +1 -1
  164. package/dist/src/runtime/orchestration/worker-capabilities/contracts.js +1 -1
  165. package/dist/src/runtime/plugins/compiled-catalog.d.ts +2 -1
  166. package/dist/src/runtime/plugins/configured-manifests.d.ts +3 -0
  167. package/dist/src/runtime/plugins/configured-manifests.js +37 -0
  168. package/dist/src/runtime/plugins/entrypoint-validation.d.ts +6 -0
  169. package/dist/src/runtime/plugins/entrypoint-validation.js +74 -0
  170. package/dist/src/runtime/plugins/loader.js +11 -123
  171. package/dist/src/runtime/plugins/manifest-discovery.d.ts +4 -1
  172. package/dist/src/runtime/plugins/manifest-discovery.js +8 -1
  173. package/dist/src/runtime/plugins/manifest-projection.js +3 -0
  174. package/dist/src/runtime/plugins/manifest-validator.js +7 -1
  175. package/dist/src/runtime/plugins/runtime-capability-plugins.d.ts +4 -0
  176. package/dist/src/runtime/plugins/runtime-capability-plugins.js +7 -0
  177. package/dist/src/runtime/plugins/selection.d.ts +14 -0
  178. package/dist/src/runtime/plugins/selection.js +38 -0
  179. package/dist/src/runtime/ports.d.ts +8 -2
  180. package/dist/src/runtime/projects/contracts.d.ts +40 -0
  181. package/dist/src/runtime/projects/contracts.js +10 -0
  182. package/dist/src/runtime/projects/folders.d.ts +7 -0
  183. package/dist/src/runtime/projects/folders.js +110 -0
  184. package/dist/src/runtime/projects/repository.d.ts +10 -0
  185. package/dist/src/runtime/projects/repository.js +54 -0
  186. package/dist/src/runtime/projects/service.d.ts +3 -0
  187. package/dist/src/runtime/projects/service.js +34 -0
  188. package/dist/src/runtime/projects/session-paths.d.ts +5 -0
  189. package/dist/src/runtime/projects/session-paths.js +13 -0
  190. package/dist/src/runtime/request/execution-agent-plan-update.d.ts +4 -0
  191. package/dist/src/runtime/request/execution-agent-plan-update.js +13 -0
  192. package/dist/src/runtime/request/execution-agent-root-execution.js +9 -1
  193. package/dist/src/runtime/request/handler.js +9 -2
  194. package/dist/src/runtime/request/input.d.ts +2 -1
  195. package/dist/src/runtime/request/input.js +1 -6
  196. package/dist/src/runtime/request/role-call-planner-events.js +4 -0
  197. package/dist/src/runtime/request/role-executor-composition.js +9 -1
  198. package/dist/src/runtime/request/root-contract.d.ts +6 -1
  199. package/dist/src/runtime/request/root-execution-kernel.js +17 -0
  200. package/dist/src/runtime/request/root-plan-event-projection.d.ts +3 -0
  201. package/dist/src/runtime/request/root-plan-event-projection.js +32 -0
  202. package/dist/src/runtime/request/root-plan-update.d.ts +15 -0
  203. package/dist/src/runtime/request/root-plan-update.js +20 -0
  204. package/dist/src/runtime/request/worker-capability-composition.d.ts +1 -0
  205. package/dist/src/runtime/request/worker-capability-composition.js +2 -0
  206. package/dist/src/runtime/runtime-environment.d.ts +1 -0
  207. package/dist/src/runtime/runtime-environment.js +2 -0
  208. package/dist/src/runtime/steps/auditor-decision/advisory-receipt.d.ts +32 -0
  209. package/dist/src/runtime/steps/auditor-decision/advisory-receipt.js +106 -0
  210. package/dist/src/runtime/steps/auditor-decision/advisory-result-budget.d.ts +5 -0
  211. package/dist/src/runtime/steps/auditor-decision/advisory-result-budget.js +40 -0
  212. package/dist/src/runtime/steps/auditor-decision/audit-input-state.d.ts +12 -0
  213. package/dist/src/runtime/steps/auditor-decision/audit-input-state.js +101 -0
  214. package/dist/src/runtime/steps/auditor-decision/contracts.d.ts +31 -16
  215. package/dist/src/runtime/steps/auditor-decision/contracts.js +3 -3
  216. package/dist/src/runtime/steps/auditor-decision/evidence-binding.d.ts +5 -0
  217. package/dist/src/runtime/steps/auditor-decision/evidence-binding.js +43 -0
  218. package/dist/src/runtime/steps/auditor-decision/evidence-coverage.d.ts +2 -0
  219. package/dist/src/runtime/steps/auditor-decision/evidence-coverage.js +71 -0
  220. package/dist/src/runtime/steps/auditor-decision/evidence-inventory.d.ts +13 -0
  221. package/dist/src/runtime/steps/auditor-decision/evidence-inventory.js +89 -0
  222. package/dist/src/runtime/steps/auditor-decision/evidence-representation.d.ts +10 -0
  223. package/dist/src/runtime/steps/auditor-decision/evidence-representation.js +56 -0
  224. package/dist/src/runtime/steps/auditor-decision/evidence-selection.d.ts +9 -0
  225. package/dist/src/runtime/steps/auditor-decision/evidence-selection.js +71 -0
  226. package/dist/src/runtime/steps/auditor-decision/format.js +44 -2
  227. package/dist/src/runtime/steps/auditor-decision/index.d.ts +3 -0
  228. package/dist/src/runtime/steps/auditor-decision/index.js +3 -0
  229. package/dist/src/runtime/steps/auditor-decision/input.d.ts +2 -2
  230. package/dist/src/runtime/steps/auditor-decision/input.js +64 -20
  231. package/dist/src/runtime/steps/auditor-decision/parser.js +38 -23
  232. package/dist/src/runtime/steps/auditor-decision/projection.js +49 -99
  233. package/dist/src/runtime/steps/auditor-decision/prompt.d.ts +1 -1
  234. package/dist/src/runtime/steps/auditor-decision/prompt.js +9 -4
  235. package/dist/src/runtime/steps/auditor-decision/run.js +79 -47
  236. package/dist/src/runtime/steps/execution-agent/contracts.d.ts +8 -1
  237. package/dist/src/runtime/steps/execution-agent/contracts.js +2 -0
  238. package/dist/src/runtime/steps/execution-agent/decision-parsing.js +4 -0
  239. package/dist/src/runtime/steps/execution-agent/format.js +4 -3
  240. package/dist/src/runtime/steps/execution-agent/input.js +10 -11
  241. package/dist/src/runtime/steps/execution-agent/prompt.d.ts +1 -0
  242. package/dist/src/runtime/steps/execution-agent/prompt.js +11 -4
  243. package/dist/src/runtime/steps/execution-agent/state-context.js +10 -0
  244. package/dist/src/runtime/steps/execution-agent/work-plan-contract.d.ts +18 -0
  245. package/dist/src/runtime/steps/execution-agent/work-plan-contract.js +86 -0
  246. package/dist/src/runtime/steps/execution-agent/work-plan-decision-parsing.d.ts +2 -0
  247. package/dist/src/runtime/steps/execution-agent/work-plan-decision-parsing.js +38 -0
  248. package/dist/src/runtime/steps/execution-agent/work-plan-sources.d.ts +6 -0
  249. package/dist/src/runtime/steps/execution-agent/work-plan-sources.js +54 -0
  250. package/dist/src/runtime/steps/planner-decision/capability-brief.d.ts +40 -0
  251. package/dist/src/runtime/steps/planner-decision/capability-brief.js +47 -0
  252. package/dist/src/runtime/steps/planner-decision/input.d.ts +4 -2
  253. package/dist/src/runtime/steps/planner-decision/input.js +23 -13
  254. package/dist/src/runtime/steps/planner-decision/prompt.js +2 -2
  255. package/dist/src/runtime/steps/planner-decision/run.js +11 -7
  256. package/dist/src/runtime/steps/planner-graph/parser.js +0 -11
  257. package/dist/src/runtime/steps/planner-graph/prompt.js +2 -1
  258. package/dist/src/runtime/steps/supervisor-decision/capability-brief-readmission.d.ts +10 -0
  259. package/dist/src/runtime/steps/supervisor-decision/capability-brief-readmission.js +39 -0
  260. package/dist/src/runtime/steps/supervisor-decision/run.js +2 -1
  261. package/dist/src/runtime/steps/worker-decision/parser/accepted-decision.d.ts +3 -1
  262. package/dist/src/runtime/steps/worker-decision/parser/accepted-decision.js +20 -1
  263. package/dist/src/runtime/steps/worker-decision/parser/capability-batch-validation.d.ts +1 -1
  264. package/dist/src/runtime/steps/worker-decision/parser/capability-batch-validation.js +6 -6
  265. package/dist/src/runtime/steps/worker-decision/parser/capability-invocation-validation.js +2 -1
  266. package/dist/src/sessions/project-binding.d.ts +12 -0
  267. package/dist/src/sessions/project-binding.js +49 -0
  268. package/dist/src/sessions/record/projection.d.ts +6 -1
  269. package/dist/src/sessions/record/projection.js +1 -0
  270. package/dist/src/sessions/session-service.d.ts +2 -1
  271. package/dist/src/sessions/session-service.js +11 -1
  272. package/dist/src/sessions/types.d.ts +7 -0
  273. package/dist/src/web-ui/app/ARCHITECTURE.md +121 -1
  274. package/dist/src/web-ui/app/app-bootstrap.js +3 -0
  275. package/dist/src/web-ui/app/app-dom.js +3 -0
  276. package/dist/src/web-ui/app/app-state.js +38 -0
  277. package/dist/src/web-ui/app/app.js +76 -67
  278. package/dist/src/web-ui/app/components/config-workspace/config-model.js +23 -3
  279. package/dist/src/web-ui/app/components/config-workspace/dashboard-rendering.js +2 -0
  280. package/dist/src/web-ui/app/components/config-workspace/field-rendering.js +2 -0
  281. package/dist/src/web-ui/app/components/config-workspace/model-rendering.js +6 -0
  282. package/dist/src/web-ui/app/components/config-workspace/model-setup-entry.js +27 -0
  283. package/dist/src/web-ui/app/components/config-workspace/raw-config-repair.js +28 -0
  284. package/dist/src/web-ui/app/components/config-workspace/workspace-events.js +5 -0
  285. package/dist/src/web-ui/app/components/config-workspace/workspace-mutations.js +23 -3
  286. package/dist/src/web-ui/app/components/config-workspace/workspace-persistence.js +26 -8
  287. package/dist/src/web-ui/app/components/config-workspace/workspace-view.js +56 -0
  288. package/dist/src/web-ui/app/components/config-workspace.js +11 -0
  289. package/dist/src/web-ui/app/components/conversation-activity.d.ts +6 -0
  290. package/dist/src/web-ui/app/components/conversation-activity.js +10 -2
  291. package/dist/src/web-ui/app/components/conversation-file-action.js +33 -0
  292. package/dist/src/web-ui/app/components/conversation-file-focus.d.ts +12 -0
  293. package/dist/src/web-ui/app/components/conversation-file-focus.js +149 -0
  294. package/dist/src/web-ui/app/components/conversation-file-preview.d.ts +23 -0
  295. package/dist/src/web-ui/app/components/conversation-file-preview.js +247 -0
  296. package/dist/src/web-ui/app/components/conversation-role-cards.d.ts +6 -0
  297. package/dist/src/web-ui/app/components/conversation-role-cards.js +10 -2
  298. package/dist/src/web-ui/app/components/conversation-tool-evidence.d.ts +9 -0
  299. package/dist/src/web-ui/app/components/conversation-tool-evidence.js +129 -0
  300. package/dist/src/web-ui/app/components/conversation-tools.d.ts +6 -0
  301. package/dist/src/web-ui/app/components/conversation-tools.js +25 -105
  302. package/dist/src/web-ui/app/components/conversation-view.js +10 -1
  303. package/dist/src/web-ui/app/components/dashboard/workspace.js +19 -7
  304. package/dist/src/web-ui/app/components/model-setup/rendering.js +99 -0
  305. package/dist/src/web-ui/app/components/model-setup/save-flow.js +111 -0
  306. package/dist/src/web-ui/app/components/model-setup/save-outcome.js +16 -0
  307. package/dist/src/web-ui/app/components/model-setup/validation.js +125 -0
  308. package/dist/src/web-ui/app/components/model-setup/wizard.d.ts +44 -0
  309. package/dist/src/web-ui/app/components/model-setup/wizard.js +370 -0
  310. package/dist/src/web-ui/app/components/plugins/manager.js +200 -0
  311. package/dist/src/web-ui/app/components/plugins/rendering.js +124 -0
  312. package/dist/src/web-ui/app/components/plugins/view-state.js +123 -0
  313. package/dist/src/web-ui/app/components/project-creation.js +119 -0
  314. package/dist/src/web-ui/app/components/project-session-groups.js +95 -0
  315. package/dist/src/web-ui/app/components/runtime-config-activation.js +83 -0
  316. package/dist/src/web-ui/app/components/runtime-setup/bridge-guide.d.ts +9 -0
  317. package/dist/src/web-ui/app/components/runtime-setup/bridge-guide.js +198 -0
  318. package/dist/src/web-ui/app/components/runtime-setup/bridge-rendering.js +107 -0
  319. package/dist/src/web-ui/app/components/runtime-setup/commands.js +54 -0
  320. package/dist/src/web-ui/app/components/runtime-setup/configuration-recovery.js +25 -0
  321. package/dist/src/web-ui/app/components/runtime-setup/connection-form.js +154 -0
  322. package/dist/src/web-ui/app/components/runtime-setup/connection-state.js +71 -0
  323. package/dist/src/web-ui/app/components/runtime-setup/context-window.js +18 -0
  324. package/dist/src/web-ui/app/components/runtime-setup/embedding-credential-status.d.ts +15 -0
  325. package/dist/src/web-ui/app/components/runtime-setup/embedding-credential-status.js +87 -0
  326. package/dist/src/web-ui/app/components/runtime-setup/embedding-provider-receipt.js +30 -0
  327. package/dist/src/web-ui/app/components/runtime-setup/embedding-rendering.js +57 -0
  328. package/dist/src/web-ui/app/components/runtime-setup/embedding.js +284 -0
  329. package/dist/src/web-ui/app/components/runtime-setup/optional-steps.js +117 -0
  330. package/dist/src/web-ui/app/components/runtime-setup/plugins.js +173 -0
  331. package/dist/src/web-ui/app/components/runtime-setup/rendering.js +141 -0
  332. package/dist/src/web-ui/app/components/runtime-setup/validation.js +69 -0
  333. package/dist/src/web-ui/app/components/runtime-setup/view-state.js +58 -0
  334. package/dist/src/web-ui/app/components/runtime-setup/wizard-shell.js +27 -0
  335. package/dist/src/web-ui/app/components/runtime-setup-guide.d.ts +66 -5
  336. package/dist/src/web-ui/app/components/runtime-setup-guide.js +415 -461
  337. package/dist/src/web-ui/app/components/system-host/download.js +38 -0
  338. package/dist/src/web-ui/app/components/system-host/manager.js +249 -0
  339. package/dist/src/web-ui/app/components/system-host/rendering.js +88 -0
  340. package/dist/src/web-ui/app/components/system-host/setup-notice.js +87 -0
  341. package/dist/src/web-ui/app/components/system-host/visibility.js +35 -0
  342. package/dist/src/web-ui/app/components/tool-approval-card.d.ts +4 -0
  343. package/dist/src/web-ui/app/components/tool-approval-card.js +15 -0
  344. package/dist/src/web-ui/app/configuration-environment-refresh.js +118 -0
  345. package/dist/src/web-ui/app/configuration-feature.js +125 -4
  346. package/dist/src/web-ui/app/controllers/app-event-bindings.js +2 -0
  347. package/dist/src/web-ui/app/controllers/composer-workspace-controller.d.ts +1 -0
  348. package/dist/src/web-ui/app/controllers/composer-workspace-controller.js +4 -3
  349. package/dist/src/web-ui/app/controllers/conversation-file-preview-controller.d.ts +24 -0
  350. package/dist/src/web-ui/app/controllers/conversation-file-preview-controller.js +158 -0
  351. package/dist/src/web-ui/app/controllers/conversation-file-preview-feature.d.ts +19 -0
  352. package/dist/src/web-ui/app/controllers/conversation-file-preview-feature.js +63 -0
  353. package/dist/src/web-ui/app/controllers/conversation-session-controller.d.ts +1 -0
  354. package/dist/src/web-ui/app/controllers/conversation-session-controller.js +2 -0
  355. package/dist/src/web-ui/app/controllers/conversation-view-feature.js +28 -0
  356. package/dist/src/web-ui/app/controllers/dashboard-controller.js +17 -0
  357. package/dist/src/web-ui/app/controllers/projects-controller.d.ts +45 -0
  358. package/dist/src/web-ui/app/controllers/projects-controller.js +278 -0
  359. package/dist/src/web-ui/app/controllers/realtime-event-controller.js +3 -0
  360. package/dist/src/web-ui/app/controllers/runtime-onboarding-controller.js +13 -6
  361. package/dist/src/web-ui/app/controllers/runtime-selection-controller.d.ts +7 -1
  362. package/dist/src/web-ui/app/controllers/runtime-selection-controller.js +11 -95
  363. package/dist/src/web-ui/app/controllers/session-controller.js +64 -57
  364. package/dist/src/web-ui/app/controllers/tool-permission-mode-controller.d.ts +20 -0
  365. package/dist/src/web-ui/app/controllers/tool-permission-mode-controller.js +116 -0
  366. package/dist/src/web-ui/app/dashboard-feature.js +32 -10
  367. package/dist/src/web-ui/app/index.html +44 -7
  368. package/dist/src/web-ui/app/lib/conversation-file-preview.d.ts +12 -0
  369. package/dist/src/web-ui/app/lib/conversation-file-reference.d.ts +30 -0
  370. package/dist/src/web-ui/app/lib/conversation-file-reference.js +66 -0
  371. package/dist/src/web-ui/app/lib/tool-activity-event.d.ts +2 -0
  372. package/dist/src/web-ui/app/lib/tool-activity-event.js +18 -6
  373. package/dist/src/web-ui/app/lib/tool-activity-model.d.ts +2 -0
  374. package/dist/src/web-ui/app/lib/tool-activity-model.js +4 -2
  375. package/dist/src/web-ui/app/lib/tool-permission-mode.d.ts +16 -0
  376. package/dist/src/web-ui/app/lib/tool-permission-mode.js +60 -0
  377. package/dist/src/web-ui/app/lib/tool-process-activity-fields.js +102 -0
  378. package/dist/src/web-ui/app/projects-feature.js +134 -0
  379. package/dist/src/web-ui/app/runtime-onboarding-feature.d.ts +34 -0
  380. package/dist/src/web-ui/app/runtime-onboarding-feature.js +92 -0
  381. package/dist/src/web-ui/app/runtime-setup-page-lifecycle.d.ts +5 -0
  382. package/dist/src/web-ui/app/runtime-setup-page-lifecycle.js +13 -0
  383. package/dist/src/web-ui/app/services/client-preferences.d.ts +24 -0
  384. package/dist/src/web-ui/app/services/client-preferences.js +32 -19
  385. package/dist/src/web-ui/app/services/runtime-web-client/configuration.js +46 -0
  386. package/dist/src/web-ui/app/services/runtime-web-client/conversation-files.d.ts +28 -0
  387. package/dist/src/web-ui/app/services/runtime-web-client/conversation-files.js +75 -0
  388. package/dist/src/web-ui/app/services/runtime-web-client/projects.d.ts +19 -0
  389. package/dist/src/web-ui/app/services/runtime-web-client/projects.js +34 -0
  390. package/dist/src/web-ui/app/services/runtime-web-client/system-host.js +27 -0
  391. package/dist/src/web-ui/app/services/runtime-web-client.d.ts +52 -0
  392. package/dist/src/web-ui/app/services/runtime-web-client.js +35 -4
  393. package/dist/src/web-ui/app/styles/13-projects.css +272 -0
  394. package/dist/src/web-ui/app/styles/18-dashboard.css +0 -5
  395. package/dist/src/web-ui/app/styles/19-runtime-setup.css +411 -0
  396. package/dist/src/web-ui/app/styles/20-chat-composer.css +0 -384
  397. package/dist/src/web-ui/app/styles/29-conversation-file-preview.css +254 -0
  398. package/dist/src/web-ui/app/styles/37-runtime-activation.css +26 -0
  399. package/dist/src/web-ui/app/styles/38-schedule-workspace.css +1 -10
  400. package/dist/src/web-ui/app/styles/41-plugin-management.css +351 -0
  401. package/dist/src/web-ui/app/styles/42-runtime-setup-plugins.css +179 -0
  402. package/dist/src/web-ui/app/styles/43-model-setup.css +73 -0
  403. package/dist/src/web-ui/app/styles/44-model-provider-cards.css +63 -0
  404. package/dist/src/web-ui/app/styles/45-bridge-setup.css +44 -0
  405. package/dist/src/web-ui/app/styles/46-system-host.css +132 -0
  406. package/dist/src/web-ui/app/styles.css +10 -0
  407. package/dist/src/web-ui/config-dashboard-backend.d.ts +5 -0
  408. package/dist/src/web-ui/config-dashboard-backend.js +94 -114
  409. package/dist/src/web-ui/config-dashboard-model-identity.d.ts +7 -0
  410. package/dist/src/web-ui/config-dashboard-model-identity.js +45 -0
  411. package/dist/src/web-ui/config-dashboard-save-transaction.d.ts +5 -0
  412. package/dist/src/web-ui/config-dashboard-save-transaction.js +21 -0
  413. package/dist/src/web-ui/environment-config.d.ts +17 -0
  414. package/dist/src/web-ui/environment-config.js +60 -0
  415. package/dist/src/web-ui/forwarded-loopback-policy.d.ts +2 -0
  416. package/dist/src/web-ui/forwarded-loopback-policy.js +14 -0
  417. package/dist/src/web-ui/local-runtime/api-router.d.ts +7 -0
  418. package/dist/src/web-ui/local-runtime/api-router.js +136 -12
  419. package/dist/src/web-ui/local-runtime/config-mutation-request.d.ts +8 -0
  420. package/dist/src/web-ui/local-runtime/config-mutation-request.js +55 -0
  421. package/dist/src/web-ui/local-runtime/configuration-activation-environments.d.ts +22 -0
  422. package/dist/src/web-ui/local-runtime/configuration-activation-environments.js +106 -0
  423. package/dist/src/web-ui/local-runtime/configuration-activation-source.d.ts +7 -0
  424. package/dist/src/web-ui/local-runtime/configuration-activation-source.js +36 -0
  425. package/dist/src/web-ui/local-runtime/configuration-activation.d.ts +20 -0
  426. package/dist/src/web-ui/local-runtime/configuration-activation.js +107 -0
  427. package/dist/src/web-ui/local-runtime/contracts.d.ts +8 -0
  428. package/dist/src/web-ui/local-runtime/conversation-file-access.d.ts +30 -0
  429. package/dist/src/web-ui/local-runtime/conversation-file-access.js +131 -0
  430. package/dist/src/web-ui/local-runtime/conversation-file-content.d.ts +21 -0
  431. package/dist/src/web-ui/local-runtime/conversation-file-content.js +75 -0
  432. package/dist/src/web-ui/local-runtime/conversation-file-format.d.ts +12 -0
  433. package/dist/src/web-ui/local-runtime/conversation-file-format.js +87 -0
  434. package/dist/src/web-ui/local-runtime/conversation-file-native-open.d.ts +10 -0
  435. package/dist/src/web-ui/local-runtime/conversation-file-native-open.js +94 -0
  436. package/dist/src/web-ui/local-runtime/conversation-file-native-request.d.ts +4 -0
  437. package/dist/src/web-ui/local-runtime/conversation-file-native-request.js +72 -0
  438. package/dist/src/web-ui/local-runtime/conversation-file-routes.d.ts +11 -0
  439. package/dist/src/web-ui/local-runtime/conversation-file-routes.js +105 -0
  440. package/dist/src/web-ui/local-runtime/conversation-file-target.d.ts +14 -0
  441. package/dist/src/web-ui/local-runtime/conversation-file-target.js +158 -0
  442. package/dist/src/web-ui/local-runtime/environment-registry.d.ts +14 -0
  443. package/dist/src/web-ui/local-runtime/environment-registry.js +121 -6
  444. package/dist/src/web-ui/local-runtime/memory-onboarding-routes.d.ts +2 -1
  445. package/dist/src/web-ui/local-runtime/memory-onboarding-routes.js +15 -10
  446. package/dist/src/web-ui/local-runtime/model-setup-catalog.d.ts +17 -0
  447. package/dist/src/web-ui/local-runtime/model-setup-catalog.js +45 -0
  448. package/dist/src/web-ui/local-runtime/model-setup-identity.d.ts +16 -0
  449. package/dist/src/web-ui/local-runtime/model-setup-identity.js +20 -0
  450. package/dist/src/web-ui/local-runtime/model-setup-input.d.ts +24 -0
  451. package/dist/src/web-ui/local-runtime/model-setup-input.js +107 -0
  452. package/dist/src/web-ui/local-runtime/model-setup-provider.d.ts +17 -0
  453. package/dist/src/web-ui/local-runtime/model-setup-provider.js +68 -0
  454. package/dist/src/web-ui/local-runtime/model-setup-retry.d.ts +14 -0
  455. package/dist/src/web-ui/local-runtime/model-setup-retry.js +47 -0
  456. package/dist/src/web-ui/local-runtime/model-setup-routes.d.ts +12 -0
  457. package/dist/src/web-ui/local-runtime/model-setup-routes.js +50 -0
  458. package/dist/src/web-ui/local-runtime/model-setup-service.d.ts +30 -0
  459. package/dist/src/web-ui/local-runtime/model-setup-service.js +93 -0
  460. package/dist/src/web-ui/local-runtime/model-setup-validation.d.ts +5 -0
  461. package/dist/src/web-ui/local-runtime/model-setup-validation.js +33 -0
  462. package/dist/src/web-ui/local-runtime/plugin-management-routes.d.ts +14 -0
  463. package/dist/src/web-ui/local-runtime/plugin-management-routes.js +50 -0
  464. package/dist/src/web-ui/local-runtime/project-routes.d.ts +17 -0
  465. package/dist/src/web-ui/local-runtime/project-routes.js +93 -0
  466. package/dist/src/web-ui/local-runtime/provider-credential-identity.d.ts +3 -0
  467. package/dist/src/web-ui/local-runtime/provider-credential-identity.js +18 -0
  468. package/dist/src/web-ui/local-runtime/request-execution.d.ts +1 -0
  469. package/dist/src/web-ui/local-runtime/request-execution.js +8 -0
  470. package/dist/src/web-ui/local-runtime/runtime-availability.js +36 -7
  471. package/dist/src/web-ui/local-runtime/runtime-setup-completion.d.ts +13 -0
  472. package/dist/src/web-ui/local-runtime/runtime-setup-completion.js +28 -0
  473. package/dist/src/web-ui/local-runtime/runtime-setup-connection-edit.d.ts +13 -0
  474. package/dist/src/web-ui/local-runtime/runtime-setup-connection-edit.js +110 -0
  475. package/dist/src/web-ui/local-runtime/runtime-setup-credential-completion.d.ts +4 -0
  476. package/dist/src/web-ui/local-runtime/runtime-setup-credential-completion.js +21 -0
  477. package/dist/src/web-ui/local-runtime/runtime-setup-credentials.d.ts +14 -0
  478. package/dist/src/web-ui/local-runtime/runtime-setup-credentials.js +148 -0
  479. package/dist/src/web-ui/local-runtime/runtime-setup-draft-recovery.d.ts +7 -0
  480. package/dist/src/web-ui/local-runtime/runtime-setup-draft-recovery.js +18 -0
  481. package/dist/src/web-ui/local-runtime/runtime-setup-draft.d.ts +21 -0
  482. package/dist/src/web-ui/local-runtime/runtime-setup-draft.js +105 -0
  483. package/dist/src/web-ui/local-runtime/runtime-setup-embedding-invalidation.d.ts +8 -0
  484. package/dist/src/web-ui/local-runtime/runtime-setup-embedding-invalidation.js +40 -0
  485. package/dist/src/web-ui/local-runtime/runtime-setup-environment-assignment.d.ts +1 -0
  486. package/dist/src/web-ui/local-runtime/runtime-setup-environment-assignment.js +27 -0
  487. package/dist/src/web-ui/local-runtime/runtime-setup-input.d.ts +19 -0
  488. package/dist/src/web-ui/local-runtime/runtime-setup-input.js +82 -0
  489. package/dist/src/web-ui/local-runtime/runtime-setup-model-file.d.ts +7 -0
  490. package/dist/src/web-ui/local-runtime/runtime-setup-model-file.js +35 -0
  491. package/dist/src/web-ui/local-runtime/runtime-setup-provider-ownership-recovery.d.ts +4 -0
  492. package/dist/src/web-ui/local-runtime/runtime-setup-provider-ownership-recovery.js +23 -0
  493. package/dist/src/web-ui/local-runtime/runtime-setup-provider-retention.d.ts +11 -0
  494. package/dist/src/web-ui/local-runtime/runtime-setup-provider-retention.js +31 -0
  495. package/dist/src/web-ui/local-runtime/runtime-setup-provider.d.ts +11 -0
  496. package/dist/src/web-ui/local-runtime/runtime-setup-provider.js +60 -0
  497. package/dist/src/web-ui/local-runtime/runtime-setup-receipt-file.d.ts +8 -0
  498. package/dist/src/web-ui/local-runtime/runtime-setup-receipt-file.js +77 -0
  499. package/dist/src/web-ui/local-runtime/runtime-setup-routes.d.ts +35 -0
  500. package/dist/src/web-ui/local-runtime/runtime-setup-routes.js +56 -0
  501. package/dist/src/web-ui/local-runtime/runtime-setup-scaffold.d.ts +17 -0
  502. package/dist/src/web-ui/local-runtime/runtime-setup-scaffold.js +229 -0
  503. package/dist/src/web-ui/local-runtime/runtime-setup-service.d.ts +65 -0
  504. package/dist/src/web-ui/local-runtime/runtime-setup-service.js +195 -0
  505. package/dist/src/web-ui/local-runtime/runtime-setup-validation.d.ts +8 -0
  506. package/dist/src/web-ui/local-runtime/runtime-setup-validation.js +35 -0
  507. package/dist/src/web-ui/local-runtime/saved-model-catalog.d.ts +3 -0
  508. package/dist/src/web-ui/local-runtime/saved-model-catalog.js +20 -0
  509. package/dist/src/web-ui/local-runtime/setup-embedding-input.d.ts +8 -0
  510. package/dist/src/web-ui/local-runtime/setup-embedding-input.js +71 -0
  511. package/dist/src/web-ui/local-runtime/setup-embedding-provider.d.ts +13 -0
  512. package/dist/src/web-ui/local-runtime/setup-embedding-provider.js +114 -0
  513. package/dist/src/web-ui/local-runtime/setup-embedding-routes.d.ts +12 -0
  514. package/dist/src/web-ui/local-runtime/setup-embedding-routes.js +53 -0
  515. package/dist/src/web-ui/local-runtime/setup-embedding-service.d.ts +32 -0
  516. package/dist/src/web-ui/local-runtime/setup-embedding-service.js +59 -0
  517. package/dist/src/web-ui/local-runtime-backend.d.ts +1 -0
  518. package/dist/src/web-ui/local-runtime-backend.js +3 -0
  519. package/dist/src/web-ui/plugin-capability-selection.d.ts +14 -0
  520. package/dist/src/web-ui/plugin-capability-selection.js +48 -0
  521. package/dist/src/web-ui/plugin-management-catalog.d.ts +26 -0
  522. package/dist/src/web-ui/plugin-management-catalog.js +56 -0
  523. package/dist/src/web-ui/plugin-management-selection.d.ts +16 -0
  524. package/dist/src/web-ui/plugin-management-selection.js +71 -0
  525. package/dist/src/web-ui/plugin-management-service.d.ts +29 -0
  526. package/dist/src/web-ui/plugin-management-service.js +150 -0
  527. package/dist/src/web-ui/request-authority.d.ts +8 -0
  528. package/dist/src/web-ui/request-authority.js +129 -0
  529. package/dist/src/web-ui/runtime-setup-gateway-address.d.ts +3 -0
  530. package/dist/src/web-ui/runtime-setup-gateway-address.js +26 -0
  531. package/dist/src/web-ui/runtime-setup-gateway.d.ts +29 -0
  532. package/dist/src/web-ui/runtime-setup-gateway.js +177 -0
  533. package/dist/src/web-ui/runtime-setup-shutdown.d.ts +2 -0
  534. package/dist/src/web-ui/runtime-setup-shutdown.js +20 -0
  535. package/dist/src/web-ui/server.d.ts +7 -14
  536. package/dist/src/web-ui/server.js +53 -63
  537. package/dist/src/web-ui/session-read-state/service.d.ts +12 -2
  538. package/dist/src/web-ui/system-host-service.d.ts +19 -0
  539. package/dist/src/web-ui/system-host-service.js +159 -0
  540. package/dist/src/web-ui/system-host-setup/companion-bundle.d.ts +2 -0
  541. package/dist/src/web-ui/system-host-setup/companion-bundle.js +12 -0
  542. package/dist/src/web-ui/system-host-setup/companion-macos.d.ts +2 -0
  543. package/dist/src/web-ui/system-host-setup/companion-macos.js +74 -0
  544. package/dist/src/web-ui/system-host-setup/companion-windows.d.ts +2 -0
  545. package/dist/src/web-ui/system-host-setup/companion-windows.js +105 -0
  546. package/dist/src/web-ui/system-host-setup/installer-contract.d.ts +18 -0
  547. package/dist/src/web-ui/system-host-setup/installer-contract.js +51 -0
  548. package/dist/src/web-ui/system-host-setup/installers.d.ts +6 -0
  549. package/dist/src/web-ui/system-host-setup/installers.js +30 -0
  550. package/dist/src/web-ui/system-host-setup/native-authorization.d.ts +3 -0
  551. package/dist/src/web-ui/system-host-setup/native-authorization.js +11 -0
  552. package/dist/src/web-ui/system-host-setup/node-distribution.d.ts +19 -0
  553. package/dist/src/web-ui/system-host-setup/node-distribution.js +9 -0
  554. package/dist/src/web-ui/system-host-setup/readiness.d.ts +18 -0
  555. package/dist/src/web-ui/system-host-setup/readiness.js +70 -0
  556. package/dist/src/web-ui/system-host-setup/routes.d.ts +20 -0
  557. package/dist/src/web-ui/system-host-setup/routes.js +121 -0
  558. package/dist/src/web-ui/system-host-setup/windows-script-wrapper.d.ts +2 -0
  559. package/dist/src/web-ui/system-host-setup/windows-script-wrapper.js +17 -0
  560. package/dist/src/web-ui/system-host-setup/wsl-interop-config.d.ts +3 -0
  561. package/dist/src/web-ui/system-host-setup/wsl-interop-config.js +67 -0
  562. package/dist/src/web-ui/system-host-setup/wsl-interop-windows.d.ts +1 -0
  563. package/dist/src/web-ui/system-host-setup/wsl-interop-windows.js +49 -0
  564. package/dist/src/web-ui/system-host-upgrade-authority.d.ts +5 -0
  565. package/dist/src/web-ui/system-host-upgrade-authority.js +13 -0
  566. package/docs/architecture.md +6 -1
  567. package/docs/installation.md +53 -17
  568. package/docs/known-limitations.md +14 -0
  569. package/docs/plugins.md +124 -19
  570. package/docs/projects-and-full-plus.md +218 -0
  571. package/docs/runtime-invariant-coverage.md +6 -3
  572. package/docs/runtime-prompt-policy-contracts.md +37 -5
  573. package/docs/runtime-public-contracts.md +17 -0
  574. package/package.json +5 -2
  575. package/plugins/exec/plugin.json +30 -9
  576. package/plugins/exec/skills/exec_process_skill/SKILL.md +1 -0
  577. package/plugins/exec/skills/exec_skill/SKILL.md +9 -10
  578. package/plugins/exec/source/handlers.ts +4 -38
  579. package/plugins/exec/source/paths.ts +53 -49
  580. package/plugins/exec/source/types.ts +6 -4
  581. package/plugins/exec/source/validation.ts +33 -198
  582. package/plugins/exec/src/index.cjs +62 -204
  583. package/plugins/filesystem/plugin.json +1 -1
  584. package/plugins/filesystem/skills/dev_view_skill/SKILL.md +7 -0
  585. package/plugins/filesystem/source/atomic-write.ts +6 -3
  586. package/plugins/filesystem/source/dev-view.ts +2 -1
  587. package/plugins/filesystem/source/directory-authority-write.ts +4 -0
  588. package/plugins/filesystem/source/edit-file.ts +3 -0
  589. package/plugins/filesystem/source/file-output-presentation.ts +42 -0
  590. package/plugins/filesystem/source/mutation-parent.ts +18 -9
  591. package/plugins/filesystem/source/view-locator.ts +141 -0
  592. package/plugins/filesystem/source/view-window.ts +12 -25
  593. package/plugins/filesystem/source/write-file.ts +8 -0
  594. package/plugins/filesystem/src/index.cjs +162 -35
  595. package/plugins/system/plugin.json +374 -0
  596. package/plugins/system/skills/system_actions/SKILL.md +31 -0
  597. package/plugins/system/source/application-catalog.ts +237 -0
  598. package/plugins/system/source/application-launch.ts +113 -0
  599. package/plugins/system/source/application-observation.ts +78 -0
  600. package/plugins/system/source/commands.ts +106 -0
  601. package/plugins/system/source/companion/autostart.ts +185 -0
  602. package/plugins/system/source/companion/broker-client.ts +183 -0
  603. package/plugins/system/source/companion/broker-location.ts +89 -0
  604. package/plugins/system/source/companion/broker-server.ts +169 -0
  605. package/plugins/system/source/companion/connection.ts +211 -0
  606. package/plugins/system/source/companion/liveness.ts +23 -0
  607. package/plugins/system/source/companion/native-address.ts +55 -0
  608. package/plugins/system/source/companion/native-identity.ts +26 -0
  609. package/plugins/system/source/companion/native-messages.ts +100 -0
  610. package/plugins/system/source/companion/native-session.ts +268 -0
  611. package/plugins/system/source/companion/native-state.ts +135 -0
  612. package/plugins/system/source/companion/native-supervisor.ts +98 -0
  613. package/plugins/system/source/companion/pairing-store.ts +110 -0
  614. package/plugins/system/source/companion/private-store.ts +58 -0
  615. package/plugins/system/source/companion/process-owner-identity.ts +190 -0
  616. package/plugins/system/source/companion/protocol.ts +108 -0
  617. package/plugins/system/source/contracts.ts +44 -0
  618. package/plugins/system/source/elevation.ts +88 -0
  619. package/plugins/system/source/handlers.ts +120 -0
  620. package/plugins/system/source/host-dispatch.ts +106 -0
  621. package/plugins/system/source/host-evidence.ts +72 -0
  622. package/plugins/system/source/host-observation.ts +66 -0
  623. package/plugins/system/source/index.ts +8 -0
  624. package/plugins/system/source/process-result.ts +111 -0
  625. package/plugins/system/source/process-runner.ts +104 -0
  626. package/plugins/system/source/request-system-modules.ts +117 -0
  627. package/plugins/system/source/request-target-snapshot.ts +163 -0
  628. package/plugins/system/source/target-observation.ts +43 -0
  629. package/plugins/system/source/targets.ts +147 -0
  630. package/plugins/system/src/index.cjs +1730 -0
  631. package/src/runtime/README.md +36 -8
  632. package/src/runtime/local-host/README.md +7 -0
  633. package/dist/src/runtime/steps/planner-decision/capability-catalog-context.d.ts +0 -14
  634. package/dist/src/runtime/steps/planner-decision/capability-catalog-context.js +0 -87
@@ -56,33 +56,47 @@ npm init -y
56
56
  npm install @abot-ai/runtime
57
57
  ```
58
58
 
59
- Initialize a provider and concrete model id:
59
+ Start the packaged Web UI:
60
60
 
61
61
  ```bash
62
- npx abot init --provider ollama --model <model-id>
62
+ npx abot start
63
63
  ```
64
64
 
65
- If Ollama is outside the runtime process's network namespace, add
66
- `--base-url http://<ollama-host>:11434`. For OpenAI, use:
65
+ Open [http://127.0.0.1:5177](http://127.0.0.1:5177). The command binds to
66
+ loopback by default. On a fresh installation, the setup wizard lets you select
67
+ OpenAI or Ollama, enter a concrete model ID, and save the connection. OpenAI
68
+ accepts the API key directly in the form and stores it privately in the
69
+ consumer's `.env`. The key is not returned to the browser or stored in runtime
70
+ JSON. Existing OpenAI configurations missing a key open the same completion flow.
71
+
72
+ For Ollama, the server must already be running with the selected model available.
73
+ Its address is resolved from the ABot host, even when you use the UI from a phone.
74
+ Continue through the optional **Embedding** step to configure semantic memory,
75
+ or choose to set it up later. **Plugins** starts with all tools selected for a
76
+ fresh installation; turn off any plugin or individual tool you do not want.
77
+ Choose **Finish setup** to apply the selections, then **Start chatting**.
78
+ Saving chat connection details does not make a paid model request. Explicitly
79
+ checking an embedding model sends a small embedding probe to the chosen provider.
80
+
81
+ Command-line initialization remains available:
67
82
 
68
83
  ```bash
84
+ npx abot init --provider ollama --model <model-id>
69
85
  npx abot init --provider openai --model <model-id>
70
86
  ```
71
87
 
72
- Then place `OPENAI_API_KEY` in the generated `.env`. The generated OpenAI model
73
- profile uses the recommended `execution-agent-v1` policy.
88
+ For a remote Ollama server, add `--base-url http://<ollama-host>:11434`.
89
+ OpenAI profiles use the recommended `execution-agent-v1` policy. A gateway
90
+ managed by a separate process remains under that process's lifecycle; the UI
91
+ reports when saved changes require that owner to restart.
74
92
 
75
- Start the model gateway and packaged Web UI together:
93
+ In the Web UI, open **Config → Models → Add model** to add another model.
94
+ Choose a saved provider connection or create a new OpenAI/Ollama connection.
95
+ Each provider card also has an **Add model** shortcut. Review the model, then
96
+ choose **Save and apply**. Saved API keys are reused; existing model profiles and
97
+ the default model are preserved. The added model is selected in the Models list.
76
98
 
77
- ```bash
78
- npx abot start
79
- ```
80
-
81
- Open [http://127.0.0.1:5177](http://127.0.0.1:5177). The command binds to
82
- loopback by default. If no usable model is configured, the Web UI still starts
83
- and presents its setup guide.
84
-
85
- Add another model without replacing existing providers or profiles:
99
+ You can also add a model from the command line:
86
100
 
87
101
  ```bash
88
102
  npx abot add-model --profile <profile-id> --provider openai --model <model-id>
@@ -94,7 +108,8 @@ the profiles that are already configured.
94
108
  ### Optional Passive Long-Term Memory
95
109
 
96
110
  Long-term memory is disabled by default. After a provider is configured, choose
97
- an embedding model and enable it through the Web UI Config workspace or CLI:
111
+ an embedding model in the onboarding Embedding step, the Web UI Config workspace,
112
+ or the CLI:
98
113
 
99
114
  ```bash
100
115
  npx abot memory status
@@ -109,6 +124,27 @@ users can discover model ids installed at the configured Ollama endpoint.
109
124
 
110
125
  See [Passive Long-Term Memory](long-term-memory.md) before enabling persistence.
111
126
 
127
+ ### Computer Access During Setup
128
+
129
+ The optional **Computer** step checks whether direct system access already works.
130
+ Native macOS and working WSL-to-Windows access need no additional configuration.
131
+ You can also open this step later in **Config → Connected computer**.
132
+
133
+ For Docker, download and open the Windows or Mac setup script on the computer
134
+ running Docker. It installs the matching companion and its private Node runtime,
135
+ pairs automatically and enables user-login startup. No copied code, separate npm
136
+ installation or terminal command is required. Wait for **Ready** in the Web UI.
137
+
138
+ For WSL with unavailable Windows interop, download and open the Windows repair
139
+ script. Opening it enables Windows interop and automatically restarts only the
140
+ selected distribution, preserving unrelated configuration. Finish active work
141
+ before opening the file: the restart interrupts that distribution's services.
142
+ No typed restart confirmation is required; the script verifies Windows access
143
+ after the restart.
144
+ See [Connecting a Docker Runtime to its computer](projects-and-full-plus.md#connecting-a-docker-runtime-to-its-computer)
145
+ for connection limits and removal. Installing ABot as a library never changes
146
+ host configuration or enables interop.
147
+
112
148
  ## Use As A Library
113
149
 
114
150
  After the package is published:
@@ -119,3 +119,17 @@ Generated runtime state remains local and ignored:
119
119
 
120
120
  Do not publish local runtime state, logs, memory, generated work output, or
121
121
  machine-specific config.
122
+
123
+ ## Conversation file viewing
124
+
125
+ File previews require the local Runtime backend and a filesystem that supplies
126
+ stable directory identity. Missing identity omits only the preview action;
127
+ committed writes and edits retain their normal results. Windows-mounted folders
128
+ in WSL can lack the required directory birth identity. This feature does not
129
+ translate Windows/WSL paths or depend on an editor integration.
130
+
131
+ Opening a file in its default desktop app is available only on macOS from a
132
+ local Web UI connection, for supported non-executable documents and images.
133
+ The server checks the recorded file authority before the handoff. The external
134
+ app resolves the pathname asynchronously; it does not inherit the preview
135
+ reader's pinned file descriptor. Native opening is never automatic.
package/docs/plugins.md CHANGED
@@ -11,6 +11,30 @@ duplicate manifest `name` across the bundled and consumer catalogs is rejected
11
11
  rather than treated as an override. In a source checkout, where both roots are
12
12
  the same physical directory, the catalog is discovered only once.
13
13
 
14
+ ## Manage Plugins In The Web UI
15
+
16
+ Open **Configuration → Plugins** to see installed manifests, capability counts,
17
+ and enabled, partially enabled or disabled selections. Switches save the selected
18
+ plugin's configuration while preserving capability-specific allow/deny rules.
19
+ Choose **Manage tools** on a plugin to manage its declared tools inside the same card.
20
+ The card keeps its size; the tool list scrolls when needed. Use **Back** or Escape
21
+ to return to the plugin overview. For example, disabling filesystem.read_file
22
+ leaves dev_view, edit_file and write_file unchanged. Tool switches write qualified selectors and preserve
23
+ the selections of every other tool. A plugin can remain enabled with all its
24
+ tools switched off.
25
+
26
+ Global, parent-plugin and broad tool deny rules remain explicit blockers.
27
+ A child switch does not silently remove those rules or enable sibling tools.
28
+
29
+ Choose **Apply changes** to activate saved settings. The Web process replaces
30
+ only its own idle environments and preserves session and Job files. If any
31
+ environment is working, or another process owns it, changes remain saved and
32
+ the UI explains why they cannot yet be applied. Saving a switch alone does not
33
+ change tools available to an already running agent.
34
+
35
+ This screen manages packages already installed on disk; it does not install
36
+ plugins from a marketplace.
37
+
14
38
  ## Package Shape
15
39
 
16
40
  ```text
@@ -119,6 +143,14 @@ input, effect, and approval. Optional capability metadata such as client event
119
143
  presentation, payload authoring, development roles, and selection grounding
120
144
  belongs here as well—not in runtime orchestration.
121
145
 
146
+ A plugin declares sensitive operations with `approval: "always"` in its
147
+ manifest, as the bundled EXEC and SYSTEM plugins do. Apply that policy to every
148
+ operation when the whole plugin is sensitive. The generic approval boundary
149
+ keeps enabled operations available in all modes: Ask and Full approve each exact
150
+ prepared action; FULL+ skips that extra prompt. A disabled plugin stays absent.
151
+ Sensitivity is declared by the plugin, never inferred from command text or tool
152
+ names. Ordinary `request_policy` operations retain their existing mode behavior.
153
+
122
154
  `catalogGroups` classifies a capability in one or more request-catalog groups.
123
155
  A plugin-level non-empty array under `ai.abot.runtime` is inherited by every
124
156
  capability; an optional capability-level array overrides that default. Values
@@ -132,25 +164,42 @@ against a non-empty catalog. The runtime stores that scope on the Worker call
132
164
  and exposes the OR-union of matching capabilities. The Worker still selects
133
165
  the concrete capability and controls.
134
166
 
135
- Supervisor routing receives one optional, passive text brief from the same
136
- request-filtered registry used by `capability-brief`. It chooses the richest
137
- complete representation that fits: tool names with operation ids and groups,
138
- tool names by group, group counts and effects, or no brief. The brief replaces
139
- the previous aggregate catalog text; group ids remain in the response schema
140
- in every mode. It includes no tool descriptions, inputs, or operating
141
- instructions. Its 512-token estimate ceiling is further reduced by existing
142
- context headroom, including history and instruction reserves. No subset of
143
- tools is selected to fit, and no model call summarizes the catalog.
144
- This admission uses the context estimate at projection time. A later provider
145
- token count, steering update, or structured-output repair can still trigger
146
- the existing context-compaction path; the brief is not reselected there.
167
+ Supervisor routing and delegated Planner each receive one optional, passive
168
+ text brief through the same shared projection from the
169
+ request-filtered registry used by `capability-brief`. It first includes every
170
+ offered operation's tool name, operation id, summary and catalog groups when
171
+ that complete description set fits the existing context headroom. Request-bound
172
+ facts already present in summaries, such as available execution targets, remain
173
+ intact. Admission reserves each consumer's existing context, configured
174
+ instructions, calibration, output and safety headroom and stays below the
175
+ existing compaction threshold. Root steering is reserved only for Supervisor;
176
+ it does not enter the bounded Planner call.
177
+
178
+ When complete descriptions cannot fit, the existing compact representations
179
+ remain available under a 512-token ceiling: tool names with operation ids and
180
+ groups, tool names by group, group counts and effects, or no brief. The declared
181
+ level makes omitted detail explicit; it never implies that omitted detail means
182
+ an operation is unavailable. Group ids remain in the response schema in every
183
+ mode. No subset of tools is selected, no summary is truncated, and no model call
184
+ summarizes the catalog. The brief carries no input schemas, execution authority
185
+ or completion evidence. It is confined to delegation decisions; Worker selection,
186
+ Execution Agent context, approval and terminal-response contracts are unchanged.
187
+ Before each Supervisor routing or Planner attempt, including structured-output repairs,
188
+ the optional brief is reselected against the actual projected messages plus
189
+ current consumer-specific calibration and context. It retains its reference position or is
190
+ omitted when no complete level fits; repair instructions and other context stay
191
+ intact. Already inserted methodology is counted once. Provider token counts may
192
+ still differ from these estimates and trigger the existing context-compaction
193
+ path.
147
194
 
148
195
  The SDK exports `buildToolAvailabilityBrief` for the unchanged on-demand plugin
149
196
  output and `buildToolAvailabilityOverview` for informational representations.
150
197
  The runtime context helper owns token admission and the passive reference
151
198
  message; another step can explicitly attach it using the existing context
152
199
  reference API. Supervisor's working-directory and response phases do not
153
- receive it. Planner retains its existing group-routing projection.
200
+ receive it. Planner uses this same brief instead of a separate aggregate-tag
201
+ catalog. Its existing group-selection schema and Worker scope enforcement stay
202
+ unchanged; descriptions do not select a group or execute an operation.
154
203
 
155
204
  Under `execution-agent-v1`, the canonical root receives group descriptions
156
205
  generated from member capability ids and summaries, and may mechanically open
@@ -230,6 +279,23 @@ Run `npm run typecheck:plugins` while developing. Run
230
279
  `npm run build:plugins` to regenerate every public `src/index.cjs`; CI uses
231
280
  `npm run check:plugin-build` to reject stale or hand-edited generated output.
232
281
 
282
+ Plugins may export an asynchronous `prepareRequest(selectedModules)` hook alongside
283
+ `handlers` and `adapters`. The host invokes it once per plugin for each request,
284
+ after configuration selection and before projecting any model catalog. It receives
285
+ detached frozen contracts and may remove tools or operations, narrow input enums,
286
+ update operation summaries, and bind request-local implementations/adapters.
287
+ Names, definitions, effects, approval policy, fixed parameters, and the remaining
288
+ input contract cannot change. Disabled tools are never passed to the hook and
289
+ cannot be returned. A preparation failure fails the request; it does not silently
290
+ restore the unprepared catalog. Prepared state is not cached across requests.
291
+
292
+ A call adapter may provide `executionBinding(call)` with an opaque `identity` and
293
+ optional human-facing `metadata`. The identity participates in the normalized
294
+ action fingerprint before approval; it is not a model input or tool result.
295
+ Metadata is for approval and Activity disclosure only. The bound implementation
296
+ must enforce that same captured destination at dispatch and reject stale bindings.
297
+ Both supported execution policies consume this same prepared registry.
298
+
233
299
  The loader rejects missing or unexpected handlers. Plugin settings defaults
234
300
  and secret environment-variable names may be declared in `plugin.json`;
235
301
  secret values never belong in the manifest. Optional secrets do not alter the
@@ -259,7 +325,7 @@ intent, or proof that the whole request completed. See
259
325
  ## Filesystem Roots
260
326
 
261
327
  `environment.paths.agentWorkDir` is the configured primary work root. Plugins
262
- must resolve user-controlled filesystem targets through the injected
328
+ with scoped filesystem operations must resolve user-controlled targets through the injected
263
329
  `runtimePathResolver`; they must not reproduce normalization, containment, or
264
330
  symlink policy. The plugin explicitly declares the configured locations that
265
331
  its operation accepts, while the Runtime proves the resulting physical path:
@@ -282,10 +348,36 @@ files. Read-only system inspection may opt into `host_system`; that location
282
348
  accepts absolute paths only and is never included implicitly. Plugins must not
283
349
  use it for mutation or as a fallback when a configured work root is missing.
284
350
  Paths outside declared roots and canonical symlink escapes fail before plugin
285
- I/O. Plugins must not infer or advertise a physical `sandbox/` alias.
351
+ I/O for these scoped operations. Plugins must not infer or advertise a physical
352
+ `sandbox/` alias. Trusted shell execution follows the explicit exception below.
286
353
  Attachment handles are a separate request-owned source and are not converted
287
354
  into ordinary filesystem targets.
288
355
 
356
+ After a committed file mutation, the optional
357
+ `executionContext.reportFileOutput({ target, operation, rootIdentity })` callback
358
+ can report the exact resolved target for client presentation. `operation` is
359
+ `created` or `updated`; no-op and failed mutations must not report an output.
360
+ `rootIdentity` contains decimal strings for `device`, `inode` and `birthtimeNs`,
361
+ read from the actual mutation root directory handle. Keep that handle open until
362
+ the synchronous callback returns. The host checks this identity against the
363
+ currently configured root before reading or creating a marker. Missing or
364
+ mismatched identities omit the card, including a root replaced between commit
365
+ and reporting. A receipt is published only on a successful mutating completion
366
+ with `mutationEvidence: true`. The callback
367
+ is best-effort: its absence or failure must not change a committed mutation's
368
+ result. Never copy the receipt, physical path or presentation metadata into the
369
+ canonical tool result. The bundled filesystem write/edit tools use this channel;
370
+ it creates neither a file catalog nor a historical snapshot.
371
+
372
+ The host binds that receipt to the root directory instance using its filesystem
373
+ identity and a random token in `.abot-file-output-root`. Presentation capture
374
+ creates this small marker once, without overwriting an existing file; preview
375
+ only reads it. Symlink, malformed, missing or changed markers cannot authorize
376
+ older receipts. Removing a marker revokes those receipts; a later successful
377
+ mutation can establish a new token. Filesystems without stable directory birth
378
+ identity omit presentation receipts while preserving the tool's mutation result.
379
+ Legacy receipts containing only a path-derived root hash are not upgraded.
380
+
289
381
  Plugin state belongs to the factory instance. Mutable module globals are not
290
382
  allowed because one host process may load more than one Runtime. File-backed
291
383
  state uses a plugin-owned directory, serialized mutations, atomic replacement,
@@ -322,10 +414,23 @@ and rendered text. A truncated success reports machine-readable truncation
322
414
  metadata; an operation that cannot produce a truthful bounded result fails
323
415
  explicitly.
324
416
 
325
- The bundled `exec` plugin supports Linux and macOS with non-interactive
326
- `/bin/bash`. Commands must use utilities available on the host. Its configured working directory is constrained to
327
- agent-work or workspace roots, but the shell runs with the Runtime process
328
- permissions and is not an operating-system sandbox.
417
+ The bundled `exec` plugin provides trusted, non-interactive `/bin/bash` execution
418
+ on Linux and macOS. Execute, wait and cancel each declare `approval="always"`:
419
+ Ask/Full require exact-action approval, and FULL+ skips that extra prompt.
420
+ Commands run as the Runtime OS user without lexical path or command-name checks.
421
+ The explicit cwd must be an accessible existing directory; relative paths and
422
+ `workspace/...` use their configured context bases, while absolute host paths
423
+ are allowed. Trusted shell execution is outside the scoped filesystem contract
424
+ above; project folders do not sandbox code. Dedicated file-tool restrictions
425
+ remain unchanged. Native shell syntax and installed utilities determine command
426
+ behavior; process ownership, cancellation, timeout and output limits still apply.
427
+
428
+ Dev View locators are literal substrings that must identify a unique occurrence
429
+ in the bounded file scan. An ambiguous locator remains an explicit failure,
430
+ with bounded candidate line ranges and numeric controls for inspecting observed
431
+ locations. The caller must omit `locator` when using those numeric controls.
432
+ Candidate and scan truncation are explicit; neither previews nor candidate
433
+ counts imply full-file coverage.
329
434
 
330
435
  ## Adding A Plugin
331
436
 
@@ -0,0 +1,218 @@
1
+ # Projects and FULL+
2
+
3
+ Projects organize conversations around a working folder. FULL+ authorizes
4
+ system actions without per-action approval through the existing permission selector. These are independent choices:
5
+ a project does not grant system access, and FULL+ does not require a project.
6
+
7
+ ## Projects
8
+
9
+ Use the folder-plus button on the navigation rail. Choose a folder in the main
10
+ conversation area, optionally give the project a name, and select **Create project**.
11
+ **Browse** opens an inline folder picker. Navigate to a folder and choose
12
+ **Use this folder** to apply it; cancelling the picker preserves the typed path.
13
+ The folder browser shows directories on the Runtime computer, which may differ
14
+ from the computer running the browser. Absolute folder paths can also be entered.
15
+ On WSL, Windows folders must be accessible through the Linux filesystem, such as
16
+ a mounted drive. On a native Mac, choose an accessible macOS directory.
17
+
18
+ Project groups remain above ordinary conversations in the sidebar. Their plus
19
+ button opens another conversation in that project. The existing plus button still
20
+ creates an ordinary conversation using the configured default working directory.
21
+ There is no fixed product limit on the number of projects. Opening or cancelling
22
+ the creation form preserves the current conversation and sends no model request.
23
+
24
+ The Runtime persists projects and each project's conversation binding. A
25
+ conversation's selected directory is resolved for its own requests, including
26
+ file output previews. Concurrent projects do not modify one another's directory
27
+ or the global configuration. Existing conversations are not migrated automatically.
28
+ Project deletion, renaming, and moving existing conversations are outside this
29
+ initial feature.
30
+
31
+ ## Permission modes
32
+
33
+ - **Ask** requests approval before each sensitive action, including EXEC and SYSTEM, using the existing tool-approval flow.
34
+ - **Full** keeps ordinary tool behavior and also requests approval before each sensitive action. The approval card recommends FULL+ for future actions without those prompts.
35
+ - **FULL+** authorizes task-relevant system actions without additional ABot action
36
+ confirmations or another enablement switch. This includes application discovery
37
+ and launching, general commands, service and process management, installation,
38
+ configuration changes, and other operations the target OS supports.
39
+
40
+ The selector remembers the user's last explicit choice in this browser. New
41
+ conversations, including project conversations, start with that saved choice.
42
+ Existing conversations retain their own mode; opening one does not change the
43
+ last-choice preference. Legacy conversations without a saved mode remain Full,
44
+ and missing or unknown preferences never become FULL+. Each submitted or queued
45
+ request captures its own mode; a later selection does not change it.
46
+ A client connected to a server without advertised FULL+ support rejects the
47
+ unsupported request instead of silently downgrading it.
48
+
49
+ System capabilities are bundled and enabled by default, using the normal
50
+ tool/adapter execution path and the same plugin selection rules as other tools.
51
+ A disabled plugin or capability is absent from every request mode, including
52
+ FULL+: permission never restores an unavailable tool. Existing explicit
53
+ allow/deny selections are respected. Plugin changes use the existing Runtime
54
+ restart requirement; FULL+ needs no additional enablement step under the default
55
+ selection.
56
+ Enabled sensitive capabilities, including every EXEC and SYSTEM operation, are available in all three modes. Their declared
57
+ `approval="always"` policy uses the existing runtime approval boundary: Ask and
58
+ Full wait for approval of the exact prepared action; FULL+ executes without
59
+ that prompt. The card shows recorded target, command, working directory and
60
+ elevation details. Approving once neither changes the selected mode nor approves
61
+ later actions. Rejection, cancellation or an unavailable approval controller
62
+ prevents dispatch. A model instruction, project file or tool result cannot select
63
+ the request's mode. Direct tool implementations and low-level registry APIs are
64
+ trusted host integration APIs; client requests use the normal invocation boundary.
65
+
66
+ ## Trusted shell execution
67
+
68
+ The EXEC plugin declares sensitivity through the same `approval="always"`
69
+ operation policy as SYSTEM. This covers execute, wait and cancel, without a
70
+ tool-name branch in core orchestration. An approval applies to that exact action;
71
+ it does not authorize later commands, polling or cancellation actions.
72
+
73
+ After the required approval, EXEC passes the command to the native shell. It
74
+ does not scan its text for paths, shell grammar, program operands or sensitive
75
+ effects, and it does not block command names. The explicit working directory
76
+ must exist and be accessible to the OS user; relative and workspace aliases keep
77
+ their existing bases, and absolute host directories are accepted. Project and
78
+ file-tool boundaries do not sandbox shell code. Existing file-tool path contracts
79
+ remain unchanged. Execution retains non-interactive I/O, process ownership,
80
+ cancellation, timeout, output and resource limits.
81
+
82
+ ## Operating-system targets
83
+
84
+ Native Linux and macOS command execution, application discovery and launch use
85
+ the target OS adapters. Windows execution from WSL requires working Windows
86
+ interop and an actual Windows process; the Runtime reports an unavailable target
87
+ when that transport is missing. It does not pretend that a Linux command ran on
88
+ Windows. No product names receive special hardcoded handling.
89
+
90
+ Target discovery distinguishes the Runtime OS from its host: a Linux Runtime
91
+ inside WSL does not make a Windows desktop application a Linux application.
92
+ Application discovery reports the sources it searched. A complete scan of those
93
+ sources does not prove that an application is absent from the computer. When the
94
+ catalog is insufficient, use the available target-native inspection commands to
95
+ check installation and executable identity before choosing a launch method.
96
+
97
+ FULL+ does not manufacture Administrator/root rights or bypass OS authorization.
98
+ Required OS prompts, credentials and unavailable permissions are reported through
99
+ the action result. A command receipt identifies its observed shell or helper;
100
+ an application launch receipt records dispatch. Neither proves that the intended
101
+ application started or that a visible window appeared. Verify the requested
102
+ outcome with target-native evidence before reporting it as achieved. A matching
103
+ filename, an exit code, or an already-running process alone does not prove a new
104
+ launch. Command output may contain further evidence, but the adapter does not
105
+ independently validate the effects of arbitrary commands.
106
+
107
+ A project folder is the working context, not a ceiling on approved system operations.
108
+ System commands can address resources outside it without changing `workspaceDir`
109
+ to `/`. Existing file-tool path contracts remain in effect. This feature does not
110
+ claim OS sandboxing, folder locking, or protection against another process running
111
+ with the same user's OS authority. Approval controls whether a sensitive
112
+ action may start; it does not lower that process's OS permissions.
113
+
114
+ ## Connecting a Docker Runtime to its computer
115
+
116
+ A Docker Runtime can use applications and commands on its Windows or macOS host
117
+ through the optional native host companion. The companion runs as the signed-in
118
+ desktop user and connects outbound to the Runtime's published loopback Web UI
119
+ address. It does not require a Docker socket, a privileged container, a Windows
120
+ drive mount, or WSL interop inside the container. The container remains a separate
121
+ Linux target; discovery identifies Docker separately from WSL.
122
+
123
+ 1. Publish the Docker Web UI port on `127.0.0.1` only, and keep the Runtime's data
124
+ directory persistent. In that deployment, set
125
+ `ABOT_WEB_TRUST_LOOPBACK_PUBLISH=1` in the container environment alongside the
126
+ loopback port mapping (for example, `-p 127.0.0.1:5184:5184
127
+ -e ABOT_WEB_TRUST_LOOPBACK_PUBLISH=1`). Open the Web UI using its configured
128
+ hostname and port.
129
+ 2. In the initial **Computer** step or **Config → Connected computer**, download
130
+ the setup script for the computer running Docker. Open the Windows script, or
131
+ extract the Mac ZIP and open its executable command file, on that computer.
132
+ 3. The script installs a private, checksum-verified Node runtime and the exact
133
+ companion build supplied by this ABot installation. It pairs automatically
134
+ using a single-use grant valid for 15 minutes, without a copied code or command.
135
+ 4. The companion saves a private credential and starts now and at future user
136
+ logins. The Web UI polls actual connection readiness. Downloading the script
137
+ alone is not a successful connection; wait for **Ready**.
138
+
139
+ The publish-trust setting is off by default. Container detection cannot prove
140
+ which host interfaces Docker publishes; a `Host: localhost` request is not proof
141
+ of local access. Enable this setting only when every published Web UI port is
142
+ restricted to host loopback. Do not enable it for LAN/public port mappings or an
143
+ untrusted proxy. It permits the local browser and companion to use the published
144
+ port when Docker changes the address/port seen inside the container; it does not
145
+ add authentication or secure a remotely exposed Web UI. Native and WSL listeners
146
+ retain their existing authority checks.
147
+
148
+ The companion accepts only Runtime addresses resolving to this computer's
149
+ loopback interface. Use the Web UI origin displayed in the connection panel,
150
+ including its published port. This connection does not expose a remote command
151
+ listener on the native host and does not support pairing to a different computer
152
+ over the LAN or internet. Downloadable installers currently require a local HTTP
153
+ Web UI origin. They do not disable TLS validation for unsupported HTTPS setups.
154
+
155
+ One computer connection is shared by all Runtime environments belonging to the
156
+ same ABot installation. The native user can pair with one installation at a time;
157
+ disconnect before connecting another. Existing native macOS operation and Windows
158
+ operation through functioning WSL interop do not require this companion. The
159
+ setup screen checks those direct paths first. If WSL Windows execution is
160
+ unavailable, it offers a Windows interop repair script instead. The script
161
+ preserves unrelated `wsl.conf` settings, including `appendWindowsPath`, then
162
+ automatically restarts only the selected distribution without a typed confirmation.
163
+ Finish active work before opening the file: the restart interrupts all services
164
+ in that distribution. If the configuration update fails, no restart occurs.
165
+ The script and GUI verify actual Windows execution after the restart.
166
+
167
+ Host requests use the existing system plugin and the same exact-action approval
168
+ flow: Ask and Full request approval; FULL+ does not add a separate ABot prompt.
169
+ Connecting a computer never enables a disabled plugin or tool. Requests identify
170
+ available operating systems, not connection identifiers. Before each request's
171
+ model calls, the system plugin captures native targets and the connected computer;
172
+ existing native execution takes precedence, and the companion supplies an OS
173
+ missing locally. Disconnected computer targets are absent from both the direct
174
+ and delegated model catalogs. The plugin binds the destination internally before
175
+ exact-action approval. Changing the pairing or reconnecting while approval is
176
+ pending invalidates that action; it is never redirected or replayed on a new
177
+ connection. Command working directories use the selected OS's path syntax.
178
+ A container project path is not automatically translated to a Windows or Mac
179
+ path. OS authorization still applies, and a launch receipt alone is not proof
180
+ that a visible application window appeared.
181
+
182
+ When confirmed Docker or WSL readiness requires setup, Chat shows a small,
183
+ dismissible suggestion linking to **Config → Connected computer**. It does not
184
+ appear for working native access, unknown status, or an already paired computer.
185
+ It reuses the existing readiness state and refreshes on returning to Chat, without
186
+ adding a polling loop. Dismissal lasts until the page is reloaded.
187
+
188
+ Use **Disconnect computer** in the Web UI to revoke the Runtime's pairing and
189
+ pending invitations. The connected companion removes its credential after
190
+ revocation. Downloaded setup files contain an expiring invitation, so keep them
191
+ private and delete them after use. Browser storage retains neither the invitation
192
+ nor the persistent credential.
193
+
194
+ Advanced installations using the ABot CLI can still use `abot host status`,
195
+ `abot host disconnect` and `abot host uninstall`. The downloaded installer does
196
+ not add a global `abot` command. Its private Node binary and immutable companion
197
+ bundle live under `%LOCALAPPDATA%\ABot\HostCompanion` on Windows or
198
+ `~/Library/Application Support/ABot/HostCompanion` on Mac; the same CLI operations
199
+ can be invoked there as `<node> <companion-bundle> host uninstall`. This removes
200
+ the local credential and login registration; use the Web UI to clear Runtime-side
201
+ pairing as well. Reconnecting never silently replaces another installation's
202
+ saved native connection.
203
+
204
+ An offline computer is reported as unavailable. The companion reconnects while
205
+ the saved pairing remains valid; it never automatically replays an interrupted
206
+ system action. Cancellation or revocation attempts to stop an in-flight command,
207
+ but effects already performed are not rolled back. If a connection is lost during
208
+ execution, inspect the actual host state before trying the action again.
209
+
210
+ ## Validation status
211
+
212
+ Implementation and validation progress are recorded in the task journal. Native
213
+ Mac QA is performed separately with the owner; mocked platform tests are not a
214
+ claim that an actual Mac was tested. No release or installation update is implied
215
+ by changes in a development worktree.
216
+ Native Windows/macOS companion installation, login startup and visible-application
217
+ QA remain separate checks on the real desktop systems; Linux protocol and package
218
+ tests do not establish those results.
@@ -20,7 +20,7 @@ the default `supervisor-worker-v1` policy and the opt-in
20
20
  | Capability adapters report bounded operation outcomes and never decide semantic completion. | `src/runtime/adapters/registered-tool-worker-capabilities.ts`, `src/capabilities/tool-executor.ts` | `registered-tool-worker-capabilities.test.ts`, `tool-executor.test.ts`, `normal-invocation.test.ts` |
21
21
  | Every capability settlement, whether produced by a delegated Worker or the direct root, atomically persists exactly one validated canonical `CapabilityAdapterResult`. Running executions cannot carry a result; invalid, non-JSON-safe, cyclic, or oversized evidence cannot settle and is never silently truncated. | `src/runtime/orchestration/capability-adapters/result.ts`, `src/runtime/orchestration/worker-capabilities/execution.ts`, `src/runtime/orchestration/role-calls/` | `registered-tool-worker-capabilities.test.ts`, `worker-capability-binding.test.ts`, `role-call-ledger.test.ts` |
22
22
  | The complete canonical result is projected only to the exact producing call and its later same-call payload author. Direct native tool linkage is not duplicated; cross-call provenance moves only through compact runtime-owned receipts and ledger-derived lineage on explicit dependency or supervision lanes. A Planner-item Worker receives no sibling execution summaries; callers, siblings and unrelated requests receive no implicit evidence. | `src/runtime/orchestration/worker-capabilities/settled-results.ts`, `src/runtime/context/request-tool-results.ts`, `src/runtime/orchestration/role-calls/`, `src/runtime/steps/worker-decision/`, `src/runtime/steps/execution-agent/state-context.ts` | `planner-worker-tool-result-scope.test.ts`, `role-call-dependency-work-receipt-pr1.test.ts`, `role-call-work-receipt-continuation-pr1.test.ts`, `worker-decision.test.ts`, `execution-agent-context.test.ts` |
23
- | Delegated Planner client events project committed canonical plan state and never write progress. Planner Graph advisories do not create canonical plan items. | `src/runtime/request/role-call-planner-events.ts`, `src/runtime/request/planner-plan-events.ts`, `src/runtime/steps/planner-graph/` | `role-call-planner-events.test.ts`, `execution-agent-advisory-executors.test.ts` |
23
+ | Plan client events project committed state and never write progress. Planner Graph advice stays passive until the Execution Agent explicitly adopts it and reports item statuses; delegated Worker-bound plans remain unchanged. | `src/runtime/request/role-call-planner-events.ts`, `src/runtime/request/planner-plan-events.ts`, `src/runtime/steps/planner-graph/` | `role-call-planner-events.test.ts`, `model-work-plan-domain.test.ts`, `model-work-plan-events.test.ts`, `model-work-plan-runner.test.ts` |
24
24
  | Final response persistence and terminal request completion remain one shared request-finalizer boundary for both policies. | `src/runtime/lifecycle/request-finalizer.ts` | `request-finalization.test.ts`, `execution-agent-request-runner.test.ts` |
25
25
 
26
26
  ## Client Compatibility
@@ -28,8 +28,11 @@ the default `supervisor-worker-v1` policy and the opt-in
28
28
  Delegated Planner events retain the existing `planner.plan.*` names and
29
29
  `stage=development_plan` payload field. This is a client presentation contract,
30
30
  not evidence of a separate request path or semantic routing state. A
31
- `planner.graph` advisory is only a returned role result and does not create
32
- those plan events.
31
+ `planner.graph` advisory alone is only a returned role result. An Execution
32
+ Agent's explicit adoption and progress declarations use the same events after
33
+ canonical ledger commit, without additional model turns or automatic item
34
+ completion. They do not change delegated Worker-bound plan semantics or act
35
+ as completion evidence.
33
36
 
34
37
  ## Regression Rule
35
38