@openma/common 0.0.0-stage → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (328) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +391 -2
  3. package/dist/acp-artifacts/binary.d.ts +35 -0
  4. package/dist/acp-artifacts/binary.d.ts.map +1 -0
  5. package/dist/acp-artifacts/binary.js +120 -0
  6. package/dist/acp-artifacts/binary.js.map +1 -0
  7. package/dist/acp-artifacts/index.d.ts +7 -0
  8. package/dist/acp-artifacts/index.d.ts.map +1 -0
  9. package/dist/acp-artifacts/index.js +7 -0
  10. package/dist/acp-artifacts/index.js.map +1 -0
  11. package/dist/acp-artifacts/node-abi.d.ts +3 -0
  12. package/dist/acp-artifacts/node-abi.d.ts.map +1 -0
  13. package/dist/acp-artifacts/node-abi.js +17 -0
  14. package/dist/acp-artifacts/node-abi.js.map +1 -0
  15. package/dist/acp-artifacts/npm-cli.d.ts +3 -0
  16. package/dist/acp-artifacts/npm-cli.d.ts.map +1 -0
  17. package/dist/acp-artifacts/npm-cli.js +9 -0
  18. package/dist/acp-artifacts/npm-cli.js.map +1 -0
  19. package/dist/acp-artifacts/npm.d.ts +37 -0
  20. package/dist/acp-artifacts/npm.d.ts.map +1 -0
  21. package/dist/acp-artifacts/npm.js +167 -0
  22. package/dist/acp-artifacts/npm.js.map +1 -0
  23. package/dist/acp-artifacts/registry.d.ts +45 -0
  24. package/dist/acp-artifacts/registry.d.ts.map +1 -0
  25. package/dist/acp-artifacts/registry.js +206 -0
  26. package/dist/acp-artifacts/registry.js.map +1 -0
  27. package/dist/acp-artifacts/shared.d.ts +45 -0
  28. package/dist/acp-artifacts/shared.d.ts.map +1 -0
  29. package/dist/acp-artifacts/shared.js +157 -0
  30. package/dist/acp-artifacts/shared.js.map +1 -0
  31. package/dist/acp-artifacts/uvx.d.ts +32 -0
  32. package/dist/acp-artifacts/uvx.d.ts.map +1 -0
  33. package/dist/acp-artifacts/uvx.js +95 -0
  34. package/dist/acp-artifacts/uvx.js.map +1 -0
  35. package/dist/acp-fork/index.d.ts +51 -0
  36. package/dist/acp-fork/index.d.ts.map +1 -0
  37. package/dist/acp-fork/index.js +116 -0
  38. package/dist/acp-fork/index.js.map +1 -0
  39. package/dist/acp-harnesses/agent-setup.d.ts +118 -0
  40. package/dist/acp-harnesses/agent-setup.d.ts.map +1 -0
  41. package/dist/acp-harnesses/agent-setup.js +717 -0
  42. package/dist/acp-harnesses/agent-setup.js.map +1 -0
  43. package/dist/acp-harnesses/custom-agents.d.ts +81 -0
  44. package/dist/acp-harnesses/custom-agents.d.ts.map +1 -0
  45. package/dist/acp-harnesses/custom-agents.js +361 -0
  46. package/dist/acp-harnesses/custom-agents.js.map +1 -0
  47. package/dist/acp-harnesses/headless-launch.d.ts +34 -0
  48. package/dist/acp-harnesses/headless-launch.d.ts.map +1 -0
  49. package/dist/acp-harnesses/headless-launch.js +67 -0
  50. package/dist/acp-harnesses/headless-launch.js.map +1 -0
  51. package/dist/acp-harnesses/index.d.ts +18 -0
  52. package/dist/acp-harnesses/index.d.ts.map +1 -0
  53. package/dist/acp-harnesses/index.js +58 -0
  54. package/dist/acp-harnesses/index.js.map +1 -0
  55. package/dist/acp-harnesses/install-state.d.ts +86 -0
  56. package/dist/acp-harnesses/install-state.d.ts.map +1 -0
  57. package/dist/acp-harnesses/install-state.js +322 -0
  58. package/dist/acp-harnesses/install-state.js.map +1 -0
  59. package/dist/acp-harnesses/installer.d.ts +145 -0
  60. package/dist/acp-harnesses/installer.d.ts.map +1 -0
  61. package/dist/acp-harnesses/installer.js +716 -0
  62. package/dist/acp-harnesses/installer.js.map +1 -0
  63. package/dist/acp-harnesses/known-agents.d.ts +154 -0
  64. package/dist/acp-harnesses/known-agents.d.ts.map +1 -0
  65. package/dist/acp-harnesses/known-agents.js +240 -0
  66. package/dist/acp-harnesses/known-agents.js.map +1 -0
  67. package/dist/acp-harnesses/launcher.d.ts +27 -0
  68. package/dist/acp-harnesses/launcher.d.ts.map +1 -0
  69. package/dist/acp-harnesses/launcher.js +64 -0
  70. package/dist/acp-harnesses/launcher.js.map +1 -0
  71. package/dist/acp-harnesses/registry-fetch.d.ts +42 -0
  72. package/dist/acp-harnesses/registry-fetch.d.ts.map +1 -0
  73. package/dist/acp-harnesses/registry-fetch.js +132 -0
  74. package/dist/acp-harnesses/registry-fetch.js.map +1 -0
  75. package/dist/acp-harnesses/registry.d.ts +36 -0
  76. package/dist/acp-harnesses/registry.d.ts.map +1 -0
  77. package/dist/acp-harnesses/registry.js +307 -0
  78. package/dist/acp-harnesses/registry.js.map +1 -0
  79. package/dist/acp-runtime/errors.d.ts +7 -0
  80. package/dist/acp-runtime/errors.d.ts.map +1 -0
  81. package/dist/acp-runtime/errors.js +17 -0
  82. package/dist/acp-runtime/errors.js.map +1 -0
  83. package/dist/acp-runtime/fork-support.d.ts +8 -0
  84. package/dist/acp-runtime/fork-support.d.ts.map +1 -0
  85. package/dist/acp-runtime/fork-support.js +20 -0
  86. package/dist/acp-runtime/fork-support.js.map +1 -0
  87. package/dist/acp-runtime/index.d.ts +11 -0
  88. package/dist/acp-runtime/index.d.ts.map +1 -0
  89. package/dist/acp-runtime/index.js +6 -0
  90. package/dist/acp-runtime/index.js.map +1 -0
  91. package/dist/acp-runtime/probe.d.ts +103 -0
  92. package/dist/acp-runtime/probe.d.ts.map +1 -0
  93. package/dist/acp-runtime/probe.js +881 -0
  94. package/dist/acp-runtime/probe.js.map +1 -0
  95. package/dist/acp-runtime/runtime.d.ts +7 -0
  96. package/dist/acp-runtime/runtime.d.ts.map +1 -0
  97. package/dist/acp-runtime/runtime.js +26 -0
  98. package/dist/acp-runtime/runtime.js.map +1 -0
  99. package/dist/acp-runtime/session.d.ts +87 -0
  100. package/dist/acp-runtime/session.d.ts.map +1 -0
  101. package/dist/acp-runtime/session.js +1071 -0
  102. package/dist/acp-runtime/session.js.map +1 -0
  103. package/dist/acp-runtime/spawners/node.d.ts +5 -0
  104. package/dist/acp-runtime/spawners/node.d.ts.map +1 -0
  105. package/dist/acp-runtime/spawners/node.js +244 -0
  106. package/dist/acp-runtime/spawners/node.js.map +1 -0
  107. package/dist/acp-runtime/types.d.ts +180 -0
  108. package/dist/acp-runtime/types.d.ts.map +1 -0
  109. package/dist/acp-runtime/types.js +2 -0
  110. package/dist/acp-runtime/types.js.map +1 -0
  111. package/dist/agent-contract/acp.d.ts +4 -0
  112. package/dist/agent-contract/acp.d.ts.map +1 -0
  113. package/dist/agent-contract/acp.js +273 -0
  114. package/dist/agent-contract/acp.js.map +1 -0
  115. package/dist/agent-contract/index.d.ts +125 -0
  116. package/dist/agent-contract/index.d.ts.map +1 -0
  117. package/dist/agent-contract/index.js +102 -0
  118. package/dist/agent-contract/index.js.map +1 -0
  119. package/dist/agent-contract/managed.d.ts +5 -0
  120. package/dist/agent-contract/managed.d.ts.map +1 -0
  121. package/dist/agent-contract/managed.js +242 -0
  122. package/dist/agent-contract/managed.js.map +1 -0
  123. package/dist/agent-ui/index.d.ts +170 -0
  124. package/dist/agent-ui/index.d.ts.map +1 -0
  125. package/dist/agent-ui/index.js +853 -0
  126. package/dist/agent-ui/index.js.map +1 -0
  127. package/dist/agent-ui/presentation.d.ts +30 -0
  128. package/dist/agent-ui/presentation.d.ts.map +1 -0
  129. package/dist/agent-ui/presentation.js +79 -0
  130. package/dist/agent-ui/presentation.js.map +1 -0
  131. package/dist/agent-ui/react.d.ts +50 -0
  132. package/dist/agent-ui/react.d.ts.map +1 -0
  133. package/dist/agent-ui/react.js +334 -0
  134. package/dist/agent-ui/react.js.map +1 -0
  135. package/dist/brand/index.d.ts +17 -0
  136. package/dist/brand/index.d.ts.map +1 -0
  137. package/dist/brand/index.js +119 -0
  138. package/dist/brand/index.js.map +1 -0
  139. package/dist/brand/openma-logo-mark.svg +7 -0
  140. package/dist/brand/tokens.css +77 -0
  141. package/dist/brand/website.css +67 -0
  142. package/dist/chat-ui/acp.d.ts +26 -0
  143. package/dist/chat-ui/acp.d.ts.map +1 -0
  144. package/dist/chat-ui/acp.js +166 -0
  145. package/dist/chat-ui/acp.js.map +1 -0
  146. package/dist/chat-ui/components.d.ts +230 -0
  147. package/dist/chat-ui/components.d.ts.map +1 -0
  148. package/dist/chat-ui/components.js +561 -0
  149. package/dist/chat-ui/components.js.map +1 -0
  150. package/dist/chat-ui/composer-drafts.d.ts +21 -0
  151. package/dist/chat-ui/composer-drafts.d.ts.map +1 -0
  152. package/dist/chat-ui/composer-drafts.js +58 -0
  153. package/dist/chat-ui/composer-drafts.js.map +1 -0
  154. package/dist/chat-ui/controller.d.ts +61 -0
  155. package/dist/chat-ui/controller.d.ts.map +1 -0
  156. package/dist/chat-ui/controller.js +218 -0
  157. package/dist/chat-ui/controller.js.map +1 -0
  158. package/dist/chat-ui/index.d.ts +8 -0
  159. package/dist/chat-ui/index.d.ts.map +1 -0
  160. package/dist/chat-ui/index.js +8 -0
  161. package/dist/chat-ui/index.js.map +1 -0
  162. package/dist/chat-ui/markdown.d.ts +37 -0
  163. package/dist/chat-ui/markdown.d.ts.map +1 -0
  164. package/dist/chat-ui/markdown.js +33 -0
  165. package/dist/chat-ui/markdown.js.map +1 -0
  166. package/dist/chat-ui/presentation.d.ts +34 -0
  167. package/dist/chat-ui/presentation.d.ts.map +1 -0
  168. package/dist/chat-ui/presentation.js +191 -0
  169. package/dist/chat-ui/presentation.js.map +1 -0
  170. package/dist/chat-ui/styles.css +815 -0
  171. package/dist/chat-ui/utils.d.ts +14 -0
  172. package/dist/chat-ui/utils.d.ts.map +1 -0
  173. package/dist/chat-ui/utils.js +71 -0
  174. package/dist/chat-ui/utils.js.map +1 -0
  175. package/dist/local-runtime/checkpoint.d.ts +28 -0
  176. package/dist/local-runtime/checkpoint.d.ts.map +1 -0
  177. package/dist/local-runtime/checkpoint.js +2 -0
  178. package/dist/local-runtime/checkpoint.js.map +1 -0
  179. package/dist/local-runtime/daemon-connection.d.ts +27 -0
  180. package/dist/local-runtime/daemon-connection.d.ts.map +1 -0
  181. package/dist/local-runtime/daemon-connection.js +161 -0
  182. package/dist/local-runtime/daemon-connection.js.map +1 -0
  183. package/dist/local-runtime/daemon-host.d.ts +39 -0
  184. package/dist/local-runtime/daemon-host.d.ts.map +1 -0
  185. package/dist/local-runtime/daemon-host.js +88 -0
  186. package/dist/local-runtime/daemon-host.js.map +1 -0
  187. package/dist/local-runtime/index.d.ts +6 -0
  188. package/dist/local-runtime/index.d.ts.map +1 -0
  189. package/dist/local-runtime/index.js +5 -0
  190. package/dist/local-runtime/index.js.map +1 -0
  191. package/dist/local-runtime/runtime.d.ts +36 -0
  192. package/dist/local-runtime/runtime.d.ts.map +1 -0
  193. package/dist/local-runtime/runtime.js +82 -0
  194. package/dist/local-runtime/runtime.js.map +1 -0
  195. package/dist/local-runtime/session-host.d.ts +62 -0
  196. package/dist/local-runtime/session-host.d.ts.map +1 -0
  197. package/dist/local-runtime/session-host.js +477 -0
  198. package/dist/local-runtime/session-host.js.map +1 -0
  199. package/dist/managed-runtime/acp-subagents.d.ts +14 -0
  200. package/dist/managed-runtime/acp-subagents.d.ts.map +1 -0
  201. package/dist/managed-runtime/acp-subagents.js +67 -0
  202. package/dist/managed-runtime/acp-subagents.js.map +1 -0
  203. package/dist/managed-runtime/claimed-environment-work.d.ts +61 -0
  204. package/dist/managed-runtime/claimed-environment-work.d.ts.map +1 -0
  205. package/dist/managed-runtime/claimed-environment-work.js +170 -0
  206. package/dist/managed-runtime/claimed-environment-work.js.map +1 -0
  207. package/dist/managed-runtime/contracts.d.ts +31 -0
  208. package/dist/managed-runtime/contracts.d.ts.map +1 -0
  209. package/dist/managed-runtime/contracts.js +2 -0
  210. package/dist/managed-runtime/contracts.js.map +1 -0
  211. package/dist/managed-runtime/http-control.d.ts +67 -0
  212. package/dist/managed-runtime/http-control.d.ts.map +1 -0
  213. package/dist/managed-runtime/http-control.js +465 -0
  214. package/dist/managed-runtime/http-control.js.map +1 -0
  215. package/dist/managed-runtime/index.d.ts +89 -0
  216. package/dist/managed-runtime/index.d.ts.map +1 -0
  217. package/dist/managed-runtime/index.js +215 -0
  218. package/dist/managed-runtime/index.js.map +1 -0
  219. package/dist/managed-runtime/input-identity.d.ts +2 -0
  220. package/dist/managed-runtime/input-identity.d.ts.map +1 -0
  221. package/dist/managed-runtime/input-identity.js +2 -0
  222. package/dist/managed-runtime/input-identity.js.map +1 -0
  223. package/dist/managed-runtime/managed-event-projector.d.ts +24 -0
  224. package/dist/managed-runtime/managed-event-projector.d.ts.map +1 -0
  225. package/dist/managed-runtime/managed-event-projector.js +333 -0
  226. package/dist/managed-runtime/managed-event-projector.js.map +1 -0
  227. package/dist/managed-runtime/semantic-recovery.d.ts +61 -0
  228. package/dist/managed-runtime/semantic-recovery.d.ts.map +1 -0
  229. package/dist/managed-runtime/semantic-recovery.js +167 -0
  230. package/dist/managed-runtime/semantic-recovery.js.map +1 -0
  231. package/dist/project-ui/CreateProjectDialog.d.ts +15 -0
  232. package/dist/project-ui/CreateProjectDialog.d.ts.map +1 -0
  233. package/dist/project-ui/CreateProjectDialog.js +87 -0
  234. package/dist/project-ui/CreateProjectDialog.js.map +1 -0
  235. package/dist/project-ui/ProjectComposer.d.ts +13 -0
  236. package/dist/project-ui/ProjectComposer.d.ts.map +1 -0
  237. package/dist/project-ui/ProjectComposer.js +70 -0
  238. package/dist/project-ui/ProjectComposer.js.map +1 -0
  239. package/dist/project-ui/ProjectConversation.d.ts +10 -0
  240. package/dist/project-ui/ProjectConversation.d.ts.map +1 -0
  241. package/dist/project-ui/ProjectConversation.js +28 -0
  242. package/dist/project-ui/ProjectConversation.js.map +1 -0
  243. package/dist/project-ui/ProjectMessageAttachments.d.ts +4 -0
  244. package/dist/project-ui/ProjectMessageAttachments.d.ts.map +1 -0
  245. package/dist/project-ui/ProjectMessageAttachments.js +28 -0
  246. package/dist/project-ui/ProjectMessageAttachments.js.map +1 -0
  247. package/dist/project-ui/ProjectSettings.d.ts +8 -0
  248. package/dist/project-ui/ProjectSettings.d.ts.map +1 -0
  249. package/dist/project-ui/ProjectSettings.js +65 -0
  250. package/dist/project-ui/ProjectSettings.js.map +1 -0
  251. package/dist/project-ui/Projects.d.ts +18 -0
  252. package/dist/project-ui/Projects.d.ts.map +1 -0
  253. package/dist/project-ui/Projects.js +377 -0
  254. package/dist/project-ui/Projects.js.map +1 -0
  255. package/dist/project-ui/client.d.ts +234 -0
  256. package/dist/project-ui/client.d.ts.map +1 -0
  257. package/dist/project-ui/client.js +42 -0
  258. package/dist/project-ui/client.js.map +1 -0
  259. package/dist/project-ui/controls.d.ts +15 -0
  260. package/dist/project-ui/controls.d.ts.map +1 -0
  261. package/dist/project-ui/controls.js +17 -0
  262. package/dist/project-ui/controls.js.map +1 -0
  263. package/dist/project-ui/index.d.ts +20 -0
  264. package/dist/project-ui/index.d.ts.map +1 -0
  265. package/dist/project-ui/index.js +17 -0
  266. package/dist/project-ui/index.js.map +1 -0
  267. package/dist/project-ui/project-coordinator.d.ts +3 -0
  268. package/dist/project-ui/project-coordinator.d.ts.map +1 -0
  269. package/dist/project-ui/project-coordinator.js +12 -0
  270. package/dist/project-ui/project-coordinator.js.map +1 -0
  271. package/dist/project-ui/project-goals.d.ts +48 -0
  272. package/dist/project-ui/project-goals.d.ts.map +1 -0
  273. package/dist/project-ui/project-goals.js +169 -0
  274. package/dist/project-ui/project-goals.js.map +1 -0
  275. package/dist/project-ui/projects-query.d.ts +19 -0
  276. package/dist/project-ui/projects-query.d.ts.map +1 -0
  277. package/dist/project-ui/projects-query.js +132 -0
  278. package/dist/project-ui/projects-query.js.map +1 -0
  279. package/dist/project-ui/styles.css +847 -0
  280. package/dist/protocol/acp/index.d.ts +52 -0
  281. package/dist/protocol/acp/index.d.ts.map +1 -0
  282. package/dist/protocol/acp/index.js +1056 -0
  283. package/dist/protocol/acp/index.js.map +1 -0
  284. package/dist/protocol/cursor-cloud/index.d.ts +74 -0
  285. package/dist/protocol/cursor-cloud/index.d.ts.map +1 -0
  286. package/dist/protocol/cursor-cloud/index.js +249 -0
  287. package/dist/protocol/cursor-cloud/index.js.map +1 -0
  288. package/dist/protocol/managed/index.d.ts +32 -0
  289. package/dist/protocol/managed/index.d.ts.map +1 -0
  290. package/dist/protocol/managed/index.js +646 -0
  291. package/dist/protocol/managed/index.js.map +1 -0
  292. package/dist/protocol/managed/input-identity.d.ts +3 -0
  293. package/dist/protocol/managed/input-identity.d.ts.map +1 -0
  294. package/dist/protocol/managed/input-identity.js +6 -0
  295. package/dist/protocol/managed/input-identity.js.map +1 -0
  296. package/dist/protocol/openai-agents/index.d.ts +102 -0
  297. package/dist/protocol/openai-agents/index.d.ts.map +1 -0
  298. package/dist/protocol/openai-agents/index.js +142 -0
  299. package/dist/protocol/openai-agents/index.js.map +1 -0
  300. package/dist/session-events/acp-system-notices.d.ts +10 -0
  301. package/dist/session-events/acp-system-notices.d.ts.map +1 -0
  302. package/dist/session-events/acp-system-notices.js +46 -0
  303. package/dist/session-events/acp-system-notices.js.map +1 -0
  304. package/dist/session-events/acp.d.ts +214 -0
  305. package/dist/session-events/acp.d.ts.map +1 -0
  306. package/dist/session-events/acp.js +956 -0
  307. package/dist/session-events/acp.js.map +1 -0
  308. package/dist/session-events/managed.d.ts +141 -0
  309. package/dist/session-events/managed.d.ts.map +1 -0
  310. package/dist/session-events/managed.js +324 -0
  311. package/dist/session-events/managed.js.map +1 -0
  312. package/dist/session-events/openma.d.ts +304 -0
  313. package/dist/session-events/openma.d.ts.map +1 -0
  314. package/dist/session-events/openma.js +438 -0
  315. package/dist/session-events/openma.js.map +1 -0
  316. package/dist/session-kernel/index.d.ts +118 -0
  317. package/dist/session-kernel/index.d.ts.map +1 -0
  318. package/dist/session-kernel/index.js +215 -0
  319. package/dist/session-kernel/index.js.map +1 -0
  320. package/dist/session-orchestrator/index.d.ts +71 -0
  321. package/dist/session-orchestrator/index.d.ts.map +1 -0
  322. package/dist/session-orchestrator/index.js +177 -0
  323. package/dist/session-orchestrator/index.js.map +1 -0
  324. package/dist/session-ui/index.d.ts +96 -0
  325. package/dist/session-ui/index.d.ts.map +1 -0
  326. package/dist/session-ui/index.js +277 -0
  327. package/dist/session-ui/index.js.map +1 -0
  328. package/package.json +222 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-setup.js","sourceRoot":"","sources":["../../src/acp-harnesses/agent-setup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Custom ACP agent definitions shared under `~/.oma` (OpenMA root).
