@abot-ai/runtime 1.3.0 → 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 (660) 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/init-runtime.js +4 -13
  59. package/dist/scripts/runtime-model-addition.d.ts +13 -0
  60. package/dist/scripts/runtime-model-addition.js +53 -0
  61. package/dist/scripts/runtime-setup-directories.d.ts +2 -0
  62. package/dist/scripts/runtime-setup-directories.js +38 -0
  63. package/dist/scripts/runtime-setup-files.d.ts +3 -1
  64. package/dist/scripts/runtime-setup-files.js +18 -1
  65. package/dist/src/capabilities/file-output-presentation.d.ts +43 -0
  66. package/dist/src/capabilities/file-output-presentation.js +133 -0
  67. package/dist/src/capabilities/tool-definition-validator/definition-parser.js +2 -0
  68. package/dist/src/capabilities/tool-definition-validator/event-input-text-options.d.ts +5 -0
  69. package/dist/src/capabilities/tool-definition-validator/event-input-text-options.js +37 -0
  70. package/dist/src/capabilities/tool-definition-validator/event-presentation.js +3 -0
  71. package/dist/src/capabilities/tool-definition-validator/module-registry.js +12 -0
  72. package/dist/src/capabilities/tool-event-input-text.d.ts +9 -0
  73. package/dist/src/capabilities/tool-event-input-text.js +64 -0
  74. package/dist/src/capabilities/tool-event-metadata.js +10 -0
  75. package/dist/src/capabilities/tool-executor.d.ts +1 -0
  76. package/dist/src/capabilities/tool-executor.js +1 -0
  77. package/dist/src/capabilities/tool-permission-mode.d.ts +7 -0
  78. package/dist/src/capabilities/tool-permission-mode.js +27 -0
  79. package/dist/src/capabilities/tool-types.d.ts +18 -2
  80. package/dist/src/cli/abot.js +18 -15
  81. package/dist/src/cli/host-companion-bundle.mjs +5201 -0
  82. package/dist/src/cli/host-companion-entry.d.ts +8 -0
  83. package/dist/src/cli/host-companion-entry.js +70 -0
  84. package/dist/src/cli/host-companion-startup.d.ts +4 -0
  85. package/dist/src/cli/host-companion-startup.js +35 -0
  86. package/dist/src/cli/host-companion.d.ts +5 -0
  87. package/dist/src/cli/host-companion.js +203 -0
  88. package/dist/src/model-gateway/server/configuration.js +4 -1
  89. package/dist/src/model-gateway/server/contracts.d.ts +2 -0
  90. package/dist/src/plugin-contract/entrypoint.d.ts +4 -2
  91. package/dist/src/plugin-contract/manifest.d.ts +1 -0
  92. package/dist/src/runtime/adapters/config-file-transaction.d.ts +46 -0
  93. package/dist/src/runtime/adapters/config-file-transaction.js +158 -0
  94. package/dist/src/runtime/adapters/configured-skill-provider.js +3 -3
  95. package/dist/src/runtime/adapters/in-memory-session-store.js +11 -1
  96. package/dist/src/runtime/adapters/long-term-memory/file-lock/acquisition.js +7 -3
  97. package/dist/src/runtime/adapters/long-term-memory/file-lock/contracts.d.ts +4 -1
  98. package/dist/src/runtime/adapters/long-term-memory/file-lock/install.d.ts +1 -1
  99. package/dist/src/runtime/adapters/long-term-memory/file-lock/install.js +5 -1
  100. package/dist/src/runtime/adapters/long-term-memory/file-lock/owner-identity.d.ts +3 -0
  101. package/dist/src/runtime/adapters/long-term-memory/file-lock/owner-identity.js +15 -0
  102. package/dist/src/runtime/adapters/long-term-memory/file-lock/owner-record.js +2 -0
  103. package/dist/src/runtime/adapters/long-term-memory/onboarding-config-repository.js +17 -43
  104. package/dist/src/runtime/adapters/registered-tool-normal-invocations/catalog/registrations.js +6 -2
  105. package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/approval.js +10 -1
  106. package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/execution-binding.d.ts +11 -0
  107. package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/execution-binding.js +37 -0
  108. package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/file-output-presentation.d.ts +7 -0
  109. package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/file-output-presentation.js +105 -0
  110. package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/run.js +29 -3
  111. package/dist/src/runtime/adapters/registered-tool-normal-invocations/shared/action-fingerprint.d.ts +1 -0
  112. package/dist/src/runtime/adapters/registered-tool-normal-invocations/shared/action-fingerprint.js +1 -0
  113. package/dist/src/runtime/capabilities/configured-tool-registry.js +9 -1
  114. package/dist/src/runtime/capabilities/file-output-root-identity.d.ts +5 -0
  115. package/dist/src/runtime/capabilities/file-output-root-identity.js +146 -0
  116. package/dist/src/runtime/capabilities/file-output-root-marker-creation.d.ts +5 -0
  117. package/dist/src/runtime/capabilities/file-output-root-marker-creation.js +63 -0
  118. package/dist/src/runtime/capabilities/request-bound-tool-registry.d.ts +1 -0
  119. package/dist/src/runtime/capabilities/request-bound-tool-registry.js +6 -1
  120. package/dist/src/runtime/capabilities/request-module-preparation.d.ts +3 -0
  121. package/dist/src/runtime/capabilities/request-module-preparation.js +102 -0
  122. package/dist/src/runtime/capabilities/request-permission-catalog.d.ts +10 -0
  123. package/dist/src/runtime/capabilities/request-permission-catalog.js +50 -0
  124. package/dist/src/runtime/capabilities/request-permission-tool-registry.d.ts +4 -0
  125. package/dist/src/runtime/capabilities/request-permission-tool-registry.js +61 -0
  126. package/dist/src/runtime/capabilities/request-runtime-tool-registry.d.ts +3 -0
  127. package/dist/src/runtime/capabilities/request-runtime-tool-registry.js +5 -2
  128. package/dist/src/runtime/capabilities/request-working-directory.d.ts +3 -0
  129. package/dist/src/runtime/capabilities/request-working-directory.js +12 -0
  130. package/dist/src/runtime/composition.d.ts +2 -0
  131. package/dist/src/runtime/config/runner/loader.d.ts +4 -0
  132. package/dist/src/runtime/config/runner/loader.js +23 -3
  133. package/dist/src/runtime/context/capability-brief-budget.d.ts +18 -0
  134. package/dist/src/runtime/context/capability-brief-budget.js +38 -0
  135. package/dist/src/runtime/context/capability-brief-readmission.d.ts +21 -0
  136. package/dist/src/runtime/context/capability-brief-readmission.js +47 -0
  137. package/dist/src/runtime/context/capability-brief.d.ts +9 -2
  138. package/dist/src/runtime/context/capability-brief.js +21 -39
  139. package/dist/src/runtime/context/capability-descriptions.d.ts +3 -0
  140. package/dist/src/runtime/context/capability-descriptions.js +23 -0
  141. package/dist/src/runtime/default-environment-adapters.js +3 -4
  142. package/dist/src/runtime/local-application.d.ts +18 -0
  143. package/dist/src/runtime/local-application.js +12 -0
  144. package/dist/src/runtime/local-host/app-service-dispatch.d.ts +1 -0
  145. package/dist/src/runtime/local-host/app-service-dispatch.js +9 -0
  146. package/dist/src/runtime/local-host/client-services.d.ts +16 -0
  147. package/dist/src/runtime/local-host/client-services.js +3 -2
  148. package/dist/src/runtime/local-host/contracts.d.ts +4 -0
  149. package/dist/src/runtime/local-host/startup-connection.js +22 -7
  150. package/dist/src/runtime/local-host/transport.js +14 -2
  151. package/dist/src/runtime/orchestration/role-calls/candidate-validation.js +5 -2
  152. package/dist/src/runtime/orchestration/role-calls/command-decoder.js +3 -0
  153. package/dist/src/runtime/orchestration/role-calls/command-dispatch/work-plan-transition.d.ts +3 -0
  154. package/dist/src/runtime/orchestration/role-calls/command-dispatch/work-plan-transition.js +46 -0
  155. package/dist/src/runtime/orchestration/role-calls/command-dispatch.js +3 -0
  156. package/dist/src/runtime/orchestration/role-calls/contracts.d.ts +8 -4
  157. package/dist/src/runtime/orchestration/role-calls/transactions.js +2 -0
  158. package/dist/src/runtime/orchestration/role-calls/work-plan-contracts.d.ts +48 -0
  159. package/dist/src/runtime/orchestration/role-calls/work-plan-contracts.js +9 -0
  160. package/dist/src/runtime/orchestration/role-calls/work-plan-source.d.ts +7 -0
  161. package/dist/src/runtime/orchestration/role-calls/work-plan-source.js +85 -0
  162. package/dist/src/runtime/orchestration/role-calls/work-plan-transactions.d.ts +3 -0
  163. package/dist/src/runtime/orchestration/role-calls/work-plan-transactions.js +17 -0
  164. package/dist/src/runtime/orchestration/role-calls/work-plan-validation.d.ts +10 -0
  165. package/dist/src/runtime/orchestration/role-calls/work-plan-validation.js +149 -0
  166. package/dist/src/runtime/orchestration/worker-capabilities/contracts.d.ts +1 -1
  167. package/dist/src/runtime/orchestration/worker-capabilities/contracts.js +1 -1
  168. package/dist/src/runtime/plugins/compiled-catalog.d.ts +2 -1
  169. package/dist/src/runtime/plugins/configured-manifests.d.ts +3 -0
  170. package/dist/src/runtime/plugins/configured-manifests.js +37 -0
  171. package/dist/src/runtime/plugins/entrypoint-validation.d.ts +6 -0
  172. package/dist/src/runtime/plugins/entrypoint-validation.js +74 -0
  173. package/dist/src/runtime/plugins/loader.js +11 -123
  174. package/dist/src/runtime/plugins/manifest-discovery.d.ts +4 -1
  175. package/dist/src/runtime/plugins/manifest-discovery.js +8 -1
  176. package/dist/src/runtime/plugins/manifest-projection.js +3 -0
  177. package/dist/src/runtime/plugins/manifest-validator.js +7 -1
  178. package/dist/src/runtime/plugins/runtime-capability-plugins.d.ts +4 -0
  179. package/dist/src/runtime/plugins/runtime-capability-plugins.js +7 -0
  180. package/dist/src/runtime/plugins/selection.d.ts +14 -0
  181. package/dist/src/runtime/plugins/selection.js +38 -0
  182. package/dist/src/runtime/ports.d.ts +8 -2
  183. package/dist/src/runtime/projects/contracts.d.ts +40 -0
  184. package/dist/src/runtime/projects/contracts.js +10 -0
  185. package/dist/src/runtime/projects/folders.d.ts +7 -0
  186. package/dist/src/runtime/projects/folders.js +110 -0
  187. package/dist/src/runtime/projects/repository.d.ts +10 -0
  188. package/dist/src/runtime/projects/repository.js +54 -0
  189. package/dist/src/runtime/projects/service.d.ts +3 -0
  190. package/dist/src/runtime/projects/service.js +34 -0
  191. package/dist/src/runtime/projects/session-paths.d.ts +5 -0
  192. package/dist/src/runtime/projects/session-paths.js +13 -0
  193. package/dist/src/runtime/request/execution-agent-plan-update.d.ts +4 -0
  194. package/dist/src/runtime/request/execution-agent-plan-update.js +13 -0
  195. package/dist/src/runtime/request/execution-agent-root-execution.js +9 -1
  196. package/dist/src/runtime/request/handler.js +9 -2
  197. package/dist/src/runtime/request/input.d.ts +2 -1
  198. package/dist/src/runtime/request/input.js +1 -6
  199. package/dist/src/runtime/request/role-call-planner-events.js +4 -0
  200. package/dist/src/runtime/request/role-executor-composition.js +9 -1
  201. package/dist/src/runtime/request/root-contract.d.ts +6 -1
  202. package/dist/src/runtime/request/root-execution-kernel.js +17 -0
  203. package/dist/src/runtime/request/root-plan-event-projection.d.ts +3 -0
  204. package/dist/src/runtime/request/root-plan-event-projection.js +32 -0
  205. package/dist/src/runtime/request/root-plan-update.d.ts +15 -0
  206. package/dist/src/runtime/request/root-plan-update.js +20 -0
  207. package/dist/src/runtime/request/worker-capability-composition.d.ts +1 -0
  208. package/dist/src/runtime/request/worker-capability-composition.js +2 -0
  209. package/dist/src/runtime/runtime-environment.d.ts +1 -0
  210. package/dist/src/runtime/runtime-environment.js +2 -0
  211. package/dist/src/runtime/steps/auditor-decision/advisory-receipt.d.ts +32 -0
  212. package/dist/src/runtime/steps/auditor-decision/advisory-receipt.js +106 -0
  213. package/dist/src/runtime/steps/auditor-decision/advisory-result-budget.d.ts +5 -0
  214. package/dist/src/runtime/steps/auditor-decision/advisory-result-budget.js +40 -0
  215. package/dist/src/runtime/steps/auditor-decision/audit-input-state.d.ts +12 -0
  216. package/dist/src/runtime/steps/auditor-decision/audit-input-state.js +101 -0
  217. package/dist/src/runtime/steps/auditor-decision/contracts.d.ts +31 -16
  218. package/dist/src/runtime/steps/auditor-decision/contracts.js +3 -3
  219. package/dist/src/runtime/steps/auditor-decision/evidence-binding.d.ts +5 -0
  220. package/dist/src/runtime/steps/auditor-decision/evidence-binding.js +43 -0
  221. package/dist/src/runtime/steps/auditor-decision/evidence-coverage.d.ts +2 -0
  222. package/dist/src/runtime/steps/auditor-decision/evidence-coverage.js +71 -0
  223. package/dist/src/runtime/steps/auditor-decision/evidence-inventory.d.ts +13 -0
  224. package/dist/src/runtime/steps/auditor-decision/evidence-inventory.js +89 -0
  225. package/dist/src/runtime/steps/auditor-decision/evidence-representation.d.ts +10 -0
  226. package/dist/src/runtime/steps/auditor-decision/evidence-representation.js +56 -0
  227. package/dist/src/runtime/steps/auditor-decision/evidence-selection.d.ts +9 -0
  228. package/dist/src/runtime/steps/auditor-decision/evidence-selection.js +71 -0
  229. package/dist/src/runtime/steps/auditor-decision/format.js +44 -2
  230. package/dist/src/runtime/steps/auditor-decision/index.d.ts +3 -0
  231. package/dist/src/runtime/steps/auditor-decision/index.js +3 -0
  232. package/dist/src/runtime/steps/auditor-decision/input.d.ts +2 -2
  233. package/dist/src/runtime/steps/auditor-decision/input.js +64 -20
  234. package/dist/src/runtime/steps/auditor-decision/parser.js +38 -23
  235. package/dist/src/runtime/steps/auditor-decision/projection.js +49 -99
  236. package/dist/src/runtime/steps/auditor-decision/prompt.d.ts +1 -1
  237. package/dist/src/runtime/steps/auditor-decision/prompt.js +9 -4
  238. package/dist/src/runtime/steps/auditor-decision/run.js +79 -47
  239. package/dist/src/runtime/steps/execution-agent/contracts.d.ts +8 -1
  240. package/dist/src/runtime/steps/execution-agent/contracts.js +2 -0
  241. package/dist/src/runtime/steps/execution-agent/decision-parsing.js +4 -0
  242. package/dist/src/runtime/steps/execution-agent/format.js +4 -3
  243. package/dist/src/runtime/steps/execution-agent/input.js +10 -11
  244. package/dist/src/runtime/steps/execution-agent/prompt.d.ts +1 -0
  245. package/dist/src/runtime/steps/execution-agent/prompt.js +11 -4
  246. package/dist/src/runtime/steps/execution-agent/state-context.js +10 -0
  247. package/dist/src/runtime/steps/execution-agent/work-plan-contract.d.ts +18 -0
  248. package/dist/src/runtime/steps/execution-agent/work-plan-contract.js +86 -0
  249. package/dist/src/runtime/steps/execution-agent/work-plan-decision-parsing.d.ts +2 -0
  250. package/dist/src/runtime/steps/execution-agent/work-plan-decision-parsing.js +38 -0
  251. package/dist/src/runtime/steps/execution-agent/work-plan-sources.d.ts +6 -0
  252. package/dist/src/runtime/steps/execution-agent/work-plan-sources.js +54 -0
  253. package/dist/src/runtime/steps/planner-decision/capability-brief.d.ts +40 -0
  254. package/dist/src/runtime/steps/planner-decision/capability-brief.js +47 -0
  255. package/dist/src/runtime/steps/planner-decision/input.d.ts +4 -2
  256. package/dist/src/runtime/steps/planner-decision/input.js +23 -13
  257. package/dist/src/runtime/steps/planner-decision/prompt.js +2 -2
  258. package/dist/src/runtime/steps/planner-decision/run.js +11 -7
  259. package/dist/src/runtime/steps/planner-graph/parser.js +0 -11
  260. package/dist/src/runtime/steps/planner-graph/prompt.js +2 -1
  261. package/dist/src/runtime/steps/supervisor-decision/capability-brief-readmission.d.ts +10 -0
  262. package/dist/src/runtime/steps/supervisor-decision/capability-brief-readmission.js +39 -0
  263. package/dist/src/runtime/steps/supervisor-decision/run.js +2 -1
  264. package/dist/src/runtime/steps/worker-decision/parser/accepted-decision.d.ts +3 -1
  265. package/dist/src/runtime/steps/worker-decision/parser/accepted-decision.js +20 -1
  266. package/dist/src/runtime/steps/worker-decision/parser/capability-batch-validation.d.ts +1 -1
  267. package/dist/src/runtime/steps/worker-decision/parser/capability-batch-validation.js +6 -6
  268. package/dist/src/runtime/steps/worker-decision/parser/capability-invocation-validation.js +2 -1
  269. package/dist/src/sessions/project-binding.d.ts +12 -0
  270. package/dist/src/sessions/project-binding.js +49 -0
  271. package/dist/src/sessions/record/projection.d.ts +6 -1
  272. package/dist/src/sessions/record/projection.js +1 -0
  273. package/dist/src/sessions/session-service.d.ts +2 -1
  274. package/dist/src/sessions/session-service.js +11 -1
  275. package/dist/src/sessions/types.d.ts +7 -0
  276. package/dist/src/shared/directory-authority/bootstrap.d.ts +1 -0
  277. package/dist/src/shared/directory-authority/bootstrap.js +118 -0
  278. package/dist/src/shared/directory-authority/command.d.ts +8 -0
  279. package/dist/src/shared/directory-authority/command.js +27 -0
  280. package/dist/src/shared/directory-authority/errors.d.ts +5 -0
  281. package/dist/src/shared/directory-authority/errors.js +10 -0
  282. package/dist/src/shared/directory-authority/index.d.ts +3 -0
  283. package/dist/src/shared/directory-authority/index.js +3 -0
  284. package/dist/src/shared/directory-authority/protocol.d.ts +11 -0
  285. package/dist/src/shared/directory-authority/protocol.js +62 -0
  286. package/dist/src/shared/directory-authority/task.d.ts +7 -0
  287. package/dist/src/shared/directory-authority/task.js +97 -0
  288. package/dist/src/web-ui/app/ARCHITECTURE.md +121 -1
  289. package/dist/src/web-ui/app/app-bootstrap.js +3 -0
  290. package/dist/src/web-ui/app/app-dom.js +3 -0
  291. package/dist/src/web-ui/app/app-state.js +38 -0
  292. package/dist/src/web-ui/app/app.js +76 -67
  293. package/dist/src/web-ui/app/components/config-workspace/config-model.js +23 -3
  294. package/dist/src/web-ui/app/components/config-workspace/dashboard-rendering.js +2 -0
  295. package/dist/src/web-ui/app/components/config-workspace/field-rendering.js +2 -0
  296. package/dist/src/web-ui/app/components/config-workspace/model-rendering.js +6 -0
  297. package/dist/src/web-ui/app/components/config-workspace/model-setup-entry.js +27 -0
  298. package/dist/src/web-ui/app/components/config-workspace/raw-config-repair.js +28 -0
  299. package/dist/src/web-ui/app/components/config-workspace/workspace-events.js +5 -0
  300. package/dist/src/web-ui/app/components/config-workspace/workspace-mutations.js +23 -3
  301. package/dist/src/web-ui/app/components/config-workspace/workspace-persistence.js +26 -8
  302. package/dist/src/web-ui/app/components/config-workspace/workspace-view.js +56 -0
  303. package/dist/src/web-ui/app/components/config-workspace.js +11 -0
  304. package/dist/src/web-ui/app/components/conversation-activity.d.ts +6 -0
  305. package/dist/src/web-ui/app/components/conversation-activity.js +10 -2
  306. package/dist/src/web-ui/app/components/conversation-file-action.js +33 -0
  307. package/dist/src/web-ui/app/components/conversation-file-focus.d.ts +12 -0
  308. package/dist/src/web-ui/app/components/conversation-file-focus.js +149 -0
  309. package/dist/src/web-ui/app/components/conversation-file-preview.d.ts +23 -0
  310. package/dist/src/web-ui/app/components/conversation-file-preview.js +247 -0
  311. package/dist/src/web-ui/app/components/conversation-role-cards.d.ts +6 -0
  312. package/dist/src/web-ui/app/components/conversation-role-cards.js +10 -2
  313. package/dist/src/web-ui/app/components/conversation-tool-evidence.d.ts +9 -0
  314. package/dist/src/web-ui/app/components/conversation-tool-evidence.js +129 -0
  315. package/dist/src/web-ui/app/components/conversation-tools.d.ts +6 -0
  316. package/dist/src/web-ui/app/components/conversation-tools.js +25 -105
  317. package/dist/src/web-ui/app/components/conversation-view.js +10 -1
  318. package/dist/src/web-ui/app/components/dashboard/workspace.js +19 -7
  319. package/dist/src/web-ui/app/components/model-setup/rendering.js +99 -0
  320. package/dist/src/web-ui/app/components/model-setup/save-flow.js +111 -0
  321. package/dist/src/web-ui/app/components/model-setup/save-outcome.js +16 -0
  322. package/dist/src/web-ui/app/components/model-setup/validation.js +125 -0
  323. package/dist/src/web-ui/app/components/model-setup/wizard.d.ts +44 -0
  324. package/dist/src/web-ui/app/components/model-setup/wizard.js +370 -0
  325. package/dist/src/web-ui/app/components/plugins/manager.js +200 -0
  326. package/dist/src/web-ui/app/components/plugins/rendering.js +124 -0
  327. package/dist/src/web-ui/app/components/plugins/view-state.js +123 -0
  328. package/dist/src/web-ui/app/components/project-creation.js +119 -0
  329. package/dist/src/web-ui/app/components/project-session-groups.js +95 -0
  330. package/dist/src/web-ui/app/components/runtime-config-activation.js +83 -0
  331. package/dist/src/web-ui/app/components/runtime-setup/bridge-guide.d.ts +9 -0
  332. package/dist/src/web-ui/app/components/runtime-setup/bridge-guide.js +198 -0
  333. package/dist/src/web-ui/app/components/runtime-setup/bridge-rendering.js +107 -0
  334. package/dist/src/web-ui/app/components/runtime-setup/commands.js +54 -0
  335. package/dist/src/web-ui/app/components/runtime-setup/configuration-recovery.js +25 -0
  336. package/dist/src/web-ui/app/components/runtime-setup/connection-form.js +154 -0
  337. package/dist/src/web-ui/app/components/runtime-setup/connection-state.js +71 -0
  338. package/dist/src/web-ui/app/components/runtime-setup/context-window.js +18 -0
  339. package/dist/src/web-ui/app/components/runtime-setup/embedding-credential-status.d.ts +15 -0
  340. package/dist/src/web-ui/app/components/runtime-setup/embedding-credential-status.js +87 -0
  341. package/dist/src/web-ui/app/components/runtime-setup/embedding-provider-receipt.js +30 -0
  342. package/dist/src/web-ui/app/components/runtime-setup/embedding-rendering.js +57 -0
  343. package/dist/src/web-ui/app/components/runtime-setup/embedding.js +284 -0
  344. package/dist/src/web-ui/app/components/runtime-setup/optional-steps.js +117 -0
  345. package/dist/src/web-ui/app/components/runtime-setup/plugins.js +173 -0
  346. package/dist/src/web-ui/app/components/runtime-setup/rendering.js +141 -0
  347. package/dist/src/web-ui/app/components/runtime-setup/validation.js +69 -0
  348. package/dist/src/web-ui/app/components/runtime-setup/view-state.js +58 -0
  349. package/dist/src/web-ui/app/components/runtime-setup/wizard-shell.js +27 -0
  350. package/dist/src/web-ui/app/components/runtime-setup-guide.d.ts +66 -5
  351. package/dist/src/web-ui/app/components/runtime-setup-guide.js +415 -461
  352. package/dist/src/web-ui/app/components/system-host/download.js +38 -0
  353. package/dist/src/web-ui/app/components/system-host/manager.js +249 -0
  354. package/dist/src/web-ui/app/components/system-host/rendering.js +88 -0
  355. package/dist/src/web-ui/app/components/system-host/setup-notice.js +87 -0
  356. package/dist/src/web-ui/app/components/system-host/visibility.js +35 -0
  357. package/dist/src/web-ui/app/components/tool-approval-card.d.ts +4 -0
  358. package/dist/src/web-ui/app/components/tool-approval-card.js +15 -0
  359. package/dist/src/web-ui/app/configuration-environment-refresh.js +118 -0
  360. package/dist/src/web-ui/app/configuration-feature.js +125 -4
  361. package/dist/src/web-ui/app/controllers/app-event-bindings.js +2 -0
  362. package/dist/src/web-ui/app/controllers/composer-workspace-controller.d.ts +1 -0
  363. package/dist/src/web-ui/app/controllers/composer-workspace-controller.js +4 -3
  364. package/dist/src/web-ui/app/controllers/conversation-file-preview-controller.d.ts +24 -0
  365. package/dist/src/web-ui/app/controllers/conversation-file-preview-controller.js +158 -0
  366. package/dist/src/web-ui/app/controllers/conversation-file-preview-feature.d.ts +19 -0
  367. package/dist/src/web-ui/app/controllers/conversation-file-preview-feature.js +63 -0
  368. package/dist/src/web-ui/app/controllers/conversation-session-controller.d.ts +1 -0
  369. package/dist/src/web-ui/app/controllers/conversation-session-controller.js +2 -0
  370. package/dist/src/web-ui/app/controllers/conversation-view-feature.js +28 -0
  371. package/dist/src/web-ui/app/controllers/dashboard-controller.js +17 -0
  372. package/dist/src/web-ui/app/controllers/projects-controller.d.ts +45 -0
  373. package/dist/src/web-ui/app/controllers/projects-controller.js +278 -0
  374. package/dist/src/web-ui/app/controllers/realtime-event-controller.js +3 -0
  375. package/dist/src/web-ui/app/controllers/runtime-onboarding-controller.js +13 -6
  376. package/dist/src/web-ui/app/controllers/runtime-selection-controller.d.ts +7 -1
  377. package/dist/src/web-ui/app/controllers/runtime-selection-controller.js +11 -95
  378. package/dist/src/web-ui/app/controllers/session-controller.js +64 -57
  379. package/dist/src/web-ui/app/controllers/tool-permission-mode-controller.d.ts +20 -0
  380. package/dist/src/web-ui/app/controllers/tool-permission-mode-controller.js +116 -0
  381. package/dist/src/web-ui/app/dashboard-feature.js +32 -10
  382. package/dist/src/web-ui/app/index.html +44 -7
  383. package/dist/src/web-ui/app/lib/conversation-file-preview.d.ts +12 -0
  384. package/dist/src/web-ui/app/lib/conversation-file-reference.d.ts +30 -0
  385. package/dist/src/web-ui/app/lib/conversation-file-reference.js +66 -0
  386. package/dist/src/web-ui/app/lib/tool-activity-event.d.ts +2 -0
  387. package/dist/src/web-ui/app/lib/tool-activity-event.js +18 -6
  388. package/dist/src/web-ui/app/lib/tool-activity-model.d.ts +2 -0
  389. package/dist/src/web-ui/app/lib/tool-activity-model.js +4 -2
  390. package/dist/src/web-ui/app/lib/tool-permission-mode.d.ts +16 -0
  391. package/dist/src/web-ui/app/lib/tool-permission-mode.js +60 -0
  392. package/dist/src/web-ui/app/lib/tool-process-activity-fields.js +102 -0
  393. package/dist/src/web-ui/app/projects-feature.js +134 -0
  394. package/dist/src/web-ui/app/runtime-onboarding-feature.d.ts +34 -0
  395. package/dist/src/web-ui/app/runtime-onboarding-feature.js +92 -0
  396. package/dist/src/web-ui/app/runtime-setup-page-lifecycle.d.ts +5 -0
  397. package/dist/src/web-ui/app/runtime-setup-page-lifecycle.js +13 -0
  398. package/dist/src/web-ui/app/services/client-preferences.d.ts +24 -0
  399. package/dist/src/web-ui/app/services/client-preferences.js +32 -19
  400. package/dist/src/web-ui/app/services/runtime-web-client/configuration.js +46 -0
  401. package/dist/src/web-ui/app/services/runtime-web-client/conversation-files.d.ts +28 -0
  402. package/dist/src/web-ui/app/services/runtime-web-client/conversation-files.js +75 -0
  403. package/dist/src/web-ui/app/services/runtime-web-client/projects.d.ts +19 -0
  404. package/dist/src/web-ui/app/services/runtime-web-client/projects.js +34 -0
  405. package/dist/src/web-ui/app/services/runtime-web-client/system-host.js +27 -0
  406. package/dist/src/web-ui/app/services/runtime-web-client.d.ts +52 -0
  407. package/dist/src/web-ui/app/services/runtime-web-client.js +35 -4
  408. package/dist/src/web-ui/app/styles/13-projects.css +272 -0
  409. package/dist/src/web-ui/app/styles/18-dashboard.css +0 -5
  410. package/dist/src/web-ui/app/styles/19-runtime-setup.css +411 -0
  411. package/dist/src/web-ui/app/styles/20-chat-composer.css +0 -384
  412. package/dist/src/web-ui/app/styles/29-conversation-file-preview.css +254 -0
  413. package/dist/src/web-ui/app/styles/37-runtime-activation.css +26 -0
  414. package/dist/src/web-ui/app/styles/38-schedule-workspace.css +1 -10
  415. package/dist/src/web-ui/app/styles/41-plugin-management.css +351 -0
  416. package/dist/src/web-ui/app/styles/42-runtime-setup-plugins.css +179 -0
  417. package/dist/src/web-ui/app/styles/43-model-setup.css +73 -0
  418. package/dist/src/web-ui/app/styles/44-model-provider-cards.css +63 -0
  419. package/dist/src/web-ui/app/styles/45-bridge-setup.css +44 -0
  420. package/dist/src/web-ui/app/styles/46-system-host.css +132 -0
  421. package/dist/src/web-ui/app/styles.css +10 -0
  422. package/dist/src/web-ui/config-dashboard-backend.d.ts +5 -0
  423. package/dist/src/web-ui/config-dashboard-backend.js +94 -114
  424. package/dist/src/web-ui/config-dashboard-model-identity.d.ts +7 -0
  425. package/dist/src/web-ui/config-dashboard-model-identity.js +45 -0
  426. package/dist/src/web-ui/config-dashboard-save-transaction.d.ts +5 -0
  427. package/dist/src/web-ui/config-dashboard-save-transaction.js +21 -0
  428. package/dist/src/web-ui/environment-config.d.ts +17 -0
  429. package/dist/src/web-ui/environment-config.js +60 -0
  430. package/dist/src/web-ui/forwarded-loopback-policy.d.ts +2 -0
  431. package/dist/src/web-ui/forwarded-loopback-policy.js +14 -0
  432. package/dist/src/web-ui/local-runtime/api-router.d.ts +7 -0
  433. package/dist/src/web-ui/local-runtime/api-router.js +136 -12
  434. package/dist/src/web-ui/local-runtime/config-mutation-request.d.ts +8 -0
  435. package/dist/src/web-ui/local-runtime/config-mutation-request.js +55 -0
  436. package/dist/src/web-ui/local-runtime/configuration-activation-environments.d.ts +22 -0
  437. package/dist/src/web-ui/local-runtime/configuration-activation-environments.js +106 -0
  438. package/dist/src/web-ui/local-runtime/configuration-activation-source.d.ts +7 -0
  439. package/dist/src/web-ui/local-runtime/configuration-activation-source.js +36 -0
  440. package/dist/src/web-ui/local-runtime/configuration-activation.d.ts +20 -0
  441. package/dist/src/web-ui/local-runtime/configuration-activation.js +107 -0
  442. package/dist/src/web-ui/local-runtime/contracts.d.ts +8 -0
  443. package/dist/src/web-ui/local-runtime/conversation-file-access.d.ts +30 -0
  444. package/dist/src/web-ui/local-runtime/conversation-file-access.js +131 -0
  445. package/dist/src/web-ui/local-runtime/conversation-file-content.d.ts +21 -0
  446. package/dist/src/web-ui/local-runtime/conversation-file-content.js +75 -0
  447. package/dist/src/web-ui/local-runtime/conversation-file-format.d.ts +12 -0
  448. package/dist/src/web-ui/local-runtime/conversation-file-format.js +87 -0
  449. package/dist/src/web-ui/local-runtime/conversation-file-native-open.d.ts +10 -0
  450. package/dist/src/web-ui/local-runtime/conversation-file-native-open.js +94 -0
  451. package/dist/src/web-ui/local-runtime/conversation-file-native-request.d.ts +4 -0
  452. package/dist/src/web-ui/local-runtime/conversation-file-native-request.js +72 -0
  453. package/dist/src/web-ui/local-runtime/conversation-file-routes.d.ts +11 -0
  454. package/dist/src/web-ui/local-runtime/conversation-file-routes.js +105 -0
  455. package/dist/src/web-ui/local-runtime/conversation-file-target.d.ts +14 -0
  456. package/dist/src/web-ui/local-runtime/conversation-file-target.js +158 -0
  457. package/dist/src/web-ui/local-runtime/environment-registry.d.ts +14 -0
  458. package/dist/src/web-ui/local-runtime/environment-registry.js +121 -6
  459. package/dist/src/web-ui/local-runtime/memory-onboarding-routes.d.ts +2 -1
  460. package/dist/src/web-ui/local-runtime/memory-onboarding-routes.js +15 -10
  461. package/dist/src/web-ui/local-runtime/model-setup-catalog.d.ts +17 -0
  462. package/dist/src/web-ui/local-runtime/model-setup-catalog.js +45 -0
  463. package/dist/src/web-ui/local-runtime/model-setup-identity.d.ts +16 -0
  464. package/dist/src/web-ui/local-runtime/model-setup-identity.js +20 -0
  465. package/dist/src/web-ui/local-runtime/model-setup-input.d.ts +24 -0
  466. package/dist/src/web-ui/local-runtime/model-setup-input.js +107 -0
  467. package/dist/src/web-ui/local-runtime/model-setup-provider.d.ts +17 -0
  468. package/dist/src/web-ui/local-runtime/model-setup-provider.js +68 -0
  469. package/dist/src/web-ui/local-runtime/model-setup-retry.d.ts +14 -0
  470. package/dist/src/web-ui/local-runtime/model-setup-retry.js +47 -0
  471. package/dist/src/web-ui/local-runtime/model-setup-routes.d.ts +12 -0
  472. package/dist/src/web-ui/local-runtime/model-setup-routes.js +50 -0
  473. package/dist/src/web-ui/local-runtime/model-setup-service.d.ts +30 -0
  474. package/dist/src/web-ui/local-runtime/model-setup-service.js +93 -0
  475. package/dist/src/web-ui/local-runtime/model-setup-validation.d.ts +5 -0
  476. package/dist/src/web-ui/local-runtime/model-setup-validation.js +33 -0
  477. package/dist/src/web-ui/local-runtime/plugin-management-routes.d.ts +14 -0
  478. package/dist/src/web-ui/local-runtime/plugin-management-routes.js +50 -0
  479. package/dist/src/web-ui/local-runtime/project-routes.d.ts +17 -0
  480. package/dist/src/web-ui/local-runtime/project-routes.js +93 -0
  481. package/dist/src/web-ui/local-runtime/provider-credential-identity.d.ts +3 -0
  482. package/dist/src/web-ui/local-runtime/provider-credential-identity.js +18 -0
  483. package/dist/src/web-ui/local-runtime/request-execution.d.ts +1 -0
  484. package/dist/src/web-ui/local-runtime/request-execution.js +8 -0
  485. package/dist/src/web-ui/local-runtime/runtime-availability.js +36 -7
  486. package/dist/src/web-ui/local-runtime/runtime-setup-completion.d.ts +13 -0
  487. package/dist/src/web-ui/local-runtime/runtime-setup-completion.js +28 -0
  488. package/dist/src/web-ui/local-runtime/runtime-setup-connection-edit.d.ts +13 -0
  489. package/dist/src/web-ui/local-runtime/runtime-setup-connection-edit.js +110 -0
  490. package/dist/src/web-ui/local-runtime/runtime-setup-credential-completion.d.ts +4 -0
  491. package/dist/src/web-ui/local-runtime/runtime-setup-credential-completion.js +21 -0
  492. package/dist/src/web-ui/local-runtime/runtime-setup-credentials.d.ts +14 -0
  493. package/dist/src/web-ui/local-runtime/runtime-setup-credentials.js +148 -0
  494. package/dist/src/web-ui/local-runtime/runtime-setup-draft-recovery.d.ts +7 -0
  495. package/dist/src/web-ui/local-runtime/runtime-setup-draft-recovery.js +18 -0
  496. package/dist/src/web-ui/local-runtime/runtime-setup-draft.d.ts +21 -0
  497. package/dist/src/web-ui/local-runtime/runtime-setup-draft.js +105 -0
  498. package/dist/src/web-ui/local-runtime/runtime-setup-embedding-invalidation.d.ts +8 -0
  499. package/dist/src/web-ui/local-runtime/runtime-setup-embedding-invalidation.js +40 -0
  500. package/dist/src/web-ui/local-runtime/runtime-setup-environment-assignment.d.ts +1 -0
  501. package/dist/src/web-ui/local-runtime/runtime-setup-environment-assignment.js +27 -0
  502. package/dist/src/web-ui/local-runtime/runtime-setup-input.d.ts +19 -0
  503. package/dist/src/web-ui/local-runtime/runtime-setup-input.js +82 -0
  504. package/dist/src/web-ui/local-runtime/runtime-setup-model-file.d.ts +7 -0
  505. package/dist/src/web-ui/local-runtime/runtime-setup-model-file.js +35 -0
  506. package/dist/src/web-ui/local-runtime/runtime-setup-provider-ownership-recovery.d.ts +4 -0
  507. package/dist/src/web-ui/local-runtime/runtime-setup-provider-ownership-recovery.js +23 -0
  508. package/dist/src/web-ui/local-runtime/runtime-setup-provider-retention.d.ts +11 -0
  509. package/dist/src/web-ui/local-runtime/runtime-setup-provider-retention.js +31 -0
  510. package/dist/src/web-ui/local-runtime/runtime-setup-provider.d.ts +11 -0
  511. package/dist/src/web-ui/local-runtime/runtime-setup-provider.js +60 -0
  512. package/dist/src/web-ui/local-runtime/runtime-setup-receipt-file.d.ts +8 -0
  513. package/dist/src/web-ui/local-runtime/runtime-setup-receipt-file.js +77 -0
  514. package/dist/src/web-ui/local-runtime/runtime-setup-routes.d.ts +35 -0
  515. package/dist/src/web-ui/local-runtime/runtime-setup-routes.js +56 -0
  516. package/dist/src/web-ui/local-runtime/runtime-setup-scaffold.d.ts +17 -0
  517. package/dist/src/web-ui/local-runtime/runtime-setup-scaffold.js +229 -0
  518. package/dist/src/web-ui/local-runtime/runtime-setup-service.d.ts +65 -0
  519. package/dist/src/web-ui/local-runtime/runtime-setup-service.js +195 -0
  520. package/dist/src/web-ui/local-runtime/runtime-setup-validation.d.ts +8 -0
  521. package/dist/src/web-ui/local-runtime/runtime-setup-validation.js +35 -0
  522. package/dist/src/web-ui/local-runtime/saved-model-catalog.d.ts +3 -0
  523. package/dist/src/web-ui/local-runtime/saved-model-catalog.js +20 -0
  524. package/dist/src/web-ui/local-runtime/setup-embedding-input.d.ts +8 -0
  525. package/dist/src/web-ui/local-runtime/setup-embedding-input.js +71 -0
  526. package/dist/src/web-ui/local-runtime/setup-embedding-provider.d.ts +13 -0
  527. package/dist/src/web-ui/local-runtime/setup-embedding-provider.js +114 -0
  528. package/dist/src/web-ui/local-runtime/setup-embedding-routes.d.ts +12 -0
  529. package/dist/src/web-ui/local-runtime/setup-embedding-routes.js +53 -0
  530. package/dist/src/web-ui/local-runtime/setup-embedding-service.d.ts +32 -0
  531. package/dist/src/web-ui/local-runtime/setup-embedding-service.js +59 -0
  532. package/dist/src/web-ui/local-runtime-backend.d.ts +1 -0
  533. package/dist/src/web-ui/local-runtime-backend.js +3 -0
  534. package/dist/src/web-ui/plugin-capability-selection.d.ts +14 -0
  535. package/dist/src/web-ui/plugin-capability-selection.js +48 -0
  536. package/dist/src/web-ui/plugin-management-catalog.d.ts +26 -0
  537. package/dist/src/web-ui/plugin-management-catalog.js +56 -0
  538. package/dist/src/web-ui/plugin-management-selection.d.ts +16 -0
  539. package/dist/src/web-ui/plugin-management-selection.js +71 -0
  540. package/dist/src/web-ui/plugin-management-service.d.ts +29 -0
  541. package/dist/src/web-ui/plugin-management-service.js +150 -0
  542. package/dist/src/web-ui/request-authority.d.ts +8 -0
  543. package/dist/src/web-ui/request-authority.js +129 -0
  544. package/dist/src/web-ui/runtime-setup-gateway-address.d.ts +3 -0
  545. package/dist/src/web-ui/runtime-setup-gateway-address.js +26 -0
  546. package/dist/src/web-ui/runtime-setup-gateway.d.ts +29 -0
  547. package/dist/src/web-ui/runtime-setup-gateway.js +177 -0
  548. package/dist/src/web-ui/runtime-setup-shutdown.d.ts +2 -0
  549. package/dist/src/web-ui/runtime-setup-shutdown.js +20 -0
  550. package/dist/src/web-ui/server.d.ts +7 -14
  551. package/dist/src/web-ui/server.js +53 -63
  552. package/dist/src/web-ui/session-read-state/service.d.ts +12 -2
  553. package/dist/src/web-ui/system-host-service.d.ts +19 -0
  554. package/dist/src/web-ui/system-host-service.js +159 -0
  555. package/dist/src/web-ui/system-host-setup/companion-bundle.d.ts +2 -0
  556. package/dist/src/web-ui/system-host-setup/companion-bundle.js +12 -0
  557. package/dist/src/web-ui/system-host-setup/companion-macos.d.ts +2 -0
  558. package/dist/src/web-ui/system-host-setup/companion-macos.js +74 -0
  559. package/dist/src/web-ui/system-host-setup/companion-windows.d.ts +2 -0
  560. package/dist/src/web-ui/system-host-setup/companion-windows.js +105 -0
  561. package/dist/src/web-ui/system-host-setup/installer-contract.d.ts +18 -0
  562. package/dist/src/web-ui/system-host-setup/installer-contract.js +51 -0
  563. package/dist/src/web-ui/system-host-setup/installers.d.ts +6 -0
  564. package/dist/src/web-ui/system-host-setup/installers.js +30 -0
  565. package/dist/src/web-ui/system-host-setup/native-authorization.d.ts +3 -0
  566. package/dist/src/web-ui/system-host-setup/native-authorization.js +11 -0
  567. package/dist/src/web-ui/system-host-setup/node-distribution.d.ts +19 -0
  568. package/dist/src/web-ui/system-host-setup/node-distribution.js +9 -0
  569. package/dist/src/web-ui/system-host-setup/readiness.d.ts +18 -0
  570. package/dist/src/web-ui/system-host-setup/readiness.js +70 -0
  571. package/dist/src/web-ui/system-host-setup/routes.d.ts +20 -0
  572. package/dist/src/web-ui/system-host-setup/routes.js +121 -0
  573. package/dist/src/web-ui/system-host-setup/windows-script-wrapper.d.ts +2 -0
  574. package/dist/src/web-ui/system-host-setup/windows-script-wrapper.js +17 -0
  575. package/dist/src/web-ui/system-host-setup/wsl-interop-config.d.ts +3 -0
  576. package/dist/src/web-ui/system-host-setup/wsl-interop-config.js +67 -0
  577. package/dist/src/web-ui/system-host-setup/wsl-interop-windows.d.ts +1 -0
  578. package/dist/src/web-ui/system-host-setup/wsl-interop-windows.js +49 -0
  579. package/dist/src/web-ui/system-host-upgrade-authority.d.ts +5 -0
  580. package/dist/src/web-ui/system-host-upgrade-authority.js +13 -0
  581. package/docs/architecture.md +6 -1
  582. package/docs/installation.md +53 -17
  583. package/docs/known-limitations.md +14 -0
  584. package/docs/plugins.md +137 -26
  585. package/docs/projects-and-full-plus.md +218 -0
  586. package/docs/runtime-invariant-coverage.md +6 -3
  587. package/docs/runtime-prompt-policy-contracts.md +37 -5
  588. package/docs/runtime-public-contracts.md +17 -0
  589. package/package.json +5 -2
  590. package/plugins/exec/plugin.json +30 -9
  591. package/plugins/exec/skills/exec_process_skill/SKILL.md +1 -0
  592. package/plugins/exec/skills/exec_skill/SKILL.md +9 -10
  593. package/plugins/exec/source/handlers.ts +4 -38
  594. package/plugins/exec/source/paths.ts +53 -49
  595. package/plugins/exec/source/process-manager.ts +1 -20
  596. package/plugins/exec/source/shell-platform.ts +29 -0
  597. package/plugins/exec/source/types.ts +6 -4
  598. package/plugins/exec/source/validation.ts +33 -198
  599. package/plugins/exec/src/index.cjs +87 -222
  600. package/plugins/filesystem/plugin.json +1 -1
  601. package/plugins/filesystem/skills/dev_view_skill/SKILL.md +7 -0
  602. package/plugins/filesystem/source/atomic-write.ts +15 -3
  603. package/plugins/filesystem/source/bounded-io.ts +5 -99
  604. package/plugins/filesystem/source/dev-view.ts +2 -1
  605. package/plugins/filesystem/source/directory-authority-write.ts +68 -0
  606. package/plugins/filesystem/source/directory-sample-task.ts +23 -0
  607. package/plugins/filesystem/source/directory-sample.ts +132 -0
  608. package/plugins/filesystem/source/directory-write-task.ts +160 -0
  609. package/plugins/filesystem/source/edit-file.ts +3 -0
  610. package/plugins/filesystem/source/file-output-presentation.ts +42 -0
  611. package/plugins/filesystem/source/mutation-parent.ts +29 -9
  612. package/plugins/filesystem/source/view-locator.ts +141 -0
  613. package/plugins/filesystem/source/view-window.ts +12 -25
  614. package/plugins/filesystem/source/write-file.ts +8 -0
  615. package/plugins/filesystem/src/index.cjs +855 -153
  616. package/plugins/local-search/source/index.ts +2 -0
  617. package/plugins/local-search/source/paths.ts +30 -7
  618. package/plugins/local-search/source/ripgrep-process.ts +69 -0
  619. package/plugins/local-search/source/ripgrep.ts +19 -23
  620. package/plugins/local-search/src/index.cjs +295 -32
  621. package/plugins/system/plugin.json +374 -0
  622. package/plugins/system/skills/system_actions/SKILL.md +31 -0
  623. package/plugins/system/source/application-catalog.ts +237 -0
  624. package/plugins/system/source/application-launch.ts +113 -0
  625. package/plugins/system/source/application-observation.ts +78 -0
  626. package/plugins/system/source/commands.ts +106 -0
  627. package/plugins/system/source/companion/autostart.ts +185 -0
  628. package/plugins/system/source/companion/broker-client.ts +183 -0
  629. package/plugins/system/source/companion/broker-location.ts +89 -0
  630. package/plugins/system/source/companion/broker-server.ts +169 -0
  631. package/plugins/system/source/companion/connection.ts +211 -0
  632. package/plugins/system/source/companion/liveness.ts +23 -0
  633. package/plugins/system/source/companion/native-address.ts +55 -0
  634. package/plugins/system/source/companion/native-identity.ts +26 -0
  635. package/plugins/system/source/companion/native-messages.ts +100 -0
  636. package/plugins/system/source/companion/native-session.ts +268 -0
  637. package/plugins/system/source/companion/native-state.ts +135 -0
  638. package/plugins/system/source/companion/native-supervisor.ts +98 -0
  639. package/plugins/system/source/companion/pairing-store.ts +110 -0
  640. package/plugins/system/source/companion/private-store.ts +58 -0
  641. package/plugins/system/source/companion/process-owner-identity.ts +190 -0
  642. package/plugins/system/source/companion/protocol.ts +108 -0
  643. package/plugins/system/source/contracts.ts +44 -0
  644. package/plugins/system/source/elevation.ts +88 -0
  645. package/plugins/system/source/handlers.ts +120 -0
  646. package/plugins/system/source/host-dispatch.ts +106 -0
  647. package/plugins/system/source/host-evidence.ts +72 -0
  648. package/plugins/system/source/host-observation.ts +66 -0
  649. package/plugins/system/source/index.ts +8 -0
  650. package/plugins/system/source/process-result.ts +111 -0
  651. package/plugins/system/source/process-runner.ts +104 -0
  652. package/plugins/system/source/request-system-modules.ts +117 -0
  653. package/plugins/system/source/request-target-snapshot.ts +163 -0
  654. package/plugins/system/source/target-observation.ts +43 -0
  655. package/plugins/system/source/targets.ts +147 -0
  656. package/plugins/system/src/index.cjs +1730 -0
  657. package/src/runtime/README.md +36 -8
  658. package/src/runtime/local-host/README.md +7 -0
  659. package/dist/src/runtime/steps/planner-decision/capability-catalog-context.d.ts +0 -14
  660. package/dist/src/runtime/steps/planner-decision/capability-catalog-context.js +0 -87
