@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
@@ -0,0 +1,144 @@
1
+ import { execFile } from "node:child_process";
2
+ import { readFile } from "node:fs/promises";
3
+ import { promisify } from "node:util";
4
+ const executeFile = promisify(execFile);
5
+ const WINDOWS_OWNER_SCRIPT = `
6
+ $ErrorActionPreference = 'Stop'
7
+ $targetPid = [int]$env:ABOT_HOST_OWNER_PID
8
+ $target = Get-Process -Id $targetPid -ErrorAction Stop
9
+ $started = $target.StartTime.ToUniversalTime().Ticks
10
+ $booted = (Get-CimInstance Win32_OperatingSystem -ErrorAction Stop).LastBootUpTime.ToUniversalTime().Ticks
11
+ [Console]::Out.Write([string]$booted + '|' + [string]$started)
12
+ `;
13
+ function isProcessId(pid) {
14
+ if (!Number.isSafeInteger(pid))
15
+ return false;
16
+ return pid > 0;
17
+ }
18
+ function isUuid(value) {
19
+ return /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/iu.test(value);
20
+ }
21
+ function observePidLiveness(pid) {
22
+ if (!isProcessId(pid))
23
+ return false;
24
+ try {
25
+ process.kill(pid, 0);
26
+ return true;
27
+ }
28
+ catch (error) {
29
+ if (!error || typeof error !== "object" || !("code" in error))
30
+ return true;
31
+ return error.code !== "ESRCH";
32
+ }
33
+ }
34
+ async function linuxIdentity(pid, dependencies) {
35
+ const [bootText, processText] = await Promise.all([
36
+ dependencies.readText("/proc/sys/kernel/random/boot_id"),
37
+ dependencies.readText(`/proc/${pid}/stat`),
38
+ ]);
39
+ const boot = bootText.trim();
40
+ if (!isUuid(boot))
41
+ return undefined;
42
+ if (!processText.startsWith(`${pid} (`))
43
+ return undefined;
44
+ const commandEnd = processText.lastIndexOf(") ");
45
+ if (commandEnd < 0)
46
+ return undefined;
47
+ // After the final command-name parenthesis, index zero is stat field 3.
48
+ const startTicks = processText
49
+ .slice(commandEnd + 2)
50
+ .trim()
51
+ .split(/\s+/u)[19];
52
+ if (!startTicks || !/^\d+$/u.test(startTicks))
53
+ return undefined;
54
+ return `linux:${boot.toLowerCase()}:${startTicks}`;
55
+ }
56
+ function commandOptions(pid) {
57
+ return {
58
+ env: {
59
+ ...process.env,
60
+ ABOT_HOST_OWNER_PID: String(pid),
61
+ LC_ALL: "C",
62
+ TZ: "UTC",
63
+ },
64
+ windowsHide: true,
65
+ timeout: 5_000,
66
+ maxBuffer: 4_096,
67
+ };
68
+ }
69
+ async function windowsIdentity(pid, dependencies) {
70
+ const text = await dependencies.execute("powershell.exe", [
71
+ "-NoProfile",
72
+ "-NonInteractive",
73
+ "-EncodedCommand",
74
+ Buffer.from(WINDOWS_OWNER_SCRIPT, "utf16le").toString("base64"),
75
+ ], commandOptions(pid));
76
+ const value = text.trim();
77
+ if (!/^\d{10,20}\|\d{10,20}$/u.test(value))
78
+ return undefined;
79
+ return `windows:${value}`;
80
+ }
81
+ async function macIdentity(pid, dependencies) {
82
+ const [bootText, startedText] = await Promise.all([
83
+ dependencies.execute("/usr/sbin/sysctl", ["-n", "kern.bootsessionuuid"], commandOptions(pid)),
84
+ dependencies.execute("/bin/ps", ["-p", String(pid), "-o", "lstart="], commandOptions(pid)),
85
+ ]);
86
+ const boot = bootText.trim();
87
+ const started = startedText.trim().replace(/\s+/gu, " ");
88
+ if (!isUuid(boot))
89
+ return undefined;
90
+ if (!/^[A-Za-z]{3} [A-Za-z]{3} \d{1,2} \d{2}:\d{2}:\d{2} \d{4}$/u.test(started))
91
+ return undefined;
92
+ return `macos:${boot.toLowerCase()}:${started}`;
93
+ }
94
+ export function createProcessOwnerIdentityProbe(dependencies) {
95
+ async function readProcessOwnerIdentity(pid) {
96
+ if (!isProcessId(pid))
97
+ return undefined;
98
+ try {
99
+ if (dependencies.platform === "linux")
100
+ return await linuxIdentity(pid, dependencies);
101
+ if (dependencies.platform === "win32")
102
+ return await windowsIdentity(pid, dependencies);
103
+ if (dependencies.platform === "darwin")
104
+ return await macIdentity(pid, dependencies);
105
+ return undefined;
106
+ }
107
+ catch {
108
+ return undefined;
109
+ }
110
+ }
111
+ async function isProcessOwnerAlive(pid, ownerIdentity) {
112
+ if (!isProcessId(pid))
113
+ return false;
114
+ if (!dependencies.processIsAlive(pid))
115
+ return false;
116
+ if (!ownerIdentity)
117
+ return true;
118
+ const observed = await readProcessOwnerIdentity(pid);
119
+ if (!observed)
120
+ return true;
121
+ return ownerIdentity === observed;
122
+ }
123
+ async function requireCurrentProcessOwnerIdentity() {
124
+ const identity = await readProcessOwnerIdentity(dependencies.currentPid);
125
+ if (!identity)
126
+ throw new Error("The host companion could not establish this process's OS identity; its ownership lock was not acquired.");
127
+ return identity;
128
+ }
129
+ return {
130
+ readProcessOwnerIdentity,
131
+ isProcessOwnerAlive,
132
+ requireCurrentProcessOwnerIdentity,
133
+ };
134
+ }
135
+ const nativeProbe = createProcessOwnerIdentityProbe({
136
+ platform: process.platform,
137
+ currentPid: process.pid,
138
+ readText: (path) => readFile(path, "utf8"),
139
+ execute: async (file, args, options) => (await executeFile(file, [...args], options)).stdout,
140
+ processIsAlive: observePidLiveness,
141
+ });
142
+ export const readProcessOwnerIdentity = nativeProbe.readProcessOwnerIdentity;
143
+ export const isProcessOwnerAlive = nativeProbe.isProcessOwnerAlive;
144
+ export const requireCurrentProcessOwnerIdentity = nativeProbe.requireCurrentProcessOwnerIdentity;
@@ -0,0 +1,57 @@
1
+ import type { ToolImplementationOutput } from "../../../../src/plugin-sdk/index.js";
2
+ export declare const HOST_PROTOCOL_VERSION = 1;
3
+ export declare const HOST_SOCKET_PATH = "/system-host/connect";
4
+ export declare const HOST_WIRE_MAX_BYTES: number;
5
+ export declare const HOST_OPERATIONS: readonly ["system_targets", "system_command", "system_applications", "system_launch"];
6
+ export type HostOperation = (typeof HOST_OPERATIONS)[number];
7
+ export type HostIdentity = Readonly<{
8
+ name: string;
9
+ os: "windows" | "macos" | "linux";
10
+ user: string;
11
+ homeDir: string;
12
+ }>;
13
+ export type HostStatus = Readonly<{
14
+ paired: boolean;
15
+ hostId?: string;
16
+ identity?: HostIdentity;
17
+ } & ({
18
+ connected: true;
19
+ connectionId: string;
20
+ } | {
21
+ connected: false;
22
+ connectionId?: never;
23
+ })>;
24
+ export type HostAgentHello = Readonly<{
25
+ type: "hello";
26
+ version: 1;
27
+ identity: HostIdentity;
28
+ hostId?: string;
29
+ }>;
30
+ export type HostAgentMessage = HostAgentHello | Readonly<{
31
+ type: "result";
32
+ id: string;
33
+ result: ToolImplementationOutput;
34
+ }>;
35
+ export type HostServerMessage = Readonly<{
36
+ type: "paired";
37
+ hostId: string;
38
+ credential: string;
39
+ }> | Readonly<{
40
+ type: "ready";
41
+ hostId: string;
42
+ }> | Readonly<{
43
+ type: "execute";
44
+ id: string;
45
+ hostId: string;
46
+ operation: HostOperation;
47
+ params: Record<string, unknown>;
48
+ }> | Readonly<{
49
+ type: "cancel";
50
+ id: string;
51
+ }>;
52
+ export declare function isHostOperation(value: unknown): value is HostOperation;
53
+ export declare function isHostRecord(value: unknown): value is Record<string, unknown>;
54
+ export declare function isHostIdentifier(value: unknown): value is string;
55
+ export declare function isHostIdentity(value: unknown): value is HostIdentity;
56
+ export declare function hasMatchingHostIdentity(a: HostIdentity, b: HostIdentity): boolean;
57
+ export declare function isHostToolResult(value: unknown): value is ToolImplementationOutput;
@@ -0,0 +1,66 @@
1
+ export const HOST_PROTOCOL_VERSION = 1;
2
+ export const HOST_SOCKET_PATH = "/system-host/connect";
3
+ export const HOST_WIRE_MAX_BYTES = 256 * 1024;
4
+ export const HOST_OPERATIONS = [
5
+ "system_targets",
6
+ "system_command",
7
+ "system_applications",
8
+ "system_launch",
9
+ ];
10
+ export function isHostOperation(value) {
11
+ return HOST_OPERATIONS.some((operation) => operation === value);
12
+ }
13
+ export function isHostRecord(value) {
14
+ if (value === null)
15
+ return false;
16
+ if (typeof value !== "object")
17
+ return false;
18
+ return !Array.isArray(value);
19
+ }
20
+ export function isHostIdentifier(value) {
21
+ if (typeof value !== "string")
22
+ return false;
23
+ return /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/u.test(value);
24
+ }
25
+ function isHostIdentityText(value, maximum) {
26
+ if (typeof value !== "string")
27
+ return false;
28
+ if (value.length === 0)
29
+ return false;
30
+ if (value.length > maximum)
31
+ return false;
32
+ return !/[\x00-\x1f\x7f]/u.test(value);
33
+ }
34
+ export function isHostIdentity(value) {
35
+ if (!isHostRecord(value))
36
+ return false;
37
+ if (Object.keys(value).some((key) => !["name", "os", "user", "homeDir"].includes(key)))
38
+ return false;
39
+ if (!["windows", "macos", "linux"].includes(String(value.os)))
40
+ return false;
41
+ if (!isHostIdentityText(value.name, 128))
42
+ return false;
43
+ if (!isHostIdentityText(value.user, 128))
44
+ return false;
45
+ return isHostIdentityText(value.homeDir, 4096);
46
+ }
47
+ export function hasMatchingHostIdentity(a, b) {
48
+ if (a.name !== b.name)
49
+ return false;
50
+ if (a.os !== b.os)
51
+ return false;
52
+ if (a.user !== b.user)
53
+ return false;
54
+ return a.homeDir === b.homeDir;
55
+ }
56
+ export function isHostToolResult(value) {
57
+ if (!isHostRecord(value))
58
+ return false;
59
+ if (typeof value.ok !== "boolean")
60
+ return false;
61
+ if (typeof value.producedNewInformation !== "boolean")
62
+ return false;
63
+ if (value.data !== undefined && !isHostRecord(value.data))
64
+ return false;
65
+ return typeof value.output === "string";
66
+ }
@@ -0,0 +1,38 @@
1
+ export type SystemTargetId = "linux" | "macos" | "windows";
2
+ export type SystemTarget = Readonly<{
3
+ id: SystemTargetId;
4
+ transport: "native" | "wsl_interop";
5
+ shell: string;
6
+ }>;
7
+ export type SystemProcessInput = Readonly<{
8
+ executable: string;
9
+ args: readonly string[];
10
+ cwd?: string;
11
+ timeoutMs?: number;
12
+ outputMaxChars?: number;
13
+ abortSignal?: AbortSignal;
14
+ }>;
15
+ export type SystemSpawnObservation = Readonly<{
16
+ pid: number;
17
+ pidNamespace: "runtime_os";
18
+ executable: string;
19
+ identitySource: "spawn_arguments";
20
+ }>;
21
+ export type SystemProcessResult = Readonly<{
22
+ exitCode: number | null;
23
+ stdout: string;
24
+ stderr: string;
25
+ status: "completed" | "timeout" | "aborted" | "spawn_failed";
26
+ outputTruncated: boolean;
27
+ spawnedProcess?: SystemSpawnObservation;
28
+ }>;
29
+ export type SystemProcessRunner = (input: SystemProcessInput) => Promise<SystemProcessResult>;
30
+ export type SystemApplication = Readonly<{
31
+ id: string;
32
+ name: string;
33
+ target: SystemTargetId;
34
+ }>;
35
+ export declare class SystemOperationError extends Error {
36
+ readonly code: string;
37
+ constructor(code: string, message: string);
38
+ }
@@ -0,0 +1,7 @@
1
+ export class SystemOperationError extends Error {
2
+ code;
3
+ constructor(code, message) {
4
+ super(message);
5
+ this.code = code;
6
+ }
7
+ }
@@ -0,0 +1,8 @@
1
+ import { type SystemProcessInput, type SystemProcessRunner, type SystemTarget } from "./contracts.js";
2
+ /** Resolve real native authority. Missing human authorization is an explicit result. */
3
+ export declare function elevatedSystemCommand(input: {
4
+ target: SystemTarget;
5
+ command: string;
6
+ cwd: string;
7
+ run: SystemProcessRunner;
8
+ }): Promise<SystemProcessInput>;
@@ -0,0 +1,57 @@
1
+ import { SystemOperationError, } from "./contracts.js";
2
+ import { powershellArguments, shellLiteral, windowsSystemCommandScript, } from "./targets.js";
3
+ const WINDOWS_ADMIN_PROBE = "([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)";
4
+ /** Resolve real native authority. Missing human authorization is an explicit result. */
5
+ export async function elevatedSystemCommand(input) {
6
+ const { target, command, cwd, run } = input;
7
+ if (target.id === "windows")
8
+ return windowsElevatedCommand(target, command, cwd, run);
9
+ if (process.getuid?.() === 0)
10
+ return { executable: target.shell, args: ["-lc", command], cwd };
11
+ if (target.id === "macos") {
12
+ const script = `cd ${shellLiteral(cwd)} && ${shellLiteral(target.shell)} -lc ${shellLiteral(command)}`;
13
+ const appleScriptString = JSON.stringify(script);
14
+ return {
15
+ executable: "/usr/bin/osascript",
16
+ args: [
17
+ "-e",
18
+ `do shell script ${appleScriptString} with administrator privileges`,
19
+ ],
20
+ };
21
+ }
22
+ const probe = await run({
23
+ executable: "/usr/bin/sudo",
24
+ args: ["-n", "--", "/usr/bin/true"],
25
+ timeoutMs: 5_000,
26
+ });
27
+ if (!hasSuccessfulPrivilegeProbe(probe))
28
+ throw new SystemOperationError("system_authorization_required", "Linux sudo authorization requires a human or a configured native privilege policy. Authenticate in a native terminal or supply an authorized host; ABot does not request, invent or bypass passwords.");
29
+ return {
30
+ executable: "/usr/bin/sudo",
31
+ args: ["-n", "--", target.shell, "-lc", command],
32
+ cwd,
33
+ };
34
+ }
35
+ function hasSuccessfulPrivilegeProbe(probe) {
36
+ if (probe.status !== "completed")
37
+ return false;
38
+ return probe.exitCode === 0;
39
+ }
40
+ function hasWindowsAdministratorAuthority(probe) {
41
+ if (!hasSuccessfulPrivilegeProbe(probe))
42
+ return false;
43
+ return probe.stdout.trim() === "True";
44
+ }
45
+ async function windowsElevatedCommand(target, command, cwd, run) {
46
+ const probe = await run({
47
+ executable: target.shell,
48
+ args: powershellArguments(WINDOWS_ADMIN_PROBE),
49
+ timeoutMs: 5_000,
50
+ });
51
+ if (!hasWindowsAdministratorAuthority(probe))
52
+ throw new SystemOperationError("system_authorization_required", "Windows Administrator authority is required. Approve UAC in a native Windows elevated host, then retry; this noninteractive transport cannot answer UAC or provide credentials.");
53
+ return {
54
+ executable: target.shell,
55
+ args: powershellArguments(windowsSystemCommandScript(command, cwd)),
56
+ };
57
+ }
@@ -0,0 +1,3 @@
1
+ import { type ToolImplementation } from "../../../src/plugin-sdk/index.js";
2
+ import { type SystemProcessRunner, type SystemTarget, type SystemTargetId } from "./contracts.js";
3
+ export declare function createSystemHandlers(run?: SystemProcessRunner, resolveTarget?: (id: SystemTargetId) => Promise<SystemTarget>): Record<string, ToolImplementation>;
@@ -0,0 +1,90 @@
1
+ import { failureFromError, failureResult, readBoundedInteger, readOptionalString, successResult, } from "../../../src/plugin-sdk/index.js";
2
+ import { readSystemApplications } from "./application-catalog.js";
3
+ import { systemApplicationObservation } from "./application-observation.js";
4
+ import { observeSystemTargets } from "./target-observation.js";
5
+ import { launchSystemApplication } from "./application-launch.js";
6
+ import { executeSystemCommand } from "./commands.js";
7
+ import { SystemOperationError, } from "./contracts.js";
8
+ import { runSystemProcess } from "./process-runner.js";
9
+ import { systemProcessResult } from "./process-result.js";
10
+ import { readSystemTargetId, resolveSystemTarget } from "./targets.js";
11
+ function withSystemOperationErrors(operation) {
12
+ return async (params, context) => {
13
+ try {
14
+ return await operation(params, context);
15
+ }
16
+ catch (error) {
17
+ if (error instanceof SystemOperationError)
18
+ return failureResult({
19
+ errorCode: error.code,
20
+ message: error.message,
21
+ data: {
22
+ humanActionRequired: error.code === "system_authorization_required",
23
+ },
24
+ });
25
+ return failureFromError(error, {
26
+ fallbackCode: "system_operation_failed",
27
+ fallbackMessage: "The native system operation failed.",
28
+ operation: "system",
29
+ });
30
+ }
31
+ };
32
+ }
33
+ export function createSystemHandlers(run = runSystemProcess, resolveTarget = (id) => resolveSystemTarget(id, run)) {
34
+ const targets = async () => {
35
+ const observation = await observeSystemTargets(run);
36
+ return successResult({
37
+ output: JSON.stringify(observation),
38
+ data: {
39
+ ...observation,
40
+ observationMeta: { kind: "volatile_external", carryPolicy: "never" },
41
+ },
42
+ });
43
+ };
44
+ const command = async (params, context) => {
45
+ const target = await resolveTarget(readSystemTargetId(params.target));
46
+ const result = await executeSystemCommand({
47
+ target,
48
+ params,
49
+ run,
50
+ ...(context?.abortSignal ? { abortSignal: context.abortSignal } : {}),
51
+ });
52
+ return systemProcessResult(target, result, "command_process_completion");
53
+ };
54
+ const applications = async (params) => {
55
+ const target = await resolveTarget(readSystemTargetId(params.target));
56
+ const query = (readOptionalString(params.query) ?? "").toLowerCase();
57
+ const limit = params.limit === undefined
58
+ ? 50
59
+ : readBoundedInteger(params.limit, {
60
+ name: "limit",
61
+ minimum: 1,
62
+ maximum: 100,
63
+ });
64
+ const catalog = await readSystemApplications(target, run);
65
+ const { output, data } = systemApplicationObservation(target, catalog, query, limit);
66
+ return successResult({
67
+ output,
68
+ data: {
69
+ ...data,
70
+ observationMeta: { kind: "volatile_external", carryPolicy: "never" },
71
+ },
72
+ });
73
+ };
74
+ const launch = async (params, context) => {
75
+ const target = await resolveTarget(readSystemTargetId(params.target));
76
+ const result = await launchSystemApplication({
77
+ target,
78
+ params,
79
+ run,
80
+ ...(context?.abortSignal ? { abortSignal: context.abortSignal } : {}),
81
+ });
82
+ return systemProcessResult(target, result.process, "launch_request_dispatch", result.application);
83
+ };
84
+ return {
85
+ system_targets: withSystemOperationErrors(targets),
86
+ system_command: withSystemOperationErrors(command),
87
+ system_applications: withSystemOperationErrors(applications),
88
+ system_launch: withSystemOperationErrors(launch),
89
+ };
90
+ }
@@ -0,0 +1,4 @@
1
+ import { type ToolImplementationOutput } from "../../../src/plugin-sdk/index.js";
2
+ import { type HostIdentity } from "./companion/protocol.js";
3
+ /** Preserve execution provenance without publishing private connection identity. */
4
+ export declare function attachHostEvidence(result: ToolImplementationOutput, _hostId: string, identity: HostIdentity): ToolImplementationOutput;
@@ -0,0 +1,52 @@
1
+ import { enforcePluginResultByteBudget, } from "../../../src/plugin-sdk/index.js";
2
+ import { isHostRecord } from "./companion/protocol.js";
3
+ /** Preserve execution provenance without publishing private connection identity. */
4
+ export function attachHostEvidence(result, _hostId, identity) {
5
+ const data = modelSafeHostResultData(result.data ?? {});
6
+ const output = describeCompanionProcessNamespace(result.output, data.spawnedProcess);
7
+ return enforcePluginResultByteBudget({
8
+ ...result,
9
+ output: [
10
+ `Execution transport: host_companion; OS target: ${identity.os}.`,
11
+ "This is settled evidence from the selected host, not the runtime/container. A connection or dispatched process does not prove an application window or requested system effect.",
12
+ output,
13
+ ].join("\n"),
14
+ data: {
15
+ ...data,
16
+ ...(typeof data.transport === "string"
17
+ ? { nativeTransport: data.transport }
18
+ : {}),
19
+ transport: "host_companion",
20
+ ...(isHostRecord(data.spawnedProcess)
21
+ ? {
22
+ spawnedProcess: {
23
+ ...data.spawnedProcess,
24
+ pidNamespace: "companion_os",
25
+ },
26
+ }
27
+ : {}),
28
+ },
29
+ });
30
+ }
31
+ function modelSafeHostResultData(data) {
32
+ const privateFields = new Set([
33
+ "hostId",
34
+ "host_id",
35
+ "connectionId",
36
+ "hostIdentity",
37
+ "companion",
38
+ "targetSelection",
39
+ ]);
40
+ return Object.fromEntries(Object.entries(data).filter(([key]) => !privateFields.has(key)));
41
+ }
42
+ function describeCompanionProcessNamespace(output, spawnedProcess) {
43
+ if (!isHostRecord(spawnedProcess))
44
+ return output;
45
+ const excerptBoundary = output.indexOf("\nSTDOUT excerpt:");
46
+ if (excerptBoundary < 0)
47
+ return output;
48
+ const header = output.slice(0, excerptBoundary);
49
+ const streams = output.slice(excerptBoundary);
50
+ return (header.replace(" in runtime OS namespace.", " in companion OS namespace.") +
51
+ streams);
52
+ }
@@ -0,0 +1,25 @@
1
+ import type { SystemTargetId } from "./contracts.js";
2
+ export type SystemHostFacts = Readonly<{
3
+ platform: NodeJS.Platform;
4
+ kernelRelease: string;
5
+ containerMarker?: boolean;
6
+ }>;
7
+ export declare function readSystemHostFacts(): SystemHostFacts;
8
+ export declare function isWslHostRuntime(facts: SystemHostFacts): boolean;
9
+ export declare function observeSystemHost(facts?: SystemHostFacts): {
10
+ readonly runtimeOs: "unsupported" | SystemTargetId;
11
+ readonly kernelRelease: string;
12
+ readonly environment: "container";
13
+ readonly inferredHostOs: "unknown";
14
+ readonly hostInferenceSource: "container_marker";
15
+ readonly windowsExecutionRequiresProbe: false;
16
+ readonly guiSessionStatus: "not_checked";
17
+ } | {
18
+ readonly runtimeOs: "unsupported" | SystemTargetId;
19
+ readonly kernelRelease: string;
20
+ readonly environment: "wsl_guest" | "not_identified_as_wsl";
21
+ readonly inferredHostOs: "unsupported" | SystemTargetId;
22
+ readonly hostInferenceSource: "wsl_kernel_signature" | "runtime_platform_only";
23
+ readonly windowsExecutionRequiresProbe: boolean;
24
+ readonly guiSessionStatus: "not_checked";
25
+ };
@@ -0,0 +1,59 @@
1
+ import { existsSync } from "node:fs";
2
+ import { release } from "node:os";
3
+ export function readSystemHostFacts() {
4
+ return {
5
+ platform: process.platform,
6
+ kernelRelease: release(),
7
+ containerMarker: hasSystemContainerMarker(),
8
+ };
9
+ }
10
+ function hasSystemContainerMarker() {
11
+ if (existsSync("/.dockerenv"))
12
+ return true;
13
+ return existsSync("/run/.containerenv");
14
+ }
15
+ function isContainerHostRuntime(facts) {
16
+ if (facts.platform !== "linux")
17
+ return false;
18
+ return facts.containerMarker === true;
19
+ }
20
+ export function isWslHostRuntime(facts) {
21
+ if (facts.platform !== "linux")
22
+ return false;
23
+ if (isContainerHostRuntime(facts))
24
+ return false;
25
+ return /microsoft/iu.test(facts.kernelRelease);
26
+ }
27
+ function runtimeOs(platform) {
28
+ if (platform === "win32")
29
+ return "windows";
30
+ if (platform === "darwin")
31
+ return "macos";
32
+ if (platform === "linux")
33
+ return "linux";
34
+ return "unsupported";
35
+ }
36
+ export function observeSystemHost(facts = readSystemHostFacts()) {
37
+ const runtime = runtimeOs(facts.platform);
38
+ if (isContainerHostRuntime(facts))
39
+ return {
40
+ runtimeOs: runtime,
41
+ kernelRelease: facts.kernelRelease,
42
+ environment: "container",
43
+ inferredHostOs: "unknown",
44
+ hostInferenceSource: "container_marker",
45
+ windowsExecutionRequiresProbe: false,
46
+ guiSessionStatus: "not_checked",
47
+ };
48
+ const wsl = isWslHostRuntime(facts);
49
+ const inferredHostOs = wsl ? "windows" : runtime;
50
+ return {
51
+ runtimeOs: runtime,
52
+ kernelRelease: facts.kernelRelease,
53
+ environment: wsl ? "wsl_guest" : "not_identified_as_wsl",
54
+ inferredHostOs,
55
+ hostInferenceSource: wsl ? "wsl_kernel_signature" : "runtime_platform_only",
56
+ windowsExecutionRequiresProbe: inferredHostOs === "windows",
57
+ guiSessionStatus: "not_checked",
58
+ };
59
+ }
@@ -0,0 +1,4 @@
1
+ import { type ToolImplementationOutput } from "../../../src/plugin-sdk/index.js";
2
+ import type { SystemApplication, SystemProcessResult, SystemTarget } from "./contracts.js";
3
+ export type SystemEvidenceScope = "command_process_completion" | "launch_request_dispatch";
4
+ export declare function systemProcessResult(target: SystemTarget, result: SystemProcessResult, evidenceScope: SystemEvidenceScope, application?: SystemApplication): ToolImplementationOutput;