@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 @@
1
+ {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../src/core/adapters/openai.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export interface ParseFailuresHolder {
2
+ count: number;
3
+ /** First-seen malformed line (truncated for log readability). */
4
+ firstSample?: string;
5
+ }
6
+ export declare function recordParseFailure(holder: ParseFailuresHolder | undefined, raw: string): void;
7
+ /** Write a single summary line to stderr when there were any parse
8
+ * failures. No-op when count === 0 or holder is undefined. */
9
+ export declare function surfaceParseFailures(provider: string, holder: ParseFailuresHolder | undefined): void;
10
+ //# sourceMappingURL=parseFailures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseFailures.d.ts","sourceRoot":"","sources":["../../../src/core/adapters/parseFailures.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAID,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,mBAAmB,GAAG,SAAS,EACvC,GAAG,EAAE,MAAM,GACV,IAAI,CAON;AAED;+DAC+D;AAC/D,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,mBAAmB,GAAG,SAAS,GACtC,IAAI,CAUN"}
@@ -0,0 +1,35 @@
1
+ // Phase 200d: shared parse-failure tracker for CLI envelope translators.
2
+ //
3
+ // All three CLI adapters (claude/codex/gemini) silently `continue` when
4
+ // an envelope line fails JSON.parse — a malformed buffer chunk, a CLI
5
+ // upgrade changing envelope shape, or binary noise vanishes into the
6
+ // void. The audit (F1.1) flagged this as the largest silent-fail
7
+ // surface in the adapter layer.
8
+ //
9
+ // Replacement: each translator now tallies parse failures into a small
10
+ // holder; the adapter's stream() surfaces a single stderr line at the
11
+ // end of the stream if the counter is non-zero. Behavior is unchanged
12
+ // for callers — the iterator still yields what it can — but the user
13
+ // gets a visible signal instead of a silent partial result.
14
+ const SAMPLE_LIMIT = 120;
15
+ export function recordParseFailure(holder, raw) {
16
+ if (!holder)
17
+ return;
18
+ holder.count += 1;
19
+ if (holder.firstSample === undefined) {
20
+ holder.firstSample =
21
+ raw.length > SAMPLE_LIMIT ? raw.slice(0, SAMPLE_LIMIT) + "…" : raw;
22
+ }
23
+ }
24
+ /** Write a single summary line to stderr when there were any parse
25
+ * failures. No-op when count === 0 or holder is undefined. */
26
+ export function surfaceParseFailures(provider, holder) {
27
+ if (!holder || holder.count === 0)
28
+ return;
29
+ const sample = holder.firstSample !== undefined
30
+ ? ` first: ${JSON.stringify(holder.firstSample)}`
31
+ : "";
32
+ process.stderr.write(`[${provider}] dropped ${holder.count} malformed envelope ` +
33
+ `line${holder.count === 1 ? "" : "s"};${sample}\n`);
34
+ }
35
+ //# sourceMappingURL=parseFailures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseFailures.js","sourceRoot":"","sources":["../../../src/core/adapters/parseFailures.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,EAAE;AACF,wEAAwE;AACxE,sEAAsE;AACtE,qEAAqE;AACrE,iEAAiE;AACjE,gCAAgC;AAChC,EAAE;AACF,uEAAuE;AACvE,sEAAsE;AACtE,sEAAsE;AACtE,qEAAqE;AACrE,4DAA4D;AAQ5D,MAAM,YAAY,GAAG,GAAG,CAAC;AAEzB,MAAM,UAAU,kBAAkB,CAChC,MAAuC,EACvC,GAAW;IAEX,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;IAClB,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACrC,MAAM,CAAC,WAAW;YAChB,GAAG,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACvE,CAAC;AACH,CAAC;AAED;+DAC+D;AAC/D,MAAM,UAAU,oBAAoB,CAClC,QAAgB,EAChB,MAAuC;IAEvC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,KAAK,CAAC;QAAE,OAAO;IAC1C,MAAM,MAAM,GACV,MAAM,CAAC,WAAW,KAAK,SAAS;QAC9B,CAAC,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE;QACjD,CAAC,CAAC,EAAE,CAAC;IACT,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,IAAI,QAAQ,aAAa,MAAM,CAAC,KAAK,sBAAsB;QACzD,OAAO,MAAM,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,IAAI,CACrD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,11 @@
1
+ /** True when `v` is a non-null, non-array plain object. Narrows the
2
+ * type to `Record<string, unknown>` so the caller can index in
3
+ * without an additional cast. */
4
+ export declare function isObject(v: unknown): v is Record<string, unknown>;
5
+ /** Best-effort JSON parse. Returns `{}` for empty input, parse
6
+ * failures, or non-object payloads. Used by SDK adapters that
7
+ * accumulate `input_json_delta` fragments for streaming tool
8
+ * calls — the partial buffer is rendered as `{}` until the close
9
+ * brace arrives. */
10
+ export declare function parseJsonOrEmpty(buf: string): Record<string, unknown>;
11
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/core/adapters/utils.ts"],"names":[],"mappings":"AASA;;kCAEkC;AAClC,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEjE;AAED;;;;qBAIqB;AACrB,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CASrE"}
@@ -0,0 +1,33 @@
1
+ // Phase 212 (F1.5 + F1.6): shared adapter-layer utilities.
2
+ //
3
+ // Five adapters reimplemented the same `isObject` guard; two SDK
4
+ // adapters reimplemented the same `parseJsonOrEmpty` (used to assemble
5
+ // streaming tool-call input from JSON-delta fragments). The audit
6
+ // flagged these as low-risk consolidation candidates — drift between
7
+ // five copies of a two-line guard is silent, and adding a sixth
8
+ // adapter shouldn't bring a sixth copy.
9
+ /** True when `v` is a non-null, non-array plain object. Narrows the
10
+ * type to `Record<string, unknown>` so the caller can index in
11
+ * without an additional cast. */
12
+ export function isObject(v) {
13
+ return typeof v === "object" && v !== null && !Array.isArray(v);
14
+ }
15
+ /** Best-effort JSON parse. Returns `{}` for empty input, parse
16
+ * failures, or non-object payloads. Used by SDK adapters that
17
+ * accumulate `input_json_delta` fragments for streaming tool
18
+ * calls — the partial buffer is rendered as `{}` until the close
19
+ * brace arrives. */
20
+ export function parseJsonOrEmpty(buf) {
21
+ if (!buf)
22
+ return {};
23
+ try {
24
+ const parsed = JSON.parse(buf);
25
+ if (isObject(parsed))
26
+ return parsed;
27
+ return {};
28
+ }
29
+ catch {
30
+ return {};
31
+ }
32
+ }
33
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/core/adapters/utils.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,EAAE;AACF,iEAAiE;AACjE,uEAAuE;AACvE,kEAAkE;AAClE,qEAAqE;AACrE,gEAAgE;AAChE,wCAAwC;AAExC;;kCAEkC;AAClC,MAAM,UAAU,QAAQ,CAAC,CAAU;IACjC,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AAED;;;;qBAIqB;AACrB,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,MAAM,CAAC;QACpC,OAAO,EAAE,CAAC;IACZ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
@@ -0,0 +1,11 @@
1
+ export interface AskOption {
2
+ label: string;
3
+ description?: string;
4
+ }
5
+ export type AskDecider = (question: string, options: AskOption[], multiSelect: boolean) => Promise<string>;
6
+ export interface AskBrokerHandle {
7
+ socketPath: string;
8
+ close: () => Promise<void>;
9
+ }
10
+ export declare function startAskBroker(onAsk: AskDecider): Promise<AskBrokerHandle>;
11
+ //# sourceMappingURL=askBroker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"askBroker.d.ts","sourceRoot":"","sources":["../../src/core/askBroker.ts"],"names":[],"mappings":"AAyBA,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,UAAU,GAAG,CACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,SAAS,EAAE,EACpB,WAAW,EAAE,OAAO,KACjB,OAAO,CAAC,MAAM,CAAC,CAAC;AAErB,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED,wBAAsB,cAAc,CAClC,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC,eAAe,CAAC,CAM1B"}
@@ -0,0 +1,78 @@
1
+ // Phase 150: Unix-socket broker for the interactive `ask_user` tool.
2
+ //
3
+ // Mirrors the permission broker (src/core/permissionBroker.ts): when omg
4
+ // runs a CLI with --expose-omg-tools, the omg MCP server lives in a
5
+ // grandchild process (omg → CLI → mcp-server). The TUI's picker lives in
6
+ // the omg parent, so the grandchild can't render it directly.
7
+ //
8
+ // This bridges with a Unix domain socket:
9
+ // - startAskBroker(onAsk): opens a socket server in omg, returns
10
+ // { socketPath, close() }.
11
+ // - The MCP-side client (src/mcp/askClient.ts) connects, writes one
12
+ // JSON request line per ask_user call, reads one answer line.
13
+ // - Each request is forwarded to onAsk(question, options, multiSelect);
14
+ // whatever string that resolves to becomes the `answer` on the wire.
15
+ //
16
+ // Protocol (line-delimited JSON):
17
+ // client → broker: {"id":1,"question":"...","options":[{label,description?}],"multiSelect":false}
18
+ // broker → client: {"id":1,"answer":"chosen label"}
19
+ //
20
+ // On any error / closed connection the client falls back to a sentinel
21
+ // ("user did not answer"), so a broken UI never hangs the agent.
22
+ import { startSocketBroker } from "./socketBroker.js";
23
+ export async function startAskBroker(onAsk) {
24
+ return startSocketBroker({
25
+ prefix: "ask",
26
+ filename: "ask.sock",
27
+ onLine: (line, sock) => handleLine(line, sock, onAsk),
28
+ });
29
+ }
30
+ function normalizeOptions(raw) {
31
+ if (!Array.isArray(raw))
32
+ return [];
33
+ const out = [];
34
+ for (const o of raw) {
35
+ if (typeof o === "string") {
36
+ out.push({ label: o });
37
+ }
38
+ else if (o && typeof o === "object") {
39
+ const obj = o;
40
+ if (typeof obj.label === "string") {
41
+ out.push({
42
+ label: obj.label,
43
+ description: typeof obj.description === "string" ? obj.description : undefined,
44
+ });
45
+ }
46
+ }
47
+ }
48
+ return out;
49
+ }
50
+ async function handleLine(line, sock, onAsk) {
51
+ let req;
52
+ try {
53
+ req = JSON.parse(line);
54
+ }
55
+ catch {
56
+ return;
57
+ }
58
+ const id = req.id;
59
+ const question = typeof req.question === "string" ? req.question : "";
60
+ const options = normalizeOptions(req.options);
61
+ const multiSelect = req.multiSelect === true;
62
+ if (id === undefined || !question || options.length === 0)
63
+ return;
64
+ let answer;
65
+ try {
66
+ answer = await onAsk(question, options, multiSelect);
67
+ }
68
+ catch {
69
+ answer = "user did not answer";
70
+ }
71
+ try {
72
+ sock.write(JSON.stringify({ id, answer }) + "\n");
73
+ }
74
+ catch {
75
+ /* socket closed before reply — client fails closed */
76
+ }
77
+ }
78
+ //# sourceMappingURL=askBroker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"askBroker.js","sourceRoot":"","sources":["../../src/core/askBroker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /** Atomically write `content` to `path` via a `<path>.<pid>.tmp`
2
+ * intermediate plus `renameSync`. Caller is responsible for ensuring
3
+ * the parent directory exists. */
4
+ export declare function atomicWriteSync(path: string, content: string): void;
5
+ //# sourceMappingURL=atomicWrite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"atomicWrite.d.ts","sourceRoot":"","sources":["../../src/core/atomicWrite.ts"],"names":[],"mappings":"AAWA;;mCAEmC;AACnC,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAInE"}
@@ -0,0 +1,18 @@
1
+ // Phase 200b: shared atomic-write helper for ~/.omg/* state files.
2
+ //
3
+ // `writeFileSync(path, content)` rewrites in-place: a concurrent omg
4
+ // instance writing the same file at the same moment can drop one of
5
+ // the writes. The fix is the textbook tmp-then-rename pattern —
6
+ // rename(2) is atomic on POSIX, so the canonical path is never half-
7
+ // written. tabPersistence has used this since Phase 72; Phase 200b
8
+ // extracts it as a single helper for everyone.
9
+ import { renameSync, writeFileSync } from "node:fs";
10
+ /** Atomically write `content` to `path` via a `<path>.<pid>.tmp`
11
+ * intermediate plus `renameSync`. Caller is responsible for ensuring
12
+ * the parent directory exists. */
13
+ export function atomicWriteSync(path, content) {
14
+ const tmp = `${path}.${process.pid}.tmp`;
15
+ writeFileSync(tmp, content, "utf-8");
16
+ renameSync(tmp, path);
17
+ }
18
+ //# sourceMappingURL=atomicWrite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"atomicWrite.js","sourceRoot":"","sources":["../../src/core/atomicWrite.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,EAAE;AACF,qEAAqE;AACrE,oEAAoE;AACpE,gEAAgE;AAChE,qEAAqE;AACrE,mEAAmE;AACnE,+CAA+C;AAE/C,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEpD;;mCAEmC;AACnC,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,OAAe;IAC3D,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC;IACzC,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACrC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACxB,CAAC"}
@@ -0,0 +1,11 @@
1
+ export interface AskOption {
2
+ label: string;
3
+ description?: string;
4
+ }
5
+ export type AskDecider = (question: string, options: AskOption[], multiSelect: boolean) => Promise<string>;
6
+ export interface AskBrokerHandle {
7
+ socketPath: string;
8
+ close: () => Promise<void>;
9
+ }
10
+ export declare function startAskBroker(onAsk: AskDecider): Promise<AskBrokerHandle>;
11
+ //# sourceMappingURL=askBroker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"askBroker.d.ts","sourceRoot":"","sources":["../../../src/core/brokers/askBroker.ts"],"names":[],"mappings":"AAyBA,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,UAAU,GAAG,CACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,SAAS,EAAE,EACpB,WAAW,EAAE,OAAO,KACjB,OAAO,CAAC,MAAM,CAAC,CAAC;AAErB,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED,wBAAsB,cAAc,CAClC,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC,eAAe,CAAC,CAM1B"}
@@ -0,0 +1,78 @@
1
+ // Phase 150: Unix-socket broker for the interactive `ask_user` tool.
2
+ //
3
+ // Mirrors the permission broker (src/core/permissionBroker.ts): when omg
4
+ // runs a CLI with --expose-omg-tools, the omg MCP server lives in a
5
+ // grandchild process (omg → CLI → mcp-server). The TUI's picker lives in
6
+ // the omg parent, so the grandchild can't render it directly.
7
+ //
8
+ // This bridges with a Unix domain socket:
9
+ // - startAskBroker(onAsk): opens a socket server in omg, returns
10
+ // { socketPath, close() }.
11
+ // - The MCP-side client (src/mcp/askClient.ts) connects, writes one
12
+ // JSON request line per ask_user call, reads one answer line.
13
+ // - Each request is forwarded to onAsk(question, options, multiSelect);
14
+ // whatever string that resolves to becomes the `answer` on the wire.
15
+ //
16
+ // Protocol (line-delimited JSON):
17
+ // client → broker: {"id":1,"question":"...","options":[{label,description?}],"multiSelect":false}
18
+ // broker → client: {"id":1,"answer":"chosen label"}
19
+ //
20
+ // On any error / closed connection the client falls back to a sentinel
21
+ // ("user did not answer"), so a broken UI never hangs the agent.
22
+ import { startSocketBroker } from "./socketBroker.js";
23
+ export async function startAskBroker(onAsk) {
24
+ return startSocketBroker({
25
+ prefix: "ask",
26
+ filename: "ask.sock",
27
+ onLine: (line, sock) => handleLine(line, sock, onAsk),
28
+ });
29
+ }
30
+ function normalizeOptions(raw) {
31
+ if (!Array.isArray(raw))
32
+ return [];
33
+ const out = [];
34
+ for (const o of raw) {
35
+ if (typeof o === "string") {
36
+ out.push({ label: o });
37
+ }
38
+ else if (o && typeof o === "object") {
39
+ const obj = o;
40
+ if (typeof obj.label === "string") {
41
+ out.push({
42
+ label: obj.label,
43
+ description: typeof obj.description === "string" ? obj.description : undefined,
44
+ });
45
+ }
46
+ }
47
+ }
48
+ return out;
49
+ }
50
+ async function handleLine(line, sock, onAsk) {
51
+ let req;
52
+ try {
53
+ req = JSON.parse(line);
54
+ }
55
+ catch {
56
+ return;
57
+ }
58
+ const id = req.id;
59
+ const question = typeof req.question === "string" ? req.question : "";
60
+ const options = normalizeOptions(req.options);
61
+ const multiSelect = req.multiSelect === true;
62
+ if (id === undefined || !question || options.length === 0)
63
+ return;
64
+ let answer;
65
+ try {
66
+ answer = await onAsk(question, options, multiSelect);
67
+ }
68
+ catch {
69
+ answer = "user did not answer";
70
+ }
71
+ try {
72
+ sock.write(JSON.stringify({ id, answer }) + "\n");
73
+ }
74
+ catch {
75
+ /* socket closed before reply — client fails closed */
76
+ }
77
+ }
78
+ //# sourceMappingURL=askBroker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"askBroker.js","sourceRoot":"","sources":["../../../src/core/brokers/askBroker.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,EAAE;AACF,yEAAyE;AACzE,oEAAoE;AACpE,yEAAyE;AACzE,8DAA8D;AAC9D,EAAE;AACF,0CAA0C;AAC1C,mEAAmE;AACnE,+BAA+B;AAC/B,sEAAsE;AACtE,kEAAkE;AAClE,0EAA0E;AAC1E,yEAAyE;AACzE,EAAE;AACF,kCAAkC;AAClC,qGAAqG;AACrG,uDAAuD;AACvD,EAAE;AACF,uEAAuE;AACvE,iEAAiE;AAGjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAkBtD,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,KAAiB;IAEjB,OAAO,iBAAiB,CAAC;QACvB,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,UAAU;QACpB,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;KACtD,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAY;IACpC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,GAAG,GAAgB,EAAE,CAAC;IAC5B,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;QACpB,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC1B,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QACzB,CAAC;aAAM,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YACtC,MAAM,GAAG,GAAG,CAA4B,CAAC;YACzC,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAClC,GAAG,CAAC,IAAI,CAAC;oBACP,KAAK,EAAE,GAAG,CAAC,KAAK;oBAChB,WAAW,EACT,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;iBACpE,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,IAAY,EACZ,IAAY,EACZ,KAAiB;IAEjB,IAAI,GAKH,CAAC;IACF,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;IACT,CAAC;IACD,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;IAClB,MAAM,QAAQ,GAAG,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,KAAK,IAAI,CAAC;IAC7C,IAAI,EAAE,KAAK,SAAS,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAClE,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,GAAG,qBAAqB,CAAC;IACjC,CAAC;IACD,IAAI,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,sDAAsD;IACxD,CAAC;AACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ export type PermissionDecider = (name: string, input: Record<string, unknown>) => Promise<boolean>;
2
+ export interface PermissionBrokerHandle {
3
+ socketPath: string;
4
+ close: () => Promise<void>;
5
+ }
6
+ export declare function startPermissionBroker(onRequest: PermissionDecider): Promise<PermissionBrokerHandle>;
7
+ //# sourceMappingURL=permissionBroker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissionBroker.d.ts","sourceRoot":"","sources":["../../../src/core/brokers/permissionBroker.ts"],"names":[],"mappings":"AA2BA,MAAM,MAAM,iBAAiB,GAAG,CAC9B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC3B,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED,wBAAsB,qBAAqB,CACzC,SAAS,EAAE,iBAAiB,GAC3B,OAAO,CAAC,sBAAsB,CAAC,CAQjC"}
@@ -0,0 +1,63 @@
1
+ // Phase 31: Unix-socket permission broker.
2
+ //
3
+ // When --ask is on AND --expose-omg-tools is on, the omg-MCP server
4
+ // runs as a grandchild process (omg → CLI → mcp-server). The TUI's
5
+ // PermissionPrompt lives in the omg parent, so the grandchild has
6
+ // no direct path to it.
7
+ //
8
+ // This module bridges that gap with a Unix domain socket:
9
+ // - PermissionBroker.start(onRequest): spawns a socket server in
10
+ // omg, returns { socketPath, close() }.
11
+ // - The MCP server-side client (src/mcp/permissionClient.ts)
12
+ // connects, writes one JSON line per tool/call, reads one
13
+ // response line.
14
+ // - Each request is forwarded to onRequest(name, input). Whatever
15
+ // boolean that resolves to becomes the `allow` field on the
16
+ // wire response.
17
+ //
18
+ // Protocol (line-delimited JSON):
19
+ // client → broker: {"id":1,"name":"echo","input":{...}}
20
+ // broker → client: {"id":1,"allow":true|false}
21
+ //
22
+ // Errors / closed connections are fail-closed (allow=false) on the
23
+ // client side; the broker side simply drops malformed lines.
24
+ import { startSocketBroker } from "./socketBroker.js";
25
+ export async function startPermissionBroker(onRequest) {
26
+ // Phase 203: socket boilerplate lives in startSocketBroker; here
27
+ // we only declare our protocol + handler.
28
+ return startSocketBroker({
29
+ prefix: "perm",
30
+ filename: "perm.sock",
31
+ onLine: (line, sock) => handleLine(line, sock, onRequest),
32
+ });
33
+ }
34
+ async function handleLine(line, sock, onRequest) {
35
+ let req;
36
+ try {
37
+ req = JSON.parse(line);
38
+ }
39
+ catch {
40
+ return;
41
+ }
42
+ const id = req.id;
43
+ const name = typeof req.name === "string" ? req.name : "";
44
+ const input = req.input !== null && typeof req.input === "object"
45
+ ? req.input
46
+ : {};
47
+ if (id === undefined || !name)
48
+ return;
49
+ let allow;
50
+ try {
51
+ allow = await onRequest(name, input);
52
+ }
53
+ catch {
54
+ allow = false;
55
+ }
56
+ try {
57
+ sock.write(JSON.stringify({ id, allow }) + "\n");
58
+ }
59
+ catch {
60
+ // Socket closed before reply — caller will fail-close on their side.
61
+ }
62
+ }
63
+ //# sourceMappingURL=permissionBroker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissionBroker.js","sourceRoot":"","sources":["../../../src/core/brokers/permissionBroker.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,EAAE;AACF,oEAAoE;AACpE,mEAAmE;AACnE,kEAAkE;AAClE,wBAAwB;AACxB,EAAE;AACF,0DAA0D;AAC1D,mEAAmE;AACnE,4CAA4C;AAC5C,+DAA+D;AAC/D,8DAA8D;AAC9D,qBAAqB;AACrB,oEAAoE;AACpE,gEAAgE;AAChE,qBAAqB;AACrB,EAAE;AACF,kCAAkC;AAClC,2DAA2D;AAC3D,kDAAkD;AAClD,EAAE;AACF,mEAAmE;AACnE,6DAA6D;AAG7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAYtD,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,SAA4B;IAE5B,iEAAiE;IACjE,0CAA0C;IAC1C,OAAO,iBAAiB,CAAC;QACvB,MAAM,EAAE,MAAM;QACd,QAAQ,EAAE,WAAW;QACrB,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC;KAC1D,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,IAAY,EACZ,IAAY,EACZ,SAA4B;IAE5B,IAAI,GAAsD,CAAC;IAC3D,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;IACT,CAAC;IACD,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;IAClB,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1D,MAAM,KAAK,GACT,GAAG,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ;QACjD,CAAC,CAAE,GAAG,CAAC,KAAiC;QACxC,CAAC,CAAC,EAAE,CAAC;IACT,IAAI,EAAE,KAAK,SAAS,IAAI,CAAC,IAAI;QAAE,OAAO;IACtC,IAAI,KAAc,CAAC;IACnB,IAAI,CAAC;QACH,KAAK,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IACD,IAAI,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,qEAAqE;IACvE,CAAC;AACH,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { type Socket } from "node:net";
2
+ /**
3
+ * The local-IPC address to listen on / connect to for this broker.
4
+ *
5
+ * - Windows: a named pipe `\\.\pipe\omg-<prefix>-<pid>-<stamp>-<seq>`.
6
+ * Named pipes aren't filesystem objects — no temp dir, and the OS
7
+ * releases the name when the server closes.
8
+ * - POSIX: a Unix-domain socket file inside a fresh `mkdtemp` dir
9
+ * (unchanged from the original behavior).
10
+ *
11
+ * `platform` is a parameter so the Windows branch is unit-testable from
12
+ * any host.
13
+ */
14
+ export declare function chooseSocketPath(platform: NodeJS.Platform, opts: {
15
+ prefix: string;
16
+ filename: string;
17
+ }): string;
18
+ export interface SocketBrokerHandle {
19
+ socketPath: string;
20
+ close(): Promise<void>;
21
+ }
22
+ export interface SocketBrokerOptions {
23
+ /** Prefix for `mkdtempSync(tmpdir + omg-<prefix>-)`. Just a label
24
+ * so /tmp listings are scannable; doesn't affect behavior. */
25
+ prefix: string;
26
+ /** Filename of the socket inside the temp dir (e.g. "perm.sock"). */
27
+ filename: string;
28
+ /** Per-line handler. Receives the trimmed line (empty lines never
29
+ * reach here) and the open socket. Caller may write reply line(s)
30
+ * to the socket. Synchronous return is fine; async return is
31
+ * awaited via `void`. */
32
+ onLine: (line: string, sock: Socket) => Promise<void> | void;
33
+ }
34
+ export declare function startSocketBroker(opts: SocketBrokerOptions): Promise<SocketBrokerHandle>;
35
+ //# sourceMappingURL=socketBroker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"socketBroker.d.ts","sourceRoot":"","sources":["../../../src/core/brokers/socketBroker.ts"],"names":[],"mappings":"AAoBA,OAAO,EAA6B,KAAK,MAAM,EAAE,MAAM,UAAU,CAAC;AAQlE;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,CAAC,QAAQ,EACzB,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACzC,MAAM,CAOR;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC;mEAC+D;IAC/D,MAAM,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,QAAQ,EAAE,MAAM,CAAC;IACjB;;;8BAG0B;IAC1B,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC9D;AAED,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,kBAAkB,CAAC,CA4B7B"}
@@ -0,0 +1,74 @@
1
+ // Phase 203: shared local-socket broker helper.
2
+ //
3
+ // The three brokers (permission / ask / askProxy) all repeated the
4
+ // same ~25 LOC of boilerplate: mkdtempSync → createServer + readline
5
+ // per connection → server.listen + once("error") rejection → unref.
6
+ // The only piece that differed per broker was the per-line handler.
7
+ // This module owns the boilerplate; brokers compose around it.
8
+ //
9
+ // Each connection gets a per-socket readline interface; lines arrive
10
+ // trimmed, with empty lines skipped. The caller's onLine receives
11
+ // the (already-trimmed) line and the socket so it can write back a
12
+ // reply line. Broker-level errors are swallowed — clients are
13
+ // expected to fail-closed on their side when a write fails.
14
+ //
15
+ // Phase 345 (Windows): the transport is a local IPC endpoint that
16
+ // node:net abstracts identically across platforms — a Unix-domain
17
+ // socket file on POSIX, a named pipe (`\\.\pipe\…`) on Windows.
18
+ // `createServer().listen(path)` and the clients' `createConnection(path)`
19
+ // take either form; only the path we hand them differs by platform.
20
+ import { createServer } from "node:net";
21
+ import { createInterface } from "node:readline";
22
+ import { mkdtempSync } from "node:fs";
23
+ import { tmpdir } from "node:os";
24
+ import { join } from "node:path";
25
+ let pipeSeq = 0;
26
+ /**
27
+ * The local-IPC address to listen on / connect to for this broker.
28
+ *
29
+ * - Windows: a named pipe `\\.\pipe\omg-<prefix>-<pid>-<stamp>-<seq>`.
30
+ * Named pipes aren't filesystem objects — no temp dir, and the OS
31
+ * releases the name when the server closes.
32
+ * - POSIX: a Unix-domain socket file inside a fresh `mkdtemp` dir
33
+ * (unchanged from the original behavior).
34
+ *
35
+ * `platform` is a parameter so the Windows branch is unit-testable from
36
+ * any host.
37
+ */
38
+ export function chooseSocketPath(platform, opts) {
39
+ if (platform === "win32") {
40
+ const name = `omg-${opts.prefix}-${process.pid}-${Date.now()}-${pipeSeq++}`;
41
+ return `\\\\.\\pipe\\${name}`;
42
+ }
43
+ const dir = mkdtempSync(join(tmpdir(), `omg-${opts.prefix}-`));
44
+ return join(dir, opts.filename);
45
+ }
46
+ export async function startSocketBroker(opts) {
47
+ const socketPath = chooseSocketPath(process.platform, opts);
48
+ const server = createServer((sock) => {
49
+ const rl = createInterface({ input: sock, crlfDelay: Infinity });
50
+ rl.on("line", (line) => {
51
+ const trimmed = line.trim();
52
+ if (!trimmed)
53
+ return;
54
+ void opts.onLine(trimmed, sock);
55
+ });
56
+ sock.on("error", () => {
57
+ /* client died mid-request — drop */
58
+ });
59
+ });
60
+ await new Promise((resolve, reject) => {
61
+ server.once("error", reject);
62
+ server.listen(socketPath, () => {
63
+ server.off("error", reject);
64
+ resolve();
65
+ });
66
+ });
67
+ // Don't keep the event loop alive solely for the broker.
68
+ server.unref();
69
+ return {
70
+ socketPath,
71
+ close: () => new Promise((resolve) => server.close(() => resolve())),
72
+ };
73
+ }
74
+ //# sourceMappingURL=socketBroker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"socketBroker.js","sourceRoot":"","sources":["../../../src/core/brokers/socketBroker.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,EAAE;AACF,mEAAmE;AACnE,qEAAqE;AACrE,oEAAoE;AACpE,oEAAoE;AACpE,+DAA+D;AAC/D,EAAE;AACF,qEAAqE;AACrE,kEAAkE;AAClE,mEAAmE;AACnE,8DAA8D;AAC9D,4DAA4D;AAC5D,EAAE;AACF,kEAAkE;AAClE,kEAAkE;AAClE,gEAAgE;AAChE,0EAA0E;AAC1E,oEAAoE;AAEpE,OAAO,EAAE,YAAY,EAA4B,MAAM,UAAU,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,IAAI,OAAO,GAAG,CAAC,CAAC;AAEhB;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAC9B,QAAyB,EACzB,IAA0C;IAE1C,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,OAAO,EAAE,EAAE,CAAC;QAC5E,OAAO,gBAAgB,IAAI,EAAE,CAAC;IAChC,CAAC;IACD,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC/D,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AAClC,CAAC;AAoBD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,IAAyB;IAEzB,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAW,YAAY,CAAC,CAAC,IAAY,EAAE,EAAE;QACnD,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;QACjE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACrB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO;gBAAE,OAAO;YACrB,KAAK,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACpB,oCAAoC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC7B,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE;YAC7B,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC5B,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,yDAAyD;IACzD,MAAM,CAAC,KAAK,EAAE,CAAC;IAEf,OAAO;QACL,UAAU;QACV,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;KAC3E,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ /** Copy `text` to the clipboard. Resolves with the utility that
2
+ * succeeded (e.g. "pbcopy"); rejects when no candidate works. */
3
+ export declare function copyToClipboard(text: string): Promise<string>;
4
+ //# sourceMappingURL=clipboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clipboard.d.ts","sourceRoot":"","sources":["../../src/core/clipboard.ts"],"names":[],"mappings":"AAoCA;kEACkE;AAClE,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAqBnE"}
@@ -0,0 +1,46 @@
1
+ // Phase 172: copy text to the system clipboard via the platform's
2
+ // native utility. macOS uses pbcopy; Linux tries the common
3
+ // wayland/X11 tools; Windows uses clip. Each candidate is piped the
4
+ // text on stdin and we take the first one that exits cleanly.
5
+ import { spawn } from "node:child_process";
6
+ /** Ordered list of `argv` candidates per platform. The first one that
7
+ * runs without erroring wins, so a machine missing wl-copy can still
8
+ * fall through to xclip / xsel. */
9
+ const CANDIDATES = {
10
+ darwin: [["pbcopy"]],
11
+ linux: [
12
+ ["wl-copy"],
13
+ ["xclip", "-selection", "clipboard"],
14
+ ["xsel", "--clipboard", "--input"],
15
+ ],
16
+ win32: [["clip"]],
17
+ };
18
+ function pipeToCommand(bin, args, text) {
19
+ return new Promise((resolve, reject) => {
20
+ const child = spawn(bin, args, { stdio: ["pipe", "ignore", "ignore"] });
21
+ child.on("error", reject);
22
+ child.on("close", (code) => code === 0 ? resolve() : reject(new Error(`${bin} exited ${code}`)));
23
+ child.stdin.on("error", reject);
24
+ child.stdin.end(text);
25
+ });
26
+ }
27
+ /** Copy `text` to the clipboard. Resolves with the utility that
28
+ * succeeded (e.g. "pbcopy"); rejects when no candidate works. */
29
+ export async function copyToClipboard(text) {
30
+ const candidates = CANDIDATES[process.platform] ?? [];
31
+ if (candidates.length === 0) {
32
+ throw new Error(`no clipboard utility known for platform ${process.platform}`);
33
+ }
34
+ let lastErr;
35
+ for (const [bin, ...args] of candidates) {
36
+ try {
37
+ await pipeToCommand(bin, args, text);
38
+ return bin;
39
+ }
40
+ catch (e) {
41
+ lastErr = e;
42
+ }
43
+ }
44
+ throw new Error(`clipboard copy failed (tried ${candidates.map((c) => c[0]).join(", ")}): ${lastErr instanceof Error ? lastErr.message : String(lastErr)}`);
45
+ }
46
+ //# sourceMappingURL=clipboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clipboard.js","sourceRoot":"","sources":["../../src/core/clipboard.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,4DAA4D;AAC5D,oEAAoE;AACpE,8DAA8D;AAE9D,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C;;oCAEoC;AACpC,MAAM,UAAU,GAA+B;IAC7C,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;IACpB,KAAK,EAAE;QACL,CAAC,SAAS,CAAC;QACX,CAAC,OAAO,EAAE,YAAY,EAAE,WAAW,CAAC;QACpC,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,CAAC;KACnC;IACD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;CAClB,CAAC;AAEF,SAAS,aAAa,CACpB,GAAW,EACX,IAAc,EACd,IAAY;IAEZ,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QACxE,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC1B,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CACzB,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,WAAW,IAAI,EAAE,CAAC,CAAC,CACpE,CAAC;QACF,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAChC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;AACL,CAAC;AAED;kEACkE;AAClE,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAY;IAChD,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACtD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CACb,2CAA2C,OAAO,CAAC,QAAQ,EAAE,CAC9D,CAAC;IACJ,CAAC;IACD,IAAI,OAAgB,CAAC;IACrB,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,UAAU,EAAE,CAAC;QACxC,IAAI,CAAC;YACH,MAAM,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YACrC,OAAO,GAAG,CAAC;QACb,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,GAAG,CAAC,CAAC;QACd,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CACb,gCAAgC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MACpE,OAAO,YAAY,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAC7D,EAAE,CACH,CAAC;AACJ,CAAC"}