3
+ *
4
+ * The single shared store is `~/.oma/config.toml` `[[agents]]` — Backchat's
5
+ * per-agent override format: one row per agent holding `id`, optional
6
+ * `enabled`, `env = [{name, value}]` pairs, and — for custom agents —
7
+ * `command_override`, `args_override`, `label_override`. A row *is* a
8
+ * custom agent definition iff it carries `command_override`; rows with only
9
+ * `enabled`/`env` tune registry agents and stay product-local.
10
+ *
11
+ * Definitions surface in the `AcpHarnessSpec` shape (`id`, `label`,
12
+ * `command`, `args`, optional `env`) plus the optional `enabled` flag the
13
+ * store carries, so a disabled custom agent stays disabled instead of
14
+ * silently reappearing.
15
+ *
16
+ * Versions the user writes in `args` (for example `@openma/pi-acp@beta`)
17
+ * are kept exactly as written: nothing here rewrites pins or tags.
18
+ *
19
+ * Martty's legacy `~/.oma/settings.json` `harnesses[]` still read through
20
+ * for compatibility; every write migrates them into `config.toml` and
21
+ * removes the `harnesses` key, so removed or replaced definitions cannot
22
+ * resurface from the old file.
23
+ *
24
+ * Write paths refuse to touch a `config.toml` that does not parse — they
25
+ * throw instead of clobbering a file the user may have hand-edited. Only a
26
+ * missing file counts as empty. Writes preserve every unrelated key and
27
+ * section (the file is reserialized, comments outside the leading header
28
+ * are not kept — the same trade-off Backchat's own writer makes).
29
+ */
30
+ import type { AcpHarnessSpec } from "./index.js";
31
+ /** A custom agent definition: the canonical shape plus the store's enabled flag. */
32
+ export type CustomAcpAgent = AcpHarnessSpec & {
33
+ /** `false` keeps the definition but disables the agent locally. */
34
+ enabled?: boolean;
35
+ };
36
+ export declare const OMA_CONFIG_FILENAME = "config.toml";
37
+ export declare const OMA_SETTINGS_FILENAME = "settings.json";
38
+ export declare function customAcpAgentsConfigPath(omaDir: string): string;
39
+ /**
40
+ * Strict validation for definitions a caller wants to persist. Throws with
41
+ * the first violated rule; stored reads use {@link normalizeCustomAcpAgent}
42
+ * instead, which drops malformed rows instead of failing the whole file.
43
+ */
44
+ export declare function validateCustomAcpAgent(value: unknown): CustomAcpAgent;
45
+ /** Forgiving read of one stored definition. Returns `undefined` for malformed rows. */
46
+ export declare function normalizeCustomAcpAgent(value: unknown): CustomAcpAgent | undefined;
47
+ /** Forgiving read of a stored definition list; first row wins per `id`. */
48
+ export declare function normalizeCustomAcpAgents(value: unknown): CustomAcpAgent[];
49
+ /** Merge definition lists, keeping the first occurrence of each `id`. */
50
+ export declare function mergeCustomAcpAgents(...lists: readonly CustomAcpAgent[][]): CustomAcpAgent[];
51
+ /** The definition a `config.toml` `[[agents]]` row carries, if it is one. */
52
+ export declare function customAcpAgentFromConfigTomlRow(row: unknown): CustomAcpAgent | undefined;
53
+ /** The `[[agents]]` row a definition writes back as. */
54
+ export declare function configTomlRowFromCustomAcpAgent(agent: CustomAcpAgent): Record<string, unknown>;
55
+ /**
56
+ * Custom agents inside a parsed Backchat `config.toml`: `[[agents]]` rows
57
+ * with `command_override`, each carrying its `enabled` flag through.
58
+ */
59
+ export declare function customAcpAgentsFromConfigToml(config: unknown): CustomAcpAgent[];
60
+ /**
61
+ * Custom agents inside a parsed Martty `settings.json`: the `harnesses[]`
62
+ * rows are already the canonical shape, so this only validates.
63
+ */
64
+ export declare function customAcpAgentsFromSettingsJson(settings: unknown): CustomAcpAgent[];
65
+ /**
66
+ * Every custom agent definition under `omaDir`: `config.toml` first, then
67
+ * Martty's `settings.json` leftovers for back-compatibility, deduplicated by
68
+ * `id`. Throws when `config.toml` exists but does not parse — a corrupt
69
+ * file is user data, not an empty store.
70
+ */
71
+ export declare function readCustomAcpAgents(omaDir: string): CustomAcpAgent[];
72
+ /**
73
+ * Move every `settings.json` `harnesses[]` definition into `config.toml`
74
+ * (idempotent; rows already defined there win). Returns whether it wrote.
75
+ */
76
+ export declare function migrateLegacyAcpAgents(omaDir: string): boolean;
77
+ /** Insert or replace one definition. Returns the stored list. */
78
+ export declare function upsertCustomAcpAgent(omaDir: string, agent: unknown): CustomAcpAgent[];
79
+ /** Remove one definition. Returns the stored list. */
80
+ export declare function removeCustomAcpAgent(omaDir: string, id: string): CustomAcpAgent[];
81
+ //# sourceMappingURL=custom-agents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-agents.d.ts","sourceRoot":"","sources":["../../src/acp-harnesses/custom-agents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,oFAAoF;AACpF,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG;IAC5C,mEAAmE;IACnE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,mBAAmB,gBAAgB,CAAC;AACjD,eAAO,MAAM,qBAAqB,kBAAkB,CAAC;AAErD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEhE;AAyCD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,CAwBrE;AAED,uFAAuF;AACvF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,GAAG,SAAS,CAMlF;AAED,2EAA2E;AAC3E,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,EAAE,CASzE;AAED,yEAAyE;AACzE,wBAAgB,oBAAoB,CAAC,GAAG,KAAK,EAAE,SAAS,cAAc,EAAE,EAAE,GAAG,cAAc,EAAE,CAO5F;AAmBD,6EAA6E;AAC7E,wBAAgB,+BAA+B,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc,GAAG,SAAS,CAgBxF;AAED,wDAAwD;AACxD,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,cAAc,GACpB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAWzB;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,OAAO,GAAG,cAAc,EAAE,CAU/E;AAoBD;;;GAGG;AACH,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,OAAO,GAAG,cAAc,EAAE,CAEnF;AAqCD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,EAAE,CAOpE;AA6ED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAK9D;AAED,iEAAiE;AACjE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,cAAc,EAAE,CAOrF;AAED,sDAAsD;AACtD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,cAAc,EAAE,CAEjF"}
@@ -0,0 +1,361 @@
1
+ /**
2
+ * Custom ACP agent definitions shared under `~/.oma` (OpenMA root).
3
+ *
4
+ * The single shared store is `~/.oma/config.toml` `[[agents]]` — Backchat's
5
+ * per-agent override format: one row per agent holding `id`, optional
6
+ * `enabled`, `env = [{name, value}]` pairs, and — for custom agents —
7
+ * `command_override`, `args_override`, `label_override`. A row *is* a
8
+ * custom agent definition iff it carries `command_override`; rows with only
9
+ * `enabled`/`env` tune registry agents and stay product-local.
10
+ *
11
+ * Definitions surface in the `AcpHarnessSpec` shape (`id`, `label`,
12
+ * `command`, `args`, optional `env`) plus the optional `enabled` flag the
13
+ * store carries, so a disabled custom agent stays disabled instead of
14
+ * silently reappearing.
15
+ *
16
+ * Versions the user writes in `args` (for example `@openma/pi-acp@beta`)
17
+ * are kept exactly as written: nothing here rewrites pins or tags.
18
+ *
19
+ * Martty's legacy `~/.oma/settings.json` `harnesses[]` still read through
20
+ * for compatibility; every write migrates them into `config.toml` and
21
+ * removes the `harnesses` key, so removed or replaced definitions cannot
22
+ * resurface from the old file.
23
+ *
24
+ * Write paths refuse to touch a `config.toml` that does not parse — they
25
+ * throw instead of clobbering a file the user may have hand-edited. Only a
26
+ * missing file counts as empty. Writes preserve every unrelated key and
27
+ * section (the file is reserialized, comments outside the leading header
28
+ * are not kept — the same trade-off Backchat's own writer makes).
29
+ */
30
+ import { existsSync, mkdirSync, readFileSync, renameSync, writeFileSync } from "node:fs";
31
+ import { dirname, join, win32 } from "node:path";
32
+ import { parse as parseToml, stringify as toToml } from "smol-toml";
33
+ export const OMA_CONFIG_FILENAME = "config.toml";
34
+ export const OMA_SETTINGS_FILENAME = "settings.json";
35
+ export function customAcpAgentsConfigPath(omaDir) {
36
+ return join(omaDir, OMA_CONFIG_FILENAME);
37
+ }
38
+ // ---------------------------------------------------------------------------
39
+ // Validation
40
+ // ---------------------------------------------------------------------------
41
+ function asRecord(value) {
42
+ return value !== null && typeof value === "object" && !Array.isArray(value)
43
+ ? value
44
+ : undefined;
45
+ }
46
+ function nonEmptyString(value) {
47
+ return typeof value === "string" && value.trim() ? value.trim() : undefined;
48
+ }
49
+ function stringArray(value) {
50
+ return Array.isArray(value) && value.every((item) => typeof item === "string")
51
+ ? [...value]
52
+ : undefined;
53
+ }
54
+ function stringRecord(value) {
55
+ const record = asRecord(value);
56
+ if (!record || Object.values(record).some((item) => typeof item !== "string")) {
57
+ return undefined;
58
+ }
59
+ return { ...record };
60
+ }
61
+ function serialize(agent) {
62
+ return {
63
+ id: agent.id,
64
+ label: agent.label,
65
+ command: agent.command,
66
+ args: [...agent.args],
67
+ ...(agent.env !== undefined ? { env: { ...agent.env } } : {}),
68
+ ...(agent.enabled !== undefined ? { enabled: agent.enabled } : {}),
69
+ };
70
+ }
71
+ /**
72
+ * Strict validation for definitions a caller wants to persist. Throws with
73
+ * the first violated rule; stored reads use {@link normalizeCustomAcpAgent}
74
+ * instead, which drops malformed rows instead of failing the whole file.
75
+ */
76
+ export function validateCustomAcpAgent(value) {
77
+ const record = asRecord(value);
78
+ if (!record)
79
+ throw new Error("custom ACP agent must be an object");
80
+ const id = nonEmptyString(record.id);
81
+ if (!id)
82
+ throw new Error("custom ACP agent id must be a non-empty string");
83
+ const command = nonEmptyString(record.command);
84
+ if (!command)
85
+ throw new Error(`custom ACP agent ${id}: command must be a non-empty string`);
86
+ const args = record.args === undefined ? [] : stringArray(record.args);
87
+ if (!args)
88
+ throw new Error(`custom ACP agent ${id}: args must be an array of strings`);
89
+ if (record.env !== undefined && !stringRecord(record.env)) {
90
+ throw new Error(`custom ACP agent ${id}: env must be an object of strings`);
91
+ }
92
+ if (record.enabled !== undefined && typeof record.enabled !== "boolean") {
93
+ throw new Error(`custom ACP agent ${id}: enabled must be a boolean`);
94
+ }
95
+ const env = stringRecord(record.env);
96
+ return serialize({
97
+ id,
98
+ label: nonEmptyString(record.label) ?? id,
99
+ command,
100
+ args,
101
+ ...(env !== undefined ? { env } : {}),
102
+ ...(typeof record.enabled === "boolean" ? { enabled: record.enabled } : {}),
103
+ });
104
+ }
105
+ /** Forgiving read of one stored definition. Returns `undefined` for malformed rows. */
106
+ export function normalizeCustomAcpAgent(value) {
107
+ try {
108
+ return validateCustomAcpAgent(value);
109
+ }
110
+ catch {
111
+ return undefined;
112
+ }
113
+ }
114
+ /** Forgiving read of a stored definition list; first row wins per `id`. */
115
+ export function normalizeCustomAcpAgents(value) {
116
+ if (!Array.isArray(value))
117
+ return [];
118
+ const seen = new Set();
119
+ return value.flatMap((candidate) => {
120
+ const agent = normalizeCustomAcpAgent(candidate);
121
+ if (!agent || seen.has(agent.id))
122
+ return [];
123
+ seen.add(agent.id);
124
+ return [agent];
125
+ });
126
+ }
127
+ /** Merge definition lists, keeping the first occurrence of each `id`. */
128
+ export function mergeCustomAcpAgents(...lists) {
129
+ const seen = new Set();
130
+ return lists.flat().flatMap((agent) => {
131
+ if (seen.has(agent.id))
132
+ return [];
133
+ seen.add(agent.id);
134
+ return [serialize(agent)];
135
+ });
136
+ }
137
+ // ---------------------------------------------------------------------------
138
+ // Row <-> definition mapping (config.toml override format)
139
+ // ---------------------------------------------------------------------------
140
+ function envPairsFromRow(value) {
141
+ const table = stringRecord(value);
142
+ if (table)
143
+ return table;
144
+ if (!Array.isArray(value))
145
+ return undefined;
146
+ const entries = value.flatMap((pair) => {
147
+ const item = asRecord(pair);
148
+ const name = nonEmptyString(item?.name);
149
+ return name && typeof item?.value === "string" ? [[name, item.value]] : [];
150
+ });
151
+ // An explicit `env = []` row round-trips as env:{} — presence preserved.
152
+ return Object.fromEntries(entries);
153
+ }
154
+ /** The definition a `config.toml` `[[agents]]` row carries, if it is one. */
155
+ export function customAcpAgentFromConfigTomlRow(row) {
156
+ const record = asRecord(row);
157
+ const id = nonEmptyString(record?.id);
158
+ const command = nonEmptyString(record?.command_override);
159
+ if (!record || !id || !command)
160
+ return undefined;
161
+ const args = record.args_override === undefined ? [] : stringArray(record.args_override);
162
+ if (!args)
163
+ return undefined;
164
+ const env = envPairsFromRow(record.env);
165
+ return serialize({
166
+ id,
167
+ label: nonEmptyString(record.label_override) ?? id,
168
+ command,
169
+ args,
170
+ ...(env ? { env } : {}),
171
+ ...(typeof record.enabled === "boolean" ? { enabled: record.enabled } : {}),
172
+ });
173
+ }
174
+ /** The `[[agents]]` row a definition writes back as. */
175
+ export function configTomlRowFromCustomAcpAgent(agent) {
176
+ return {
177
+ id: agent.id,
178
+ ...(agent.enabled !== undefined ? { enabled: agent.enabled } : {}),
179
+ ...(agent.label !== agent.id ? { label_override: agent.label } : {}),
180
+ command_override: agent.command,
181
+ ...(agent.args.length > 0 ? { args_override: [...agent.args] } : {}),
182
+ ...(agent.env !== undefined
183
+ ? { env: Object.entries(agent.env).map(([name, value]) => ({ name, value })) }
184
+ : {}),
185
+ };
186
+ }
187
+ /**
188
+ * Custom agents inside a parsed Backchat `config.toml`: `[[agents]]` rows
189
+ * with `command_override`, each carrying its `enabled` flag through.
190
+ */
191
+ export function customAcpAgentsFromConfigToml(config) {
192
+ const agents = asRecord(config)?.agents;
193
+ if (!Array.isArray(agents))
194
+ return [];
195
+ const seen = new Set();
196
+ return agents.flatMap((row) => {
197
+ const agent = customAcpAgentFromConfigTomlRow(row);
198
+ if (!agent || seen.has(agent.id))
199
+ return [];
200
+ seen.add(agent.id);
201
+ return [agent];
202
+ });
203
+ }
204
+ // ---------------------------------------------------------------------------
205
+ // Compatible reads of Martty's legacy settings.json
206
+ // ---------------------------------------------------------------------------
207
+ // Rows Martty wrote before the shared store may carry runner flags Martty
208
+ // itself injected next to `npx` (`--yes` and `--prefer-offline` tell the
209
+ // runner not to prompt and to reuse its cache). They are Martty's own
210
+ // mechanics, not user-chosen launch arguments, so reads drop them — unlike
211
+ // package versions and tags inside args, which are never touched.
212
+ const NPM_RUNNER = /^npx(?:\.(?:cmd|bat|exe))?$/i;
213
+ const LEGACY_NPX_FLAGS = new Set(["--yes", "--prefer-offline"]);
214
+ function marttyLegacyNpxArgs(agent) {
215
+ if (!NPM_RUNNER.test(win32.basename(agent.command)))
216
+ return agent;
217
+ const args = agent.args.filter((arg) => !LEGACY_NPX_FLAGS.has(arg));
218
+ return args.length === agent.args.length ? agent : { ...agent, args };
219
+ }
220
+ /**
221
+ * Custom agents inside a parsed Martty `settings.json`: the `harnesses[]`
222
+ * rows are already the canonical shape, so this only validates.
223
+ */
224
+ export function customAcpAgentsFromSettingsJson(settings) {
225
+ return normalizeCustomAcpAgents(asRecord(settings)?.harnesses).map(marttyLegacyNpxArgs);
226
+ }
227
+ // ---------------------------------------------------------------------------
228
+ // File IO
229
+ // ---------------------------------------------------------------------------
230
+ function readJsonFile(path) {
231
+ try {
232
+ return JSON.parse(readFileSync(path, "utf8"));
233
+ }
234
+ catch {
235
+ return undefined;
236
+ }
237
+ }
238
+ // smol-toml's parse yields the root table or throws; the caller decides
239
+ // whether a missing file (ENOENT handled upstream) or a corrupt file counts.
240
+ function readConfigToml(path) {
241
+ return parseToml(readFileSync(path, "utf8"));
242
+ }
243
+ function writeAtomic(path, content) {
244
+ mkdirSync(dirname(path), { recursive: true });
245
+ const temporary = `${path}.${process.pid}.${Date.now()}.tmp`;
246
+ writeFileSync(temporary, content);
247
+ renameSync(temporary, path);
248
+ }
249
+ // Leading comment lines (Backchat's file header) survive a reserialize —
250
+ // including the newline that separates them from the first key; everything
251
+ // else unrelated does by virtue of the parsed object.
252
+ function leadingComments(raw) {
253
+ const lines = raw.split("\n");
254
+ let end = 0;
255
+ while (end < lines.length && (lines[end].startsWith("#") || !lines[end].trim()))
256
+ end += 1;
257
+ return end === 0 ? "" : `${lines.slice(0, end).join("\n")}\n`;
258
+ }
259
+ /**
260
+ * Every custom agent definition under `omaDir`: `config.toml` first, then
261
+ * Martty's `settings.json` leftovers for back-compatibility, deduplicated by
262
+ * `id`. Throws when `config.toml` exists but does not parse — a corrupt
263
+ * file is user data, not an empty store.
264
+ */
265
+ export function readCustomAcpAgents(omaDir) {
266
+ const path = customAcpAgentsConfigPath(omaDir);
267
+ const config = existsSync(path) ? readConfigToml(path) : {};
268
+ return mergeCustomAcpAgents(customAcpAgentsFromConfigToml(config), customAcpAgentsFromSettingsJson(readJsonFile(join(omaDir, OMA_SETTINGS_FILENAME))));
269
+ }
270
+ /**
271
+ * Rewrite the shared definitions: parse `config.toml` (refusing a corrupt
272
+ * file), fold in any `settings.json` `harnesses[]`, apply `mutate`, then
273
+ * write both files back — `config.toml` gets the merged `[[agents]]` rows
274
+ * (every other key and section untouched) and `settings.json` loses its
275
+ * migrated `harnesses` key so removed definitions cannot resurface.
276
+ */
277
+ function rewriteSharedAgents(omaDir, mutate) {
278
+ const configPath = customAcpAgentsConfigPath(omaDir);
279
+ const raw = existsSync(configPath) ? readFileSync(configPath, "utf8") : "";
280
+ const config = raw ? readConfigToml(configPath) : {};
281
+ const settings = readJsonFile(join(omaDir, OMA_SETTINGS_FILENAME));
282
+ const stored = mergeCustomAcpAgents(customAcpAgentsFromConfigToml(config), customAcpAgentsFromSettingsJson(settings));
283
+ const next = mutate(stored);
284
+ const nextById = new Map(next.map((agent) => [agent.id, agent]));
285
+ const rows = Array.isArray(config.agents) ? config.agents : [];
286
+ const rewrittenIds = new Set();
287
+ const outRows = [];
288
+ for (const row of rows) {
289
+ const record = asRecord(row);
290
+ const id = nonEmptyString(record?.id);
291
+ if (!record || !id) {
292
+ outRows.push(row); // unparsed rows stay byte-equivalent
293
+ continue;
294
+ }
295
+ // Every row after the first for an id is a stray duplicate: it can never
296
+ // be the definition again, so its command keys go the same way a removed
297
+ // definition's do — otherwise a duplicate would resurrect the id.
298
+ const agent = rewrittenIds.has(id) ? undefined : nextById.get(id);
299
+ rewrittenIds.add(id);
300
+ if (!agent) {
301
+ // The definition was removed (or this is a duplicate): drop the
302
+ // command keys but keep product-local flags (enabled/env) when they
303
+ // are all that is left.
304
+ const { command_override: _c, args_override: _a, label_override: _l, ...residual } = record;
305
+ if (Object.keys(residual).length > 1)
306
+ outRows.push(residual);
307
+ continue;
308
+ }
309
+ // The definition wins command/label/args; `enabled` and `env` fall back
310
+ // to what the row already carried when the definition does not set them.
311
+ const enabled = agent.enabled ?? (typeof record.enabled === "boolean" ? record.enabled : undefined);
312
+ outRows.push({
313
+ id,
314
+ ...(enabled !== undefined ? { enabled } : {}),
315
+ ...(agent.label !== id ? { label_override: agent.label } : {}),
316
+ command_override: agent.command,
317
+ ...(agent.args.length > 0 ? { args_override: [...agent.args] } : {}),
318
+ ...(agent.env !== undefined
319
+ ? { env: Object.entries(agent.env).map(([name, value]) => ({ name, value })) }
320
+ : record.env !== undefined ? { env: record.env } : {}),
321
+ });
322
+ }
323
+ for (const agent of next) {
324
+ if (!rewrittenIds.has(agent.id))
325
+ outRows.push(configTomlRowFromCustomAcpAgent(agent));
326
+ }
327
+ const comments = leadingComments(raw);
328
+ writeAtomic(configPath, `${comments}${toToml({ ...config, agents: outRows })}\n`);
329
+ const settingsRecord = asRecord(settings);
330
+ if (settingsRecord && Array.isArray(settingsRecord.harnesses)) {
331
+ const { harnesses: _migrated, ...rest } = settingsRecord;
332
+ writeAtomic(join(omaDir, OMA_SETTINGS_FILENAME), `${JSON.stringify(rest, null, 2)}\n`);
333
+ }
334
+ return next;
335
+ }
336
+ /**
337
+ * Move every `settings.json` `harnesses[]` definition into `config.toml`
338
+ * (idempotent; rows already defined there win). Returns whether it wrote.
339
+ */
340
+ export function migrateLegacyAcpAgents(omaDir) {
341
+ const settings = readJsonFile(join(omaDir, OMA_SETTINGS_FILENAME));
342
+ if (!Array.isArray(asRecord(settings)?.harnesses))
343
+ return false;
344
+ rewriteSharedAgents(omaDir, (agents) => agents);
345
+ return true;
346
+ }
347
+ /** Insert or replace one definition. Returns the stored list. */
348
+ export function upsertCustomAcpAgent(omaDir, agent) {
349
+ const next = validateCustomAcpAgent(agent);
350
+ return rewriteSharedAgents(omaDir, (agents) => {
351
+ const index = agents.findIndex((candidate) => candidate.id === next.id);
352
+ if (index === -1)
353
+ return [...agents, next];
354
+ return agents.map((candidate) => (candidate.id === next.id ? next : candidate));
355
+ });
356
+ }
357
+ /** Remove one definition. Returns the stored list. */
358
+ export function removeCustomAcpAgent(omaDir, id) {
359
+ return rewriteSharedAgents(omaDir, (agents) => agents.filter((agent) => agent.id !== id));
360
+ }
361
+ //# sourceMappingURL=custom-agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-agents.js","sourceRoot":"","sources":["../../src/acp-harnesses/custom-agents.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Builds the launch of an ACP harness for one unattended run from the
3
+ * harness's own recipe (`KnownAgentEntry.headless`). Hosts pass generic
4
+ * options; every flag and variable name comes from the registry entry.
5
+ *
6
+ * Browser-safe (no node deps).
7
+ */
8
+ import type { KnownAgentEntry } from "./known-agents.js";
9
+ export interface AcpHeadlessLaunchOptions {
10
+ /** Directory for the harness's own session files. */
11
+ sessionDir?: string;
12
+ /** The agent's user-level configuration directory. */
13
+ agentDir?: string;
14
+ /** Load project-level resources in the working directory without asking. */
15
+ trustProject?: boolean;
16
+ provider?: string;
17
+ model?: string;
18
+ /** Reasoning effort, in the harness's own vocabulary (for example `medium`). */
19
+ thinkingLevel?: string;
20
+ }
21
+ export type AcpHeadlessLaunchOption = keyof AcpHeadlessLaunchOptions;
22
+ export interface AcpHeadlessLaunch {
23
+ /** `spec.args`, then the recipe's fixed flags, then the option flags. */
24
+ args: string[];
25
+ /** `spec.env` plus the variables the options set. */
26
+ env: Record<string, string>;
27
+ /**
28
+ * Requested options the recipe cannot express. The launch does not carry
29
+ * them, so a host that depends on one (isolation, for instance) must stop.
30
+ */
31
+ unsupported: AcpHeadlessLaunchOption[];
32
+ }
33
+ export declare function buildAcpHeadlessLaunch(entry: KnownAgentEntry, options?: AcpHeadlessLaunchOptions): AcpHeadlessLaunch;
34
+ //# sourceMappingURL=headless-launch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headless-launch.d.ts","sourceRoot":"","sources":["../../src/acp-harnesses/headless-launch.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,MAAM,WAAW,wBAAwB;IACvC,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gFAAgF;IAChF,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,uBAAuB,GAAG,MAAM,wBAAwB,CAAC;AAErE,MAAM,WAAW,iBAAiB;IAChC,yEAAyE;IACzE,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,qDAAqD;IACrD,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B;;;OAGG;IACH,WAAW,EAAE,uBAAuB,EAAE,CAAC;CACxC;AAYD,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,eAAe,EACtB,OAAO,GAAE,wBAA6B,GACrC,iBAAiB,CAsDnB"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Builds the launch of an ACP harness for one unattended run from the
3
+ * harness's own recipe (`KnownAgentEntry.headless`). Hosts pass generic
4
+ * options; every flag and variable name comes from the registry entry.
5
+ *
6
+ * Browser-safe (no node deps).
7
+ */
8
+ function definedEnv(env) {
9
+ return Object.fromEntries(Object.entries(env ?? {}).filter((entry) => typeof entry[1] === "string"));
10
+ }
11
+ export function buildAcpHeadlessLaunch(entry, options = {}) {
12
+ const recipe = entry.headless;
13
+ if (!recipe) {
14
+ throw new Error(`${entry.label} (${entry.id}) has no headless launch recipe`);
15
+ }
16
+ const args = [...(entry.spec.args ?? []), ...(recipe.args ?? [])];
17
+ const env = definedEnv(entry.spec.env);
18
+ const unsupported = [];
19
+ if (options.sessionDir !== undefined) {
20
+ if (recipe.sessionDir)
21
+ args.push(recipe.sessionDir.flag, options.sessionDir);
22
+ else
23
+ unsupported.push("sessionDir");
24
+ }
25
+ if (options.agentDir !== undefined) {
26
+ const { flag, env: variable } = recipe.agentDir ?? {};
27
+ if (flag)
28
+ args.push(flag, options.agentDir);
29
+ if (variable)
30
+ env[variable] = options.agentDir;
31
+ if (!flag && !variable)
32
+ unsupported.push("agentDir");
33
+ }
34
+ if (options.trustProject) {
35
+ if (recipe.trustProject)
36
+ args.push(recipe.trustProject.flag);
37
+ else
38
+ unsupported.push("trustProject");
39
+ }
40
+ const { model, provider, thinkingLevel } = options;
41
+ if (model !== undefined) {
42
+ if (recipe.model) {
43
+ const { flag, providerSeparator, thinkingSeparator } = recipe.model;
44
+ const prefix = provider !== undefined && providerSeparator !== undefined
45
+ ? `${provider}${providerSeparator}`
46
+ : "";
47
+ const suffix = thinkingLevel !== undefined && thinkingSeparator !== undefined
48
+ ? `${thinkingSeparator}${thinkingLevel}`
49
+ : "";
50
+ // A model id that already names its provider is not prefixed twice.
51
+ args.push(flag, `${prefix && !model.startsWith(prefix) ? prefix : ""}${model}${suffix}`);
52
+ }
53
+ else {
54
+ unsupported.push("model");
55
+ }
56
+ }
57
+ // Provider and thinking level travel inside the model value. Without a
58
+ // model, or without the syntax for them, the launch does not carry them.
59
+ if (provider !== undefined && (model === undefined || recipe.model?.providerSeparator === undefined)) {
60
+ unsupported.push("provider");
61
+ }
62
+ if (thinkingLevel !== undefined && (model === undefined || recipe.model?.thinkingSeparator === undefined)) {
63
+ unsupported.push("thinkingLevel");
64
+ }
65
+ return { args, env, unsupported };
66
+ }
67
+ //# sourceMappingURL=headless-launch.js.map