@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":"input-identity.d.ts","sourceRoot":"","sources":["../../../src/protocol/managed/input-identity.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAC1F,wBAAsB,0BAA0B,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGrH"}
@@ -0,0 +1,6 @@
1
+ /** Scoped event identity used for retry-safe Session input and history reconciliation. */
2
+ export async function sessionInputIdentityPrefix(workspaceId, sessionId, key) {
3
+ const bytes = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(JSON.stringify([workspaceId, sessionId, key])));
4
+ return `sevt_req_${Array.from(new Uint8Array(bytes), byte => byte.toString(16).padStart(2, "0")).join("")}_`;
5
+ }
6
+ //# sourceMappingURL=input-identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-identity.js","sourceRoot":"","sources":["../../../src/protocol/managed/input-identity.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAC1F,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,WAAmB,EAAE,SAAiB,EAAE,GAAW;IAClG,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7H,OAAO,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC;AAC/G,CAAC"}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * OpenAI Agents → OpenMA event decoder.
3
+ *
4
+ * Direct port of backchat `DirectAgentRuntime` at `64fd74d`
5
+ * (`src/main/direct-agent-runtime.ts`): `#item`, `#turn`, `#openaiEvent`,
6
+ * `#pending`, `#vendor`, and `#event`. `#wrap` stays in backchat; it only
7
+ * builds the desktop task envelope around the canonical event.
8
+ * `pendingActions` / `custom_result` stay there too.
9
+ * `decodeOpenAIAgentsPendingActions` returns the `required_actions` vendor
10
+ * event plus the `function_call` entries themselves.
11
+ *
12
+ * Input types are structural on purpose. That commit duck-types items
13
+ * (`"status" in item`, `type.endsWith("_call")`) instead of switching on the
14
+ * SDK union, and the contract is byte-for-byte output against that commit.
15
+ * An optional `openai` peer would not make the mapping exhaustive the way
16
+ * `@anthropic-ai/sdk` does for Managed Agents.
17
+ */
18
+ import { type OpenMAEvent } from "../../session-events/openma.js";
19
+ export interface OpenAIAgentsDecodeContext {
20
+ sessionId: string;
21
+ /**
22
+ * Replaces `new Date()` in the backchat mapper. Turn events ignore this
23
+ * and use `completed_at ?? created_at` (Unix seconds → ISO).
24
+ */
25
+ now: () => string;
26
+ }
27
+ export interface OpenAIAgentsPendingContext extends OpenAIAgentsDecodeContext {
28
+ /**
29
+ * History supplies `required:${uuid}`. Stream session events derive
30
+ * `${event_id}:required` themselves.
31
+ */
32
+ eventId: string;
33
+ }
34
+ export interface OpenAIAgentsItem {
35
+ type: string;
36
+ id?: string | null;
37
+ turn_id?: string;
38
+ status?: string;
39
+ role?: string;
40
+ content?: unknown;
41
+ summary?: unknown;
42
+ call_id?: string;
43
+ output?: unknown;
44
+ error?: unknown;
45
+ name?: unknown;
46
+ arguments?: unknown;
47
+ command?: unknown;
48
+ [key: string]: unknown;
49
+ }
50
+ export interface OpenAIAgentsTurn {
51
+ id: string;
52
+ status: string;
53
+ created_at: number;
54
+ completed_at?: number | null;
55
+ error?: {
56
+ message?: string;
57
+ [key: string]: unknown;
58
+ } | null;
59
+ [key: string]: unknown;
60
+ }
61
+ export interface OpenAIAgentsRequiredAction {
62
+ type: string;
63
+ call_id?: string;
64
+ name?: string;
65
+ arguments?: unknown;
66
+ turn_id?: string;
67
+ [key: string]: unknown;
68
+ }
69
+ export interface OpenAIAgentsSessionSnapshot {
70
+ status?: string;
71
+ error?: unknown;
72
+ required_actions?: readonly OpenAIAgentsRequiredAction[];
73
+ [key: string]: unknown;
74
+ }
75
+ export interface OpenAIAgentsStreamEvent {
76
+ type: string;
77
+ event_id: string;
78
+ item_id?: string;
79
+ delta?: string;
80
+ turn_id?: string | null;
81
+ item?: OpenAIAgentsItem;
82
+ turn?: OpenAIAgentsTurn;
83
+ session?: OpenAIAgentsSessionSnapshot;
84
+ [key: string]: unknown;
85
+ }
86
+ /** Fields backchat reads off a pending `function_call`. Not `custom_result`. */
87
+ export interface OpenAIAgentsPendingFunctionCall {
88
+ type: "function_call";
89
+ call_id: string;
90
+ name: string;
91
+ arguments: unknown;
92
+ turn_id: string;
93
+ }
94
+ export interface OpenAIAgentsPendingResult {
95
+ event: OpenMAEvent;
96
+ functionCalls: OpenAIAgentsPendingFunctionCall[];
97
+ }
98
+ export declare function decodeOpenAIAgentsItem(item: OpenAIAgentsItem, context: OpenAIAgentsDecodeContext): OpenMAEvent;
99
+ export declare function decodeOpenAIAgentsTurn(turn: OpenAIAgentsTurn, context: OpenAIAgentsDecodeContext): OpenMAEvent;
100
+ export declare function decodeOpenAIAgentsPendingActions(session: OpenAIAgentsSessionSnapshot, context: OpenAIAgentsPendingContext): OpenAIAgentsPendingResult;
101
+ export declare function decodeOpenAIAgentsStreamEvent(event: OpenAIAgentsStreamEvent, context: OpenAIAgentsDecodeContext): OpenMAEvent[];
102
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/protocol/openai-agents/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,142 @@
1
+ /**
2
+ * OpenAI Agents → OpenMA event decoder.
3
+ *
4
+ * Direct port of backchat `DirectAgentRuntime` at `64fd74d`
5
+ * (`src/main/direct-agent-runtime.ts`): `#item`, `#turn`, `#openaiEvent`,
6
+ * `#pending`, `#vendor`, and `#event`. `#wrap` stays in backchat; it only
7
+ * builds the desktop task envelope around the canonical event.
8
+ * `pendingActions` / `custom_result` stay there too.
9
+ * `decodeOpenAIAgentsPendingActions` returns the `required_actions` vendor
10
+ * event plus the `function_call` entries themselves.
11
+ *
12
+ * Input types are structural on purpose. That commit duck-types items
13
+ * (`"status" in item`, `type.endsWith("_call")`) instead of switching on the
14
+ * SDK union, and the contract is byte-for-byte output against that commit.
15
+ * An optional `openai` peer would not make the mapping exhaustive the way
16
+ * `@anthropic-ai/sdk` does for Managed Agents.
17
+ */
18
+ import { createOpenMAEvent, createVendorEvent, } from "../../session-events/openma.js";
19
+ const SOURCE = { kind: "harness", harness: "openai-agents" };
20
+ const TURN_EVENT_TYPES = {
21
+ completed: "turn.completed",
22
+ failed: "turn.failed",
23
+ cancelled: "turn.cancelled",
24
+ queued: "turn.queued",
25
+ in_progress: "session.running",
26
+ waiting: "session.running",
27
+ };
28
+ /** Same expression as backchat `64fd74d`: `b.text ?? ""`, joined with `""`. */
29
+ function contentText(content) {
30
+ return typeof content === "string"
31
+ ? content
32
+ : Array.isArray(content)
33
+ ? content.map((block) => block.text ?? "").join("")
34
+ : "";
35
+ }
36
+ function isoFromSeconds(seconds) {
37
+ return new Date(seconds * 1000).toISOString();
38
+ }
39
+ function canonical(context, id, type, data, turnId, occurredAt = context.now()) {
40
+ return createOpenMAEvent({
41
+ event_id: id,
42
+ session_id: context.sessionId,
43
+ ...(turnId ? { turn_id: turnId } : {}),
44
+ source: SOURCE,
45
+ occurred_at: occurredAt,
46
+ type,
47
+ data,
48
+ });
49
+ }
50
+ function vendor(context, id, name, data, turnId) {
51
+ return createVendorEvent({
52
+ event_id: id,
53
+ session_id: context.sessionId,
54
+ ...(turnId ? { turn_id: turnId } : {}),
55
+ source: SOURCE,
56
+ occurred_at: context.now(),
57
+ harness: "openai-agents",
58
+ namespace: "agents",
59
+ name,
60
+ data,
61
+ });
62
+ }
63
+ export function decodeOpenAIAgentsItem(item, context) {
64
+ const id = item.id ?? `${item.turn_id}:user`;
65
+ if (item.type === "message") {
66
+ return canonical(context, `item:${id}:${item.status}`, item.role === "user" ? "user.message" : "agent.message", { message_id: id, text: contentText(item.content), content: item.content }, item.turn_id);
67
+ }
68
+ if (item.type === "reasoning") {
69
+ return canonical(context, `item:${id}`, "agent.thinking", { message_id: id, text: contentText(item.summary) }, item.turn_id);
70
+ }
71
+ if (item.type === "function_call_output") {
72
+ return canonical(context, `item:${id}`, item.status === "failed" ? "tool.failed" : "tool.completed", { tool_call_id: item.call_id, raw_output: item.output, error: item.error }, item.turn_id);
73
+ }
74
+ if ("status" in item && (item.type.endsWith("_call") || item.type === "command_execution")) {
75
+ const value = item;
76
+ return canonical(context, `item:${id}:${value.status}`, value.status === "failed"
77
+ ? "tool.failed"
78
+ : value.status === "completed"
79
+ ? "tool.completed"
80
+ : "tool.started", {
81
+ tool_call_id: value.call_id ?? id,
82
+ tool_name: value.name ?? item.type,
83
+ title: value.name ?? item.type,
84
+ raw_input: value.arguments ?? value.command ?? item,
85
+ raw_output: value.output,
86
+ error: value.error,
87
+ }, item.turn_id);
88
+ }
89
+ return vendor(context, `item:${id}`, item.type, item, item.turn_id);
90
+ }
91
+ export function decodeOpenAIAgentsTurn(turn, context) {
92
+ const type = TURN_EVENT_TYPES[turn.status];
93
+ return canonical(context, `turn:${turn.id}:${turn.status}`, type, { error: turn.error, message: turn.error?.message }, turn.id, isoFromSeconds((turn.completed_at ?? turn.created_at)));
94
+ }
95
+ export function decodeOpenAIAgentsPendingActions(session, context) {
96
+ const actions = session.required_actions ?? [];
97
+ const functionCalls = actions.flatMap((action) => {
98
+ if (action.type !== "function_call")
99
+ return [];
100
+ return [{
101
+ type: "function_call",
102
+ call_id: action.call_id,
103
+ name: action.name,
104
+ arguments: action.arguments,
105
+ turn_id: action.turn_id,
106
+ }];
107
+ });
108
+ return {
109
+ event: vendor(context, context.eventId, "required_actions", actions),
110
+ functionCalls,
111
+ };
112
+ }
113
+ export function decodeOpenAIAgentsStreamEvent(event, context) {
114
+ if (event.type === "agent.session.turn.item.added"
115
+ || event.type === "agent.session.turn.item.done") {
116
+ return [decodeOpenAIAgentsItem(event.item, context)];
117
+ }
118
+ if (event.type === "agent.session.turn.output_text.delta") {
119
+ return [canonical(context, event.event_id, "agent.message_chunk", { message_id: event.item_id, text: event.delta }, event.turn_id ?? undefined)];
120
+ }
121
+ if ("turn" in event) {
122
+ return [decodeOpenAIAgentsTurn(event.turn, context)];
123
+ }
124
+ if ("session" in event) {
125
+ const session = event.session;
126
+ const type = session.status === "idle"
127
+ ? "session.idle"
128
+ : session.status === "failed"
129
+ ? "session.error"
130
+ : "session.running";
131
+ return [
132
+ canonical(context, event.event_id, type, { message: session.error }),
133
+ decodeOpenAIAgentsPendingActions(session, {
134
+ ...context,
135
+ eventId: `${event.event_id}:required`,
136
+ }).event,
137
+ ];
138
+ }
139
+ const turnId = "turn_id" in event ? event.turn_id ?? undefined : undefined;
140
+ return [vendor(context, event.event_id, event.type, event, turnId)];
141
+ }
142
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/protocol/openai-agents/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export type AcpSystemNotice = {
2
+ message: string;
3
+ tone: "warning";
4
+ };
5
+ export declare function splitAcpSystemNoticeText(text: string): {
6
+ notice?: string;
7
+ transcript: string;
8
+ };
9
+ export declare function extractAcpSystemNotice(event: unknown): AcpSystemNotice | null;
10
+ //# sourceMappingURL=acp-system-notices.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acp-system-notices.d.ts","sourceRoot":"","sources":["../../src/session-events/acp-system-notices.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;CACjB,CAAC;AAWF,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB,CAgBA;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,GAAG,IAAI,CAsB7E"}
@@ -0,0 +1,46 @@
1
+ const CODEX_SKILL_CONTEXT_WARNING = /^Warning:\s*Skill descriptions were shortened to fit the (?:\d+%\s+)?skills context budget\./;
2
+ function asRecord(value) {
3
+ return value !== null && typeof value === "object"
4
+ ? value
5
+ : null;
6
+ }
7
+ export function splitAcpSystemNoticeText(text) {
8
+ const candidate = text.trimStart();
9
+ if (!CODEX_SKILL_CONTEXT_WARNING.test(candidate)) {
10
+ return { transcript: text };
11
+ }
12
+ const paragraphBreak = candidate.search(/\r?\n[\t ]*\r?\n/);
13
+ if (paragraphBreak < 0) {
14
+ return { notice: candidate.trim(), transcript: "" };
15
+ }
16
+ const separator = candidate
17
+ .slice(paragraphBreak)
18
+ .match(/^\r?\n[\t ]*\r?\n/)?.[0] ?? "";
19
+ return {
20
+ notice: candidate.slice(0, paragraphBreak).trim(),
21
+ transcript: candidate.slice(paragraphBreak + separator.length).trimStart(),
22
+ };
23
+ }
24
+ export function extractAcpSystemNotice(event) {
25
+ const outer = asRecord(event);
26
+ const wrapped = asRecord(outer?.update);
27
+ const inner = wrapped ?? outer;
28
+ if (!inner || inner.sessionUpdate !== "agent_message_chunk")
29
+ return null;
30
+ const meta = asRecord(inner._meta);
31
+ const codex = asRecord(meta?.codex);
32
+ if (codex?.phase === "final_answer")
33
+ return null;
34
+ const piAcp = asRecord(meta?.piAcp);
35
+ const piNotify = asRecord(piAcp?.notify);
36
+ const piLevel = piNotify?.level;
37
+ const content = asRecord(inner.content);
38
+ const text = typeof content?.text === "string" ? content.text.trim() : "";
39
+ if (codex?.phase !== "final_answer" && splitAcpSystemNoticeText(text).notice) {
40
+ return { message: splitAcpSystemNoticeText(text).notice, tone: "warning" };
41
+ }
42
+ if (piLevel !== "warning" && piLevel !== "error")
43
+ return null;
44
+ return { message: text, tone: "warning" };
45
+ }
46
+ //# sourceMappingURL=acp-system-notices.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acp-system-notices.js","sourceRoot":"","sources":["../../src/session-events/acp-system-notices.ts"],"names":[],"mappings":"AAKA,MAAM,2BAA2B,GAC/B,8FAA8F,CAAC;AAEjG,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAChD,CAAC,CAAE,KAAiC;QACpC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAAY;IAInD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IACnC,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACjD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAC9B,CAAC;IACD,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAC5D,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;IACtD,CAAC;IACD,MAAM,SAAS,GAAG,SAAS;SACxB,KAAK,CAAC,cAAc,CAAC;SACrB,KAAK,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACzC,OAAO;QACL,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,IAAI,EAAE;QACjD,UAAU,EAAE,SAAS,CAAC,KAAK,CAAC,cAAc,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE;KAC3E,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACnD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9B,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,OAAO,IAAI,KAAK,CAAC;IAC/B,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,aAAa,KAAK,qBAAqB;QAAE,OAAO,IAAI,CAAC;IAEzE,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACpC,IAAI,KAAK,EAAE,KAAK,KAAK,cAAc;QAAE,OAAO,IAAI,CAAC;IAEjD,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,QAAQ,EAAE,KAAK,CAAC;IAEhC,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,OAAO,OAAO,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,IAAI,KAAK,EAAE,KAAK,KAAK,cAAc,IAAI,wBAAwB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;QAC7E,OAAO,EAAE,OAAO,EAAE,wBAAwB,CAAC,IAAI,CAAC,CAAC,MAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC9E,CAAC;IACD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IAE9D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AAC5C,CAAC"}
@@ -0,0 +1,214 @@
1
+ /**
2
+ * Reduce an array of ACP `session.event` payloads into the bubble structure
3
+ * the chat view renders.
4
+ *
5
+ * - `agent_message_chunk` (type=text) → concatenated into a single
6
+ * assistant bubble (one per turn).
7
+ * - `agent_thought_chunk` (type=text) → concatenated into an optional
8
+ * "Thinking" reasoning block above the assistant bubble.
9
+ * - `tool_call` → a new `ToolEntry` with status/title/etc, content[]
10
+ * blocks (diff / terminal / image / content), and locations[].
11
+ * - `tool_call_update` → PATCH onto an existing tool by toolCallId.
12
+ * - `plan` → REPLACE the current plan (no merging).
13
+ * - `available_commands_update` → REPLACE the per-session slash command
14
+ * list. The session store, not reduceTurn, owns this — it's
15
+ * session-scoped, not turn-scoped — but we surface it here so the
16
+ * reducer test can verify the dispatch path.
17
+ * - `current_mode_update` → REPLACE the agent's current mode id.
18
+ * - session-level metadata is handled by SessionStore before this reducer.
19
+ *
20
+ * Designed to be pure: pass an immutable event list, get a snapshot.
21
+ * Re-running on each render is cheap because events list grows linearly
22
+ * with the turn length (a few hundred at most).
23
+ */
24
+ export { extractAcpSystemNotice, type AcpSystemNotice } from "./acp-system-notices.js";
25
+ /** Internal transport context added when the ACP SDK gives OpenMA a
26
+ * notification-scoped `_meta` alongside `params.update`. The explicit key
27
+ * keeps wire-layer metadata separate from update/harness `_meta` while the
28
+ * existing flat update shape remains compatible with consumers. */
29
+ export declare const ACP_NOTIFICATION_CONTEXT_KEY: "_openma.acp.notification";
30
+ export declare function preserveAcpNotificationContext(params: unknown): unknown;
31
+ export interface ChunkText {
32
+ text: string;
33
+ }
34
+ export interface ToolEntry {
35
+ toolCallId: string;
36
+ title?: string;
37
+ kind?: string;
38
+ status?: "pending" | "in_progress" | "completed" | "failed" | string;
39
+ rawInput?: unknown;
40
+ rawOutput?: unknown;
41
+ toolName?: string;
42
+ /** Vendor/implementation extension data carried by ACP `_meta`. ACP
43
+ * explicitly reserves this shape for custom protocol details. */
44
+ meta?: Record<string, unknown>;
45
+ /** Known vendor extension used by claude-agent-acp to associate subagent
46
+ * child tool calls with the parent Task/Agent tool use. */
47
+ parentToolUseId?: string;
48
+ /** ACP tool content blocks. Each block is one of:
49
+ * { type: "content", content: { type: "text" | "image" | ..., ... } }
50
+ * { type: "diff", path, oldText, newText }
51
+ * { type: "terminal", terminalId }
52
+ * Patch semantics on tool_call_update: when content arrives in an
53
+ * update, REPLACE the array (matches Zed's reference client). */
54
+ content?: ToolContentBlock[];
55
+ /** Files / URLs the tool touched. Renderer turns these into clickable
56
+ * links above the disclosure. */
57
+ locations?: Array<{
58
+ path?: string;
59
+ line?: number;
60
+ }>;
61
+ }
62
+ interface ToolOutputDelta {
63
+ data: string;
64
+ /** Terminal output is byte-stream-like; MCP progress is line-oriented. */
65
+ separator: string;
66
+ }
67
+ interface NormalizedToolPatch extends Partial<ToolEntry> {
68
+ toolCallId: string;
69
+ /** Incoming-only adapter extension data consumed by reduceTurn. */
70
+ outputDelta?: ToolOutputDelta;
71
+ }
72
+ export type ToolContentBlock = {
73
+ type: "content";
74
+ content?: {
75
+ type?: string;
76
+ text?: string;
77
+ uri?: string;
78
+ name?: string;
79
+ mimeType?: string;
80
+ data?: string;
81
+ };
82
+ } | {
83
+ type: "diff";
84
+ path?: string;
85
+ oldText?: string;
86
+ newText?: string;
87
+ } | {
88
+ type: "terminal";
89
+ terminalId?: string;
90
+ };
91
+ export interface PlanEntry {
92
+ id?: string;
93
+ content: string;
94
+ status?: "pending" | "in_progress" | "completed" | "cancelled";
95
+ priority?: "high" | "medium" | "low";
96
+ }
97
+ export interface PlanDocument {
98
+ id?: string;
99
+ title?: string;
100
+ type?: "markdown" | "file";
101
+ markdown?: string;
102
+ uri?: string;
103
+ }
104
+ export type TimelineItem = {
105
+ /** Continuous block of assistant text — concatenated agent_message_chunk
106
+ * events that arrived without being interrupted by a tool_call. The
107
+ * next tool_call starts a new segment. */
108
+ kind: "assistant_text";
109
+ text: string;
110
+ phase?: "commentary" | "final_answer";
111
+ } | {
112
+ /** One logical thought message. Chunks sharing a messageId patch this
113
+ * item; a new messageId appends a new item to the activity timeline. */
114
+ kind: "thought";
115
+ messageId?: string;
116
+ text: string;
117
+ } | {
118
+ /** Pointer to a ToolEntry; the renderer looks the entry up in `tools`
119
+ * by id rather than embedding it inline so tool_call_update events
120
+ * that PATCH the tool still flow through. */
121
+ kind: "tool";
122
+ toolCallId: string;
123
+ };
124
+ export interface TurnRender {
125
+ thoughtText: string;
126
+ /** The current, replaceable thought status at the tail of a running
127
+ * activity stream. Cleared as soon as commentary or a tool follows it. */
128
+ currentThoughtText: string;
129
+ assistantText: string;
130
+ tools: ToolEntry[];
131
+ plan: PlanEntry[];
132
+ planDocument?: PlanDocument;
133
+ /** Synthetic runtime notes that belong in the activity transcript. */
134
+ notes: string[];
135
+ /** Time-ordered list of "what to render between thought and assistant
136
+ * tail". Assistant message chunks and tool_calls interleave in the
137
+ * ACP stream — agents say "I'll look at X", call read_text_file,
138
+ * then say "now I'll edit Y" and call write_text_file. Lumping all
139
+ * text after all tools (the old behavior) reads as "did a bunch of
140
+ * things, then explained". This list preserves the order. */
141
+ timeline: TimelineItem[];
142
+ }
143
+ export interface AvailableCommand {
144
+ name: string;
145
+ description?: string;
146
+ input?: {
147
+ hint?: string;
148
+ } | null;
149
+ }
150
+ export type ParsedAcpEvent = {
151
+ kind: "text";
152
+ text: string;
153
+ phase?: "commentary" | "final_answer";
154
+ messageId?: string;
155
+ /** Claude Agent ACP's nested transcript correlation. */
156
+ parentToolUseId?: string;
157
+ event: unknown;
158
+ } | {
159
+ kind: "thought";
160
+ text: string;
161
+ messageId?: string;
162
+ /** Claude Agent ACP's nested transcript correlation. */
163
+ parentToolUseId?: string;
164
+ event: unknown;
165
+ } | {
166
+ kind: "notice";
167
+ notice: string;
168
+ event: unknown;
169
+ } | {
170
+ kind: "tool_call";
171
+ tool: NormalizedToolPatch;
172
+ event: unknown;
173
+ } | {
174
+ kind: "commands";
175
+ commands: AvailableCommand[];
176
+ event: unknown;
177
+ } | {
178
+ kind: "plan";
179
+ planId?: string;
180
+ updateMode?: "replace" | "merge";
181
+ plan: PlanEntry[];
182
+ document?: PlanDocument;
183
+ event: unknown;
184
+ } | {
185
+ kind: "plan_document";
186
+ document?: PlanDocument;
187
+ event: unknown;
188
+ } | {
189
+ kind: "plan_removed";
190
+ planId?: string;
191
+ event: unknown;
192
+ } | {
193
+ kind: "note";
194
+ note: string;
195
+ event: unknown;
196
+ } | {
197
+ kind: "silent";
198
+ event: unknown;
199
+ } | {
200
+ kind: "raw";
201
+ event: unknown;
202
+ };
203
+ export declare function sessionUpdateInner(event: unknown): Record<string, unknown>;
204
+ export declare function sessionUpdateType(event: unknown): string | undefined;
205
+ export declare function sanitizeThoughtText(text: string): string;
206
+ export declare function parseAcpEvent(event: unknown): ParsedAcpEvent;
207
+ export declare function mergeStreamingText(accumulated: string, incoming: string): string;
208
+ export declare function reduceTurn(events: readonly {
209
+ payload: unknown;
210
+ }[]): TurnRender;
211
+ export declare function latestThoughtSegment(text: string): string;
212
+ /** @deprecated Use @openma/common/protocol/acp for the SDK codec. */
213
+ export * from "../protocol/acp/index.js";
214
+ //# sourceMappingURL=acp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acp.d.ts","sourceRoot":"","sources":["../../src/session-events/acp.ts"],"names":[],"mappings":"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"}