@yjjeong/omg 0.1.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 (702) hide show
  1. package/CHANGELOG.md +85 -0
  2. package/LICENSE +21 -0
  3. package/README.md +153 -0
  4. package/dist/cli/args.d.ts +39 -0
  5. package/dist/cli/args.d.ts.map +1 -0
  6. package/dist/cli/args.js +129 -0
  7. package/dist/cli/args.js.map +1 -0
  8. package/dist/cli/autoCommit.d.ts +20 -0
  9. package/dist/cli/autoCommit.d.ts.map +1 -0
  10. package/dist/cli/autoCommit.js +121 -0
  11. package/dist/cli/autoCommit.js.map +1 -0
  12. package/dist/cli/bgTasks.d.ts +57 -0
  13. package/dist/cli/bgTasks.d.ts.map +1 -0
  14. package/dist/cli/bgTasks.js +193 -0
  15. package/dist/cli/bgTasks.js.map +1 -0
  16. package/dist/cli/compactor.d.ts +48 -0
  17. package/dist/cli/compactor.d.ts.map +1 -0
  18. package/dist/cli/compactor.js +73 -0
  19. package/dist/cli/compactor.js.map +1 -0
  20. package/dist/cli/doctor.d.ts +77 -0
  21. package/dist/cli/doctor.d.ts.map +1 -0
  22. package/dist/cli/doctor.js +279 -0
  23. package/dist/cli/doctor.js.map +1 -0
  24. package/dist/cli/gitStatus.d.ts +7 -0
  25. package/dist/cli/gitStatus.d.ts.map +1 -0
  26. package/dist/cli/gitStatus.js +70 -0
  27. package/dist/cli/gitStatus.js.map +1 -0
  28. package/dist/cli/handoff.d.ts +36 -0
  29. package/dist/cli/handoff.d.ts.map +1 -0
  30. package/dist/cli/handoff.js +60 -0
  31. package/dist/cli/handoff.js.map +1 -0
  32. package/dist/cli/interactive/brokers.d.ts +31 -0
  33. package/dist/cli/interactive/brokers.d.ts.map +1 -0
  34. package/dist/cli/interactive/brokers.js +259 -0
  35. package/dist/cli/interactive/brokers.js.map +1 -0
  36. package/dist/cli/interactive/index.d.ts +8 -0
  37. package/dist/cli/interactive/index.d.ts.map +1 -0
  38. package/dist/cli/interactive/index.js +731 -0
  39. package/dist/cli/interactive/index.js.map +1 -0
  40. package/dist/cli/interactive/proxyQuestions.d.ts +15 -0
  41. package/dist/cli/interactive/proxyQuestions.d.ts.map +1 -0
  42. package/dist/cli/interactive/proxyQuestions.js +48 -0
  43. package/dist/cli/interactive/proxyQuestions.js.map +1 -0
  44. package/dist/cli/interactive/tabManager.d.ts +32 -0
  45. package/dist/cli/interactive/tabManager.d.ts.map +1 -0
  46. package/dist/cli/interactive/tabManager.js +244 -0
  47. package/dist/cli/interactive/tabManager.js.map +1 -0
  48. package/dist/cli/interactive/teamHint.d.ts +2 -0
  49. package/dist/cli/interactive/teamHint.d.ts.map +1 -0
  50. package/dist/cli/interactive/teamHint.js +14 -0
  51. package/dist/cli/interactive/teamHint.js.map +1 -0
  52. package/dist/cli/login.d.ts +13 -0
  53. package/dist/cli/login.d.ts.map +1 -0
  54. package/dist/cli/login.js +53 -0
  55. package/dist/cli/login.js.map +1 -0
  56. package/dist/cli/modes/demo.d.ts +12 -0
  57. package/dist/cli/modes/demo.d.ts.map +1 -0
  58. package/dist/cli/modes/demo.js +48 -0
  59. package/dist/cli/modes/demo.js.map +1 -0
  60. package/dist/cli/modes/doctor.d.ts +28 -0
  61. package/dist/cli/modes/doctor.d.ts.map +1 -0
  62. package/dist/cli/modes/doctor.js +79 -0
  63. package/dist/cli/modes/doctor.js.map +1 -0
  64. package/dist/cli/modes/login.d.ts +5 -0
  65. package/dist/cli/modes/login.d.ts.map +1 -0
  66. package/dist/cli/modes/login.js +40 -0
  67. package/dist/cli/modes/login.js.map +1 -0
  68. package/dist/cli/modes/mcpServe.d.ts +9 -0
  69. package/dist/cli/modes/mcpServe.d.ts.map +1 -0
  70. package/dist/cli/modes/mcpServe.js +112 -0
  71. package/dist/cli/modes/mcpServe.js.map +1 -0
  72. package/dist/cli/modes/orchestrator.d.ts +14 -0
  73. package/dist/cli/modes/orchestrator.d.ts.map +1 -0
  74. package/dist/cli/modes/orchestrator.js +64 -0
  75. package/dist/cli/modes/orchestrator.js.map +1 -0
  76. package/dist/cli/modes/team.d.ts +14 -0
  77. package/dist/cli/modes/team.d.ts.map +1 -0
  78. package/dist/cli/modes/team.js +87 -0
  79. package/dist/cli/modes/team.js.map +1 -0
  80. package/dist/cli/registry.d.ts +3 -0
  81. package/dist/cli/registry.d.ts.map +1 -0
  82. package/dist/cli/registry.js +15 -0
  83. package/dist/cli/registry.js.map +1 -0
  84. package/dist/cli/slash/core.d.ts +3 -0
  85. package/dist/cli/slash/core.d.ts.map +1 -0
  86. package/dist/cli/slash/core.js +509 -0
  87. package/dist/cli/slash/core.js.map +1 -0
  88. package/dist/cli/slash/index.d.ts +3 -0
  89. package/dist/cli/slash/index.d.ts.map +1 -0
  90. package/dist/cli/slash/index.js +28 -0
  91. package/dist/cli/slash/index.js.map +1 -0
  92. package/dist/cli/slash/modes.d.ts +3 -0
  93. package/dist/cli/slash/modes.d.ts.map +1 -0
  94. package/dist/cli/slash/modes.js +530 -0
  95. package/dist/cli/slash/modes.js.map +1 -0
  96. package/dist/cli/slash/session.d.ts +3 -0
  97. package/dist/cli/slash/session.d.ts.map +1 -0
  98. package/dist/cli/slash/session.js +376 -0
  99. package/dist/cli/slash/session.js.map +1 -0
  100. package/dist/cli/slash/shared.d.ts +43 -0
  101. package/dist/cli/slash/shared.d.ts.map +1 -0
  102. package/dist/cli/slash/shared.js +6 -0
  103. package/dist/cli/slash/shared.js.map +1 -0
  104. package/dist/cli/slash/tabs.d.ts +3 -0
  105. package/dist/cli/slash/tabs.d.ts.map +1 -0
  106. package/dist/cli/slash/tabs.js +497 -0
  107. package/dist/cli/slash/tabs.js.map +1 -0
  108. package/dist/cli/slash/team.d.ts +3 -0
  109. package/dist/cli/slash/team.d.ts.map +1 -0
  110. package/dist/cli/slash/team.js +85 -0
  111. package/dist/cli/slash/team.js.map +1 -0
  112. package/dist/cli/slash.d.ts +3 -0
  113. package/dist/cli/slash.d.ts.map +1 -0
  114. package/dist/cli/slash.js +8 -0
  115. package/dist/cli/slash.js.map +1 -0
  116. package/dist/cli/teamPipeline.d.ts +42 -0
  117. package/dist/cli/teamPipeline.d.ts.map +1 -0
  118. package/dist/cli/teamPipeline.js +406 -0
  119. package/dist/cli/teamPipeline.js.map +1 -0
  120. package/dist/cli/touchedFiles.d.ts +14 -0
  121. package/dist/cli/touchedFiles.d.ts.map +1 -0
  122. package/dist/cli/touchedFiles.js +66 -0
  123. package/dist/cli/touchedFiles.js.map +1 -0
  124. package/dist/cli/turn.d.ts +47 -0
  125. package/dist/cli/turn.d.ts.map +1 -0
  126. package/dist/cli/turn.js +626 -0
  127. package/dist/cli/turn.js.map +1 -0
  128. package/dist/cli/types.d.ts +47 -0
  129. package/dist/cli/types.d.ts.map +1 -0
  130. package/dist/cli/types.js +5 -0
  131. package/dist/cli/types.js.map +1 -0
  132. package/dist/cli/uiSession.d.ts +10 -0
  133. package/dist/cli/uiSession.d.ts.map +1 -0
  134. package/dist/cli/uiSession.js +66 -0
  135. package/dist/cli/uiSession.js.map +1 -0
  136. package/dist/cli.d.ts +3 -0
  137. package/dist/cli.d.ts.map +1 -0
  138. package/dist/cli.js +128 -0
  139. package/dist/cli.js.map +1 -0
  140. package/dist/core/adapter.d.ts +47 -0
  141. package/dist/core/adapter.d.ts.map +1 -0
  142. package/dist/core/adapter.js +48 -0
  143. package/dist/core/adapter.js.map +1 -0
  144. package/dist/core/adapters/anthropic.d.ts +35 -0
  145. package/dist/core/adapters/anthropic.d.ts.map +1 -0
  146. package/dist/core/adapters/anthropic.js +203 -0
  147. package/dist/core/adapters/anthropic.js.map +1 -0
  148. package/dist/core/adapters/claudeCli.d.ts +126 -0
  149. package/dist/core/adapters/claudeCli.d.ts.map +1 -0
  150. package/dist/core/adapters/claudeCli.js +584 -0
  151. package/dist/core/adapters/claudeCli.js.map +1 -0
  152. package/dist/core/adapters/cliAdapterBase.d.ts +48 -0
  153. package/dist/core/adapters/cliAdapterBase.d.ts.map +1 -0
  154. package/dist/core/adapters/cliAdapterBase.js +105 -0
  155. package/dist/core/adapters/cliAdapterBase.js.map +1 -0
  156. package/dist/core/adapters/cliStderr.d.ts +35 -0
  157. package/dist/core/adapters/cliStderr.d.ts.map +1 -0
  158. package/dist/core/adapters/cliStderr.js +87 -0
  159. package/dist/core/adapters/cliStderr.js.map +1 -0
  160. package/dist/core/adapters/codexCli.d.ts +113 -0
  161. package/dist/core/adapters/codexCli.d.ts.map +1 -0
  162. package/dist/core/adapters/codexCli.js +424 -0
  163. package/dist/core/adapters/codexCli.js.map +1 -0
  164. package/dist/core/adapters/gemini.d.ts +17 -0
  165. package/dist/core/adapters/gemini.d.ts.map +1 -0
  166. package/dist/core/adapters/gemini.js +133 -0
  167. package/dist/core/adapters/gemini.js.map +1 -0
  168. package/dist/core/adapters/geminiCli.d.ts +91 -0
  169. package/dist/core/adapters/geminiCli.d.ts.map +1 -0
  170. package/dist/core/adapters/geminiCli.js +276 -0
  171. package/dist/core/adapters/geminiCli.js.map +1 -0
  172. package/dist/core/adapters/nudges.d.ts +21 -0
  173. package/dist/core/adapters/nudges.d.ts.map +1 -0
  174. package/dist/core/adapters/nudges.js +75 -0
  175. package/dist/core/adapters/nudges.js.map +1 -0
  176. package/dist/core/adapters/openai.d.ts +17 -0
  177. package/dist/core/adapters/openai.d.ts.map +1 -0
  178. package/dist/core/adapters/openai.js +138 -0
  179. package/dist/core/adapters/openai.js.map +1 -0
  180. package/dist/core/adapters/parseFailures.d.ts +10 -0
  181. package/dist/core/adapters/parseFailures.d.ts.map +1 -0
  182. package/dist/core/adapters/parseFailures.js +35 -0
  183. package/dist/core/adapters/parseFailures.js.map +1 -0
  184. package/dist/core/adapters/utils.d.ts +11 -0
  185. package/dist/core/adapters/utils.d.ts.map +1 -0
  186. package/dist/core/adapters/utils.js +33 -0
  187. package/dist/core/adapters/utils.js.map +1 -0
  188. package/dist/core/askBroker.d.ts +11 -0
  189. package/dist/core/askBroker.d.ts.map +1 -0
  190. package/dist/core/askBroker.js +78 -0
  191. package/dist/core/askBroker.js.map +1 -0
  192. package/dist/core/atomicWrite.d.ts +5 -0
  193. package/dist/core/atomicWrite.d.ts.map +1 -0
  194. package/dist/core/atomicWrite.js +18 -0
  195. package/dist/core/atomicWrite.js.map +1 -0
  196. package/dist/core/brokers/askBroker.d.ts +11 -0
  197. package/dist/core/brokers/askBroker.d.ts.map +1 -0
  198. package/dist/core/brokers/askBroker.js +78 -0
  199. package/dist/core/brokers/askBroker.js.map +1 -0
  200. package/dist/core/brokers/permissionBroker.d.ts +7 -0
  201. package/dist/core/brokers/permissionBroker.d.ts.map +1 -0
  202. package/dist/core/brokers/permissionBroker.js +63 -0
  203. package/dist/core/brokers/permissionBroker.js.map +1 -0
  204. package/dist/core/brokers/socketBroker.d.ts +35 -0
  205. package/dist/core/brokers/socketBroker.d.ts.map +1 -0
  206. package/dist/core/brokers/socketBroker.js +74 -0
  207. package/dist/core/brokers/socketBroker.js.map +1 -0
  208. package/dist/core/clipboard.d.ts +4 -0
  209. package/dist/core/clipboard.d.ts.map +1 -0
  210. package/dist/core/clipboard.js +46 -0
  211. package/dist/core/clipboard.js.map +1 -0
  212. package/dist/core/compactor.d.ts +32 -0
  213. package/dist/core/compactor.d.ts.map +1 -0
  214. package/dist/core/compactor.js +91 -0
  215. package/dist/core/compactor.js.map +1 -0
  216. package/dist/core/consensusEngine.d.ts +21 -0
  217. package/dist/core/consensusEngine.d.ts.map +1 -0
  218. package/dist/core/consensusEngine.js +116 -0
  219. package/dist/core/consensusEngine.js.map +1 -0
  220. package/dist/core/context/contextCompressor.d.ts +10 -0
  221. package/dist/core/context/contextCompressor.d.ts.map +1 -0
  222. package/dist/core/context/contextCompressor.js +54 -0
  223. package/dist/core/context/contextCompressor.js.map +1 -0
  224. package/dist/core/context/contextWindows.d.ts +25 -0
  225. package/dist/core/context/contextWindows.d.ts.map +1 -0
  226. package/dist/core/context/contextWindows.js +101 -0
  227. package/dist/core/context/contextWindows.js.map +1 -0
  228. package/dist/core/context/summarizer.d.ts +65 -0
  229. package/dist/core/context/summarizer.d.ts.map +1 -0
  230. package/dist/core/context/summarizer.js +184 -0
  231. package/dist/core/context/summarizer.js.map +1 -0
  232. package/dist/core/context/usageCache.d.ts +19 -0
  233. package/dist/core/context/usageCache.d.ts.map +1 -0
  234. package/dist/core/context/usageCache.js +157 -0
  235. package/dist/core/context/usageCache.js.map +1 -0
  236. package/dist/core/context/usageWindow.d.ts +19 -0
  237. package/dist/core/context/usageWindow.d.ts.map +1 -0
  238. package/dist/core/context/usageWindow.js +73 -0
  239. package/dist/core/context/usageWindow.js.map +1 -0
  240. package/dist/core/contextCompressor.d.ts +10 -0
  241. package/dist/core/contextCompressor.d.ts.map +1 -0
  242. package/dist/core/contextCompressor.js +54 -0
  243. package/dist/core/contextCompressor.js.map +1 -0
  244. package/dist/core/contextWindows.d.ts +5 -0
  245. package/dist/core/contextWindows.d.ts.map +1 -0
  246. package/dist/core/contextWindows.js +60 -0
  247. package/dist/core/contextWindows.js.map +1 -0
  248. package/dist/core/continuum/digest.d.ts +35 -0
  249. package/dist/core/continuum/digest.d.ts.map +1 -0
  250. package/dist/core/continuum/digest.js +91 -0
  251. package/dist/core/continuum/digest.js.map +1 -0
  252. package/dist/core/continuum/index.d.ts +6 -0
  253. package/dist/core/continuum/index.d.ts.map +1 -0
  254. package/dist/core/continuum/index.js +7 -0
  255. package/dist/core/continuum/index.js.map +1 -0
  256. package/dist/core/continuum/inject.d.ts +9 -0
  257. package/dist/core/continuum/inject.d.ts.map +1 -0
  258. package/dist/core/continuum/inject.js +78 -0
  259. package/dist/core/continuum/inject.js.map +1 -0
  260. package/dist/core/continuum/projectId.d.ts +10 -0
  261. package/dist/core/continuum/projectId.d.ts.map +1 -0
  262. package/dist/core/continuum/projectId.js +60 -0
  263. package/dist/core/continuum/projectId.js.map +1 -0
  264. package/dist/core/continuum/store.d.ts +24 -0
  265. package/dist/core/continuum/store.d.ts.map +1 -0
  266. package/dist/core/continuum/store.js +144 -0
  267. package/dist/core/continuum/store.js.map +1 -0
  268. package/dist/core/continuum/types.d.ts +87 -0
  269. package/dist/core/continuum/types.d.ts.map +1 -0
  270. package/dist/core/continuum/types.js +9 -0
  271. package/dist/core/continuum/types.js.map +1 -0
  272. package/dist/core/dag.d.ts +21 -0
  273. package/dist/core/dag.d.ts.map +1 -0
  274. package/dist/core/dag.js +71 -0
  275. package/dist/core/dag.js.map +1 -0
  276. package/dist/core/director.d.ts +11 -0
  277. package/dist/core/director.d.ts.map +1 -0
  278. package/dist/core/director.js +37 -0
  279. package/dist/core/director.js.map +1 -0
  280. package/dist/core/hookedToolBroker.d.ts +25 -0
  281. package/dist/core/hookedToolBroker.d.ts.map +1 -0
  282. package/dist/core/hookedToolBroker.js +95 -0
  283. package/dist/core/hookedToolBroker.js.map +1 -0
  284. package/dist/core/langHint.d.ts +9 -0
  285. package/dist/core/langHint.d.ts.map +1 -0
  286. package/dist/core/langHint.js +33 -0
  287. package/dist/core/langHint.js.map +1 -0
  288. package/dist/core/mcp/mcpClient.d.ts +42 -0
  289. package/dist/core/mcp/mcpClient.d.ts.map +1 -0
  290. package/dist/core/mcp/mcpClient.js +134 -0
  291. package/dist/core/mcp/mcpClient.js.map +1 -0
  292. package/dist/core/mcp/mcpConfig.d.ts +58 -0
  293. package/dist/core/mcp/mcpConfig.d.ts.map +1 -0
  294. package/dist/core/mcp/mcpConfig.js +148 -0
  295. package/dist/core/mcp/mcpConfig.js.map +1 -0
  296. package/dist/core/mcp/mcpManager.d.ts +31 -0
  297. package/dist/core/mcp/mcpManager.d.ts.map +1 -0
  298. package/dist/core/mcp/mcpManager.js +83 -0
  299. package/dist/core/mcp/mcpManager.js.map +1 -0
  300. package/dist/core/mcpClient.d.ts +42 -0
  301. package/dist/core/mcpClient.d.ts.map +1 -0
  302. package/dist/core/mcpClient.js +134 -0
  303. package/dist/core/mcpClient.js.map +1 -0
  304. package/dist/core/mcpConfig.d.ts +24 -0
  305. package/dist/core/mcpConfig.d.ts.map +1 -0
  306. package/dist/core/mcpConfig.js +74 -0
  307. package/dist/core/mcpConfig.js.map +1 -0
  308. package/dist/core/mcpManager.d.ts +31 -0
  309. package/dist/core/mcpManager.d.ts.map +1 -0
  310. package/dist/core/mcpManager.js +83 -0
  311. package/dist/core/mcpManager.js.map +1 -0
  312. package/dist/core/memory.d.ts +22 -0
  313. package/dist/core/memory.d.ts.map +1 -0
  314. package/dist/core/memory.js +102 -0
  315. package/dist/core/memory.js.map +1 -0
  316. package/dist/core/omgToolManifest.d.ts +34 -0
  317. package/dist/core/omgToolManifest.d.ts.map +1 -0
  318. package/dist/core/omgToolManifest.js +59 -0
  319. package/dist/core/omgToolManifest.js.map +1 -0
  320. package/dist/core/orchestration/consensusEngine.d.ts +21 -0
  321. package/dist/core/orchestration/consensusEngine.d.ts.map +1 -0
  322. package/dist/core/orchestration/consensusEngine.js +116 -0
  323. package/dist/core/orchestration/consensusEngine.js.map +1 -0
  324. package/dist/core/orchestration/dag.d.ts +21 -0
  325. package/dist/core/orchestration/dag.d.ts.map +1 -0
  326. package/dist/core/orchestration/dag.js +71 -0
  327. package/dist/core/orchestration/dag.js.map +1 -0
  328. package/dist/core/orchestration/director.d.ts +11 -0
  329. package/dist/core/orchestration/director.d.ts.map +1 -0
  330. package/dist/core/orchestration/director.js +37 -0
  331. package/dist/core/orchestration/director.js.map +1 -0
  332. package/dist/core/orchestration/orchestrator.d.ts +32 -0
  333. package/dist/core/orchestration/orchestrator.d.ts.map +1 -0
  334. package/dist/core/orchestration/orchestrator.js +214 -0
  335. package/dist/core/orchestration/orchestrator.js.map +1 -0
  336. package/dist/core/orchestration/roleRouter.d.ts +28 -0
  337. package/dist/core/orchestration/roleRouter.d.ts.map +1 -0
  338. package/dist/core/orchestration/roleRouter.js +64 -0
  339. package/dist/core/orchestration/roleRouter.js.map +1 -0
  340. package/dist/core/orchestration/teamRunner.d.ts +69 -0
  341. package/dist/core/orchestration/teamRunner.d.ts.map +1 -0
  342. package/dist/core/orchestration/teamRunner.js +477 -0
  343. package/dist/core/orchestration/teamRunner.js.map +1 -0
  344. package/dist/core/orchestration/types.d.ts +115 -0
  345. package/dist/core/orchestration/types.d.ts.map +1 -0
  346. package/dist/core/orchestration/types.js +71 -0
  347. package/dist/core/orchestration/types.js.map +1 -0
  348. package/dist/core/orchestrator.d.ts +32 -0
  349. package/dist/core/orchestrator.d.ts.map +1 -0
  350. package/dist/core/orchestrator.js +214 -0
  351. package/dist/core/orchestrator.js.map +1 -0
  352. package/dist/core/permissionBroker.d.ts +7 -0
  353. package/dist/core/permissionBroker.d.ts.map +1 -0
  354. package/dist/core/permissionBroker.js +63 -0
  355. package/dist/core/permissionBroker.js.map +1 -0
  356. package/dist/core/planConfig.d.ts +15 -0
  357. package/dist/core/planConfig.d.ts.map +1 -0
  358. package/dist/core/planConfig.js +98 -0
  359. package/dist/core/planConfig.js.map +1 -0
  360. package/dist/core/presetPersistence.d.ts +4 -0
  361. package/dist/core/presetPersistence.d.ts.map +1 -0
  362. package/dist/core/presetPersistence.js +64 -0
  363. package/dist/core/presetPersistence.js.map +1 -0
  364. package/dist/core/roleRouter.d.ts +26 -0
  365. package/dist/core/roleRouter.d.ts.map +1 -0
  366. package/dist/core/roleRouter.js +62 -0
  367. package/dist/core/roleRouter.js.map +1 -0
  368. package/dist/core/sessionList.d.ts +26 -0
  369. package/dist/core/sessionList.d.ts.map +1 -0
  370. package/dist/core/sessionList.js +278 -0
  371. package/dist/core/sessionList.js.map +1 -0
  372. package/dist/core/slugify.d.ts +2 -0
  373. package/dist/core/slugify.d.ts.map +1 -0
  374. package/dist/core/slugify.js +17 -0
  375. package/dist/core/slugify.js.map +1 -0
  376. package/dist/core/socketBroker.d.ts +19 -0
  377. package/dist/core/socketBroker.d.ts.map +1 -0
  378. package/dist/core/socketBroker.js +48 -0
  379. package/dist/core/socketBroker.js.map +1 -0
  380. package/dist/core/state/agentsMdScaffold.d.ts +15 -0
  381. package/dist/core/state/agentsMdScaffold.d.ts.map +1 -0
  382. package/dist/core/state/agentsMdScaffold.js +118 -0
  383. package/dist/core/state/agentsMdScaffold.js.map +1 -0
  384. package/dist/core/state/atomicWrite.d.ts +5 -0
  385. package/dist/core/state/atomicWrite.d.ts.map +1 -0
  386. package/dist/core/state/atomicWrite.js +18 -0
  387. package/dist/core/state/atomicWrite.js.map +1 -0
  388. package/dist/core/state/handoff.d.ts +20 -0
  389. package/dist/core/state/handoff.d.ts.map +1 -0
  390. package/dist/core/state/handoff.js +71 -0
  391. package/dist/core/state/handoff.js.map +1 -0
  392. package/dist/core/state/mcpCatalog.d.ts +11 -0
  393. package/dist/core/state/mcpCatalog.d.ts.map +1 -0
  394. package/dist/core/state/mcpCatalog.js +51 -0
  395. package/dist/core/state/mcpCatalog.js.map +1 -0
  396. package/dist/core/state/mcpRecommendations.d.ts +7 -0
  397. package/dist/core/state/mcpRecommendations.d.ts.map +1 -0
  398. package/dist/core/state/mcpRecommendations.js +57 -0
  399. package/dist/core/state/mcpRecommendations.js.map +1 -0
  400. package/dist/core/state/memory.d.ts +22 -0
  401. package/dist/core/state/memory.d.ts.map +1 -0
  402. package/dist/core/state/memory.js +102 -0
  403. package/dist/core/state/memory.js.map +1 -0
  404. package/dist/core/state/planConfig.d.ts +15 -0
  405. package/dist/core/state/planConfig.d.ts.map +1 -0
  406. package/dist/core/state/planConfig.js +98 -0
  407. package/dist/core/state/planConfig.js.map +1 -0
  408. package/dist/core/state/presetPersistence.d.ts +4 -0
  409. package/dist/core/state/presetPersistence.d.ts.map +1 -0
  410. package/dist/core/state/presetPersistence.js +67 -0
  411. package/dist/core/state/presetPersistence.js.map +1 -0
  412. package/dist/core/state/sessionList.d.ts +26 -0
  413. package/dist/core/state/sessionList.d.ts.map +1 -0
  414. package/dist/core/state/sessionList.js +278 -0
  415. package/dist/core/state/sessionList.js.map +1 -0
  416. package/dist/core/state/stackDetect.d.ts +8 -0
  417. package/dist/core/state/stackDetect.d.ts.map +1 -0
  418. package/dist/core/state/stackDetect.js +40 -0
  419. package/dist/core/state/stackDetect.js.map +1 -0
  420. package/dist/core/state/tabPersistence.d.ts +29 -0
  421. package/dist/core/state/tabPersistence.d.ts.map +1 -0
  422. package/dist/core/state/tabPersistence.js +65 -0
  423. package/dist/core/state/tabPersistence.js.map +1 -0
  424. package/dist/core/tabPersistence.d.ts +29 -0
  425. package/dist/core/tabPersistence.d.ts.map +1 -0
  426. package/dist/core/tabPersistence.js +65 -0
  427. package/dist/core/tabPersistence.js.map +1 -0
  428. package/dist/core/teamRunner.d.ts +42 -0
  429. package/dist/core/teamRunner.d.ts.map +1 -0
  430. package/dist/core/teamRunner.js +248 -0
  431. package/dist/core/teamRunner.js.map +1 -0
  432. package/dist/core/toolGate.d.ts +23 -0
  433. package/dist/core/toolGate.d.ts.map +1 -0
  434. package/dist/core/toolGate.js +51 -0
  435. package/dist/core/toolGate.js.map +1 -0
  436. package/dist/core/toolInterceptor.d.ts +7 -0
  437. package/dist/core/toolInterceptor.d.ts.map +1 -0
  438. package/dist/core/toolInterceptor.js +108 -0
  439. package/dist/core/toolInterceptor.js.map +1 -0
  440. package/dist/core/tools/hookedToolBroker.d.ts +25 -0
  441. package/dist/core/tools/hookedToolBroker.d.ts.map +1 -0
  442. package/dist/core/tools/hookedToolBroker.js +95 -0
  443. package/dist/core/tools/hookedToolBroker.js.map +1 -0
  444. package/dist/core/tools/omgToolManifest.d.ts +42 -0
  445. package/dist/core/tools/omgToolManifest.d.ts.map +1 -0
  446. package/dist/core/tools/omgToolManifest.js +66 -0
  447. package/dist/core/tools/omgToolManifest.js.map +1 -0
  448. package/dist/core/tools/toolGate.d.ts +23 -0
  449. package/dist/core/tools/toolGate.d.ts.map +1 -0
  450. package/dist/core/tools/toolGate.js +51 -0
  451. package/dist/core/tools/toolGate.js.map +1 -0
  452. package/dist/core/tools/toolInterceptor.d.ts +7 -0
  453. package/dist/core/tools/toolInterceptor.d.ts.map +1 -0
  454. package/dist/core/tools/toolInterceptor.js +108 -0
  455. package/dist/core/tools/toolInterceptor.js.map +1 -0
  456. package/dist/core/tools/tools.d.ts +34 -0
  457. package/dist/core/tools/tools.d.ts.map +1 -0
  458. package/dist/core/tools/tools.js +328 -0
  459. package/dist/core/tools/tools.js.map +1 -0
  460. package/dist/core/tools.d.ts +34 -0
  461. package/dist/core/tools.d.ts.map +1 -0
  462. package/dist/core/tools.js +300 -0
  463. package/dist/core/tools.js.map +1 -0
  464. package/dist/core/types.d.ts +107 -0
  465. package/dist/core/types.d.ts.map +1 -0
  466. package/dist/core/types.js +55 -0
  467. package/dist/core/types.js.map +1 -0
  468. package/dist/core/usageCache.d.ts +19 -0
  469. package/dist/core/usageCache.d.ts.map +1 -0
  470. package/dist/core/usageCache.js +157 -0
  471. package/dist/core/usageCache.js.map +1 -0
  472. package/dist/core/usageWindow.d.ts +19 -0
  473. package/dist/core/usageWindow.d.ts.map +1 -0
  474. package/dist/core/usageWindow.js +73 -0
  475. package/dist/core/usageWindow.js.map +1 -0
  476. package/dist/core/util/bgProtocol.d.ts +5 -0
  477. package/dist/core/util/bgProtocol.d.ts.map +1 -0
  478. package/dist/core/util/bgProtocol.js +20 -0
  479. package/dist/core/util/bgProtocol.js.map +1 -0
  480. package/dist/core/util/clipboard.d.ts +4 -0
  481. package/dist/core/util/clipboard.d.ts.map +1 -0
  482. package/dist/core/util/clipboard.js +46 -0
  483. package/dist/core/util/clipboard.js.map +1 -0
  484. package/dist/core/util/clipboardImage.d.ts +3 -0
  485. package/dist/core/util/clipboardImage.d.ts.map +1 -0
  486. package/dist/core/util/clipboardImage.js +58 -0
  487. package/dist/core/util/clipboardImage.js.map +1 -0
  488. package/dist/core/util/langHint.d.ts +9 -0
  489. package/dist/core/util/langHint.d.ts.map +1 -0
  490. package/dist/core/util/langHint.js +33 -0
  491. package/dist/core/util/langHint.js.map +1 -0
  492. package/dist/core/util/slugify.d.ts +2 -0
  493. package/dist/core/util/slugify.d.ts.map +1 -0
  494. package/dist/core/util/slugify.js +28 -0
  495. package/dist/core/util/slugify.js.map +1 -0
  496. package/dist/hooks/hookedToolProxy.mjs +118 -0
  497. package/dist/index.d.ts +2 -0
  498. package/dist/index.d.ts.map +1 -0
  499. package/dist/index.js +8 -0
  500. package/dist/index.js.map +1 -0
  501. package/dist/ipc/dispatcher.d.ts +21 -0
  502. package/dist/ipc/dispatcher.d.ts.map +1 -0
  503. package/dist/ipc/dispatcher.js +160 -0
  504. package/dist/ipc/dispatcher.js.map +1 -0
  505. package/dist/ipc/events.d.ts +33 -0
  506. package/dist/ipc/events.d.ts.map +1 -0
  507. package/dist/ipc/events.js +42 -0
  508. package/dist/ipc/events.js.map +1 -0
  509. package/dist/ipc/rpc.d.ts +31 -0
  510. package/dist/ipc/rpc.d.ts.map +1 -0
  511. package/dist/ipc/rpc.js +110 -0
  512. package/dist/ipc/rpc.js.map +1 -0
  513. package/dist/ipc/stdio.d.ts +11 -0
  514. package/dist/ipc/stdio.d.ts.map +1 -0
  515. package/dist/ipc/stdio.js +52 -0
  516. package/dist/ipc/stdio.js.map +1 -0
  517. package/dist/mcp/askClient.d.ts +9 -0
  518. package/dist/mcp/askClient.d.ts.map +1 -0
  519. package/dist/mcp/askClient.js +70 -0
  520. package/dist/mcp/askClient.js.map +1 -0
  521. package/dist/mcp/constants.d.ts +6 -0
  522. package/dist/mcp/constants.d.ts.map +1 -0
  523. package/dist/mcp/constants.js +8 -0
  524. package/dist/mcp/constants.js.map +1 -0
  525. package/dist/mcp/permissionClient.d.ts +5 -0
  526. package/dist/mcp/permissionClient.d.ts.map +1 -0
  527. package/dist/mcp/permissionClient.js +71 -0
  528. package/dist/mcp/permissionClient.js.map +1 -0
  529. package/dist/mcp/schemas.d.ts +9 -0
  530. package/dist/mcp/schemas.d.ts.map +1 -0
  531. package/dist/mcp/schemas.js +121 -0
  532. package/dist/mcp/schemas.js.map +1 -0
  533. package/dist/mcp/server.d.ts +41 -0
  534. package/dist/mcp/server.d.ts.map +1 -0
  535. package/dist/mcp/server.js +204 -0
  536. package/dist/mcp/server.js.map +1 -0
  537. package/dist/policy/loader.d.ts +27 -0
  538. package/dist/policy/loader.d.ts.map +1 -0
  539. package/dist/policy/loader.js +89 -0
  540. package/dist/policy/loader.js.map +1 -0
  541. package/dist/policy/team-claude-only.yaml +46 -0
  542. package/dist/policy/team-codex-only.yaml +46 -0
  543. package/dist/policy/team-codex.yaml +54 -0
  544. package/dist/policy/team.yaml +104 -0
  545. package/dist/toolhook/hookedToolProxy.mjs +118 -0
  546. package/dist/ui/components/App.d.ts +14 -0
  547. package/dist/ui/components/App.d.ts.map +1 -0
  548. package/dist/ui/components/App.js +803 -0
  549. package/dist/ui/components/App.js.map +1 -0
  550. package/dist/ui/components/AskPicker.d.ts +8 -0
  551. package/dist/ui/components/AskPicker.d.ts.map +1 -0
  552. package/dist/ui/components/AskPicker.js +202 -0
  553. package/dist/ui/components/AskPicker.js.map +1 -0
  554. package/dist/ui/components/CommandInput.d.ts +63 -0
  555. package/dist/ui/components/CommandInput.d.ts.map +1 -0
  556. package/dist/ui/components/CommandInput.js +994 -0
  557. package/dist/ui/components/CommandInput.js.map +1 -0
  558. package/dist/ui/components/DiffView.d.ts +19 -0
  559. package/dist/ui/components/DiffView.d.ts.map +1 -0
  560. package/dist/ui/components/DiffView.js +93 -0
  561. package/dist/ui/components/DiffView.js.map +1 -0
  562. package/dist/ui/components/Dock.d.ts +49 -0
  563. package/dist/ui/components/Dock.d.ts.map +1 -0
  564. package/dist/ui/components/Dock.js +52 -0
  565. package/dist/ui/components/Dock.js.map +1 -0
  566. package/dist/ui/components/EventLog.d.ts +42 -0
  567. package/dist/ui/components/EventLog.d.ts.map +1 -0
  568. package/dist/ui/components/EventLog.js +450 -0
  569. package/dist/ui/components/EventLog.js.map +1 -0
  570. package/dist/ui/components/FileSuggest.d.ts +8 -0
  571. package/dist/ui/components/FileSuggest.d.ts.map +1 -0
  572. package/dist/ui/components/FileSuggest.js +19 -0
  573. package/dist/ui/components/FileSuggest.js.map +1 -0
  574. package/dist/ui/components/HRule.d.ts +27 -0
  575. package/dist/ui/components/HRule.d.ts.map +1 -0
  576. package/dist/ui/components/HRule.js +75 -0
  577. package/dist/ui/components/HRule.js.map +1 -0
  578. package/dist/ui/components/HintBar.d.ts +2 -0
  579. package/dist/ui/components/HintBar.d.ts.map +1 -0
  580. package/dist/ui/components/HintBar.js +19 -0
  581. package/dist/ui/components/HintBar.js.map +1 -0
  582. package/dist/ui/components/MarkdownText.d.ts +13 -0
  583. package/dist/ui/components/MarkdownText.d.ts.map +1 -0
  584. package/dist/ui/components/MarkdownText.js +255 -0
  585. package/dist/ui/components/MarkdownText.js.map +1 -0
  586. package/dist/ui/components/PermissionPrompt.d.ts +8 -0
  587. package/dist/ui/components/PermissionPrompt.d.ts.map +1 -0
  588. package/dist/ui/components/PermissionPrompt.js +37 -0
  589. package/dist/ui/components/PermissionPrompt.js.map +1 -0
  590. package/dist/ui/components/SessionPicker.d.ts +16 -0
  591. package/dist/ui/components/SessionPicker.d.ts.map +1 -0
  592. package/dist/ui/components/SessionPicker.js +116 -0
  593. package/dist/ui/components/SessionPicker.js.map +1 -0
  594. package/dist/ui/components/SlashPalette.d.ts +8 -0
  595. package/dist/ui/components/SlashPalette.d.ts.map +1 -0
  596. package/dist/ui/components/SlashPalette.js +41 -0
  597. package/dist/ui/components/SlashPalette.js.map +1 -0
  598. package/dist/ui/components/Spinner.d.ts +37 -0
  599. package/dist/ui/components/Spinner.d.ts.map +1 -0
  600. package/dist/ui/components/Spinner.js +139 -0
  601. package/dist/ui/components/Spinner.js.map +1 -0
  602. package/dist/ui/components/StatusBar.d.ts +92 -0
  603. package/dist/ui/components/StatusBar.d.ts.map +1 -0
  604. package/dist/ui/components/StatusBar.js +268 -0
  605. package/dist/ui/components/StatusBar.js.map +1 -0
  606. package/dist/ui/components/TabChip.d.ts +11 -0
  607. package/dist/ui/components/TabChip.d.ts.map +1 -0
  608. package/dist/ui/components/TabChip.js +23 -0
  609. package/dist/ui/components/TabChip.js.map +1 -0
  610. package/dist/ui/components/TeamIndicator.d.ts +6 -0
  611. package/dist/ui/components/TeamIndicator.d.ts.map +1 -0
  612. package/dist/ui/components/TeamIndicator.js +17 -0
  613. package/dist/ui/components/TeamIndicator.js.map +1 -0
  614. package/dist/ui/components/TeamStatusPanel.d.ts +14 -0
  615. package/dist/ui/components/TeamStatusPanel.d.ts.map +1 -0
  616. package/dist/ui/components/TeamStatusPanel.js +65 -0
  617. package/dist/ui/components/TeamStatusPanel.js.map +1 -0
  618. package/dist/ui/components/ThinkingBlock.d.ts +10 -0
  619. package/dist/ui/components/ThinkingBlock.d.ts.map +1 -0
  620. package/dist/ui/components/ThinkingBlock.js +21 -0
  621. package/dist/ui/components/ThinkingBlock.js.map +1 -0
  622. package/dist/ui/components/TodoIndicator.d.ts +11 -0
  623. package/dist/ui/components/TodoIndicator.d.ts.map +1 -0
  624. package/dist/ui/components/TodoIndicator.js +37 -0
  625. package/dist/ui/components/TodoIndicator.js.map +1 -0
  626. package/dist/ui/components/ToolCallCard.d.ts +16 -0
  627. package/dist/ui/components/ToolCallCard.d.ts.map +1 -0
  628. package/dist/ui/components/ToolCallCard.js +195 -0
  629. package/dist/ui/components/ToolCallCard.js.map +1 -0
  630. package/dist/ui/components/Welcome.d.ts +8 -0
  631. package/dist/ui/components/Welcome.d.ts.map +1 -0
  632. package/dist/ui/components/Welcome.js +53 -0
  633. package/dist/ui/components/Welcome.js.map +1 -0
  634. package/dist/ui/cursorState.d.ts +29 -0
  635. package/dist/ui/cursorState.d.ts.map +1 -0
  636. package/dist/ui/cursorState.js +49 -0
  637. package/dist/ui/cursorState.js.map +1 -0
  638. package/dist/ui/diff.d.ts +34 -0
  639. package/dist/ui/diff.d.ts.map +1 -0
  640. package/dist/ui/diff.js +184 -0
  641. package/dist/ui/diff.js.map +1 -0
  642. package/dist/ui/diffLang.d.ts +2 -0
  643. package/dist/ui/diffLang.d.ts.map +1 -0
  644. package/dist/ui/diffLang.js +36 -0
  645. package/dist/ui/diffLang.js.map +1 -0
  646. package/dist/ui/emoji.d.ts +4 -0
  647. package/dist/ui/emoji.d.ts.map +1 -0
  648. package/dist/ui/emoji.js +73 -0
  649. package/dist/ui/emoji.js.map +1 -0
  650. package/dist/ui/fileMentions.d.ts +41 -0
  651. package/dist/ui/fileMentions.d.ts.map +1 -0
  652. package/dist/ui/fileMentions.js +135 -0
  653. package/dist/ui/fileMentions.js.map +1 -0
  654. package/dist/ui/hooks/useLineEditor.d.ts +44 -0
  655. package/dist/ui/hooks/useLineEditor.d.ts.map +1 -0
  656. package/dist/ui/hooks/useLineEditor.js +142 -0
  657. package/dist/ui/hooks/useLineEditor.js.map +1 -0
  658. package/dist/ui/inputHistory.d.ts +8 -0
  659. package/dist/ui/inputHistory.d.ts.map +1 -0
  660. package/dist/ui/inputHistory.js +56 -0
  661. package/dist/ui/inputHistory.js.map +1 -0
  662. package/dist/ui/jsonrpc.d.ts +17 -0
  663. package/dist/ui/jsonrpc.d.ts.map +1 -0
  664. package/dist/ui/jsonrpc.js +41 -0
  665. package/dist/ui/jsonrpc.js.map +1 -0
  666. package/dist/ui/launcher.d.ts +20 -0
  667. package/dist/ui/launcher.d.ts.map +1 -0
  668. package/dist/ui/launcher.js +185 -0
  669. package/dist/ui/launcher.js.map +1 -0
  670. package/dist/ui/markdown.d.ts +104 -0
  671. package/dist/ui/markdown.d.ts.map +1 -0
  672. package/dist/ui/markdown.js +449 -0
  673. package/dist/ui/markdown.js.map +1 -0
  674. package/dist/ui/mouse.d.ts +22 -0
  675. package/dist/ui/mouse.d.ts.map +1 -0
  676. package/dist/ui/mouse.js +31 -0
  677. package/dist/ui/mouse.js.map +1 -0
  678. package/dist/ui/outbound.d.ts +20 -0
  679. package/dist/ui/outbound.d.ts.map +1 -0
  680. package/dist/ui/outbound.js +49 -0
  681. package/dist/ui/outbound.js.map +1 -0
  682. package/dist/ui/screenMode.d.ts +25 -0
  683. package/dist/ui/screenMode.d.ts.map +1 -0
  684. package/dist/ui/screenMode.js +43 -0
  685. package/dist/ui/screenMode.js.map +1 -0
  686. package/dist/ui/slashCatalog.d.ts +18 -0
  687. package/dist/ui/slashCatalog.d.ts.map +1 -0
  688. package/dist/ui/slashCatalog.js +243 -0
  689. package/dist/ui/slashCatalog.js.map +1 -0
  690. package/dist/ui/syntax.d.ts +11 -0
  691. package/dist/ui/syntax.d.ts.map +1 -0
  692. package/dist/ui/syntax.js +78 -0
  693. package/dist/ui/syntax.js.map +1 -0
  694. package/dist/ui/theme.d.ts +165 -0
  695. package/dist/ui/theme.d.ts.map +1 -0
  696. package/dist/ui/theme.js +394 -0
  697. package/dist/ui/theme.js.map +1 -0
  698. package/dist/ui/types.d.ts +203 -0
  699. package/dist/ui/types.d.ts.map +1 -0
  700. package/dist/ui/types.js +53 -0
  701. package/dist/ui/types.js.map +1 -0
  702. package/package.json +104 -0