@@ -0,0 +1,51 @@
1
+ import { isNativeLoopbackAddress } from "../../../plugins/system/source/companion/native-address.js";
2
+ export class InstallerInputError extends Error {
3
+ }
4
+ function hasLocalInstallerHost(hostname) {
5
+ if (hostname === "localhost")
6
+ return true;
7
+ if (hostname.endsWith(".localhost"))
8
+ return true;
9
+ return isNativeLoopbackAddress(hostname);
10
+ }
11
+ export function validateCompanionInstaller(input) {
12
+ if (!["windows", "macos"].includes(input.platform))
13
+ throw new InstallerInputError("Choose Windows or macOS.");
14
+ if (/[\x00-\x1f\x7f]/u.test(input.url))
15
+ throw new InstallerInputError("The Runtime origin must not contain control characters.");
16
+ let url;
17
+ try {
18
+ url = new URL(input.url);
19
+ }
20
+ catch {
21
+ throw new InstallerInputError("The setup address is not a valid Runtime origin.");
22
+ }
23
+ if (url.protocol !== "http:")
24
+ throw new InstallerInputError("Downloaded setup currently requires a local HTTP Runtime address. HTTPS setup is not supported; certificate verification is never disabled.");
25
+ if (url.username || url.password || url.search || url.hash || url.pathname !== "/")
26
+ throw new InstallerInputError("Use a Runtime origin without credentials, a path, query or fragment.");
27
+ if (!hasLocalInstallerHost(url.hostname))
28
+ throw new InstallerInputError("Setup can connect only to a Runtime on this computer's loopback interface.");
29
+ if (!/^[A-Za-z0-9_-]{43}$/u.test(input.code))
30
+ throw new InstallerInputError("The pairing code is invalid.");
31
+ if (!/^[a-f0-9]{64}$/iu.test(input.bundleSha256))
32
+ throw new InstallerInputError("The companion bundle checksum is invalid.");
33
+ if (!Number.isFinite(Date.parse(input.expiresAt)))
34
+ throw new InstallerInputError("The pairing expiration is invalid.");
35
+ return { ...input, url: url.origin, expiresAt: new Date(input.expiresAt).toISOString(), bundleSha256: input.bundleSha256.toLowerCase() };
36
+ }
37
+ export function validateWslDistribution(distribution) {
38
+ if (distribution === undefined)
39
+ return undefined;
40
+ if (!/^[A-Za-z0-9][A-Za-z0-9._ -]{0,127}$/u.test(distribution))
41
+ throw new InstallerInputError("The WSL distribution name is invalid.");
42
+ if (distribution.toLowerCase().startsWith("docker-desktop"))
43
+ throw new InstallerInputError("Docker Desktop internal distributions cannot be changed by this setup.");
44
+ return distribution;
45
+ }
46
+ export function installerMetadataBase64(value) {
47
+ return Buffer.from(JSON.stringify(value), "utf8").toString("base64");
48
+ }
49
+ export function shellString(value) {
50
+ return "'" + value.replaceAll("'", "'\"'\"'") + "'";
51
+ }
@@ -0,0 +1,6 @@
1
+ import { type CompanionInstallerInput, type InstallerDownload } from "./installer-contract.js";
2
+ export { InstallerInputError } from "./installer-contract.js";
3
+ export declare function renderCompanionInstaller(raw: CompanionInstallerInput): Promise<InstallerDownload>;
4
+ export declare function renderWslInteropInstaller(input: Readonly<{
5
+ distribution?: string;
6
+ }>): Promise<InstallerDownload>;
@@ -0,0 +1,30 @@
1
+ import JSZip from "jszip";
2
+ import { validateCompanionInstaller, validateWslDistribution, } from "./installer-contract.js";
3
+ import { renderWindowsCompanionScript } from "./companion-windows.js";
4
+ import { renderMacCompanionScript } from "./companion-macos.js";
5
+ import { renderWindowsWslInteropScript } from "./wsl-interop-windows.js";
6
+ export { InstallerInputError } from "./installer-contract.js";
7
+ export async function renderCompanionInstaller(raw) {
8
+ const input = validateCompanionInstaller(raw);
9
+ if (input.platform === "windows")
10
+ return {
11
+ filename: "ABot-Connect-Computer.cmd",
12
+ mimeType: "application/octet-stream",
13
+ contentBase64: Buffer.from(renderWindowsCompanionScript(input), "utf8").toString("base64"),
14
+ };
15
+ const zip = new JSZip();
16
+ zip.file("ABot-Connect-Computer.command", renderMacCompanionScript(input), { unixPermissions: 0o100755 });
17
+ return {
18
+ filename: "ABot-Connect-Computer-macOS.zip",
19
+ mimeType: "application/zip",
20
+ contentBase64: await zip.generateAsync({ type: "base64", platform: "UNIX", compression: "DEFLATE" }),
21
+ };
22
+ }
23
+ export async function renderWslInteropInstaller(input) {
24
+ const distribution = validateWslDistribution(input.distribution);
25
+ return {
26
+ filename: "ABot-Enable-WSL-Interop.cmd",
27
+ mimeType: "application/octet-stream",
28
+ contentBase64: Buffer.from(renderWindowsWslInteropScript(distribution), "utf8").toString("base64"),
29
+ };
30
+ }
@@ -0,0 +1,3 @@
1
+ import type { IncomingMessage } from "node:http";
2
+ /** Native downloads and sockets do not accept browser-origin credentials. */
3
+ export declare function hostBearerCredential(request: IncomingMessage): string | undefined;
@@ -0,0 +1,11 @@
1
+ /** Native downloads and sockets do not accept browser-origin credentials. */
2
+ export function hostBearerCredential(request) {
3
+ if (request.headers.origin !== undefined)
4
+ return undefined;
5
+ if (request.headers["sec-fetch-site"] !== undefined)
6
+ return undefined;
7
+ const header = request.headers.authorization;
8
+ if (typeof header !== "string")
9
+ return undefined;
10
+ return /^Bearer ([A-Za-z0-9_-]{43})$/u.exec(header)?.[1];
11
+ }
@@ -0,0 +1,19 @@
1
+ export declare const COMPANION_NODE_VERSION = "v24.21.0";
2
+ export declare const COMPANION_NODE_DISTRIBUTIONS: {
3
+ readonly "win-x64": {
4
+ readonly archive: "node-v24.21.0-win-x64.zip";
5
+ readonly sha256: "158f7685b44de51f6c0df1d153526cbcd3e1bc739a8dfc607721cef75de9e541";
6
+ };
7
+ readonly "win-arm64": {
8
+ readonly archive: "node-v24.21.0-win-arm64.zip";
9
+ readonly sha256: "8779b1bde1d39f8d420e3b57aa657b39891af434d3de44a919044cec06785921";
10
+ };
11
+ readonly "darwin-x64": {
12
+ readonly archive: "node-v24.21.0-darwin-x64.tar.gz";
13
+ readonly sha256: "1462cb3b3046b815cf8ea436d3da450ec1a9f11dac7e5a46b0ada5305d7e8097";
14
+ };
15
+ readonly "darwin-arm64": {
16
+ readonly archive: "node-v24.21.0-darwin-arm64.tar.gz";
17
+ readonly sha256: "bed7eea5325e1108f32ce5228ddd6a5f0f08a499ee42aa7442aea583702f6057";
18
+ };
19
+ };
@@ -0,0 +1,9 @@
1
+ // Verified 2026-09-18 against https://nodejs.org/dist/index.json and
2
+ // https://nodejs.org/dist/v24.21.0/SHASUMS256.txt. Keep updates explicit.
3
+ export const COMPANION_NODE_VERSION = "v24.21.0";
4
+ export const COMPANION_NODE_DISTRIBUTIONS = {
5
+ "win-x64": { archive: "node-v24.21.0-win-x64.zip", sha256: "158f7685b44de51f6c0df1d153526cbcd3e1bc739a8dfc607721cef75de9e541" },
6
+ "win-arm64": { archive: "node-v24.21.0-win-arm64.zip", sha256: "8779b1bde1d39f8d420e3b57aa657b39891af434d3de44a919044cec06785921" },
7
+ "darwin-x64": { archive: "node-v24.21.0-darwin-x64.tar.gz", sha256: "1462cb3b3046b815cf8ea436d3da450ec1a9f11dac7e5a46b0ada5305d7e8097" },
8
+ "darwin-arm64": { archive: "node-v24.21.0-darwin-arm64.tar.gz", sha256: "bed7eea5325e1108f32ce5228ddd6a5f0f08a499ee42aa7442aea583702f6057" },
9
+ };
@@ -0,0 +1,18 @@
1
+ import { type SystemHostFacts } from "../../../plugins/system/source/host-observation.js";
2
+ import { resolveSystemTarget } from "../../../plugins/system/source/targets.js";
3
+ import type { HostStatus } from "../../../plugins/system/source/companion/protocol.js";
4
+ export type HostSetupPlatform = "windows" | "macos";
5
+ export type HostReadiness = Readonly<{
6
+ ready: boolean;
7
+ route: "native" | "wsl_interop" | "companion" | "setup_required";
8
+ environment: "native" | "wsl" | "container";
9
+ platforms: readonly HostSetupPlatform[];
10
+ restartRequired: boolean;
11
+ distribution?: string;
12
+ message?: string;
13
+ }>;
14
+ export declare function readHostReadiness(status: HostStatus, dependencies?: {
15
+ facts?: SystemHostFacts;
16
+ distribution?: string;
17
+ resolveTarget?: typeof resolveSystemTarget;
18
+ }): Promise<HostReadiness>;
@@ -0,0 +1,70 @@
1
+ import { observeSystemHost, readSystemHostFacts, } from "../../../plugins/system/source/host-observation.js";
2
+ import { resolveSystemTarget } from "../../../plugins/system/source/targets.js";
3
+ function classifyHostEnvironment(facts) {
4
+ const observed = observeSystemHost(facts);
5
+ if (observed.environment === "container")
6
+ return "container";
7
+ if (observed.environment === "wsl_guest")
8
+ return "wsl";
9
+ return "native";
10
+ }
11
+ export async function readHostReadiness(status, dependencies = {}) {
12
+ const facts = dependencies.facts ?? readSystemHostFacts();
13
+ const observed = observeSystemHost(facts);
14
+ const environment = classifyHostEnvironment(facts);
15
+ if (status.paired)
16
+ return {
17
+ ready: status.connected,
18
+ route: "companion",
19
+ environment,
20
+ platforms: [],
21
+ restartRequired: false,
22
+ message: status.connected
23
+ ? "Connected computer is ready."
24
+ : "The paired computer is offline. Sign in on that computer to reconnect.",
25
+ };
26
+ if (environment === "container")
27
+ return {
28
+ ready: false,
29
+ route: "setup_required",
30
+ environment,
31
+ platforms: ["windows", "macos"],
32
+ restartRequired: false,
33
+ message: "Install the connection on the Windows or Mac computer running Docker.",
34
+ };
35
+ const target = environment === "wsl" ? "windows" : observed.runtimeOs;
36
+ const resolveTarget = dependencies.resolveTarget ?? resolveSystemTarget;
37
+ try {
38
+ if (target === "unsupported")
39
+ throw new Error("unsupported_native_platform");
40
+ await resolveTarget(target);
41
+ return {
42
+ ready: true,
43
+ route: environment === "wsl" ? "wsl_interop" : "native",
44
+ environment,
45
+ platforms: [],
46
+ restartRequired: false,
47
+ message: "Direct system access is ready. No additional installation is needed.",
48
+ };
49
+ }
50
+ catch {
51
+ if (environment === "wsl")
52
+ return {
53
+ ready: false,
54
+ route: "setup_required",
55
+ environment,
56
+ platforms: ["windows"],
57
+ restartRequired: true,
58
+ distribution: dependencies.distribution ?? process.env.WSL_DISTRO_NAME,
59
+ message: "Windows interop is unavailable. Open the Windows setup script. It enables access and automatically restarts the selected WSL distribution, interrupting its running services.",
60
+ };
61
+ return {
62
+ ready: false,
63
+ route: "setup_required",
64
+ environment,
65
+ platforms: [],
66
+ restartRequired: false,
67
+ message: "The native execution target is unavailable. Restore the operating system shell, then refresh status.",
68
+ };
69
+ }
70
+ }
@@ -0,0 +1,20 @@
1
+ import type { IncomingMessage, ServerResponse } from "node:http";
2
+ import type { HostPairingStore } from "../../../plugins/system/source/companion/pairing-store.js";
3
+ import type { HostReadiness } from "./readiness.js";
4
+ export declare function isHostSetupRoute(pathname: string): boolean;
5
+ export declare function sendHostSetupInputError(response: ServerResponse, error: unknown): boolean;
6
+ export type HostSetupRouteDependencies = {
7
+ store: HostPairingStore;
8
+ readiness(): Promise<HostReadiness>;
9
+ prepareCompanion(): Promise<void>;
10
+ bundleFile?: string;
11
+ };
12
+ /** GUI writes use same-origin JSON; native code downloads use the expiring setup grant. */
13
+ export declare class HostSetupRoutes {
14
+ private readonly dependencies;
15
+ constructor(dependencies: HostSetupRouteDependencies);
16
+ private bundle;
17
+ handle(request: IncomingMessage, response: ServerResponse, pathname: string): Promise<void>;
18
+ private downloadBundle;
19
+ private hasCurrentSetupGrant;
20
+ }
@@ -0,0 +1,121 @@
1
+ import { createHash } from "node:crypto";
2
+ import { readFile } from "node:fs/promises";
3
+ import { acceptConfigMutationRequest } from "../local-runtime/config-mutation-request.js";
4
+ import { readBody, sendJson } from "../local-runtime/http.js";
5
+ import { hostBearerCredential } from "./native-authorization.js";
6
+ import { renderCompanionInstaller, renderWslInteropInstaller } from "./installers.js";
7
+ import { InstallerInputError } from "./installer-contract.js";
8
+ import { readInstallerCompanionBundle } from "./companion-bundle.js";
9
+ const setupPath = "/web-api/runtime/system-host/setup";
10
+ const bundlePath = "/web-api/runtime/system-host/bundle";
11
+ export function isHostSetupRoute(pathname) {
12
+ return [setupPath, bundlePath].includes(pathname);
13
+ }
14
+ export function sendHostSetupInputError(response, error) {
15
+ if (!(error instanceof InstallerInputError))
16
+ return false;
17
+ sendJson(response, 400, { ok: false, error: "host_setup_input_rejected", message: error.message });
18
+ return true;
19
+ }
20
+ function isSetupPlatformRequest(value) {
21
+ if (!value || typeof value !== "object")
22
+ return false;
23
+ if (Array.isArray(value))
24
+ return false;
25
+ if (Object.keys(value).length !== 1)
26
+ return false;
27
+ const platform = value.platform;
28
+ return platform === "windows" || platform === "macos";
29
+ }
30
+ function requestRuntimeOrigin(request) {
31
+ const encrypted = "encrypted" in request.socket && request.socket.encrypted;
32
+ return new URL(`${encrypted ? "https" : "http"}://${request.headers.host}`).origin;
33
+ }
34
+ /** GUI writes use same-origin JSON; native code downloads use the expiring setup grant. */
35
+ export class HostSetupRoutes {
36
+ dependencies;
37
+ constructor(dependencies) {
38
+ this.dependencies = dependencies;
39
+ }
40
+ async bundle() {
41
+ if (this.dependencies.bundleFile)
42
+ return readFile(this.dependencies.bundleFile);
43
+ return readInstallerCompanionBundle();
44
+ }
45
+ async handle(request, response, pathname) {
46
+ if (pathname === bundlePath) {
47
+ await this.downloadBundle(request, response);
48
+ return;
49
+ }
50
+ if (request.method !== "POST") {
51
+ sendJson(response, 405, { ok: false, error: "method_not_allowed" });
52
+ return;
53
+ }
54
+ if (!acceptConfigMutationRequest(request, response))
55
+ return;
56
+ const raw = await readBody(request, { maxBytes: 1024 });
57
+ let input;
58
+ try {
59
+ input = JSON.parse(raw.toString());
60
+ }
61
+ catch { /* rejected below */ }
62
+ if (!isSetupPlatformRequest(input)) {
63
+ sendJson(response, 400, { ok: false, error: "invalid_host_setup_platform" });
64
+ return;
65
+ }
66
+ const readiness = await this.dependencies.readiness();
67
+ if (!readiness.platforms.includes(input.platform)) {
68
+ sendJson(response, 409, {
69
+ ok: false,
70
+ error: "host_setup_not_required",
71
+ message: readiness.message ?? "Refresh the computer connection status.",
72
+ });
73
+ return;
74
+ }
75
+ if (readiness.environment === "wsl") {
76
+ const installer = await renderWslInteropInstaller({ distribution: readiness.distribution });
77
+ sendJson(response, 200, { ok: true, ...installer, restartRequired: true });
78
+ return;
79
+ }
80
+ // Read and hash the exact running build before creating a setup grant.
81
+ const bundle = await this.bundle();
82
+ await this.dependencies.prepareCompanion();
83
+ const pairing = this.dependencies.store.begin(15 * 60_000);
84
+ const installer = await renderCompanionInstaller({
85
+ platform: input.platform,
86
+ url: requestRuntimeOrigin(request),
87
+ code: pairing.code,
88
+ expiresAt: pairing.expiresAt,
89
+ bundleSha256: createHash("sha256").update(bundle).digest("hex"),
90
+ });
91
+ sendJson(response, 200, {
92
+ ok: true,
93
+ ...installer,
94
+ expiresAt: pairing.expiresAt,
95
+ restartRequired: false,
96
+ });
97
+ }
98
+ async downloadBundle(request, response) {
99
+ if (request.method !== "GET") {
100
+ sendJson(response, 405, { ok: false, error: "method_not_allowed" });
101
+ return;
102
+ }
103
+ const credential = hostBearerCredential(request);
104
+ if (!this.hasCurrentSetupGrant(credential)) {
105
+ sendJson(response, 401, { ok: false, error: "host_setup_expired" });
106
+ return;
107
+ }
108
+ const bundle = await this.bundle();
109
+ response.writeHead(200, {
110
+ "content-type": "application/javascript; charset=utf-8",
111
+ "content-length": bundle.byteLength,
112
+ "x-content-type-options": "nosniff",
113
+ });
114
+ response.end(bundle);
115
+ }
116
+ hasCurrentSetupGrant(credential) {
117
+ if (!credential)
118
+ return false;
119
+ return this.dependencies.store.authenticate(credential) === "pairing";
120
+ }
121
+ }
@@ -0,0 +1,2 @@
1
+ /** The body is read from disk so ephemeral credentials never enter process argv. */
2
+ export declare function wrapWindowsSetupScript(script: string): string;
@@ -0,0 +1,17 @@
1
+ /** The body is read from disk so ephemeral credentials never enter process argv. */
2
+ export function wrapWindowsSetupScript(script) {
3
+ const marker = "#==ABOT-POWERSHELL==";
4
+ return [
5
+ "@echo off",
6
+ "setlocal DisableDelayedExpansion",
7
+ 'set "ABOT_SETUP_FILE=%~f0"',
8
+ `"%SystemRoot%\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -NoLogo -NoProfile -Command "$text = [IO.File]::ReadAllText($env:ABOT_SETUP_FILE); & ([ScriptBlock]::Create($text.Substring($text.LastIndexOf('${marker}') + ${marker.length})))"`,
9
+ 'set "ABOT_SETUP_RESULT=%ERRORLEVEL%"',
10
+ "echo.",
11
+ "pause",
12
+ "exit /b %ABOT_SETUP_RESULT%",
13
+ marker,
14
+ script,
15
+ "",
16
+ ].join("\r\n");
17
+ }
@@ -0,0 +1,3 @@
1
+ /** Update only active enabled entries inside interop sections, preserving other lines. */
2
+ export declare const WSL_INTEROP_AWK_PROGRAM: string;
3
+ export declare function renderWslInteropShell(): string;
@@ -0,0 +1,67 @@
1
+ /** Update only active enabled entries inside interop sections, preserving other lines. */
2
+ export const WSL_INTEROP_AWK_PROGRAM = String.raw `
3
+ function finishSection() {
4
+ if (inInterop && !hasEnabled) print "enabled=true"
5
+ }
6
+ {
7
+ normalized=$0
8
+ sub(/\r$/, "", normalized)
9
+ lowered=tolower(normalized)
10
+ if (lowered ~ /^[ \t]*\[/) {
11
+ finishSection()
12
+ inInterop=(lowered ~ /^[ \t]*\[interop\][ \t]*([#;].*)?$/)
13
+ if (inInterop) { seenInterop=1; hasEnabled=0 }
14
+ print $0
15
+ next
16
+ }
17
+ if (inInterop && lowered ~ /^[ \t]*enabled[ \t]*=/) {
18
+ hasEnabled=1
19
+ value=lowered
20
+ sub(/^[^=]*=[ \t]*/, "", value)
21
+ sub(/[ \t]*[#;].*$/, "", value)
22
+ sub(/[ \t]*$/, "", value)
23
+ if (value == "true") { print $0; next }
24
+ prefix=normalized
25
+ sub(/=.*/, "=", prefix)
26
+ suffix=normalized
27
+ if (match(suffix, /[#;]/)) suffix=" " substr(suffix, RSTART)
28
+ else suffix=""
29
+ print prefix "true" suffix
30
+ next
31
+ }
32
+ print $0
33
+ }
34
+ END {
35
+ finishSection()
36
+ if (!seenInterop) { print "[interop]"; print "enabled=true" }
37
+ }
38
+ `;
39
+ export function renderWslInteropShell() {
40
+ return `set -eu
41
+ config=/etc/wsl.conf
42
+ source=/dev/null
43
+ if [ -L "$config" ]; then echo 'Refusing to replace a linked /etc/wsl.conf.' >&2; exit 1; fi
44
+ if [ -e "$config" ] && [ ! -f "$config" ]; then echo '/etc/wsl.conf is not a regular file.' >&2; exit 1; fi
45
+ if [ -f "$config" ]; then
46
+ source="$config"
47
+ backup="$config.abot-before-$(date -u +%Y%m%dT%H%M%SZ)-$$"
48
+ cp -p "$config" "$backup"
49
+ printf 'Original configuration saved to %s\\n' "$backup"
50
+ fi
51
+ temporary=$(mktemp /etc/.abot-wsl-conf.XXXXXX)
52
+ trap 'rm -f "$temporary"' EXIT HUP INT TERM
53
+ awk '${WSL_INTEROP_AWK_PROGRAM}' "$source" > "$temporary"
54
+ if [ -f "$config" ]; then
55
+ chmod --reference="$config" "$temporary"
56
+ chown --reference="$config" "$temporary"
57
+ else
58
+ chmod 644 "$temporary"
59
+ fi
60
+ if [ -f "$config" ] && cmp -s "$config" "$temporary"; then
61
+ echo 'Interop configuration is already enabled.'
62
+ else
63
+ mv -f "$temporary" "$config"
64
+ echo 'Interop configuration enabled; the selected distribution must restart.'
65
+ fi
66
+ `;
67
+ }
@@ -0,0 +1 @@
1
+ export declare function renderWindowsWslInteropScript(distribution?: string): string;
@@ -0,0 +1,49 @@
1
+ import { installerMetadataBase64 } from "./installer-contract.js";
2
+ import { renderWslInteropShell } from "./wsl-interop-config.js";
3
+ import { wrapWindowsSetupScript } from "./windows-script-wrapper.js";
4
+ export function renderWindowsWslInteropScript(distribution) {
5
+ const metadata = installerMetadataBase64({ distribution });
6
+ const shell = Buffer.from(renderWslInteropShell(), "utf8").toString("base64");
7
+ return wrapWindowsSetupScript(String.raw `
8
+ $ErrorActionPreference = 'Stop'
9
+ $OutputEncoding = New-Object System.Text.UTF8Encoding($false)
10
+ $Metadata = [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String('${metadata}')) | ConvertFrom-Json
11
+ $Wsl = Join-Path $env:SystemRoot 'System32\wsl.exe'
12
+ try {
13
+ $Installed = @(& $Wsl --list --quiet)
14
+ if ($LASTEXITCODE -ne 0) { throw 'Windows could not list the installed WSL distributions.' }
15
+ $Distributions = @($Installed | ForEach-Object { $_.Replace([string][char]0, '').Trim() } | Where-Object { $_ -and -not $_.StartsWith('docker-desktop', [StringComparison]::OrdinalIgnoreCase) })
16
+ $Selected = $Metadata.distribution
17
+ if ($Selected) {
18
+ if (-not ($Distributions -ccontains $Selected)) { throw 'The requested WSL distribution is not installed with that exact name.' }
19
+ } elseif ($Distributions.Count -eq 1) {
20
+ $Selected = $Distributions[0]
21
+ } elseif ($Distributions.Count -gt 1) {
22
+ Write-Host 'Choose the WSL distribution used by ABot:'
23
+ for ($Index = 0; $Index -lt $Distributions.Count; $Index++) { Write-Host (($Index + 1).ToString() + '. ' + $Distributions[$Index]) }
24
+ $Choice = Read-Host 'Distribution number (Enter cancels)'
25
+ if (-not $Choice) { Write-Host 'Cancelled. No settings were changed.'; exit 0 }
26
+ $Number = 0
27
+ if (-not [int]::TryParse($Choice, [ref]$Number) -or $Number -lt 1 -or $Number -gt $Distributions.Count) { throw 'The distribution selection is invalid.' }
28
+ $Selected = $Distributions[$Number - 1]
29
+ } else { throw 'No supported WSL distribution is installed.' }
30
+ Write-Host ('This will enable Windows executable interoperability in ' + $Selected + '.')
31
+ Write-Host 'It preserves other WSL settings and saves the previous configuration.'
32
+ Write-Host ('Restarting ' + $Selected + ' will interrupt ALL apps and services in that distribution, including ABot. Other distributions will remain running.') -ForegroundColor Yellow
33
+ $ShellBase64 = '${shell}'
34
+ $ShellBase64 | & $Wsl --distribution $Selected --user root --exec /bin/sh -c "tr -d '\r\n' | base64 -d | /bin/sh"
35
+ if ($LASTEXITCODE -ne 0) { throw 'WSL configuration could not be updated. The distribution was not restarted.' }
36
+ & $Wsl --terminate $Selected
37
+ if ($LASTEXITCODE -ne 0) { throw 'The selected distribution did not stop. Its configuration is saved, but restart still needs to complete.' }
38
+ $PowerShell = Join-Path $env:SystemRoot 'System32\WindowsPowerShell\v1.0\powershell.exe'
39
+ $LinuxPowerShell = @(& $Wsl --distribution $Selected --exec wslpath -u $PowerShell)
40
+ if ($LASTEXITCODE -ne 0 -or $LinuxPowerShell.Count -ne 1) { throw 'The distribution restarted, but its Windows executable path could not be resolved.' }
41
+ $Probe = @(& $Wsl --distribution $Selected --exec ($LinuxPowerShell[0].Trim()) -NoLogo -NoProfile -NonInteractive -Command '[Environment]::OSVersion.Platform.ToString()')
42
+ if ($LASTEXITCODE -ne 0 -or ($Probe -join '').Trim() -ne 'Win32NT') { throw 'The distribution restarted, but actual Windows PowerShell execution is still unavailable.' }
43
+ Write-Host ('Verified: Windows PowerShell can run through ' + $Selected + '. Return to ABot and check again.')
44
+ } catch {
45
+ Write-Host ('WSL setup failed: ' + $_.Exception.Message) -ForegroundColor Red
46
+ exit 1
47
+ }
48
+ `);
49
+ }
@@ -0,0 +1,5 @@
1
+ import type { IncomingMessage } from "node:http";
2
+ import type { Duplex } from "node:stream";
3
+ /** Native upgrades retain credential authentication and never accept browser metadata. */
4
+ export declare function hasTrustedSystemHostUpgrade(request: IncomingMessage, listenHost: string): boolean;
5
+ export declare function rejectSystemHostUpgrade(socket: Duplex): void;
@@ -0,0 +1,13 @@
1
+ import { hasLoopbackRequestAuthority, hasTrustedWebUiAuthority, } from "./request-authority.js";
2
+ import { hostBearerCredential } from "./system-host-setup/native-authorization.js";
3
+ /** Native upgrades retain credential authentication and never accept browser metadata. */
4
+ export function hasTrustedSystemHostUpgrade(request, listenHost) {
5
+ if (!hostBearerCredential(request))
6
+ return false;
7
+ if (hasTrustedWebUiAuthority(request, listenHost))
8
+ return true;
9
+ return hasLoopbackRequestAuthority(request);
10
+ }
11
+ export function rejectSystemHostUpgrade(socket) {
12
+ socket.end("HTTP/1.1 401 Unauthorized\r\nConnection: close\r\nContent-Length: 0\r\n\r\n");
13
+ }
@@ -74,7 +74,12 @@ specific capability identity.
74
74
  Planner child-call commits are projected through the existing
75
75
  `planner.plan.*` event family. For client compatibility those payloads retain
76
76
  `stage=development_plan`, even though the runtime no longer has a Development
77
- loop. Tool execution keeps the existing `tool.*` event lifecycle.
77
+ loop. Execution Agent may explicitly adopt a returned Planner proposal and
78
+ report item statuses alongside an existing decision; its canonical root
79
+ record projects through that same event family. The model chooses progress,
80
+ and neither the advisory return nor a tool result automatically marks work
81
+ complete. Events remain presentation rather than execution evidence or a
82
+ second state store. Tool execution keeps the existing `tool.*` lifecycle.
78
83
 
79
84
  ## Configuration
80
85