botmux 2.107.0 → 2.108.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 (515) hide show
  1. package/README.en.md +17 -14
  2. package/README.md +19 -14
  3. package/dist/adapters/backend/sandbox.d.ts +3 -1
  4. package/dist/adapters/backend/sandbox.d.ts.map +1 -1
  5. package/dist/adapters/backend/sandbox.js +19 -3
  6. package/dist/adapters/backend/sandbox.js.map +1 -1
  7. package/dist/adapters/backend/tmux-backend.d.ts.map +1 -1
  8. package/dist/adapters/backend/tmux-backend.js +16 -1
  9. package/dist/adapters/backend/tmux-backend.js.map +1 -1
  10. package/dist/adapters/backend/tmux-pipe-backend.d.ts +24 -15
  11. package/dist/adapters/backend/tmux-pipe-backend.d.ts.map +1 -1
  12. package/dist/adapters/backend/tmux-pipe-backend.js +75 -43
  13. package/dist/adapters/backend/tmux-pipe-backend.js.map +1 -1
  14. package/dist/adapters/cli/genius.d.ts.map +1 -1
  15. package/dist/adapters/cli/genius.js +9 -15
  16. package/dist/adapters/cli/genius.js.map +1 -1
  17. package/dist/adapters/cli/grok.d.ts +73 -0
  18. package/dist/adapters/cli/grok.d.ts.map +1 -0
  19. package/dist/adapters/cli/grok.js +298 -0
  20. package/dist/adapters/cli/grok.js.map +1 -0
  21. package/dist/adapters/cli/oh-my-pi.d.ts.map +1 -1
  22. package/dist/adapters/cli/oh-my-pi.js +133 -12
  23. package/dist/adapters/cli/oh-my-pi.js.map +1 -1
  24. package/dist/adapters/cli/registry.d.ts +2 -1
  25. package/dist/adapters/cli/registry.d.ts.map +1 -1
  26. package/dist/adapters/cli/registry.js +3 -1
  27. package/dist/adapters/cli/registry.js.map +1 -1
  28. package/dist/adapters/cli/shared-hints.d.ts +8 -4
  29. package/dist/adapters/cli/shared-hints.d.ts.map +1 -1
  30. package/dist/adapters/cli/shared-hints.js +8 -4
  31. package/dist/adapters/cli/shared-hints.js.map +1 -1
  32. package/dist/adapters/cli/types.d.ts +18 -16
  33. package/dist/adapters/cli/types.d.ts.map +1 -1
  34. package/dist/adapters/hook-installer.d.ts +5 -4
  35. package/dist/adapters/hook-installer.d.ts.map +1 -1
  36. package/dist/adapters/hook-installer.js +42 -0
  37. package/dist/adapters/hook-installer.js.map +1 -1
  38. package/dist/cli/send-dispatch.d.ts +21 -0
  39. package/dist/cli/send-dispatch.d.ts.map +1 -1
  40. package/dist/cli/send-dispatch.js +159 -0
  41. package/dist/cli/send-dispatch.js.map +1 -1
  42. package/dist/cli/session-list-liveness.d.ts +22 -0
  43. package/dist/cli/session-list-liveness.d.ts.map +1 -0
  44. package/dist/cli/session-list-liveness.js +22 -0
  45. package/dist/cli/session-list-liveness.js.map +1 -0
  46. package/dist/cli.d.ts.map +1 -1
  47. package/dist/cli.js +182 -33
  48. package/dist/cli.js.map +1 -1
  49. package/dist/core/ask-types.d.ts +4 -0
  50. package/dist/core/ask-types.d.ts.map +1 -1
  51. package/dist/core/ask-types.js +10 -0
  52. package/dist/core/ask-types.js.map +1 -1
  53. package/dist/core/cost-calculator.d.ts.map +1 -1
  54. package/dist/core/cost-calculator.js +35 -13
  55. package/dist/core/cost-calculator.js.map +1 -1
  56. package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
  57. package/dist/core/dashboard-ipc-server.js +89 -16
  58. package/dist/core/dashboard-ipc-server.js.map +1 -1
  59. package/dist/core/dashboard-rows.d.ts.map +1 -1
  60. package/dist/core/dashboard-rows.js +6 -2
  61. package/dist/core/dashboard-rows.js.map +1 -1
  62. package/dist/core/dashboard-url.d.ts +6 -5
  63. package/dist/core/dashboard-url.d.ts.map +1 -1
  64. package/dist/core/dashboard-url.js +11 -8
  65. package/dist/core/dashboard-url.js.map +1 -1
  66. package/dist/core/maintenance.d.ts +11 -8
  67. package/dist/core/maintenance.d.ts.map +1 -1
  68. package/dist/core/maintenance.js +45 -20
  69. package/dist/core/maintenance.js.map +1 -1
  70. package/dist/core/per-bot-env.d.ts.map +1 -1
  71. package/dist/core/per-bot-env.js +4 -0
  72. package/dist/core/per-bot-env.js.map +1 -1
  73. package/dist/core/session-discovery.d.ts.map +1 -1
  74. package/dist/core/session-discovery.js +4 -0
  75. package/dist/core/session-discovery.js.map +1 -1
  76. package/dist/core/skills/cli-admin-command.d.ts.map +1 -1
  77. package/dist/core/skills/cli-admin-command.js +8 -2
  78. package/dist/core/skills/cli-admin-command.js.map +1 -1
  79. package/dist/core/skills/im-command.d.ts.map +1 -1
  80. package/dist/core/skills/im-command.js +3 -1
  81. package/dist/core/skills/im-command.js.map +1 -1
  82. package/dist/core/skills/sources.d.ts +33 -1
  83. package/dist/core/skills/sources.d.ts.map +1 -1
  84. package/dist/core/skills/sources.js +97 -0
  85. package/dist/core/skills/sources.js.map +1 -1
  86. package/dist/core/skills/types.d.ts +8 -0
  87. package/dist/core/skills/types.d.ts.map +1 -1
  88. package/dist/core/terminal-url.d.ts.map +1 -1
  89. package/dist/core/terminal-url.js +12 -2
  90. package/dist/core/terminal-url.js.map +1 -1
  91. package/dist/core/terminal-write-auth.d.ts +34 -0
  92. package/dist/core/terminal-write-auth.d.ts.map +1 -0
  93. package/dist/core/terminal-write-auth.js +76 -0
  94. package/dist/core/terminal-write-auth.js.map +1 -0
  95. package/dist/core/tmux-recovery.d.ts +11 -0
  96. package/dist/core/tmux-recovery.d.ts.map +1 -0
  97. package/dist/core/tmux-recovery.js +19 -0
  98. package/dist/core/tmux-recovery.js.map +1 -0
  99. package/dist/core/types.d.ts +10 -4
  100. package/dist/core/types.d.ts.map +1 -1
  101. package/dist/core/types.js.map +1 -1
  102. package/dist/core/update-check.d.ts +2 -2
  103. package/dist/core/update-check.js +2 -2
  104. package/dist/core/worker-pool.d.ts +3 -0
  105. package/dist/core/worker-pool.d.ts.map +1 -1
  106. package/dist/core/worker-pool.js +70 -3
  107. package/dist/core/worker-pool.js.map +1 -1
  108. package/dist/daemon.d.ts.map +1 -1
  109. package/dist/daemon.js +15 -8
  110. package/dist/daemon.js.map +1 -1
  111. package/dist/dashboard/auth.d.ts +1 -1
  112. package/dist/dashboard/auth.d.ts.map +1 -1
  113. package/dist/dashboard/auth.js +7 -2
  114. package/dist/dashboard/auth.js.map +1 -1
  115. package/dist/dashboard/bot-payload.d.ts +3 -0
  116. package/dist/dashboard/bot-payload.d.ts.map +1 -1
  117. package/dist/dashboard/bot-payload.js +3 -0
  118. package/dist/dashboard/bot-payload.js.map +1 -1
  119. package/dist/dashboard/connector-api.d.ts.map +1 -1
  120. package/dist/dashboard/connector-api.js +39 -13
  121. package/dist/dashboard/connector-api.js.map +1 -1
  122. package/dist/dashboard/history-senders.d.ts +37 -0
  123. package/dist/dashboard/history-senders.d.ts.map +1 -0
  124. package/dist/dashboard/history-senders.js +60 -0
  125. package/dist/dashboard/history-senders.js.map +1 -0
  126. package/dist/dashboard/roles-batch.d.ts +31 -0
  127. package/dist/dashboard/roles-batch.d.ts.map +1 -0
  128. package/dist/dashboard/roles-batch.js +87 -0
  129. package/dist/dashboard/roles-batch.js.map +1 -0
  130. package/dist/dashboard/settings-card-model.d.ts +4 -2
  131. package/dist/dashboard/settings-card-model.d.ts.map +1 -1
  132. package/dist/dashboard/settings-card-model.js +13 -5
  133. package/dist/dashboard/settings-card-model.js.map +1 -1
  134. package/dist/dashboard/settings-write-applier.d.ts +4 -1
  135. package/dist/dashboard/settings-write-applier.d.ts.map +1 -1
  136. package/dist/dashboard/settings-write-applier.js +6 -1
  137. package/dist/dashboard/settings-write-applier.js.map +1 -1
  138. package/dist/dashboard/skill-install-request.d.ts +4 -0
  139. package/dist/dashboard/skill-install-request.d.ts.map +1 -1
  140. package/dist/dashboard/skill-install-request.js +11 -1
  141. package/dist/dashboard/skill-install-request.js.map +1 -1
  142. package/dist/dashboard/trigger-api.d.ts +9 -1
  143. package/dist/dashboard/trigger-api.d.ts.map +1 -1
  144. package/dist/dashboard/trigger-api.js +48 -10
  145. package/dist/dashboard/trigger-api.js.map +1 -1
  146. package/dist/dashboard/web/app.d.ts.map +1 -1
  147. package/dist/dashboard/web/app.js +286 -271
  148. package/dist/dashboard/web/app.js.map +1 -1
  149. package/dist/dashboard/web/bot-defaults-page.d.ts +26 -0
  150. package/dist/dashboard/web/bot-defaults-page.d.ts.map +1 -1
  151. package/dist/dashboard/web/bot-defaults-page.js +1408 -12
  152. package/dist/dashboard/web/bot-defaults-page.js.map +1 -1
  153. package/dist/dashboard/web/bot-defaults.d.ts +91 -4
  154. package/dist/dashboard/web/bot-defaults.d.ts.map +1 -1
  155. package/dist/dashboard/web/bot-defaults.js +43 -2141
  156. package/dist/dashboard/web/bot-defaults.js.map +1 -1
  157. package/dist/dashboard/web/bot-onboarding.d.ts +6 -1
  158. package/dist/dashboard/web/bot-onboarding.d.ts.map +1 -1
  159. package/dist/dashboard/web/bot-onboarding.js +261 -306
  160. package/dist/dashboard/web/bot-onboarding.js.map +1 -1
  161. package/dist/dashboard/web/connectors-page.d.ts +4 -0
  162. package/dist/dashboard/web/connectors-page.d.ts.map +1 -1
  163. package/dist/dashboard/web/connectors-page.js +228 -48
  164. package/dist/dashboard/web/connectors-page.js.map +1 -1
  165. package/dist/dashboard/web/dashboard-api.d.ts +9 -0
  166. package/dist/dashboard/web/dashboard-api.d.ts.map +1 -0
  167. package/dist/dashboard/web/dashboard-api.js +18 -0
  168. package/dist/dashboard/web/dashboard-api.js.map +1 -0
  169. package/dist/dashboard/web/dashboard-components.d.ts +92 -0
  170. package/dist/dashboard/web/dashboard-components.d.ts.map +1 -0
  171. package/dist/dashboard/web/dashboard-components.js +250 -0
  172. package/dist/dashboard/web/dashboard-components.js.map +1 -0
  173. package/dist/dashboard/web/dashboard-routes.d.ts.map +1 -1
  174. package/dist/dashboard/web/dashboard-routes.js +30 -183
  175. package/dist/dashboard/web/dashboard-routes.js.map +1 -1
  176. package/dist/dashboard/web/floating-scrollbars.d.ts +2 -0
  177. package/dist/dashboard/web/floating-scrollbars.d.ts.map +1 -0
  178. package/dist/dashboard/web/floating-scrollbars.js +264 -0
  179. package/dist/dashboard/web/floating-scrollbars.js.map +1 -0
  180. package/dist/dashboard/web/groups-api.d.ts +36 -0
  181. package/dist/dashboard/web/groups-api.d.ts.map +1 -0
  182. package/dist/dashboard/web/groups-api.js +44 -0
  183. package/dist/dashboard/web/groups-api.js.map +1 -0
  184. package/dist/dashboard/web/groups-page.d.ts.map +1 -1
  185. package/dist/dashboard/web/groups-page.js +746 -15
  186. package/dist/dashboard/web/groups-page.js.map +1 -1
  187. package/dist/dashboard/web/groups.d.ts +51 -18
  188. package/dist/dashboard/web/groups.d.ts.map +1 -1
  189. package/dist/dashboard/web/groups.js +145 -1096
  190. package/dist/dashboard/web/groups.js.map +1 -1
  191. package/dist/dashboard/web/i18n.d.ts.map +1 -1
  192. package/dist/dashboard/web/i18n.js +545 -255
  193. package/dist/dashboard/web/i18n.js.map +1 -1
  194. package/dist/dashboard/web/insights-page.d.ts.map +1 -1
  195. package/dist/dashboard/web/insights-page.js +1047 -14
  196. package/dist/dashboard/web/insights-page.js.map +1 -1
  197. package/dist/dashboard/web/insights.d.ts +177 -7
  198. package/dist/dashboard/web/insights.d.ts.map +1 -1
  199. package/dist/dashboard/web/insights.js +187 -1926
  200. package/dist/dashboard/web/insights.js.map +1 -1
  201. package/dist/dashboard/web/legacy-workflow-page.d.ts +3 -0
  202. package/dist/dashboard/web/legacy-workflow-page.d.ts.map +1 -0
  203. package/dist/dashboard/web/legacy-workflow-page.js +717 -0
  204. package/dist/dashboard/web/legacy-workflow-page.js.map +1 -0
  205. package/dist/dashboard/web/monitor-room.d.ts.map +1 -1
  206. package/dist/dashboard/web/monitor-room.js +10 -8
  207. package/dist/dashboard/web/monitor-room.js.map +1 -1
  208. package/dist/dashboard/web/monitoring-page.d.ts.map +1 -1
  209. package/dist/dashboard/web/monitoring-page.js +188 -14
  210. package/dist/dashboard/web/monitoring-page.js.map +1 -1
  211. package/dist/dashboard/web/office-page.d.ts.map +1 -1
  212. package/dist/dashboard/web/office-page.js +11 -23
  213. package/dist/dashboard/web/office-page.js.map +1 -1
  214. package/dist/dashboard/web/overview-page.d.ts.map +1 -1
  215. package/dist/dashboard/web/overview-page.js +141 -147
  216. package/dist/dashboard/web/overview-page.js.map +1 -1
  217. package/dist/dashboard/web/overview.d.ts +0 -1
  218. package/dist/dashboard/web/overview.d.ts.map +1 -1
  219. package/dist/dashboard/web/overview.js +3 -275
  220. package/dist/dashboard/web/overview.js.map +1 -1
  221. package/dist/dashboard/web/preferences.d.ts +1 -6
  222. package/dist/dashboard/web/preferences.d.ts.map +1 -1
  223. package/dist/dashboard/web/preferences.js +0 -21
  224. package/dist/dashboard/web/preferences.js.map +1 -1
  225. package/dist/dashboard/web/role-batch.d.ts +9 -0
  226. package/dist/dashboard/web/role-batch.d.ts.map +1 -0
  227. package/dist/dashboard/web/role-batch.js +42 -0
  228. package/dist/dashboard/web/role-batch.js.map +1 -0
  229. package/dist/dashboard/web/roles-page.d.ts.map +1 -1
  230. package/dist/dashboard/web/roles-page.js +538 -13
  231. package/dist/dashboard/web/roles-page.js.map +1 -1
  232. package/dist/dashboard/web/roles.d.ts +98 -1
  233. package/dist/dashboard/web/roles.d.ts.map +1 -1
  234. package/dist/dashboard/web/roles.js +117 -903
  235. package/dist/dashboard/web/roles.js.map +1 -1
  236. package/dist/dashboard/web/schedules-page.d.ts.map +1 -1
  237. package/dist/dashboard/web/schedules-page.js +82 -24
  238. package/dist/dashboard/web/schedules-page.js.map +1 -1
  239. package/dist/dashboard/web/sessions-kanban.d.ts +67 -0
  240. package/dist/dashboard/web/sessions-kanban.d.ts.map +1 -0
  241. package/dist/dashboard/web/sessions-kanban.js +481 -0
  242. package/dist/dashboard/web/sessions-kanban.js.map +1 -0
  243. package/dist/dashboard/web/sessions-page.d.ts +4 -0
  244. package/dist/dashboard/web/sessions-page.d.ts.map +1 -1
  245. package/dist/dashboard/web/sessions-page.js +1633 -18
  246. package/dist/dashboard/web/sessions-page.js.map +1 -1
  247. package/dist/dashboard/web/sessions.d.ts +45 -4
  248. package/dist/dashboard/web/sessions.d.ts.map +1 -1
  249. package/dist/dashboard/web/sessions.js +53 -2535
  250. package/dist/dashboard/web/sessions.js.map +1 -1
  251. package/dist/dashboard/web/settings-page.d.ts +0 -2
  252. package/dist/dashboard/web/settings-page.d.ts.map +1 -1
  253. package/dist/dashboard/web/settings-page.js +127 -117
  254. package/dist/dashboard/web/settings-page.js.map +1 -1
  255. package/dist/dashboard/web/skills-page.d.ts +10 -1
  256. package/dist/dashboard/web/skills-page.d.ts.map +1 -1
  257. package/dist/dashboard/web/skills-page.js +235 -93
  258. package/dist/dashboard/web/skills-page.js.map +1 -1
  259. package/dist/dashboard/web/team-federation-page.d.ts.map +1 -1
  260. package/dist/dashboard/web/team-federation-page.js +446 -28
  261. package/dist/dashboard/web/team-federation-page.js.map +1 -1
  262. package/dist/dashboard/web/team-federation.d.ts +91 -2
  263. package/dist/dashboard/web/team-federation.d.ts.map +1 -1
  264. package/dist/dashboard/web/team-federation.js +87 -474
  265. package/dist/dashboard/web/team-federation.js.map +1 -1
  266. package/dist/dashboard/web/theme-menu.d.ts +1 -0
  267. package/dist/dashboard/web/theme-menu.d.ts.map +1 -1
  268. package/dist/dashboard/web/theme-menu.js +79 -20
  269. package/dist/dashboard/web/theme-menu.js.map +1 -1
  270. package/dist/dashboard/web/ui.d.ts +1 -2
  271. package/dist/dashboard/web/ui.d.ts.map +1 -1
  272. package/dist/dashboard/web/ui.js +8 -20
  273. package/dist/dashboard/web/ui.js.map +1 -1
  274. package/dist/dashboard/web/v3-api.d.ts +16 -0
  275. package/dist/dashboard/web/v3-api.d.ts.map +1 -0
  276. package/dist/dashboard/web/v3-api.js +21 -0
  277. package/dist/dashboard/web/v3-api.js.map +1 -0
  278. package/dist/dashboard/web/v3-components.d.ts +2 -0
  279. package/dist/dashboard/web/v3-components.d.ts.map +1 -0
  280. package/dist/dashboard/web/v3-components.js +290 -0
  281. package/dist/dashboard/web/v3-components.js.map +1 -0
  282. package/dist/dashboard/web/v3-model.d.ts +80 -0
  283. package/dist/dashboard/web/v3-model.d.ts.map +1 -0
  284. package/dist/dashboard/web/v3-model.js +240 -0
  285. package/dist/dashboard/web/v3-model.js.map +1 -0
  286. package/dist/dashboard/web/v3-page.d.ts.map +1 -1
  287. package/dist/dashboard/web/v3-page.js +2 -22
  288. package/dist/dashboard/web/v3-page.js.map +1 -1
  289. package/dist/dashboard/web/v3-terminal.d.ts +14 -0
  290. package/dist/dashboard/web/v3-terminal.d.ts.map +1 -1
  291. package/dist/dashboard/web/v3-terminal.js +31 -19
  292. package/dist/dashboard/web/v3-terminal.js.map +1 -1
  293. package/dist/dashboard/web/webhook-logs-page.d.ts +16 -0
  294. package/dist/dashboard/web/webhook-logs-page.d.ts.map +1 -0
  295. package/dist/dashboard/web/webhook-logs-page.js +195 -0
  296. package/dist/dashboard/web/webhook-logs-page.js.map +1 -0
  297. package/dist/dashboard/web/whiteboards-page.d.ts.map +1 -1
  298. package/dist/dashboard/web/whiteboards-page.js +18 -23
  299. package/dist/dashboard/web/whiteboards-page.js.map +1 -1
  300. package/dist/dashboard/web/workflow-version-switch.d.ts +8 -0
  301. package/dist/dashboard/web/workflow-version-switch.d.ts.map +1 -0
  302. package/dist/dashboard/web/workflow-version-switch.js +9 -0
  303. package/dist/dashboard/web/workflow-version-switch.js.map +1 -0
  304. package/dist/dashboard/web/workflows.d.ts +272 -1
  305. package/dist/dashboard/web/workflows.d.ts.map +1 -1
  306. package/dist/dashboard/web/workflows.js +211 -1397
  307. package/dist/dashboard/web/workflows.js.map +1 -1
  308. package/dist/dashboard/webhook-routes.d.ts.map +1 -1
  309. package/dist/dashboard/webhook-routes.js +92 -39
  310. package/dist/dashboard/webhook-routes.js.map +1 -1
  311. package/dist/dashboard-web/app.js +1 -65
  312. package/dist/dashboard-web/brand-logo.png +0 -0
  313. package/dist/dashboard-web/chunks/bot-defaults-page-HSQ6HR3R.js +1 -0
  314. package/dist/dashboard-web/chunks/chunk-6TPODDDC.js +1 -0
  315. package/dist/dashboard-web/chunks/chunk-73EJP2MO.js +1 -0
  316. package/dist/dashboard-web/chunks/chunk-BRTZFELS.js +1 -0
  317. package/dist/dashboard-web/chunks/chunk-EVK77ASG.js +1 -0
  318. package/dist/dashboard-web/chunks/chunk-R3FXBFQH.js +1 -0
  319. package/dist/dashboard-web/chunks/chunk-VRLL7SNU.js +1 -0
  320. package/dist/dashboard-web/chunks/chunk-XCPSHD3G.js +37 -0
  321. package/dist/dashboard-web/chunks/chunk-XJ7BGPJH.js +1 -0
  322. package/dist/dashboard-web/chunks/chunk-YVRWYGXR.js +1 -0
  323. package/dist/dashboard-web/chunks/chunk-ZJING6FY.js +66 -0
  324. package/dist/dashboard-web/chunks/connectors-page-ODUA5UCW.js +1 -0
  325. package/dist/dashboard-web/chunks/groups-page-OYX5M6NK.js +8 -0
  326. package/dist/dashboard-web/chunks/insights-page-YCQO6OCR.js +22 -0
  327. package/dist/dashboard-web/chunks/legacy-workflow-page-XJAUNONP.js +2 -0
  328. package/dist/dashboard-web/chunks/{monitor-room-RFX4HPS5.js → monitor-room-WTZNYAFV.js} +17 -15
  329. package/dist/dashboard-web/chunks/monitoring-page-R6LJUK7G.js +2 -0
  330. package/dist/dashboard-web/chunks/office-page-4OXK3GNR.js +1 -0
  331. package/dist/dashboard-web/chunks/overview-page-4MVEJY6U.js +1 -0
  332. package/dist/dashboard-web/chunks/roles-page-NQDW27VV.js +1 -0
  333. package/dist/dashboard-web/chunks/schedules-page-JRNKYHOX.js +1 -0
  334. package/dist/dashboard-web/chunks/sessions-page-LF7UVI7B.js +3 -0
  335. package/dist/dashboard-web/chunks/settings-page-WGW7KQQS.js +2 -0
  336. package/dist/dashboard-web/chunks/skills-page-AMD4XP3T.js +3 -0
  337. package/dist/dashboard-web/chunks/team-federation-page-SYG3K4GG.js +1 -0
  338. package/dist/dashboard-web/chunks/v3-page-6NFFWNUK.js +94 -0
  339. package/dist/dashboard-web/chunks/whiteboards-page-FBRUK2AS.js +1 -0
  340. package/dist/dashboard-web/favicon.png +0 -0
  341. package/dist/dashboard-web/index.html +5 -69
  342. package/dist/dashboard-web/style.css +18835 -7211
  343. package/dist/dashboard.js +150 -32
  344. package/dist/dashboard.js.map +1 -1
  345. package/dist/global-config.d.ts +2 -2
  346. package/dist/global-config.d.ts.map +1 -1
  347. package/dist/i18n/en.d.ts.map +1 -1
  348. package/dist/i18n/en.js +3 -0
  349. package/dist/i18n/en.js.map +1 -1
  350. package/dist/i18n/zh.d.ts.map +1 -1
  351. package/dist/i18n/zh.js +3 -0
  352. package/dist/i18n/zh.js.map +1 -1
  353. package/dist/im/lark/card-builder.d.ts +7 -5
  354. package/dist/im/lark/card-builder.d.ts.map +1 -1
  355. package/dist/im/lark/card-builder.js +10 -7
  356. package/dist/im/lark/card-builder.js.map +1 -1
  357. package/dist/im/lark/card-handler.d.ts.map +1 -1
  358. package/dist/im/lark/card-handler.js +25 -1
  359. package/dist/im/lark/card-handler.js.map +1 -1
  360. package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
  361. package/dist/im/lark/event-dispatcher.js +84 -0
  362. package/dist/im/lark/event-dispatcher.js.map +1 -1
  363. package/dist/platform/binding.d.ts +9 -0
  364. package/dist/platform/binding.d.ts.map +1 -1
  365. package/dist/platform/binding.js +14 -0
  366. package/dist/platform/binding.js.map +1 -1
  367. package/dist/platform/tunnel-client.d.ts.map +1 -1
  368. package/dist/platform/tunnel-client.js +9 -0
  369. package/dist/platform/tunnel-client.js.map +1 -1
  370. package/dist/services/bot-config-store.d.ts +1 -1
  371. package/dist/services/bot-config-store.d.ts.map +1 -1
  372. package/dist/services/bot-config-store.js +11 -5
  373. package/dist/services/bot-config-store.js.map +1 -1
  374. package/dist/services/file-bridge-path.d.ts +8 -0
  375. package/dist/services/file-bridge-path.d.ts.map +1 -0
  376. package/dist/services/file-bridge-path.js +75 -0
  377. package/dist/services/file-bridge-path.js.map +1 -0
  378. package/dist/services/grok-paths.d.ts +27 -0
  379. package/dist/services/grok-paths.d.ts.map +1 -0
  380. package/dist/services/grok-paths.js +106 -0
  381. package/dist/services/grok-paths.js.map +1 -0
  382. package/dist/services/grok-transcript.d.ts +67 -0
  383. package/dist/services/grok-transcript.d.ts.map +1 -0
  384. package/dist/services/grok-transcript.js +630 -0
  385. package/dist/services/grok-transcript.js.map +1 -0
  386. package/dist/services/hermes-session-filter.d.ts +28 -0
  387. package/dist/services/hermes-session-filter.d.ts.map +1 -0
  388. package/dist/services/hermes-session-filter.js +53 -0
  389. package/dist/services/hermes-session-filter.js.map +1 -0
  390. package/dist/services/hermes-transcript.d.ts +3 -0
  391. package/dist/services/hermes-transcript.d.ts.map +1 -1
  392. package/dist/services/hermes-transcript.js +20 -2
  393. package/dist/services/hermes-transcript.js.map +1 -1
  394. package/dist/services/resumable-session-discovery.d.ts +3 -0
  395. package/dist/services/resumable-session-discovery.d.ts.map +1 -1
  396. package/dist/services/resumable-session-discovery.js +6 -1
  397. package/dist/services/resumable-session-discovery.js.map +1 -1
  398. package/dist/services/skill-registry-store.d.ts +9 -0
  399. package/dist/services/skill-registry-store.d.ts.map +1 -1
  400. package/dist/services/skill-registry-store.js +304 -1
  401. package/dist/services/skill-registry-store.js.map +1 -1
  402. package/dist/services/structured-bridge-clis.d.ts +29 -0
  403. package/dist/services/structured-bridge-clis.d.ts.map +1 -0
  404. package/dist/services/structured-bridge-clis.js +76 -0
  405. package/dist/services/structured-bridge-clis.js.map +1 -0
  406. package/dist/services/trigger-log-store.d.ts +59 -0
  407. package/dist/services/trigger-log-store.d.ts.map +1 -1
  408. package/dist/services/trigger-log-store.js +81 -10
  409. package/dist/services/trigger-log-store.js.map +1 -1
  410. package/dist/services/usage-ledger.d.ts +4 -1
  411. package/dist/services/usage-ledger.d.ts.map +1 -1
  412. package/dist/services/usage-ledger.js +48 -10
  413. package/dist/services/usage-ledger.js.map +1 -1
  414. package/dist/services/webhook-audit.d.ts +10 -0
  415. package/dist/services/webhook-audit.d.ts.map +1 -0
  416. package/dist/services/webhook-audit.js +116 -0
  417. package/dist/services/webhook-audit.js.map +1 -0
  418. package/dist/setup/bot-config-editor.d.ts.map +1 -1
  419. package/dist/setup/bot-config-editor.js +2 -0
  420. package/dist/setup/bot-config-editor.js.map +1 -1
  421. package/dist/setup/ensure-tmux.d.ts +26 -12
  422. package/dist/setup/ensure-tmux.d.ts.map +1 -1
  423. package/dist/setup/ensure-tmux.js +85 -18
  424. package/dist/setup/ensure-tmux.js.map +1 -1
  425. package/dist/skills/definitions.d.ts.map +1 -1
  426. package/dist/skills/definitions.js +14 -1
  427. package/dist/skills/definitions.js.map +1 -1
  428. package/dist/skills/injection-mode.d.ts +16 -0
  429. package/dist/skills/injection-mode.d.ts.map +1 -1
  430. package/dist/skills/injection-mode.js +25 -0
  431. package/dist/skills/injection-mode.js.map +1 -1
  432. package/dist/types.d.ts +9 -0
  433. package/dist/types.d.ts.map +1 -1
  434. package/dist/utils/global-install.d.ts +22 -0
  435. package/dist/utils/global-install.d.ts.map +1 -0
  436. package/dist/utils/global-install.js +106 -0
  437. package/dist/utils/global-install.js.map +1 -0
  438. package/dist/utils/install-diagnostics.d.ts +1 -1
  439. package/dist/utils/install-diagnostics.d.ts.map +1 -1
  440. package/dist/utils/install-diagnostics.js +6 -4
  441. package/dist/utils/install-diagnostics.js.map +1 -1
  442. package/dist/utils/install-info.d.ts +2 -0
  443. package/dist/utils/install-info.d.ts.map +1 -1
  444. package/dist/utils/install-info.js +10 -4
  445. package/dist/utils/install-info.js.map +1 -1
  446. package/dist/worker.js +293 -172
  447. package/dist/worker.js.map +1 -1
  448. package/dist/workflows/events/payloads.d.ts +10 -10
  449. package/dist/workflows/events/schema.d.ts +28 -28
  450. package/package.json +8 -7
  451. package/dist/dashboard/web/connectors.d.ts +0 -2
  452. package/dist/dashboard/web/connectors.d.ts.map +0 -1
  453. package/dist/dashboard/web/connectors.js +0 -2
  454. package/dist/dashboard/web/connectors.js.map +0 -1
  455. package/dist/dashboard/web/office.d.ts +0 -2
  456. package/dist/dashboard/web/office.d.ts.map +0 -1
  457. package/dist/dashboard/web/office.js +0 -2
  458. package/dist/dashboard/web/office.js.map +0 -1
  459. package/dist/dashboard/web/schedules.d.ts +0 -2
  460. package/dist/dashboard/web/schedules.d.ts.map +0 -1
  461. package/dist/dashboard/web/schedules.js +0 -2
  462. package/dist/dashboard/web/schedules.js.map +0 -1
  463. package/dist/dashboard/web/settings.d.ts +0 -2
  464. package/dist/dashboard/web/settings.d.ts.map +0 -1
  465. package/dist/dashboard/web/settings.js +0 -2
  466. package/dist/dashboard/web/settings.js.map +0 -1
  467. package/dist/dashboard/web/skills.d.ts +0 -2
  468. package/dist/dashboard/web/skills.d.ts.map +0 -1
  469. package/dist/dashboard/web/skills.js +0 -2
  470. package/dist/dashboard/web/skills.js.map +0 -1
  471. package/dist/dashboard/web/skin-intro.d.ts +0 -4
  472. package/dist/dashboard/web/skin-intro.d.ts.map +0 -1
  473. package/dist/dashboard/web/skin-intro.js +0 -49
  474. package/dist/dashboard/web/skin-intro.js.map +0 -1
  475. package/dist/dashboard/web/v3.d.ts +0 -3
  476. package/dist/dashboard/web/v3.d.ts.map +0 -1
  477. package/dist/dashboard/web/v3.js +0 -539
  478. package/dist/dashboard/web/v3.js.map +0 -1
  479. package/dist/dashboard/web/whiteboards.d.ts +0 -2
  480. package/dist/dashboard/web/whiteboards.d.ts.map +0 -1
  481. package/dist/dashboard/web/whiteboards.js +0 -2
  482. package/dist/dashboard/web/whiteboards.js.map +0 -1
  483. package/dist/dashboard-web/chunks/bot-defaults-page-OCIHPGEU.js +0 -438
  484. package/dist/dashboard-web/chunks/chunk-3N2PPQVD.js +0 -1
  485. package/dist/dashboard-web/chunks/chunk-3UJYRR2Q.js +0 -37
  486. package/dist/dashboard-web/chunks/chunk-5E3MJJL4.js +0 -1
  487. package/dist/dashboard-web/chunks/chunk-7SZRL6FY.js +0 -1
  488. package/dist/dashboard-web/chunks/chunk-JTSE5VP6.js +0 -54
  489. package/dist/dashboard-web/chunks/chunk-LXIK7OUJ.js +0 -1
  490. package/dist/dashboard-web/chunks/chunk-PE6W3C2C.js +0 -1
  491. package/dist/dashboard-web/chunks/chunk-QW54DWU3.js +0 -325
  492. package/dist/dashboard-web/chunks/connectors-IGETYWCP.js +0 -1
  493. package/dist/dashboard-web/chunks/groups-page-MYBS4ZYJ.js +0 -207
  494. package/dist/dashboard-web/chunks/insights-page-UPA32V2S.js +0 -309
  495. package/dist/dashboard-web/chunks/monitoring-page-7T3BESZ2.js +0 -1
  496. package/dist/dashboard-web/chunks/office-page-6DXYOG55.js +0 -1
  497. package/dist/dashboard-web/chunks/overview-page-LJSBCQW4.js +0 -1
  498. package/dist/dashboard-web/chunks/roles-page-ESURTVQH.js +0 -98
  499. package/dist/dashboard-web/chunks/schedules-LML2ISOT.js +0 -1
  500. package/dist/dashboard-web/chunks/sessions-YB73XOTU.js +0 -1
  501. package/dist/dashboard-web/chunks/sessions-page-MCO5QR7Z.js +0 -1
  502. package/dist/dashboard-web/chunks/settings-page-OSDKNVS3.js +0 -2
  503. package/dist/dashboard-web/chunks/skills-page-PXBZJ6P6.js +0 -2
  504. package/dist/dashboard-web/chunks/team-federation-page-TTPVHFPX.js +0 -10
  505. package/dist/dashboard-web/chunks/v3-page-FVPUL665.js +0 -149
  506. package/dist/dashboard-web/chunks/whiteboards-page-HLCTYSSV.js +0 -1
  507. package/dist/dashboard-web/chunks/workflows-FCPM4S4D.js +0 -184
  508. package/dist/dashboard-web/skins/bluearchive-hero.webp +0 -0
  509. package/dist/dashboard-web/skins/dragonball-goku.webp +0 -0
  510. package/dist/dashboard-web/skins/dragonball-wukong.webp +0 -0
  511. package/dist/dashboard-web/skins/genshin-breeze.webp +0 -0
  512. package/dist/dashboard-web/skins/ikun-hero.webp +0 -0
  513. package/dist/dashboard-web/skins/prts-priestess.webp +0 -0
  514. package/dist/dashboard-web/skins/zzz-hero.webp +0 -0
  515. package/dist/dashboard-web/skins/zzz-pattern.svg +0 -25