@@ -0,0 +1,477 @@
1
+ // TeamRunner — multi-role orchestration (implementer → reviewers → director).
2
+ // Mirror of legacy/omg/core/team_runner.py (phase 8 + 8.5 + 14).
3
+ import { ContextCompressor } from "../context/contextCompressor.js";
4
+ import { Director } from "./director.js";
5
+ import { DirectorEscalateStrategy, } from "./consensusEngine.js";
6
+ import { interceptToolCalls } from "../tools/toolInterceptor.js";
7
+ import { EventDispatcher } from "../../ipc/dispatcher.js";
8
+ import { METHOD_TEXT, roleStatusEvent, verdictEvent, } from "../../ipc/events.js";
9
+ // Phase 296/303: hard cap on a single role's turn. A provider whose
10
+ // stream never emits stream_end (a hung codex/claude child, a model
11
+ // stuck in a reasoning loop) would otherwise block the role's await —
12
+ // and, for the parallel reviewer Promise.all, the whole team run —
13
+ // forever (observed: a security lane "running…" at 42m while the others
14
+ // finished). The cap cancels/abandons that role's stream and lets the
15
+ // lane return with whatever it captured (usually empty → escalate).
16
+ //
17
+ // Phase 303 → 339: split the cap by role CLASS. The cap is a HANG backstop,
18
+ // not a work budget — it must never cut off a role doing legitimate long
19
+ // work. Phase 339 raised both defaults sharply after implementer turns were
20
+ // being cancelled mid-build: a single run_shell build can now run up to 30
21
+ // min (Phase 333/W3), and an implementer turn may chain a build + edits +
22
+ // tests, so the build cap must comfortably exceed one build. Reviewers can
23
+ // also run a build/test to verify, so their cap rose too. Env overrides:
24
+ // OMG_TEAM_REVIEW_TIMEOUT_MS reviewer-class roles (default 900000 = 15m)
25
+ // OMG_TEAM_BUILD_TIMEOUT_MS implementer/planner/etc (default 3600000 = 60m)
26
+ // OMG_TEAM_ROLE_TIMEOUT_MS legacy global override — applies to BOTH
27
+ const DEFAULT_REVIEW_TIMEOUT_MS = 900_000; // 15 min
28
+ const DEFAULT_BUILD_TIMEOUT_MS = 3_600_000; // 60 min
29
+ function envTimeout(name) {
30
+ const n = Number(process.env[name]);
31
+ return Number.isFinite(n) && n > 0 ? n : undefined;
32
+ }
33
+ export class TeamRunner {
34
+ router;
35
+ writer;
36
+ adapterFor;
37
+ opts;
38
+ compressor;
39
+ // Phase 303: resolved per-class timeouts + the reviewer-role set,
40
+ // set per runTeam() invocation.
41
+ reviewTimeoutMs = DEFAULT_REVIEW_TIMEOUT_MS;
42
+ buildTimeoutMs = DEFAULT_BUILD_TIMEOUT_MS;
43
+ reviewerRoleSet = new Set();
44
+ constructor(router, writer, adapterFor, opts = {}) {
45
+ this.router = router;
46
+ this.writer = writer;
47
+ this.adapterFor = adapterFor;
48
+ this.opts = opts;
49
+ this.compressor = new ContextCompressor(router);
50
+ }
51
+ async runTeam(prompt, opts = {}) {
52
+ const implementerRole = opts.implementerRole ?? "implementer";
53
+ const reviewerRoles = opts.reviewerRoles ?? ["reviewer"];
54
+ const maxIterations = opts.maxIterations ?? 3;
55
+ if (reviewerRoles.length === 0) {
56
+ throw new Error("reviewerRoles must contain at least one role");
57
+ }
58
+ const strategy = opts.strategy ?? new DirectorEscalateStrategy();
59
+ const director = new Director(strategy);
60
+ // Phase 303: resolve per-class timeouts. A legacy global override
61
+ // (roleTimeoutMs / OMG_TEAM_ROLE_TIMEOUT_MS), when set, wins for both
62
+ // classes; otherwise reviewers and the build roles resolve
63
+ // independently. The reviewer-role set drives which cap each turn
64
+ // gets in captureTurnInto.
65
+ const globalOverride = typeof opts.roleTimeoutMs === "number" && opts.roleTimeoutMs > 0
66
+ ? opts.roleTimeoutMs
67
+ : envTimeout("OMG_TEAM_ROLE_TIMEOUT_MS");
68
+ this.reviewTimeoutMs =
69
+ globalOverride ??
70
+ opts.reviewerTimeoutMs ??
71
+ envTimeout("OMG_TEAM_REVIEW_TIMEOUT_MS") ??
72
+ DEFAULT_REVIEW_TIMEOUT_MS;
73
+ this.buildTimeoutMs =
74
+ globalOverride ??
75
+ opts.buildTimeoutMs ??
76
+ envTimeout("OMG_TEAM_BUILD_TIMEOUT_MS") ??
77
+ DEFAULT_BUILD_TIMEOUT_MS;
78
+ this.reviewerRoleSet = new Set(reviewerRoles);
79
+ // Phase 149: bail between role turns when the caller cancels.
80
+ const abortIfCancelled = () => {
81
+ if (opts.signal?.aborted)
82
+ throw new Error("team run cancelled");
83
+ };
84
+ // Phase 288: checkpoint steering. Director notes typed mid-run are
85
+ // drained at each role boundary and accumulated here, then folded
86
+ // into the implementer's context as a self-describing director_note
87
+ // bundle on every subsequent iteration. This is omg's team-native
88
+ // answer to "steering": it lands at the next bundle boundary (never
89
+ // mid-stream), stays provider-symmetric (no stdin injection), and
90
+ // the existing review/consensus loop still adjudicates the result.
91
+ const steeringNotes = [];
92
+ const collectSteering = async () => {
93
+ const fresh = opts.drainSteering?.() ?? [];
94
+ if (fresh.length === 0)
95
+ return;
96
+ steeringNotes.push(...fresh);
97
+ await this.banner(`◆ steering · ${fresh.length} note(s) folded into implementer\n`);
98
+ };
99
+ const steeringBundle = () => steeringNotes.length === 0
100
+ ? null
101
+ : {
102
+ kind: "director_note",
103
+ source: "steering.txt",
104
+ body: "The director sent these mid-run steering notes. Treat them " +
105
+ "as updated instructions and address them this iteration:\n" +
106
+ steeringNotes.map((n, i) => `(${i + 1}) ${n}`).join("\n"),
107
+ };
108
+ // Phase 102: optional planning pass. The planner role decomposes
109
+ // the task into a numbered plan, which becomes a Bundle handed to
110
+ // the implementer on every iteration — so the implementer works
111
+ // from an explicit plan rather than the raw prompt alone.
112
+ let planBundle = null;
113
+ if (opts.plannerRole) {
114
+ abortIfCancelled();
115
+ await collectSteering();
116
+ await this.banner(`◆ planning · ${opts.plannerRole}\n`);
117
+ const planPrompt = "Break the following task into a short numbered plan " +
118
+ "(steps, files to touch, risks). Keep it tight — this guides " +
119
+ "the implementer, it is not the implementation.\n\n" +
120
+ `Task:\n${prompt}`;
121
+ await this.emitRole(opts.plannerRole, "running");
122
+ const plannerStart = Date.now();
123
+ const planText = await this.captureTurn(opts.plannerRole, planPrompt);
124
+ await this.emitRole(opts.plannerRole, "done", Date.now() - plannerStart);
125
+ planBundle = {
126
+ kind: "plan",
127
+ source: `${opts.plannerRole}-plan.txt`,
128
+ body: planText,
129
+ };
130
+ }
131
+ let workingPrompt = prompt;
132
+ let lastOutcome = null;
133
+ for (let iteration = 0; iteration < maxIterations; iteration++) {
134
+ abortIfCancelled();
135
+ await collectSteering();
136
+ await this.banner(`◆ iteration ${iteration + 1}/${maxIterations} · implementer\n`);
137
+ // Phase 102: hand the plan (if any) to the implementer as a
138
+ // bundle so it's compressed/packed alongside the prompt.
139
+ // Phase 288: append the accumulated director_note bundle (if any)
140
+ // so mid-run steering rides the same compressed context channel.
141
+ const implBundles = [planBundle, steeringBundle()].filter((b) => b !== null);
142
+ await this.emitRole(implementerRole, "running");
143
+ const implStart = Date.now();
144
+ const implText = await this.captureTurn(implementerRole, workingPrompt, implBundles);
145
+ await this.emitRole(implementerRole, "done", Date.now() - implStart);
146
+ const reviewBundle = {
147
+ kind: "impl_output",
148
+ source: `impl-iter-${iteration + 1}.txt`,
149
+ body: implText,
150
+ };
151
+ const reviewPrompt = "Review the following implementation. Reply with one of " +
152
+ "APPROVE, REJECT, REQUEST_REWORK, or ESCALATE as the first word, " +
153
+ "followed by your reasoning.";
154
+ // Parallel reviewer execution. Each lane's events are buffered
155
+ // into its own bucket so stdout/UI doesn't interleave. After all
156
+ // reviewers complete, buffers flush in declared role order.
157
+ abortIfCancelled();
158
+ const buckets = reviewerRoles.map(() => []);
159
+ const tasks = reviewerRoles.map((role, i) => (async () => {
160
+ // Phase 142: role_status goes to the LIVE writer so each
161
+ // parallel reviewer's running/done shows individually, even
162
+ // though its text output stays buffered until all finish.
163
+ await this.emitRole(role, "running");
164
+ const start = Date.now();
165
+ // Phase 297: each lane catches its own failure. Without this a
166
+ // single reviewer that THREW (provider crash, SIGTERM teardown
167
+ // on cancel, a 429) rejected the whole Promise.all — discarding
168
+ // the implementer turn AND the other healthy reviewers, and
169
+ // orphaning their sibling promises (unhandled rejection on
170
+ // cancel). A failed lane now resolves to empty text → the
171
+ // existing "no verdict → escalate" diagnostic — so one bad lane
172
+ // degrades to an escalate vote instead of sinking the run.
173
+ try {
174
+ const text = await this.captureTurnInto(role, reviewPrompt, [reviewBundle], async (msg) => {
175
+ buckets[i].push(msg);
176
+ });
177
+ await this.emitRole(role, "done", Date.now() - start);
178
+ return text;
179
+ }
180
+ catch (err) {
181
+ await this.emitRole(role, "error", Date.now() - start);
182
+ buckets[i].push({
183
+ jsonrpc: "2.0",
184
+ method: METHOD_TEXT,
185
+ params: {
186
+ text: ` [${role}] lane errored: ${err instanceof Error ? err.message : String(err)}\n`,
187
+ },
188
+ });
189
+ return "";
190
+ }
191
+ })());
192
+ // Tasks never reject now (each catches internally), so Promise.all
193
+ // resolves with one entry per lane regardless of individual failure.
194
+ const reviewTextResults = await Promise.all(tasks);
195
+ const lanes = [];
196
+ const reviewTexts = [];
197
+ for (let i = 0; i < reviewerRoles.length; i++) {
198
+ const role = reviewerRoles[i];
199
+ const reviewText = reviewTextResults[i];
200
+ await this.banner(`◆ iteration ${iteration + 1} · ${role}\n`);
201
+ for (const msg of buckets[i]) {
202
+ await this.writer(msg);
203
+ }
204
+ // Phase 223 → 233 (hotfix): when reviewer's text comes back
205
+ // empty, surface a diagnostic line so the user knows WHY the
206
+ // verdict defaulted instead of accepting "escalate" out of
207
+ // thin air. Phase 233 adds the role's adapter info + first
208
+ // emitted event (if any) so the cause is easier to pin —
209
+ // e.g. "codex-cli emitted 0 events; check `codex login`" vs.
210
+ // "codex-cli emitted reasoning only; ask it to include the
211
+ // verdict word in the agent_message".
212
+ if (!reviewText.trim()) {
213
+ const llm = this.router.llmFor(role);
214
+ const events = buckets[i].length;
215
+ const kinds = new Set(buckets[i].map((m) => m.method));
216
+ const hadOnlyEnd = events <= 1 && kinds.has("event/end");
217
+ // Phase 293: point at omg's own login entry. The bare
218
+ // `<provider> login` hint was wrong for claude (its command is
219
+ // `claude auth login`, not `claude login`) and gemini (no
220
+ // login subcommand). `omg login <p>` / `/login <p>` resolve to
221
+ // each CLI's real auth command.
222
+ const short = llm.provider.replace("-cli", "");
223
+ const detail = hadOnlyEnd
224
+ ? `${llm.provider}/${llm.model} returned no body. If the auth expired, run \`omg login ${short}\` (or \`/login ${short}\` in the TUI), or run \`OMG_VERBOSE_STDERR=1 omg\` to see the host CLI's stderr.`
225
+ : `${llm.provider}/${llm.model} emitted ${events} event(s) but no APPROVE/REJECT/REQUEST_REWORK/ESCALATE word.`;
226
+ await this.writer({
227
+ jsonrpc: "2.0",
228
+ method: "event/text",
229
+ params: {
230
+ text: ` [${role}] no verdict found — defaulting to escalate. ${detail}\n`,
231
+ },
232
+ });
233
+ }
234
+ lanes.push({
235
+ lane: role,
236
+ verdict: parseVerdictFromText(reviewText),
237
+ reason: reviewText,
238
+ });
239
+ reviewTexts.push([role, reviewText]);
240
+ }
241
+ const outcome = director.adjudicate(lanes);
242
+ lastOutcome = outcome;
243
+ await this.emitVerdict(iteration + 1, outcome);
244
+ // Escalate is terminal — a human is needed, looping won't help.
245
+ if (outcome.final === "escalate") {
246
+ return outcome;
247
+ }
248
+ // Phase 347: an APPROVE normally ends the run. With a completion gate,
249
+ // first confirm the ORIGINAL request is fully done — reviewers approve
250
+ // the latest increment, which on a multi-part task can be only a slice.
251
+ // If incomplete, fall through to another iteration with the remaining
252
+ // work as the prompt (bounded by maxIterations).
253
+ if (outcome.final === "approve") {
254
+ if (!opts.completionRole)
255
+ return outcome;
256
+ let completionText;
257
+ try {
258
+ abortIfCancelled();
259
+ await this.banner(`◆ iteration ${iteration + 1} · ${opts.completionRole} (completion check)\n`);
260
+ await this.emitRole(opts.completionRole, "running");
261
+ const cStart = Date.now();
262
+ completionText = await this.captureTurn(opts.completionRole, "The implementation below was reviewed and APPROVED. Judge whether " +
263
+ "the ORIGINAL task is now FULLY complete. Reply with COMPLETE or " +
264
+ "INCOMPLETE as the first word. If INCOMPLETE, list the specific " +
265
+ "remaining work as a short numbered list.\n\n" +
266
+ `Original task:\n${prompt}`, [
267
+ {
268
+ kind: "impl_output",
269
+ source: `impl-iter-${iteration + 1}.txt`,
270
+ body: implText,
271
+ },
272
+ ]);
273
+ await this.emitRole(opts.completionRole, "done", Date.now() - cStart);
274
+ }
275
+ catch (err) {
276
+ // Fail-safe: a broken/unknown completion role must never sink an
277
+ // otherwise-approved run. Accept the approve and finish.
278
+ await this.banner(`◆ completion check unavailable (${err instanceof Error ? err.message : String(err)}) — accepting approve\n`);
279
+ return outcome;
280
+ }
281
+ if (parseCompletion(completionText) === "complete") {
282
+ return outcome;
283
+ }
284
+ await this.banner(`◆ completion: INCOMPLETE — continuing with remaining work\n`);
285
+ workingPrompt =
286
+ `Original task:\n${prompt}\n\n` +
287
+ `The work so far was approved but the task is NOT fully complete. ` +
288
+ `Remaining work (from ${opts.completionRole}):\n${completionText}\n\n` +
289
+ `Continue from the existing work and finish what remains.`;
290
+ continue;
291
+ }
292
+ const feedbackBlock = reviewTexts
293
+ .map(([role, text]) => ` [${role}]: ${text}`)
294
+ .join("\n");
295
+ workingPrompt =
296
+ `Original task:\n${prompt}\n\n` +
297
+ `Reviewer feedback (iteration ${iteration + 1}):\n${feedbackBlock}\n\n` +
298
+ `Address the feedback above and try again.`;
299
+ }
300
+ // Phase 347: distinguish the two exhaustion causes. If the last round
301
+ // was APPROVED, the cap was hit because the completion gate kept finding
302
+ // the original request unfinished — not because review never passed.
303
+ const exhaustedIncomplete = lastOutcome?.final === "approve";
304
+ const final = {
305
+ final: "escalate",
306
+ strategy: strategy.name,
307
+ lanes: lastOutcome !== null ? lastOutcome.lanes : [],
308
+ rationale: exhaustedIncomplete
309
+ ? `approved each round but completion gate still reported INCOMPLETE after max_iterations=${maxIterations} (safety cap)`
310
+ : `max_iterations=${maxIterations} exhausted without APPROVE`,
311
+ };
312
+ await this.emitVerdict(maxIterations, final);
313
+ return final;
314
+ }
315
+ async captureTurn(role, prompt, bundles = []) {
316
+ return this.captureTurnInto(role, prompt, bundles, (m) => this.writer(m));
317
+ }
318
+ // Phase 16-prep: variant that lets the caller substitute the live
319
+ // writer with a buffer. Parallel reviewer execution uses this to
320
+ // capture each lane's events without interleaving on stdout.
321
+ async captureTurnInto(role, prompt, bundles, sink) {
322
+ const packed = this.compressor.pack(bundles, role);
323
+ const fullPrompt = packed.text ? `${packed.text}\n\n${prompt}` : prompt;
324
+ const adapter = this.adapterFor(role);
325
+ const captured = [];
326
+ // Phase 223 (hotfix): also fold `event/thinking` into the captured
327
+ // text. Some providers (codex-cli's `reasoning` items, claude's
328
+ // extended-thinking chunks) emit the reviewer's actual verdict
329
+ // rationale as a thinking chunk rather than an `agent_message`.
330
+ // Pre-Phase-223, captured stayed empty in that case →
331
+ // `parseVerdictFromText("")` defaulted to "escalate" without the
332
+ // user seeing why. Including thinking text lets parseVerdict find
333
+ // the verdict word and gives non-empty review text to surface.
334
+ const tee = async (msg) => {
335
+ await sink(msg);
336
+ if (msg.method === METHOD_TEXT || msg.method === "event/thinking") {
337
+ const t = msg.params.text;
338
+ if (typeof t === "string")
339
+ captured.push(t);
340
+ }
341
+ };
342
+ let stream = adapter.stream(fullPrompt);
343
+ if (this.opts.toolRegistry !== undefined) {
344
+ stream = interceptToolCalls(stream, this.opts.toolRegistry, {
345
+ gate: this.opts.toolGate,
346
+ });
347
+ }
348
+ // Phase 296/297: cap the turn. Phase 296 relied on adapter.cancel()
349
+ // (SIGTERM), but the API adapters (anthropic/gemini/openai) have no
350
+ // cancel() — so a hung API stream stayed hung. Phase 297 RACES the
351
+ // dispatcher against the timer instead: on expiry we still cancel()
352
+ // the adapter (SIGTERMs a CLI child) AND stop awaiting, so even an
353
+ // uncancellable stream can't block the (parallel) run. The dispatcher
354
+ // promise never rejects (it captures its own error), so an abandoned
355
+ // timed-out run can't surface an unhandledRejection. We keep whatever
356
+ // text was captured; empty falls through to "no verdict → escalate".
357
+ // Phase 303: reviewers get the short cap, build roles the long one.
358
+ const timeoutMs = this.reviewerRoleSet.has(role)
359
+ ? this.reviewTimeoutMs
360
+ : this.buildTimeoutMs;
361
+ let timedOut = false;
362
+ let settled = false;
363
+ let timer;
364
+ const run = new EventDispatcher(tee)
365
+ .run(stream)
366
+ .then(() => {
367
+ settled = true;
368
+ return "ok";
369
+ }, (err) => {
370
+ settled = true;
371
+ return { err };
372
+ });
373
+ const timeout = new Promise((resolve) => {
374
+ timer = setTimeout(() => {
375
+ // `settled` guard: if the run already finished, don't cancel —
376
+ // the adapter is cached + reused across iterations, so a late
377
+ // SIGTERM could otherwise kill the NEXT turn's child.
378
+ if (!settled) {
379
+ timedOut = true;
380
+ adapter.cancel?.();
381
+ }
382
+ resolve("timeout");
383
+ }, timeoutMs);
384
+ timer.unref?.();
385
+ });
386
+ const result = await Promise.race([run, timeout]);
387
+ if (timer)
388
+ clearTimeout(timer);
389
+ if (result !== "timeout" &&
390
+ typeof result === "object" &&
391
+ "err" in result &&
392
+ !timedOut) {
393
+ // The run finished with a real error (not a timeout teardown).
394
+ throw result.err;
395
+ }
396
+ if (timedOut) {
397
+ await sink({
398
+ jsonrpc: "2.0",
399
+ method: METHOD_TEXT,
400
+ params: {
401
+ text: ` [${role}] timed out after ${Math.round(timeoutMs / 1000)}s — cancelled. (raise OMG_TEAM_REVIEW_TIMEOUT_MS / OMG_TEAM_BUILD_TIMEOUT_MS if this was a legit long turn)\n`,
402
+ },
403
+ });
404
+ }
405
+ return captured.join("");
406
+ }
407
+ async banner(text) {
408
+ await this.writer({
409
+ jsonrpc: "2.0",
410
+ method: METHOD_TEXT,
411
+ params: { text },
412
+ });
413
+ }
414
+ // Phase 142: announce a role's lifecycle on the live writer.
415
+ async emitRole(role, status, elapsedMs) {
416
+ // Phase 173: tag the event with the role's provider/model from
417
+ // team.yaml so the status panel shows which engine ran each role.
418
+ const llm = this.router.llmFor(role);
419
+ await this.writer(roleStatusEvent({
420
+ role,
421
+ status,
422
+ elapsedMs,
423
+ provider: llm.provider,
424
+ model: llm.model,
425
+ }));
426
+ }
427
+ async emitVerdict(iteration, outcome) {
428
+ await this.writer(verdictEvent({
429
+ iteration,
430
+ verdict: outcome.final,
431
+ strategy: outcome.strategy,
432
+ rationale: outcome.rationale,
433
+ }));
434
+ }
435
+ }
436
+ // Reviewers are told to lead with one of APPROVE / REJECT /
437
+ // REQUEST_REWORK / ESCALATE. We match those as WHOLE WORDS and take the
438
+ // EARLIEST one by position, so the stated verdict wins and an incidental
439
+ // mention can't flip it. Phase 145: the old substring scan read "REJECT"
440
+ // inside the URL "/orders/rejected" and turned every APPROVE into a
441
+ // reject — three wasted iterations, then escalate.
442
+ export function parseVerdictFromText(text) {
443
+ const upper = text.toUpperCase();
444
+ const patterns = [
445
+ [/\bREQUEST[_ ]?REWORK\b/, "request_rework"],
446
+ [/\bREWORK\b/, "request_rework"],
447
+ [/\bREJECT\b/, "reject"],
448
+ [/\bESCALATE\b/, "escalate"],
449
+ [/\bAPPROVE\b/, "approve"],
450
+ ];
451
+ let best = null;
452
+ for (const [re, verdict] of patterns) {
453
+ const m = re.exec(upper);
454
+ if (m && (best === null || m.index < best.idx)) {
455
+ best = { idx: m.index, verdict };
456
+ }
457
+ }
458
+ return best?.verdict ?? "escalate";
459
+ }
460
+ // Phase 347: parse the completion gate's verdict. The role is told to lead
461
+ // with COMPLETE or INCOMPLETE. Matched as whole words, earliest-wins so
462
+ // "INCOMPLETE" is never misread as "COMPLETE" (different start positions,
463
+ // and the \b before COMPLETE fails inside "inCOMPLETE"). Fail-safe default
464
+ // is "complete": with no clear word we accept the prior APPROVE rather than
465
+ // loop to the safety cap on garbled output. Only an explicit INCOMPLETE
466
+ // extends the run.
467
+ export function parseCompletion(text) {
468
+ const upper = text.toUpperCase();
469
+ const inc = /\bINCOMPLETE\b/.exec(upper);
470
+ const com = /\bCOMPLETE\b/.exec(upper);
471
+ if (inc && (com === null || inc.index <= com.index))
472
+ return "incomplete";
473
+ if (com)
474
+ return "complete";
475
+ return "complete";
476
+ }
477
+ //# sourceMappingURL=teamRunner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"teamRunner.js","sourceRoot":"","sources":["../../../src/core/orchestration/teamRunner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,115 @@
1
+ export type Verdict = "approve" | "reject" | "request_rework" | "escalate";
2
+ export declare const VERDICTS: readonly Verdict[];
3
+ export interface LaneVerdict {
4
+ readonly lane: string;
5
+ readonly verdict: Verdict;
6
+ readonly reason: string;
7
+ }
8
+ export interface ConsensusOutcome {
9
+ readonly final: Verdict;
10
+ readonly strategy: string;
11
+ readonly lanes: readonly LaneVerdict[];
12
+ readonly rationale: string;
13
+ }
14
+ export interface Bundle {
15
+ readonly kind: string;
16
+ readonly source: string;
17
+ readonly body: string;
18
+ }
19
+ export declare function bundleByteSize(b: Bundle): number;
20
+ export type Chunk = TextChunk | ThinkingChunk | ToolUseStart | ToolUseProgress | ToolUseEnd | StreamEnd | UsageChunk | RateLimitChunk;
21
+ export interface TextChunk {
22
+ readonly type: "text";
23
+ readonly text: string;
24
+ }
25
+ export interface ThinkingChunk {
26
+ readonly type: "thinking";
27
+ readonly text: string;
28
+ }
29
+ export interface ToolUseStart {
30
+ readonly type: "tool_use_start";
31
+ readonly toolId: string;
32
+ readonly toolName: string;
33
+ readonly toolInput: Record<string, unknown>;
34
+ }
35
+ export interface ToolUseProgress {
36
+ readonly type: "tool_use_progress";
37
+ readonly toolId: string;
38
+ readonly text: string;
39
+ }
40
+ export interface ToolUseEnd {
41
+ readonly type: "tool_use_end";
42
+ readonly toolId: string;
43
+ readonly result: unknown;
44
+ }
45
+ export interface StreamEnd {
46
+ readonly type: "stream_end";
47
+ readonly stopReason: string;
48
+ }
49
+ export interface UsageChunk {
50
+ readonly type: "usage";
51
+ readonly tokensIn: number;
52
+ readonly tokensOut: number;
53
+ readonly cacheReadTokens?: number;
54
+ readonly freshTokens?: number;
55
+ }
56
+ export interface RateLimitChunk {
57
+ readonly type: "rate_limit";
58
+ readonly resetsAt: number;
59
+ readonly kind: "five_hour" | "weekly" | "session" | "unknown";
60
+ readonly status?: string;
61
+ }
62
+ export declare const text: (s: string) => TextChunk;
63
+ export declare const thinking: (s: string) => ThinkingChunk;
64
+ export declare const toolUseStart: (toolId: string, toolName: string, toolInput?: Record<string, unknown>) => ToolUseStart;
65
+ export declare const toolUseEnd: (toolId: string, result?: unknown) => ToolUseEnd;
66
+ export declare const streamEnd: (stopReason?: string) => StreamEnd;
67
+ export declare const usage: (tokensIn: number, tokensOut: number, cacheReadTokens?: number, freshTokens?: number) => UsageChunk;
68
+ export declare const rateLimit: (resetsAt: number, kind: RateLimitChunk["kind"], status?: string) => RateLimitChunk;
69
+ export interface PackResult {
70
+ readonly role: string;
71
+ readonly budget: number;
72
+ readonly text: string;
73
+ readonly included: readonly Bundle[];
74
+ readonly elided: readonly Bundle[];
75
+ readonly used: number;
76
+ readonly overBudget: boolean;
77
+ }
78
+ export type LoopReason = "no_tools" | "max_steps_exhausted" | "no_tool_registry";
79
+ export interface LoopResult {
80
+ readonly finalText: string;
81
+ readonly steps: number;
82
+ readonly reason: LoopReason;
83
+ readonly pack: PackResult;
84
+ }
85
+ export interface ToolCallRequest {
86
+ readonly toolId: string;
87
+ readonly toolName: string;
88
+ readonly toolInput: Record<string, unknown>;
89
+ }
90
+ export type ConversationMessage = {
91
+ role: "user";
92
+ text: string;
93
+ attachments?: readonly string[];
94
+ } | {
95
+ role: "assistant";
96
+ text: string;
97
+ toolCalls: readonly ToolCallRequest[];
98
+ } | {
99
+ role: "tool_result";
100
+ toolId: string;
101
+ toolName: string;
102
+ result: unknown;
103
+ };
104
+ export interface Conversation {
105
+ readonly system?: string;
106
+ readonly messages: readonly ConversationMessage[];
107
+ }
108
+ export type AdapterInput = string | Conversation;
109
+ export declare function flattenConversation(conv: Conversation): string;
110
+ /** Phase 340: image attachments on the LAST user message of an adapter input
111
+ * (the turn being sent). Empty for a bare string input or when none were
112
+ * attached. Adapters read this to deliver images out-of-band (codex `-i`,
113
+ * claude Read reference) since flattenConversation only keeps text. */
114
+ export declare function lastUserAttachments(input: AdapterInput): readonly string[];
115
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/orchestration/types.ts"],"names":[],"mappings":"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"}