@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,497 @@
1
+ // omg — tab lifecycle slash commands, extracted from slash.ts (pure
2
+ // move): dup, rename, tabs, new, switch, close.
3
+ import { contextWindowForProvider } from "../../core/context/contextWindows.js";
4
+ // Tab lifecycle commands: dup, rename, tabs, new, switch, close.
5
+ export async function dispatchTabs(name, args, ctx) {
6
+ if (name === "dup") {
7
+ // /dup [name] — clone the active tab's messages + events into
8
+ // a new tab. The new tab inherits provider/model/cwd but
9
+ // starts with no CLI sessionId, so the next user turn opens
10
+ // a fresh CLI session that re-sees the conversation history
11
+ // from the duplicated messages.
12
+ const src = ctx.currentTab();
13
+ const argRaw = args.trim();
14
+ const explicit = argRaw.length > 0;
15
+ let target = explicit ? argRaw : `${src.name}-dup`;
16
+ if (ctx.tabs.has(target)) {
17
+ // Collision: append -2, -3, ...
18
+ let n = 2;
19
+ while (ctx.tabs.has(`${target}-${n}`))
20
+ n++;
21
+ target = `${target}-${n}`;
22
+ }
23
+ let next;
24
+ try {
25
+ next = await ctx.makeTab(target, src.provider, src.model, {
26
+ autoNamed: !explicit,
27
+ cwd: src.cwd,
28
+ });
29
+ }
30
+ catch (e) {
31
+ ctx.pushNotif({
32
+ jsonrpc: "2.0",
33
+ method: "event/text",
34
+ params: {
35
+ text: `[dup] failed to build adapter: ${e.message}\n`,
36
+ },
37
+ });
38
+ return true;
39
+ }
40
+ // Phase 245 (audit): shallow `{...m}` shared the toolCalls array
41
+ // by reference between source and dup tabs. ToolCallRequest items
42
+ // are mostly readonly so practical impact today is low, but any
43
+ // future code that appends to `assistant.toolCalls` would mutate
44
+ // both tabs in lock-step. Clone the array per-message.
45
+ next.messages = src.messages.map((m) => m.role === "assistant"
46
+ ? { ...m, toolCalls: [...m.toolCalls] }
47
+ : { ...m });
48
+ // Notifications are immutable in practice; shallow clone is enough.
49
+ next.events = [...src.events];
50
+ // Save the active tab's adapter session before swapping.
51
+ src.sessionId = src.adapter.currentSessionId;
52
+ ctx.tabs.set(target, next);
53
+ ctx.state.activeTabName = target;
54
+ ctx.pushNotif({
55
+ jsonrpc: "2.0",
56
+ method: "event/log_replace",
57
+ params: { events: next.events },
58
+ });
59
+ ctx.pushStatus({
60
+ sessionId: "—",
61
+ provider: next.provider,
62
+ model: next.model || "(default)",
63
+ contextWindow: contextWindowForProvider(next.provider, next.model),
64
+ tokensIn: 0,
65
+ tokensOut: 0,
66
+ toolCalls: 0,
67
+ cwd: next.cwd,
68
+ activeTab: target,
69
+ tabCount: ctx.tabs.size,
70
+ tabIndex: ctx.tabIndex(target),
71
+ tabsReady: ctx.readyCount(),
72
+ // Phase 230: per-tab chip refresh.
73
+ tabsState: ctx.snapshotTabsState(),
74
+ });
75
+ ctx.pushNotif({
76
+ jsonrpc: "2.0",
77
+ method: "event/text",
78
+ params: {
79
+ text: `[dup] '${src.name}' → '${target}' (${next.messages.length} msgs cloned)\n`,
80
+ },
81
+ });
82
+ return true;
83
+ }
84
+ if (name === "rename") {
85
+ const next = args.trim();
86
+ if (!next) {
87
+ ctx.pushNotif({
88
+ jsonrpc: "2.0",
89
+ method: "event/text",
90
+ params: { text: "[rename] usage: /rename <new-name>\n" },
91
+ });
92
+ return true;
93
+ }
94
+ if (ctx.tabs.has(next)) {
95
+ ctx.pushNotif({
96
+ jsonrpc: "2.0",
97
+ method: "event/text",
98
+ params: {
99
+ text: `[rename] '${next}' is already taken; pick a different name.\n`,
100
+ },
101
+ });
102
+ return true;
103
+ }
104
+ const before = ctx.state.activeTabName;
105
+ if (!ctx.renameTab(ctx.state.activeTabName, next)) {
106
+ ctx.pushNotif({
107
+ jsonrpc: "2.0",
108
+ method: "event/text",
109
+ params: { text: `[rename] could not rename to '${next}'\n` },
110
+ });
111
+ return true;
112
+ }
113
+ // Phase 53: an explicit rename pins the name — the auto-namer
114
+ // shouldn't overwrite it after the next turn.
115
+ const t = ctx.currentTab();
116
+ t.autoNamed = false;
117
+ ctx.pushStatus({
118
+ activeTab: t.name,
119
+ tabCount: ctx.tabs.size,
120
+ tabIndex: ctx.tabIndex(t.name),
121
+ // Phase 230: rename changes a tab name — refresh the chip.
122
+ tabsState: ctx.snapshotTabsState(),
123
+ });
124
+ ctx.pushNotif({
125
+ jsonrpc: "2.0",
126
+ method: "event/text",
127
+ params: { text: `[rename] '${before}' → '${next}'\n` },
128
+ });
129
+ return true;
130
+ }
131
+ if (name === "tabs") {
132
+ const lines = [...ctx.tabs.values()].map((t, i) => {
133
+ const marker = t.name === ctx.state.activeTabName ? "*" : " ";
134
+ const modelTag = t.model ? `/${t.model}` : "";
135
+ const flightTag = t.inFlight
136
+ ? " streaming"
137
+ : t.hasUnreadCompletion
138
+ ? " •ready"
139
+ : "";
140
+ // Phase 325: per-tab context fill — multi-agent tools rarely surface
141
+ // this. Only shown once a tab has a usage reading.
142
+ const win = contextWindowForProvider(t.provider, t.model);
143
+ const ctxTag = win && t.tokensIn > 0
144
+ ? `, ctx ${Math.min(100, Math.round((t.tokensIn / win) * 100))}%`
145
+ : "";
146
+ return ` ${marker} ${i + 1}. ${t.name} (${t.provider}${modelTag}, ${t.messages.length} msg${t.messages.length === 1 ? "" : "s"}${ctxTag}, sess: ${t.sessionId ? t.sessionId.slice(0, 8) : "—"})${flightTag}`;
147
+ });
148
+ ctx.pushNotif({
149
+ jsonrpc: "2.0",
150
+ method: "event/text",
151
+ params: { text: `[tabs] ${ctx.tabs.size} open\n${lines.join("\n")}\n` },
152
+ });
153
+ return true;
154
+ }
155
+ if (name === "new") {
156
+ // Phase 51: switching mid-stream is now safe — the prior tab
157
+ // keeps streaming in the background, and pushNotif routes
158
+ // events to whichever tab owned them.
159
+ // Phase 48: parse `[name] [--provider <p>] [--model <m>]`.
160
+ const tokens = args.trim().split(/\s+/).filter(Boolean);
161
+ let target;
162
+ let providerOverride;
163
+ let modelOverride;
164
+ for (let i = 0; i < tokens.length; i++) {
165
+ if (tokens[i] === "--provider" || tokens[i] === "-p") {
166
+ providerOverride = tokens[++i];
167
+ }
168
+ else if (tokens[i] === "--model" || tokens[i] === "-m") {
169
+ modelOverride = tokens[++i];
170
+ }
171
+ else if (!target) {
172
+ target = tokens[i];
173
+ }
174
+ }
175
+ // Phase 53: a name-less /new gets an auto placeholder and
176
+ // becomes eligible for first-message rename. An explicit
177
+ // name sticks.
178
+ const autoNamed = target === undefined;
179
+ if (!target)
180
+ target = `tab-${ctx.state.nextTabSerial++}`;
181
+ if (ctx.tabs.has(target)) {
182
+ ctx.pushNotif({
183
+ jsonrpc: "2.0",
184
+ method: "event/text",
185
+ params: {
186
+ text: `[new] tab '${target}' already exists; use /switch ${target}\n`,
187
+ },
188
+ });
189
+ return true;
190
+ }
191
+ const KNOWN = [
192
+ "stub",
193
+ "claude",
194
+ "codex",
195
+ "gemini",
196
+ "claude-cli",
197
+ "codex-cli",
198
+ "gemini-cli",
199
+ ];
200
+ if (providerOverride && !KNOWN.includes(providerOverride)) {
201
+ ctx.pushNotif({
202
+ jsonrpc: "2.0",
203
+ method: "event/text",
204
+ params: {
205
+ text: `[new] unknown provider '${providerOverride}'. Known: ${KNOWN.join(", ")}\n`,
206
+ },
207
+ });
208
+ return true;
209
+ }
210
+ const tabProvider = providerOverride ?? ctx.currentTab().provider;
211
+ // Inherit model from current tab when staying on the same
212
+ // provider; otherwise let the new adapter pick its default
213
+ // unless the caller supplied --model.
214
+ const tabModel = modelOverride ??
215
+ (tabProvider === ctx.currentTab().provider ? ctx.currentTab().model : "");
216
+ // Save the active tab's current adapter sessionId.
217
+ ctx.currentTab().sessionId = ctx.currentTab().adapter.currentSessionId;
218
+ // Build the new tab (with its own adapter) + switch. New
219
+ // tab inherits the active tab's cwd (most common case: open
220
+ // another conversation in the same project).
221
+ let next;
222
+ try {
223
+ next = await ctx.makeTab(target, tabProvider, tabModel, {
224
+ autoNamed,
225
+ cwd: ctx.currentTab().cwd,
226
+ });
227
+ }
228
+ catch (e) {
229
+ ctx.pushNotif({
230
+ jsonrpc: "2.0",
231
+ method: "event/text",
232
+ params: {
233
+ text: `[new] failed to build adapter: ${e.message}\n`,
234
+ },
235
+ });
236
+ return true;
237
+ }
238
+ ctx.tabs.set(target, next);
239
+ ctx.state.activeTabName = target;
240
+ ctx.pushNotif({
241
+ jsonrpc: "2.0",
242
+ method: "event/log_replace",
243
+ params: { events: next.events },
244
+ });
245
+ ctx.pushStatus({
246
+ sessionId: "—",
247
+ provider: next.provider,
248
+ model: next.model || "(default)",
249
+ contextWindow: contextWindowForProvider(next.provider, next.model),
250
+ tokensIn: 0,
251
+ tokensOut: 0,
252
+ toolCalls: 0,
253
+ activeTab: target,
254
+ tabCount: ctx.tabs.size,
255
+ tabIndex: ctx.tabIndex(target),
256
+ // Phase 230: refresh per-tab chip so the new tab appears
257
+ // immediately rather than waiting for the next state-change push.
258
+ tabsState: ctx.snapshotTabsState(),
259
+ });
260
+ ctx.pushNotif({
261
+ jsonrpc: "2.0",
262
+ method: "event/text",
263
+ params: { text: `[new] '${target}' (${ctx.tabs.size} ctx.tabs)\n` },
264
+ });
265
+ return true;
266
+ }
267
+ if (name === "switch") {
268
+ // Phase 51: background streams keep running; switch is safe.
269
+ const arg = args.trim();
270
+ if (!arg) {
271
+ ctx.pushNotif({
272
+ jsonrpc: "2.0",
273
+ method: "event/text",
274
+ params: { text: `[switch] usage: /switch <name|index>\n` },
275
+ });
276
+ return true;
277
+ }
278
+ // Resolve target by name, 1-based index, or relative offset
279
+ // (Phase 68: "+1" / "-1" for Ctrl-O / Ctrl-P cycle keys).
280
+ let target;
281
+ if (ctx.tabs.has(arg)) {
282
+ target = arg;
283
+ }
284
+ else if (/^[+-]\d+$/.test(arg)) {
285
+ const offset = Number(arg);
286
+ const names = [...ctx.tabs.keys()];
287
+ const cur = names.indexOf(ctx.state.activeTabName);
288
+ if (cur >= 0 && names.length > 0) {
289
+ const next = (cur + offset + names.length * 1000) % names.length;
290
+ target = names[next];
291
+ }
292
+ }
293
+ else {
294
+ const idx = Number(arg);
295
+ if (Number.isInteger(idx) && idx >= 1 && idx <= ctx.tabs.size) {
296
+ target = [...ctx.tabs.keys()][idx - 1];
297
+ }
298
+ }
299
+ if (!target || !ctx.tabs.has(target)) {
300
+ ctx.pushNotif({
301
+ jsonrpc: "2.0",
302
+ method: "event/text",
303
+ params: { text: `[switch] no tab '${arg}'\n` },
304
+ });
305
+ return true;
306
+ }
307
+ if (target === ctx.state.activeTabName) {
308
+ ctx.pushNotif({
309
+ jsonrpc: "2.0",
310
+ method: "event/text",
311
+ params: { text: `[switch] already on '${target}'\n` },
312
+ });
313
+ return true;
314
+ }
315
+ // Save current tab state — the adapter's live sessionId is the
316
+ // source of truth, so snapshot it back into the tab before we
317
+ // jump.
318
+ ctx.currentTab().sessionId = ctx.currentTab().adapter.currentSessionId;
319
+ ctx.state.activeTabName = target;
320
+ const t = ctx.currentTab();
321
+ // Phase 52: switching to a tab clears its unread flag.
322
+ t.hasUnreadCompletion = false;
323
+ ctx.pushNotif({
324
+ jsonrpc: "2.0",
325
+ method: "event/log_replace",
326
+ params: { events: t.events },
327
+ });
328
+ ctx.pushStatus({
329
+ sessionId: t.sessionId ?? "—",
330
+ provider: t.provider,
331
+ model: t.model || "(default)",
332
+ contextWindow: contextWindowForProvider(t.provider, t.model),
333
+ tokensIn: t.tokensIn,
334
+ tokensOut: t.tokensOut,
335
+ toolCalls: t.toolCalls,
336
+ cwd: t.cwd,
337
+ activeTab: target,
338
+ tabCount: ctx.tabs.size,
339
+ tabIndex: ctx.tabIndex(target),
340
+ tabsReady: ctx.readyCount(),
341
+ // Phase 220 (hotfix): restore the target tab's team panel state.
342
+ // Cached on the tab whenever the team pipeline pushes an update;
343
+ // empty values reset the panel cleanly if the tab isn't running
344
+ // a team at the moment.
345
+ teamPhase: t.teamPhase ?? "",
346
+ teamRoles: t.teamRoles ?? [],
347
+ // Phase 221 (hotfix): refresh the per-tab chip on switch — the
348
+ // active tab just changed, the previous tab might be running,
349
+ // the destination might have unread / asking flags to clear.
350
+ tabsState: ctx.snapshotTabsState(),
351
+ });
352
+ // Phase 221 (hotfix): replay any picker requests that arrived
353
+ // while this tab was inactive. The broker queues them on
354
+ // tab.pendingAsks; on /switch we drain them into ink so the
355
+ // picker actually renders.
356
+ if (t.pendingAsks && t.pendingAsks.length > 0) {
357
+ for (const ask of t.pendingAsks) {
358
+ ctx.ink.push(ask);
359
+ }
360
+ t.pendingAsks = [];
361
+ }
362
+ // Phase 51: restore the new tab's spinner state. If the target
363
+ // tab is mid-stream, show the spinner; if it's idle, clear any
364
+ // stale spinner from the prior tab. Direct ink push — events
365
+ // not recorded into tab.events because stream_* are ephemeral
366
+ // and the writer doesn't filter them out as "logged".
367
+ ctx.ink.push({
368
+ jsonrpc: "2.0",
369
+ method: t.inFlight ? "event/stream_start" : "event/stream_end",
370
+ params: t.inFlight
371
+ ? { label: `${t.provider} ${t.model || ""}`.trim() }
372
+ : { ok: true },
373
+ });
374
+ // Phase 184: don't echo a "[switch] → ..." line into the event log
375
+ // anymore — it kept landing between two prose chunks and made the
376
+ // assistant reply look interrupted. The TabChip above the input
377
+ // (plus the status-bar entry) already signals the new tab.
378
+ return true;
379
+ }
380
+ if (name === "close") {
381
+ const raw = args.trim();
382
+ // Phase 233: accept either a tab name or a 1-based index
383
+ // (`/close 2` → close the second tab) — same resolution rule as
384
+ // /switch. Default to the active tab when no arg.
385
+ let arg;
386
+ if (!raw) {
387
+ arg = ctx.state.activeTabName;
388
+ }
389
+ else if (ctx.tabs.has(raw)) {
390
+ arg = raw;
391
+ }
392
+ else {
393
+ const idx = Number(raw);
394
+ if (Number.isInteger(idx) && idx >= 1 && idx <= ctx.tabs.size) {
395
+ arg = [...ctx.tabs.keys()][idx - 1];
396
+ }
397
+ else {
398
+ arg = raw;
399
+ }
400
+ }
401
+ const closing = ctx.tabs.get(arg);
402
+ if (closing && closing.inFlight) {
403
+ ctx.pushNotif({
404
+ jsonrpc: "2.0",
405
+ method: "event/text",
406
+ params: {
407
+ text: `[close] '${arg}' is still streaming — switch to it and Esc to cancel first.\n`,
408
+ },
409
+ });
410
+ return true;
411
+ }
412
+ if (!ctx.tabs.has(arg)) {
413
+ ctx.pushNotif({
414
+ jsonrpc: "2.0",
415
+ method: "event/text",
416
+ params: { text: `[close] no tab '${arg}'\n` },
417
+ });
418
+ return true;
419
+ }
420
+ if (ctx.tabs.size <= 1) {
421
+ ctx.pushNotif({
422
+ jsonrpc: "2.0",
423
+ method: "event/text",
424
+ params: { text: `[close] cannot close the last tab\n` },
425
+ });
426
+ return true;
427
+ }
428
+ const wasActive = arg === ctx.state.activeTabName;
429
+ // closing is narrowed above (the `!ctx.tabs.has` branch returned)
430
+ // — re-assert via Map lookup so TS knows it's defined.
431
+ const target = ctx.tabs.get(arg);
432
+ // Phase 239: settle broker state for the dying tab BEFORE
433
+ // removing it from the map. Resolves any queued ask_user
434
+ // round-trips with the NO_ANSWER sentinel so the calling
435
+ // broker thread doesn't hang. Also surface queued type-ahead
436
+ // text to the user so it isn't silently dropped.
437
+ const { dropped } = ctx.cleanupTabBrokers(target);
438
+ const queued = target.queued ?? [];
439
+ // Defensive adapter cancel — for a cleanly-idle tab there's no
440
+ // child process to kill (cliAdapterBase drops the handle in its
441
+ // finally block), but if the adapter is one we don't know
442
+ // (custom / external), this ensures we don't leak its child.
443
+ target.adapter.cancel?.();
444
+ // Phase 246 (audit): also cancel an in-flight predictNext child
445
+ // so /close mid-prediction doesn't leave a haiku spawn running.
446
+ target.predictCancel?.();
447
+ ctx.tabs.delete(arg);
448
+ if (wasActive) {
449
+ // Pick the first remaining tab.
450
+ ctx.state.activeTabName = [...ctx.tabs.keys()][0];
451
+ const t = ctx.currentTab();
452
+ ctx.pushNotif({
453
+ jsonrpc: "2.0",
454
+ method: "event/log_replace",
455
+ params: { events: t.events },
456
+ });
457
+ ctx.pushStatus({
458
+ sessionId: t.sessionId ?? "—",
459
+ provider: t.provider,
460
+ model: t.model || "(default)",
461
+ contextWindow: contextWindowForProvider(t.provider, t.model),
462
+ tokensIn: t.tokensIn,
463
+ tokensOut: t.tokensOut,
464
+ toolCalls: t.toolCalls,
465
+ cwd: t.cwd,
466
+ activeTab: ctx.state.activeTabName,
467
+ tabCount: ctx.tabs.size,
468
+ tabIndex: ctx.tabIndex(ctx.state.activeTabName),
469
+ // Phase 230: per-tab chip refresh.
470
+ tabsState: ctx.snapshotTabsState(),
471
+ });
472
+ }
473
+ else {
474
+ ctx.pushStatus({
475
+ activeTab: ctx.state.activeTabName,
476
+ tabCount: ctx.tabs.size,
477
+ tabIndex: ctx.tabIndex(ctx.state.activeTabName),
478
+ // Phase 230: /close removed a tab — refresh the chip.
479
+ tabsState: ctx.snapshotTabsState(),
480
+ });
481
+ }
482
+ const droppedNote = dropped > 0 ? ` · dropped ${dropped} pending ask${dropped === 1 ? "" : "s"}` : "";
483
+ const queuedNote = queued.length > 0
484
+ ? ` · discarded ${queued.length} queued message${queued.length === 1 ? "" : "s"}`
485
+ : "";
486
+ ctx.pushNotif({
487
+ jsonrpc: "2.0",
488
+ method: "event/text",
489
+ params: {
490
+ text: `[close] '${arg}' (${ctx.tabs.size} tabs)${wasActive ? ` → '${ctx.state.activeTabName}'` : ""}${droppedNote}${queuedNote}\n`,
491
+ },
492
+ });
493
+ return true;
494
+ }
495
+ return false;
496
+ }
497
+ //# sourceMappingURL=tabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.js","sourceRoot":"","sources":["../../../src/cli/slash/tabs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { SlashContext } from "./shared.js";
2
+ export declare function dispatchTeam(name: string, args: string, ctx: SlashContext): Promise<boolean>;
3
+ //# sourceMappingURL=team.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team.d.ts","sourceRoot":"","sources":["../../../src/cli/slash/team.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,YAAY,GAChB,OAAO,CAAC,OAAO,CAAC,CAmFlB"}
@@ -0,0 +1,85 @@
1
+ // omg — `/team` slash command, extracted from slash.ts (pure move).
2
+ // Fires the multi-role team pipeline in a background tab.
3
+ import { parseTeamArgs, runTeamPipeline, selectOrCreateTeamTab, } from "../teamPipeline.js";
4
+ // Team pipeline command: team.
5
+ export async function dispatchTeam(name, args, ctx) {
6
+ if (name === "team") {
7
+ // /team <prompt> — fire the multi-role pipeline (implementer
8
+ // + reviewer + director per team.yaml) in a background tab so
9
+ // the user can keep working on whatever tab they were on; when
10
+ // the team verdict lands, Phase 52's [ready] badge + Phase 59
11
+ // notification surface it.
12
+ //
13
+ // Phase 102 / 302: a planner pass runs before the implementer loop
14
+ // by default; `/team --no-plan <prompt>` skips it for a fast straight
15
+ // implementer→review loop.
16
+ //
17
+ // Phase 198: consecutive /team calls reuse the most-recent idle
18
+ // `team-*` tab instead of piling up team-2, team-3, team-4 every
19
+ // time. `--new` forces a fresh tab when the user genuinely wants
20
+ // an isolated context.
21
+ // Phase 202a: flag parsing and tab selection extracted into
22
+ // teamPipeline.ts so the dispatcher reads top-down.
23
+ const { prompt, withPlanner, forceNew } = parseTeamArgs(args);
24
+ if (!prompt) {
25
+ ctx.pushNotif({
26
+ jsonrpc: "2.0",
27
+ method: "event/text",
28
+ params: {
29
+ text: "[team] usage: /team [--no-plan] [--new] <prompt> (planner on by default)\n",
30
+ },
31
+ });
32
+ return true;
33
+ }
34
+ const selection = await selectOrCreateTeamTab(ctx, forceNew);
35
+ if (selection === null)
36
+ return true; // makeTab error already notified
37
+ const { teamTab, teamTabName } = selection;
38
+ // Snapshot the previous tab's adapter session before swapping.
39
+ ctx.currentTab().sessionId = ctx.currentTab().adapter.currentSessionId;
40
+ ctx.state.activeTabName = teamTabName;
41
+ ctx.pushNotif({
42
+ jsonrpc: "2.0",
43
+ method: "event/log_replace",
44
+ params: { events: teamTab.events },
45
+ });
46
+ ctx.pushStatus({
47
+ sessionId: "—",
48
+ provider: teamTab.provider,
49
+ model: teamTab.model || "(default)",
50
+ cwd: teamTab.cwd,
51
+ activeTab: teamTabName,
52
+ tabCount: ctx.tabs.size,
53
+ tabIndex: ctx.tabIndex(teamTabName),
54
+ });
55
+ // Phase 117: echo the user's prompt as a `›` user line into the
56
+ // team tab. UI-side echo (Phase 115) would be wiped by the
57
+ // log_replace above when we switch to the team tab, so the echo
58
+ // has to come from here, into the team tab's own event stream.
59
+ // The banner no longer repeats the prompt.
60
+ ctx.pushNotif({
61
+ jsonrpc: "2.0",
62
+ method: "event/user_echo",
63
+ params: { text: prompt },
64
+ }, teamTab);
65
+ ctx.pushNotif({
66
+ jsonrpc: "2.0",
67
+ method: "event/text",
68
+ params: { text: `◆ team '${teamTabName}' starting\n` },
69
+ });
70
+ // Fire the team pipeline as a background task. Phase 202b moved
71
+ // the body to runTeamPipeline; this is the void invocation.
72
+ teamTab.inFlight = true;
73
+ teamTab.inFlightSince = Date.now();
74
+ // Phase 288: mark this as an active multi-role pipeline (not a solo
75
+ // turn) so mid-run input is treated as checkpoint steering.
76
+ teamTab.teamInFlight = true;
77
+ // Phase 221 (hotfix): publish so the chip shows `● <idx>` for
78
+ // background team tabs immediately, not after the first banner.
79
+ ctx.pushStatus({ tabsState: ctx.snapshotTabsState() });
80
+ void runTeamPipeline(prompt, withPlanner, teamTab, ctx);
81
+ return true;
82
+ }
83
+ return false;
84
+ }
85
+ //# sourceMappingURL=team.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team.js","sourceRoot":"","sources":["../../../src/cli/slash/team.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { dispatchSlash } from "./slash/index.js";
2
+ export type { SlashState, SlashContext } from "./slash/shared.js";
3
+ //# sourceMappingURL=slash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slash.d.ts","sourceRoot":"","sources":["../../src/cli/slash.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,8 @@
1
+ // omg — slash dispatch barrel. The 1718-line monolith was split into
2
+ // ./slash/{shared,core,team,tabs,session,modes,index}.ts (Phase 280,
3
+ // refactor 3); this file stays as the public entry so cli.ts, turn.ts,
4
+ // teamPipeline.ts, and the tests keep importing from "./cli/slash.js".
5
+ // dispatchSlash handles every /command the TUI sends. State that the
6
+ // handlers mutate by reference travels through SlashContext.
7
+ export { dispatchSlash } from "./slash/index.js";
8
+ //# sourceMappingURL=slash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slash.js","sourceRoot":"","sources":["../../src/cli/slash.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,qEAAqE;AACrE,uEAAuE;AACvE,uEAAuE;AACvE,qEAAqE;AACrE,6DAA6D;AAE7D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC"}