@@ -0,0 +1,298 @@
1
+ import { existsSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ import { resolveCommand } from './registry.js';
4
+ import { buildBotmuxSystemPromptText } from './shared-hints.js';
5
+ import { sessionReadyHookCommand } from '../hook-command.js';
6
+ import { delay, scaleMs } from '../../utils/timing.js';
7
+ import { grokHome, grokHooksDir, grokPromptHistoryPath, grokSkillsDir, } from '../../services/grok-paths.js';
8
+ import { discoverGrokSessions, findGrokSessionByPid, grokFileSize, grokSessionDirExists, grokSessionExists, matchGrokPromptAppend, } from '../../services/grok-transcript.js';
9
+ import { builtinSkillBlockForInjectsSessionContext } from '../../skills/injection-mode.js';
10
+ import { whiteboardEnabled } from '../../services/whiteboard-store.js';
11
+ /**
12
+ * Adapter for xAI Grok Build TUI (`grok`).
13
+ *
14
+ * Binary: `grok` (install: curl -fsSL https://x.ai/cli/install.sh | bash).
15
+ * State: `$GROK_HOME` (default `~/.grok`) — auth, sessions/<encoded-cwd>/
16
+ * <uuid>/, skills, hooks, session_search.sqlite. All paths below go
17
+ * through grok-paths helpers so a custom GROK_HOME stays consistent
18
+ * between the spawned CLI and the worker's watchers.
19
+ *
20
+ * ## Session model (verified on grok 0.2.93)
21
+ * - botmux `sessionId` is already a UUID (`randomUUID()`), valid for
22
+ * `grok --session-id` on fresh spawns.
23
+ * - The session dir (summary.json + updates.jsonl) is created at TUI
24
+ * STARTUP, before any prompt. `--session-id <id>` REFUSES an id whose dir
25
+ * already exists ("Session ID is already in use", exit 1), so a fresh
26
+ * spawn probes the dir and omits the flag when present (otherwise the
27
+ * worker's tier-2 resume→fresh fallback would crash-loop on the same
28
+ * UUID). Grok then mints its own id; writeInput's submit verify
29
+ * recaptures it as cliSessionId.
30
+ * - Resume: `--resume <cliSessionId|sessionId>`; preflight via
31
+ * `checkResumeTargetExists` against `summary.json`. A positional initial
32
+ * prompt IS honored on resume spawns (verified), so no
33
+ * `initialPromptArgsIgnoredOnResume`.
34
+ *
35
+ * ## Type-ahead
36
+ * Grok's interactive TUI parks mid-turn Enter as a follow-up queue
37
+ * (docs: "queues a follow-up for later — it does not inject into the
38
+ * current turn"). That matches CoCo-style park (interleaved transcript),
39
+ * not Codex active-turn steer. `supportsTypeAhead: true` so the worker
40
+ * writes while busy; attribution uses the updates.jsonl bridge +
41
+ * CodexBridgeQueue (HOL-block-drop remains safe if a merge ever appears).
42
+ * Multi-line input via tmux `send-keys -l` is safe: grok treats a literal
43
+ * `\n` as a soft newline inside the composer, NOT as submit (verified —
44
+ * no bracketed paste needed, unlike codex).
45
+ *
46
+ * ## Status / bridge
47
+ * Bridge source of truth: per-session `updates.jsonl`
48
+ * (`user_message_chunk` / `agent_message_chunk` + `turn_completed`),
49
+ * drained via `drainGrokUpdates`. Submit VERIFY uses the bucket-level
50
+ * `prompt_history.jsonl` instead: it is appended AT SUBMIT TIME even while
51
+ * a turn is running, whereas updates.jsonl records a parked type-ahead
52
+ * message only at DEQUEUE time — polling it would spuriously fail every
53
+ * busy-turn submit (codex's history.jsonl plays the same role there).
54
+ * Ready gate: global `$GROK_HOME/hooks/botmux-session-ready.json`
55
+ * SessionStart → `botmux session-ready` (`injectsReadyHook`).
56
+ *
57
+ * ## Session context / system prompt
58
+ * Grok's append flag is `--rules` (docs: alias of Claude's
59
+ * `--append-system-prompt`). Full replace is `--system-prompt-override` —
60
+ * too aggressive for botmux (would drop Grok's default agent prompt). We
61
+ * set `injectsSessionContext` and push `buildBotmuxSystemPromptText` via
62
+ * `--rules`, same contract as Claude's `--append-system-prompt` path
63
+ * (session-manager then omits inline <botmux_routing>/<identity>/<session_id>).
64
+ *
65
+ * ## Skills
66
+ * Interactive TUI does **not** accept `--plugin-dir` (agent-only / headless).
67
+ * Built-ins use global `$GROK_HOME/skills` with global|prompt|off modes.
68
+ * With injectsSessionContext, prompt/off catalogs ride on `--rules`
69
+ * (genius pattern) rather than the per-message envelope.
70
+ *
71
+ * ## Plan mode
72
+ * Claude disallows EnterPlanMode/ExitPlanMode for Feishu UX (blocking
73
+ * approval). Grok's TUI equivalent is `--no-plan`.
74
+ *
75
+ * ## Sandbox
76
+ * `authPaths: [$GROK_HOME]` (directory) — grok keeps SQLite DBs there
77
+ * (session_search.sqlite, worktrees.db) which fail under overlayfs fcntl
78
+ * locks.
79
+ */
80
+ export function createGrokAdapter(pathOverride) {
81
+ // resolvedBin is lazy: setup constructs adapters only to read static
82
+ // modelChoices and must not shell out (see resolveCommand).
83
+ const rawBin = pathOverride ?? 'grok';
84
+ let cachedBin;
85
+ return {
86
+ id: 'grok',
87
+ // Absolute runtime paths (not `~/…` literals): GROK_HOME can override the
88
+ // data root, and sandbox/auth carve-outs must track the same resolved dir
89
+ // the spawned CLI uses (split-brain bug if we freezed `~/.grok` at build).
90
+ // Same pattern as codex's lazy skillsDir getter under CODEX_HOME.
91
+ get authPaths() { return [grokHome()]; },
92
+ get resolvedBin() { return (cachedBin ??= resolveCommand(rawBin)); },
93
+ supportsTypeAhead: true,
94
+ injectsReadyHook: true,
95
+ injectsSessionContext: true,
96
+ // Hold soft first-prompt timeout until SessionStart ready signal or the
97
+ // composer's readyPattern — cold-start TUI can accept (and drop) stdin
98
+ // before the real composer exists.
99
+ deferFirstPromptTimeoutUntilReady: true,
100
+ buildArgs({ sessionId, resume, resumeSessionId, workingDir, model, initialPrompt, disableCliBypass, botName, botOpenId, locale, larkAppId, }) {
101
+ const args = [];
102
+ if (!disableCliBypass) {
103
+ // Claude: --dangerously-skip-permissions. Grok: --always-approve (YOLO).
104
+ args.push('--always-approve');
105
+ }
106
+ // Align Claude's EnterPlanMode/ExitPlanMode deny — Feishu can't drive
107
+ // the plan-approval TUI cleanly. `--no-plan` is a top-level TUI flag.
108
+ args.push('--no-plan');
109
+ if (model && model.trim()) {
110
+ args.push('--model', model.trim());
111
+ }
112
+ if (resume) {
113
+ const sid = resumeSessionId || sessionId;
114
+ if (sid)
115
+ args.push('--resume', sid);
116
+ else
117
+ args.push('--continue');
118
+ }
119
+ else if (sessionId && !grokSessionDirExists(sessionId, workingDir)) {
120
+ // Pin grok's id to the botmux UUID so resume can reuse it. Skipped
121
+ // when the dir already exists: grok exits 1 on a reused --session-id
122
+ // (see header), which would turn the worker's crash-restart fresh
123
+ // fallback into a spawn loop. Without the flag grok mints a new id
124
+ // and writeInput's verify recaptures it.
125
+ args.push('--session-id', sessionId);
126
+ }
127
+ // Claude: --append-system-prompt. Grok: --rules (append; docs alias).
128
+ // Do NOT use --system-prompt-override — that replaces Grok's agent prompt.
129
+ args.push('--rules', buildBotmuxSystemPromptText({
130
+ locale,
131
+ botName,
132
+ botOpenId,
133
+ builtinSkillBlock: builtinSkillBlockForInjectsSessionContext(larkAppId, locale, {
134
+ asksViaHook: false,
135
+ whiteboardEnabled: whiteboardEnabled(),
136
+ }),
137
+ }));
138
+ // Positional initial prompt — processed after TUI startup (works for
139
+ // fresh AND resume spawns, verified on 0.2.93). With injectsSessionContext
140
+ // this is the user's first turn only (no inline routing envelope).
141
+ if (initialPrompt)
142
+ args.push(initialPrompt);
143
+ return args;
144
+ },
145
+ passesInitialPromptViaArgs: true,
146
+ buildResumeCommand({ sessionId, cliSessionId }) {
147
+ const sid = cliSessionId || sessionId;
148
+ if (!sid)
149
+ return null;
150
+ return `grok --resume ${sid}`;
151
+ },
152
+ checkResumeTargetExists({ sessionId, cliSessionId, workingDir }) {
153
+ const sid = cliSessionId || sessionId;
154
+ if (!sid)
155
+ return false;
156
+ return grokSessionExists(sid, workingDir);
157
+ },
158
+ listResumableSessions({ limit, exclude }) {
159
+ return discoverGrokSessions(limit, exclude);
160
+ },
161
+ async writeInput(pty, content) {
162
+ // Submit verify against the bucket-level prompt_history.jsonl (one
163
+ // {timestamp, session_id, prompt} line per submit, written at submit
164
+ // time even while a turn runs — see header). Requires cliCwd: without
165
+ // it we cannot safely pick a bucket (scanning every cwd's history
166
+ // would risk cross-session false matches + persist wrong cliSessionId).
167
+ // Production always sets cliCwd (spawn + adopt); missing cwd → fail
168
+ // closed and let the structured bridge recover.
169
+ //
170
+ // Concurrent workers share the cwd bucket's prompt_history. Bind each
171
+ // match to THIS process's active Grok session via cliPid → open fds
172
+ // (re-probed every poll so /new|/clear|/resume rotation is picked up).
173
+ const cwd = pty.cliCwd;
174
+ if (!cwd) {
175
+ if (pty.sendText && pty.sendSpecialKeys) {
176
+ if (pty.sendText(content) === false)
177
+ return { submitted: false };
178
+ await delay(scaleMs(200));
179
+ if (pty.sendSpecialKeys('Enter') === false)
180
+ return { submitted: false };
181
+ }
182
+ else {
183
+ pty.write(content);
184
+ await delay(scaleMs(1000));
185
+ pty.write('\r');
186
+ }
187
+ return { submitted: false };
188
+ }
189
+ const historyPath = grokPromptHistoryPath(cwd);
190
+ const baseByte = grokFileSize(historyPath);
191
+ // Paste text once; retries only re-send Enter (codex/coco parity).
192
+ // Re-pasting the full body on retry double-submits when the first Enter
193
+ // actually landed but prompt_history was slow, or doubles composer text
194
+ // when Enter was dropped but the paste stuck.
195
+ // TmuxPipeBackend (adopt) returns false on failed writes instead of
196
+ // throwing — treat false as definite failure.
197
+ const trySendEnter = () => {
198
+ try {
199
+ if (pty.sendSpecialKeys) {
200
+ return pty.sendSpecialKeys('Enter') !== false;
201
+ }
202
+ pty.write('\r');
203
+ return true;
204
+ }
205
+ catch {
206
+ // tmux session gone mid-write — bail cleanly.
207
+ return false;
208
+ }
209
+ };
210
+ try {
211
+ if (pty.sendText && pty.sendSpecialKeys) {
212
+ if (pty.sendText(content) === false)
213
+ return { submitted: false };
214
+ await delay(scaleMs(200));
215
+ }
216
+ else {
217
+ pty.write(content);
218
+ await delay(scaleMs(1000));
219
+ }
220
+ }
221
+ catch {
222
+ return { submitted: false };
223
+ }
224
+ if (!trySendEnter())
225
+ return { submitted: false };
226
+ // First submit in a fresh bucket creates the file after our snapshot —
227
+ // re-stat base as 0 when the path appears mid-poll. Re-resolve prefer
228
+ // sid each probe so a mid-wait /new rotation still binds correctly.
229
+ const probe = () => {
230
+ const base = existsSync(historyPath) ? baseByte : 0;
231
+ const preferSessionId = pty.cliPid
232
+ ? findGrokSessionByPid(pty.cliPid)?.sessionId
233
+ : undefined;
234
+ return matchGrokPromptAppend(historyPath, base, content, { preferSessionId });
235
+ };
236
+ const deadline = Date.now() + scaleMs(4_000);
237
+ for (let attempt = 0; attempt < 3; attempt++) {
238
+ const waitUntil = Math.min(deadline, Date.now() + scaleMs(800));
239
+ while (Date.now() < waitUntil) {
240
+ const hit = probe();
241
+ if (hit.found) {
242
+ return hit.cliSessionId
243
+ ? { submitted: true, cliSessionId: hit.cliSessionId }
244
+ : { submitted: true };
245
+ }
246
+ await delay(scaleMs(100));
247
+ }
248
+ if (Date.now() >= deadline)
249
+ break;
250
+ if (!trySendEnter())
251
+ return { submitted: false };
252
+ }
253
+ const late = probe();
254
+ if (late.found) {
255
+ return late.cliSessionId
256
+ ? { submitted: true, cliSessionId: late.cliSessionId }
257
+ : { submitted: true };
258
+ }
259
+ const recheck = () => {
260
+ const hit = probe();
261
+ if (!hit.found)
262
+ return false;
263
+ return hit.cliSessionId
264
+ ? { submitted: true, cliSessionId: hit.cliSessionId }
265
+ : true;
266
+ };
267
+ return { submitted: false, recheck };
268
+ },
269
+ completionPattern: undefined,
270
+ // Composer box `❯` renders once the TUI is interactive — pairs with
271
+ // deferFirstPromptTimeoutUntilReady to keep the first prompt held past
272
+ // the soft timeout (the SessionStart ready hook is the primary signal).
273
+ readyPattern: /❯/,
274
+ // Busy markers verified on 0.2.93: "⠧ Waiting for response…" spinner
275
+ // during the model phase, and the "Ctrl+c:cancel" shortcut-bar entry
276
+ // through model AND tool phases (idle bar shows Shift+Tab:mode /
277
+ // Ctrl+x:shortcuts only).
278
+ busyPattern: /Waiting for response|Ctrl\+c:\s*cancel/i,
279
+ // Routing/identity ride on --rules (injectsSessionContext); no inline hints.
280
+ systemHints: [],
281
+ altScreen: true,
282
+ // Global skill root under $GROK_HOME (TUI has no --plugin-dir); layout is
283
+ // `skills/<name>/SKILL.md`, same operational model as Codex.
284
+ get skillsDir() { return grokSkillsDir(); },
285
+ // SessionStart → botmux session-ready for injectsReadyHook gate.
286
+ hookInstall: {
287
+ get configPath() { return join(grokHooksDir(), 'botmux-session-ready.json'); },
288
+ format: 'grok-hooks',
289
+ sessionStartCommand: sessionReadyHookCommand(),
290
+ },
291
+ modelChoices: [
292
+ 'grok-4.5',
293
+ 'grok-composer-2.5-fast',
294
+ ],
295
+ };
296
+ }
297
+ export const create = createGrokAdapter;
298
+ //# sourceMappingURL=grok.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grok.js","sourceRoot":"","sources":["../../../src/adapters/cli/grok.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"oh-my-pi.d.ts","sourceRoot":"","sources":["../../../src/adapters/cli/oh-my-pi.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,YAAY,CAAC;AAIxD,8DAA8D;AAC9D,wBAAgB,mBAAmB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,UAAU,CA0DrE;AAED,eAAO,MAAM,MAAM,4BAAsB,CAAC"}
1
+ {"version":3,"file":"oh-my-pi.d.ts","sourceRoot":"","sources":["../../../src/adapters/cli/oh-my-pi.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,YAAY,CAAC;AAuFxD,8DAA8D;AAC9D,wBAAgB,mBAAmB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,UAAU,CAkGrE;AAED,eAAO,MAAM,MAAM,4BAAsB,CAAC"}
@@ -1,9 +1,111 @@
1
1
  import { resolveCommand } from './registry.js';
2
2
  import { BOTMUX_SHELL_HINTS } from './shared-hints.js';
3
3
  import { delay } from '../../utils/timing.js';
4
+ const OMP_INPUT_CHUNK_CHARS = 512;
5
+ const OMP_INPUT_CHUNK_NEWLINES = 9;
6
+ const OMP_INPUT_THROTTLE_MS = 20;
7
+ const OMP_CLEAR_COOLDOWN_MS = 550;
8
+ const BRACKETED_PASTE_START = '\x1b[200~';
9
+ const BRACKETED_PASTE_END = '\x1b[201~';
10
+ /** Match OMP's paste semantics before putting content on a key-event path. */
11
+ function normalizeOmpInput(text) {
12
+ return text
13
+ // Strip ANSI/VT sequences as whole units so removing ESC does not leave
14
+ // printable tails such as `[31m` in pasted terminal logs.
15
+ .replace(/\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)?/g, '')
16
+ .replace(/\x1b\[[0-?]*[ -/]*[@-~]/g, '')
17
+ .replace(/\x1b[ -/]*[@-~]/g, '')
18
+ .replace(/\r\n?/g, '\n')
19
+ .normalize('NFC')
20
+ .replace(/\t/g, ' ')
21
+ // Literal terminal input would interpret these as keys (Backspace, DEL,
22
+ // Escape, etc.). Newlines are preserved and delivered inside paste mode.
23
+ .replace(/[\x00-\x09\x0B-\x1F\x7F-\x9F]/g, '');
24
+ }
25
+ /** Keep every paste below OMP's `[Paste #N]` thresholds (>1000 chars or >10 lines). */
26
+ function chunkOmpInput(text) {
27
+ const chunks = [];
28
+ let current = '';
29
+ let newlines = 0;
30
+ for (const ch of text) {
31
+ if (current &&
32
+ (current.length + ch.length > OMP_INPUT_CHUNK_CHARS ||
33
+ (ch === '\n' && newlines >= OMP_INPUT_CHUNK_NEWLINES))) {
34
+ chunks.push(current);
35
+ current = '';
36
+ newlines = 0;
37
+ }
38
+ current += ch;
39
+ if (ch === '\n')
40
+ newlines++;
41
+ }
42
+ if (current)
43
+ chunks.push(current);
44
+ return chunks;
45
+ }
46
+ function sendLiteral(pty, text) {
47
+ try {
48
+ if (pty.sendText)
49
+ return pty.sendText(text) !== false;
50
+ pty.write(text);
51
+ return true;
52
+ }
53
+ catch {
54
+ return false;
55
+ }
56
+ }
57
+ async function pasteTextInSafeChunks(pty, content) {
58
+ const chunks = chunkOmpInput(content);
59
+ for (const chunk of chunks) {
60
+ // Emit the markers ourselves instead of relying on backend pasteText():
61
+ // tmux/zellij implement bracketed paste, while herdr's pasteText is only a
62
+ // literal write. One explicit wire format keeps every backend equivalent.
63
+ if (!sendLiteral(pty, `${BRACKETED_PASTE_START}${chunk}${BRACKETED_PASTE_END}`))
64
+ return false;
65
+ await delay(OMP_INPUT_THROTTLE_MS);
66
+ }
67
+ return true;
68
+ }
69
+ function submitEnter(pty, attempts = 3) {
70
+ for (let i = 0; i < attempts; i++) {
71
+ try {
72
+ if (pty.sendSpecialKeys) {
73
+ if (pty.sendSpecialKeys('Enter') !== false)
74
+ return true;
75
+ }
76
+ else {
77
+ pty.write('\r');
78
+ return true;
79
+ }
80
+ }
81
+ catch {
82
+ // retry below
83
+ }
84
+ }
85
+ return false;
86
+ }
4
87
  /** Adapter for oh-my-pi coding agent's native TUI (`omp`). */
5
88
  export function createOhMyPiAdapter(pathOverride) {
6
89
  const bin = resolveCommand(pathOverride ?? 'omp');
90
+ let composerDirty = false;
91
+ let lastClearAttemptAt = 0;
92
+ const clearComposer = async (pty) => {
93
+ // OMP treats a second Ctrl+C within 500 ms as exit. Keep recovery clears
94
+ // outside that window even when consecutive terminal writes fail quickly.
95
+ const waitMs = OMP_CLEAR_COOLDOWN_MS - (Date.now() - lastClearAttemptAt);
96
+ if (waitMs > 0)
97
+ await delay(waitMs);
98
+ lastClearAttemptAt = Date.now();
99
+ try {
100
+ if (pty.sendSpecialKeys)
101
+ return pty.sendSpecialKeys('C-c') !== false;
102
+ pty.write('\x03');
103
+ return true;
104
+ }
105
+ catch {
106
+ return false;
107
+ }
108
+ };
7
109
  return {
8
110
  id: 'oh-my-pi',
9
111
  authPaths: ['~/.omp/agent/auth.json'],
@@ -37,20 +139,39 @@ export function createOhMyPiAdapter(pathOverride) {
37
139
  return 'omp --continue';
38
140
  },
39
141
  async writeInput(pty, content) {
40
- // OMP's editor submits on a plain LF (`\n`) in current releases; tmux's
41
- // symbolic Enter / CR can leave the text sitting in the composer. Use LF
42
- // for both the tmux paste path and raw PTY fallback so every dispatched
43
- // Leader→OMP message is actually submitted, not just pasted.
44
- if (pty.pasteText) {
45
- pty.pasteText(content);
46
- await delay(200);
47
- pty.write('\n');
142
+ const normalized = normalizeOmpInput(content);
143
+ if (!normalized) {
144
+ return {
145
+ submitted: false,
146
+ failureReason: 'OMP 输入清理控制字符后为空,未发送空消息。',
147
+ };
48
148
  }
49
- else {
50
- pty.write(`\x1b[200~${content}\x1b[201~`);
51
- await delay(1000);
52
- pty.write('\n');
149
+ // A previous best-effort clear may itself have been dropped. Never append
150
+ // a new message to that unknown buffer: clear it successfully first.
151
+ if (composerDirty) {
152
+ if (!(await clearComposer(pty))) {
153
+ return {
154
+ submitted: false,
155
+ failureReason: 'OMP 输入框可能残留未完整消息,自动清理失败;请在终端按 Ctrl+C 清空后重试。',
156
+ };
157
+ }
158
+ composerDirty = false;
159
+ }
160
+ // OMP collapses a single large bracketed paste into `[Paste #N]`, whose
161
+ // immediately-following programmatic Enter can be ignored. Preserve paste
162
+ // sanitization (so tabs/newlines/control bytes are text, not key events),
163
+ // but split below both placeholder thresholds before the final real Enter.
164
+ const pasted = await pasteTextInSafeChunks(pty, normalized);
165
+ if (!pasted) {
166
+ composerDirty = !(await clearComposer(pty));
167
+ return { submitted: false };
168
+ }
169
+ if (!submitEnter(pty)) {
170
+ composerDirty = !(await clearComposer(pty));
171
+ return { submitted: false };
53
172
  }
173
+ composerDirty = false;
174
+ return { submitted: true };
54
175
  },
55
176
  completionPattern: undefined,
56
177
  readyPattern: undefined,
@@ -1 +1 @@
1
- {"version":3,"file":"oh-my-pi.js","sourceRoot":"","sources":["../../../src/adapters/cli/oh-my-pi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAGvD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE9C,8DAA8D;AAC9D,MAAM,UAAU,mBAAmB,CAAC,YAAqB;IACvD,MAAM,GAAG,GAAG,cAAc,CAAC,YAAY,IAAI,KAAK,CAAC,CAAC;IAClD,OAAO;QACL,EAAE,EAAE,UAAU;QACd,SAAS,EAAE,CAAC,wBAAwB,CAAC;QACrC,WAAW,EAAE,GAAG;QAEhB,iEAAiE;QACjE,yEAAyE;QACzE,wEAAwE;QACxE,4EAA4E;QAC5E,iCAAiC;QACjC,SAAS,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE;YAC/C,MAAM,IAAI,GAAG;gBACX,SAAS,EAAE,+FAA+F;gBAC1G,YAAY;aACb,CAAC;YACF,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACtB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;YACvC,CAAC;YACD,IAAI,KAAK,EAAE,IAAI,EAAE;gBAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YACtD,IAAI,UAAU;gBAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YAC/C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,4EAA4E;QAC5E,qBAAqB;QACrB,0BAA0B,EAAE,KAAK;QAEjC,sEAAsE;QACtE,qEAAqE;QACrE,qEAAqE;QACrE,kBAAkB;YAChB,OAAO,gBAAgB,CAAC;QAC1B,CAAC;QAED,KAAK,CAAC,UAAU,CAAC,GAAc,EAAE,OAAe;YAC9C,wEAAwE;YACxE,yEAAyE;YACzE,wEAAwE;YACxE,6DAA6D;YAC7D,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;gBAClB,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;gBACvB,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;gBACjB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,KAAK,CAAC,YAAY,OAAO,WAAW,CAAC,CAAC;gBAC1C,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;gBAClB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAED,iBAAiB,EAAE,SAAS;QAC5B,YAAY,EAAE,SAAS;QACvB,WAAW,EAAE,kBAAkB;QAC/B,SAAS,EAAE,IAAI;QACf,SAAS,EAAE,qBAAqB;KACjC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,mBAAmB,CAAC"}
1
+ {"version":3,"file":"oh-my-pi.js","sourceRoot":"","sources":["../../../src/adapters/cli/oh-my-pi.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,7 @@ import { createPiAdapter } from './pi.js';
20
20
  import { createCopilotAdapter } from './copilot.js';
21
21
  import { createOhMyPiAdapter } from './oh-my-pi.js';
22
22
  import { createKimiAdapter } from './kimi.js';
23
+ import { createGrokAdapter } from './grok.js';
23
24
  /** Resolve a command name to its absolute path via shell `which`.
24
25
  * Tries login shell first (-lc), then interactive shell (-ic) for tools
25
26
  * whose installers add PATH entries to .bashrc/.zshrc only. */
@@ -36,7 +37,7 @@ export declare function resolveCommand(cmd: string): string;
36
37
  export declare function locateOnPath(cmd: string): string | null;
37
38
  /** Async adapter factory (uses dynamic import for lazy loading in daemon process). */
38
39
  export declare function createCliAdapter(id: CliId, pathOverride?: string): Promise<CliAdapter>;
39
- export { createClaudeCodeAdapter, createSeedAdapter, createRelayAdapter, createAidenAdapter, createCocoAdapter, createCodexAdapter, createCodexAppAdapter, createCursorAdapter, createGeminiAdapter, createGeniusAdapter, createOpenCodeAdapter, createAntigravityAdapter, createMtrAdapter, createHermesAdapter, createMiraAdapter, createMirAdapter, createTraexAdapter, createPiAdapter, createCopilotAdapter, createOhMyPiAdapter, createKimiAdapter };
40
+ export { createClaudeCodeAdapter, createSeedAdapter, createRelayAdapter, createAidenAdapter, createCocoAdapter, createCodexAdapter, createCodexAppAdapter, createCursorAdapter, createGeminiAdapter, createGeniusAdapter, createOpenCodeAdapter, createAntigravityAdapter, createMtrAdapter, createHermesAdapter, createMiraAdapter, createMirAdapter, createTraexAdapter, createPiAdapter, createCopilotAdapter, createOhMyPiAdapter, createKimiAdapter, createGrokAdapter };
40
41
  /** Synchronous version for use in worker process. */
41
42
  export declare function createCliAdapterSync(id: CliId, pathOverride?: string): CliAdapter;
42
43
  //# sourceMappingURL=registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/adapters/cli/registry.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C;;gEAEgE;AAChE,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CA4ClD;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEvD;AAID,sFAAsF;AACtF,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,KAAK,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAO5F;AAED,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,eAAe,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,CAAC;AAE3b,qDAAqD;AACrD,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,KAAK,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,UAAU,CAyBjF"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/adapters/cli/registry.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C;;gEAEgE;AAChE,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CA4ClD;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEvD;AAID,sFAAsF;AACtF,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,KAAK,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAO5F;AAED,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,eAAe,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,CAAC;AAE9c,qDAAqD;AACrD,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,KAAK,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,UAAU,CA0BjF"}
@@ -24,6 +24,7 @@ import { createPiAdapter } from './pi.js';
24
24
  import { createCopilotAdapter } from './copilot.js';
25
25
  import { createOhMyPiAdapter } from './oh-my-pi.js';
26
26
  import { createKimiAdapter } from './kimi.js';
27
+ import { createGrokAdapter } from './grok.js';
27
28
  /** Resolve a command name to its absolute path via shell `which`.
28
29
  * Tries login shell first (-lc), then interactive shell (-ic) for tools
29
30
  * whose installers add PATH entries to .bashrc/.zshrc only. */
@@ -98,7 +99,7 @@ export async function createCliAdapter(id, pathOverride) {
98
99
  adapterCache.set(key, adapter);
99
100
  return adapter;
100
101
  }
101
- export { createClaudeCodeAdapter, createSeedAdapter, createRelayAdapter, createAidenAdapter, createCocoAdapter, createCodexAdapter, createCodexAppAdapter, createCursorAdapter, createGeminiAdapter, createGeniusAdapter, createOpenCodeAdapter, createAntigravityAdapter, createMtrAdapter, createHermesAdapter, createMiraAdapter, createMirAdapter, createTraexAdapter, createPiAdapter, createCopilotAdapter, createOhMyPiAdapter, createKimiAdapter };
102
+ export { createClaudeCodeAdapter, createSeedAdapter, createRelayAdapter, createAidenAdapter, createCocoAdapter, createCodexAdapter, createCodexAppAdapter, createCursorAdapter, createGeminiAdapter, createGeniusAdapter, createOpenCodeAdapter, createAntigravityAdapter, createMtrAdapter, createHermesAdapter, createMiraAdapter, createMirAdapter, createTraexAdapter, createPiAdapter, createCopilotAdapter, createOhMyPiAdapter, createKimiAdapter, createGrokAdapter };
102
103
  /** Synchronous version for use in worker process. */
103
104
  export function createCliAdapterSync(id, pathOverride) {
104
105
  switch (id.toLowerCase()) {
@@ -123,6 +124,7 @@ export function createCliAdapterSync(id, pathOverride) {
123
124
  case 'copilot': return createCopilotAdapter(pathOverride);
124
125
  case 'oh-my-pi': return createOhMyPiAdapter(pathOverride);
125
126
  case 'kimi': return createKimiAdapter(pathOverride);
127
+ case 'grok': return createGrokAdapter(pathOverride);
126
128
  default: throw new Error(`Unknown CLI adapter: ${id}`);
127
129
  }
128
130
  }
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/adapters/cli/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/adapters/cli/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C;;gEAEgE;AAChE,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,IAAI,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IAChC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,UAAU,CAAC;IAC9C,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACxF,8EAA8E;IAC9E,+EAA+E;IAC/E,MAAM,SAAS,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3E,8EAA8E;IAC9E,oFAAoF;IACpF,KAAK,MAAM,KAAK,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;QACnC,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;YACxB,8DAA8D;YAC9D,2EAA2E;YAC3E,mEAAmE;YACnE,0EAA0E;YAC1E,oDAAoD;YACpD,0EAA0E;YAC1E,mEAAmE;YACnE,yBAAyB;YACzB,mEAAmE;YACnE,sEAAsE;YACtE,4CAA4C;YAC5C,MAAM,IAAI,GAAG,SAAS;gBACpB,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,GAAG,EAAE,CAAC;gBAC9C,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,GAAG,EAAE,CAAC,CAAC;YAChC,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;gBAChD,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;aACpC,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC3C,IAAI,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;QAC/C,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;QACrD,MAAM,sBAAsB,GAAG;YAC7B,kDAAkD;YAClD,IAAI,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC;SAC/E,CAAC;QACF,KAAK,MAAM,SAAS,IAAI,sBAAsB,EAAE,CAAC;YAC/C,IAAI,UAAU,CAAC,SAAS,CAAC;gBAAE,OAAO,SAAS,CAAC;QAC9C,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,YAAY,GAAG,IAAI,GAAG,EAAsB,CAAC;AAEnD,sFAAsF;AACtF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EAAS,EAAE,YAAqB;IACrE,MAAM,UAAU,GAAG,EAAE,CAAC,WAAW,EAAW,CAAC;IAC7C,MAAM,GAAG,GAAG,GAAG,UAAU,IAAI,YAAY,IAAI,EAAE,EAAE,CAAC;IAClD,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,YAAY,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;IACzD,MAAM,OAAO,GAAG,oBAAoB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAC/D,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC/B,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,eAAe,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,CAAC;AAE9c,qDAAqD;AACrD,MAAM,UAAU,oBAAoB,CAAC,EAAS,EAAE,YAAqB;IACnE,QAAQ,EAAE,CAAC,WAAW,EAAW,EAAE,CAAC;QAClC,KAAK,aAAa,CAAC,CAAC,OAAO,uBAAuB,CAAC,YAAY,CAAC,CAAC;QACjE,KAAK,MAAM,CAAC,CAAC,OAAO,iBAAiB,CAAC,YAAY,CAAC,CAAC;QACpD,KAAK,OAAO,CAAC,CAAC,OAAO,kBAAkB,CAAC,YAAY,CAAC,CAAC;QACtD,KAAK,OAAO,CAAC,CAAC,OAAO,kBAAkB,CAAC,YAAY,CAAC,CAAC;QACtD,KAAK,MAAM,CAAC,CAAC,OAAO,iBAAiB,CAAC,YAAY,CAAC,CAAC;QACpD,KAAK,OAAO,CAAC,CAAC,OAAO,kBAAkB,CAAC,YAAY,CAAC,CAAC;QACtD,KAAK,WAAW,CAAC,CAAC,OAAO,qBAAqB,CAAC,YAAY,CAAC,CAAC;QAC7D,KAAK,QAAQ,CAAC,CAAC,OAAO,mBAAmB,CAAC,YAAY,CAAC,CAAC;QACxD,KAAK,QAAQ,CAAC,CAAC,OAAO,mBAAmB,CAAC,YAAY,CAAC,CAAC;QACxD,KAAK,QAAQ,CAAC,CAAC,OAAO,mBAAmB,CAAC,YAAY,CAAC,CAAC;QACxD,KAAK,UAAU,CAAC,CAAC,OAAO,qBAAqB,CAAC,YAAY,CAAC,CAAC;QAC5D,KAAK,aAAa,CAAC,CAAC,OAAO,wBAAwB,CAAC,YAAY,CAAC,CAAC;QAClE,KAAK,KAAK,CAAC,CAAC,OAAO,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAClD,KAAK,QAAQ,CAAC,CAAC,OAAO,mBAAmB,CAAC,YAAY,CAAC,CAAC;QACxD,KAAK,MAAM,CAAC,CAAC,OAAO,iBAAiB,CAAC,YAAY,CAAC,CAAC;QACpD,KAAK,KAAK,CAAC,CAAC,OAAO,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAClD,KAAK,OAAO,CAAC,CAAC,OAAO,kBAAkB,CAAC,YAAY,CAAC,CAAC;QACtD,KAAK,IAAI,CAAC,CAAC,OAAO,eAAe,CAAC,YAAY,CAAC,CAAC;QAChD,KAAK,SAAS,CAAC,CAAC,OAAO,oBAAoB,CAAC,YAAY,CAAC,CAAC;QAC1D,KAAK,UAAU,CAAC,CAAC,OAAO,mBAAmB,CAAC,YAAY,CAAC,CAAC;QAC1D,KAAK,MAAM,CAAC,CAAC,OAAO,iBAAiB,CAAC,YAAY,CAAC,CAAC;QACpD,KAAK,MAAM,CAAC,CAAC,OAAO,iBAAiB,CAAC,YAAY,CAAC,CAAC;QACpD,OAAO,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAC;IACzD,CAAC;AACH,CAAC"}
@@ -1,9 +1,13 @@
1
1
  /**
2
- * Shared botmux routing hints injected into non-Claude CLIs' initial prompt.
2
+ * Shared botmux routing hints injected into non-injectsSessionContext CLIs'
3
+ * initial prompt.
3
4
  *
4
- * Claude Code has its own `--append-system-prompt` text baked into
5
- * `claude-code.ts`; this constant is only consumed by CLIs that don't expose
6
- * a system-prompt flag (coco / codex / gemini / opencode / aiden / mtr / hermes).
5
+ * CLIs that expose a system-prompt append flag set `injectsSessionContext` and
6
+ * push `buildBotmuxSystemPromptText` via that flag instead:
7
+ * - Claude Code / genius: `--append-system-prompt`
8
+ * - Grok: `--rules` (docs: Claude's append alias)
9
+ * This constant is only for CLIs without such a flag (coco / codex / gemini /
10
+ * opencode / aiden / mtr / hermes / …).
7
11
  *
8
12
  * Each array element becomes one line inside the `<botmux_routing>` XML block
9
13
  * rendered by `buildNewTopicPrompt` in `session-manager.ts`.
@@ -1 +1 @@
1
- {"version":3,"file":"shared-hints.d.ts","sourceRoot":"","sources":["../../../src/adapters/cli/shared-hints.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAK,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGrD,wBAAgB,qBAAqB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAe/D;AAED;8EAC8E;AAC9E,eAAO,MAAM,kBAAkB,EAAE,MAAM,EAStC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;2DAGuD;IACvD,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,GAAG,MAAM,CAqDT"}
1
+ {"version":3,"file":"shared-hints.d.ts","sourceRoot":"","sources":["../../../src/adapters/cli/shared-hints.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAK,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGrD,wBAAgB,qBAAqB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAe/D;AAED;8EAC8E;AAC9E,eAAO,MAAM,kBAAkB,EAAE,MAAM,EAStC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;2DAGuD;IACvD,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,GAAG,MAAM,CAqDT"}
@@ -1,9 +1,13 @@
1
1
  /**
2
- * Shared botmux routing hints injected into non-Claude CLIs' initial prompt.
2
+ * Shared botmux routing hints injected into non-injectsSessionContext CLIs'
3
+ * initial prompt.
3
4
  *
4
- * Claude Code has its own `--append-system-prompt` text baked into
5
- * `claude-code.ts`; this constant is only consumed by CLIs that don't expose
6
- * a system-prompt flag (coco / codex / gemini / opencode / aiden / mtr / hermes).
5
+ * CLIs that expose a system-prompt append flag set `injectsSessionContext` and
6
+ * push `buildBotmuxSystemPromptText` via that flag instead:
7
+ * - Claude Code / genius: `--append-system-prompt`
8
+ * - Grok: `--rules` (docs: Claude's append alias)
9
+ * This constant is only for CLIs without such a flag (coco / codex / gemini /
10
+ * opencode / aiden / mtr / hermes / …).
7
11
  *
8
12
  * Each array element becomes one line inside the `<botmux_routing>` XML block
9
13
  * rendered by `buildNewTopicPrompt` in `session-manager.ts`.