@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,449 @@
1
+ // Phase 22 → 62: streaming-friendly markdown parser.
2
+ //
3
+ // Block detection (in priority order, on a non-fence line):
4
+ // 1. Fenced code block: ```lang? ... ``` (multiline)
5
+ // 2. Heading: #|##|### text (single line)
6
+ // 3. Horizontal rule: --- or *** alone on a line
7
+ // 4. List item: - foo / * foo / 1. foo
8
+ // 5. Blockquote: > foo (consecutive lines join)
9
+ // 6. Paragraph: everything else (blank line ends para)
10
+ //
11
+ // Inline (within paragraph / heading / list-item / quote-line):
12
+ // - Inline code: `code`
13
+ // - Bold: **text** or __text__
14
+ // - Italic: *text* or _text_
15
+ // - Link: [text](url)
16
+ //
17
+ // All multi-line block groupings (list, quote, para) coalesce
18
+ // consecutive matching lines; a blank line or a different block
19
+ // kind ends the run.
20
+ //
21
+ // Streaming-friendly: an unclosed fence at the tail renders as
22
+ // an in-progress fence; an in-progress list/quote/para keeps its
23
+ // kind even if the next line hasn't arrived yet.
24
+ import { shortcodeToEmoji } from "./emoji.js";
25
+ const FENCE_RE = /```([^\n`]*)\n([\s\S]*?)\n?```/g;
26
+ /** Top-level parse: split on fenced blocks first; everything in
27
+ * between is treated as line-based blocks (headings / lists /
28
+ * quotes / rules / paragraphs). */
29
+ export function parseBlocks(input) {
30
+ const blocks = [];
31
+ let cursor = 0;
32
+ for (const m of input.matchAll(FENCE_RE)) {
33
+ const start = m.index ?? 0;
34
+ if (start > cursor) {
35
+ pushLineBlocks(blocks, input.slice(cursor, start));
36
+ }
37
+ blocks.push({ kind: "fence", lang: m[1].trim(), body: m[2] });
38
+ cursor = start + m[0].length;
39
+ }
40
+ if (cursor < input.length) {
41
+ const rest = input.slice(cursor);
42
+ const openerIdx = rest.indexOf("```");
43
+ if (openerIdx >= 0) {
44
+ if (openerIdx > 0)
45
+ pushLineBlocks(blocks, rest.slice(0, openerIdx));
46
+ const afterOpen = rest.slice(openerIdx + 3);
47
+ const nlIdx = afterOpen.indexOf("\n");
48
+ if (nlIdx >= 0) {
49
+ const lang = afterOpen.slice(0, nlIdx).trim();
50
+ const body = afterOpen.slice(nlIdx + 1).replace(/\n+$/, "");
51
+ blocks.push({ kind: "fence", lang, body });
52
+ }
53
+ else {
54
+ pushLineBlocks(blocks, rest.slice(openerIdx));
55
+ }
56
+ }
57
+ else {
58
+ pushLineBlocks(blocks, rest);
59
+ }
60
+ }
61
+ if (blocks.length === 0) {
62
+ pushLineBlocks(blocks, input);
63
+ }
64
+ return blocks;
65
+ }
66
+ export const EMPTY_INCREMENTAL_STATE = {
67
+ fullText: "",
68
+ blocks: [],
69
+ settledIdx: 0,
70
+ settledBlocks: 0,
71
+ };
72
+ /** Walk `text` line-by-line; return the largest index where
73
+ * text[0..idx] ends in a paragraph break (`\n\n`) AND fence depth is
74
+ * even (no open fence at that point). Returns 0 when no such
75
+ * boundary exists. */
76
+ export function findSettledBoundary(text) {
77
+ let inFence = false;
78
+ let best = 0;
79
+ let lineStart = 0;
80
+ for (let i = 0; i < text.length; i++) {
81
+ if (text[i] !== "\n")
82
+ continue;
83
+ const line = text.slice(lineStart, i);
84
+ if (line.trimStart().startsWith("```")) {
85
+ inFence = !inFence;
86
+ }
87
+ if (!inFence && i + 1 < text.length && text[i + 1] === "\n") {
88
+ // We're at "\n\n" outside a fence. text[0..i+2] is settled.
89
+ best = i + 2;
90
+ }
91
+ lineStart = i + 1;
92
+ }
93
+ return best;
94
+ }
95
+ /** Incrementally parse `text` given a previous state. When `text`
96
+ * monotonically extends `prev.fullText`, reuses settled blocks and
97
+ * only re-parses the unsettled tail. Otherwise falls back to a full
98
+ * parse. The returned state's `.blocks` is always identical to
99
+ * `parseBlocks(text)` — only the per-call cost differs. */
100
+ export function parseBlocksIncremental(prev, text) {
101
+ // Fast path: monotonic growth.
102
+ if (text.length >= prev.fullText.length && text.startsWith(prev.fullText)) {
103
+ const newBoundary = findSettledBoundary(text);
104
+ if (newBoundary <= prev.settledIdx) {
105
+ // Boundary didn't move. Reuse settled blocks; only re-parse tail.
106
+ const tailBlocks = parseBlocks(text.slice(prev.settledIdx));
107
+ return {
108
+ fullText: text,
109
+ blocks: [...prev.blocks.slice(0, prev.settledBlocks), ...tailBlocks],
110
+ settledIdx: prev.settledIdx,
111
+ settledBlocks: prev.settledBlocks,
112
+ };
113
+ }
114
+ // Boundary advanced. Re-parse the new settled prefix once, then tail.
115
+ const settled = parseBlocks(text.slice(0, newBoundary));
116
+ const tail = parseBlocks(text.slice(newBoundary));
117
+ return {
118
+ fullText: text,
119
+ blocks: [...settled, ...tail],
120
+ settledIdx: newBoundary,
121
+ settledBlocks: settled.length,
122
+ };
123
+ }
124
+ // Cold path: text differs from prev (rewind / replace / first call).
125
+ const newBoundary = findSettledBoundary(text);
126
+ const settled = newBoundary > 0 ? parseBlocks(text.slice(0, newBoundary)) : [];
127
+ const tail = parseBlocks(text.slice(newBoundary));
128
+ return {
129
+ fullText: text,
130
+ blocks: [...settled, ...tail],
131
+ settledIdx: newBoundary,
132
+ settledBlocks: settled.length,
133
+ };
134
+ }
135
+ /** Phase 172: the body of the last fenced code block in some markdown,
136
+ * or undefined when there are no code fences. Used by `/copy` to grab
137
+ * the most recent code block from an assistant turn. */
138
+ export function lastFenceBody(markdown) {
139
+ const blocks = parseBlocks(markdown);
140
+ for (let i = blocks.length - 1; i >= 0; i--) {
141
+ const b = blocks[i];
142
+ if (b.kind === "fence")
143
+ return b.body;
144
+ }
145
+ return undefined;
146
+ }
147
+ /** Heading: `#` to `###` followed by a space. */
148
+ const HEADING_RE = /^(#{1,3})\s+(.*)$/;
149
+ /** Horizontal rule: exactly --- or *** on a line. */
150
+ const RULE_RE = /^(-{3,}|\*{3,})\s*$/;
151
+ /** Unordered list marker, allowing leading indent (groups: indent, body). */
152
+ const ULIST_RE = /^(\s*)[-*]\s+(.*)$/;
153
+ /** Ordered list marker, allowing leading indent (groups: indent, num, body). */
154
+ const OLIST_RE = /^(\s*)(\d+)\.\s+(.*)$/;
155
+ /** Blockquote. */
156
+ const QUOTE_RE = /^>\s?(.*)$/;
157
+ /** GitHub alert marker on a blockquote's first line: `[!NOTE]` etc. */
158
+ const ALERT_RE = /^\[!(NOTE|TIP|IMPORTANT|WARNING|CAUTION)\]\s*$/i;
159
+ /** Task-list checkbox prefix inside a list item: `[ ]` or `[x]`. */
160
+ const TASK_RE = /^\[([ xX])\]\s+(.*)$/;
161
+ /** A GFM table separator cell: optional colons around dashes. */
162
+ const TABLE_SEP_CELL = /^:?-{1,}:?$/;
163
+ /** Split a table row into trimmed cells, dropping the optional
164
+ * leading / trailing pipe. */
165
+ function splitTableRow(line) {
166
+ let s = line.trim();
167
+ if (s.startsWith("|"))
168
+ s = s.slice(1);
169
+ if (s.endsWith("|"))
170
+ s = s.slice(0, -1);
171
+ return s.split("|").map((c) => c.trim());
172
+ }
173
+ function cellAlign(cell) {
174
+ const left = cell.startsWith(":");
175
+ const right = cell.endsWith(":");
176
+ if (left && right)
177
+ return "center";
178
+ if (right)
179
+ return "right";
180
+ return "left";
181
+ }
182
+ /** Walk a chunk of plain (non-fence) text line by line, group
183
+ * consecutive list / quote / paragraph lines, and emit blocks
184
+ * to `out`. */
185
+ function pushLineBlocks(out, text) {
186
+ if (text.length === 0)
187
+ return;
188
+ const lines = text.split("\n");
189
+ let pendingList = null;
190
+ let pendingQuote = null;
191
+ let pendingPara = null;
192
+ const flushList = () => {
193
+ if (pendingList) {
194
+ out.push({
195
+ kind: "list",
196
+ ordered: pendingList.ordered,
197
+ items: pendingList.items,
198
+ });
199
+ pendingList = null;
200
+ }
201
+ };
202
+ const flushQuote = () => {
203
+ if (pendingQuote) {
204
+ if (pendingQuote.variant) {
205
+ out.push({
206
+ kind: "alert",
207
+ variant: pendingQuote.variant,
208
+ lines: pendingQuote.lines,
209
+ });
210
+ }
211
+ else {
212
+ out.push({ kind: "quote", lines: pendingQuote.lines });
213
+ }
214
+ pendingQuote = null;
215
+ }
216
+ };
217
+ const flushPara = () => {
218
+ if (pendingPara && pendingPara.segments.length > 0) {
219
+ out.push({ kind: "para", segments: pendingPara.segments });
220
+ }
221
+ pendingPara = null;
222
+ };
223
+ const flushAll = () => {
224
+ flushList();
225
+ flushQuote();
226
+ flushPara();
227
+ };
228
+ for (let idx = 0; idx < lines.length; idx++) {
229
+ const line = lines[idx];
230
+ if (line.trim() === "") {
231
+ flushAll();
232
+ continue;
233
+ }
234
+ // GFM table: a header row with `|` immediately followed by a
235
+ // separator row (`|---|:--:|`). Without the separator a `|` line
236
+ // is just a paragraph — so a half-streamed table (header only)
237
+ // safely falls through and renders as text until the rest lands.
238
+ if (line.includes("|") && idx + 1 < lines.length) {
239
+ const sepCells = splitTableRow(lines[idx + 1]);
240
+ if (sepCells.length > 0 &&
241
+ sepCells.every((c) => TABLE_SEP_CELL.test(c))) {
242
+ flushAll();
243
+ const header = splitTableRow(line).map(parseInline);
244
+ const align = sepCells.map(cellAlign);
245
+ const rows = [];
246
+ let j = idx + 2;
247
+ for (; j < lines.length; j++) {
248
+ if (lines[j].trim() === "" || !lines[j].includes("|"))
249
+ break;
250
+ rows.push(splitTableRow(lines[j]).map(parseInline));
251
+ }
252
+ out.push({ kind: "table", header, align, rows });
253
+ idx = j - 1;
254
+ continue;
255
+ }
256
+ }
257
+ // Heading.
258
+ const hm = HEADING_RE.exec(line);
259
+ if (hm) {
260
+ flushAll();
261
+ const level = hm[1].length;
262
+ out.push({
263
+ kind: "heading",
264
+ level,
265
+ segments: parseInline(hm[2]),
266
+ });
267
+ continue;
268
+ }
269
+ // Horizontal rule.
270
+ if (RULE_RE.test(line)) {
271
+ flushAll();
272
+ out.push({ kind: "rule" });
273
+ continue;
274
+ }
275
+ // List item (ordered or unordered, possibly indented for nesting).
276
+ const om = OLIST_RE.exec(line);
277
+ const um = om ? null : ULIST_RE.exec(line);
278
+ const indent = om ? om[1].length : um ? um[1].length : 0;
279
+ const depth = Math.floor(indent / 2);
280
+ // An indented marker only nests under an already-open list. A
281
+ // standalone indented `- x` / `1. x` (no list in progress) stays a
282
+ // paragraph — this keeps arbitrary indented CLI output (e.g. the
283
+ // `/tabs` listing) from being reflowed as a list.
284
+ if ((om || um) && (depth === 0 || pendingList)) {
285
+ flushQuote();
286
+ flushPara();
287
+ const ordered = om !== null;
288
+ // Start a new list block only when nothing is pending, or when a
289
+ // top-level item flips ordered-ness (`- a` then `1. b` = two
290
+ // lists). A deeper item never splits — it's a sub-list.
291
+ if (!pendingList || (depth === 0 && pendingList.ordered !== ordered)) {
292
+ flushList();
293
+ pendingList = { ordered, items: [] };
294
+ }
295
+ const content = om ? om[3] : um[2];
296
+ pendingList.items.push(makeListItem(content, depth, ordered, om ? om[2] : undefined));
297
+ continue;
298
+ }
299
+ // Blockquote — and its GitHub-alert special case, where the first
300
+ // line is a `[!NOTE]`-style marker that names a colored variant.
301
+ const qm = QUOTE_RE.exec(line);
302
+ if (qm) {
303
+ flushList();
304
+ flushPara();
305
+ if (!pendingQuote) {
306
+ const am = ALERT_RE.exec(qm[1].trim());
307
+ pendingQuote = {
308
+ lines: [],
309
+ variant: am ? am[1].toUpperCase() : undefined,
310
+ };
311
+ // The marker line itself isn't body content — skip it.
312
+ if (am)
313
+ continue;
314
+ }
315
+ pendingQuote.lines.push(parseInline(qm[1]));
316
+ continue;
317
+ }
318
+ // Paragraph — accumulate. Soft-wrap join: insert a space when
319
+ // appending to a non-empty para so consecutive lines flow.
320
+ flushList();
321
+ flushQuote();
322
+ if (!pendingPara)
323
+ pendingPara = { segments: parseInline(line) };
324
+ else {
325
+ pendingPara.segments.push({ kind: "text", text: "\n" });
326
+ for (const s of parseInline(line))
327
+ pendingPara.segments.push(s);
328
+ }
329
+ }
330
+ flushAll();
331
+ }
332
+ /** Build a list item from its raw content, peeling a `[ ]`/`[x]`
333
+ * task-list checkbox if present. */
334
+ function makeListItem(content, depth, ordered, marker) {
335
+ const tm = TASK_RE.exec(content);
336
+ if (tm) {
337
+ return {
338
+ segments: parseInline(tm[2]),
339
+ checked: tm[1].toLowerCase() === "x",
340
+ depth,
341
+ ordered,
342
+ marker,
343
+ };
344
+ }
345
+ return { segments: parseInline(content), depth, ordered, marker };
346
+ }
347
+ /** Inline parser. Greedy left-to-right; the first matching delimiter
348
+ * on the cursor wins. Unclosed delimiters degrade to plain text. */
349
+ export function parseInline(input) {
350
+ const out = [];
351
+ let i = 0;
352
+ let plain = "";
353
+ const flush = () => {
354
+ if (plain.length > 0) {
355
+ out.push({ kind: "text", text: plain });
356
+ plain = "";
357
+ }
358
+ };
359
+ while (i < input.length) {
360
+ const ch = input[i];
361
+ // Link: [text](url)
362
+ if (ch === "[") {
363
+ const closeBracket = input.indexOf("]", i + 1);
364
+ if (closeBracket > i && input[closeBracket + 1] === "(") {
365
+ const closeParen = input.indexOf(")", closeBracket + 2);
366
+ if (closeParen > closeBracket) {
367
+ flush();
368
+ out.push({
369
+ kind: "link",
370
+ text: input.slice(i + 1, closeBracket),
371
+ url: input.slice(closeBracket + 2, closeParen),
372
+ });
373
+ i = closeParen + 1;
374
+ continue;
375
+ }
376
+ }
377
+ }
378
+ // Inline code (single backtick). No multi-line code spans here —
379
+ // those belong inside a fenced block.
380
+ if (ch === "`") {
381
+ const end = input.indexOf("`", i + 1);
382
+ if (end > i) {
383
+ flush();
384
+ out.push({ kind: "code", text: input.slice(i + 1, end) });
385
+ i = end + 1;
386
+ continue;
387
+ }
388
+ }
389
+ // Strikethrough: ~~ ... ~~
390
+ if (ch === "~" && input[i + 1] === "~") {
391
+ const end = input.indexOf("~~", i + 2);
392
+ if (end > i + 1) {
393
+ flush();
394
+ out.push({ kind: "strike", text: input.slice(i + 2, end) });
395
+ i = end + 2;
396
+ continue;
397
+ }
398
+ }
399
+ // Bold: ** ... ** or __ ... __
400
+ if ((ch === "*" || ch === "_") && input[i + 1] === ch) {
401
+ const delim = ch.repeat(2);
402
+ const end = input.indexOf(delim, i + 2);
403
+ if (end > i + 1) {
404
+ flush();
405
+ out.push({ kind: "bold", text: input.slice(i + 2, end) });
406
+ i = end + 2;
407
+ continue;
408
+ }
409
+ }
410
+ // Italic: * ... * or _ ... _ (single delim, not part of bold)
411
+ if (ch === "*" || ch === "_") {
412
+ if (input[i + 1] !== ch) {
413
+ let end = -1;
414
+ for (let j = i + 1; j < input.length; j++) {
415
+ if (input[j] === ch && input[j + 1] !== ch && input[j - 1] !== ch) {
416
+ end = j;
417
+ break;
418
+ }
419
+ }
420
+ if (end > i) {
421
+ flush();
422
+ out.push({ kind: "italic", text: input.slice(i + 1, end) });
423
+ i = end + 1;
424
+ continue;
425
+ }
426
+ }
427
+ }
428
+ // Phase 133: :shortcode: → emoji. Only inside plain runs — code
429
+ // spans / links are handled by their own branches above, so a
430
+ // shortcode inside `code` is never substituted (GitHub parity).
431
+ // An unknown name is left as literal text.
432
+ if (ch === ":") {
433
+ const m = /^:([a-z0-9_+-]+):/.exec(input.slice(i));
434
+ if (m) {
435
+ const emoji = shortcodeToEmoji(m[1]);
436
+ if (emoji) {
437
+ plain += emoji;
438
+ i += m[0].length;
439
+ continue;
440
+ }
441
+ }
442
+ }
443
+ plain += ch;
444
+ i += 1;
445
+ }
446
+ flush();
447
+ return out;
448
+ }
449
+ //# sourceMappingURL=markdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/ui/markdown.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ export type MouseWheelDirection = "up" | "down";
2
+ export interface MouseWheelEvent {
3
+ direction: MouseWheelDirection;
4
+ x?: number;
5
+ y?: number;
6
+ }
7
+ /** Detect any SGR mouse packet emitted by xterm-compatible terminals.
8
+ *
9
+ * Ink strips the leading ESC before calling `useInput`, while its
10
+ * internal input emitter still carries the full sequence. Accept both
11
+ * shapes so App can handle wheel packets and CommandInput can ignore
12
+ * every mouse packet before it reaches printable text insertion.
13
+ */
14
+ export declare function isMouseSequence(input: string): boolean;
15
+ /** Parse xterm SGR wheel packets.
16
+ *
17
+ * Wheel events use button codes 64 (up) and 65 (down). Modifier bits
18
+ * may be ORed into the button code, so only the low wheel bit matters:
19
+ * 64/66/68/... are up, 65/67/69/... are down.
20
+ */
21
+ export declare function parseMouseWheel(input: string): MouseWheelEvent | null;
22
+ //# sourceMappingURL=mouse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mouse.d.ts","sourceRoot":"","sources":["../../src/ui/mouse.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAAG,IAAI,GAAG,MAAM,CAAC;AAEhD,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,mBAAmB,CAAC;IAC/B,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;CACZ;AAID;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAYrE"}
@@ -0,0 +1,31 @@
1
+ const SGR_MOUSE_RE = /^(?:\x1b)?\[<(\d+);(\d+);(\d+)([Mm])$/;
2
+ /** Detect any SGR mouse packet emitted by xterm-compatible terminals.
3
+ *
4
+ * Ink strips the leading ESC before calling `useInput`, while its
5
+ * internal input emitter still carries the full sequence. Accept both
6
+ * shapes so App can handle wheel packets and CommandInput can ignore
7
+ * every mouse packet before it reaches printable text insertion.
8
+ */
9
+ export function isMouseSequence(input) {
10
+ return SGR_MOUSE_RE.test(input);
11
+ }
12
+ /** Parse xterm SGR wheel packets.
13
+ *
14
+ * Wheel events use button codes 64 (up) and 65 (down). Modifier bits
15
+ * may be ORed into the button code, so only the low wheel bit matters:
16
+ * 64/66/68/... are up, 65/67/69/... are down.
17
+ */
18
+ export function parseMouseWheel(input) {
19
+ const match = SGR_MOUSE_RE.exec(input);
20
+ if (!match)
21
+ return null;
22
+ const button = Number(match[1]);
23
+ if (!Number.isFinite(button) || button < 64 || button > 95)
24
+ return null;
25
+ return {
26
+ direction: button % 2 === 0 ? "up" : "down",
27
+ x: Number(match[2]),
28
+ y: Number(match[3]),
29
+ };
30
+ }
31
+ //# sourceMappingURL=mouse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mouse.js","sourceRoot":"","sources":["../../src/ui/mouse.ts"],"names":[],"mappings":"AAQA,MAAM,YAAY,GAAG,uCAAuC,CAAC;AAE7D;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,EAAE,IAAI,MAAM,GAAG,EAAE;QAAE,OAAO,IAAI,CAAC;IAExE,OAAO;QACL,SAAS,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;QAC3C,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KACpB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,20 @@
1
+ export interface UserNotification {
2
+ jsonrpc: "2.0";
3
+ method: string;
4
+ params: Record<string, unknown>;
5
+ }
6
+ export interface JsonRpcResponse {
7
+ jsonrpc: "2.0";
8
+ id: string;
9
+ result: unknown;
10
+ }
11
+ export type OutboundMessage = UserNotification | JsonRpcResponse;
12
+ export declare function configureOutbound(handler: (msg: OutboundMessage) => void): void;
13
+ export declare function sendQuit(): void;
14
+ export declare function sendCancel(): void;
15
+ export declare function sendSessionSelect(id: string, provider?: string): void;
16
+ export declare function sendPickerClose(): void;
17
+ export declare function sendInput(text: string, attachments?: readonly string[]): void;
18
+ export declare function sendSlashCommand(name: string, args: string): void;
19
+ export declare function respondRequest(id: string, result: unknown): void;
20
+ //# sourceMappingURL=outbound.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outbound.d.ts","sourceRoot":"","sources":["../../src/ui/outbound.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,KAAK,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,MAAM,eAAe,GAAG,gBAAgB,GAAG,eAAe,CAAC;AAIjE,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,IAAI,GACtC,IAAI,CAGN;AAMD,wBAAgB,QAAQ,IAAI,IAAI,CAE/B;AAED,wBAAgB,UAAU,IAAI,IAAI,CAEjC;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAMrE;AAED,wBAAgB,eAAe,IAAI,IAAI,CAEtC;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAM7E;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAMjE;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAEhE"}
@@ -0,0 +1,49 @@
1
+ // Outbound channel: user events leaving the UI back to the orchestrator.
2
+ //
3
+ // In B+1 (in-process UI) the UI shares a runtime with the orchestrator,
4
+ // so "outbound" is no longer a serialized byte stream — it's an event
5
+ // bus the launcher subscribes to. configureOutbound() wires the bus
6
+ // to the launcher's handler; components keep calling sendQuit / sendInput
7
+ // / sendSlashCommand / respondRequest as before.
8
+ import { EventEmitter } from "node:events";
9
+ const bus = new EventEmitter();
10
+ export function configureOutbound(handler) {
11
+ bus.removeAllListeners("msg");
12
+ bus.on("msg", handler);
13
+ }
14
+ function emit(msg) {
15
+ bus.emit("msg", msg);
16
+ }
17
+ export function sendQuit() {
18
+ emit({ jsonrpc: "2.0", method: "user/quit", params: {} });
19
+ }
20
+ export function sendCancel() {
21
+ emit({ jsonrpc: "2.0", method: "user/cancel", params: {} });
22
+ }
23
+ export function sendSessionSelect(id, provider) {
24
+ emit({
25
+ jsonrpc: "2.0",
26
+ method: "user/select_session",
27
+ params: provider ? { id, provider } : { id },
28
+ });
29
+ }
30
+ export function sendPickerClose() {
31
+ emit({ jsonrpc: "2.0", method: "user/picker_close", params: {} });
32
+ }
33
+ export function sendInput(text, attachments) {
34
+ // Phase 340: attachments = absolute image paths for this turn (clipboard
35
+ // capture or @path). Omitted when empty to keep the wire unchanged.
36
+ const params = attachments && attachments.length > 0 ? { text, attachments } : { text };
37
+ emit({ jsonrpc: "2.0", method: "user/input", params });
38
+ }
39
+ export function sendSlashCommand(name, args) {
40
+ emit({
41
+ jsonrpc: "2.0",
42
+ method: "user/slash",
43
+ params: { name, args },
44
+ });
45
+ }
46
+ export function respondRequest(id, result) {
47
+ emit({ jsonrpc: "2.0", id, result });
48
+ }
49
+ //# sourceMappingURL=outbound.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outbound.js","sourceRoot":"","sources":["../../src/ui/outbound.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,EAAE;AACF,wEAAwE;AACxE,sEAAsE;AACtE,oEAAoE;AACpE,0EAA0E;AAC1E,iDAAiD;AAEjD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAgB3C,MAAM,GAAG,GAAG,IAAI,YAAY,EAAE,CAAC;AAE/B,MAAM,UAAU,iBAAiB,CAC/B,OAAuC;IAEvC,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC9B,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,IAAI,CAAC,GAAoB;IAChC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,EAAU,EAAE,QAAiB;IAC7D,IAAI,CAAC;QACH,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,qBAAqB;QAC7B,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE;KAC7C,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,WAA+B;IACrE,yEAAyE;IACzE,oEAAoE;IACpE,MAAM,MAAM,GACV,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IAC3E,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,IAAY;IACzD,IAAI,CAAC;QACH,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,YAAY;QACpB,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;KACvB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAAU,EAAE,MAAe;IACxD,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AACvC,CAAC"}
@@ -0,0 +1,25 @@
1
+ /** Screen mode policy: normal-screen transcript by default.
2
+ *
3
+ * OMG is a chat/transcript TUI, so the default is normal-screen mode:
4
+ * settled rows are committed to the terminal's native scrollback via
5
+ * Ink's <Static>, and only the live tail repaints. That gives native
6
+ * scroll, search (Cmd+F), and copy across the full history, plays well
7
+ * with multiplexers, and minimizes flicker — the same model Claude
8
+ * Code uses. The two bugs that once pushed OMG toward alt-screen are
9
+ * now fixed independently: the macOS Hangul IME cursor via the Ink 6
10
+ * `useCursor` upgrade (Phase 268), and the <Static> scrollback
11
+ * dup/lag via the `splitTranscriptGroups` guard (Phase 270).
12
+ *
13
+ * Alternate-screen (Codex-style full-frame) mode remains available as
14
+ * an explicit opt-in for users who prefer it: `omg --alt-screen` or
15
+ * `OMG_ALT_SCREEN=1`. Its trade-off is structural, not a quality bug
16
+ * we can polish away — the alternate buffer has no usable native
17
+ * scrollback during the session and some multiplexers (zellij, certain
18
+ * VS Code terminals) mishandle its scroll events.
19
+ *
20
+ * `OMG_NO_ALT_SCREEN=1` is honored as an explicit force-off so scripts
21
+ * that already export it keep working and it always wins over an
22
+ * accidental opt-in.
23
+ */
24
+ export declare function wantsAltScreen(): boolean;
25
+ //# sourceMappingURL=screenMode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screenMode.d.ts","sourceRoot":"","sources":["../../src/ui/screenMode.ts"],"names":[],"mappings":"AAYA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAIxC"}