botmux 2.47.0 → 2.47.1

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 (472) hide show
  1. package/README.en.md +10 -5
  2. package/README.md +10 -5
  3. package/dist/adapters/adopt-route.d.ts +63 -0
  4. package/dist/adapters/adopt-route.d.ts.map +1 -0
  5. package/dist/adapters/adopt-route.js +195 -0
  6. package/dist/adapters/adopt-route.js.map +1 -0
  7. package/dist/adapters/backend/tmux-backend.d.ts.map +1 -1
  8. package/dist/adapters/backend/tmux-backend.js +11 -0
  9. package/dist/adapters/backend/tmux-backend.js.map +1 -1
  10. package/dist/adapters/backend/tmux-pipe-backend.d.ts +11 -0
  11. package/dist/adapters/backend/tmux-pipe-backend.d.ts.map +1 -1
  12. package/dist/adapters/backend/tmux-pipe-backend.js +17 -1
  13. package/dist/adapters/backend/tmux-pipe-backend.js.map +1 -1
  14. package/dist/adapters/cli/claude-code.d.ts.map +1 -1
  15. package/dist/adapters/cli/claude-code.js +36 -9
  16. package/dist/adapters/cli/claude-code.js.map +1 -1
  17. package/dist/adapters/cli/coco.d.ts.map +1 -1
  18. package/dist/adapters/cli/coco.js +26 -1
  19. package/dist/adapters/cli/coco.js.map +1 -1
  20. package/dist/adapters/cli/codex-app.d.ts +4 -0
  21. package/dist/adapters/cli/codex-app.d.ts.map +1 -0
  22. package/dist/adapters/cli/codex-app.js +72 -0
  23. package/dist/adapters/cli/codex-app.js.map +1 -0
  24. package/dist/adapters/cli/codex.d.ts.map +1 -1
  25. package/dist/adapters/cli/codex.js +6 -1
  26. package/dist/adapters/cli/codex.js.map +1 -1
  27. package/dist/adapters/cli/cursor.d.ts.map +1 -1
  28. package/dist/adapters/cli/cursor.js +58 -12
  29. package/dist/adapters/cli/cursor.js.map +1 -1
  30. package/dist/adapters/cli/gemini.d.ts.map +1 -1
  31. package/dist/adapters/cli/gemini.js +5 -1
  32. package/dist/adapters/cli/gemini.js.map +1 -1
  33. package/dist/adapters/cli/hermes.d.ts +4 -0
  34. package/dist/adapters/cli/hermes.d.ts.map +1 -0
  35. package/dist/adapters/cli/hermes.js +40 -0
  36. package/dist/adapters/cli/hermes.js.map +1 -0
  37. package/dist/adapters/cli/mira.d.ts +4 -0
  38. package/dist/adapters/cli/mira.d.ts.map +1 -0
  39. package/dist/adapters/cli/mira.js +67 -0
  40. package/dist/adapters/cli/mira.js.map +1 -0
  41. package/dist/adapters/cli/mtr.d.ts +5 -0
  42. package/dist/adapters/cli/mtr.d.ts.map +1 -0
  43. package/dist/adapters/cli/mtr.js +62 -0
  44. package/dist/adapters/cli/mtr.js.map +1 -0
  45. package/dist/adapters/cli/opencode.d.ts.map +1 -1
  46. package/dist/adapters/cli/opencode.js +19 -1
  47. package/dist/adapters/cli/opencode.js.map +1 -1
  48. package/dist/adapters/cli/registry.d.ts +5 -1
  49. package/dist/adapters/cli/registry.d.ts.map +1 -1
  50. package/dist/adapters/cli/registry.js +22 -2
  51. package/dist/adapters/cli/registry.js.map +1 -1
  52. package/dist/adapters/cli/shared-hints.d.ts +1 -1
  53. package/dist/adapters/cli/shared-hints.d.ts.map +1 -1
  54. package/dist/adapters/cli/shared-hints.js +2 -1
  55. package/dist/adapters/cli/shared-hints.js.map +1 -1
  56. package/dist/adapters/cli/types.d.ts +35 -2
  57. package/dist/adapters/cli/types.d.ts.map +1 -1
  58. package/dist/adapters/hook-command.d.ts +18 -0
  59. package/dist/adapters/hook-command.d.ts.map +1 -0
  60. package/dist/adapters/hook-command.js +38 -0
  61. package/dist/adapters/hook-command.js.map +1 -0
  62. package/dist/adapters/hook-installer.d.ts +14 -0
  63. package/dist/adapters/hook-installer.d.ts.map +1 -0
  64. package/dist/adapters/hook-installer.js +192 -0
  65. package/dist/adapters/hook-installer.js.map +1 -0
  66. package/dist/bot-registry.d.ts +59 -0
  67. package/dist/bot-registry.d.ts.map +1 -1
  68. package/dist/bot-registry.js +67 -0
  69. package/dist/bot-registry.js.map +1 -1
  70. package/dist/cli/bots-list-output.d.ts +8 -0
  71. package/dist/cli/bots-list-output.d.ts.map +1 -1
  72. package/dist/cli/bots-list-output.js +9 -0
  73. package/dist/cli/bots-list-output.js.map +1 -1
  74. package/dist/cli.d.ts +15 -1
  75. package/dist/cli.d.ts.map +1 -1
  76. package/dist/cli.js +603 -106
  77. package/dist/cli.js.map +1 -1
  78. package/dist/codex-app-runner.d.ts +3 -0
  79. package/dist/codex-app-runner.d.ts.map +1 -0
  80. package/dist/codex-app-runner.js +512 -0
  81. package/dist/codex-app-runner.js.map +1 -0
  82. package/dist/config.d.ts +11 -2
  83. package/dist/config.d.ts.map +1 -1
  84. package/dist/config.js +17 -4
  85. package/dist/config.js.map +1 -1
  86. package/dist/core/ask-api.d.ts +47 -0
  87. package/dist/core/ask-api.d.ts.map +1 -0
  88. package/dist/core/ask-api.js +139 -0
  89. package/dist/core/ask-api.js.map +1 -0
  90. package/dist/core/ask-args.d.ts +53 -0
  91. package/dist/core/ask-args.d.ts.map +1 -0
  92. package/dist/core/ask-args.js +122 -0
  93. package/dist/core/ask-args.js.map +1 -0
  94. package/dist/core/ask-broker.d.ts +98 -0
  95. package/dist/core/ask-broker.d.ts.map +1 -0
  96. package/dist/core/ask-broker.js +329 -0
  97. package/dist/core/ask-broker.js.map +1 -0
  98. package/dist/core/ask-hook/claude-code.d.ts +50 -0
  99. package/dist/core/ask-hook/claude-code.d.ts.map +1 -0
  100. package/dist/core/ask-hook/claude-code.js +145 -0
  101. package/dist/core/ask-hook/claude-code.js.map +1 -0
  102. package/dist/core/ask-hook/codex.d.ts +43 -0
  103. package/dist/core/ask-hook/codex.d.ts.map +1 -0
  104. package/dist/core/ask-hook/codex.js +69 -0
  105. package/dist/core/ask-hook/codex.js.map +1 -0
  106. package/dist/core/ask-hook/opencode.d.ts +41 -0
  107. package/dist/core/ask-hook/opencode.d.ts.map +1 -0
  108. package/dist/core/ask-hook/opencode.js +108 -0
  109. package/dist/core/ask-hook/opencode.js.map +1 -0
  110. package/dist/core/ask-hook/registry.d.ts +3 -0
  111. package/dist/core/ask-hook/registry.d.ts.map +1 -0
  112. package/dist/core/ask-hook/registry.js +12 -0
  113. package/dist/core/ask-hook/registry.js.map +1 -0
  114. package/dist/core/ask-hook/types.d.ts +26 -0
  115. package/dist/core/ask-hook/types.d.ts.map +1 -0
  116. package/dist/core/ask-hook/types.js +2 -0
  117. package/dist/core/ask-hook/types.js.map +1 -0
  118. package/dist/core/ask-types.d.ts +146 -0
  119. package/dist/core/ask-types.d.ts.map +1 -0
  120. package/dist/core/ask-types.js +18 -0
  121. package/dist/core/ask-types.js.map +1 -0
  122. package/dist/core/command-handler.d.ts +20 -0
  123. package/dist/core/command-handler.d.ts.map +1 -1
  124. package/dist/core/command-handler.js +774 -311
  125. package/dist/core/command-handler.js.map +1 -1
  126. package/dist/core/dashboard-ipc-server.d.ts +2 -0
  127. package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
  128. package/dist/core/dashboard-ipc-server.js +222 -2
  129. package/dist/core/dashboard-ipc-server.js.map +1 -1
  130. package/dist/core/role-resolver.d.ts +17 -1
  131. package/dist/core/role-resolver.d.ts.map +1 -1
  132. package/dist/core/role-resolver.js +64 -10
  133. package/dist/core/role-resolver.js.map +1 -1
  134. package/dist/core/session-discovery.d.ts.map +1 -1
  135. package/dist/core/session-discovery.js +19 -5
  136. package/dist/core/session-discovery.js.map +1 -1
  137. package/dist/core/session-manager.d.ts +1 -1
  138. package/dist/core/session-manager.d.ts.map +1 -1
  139. package/dist/core/session-manager.js +37 -20
  140. package/dist/core/session-manager.js.map +1 -1
  141. package/dist/core/trigger-session.d.ts +9 -0
  142. package/dist/core/trigger-session.d.ts.map +1 -0
  143. package/dist/core/trigger-session.js +158 -0
  144. package/dist/core/trigger-session.js.map +1 -0
  145. package/dist/core/types.d.ts +5 -0
  146. package/dist/core/types.d.ts.map +1 -1
  147. package/dist/core/types.js.map +1 -1
  148. package/dist/core/worker-pool.d.ts +141 -0
  149. package/dist/core/worker-pool.d.ts.map +1 -1
  150. package/dist/core/worker-pool.js +543 -24
  151. package/dist/core/worker-pool.js.map +1 -1
  152. package/dist/daemon.d.ts.map +1 -1
  153. package/dist/daemon.js +213 -58
  154. package/dist/daemon.js.map +1 -1
  155. package/dist/dashboard/auth.d.ts +6 -1
  156. package/dist/dashboard/auth.d.ts.map +1 -1
  157. package/dist/dashboard/auth.js +9 -1
  158. package/dist/dashboard/auth.js.map +1 -1
  159. package/dist/dashboard/connector-api.d.ts +3 -0
  160. package/dist/dashboard/connector-api.d.ts.map +1 -0
  161. package/dist/dashboard/connector-api.js +351 -0
  162. package/dist/dashboard/connector-api.js.map +1 -0
  163. package/dist/dashboard/federated-group-core.d.ts +54 -0
  164. package/dist/dashboard/federated-group-core.d.ts.map +1 -0
  165. package/dist/dashboard/federated-group-core.js +165 -0
  166. package/dist/dashboard/federated-group-core.js.map +1 -0
  167. package/dist/dashboard/federation-api.d.ts +42 -0
  168. package/dist/dashboard/federation-api.d.ts.map +1 -0
  169. package/dist/dashboard/federation-api.js +408 -0
  170. package/dist/dashboard/federation-api.js.map +1 -0
  171. package/dist/dashboard/federation-spoke-api.d.ts +76 -0
  172. package/dist/dashboard/federation-spoke-api.d.ts.map +1 -0
  173. package/dist/dashboard/federation-spoke-api.js +618 -0
  174. package/dist/dashboard/federation-spoke-api.js.map +1 -0
  175. package/dist/dashboard/team-group.d.ts +18 -0
  176. package/dist/dashboard/team-group.d.ts.map +1 -0
  177. package/dist/dashboard/team-group.js +7 -0
  178. package/dist/dashboard/team-group.js.map +1 -0
  179. package/dist/dashboard/trigger-api.d.ts +13 -0
  180. package/dist/dashboard/trigger-api.d.ts.map +1 -0
  181. package/dist/dashboard/trigger-api.js +77 -0
  182. package/dist/dashboard/trigger-api.js.map +1 -0
  183. package/dist/dashboard/web/app.js +8 -0
  184. package/dist/dashboard/web/app.js.map +1 -1
  185. package/dist/dashboard/web/bot-defaults.d.ts.map +1 -1
  186. package/dist/dashboard/web/bot-defaults.js +205 -21
  187. package/dist/dashboard/web/bot-defaults.js.map +1 -1
  188. package/dist/dashboard/web/connectors.d.ts +2 -0
  189. package/dist/dashboard/web/connectors.d.ts.map +1 -0
  190. package/dist/dashboard/web/connectors.js +187 -0
  191. package/dist/dashboard/web/connectors.js.map +1 -0
  192. package/dist/dashboard/web/i18n.d.ts.map +1 -1
  193. package/dist/dashboard/web/i18n.js +43 -5
  194. package/dist/dashboard/web/i18n.js.map +1 -1
  195. package/dist/dashboard/web/sessions.d.ts.map +1 -1
  196. package/dist/dashboard/web/sessions.js +4 -0
  197. package/dist/dashboard/web/sessions.js.map +1 -1
  198. package/dist/dashboard/web/team-federation.d.ts +3 -0
  199. package/dist/dashboard/web/team-federation.d.ts.map +1 -0
  200. package/dist/dashboard/web/team-federation.js +487 -0
  201. package/dist/dashboard/web/team-federation.js.map +1 -0
  202. package/dist/dashboard/web/workflows.js +3 -3
  203. package/dist/dashboard/web/workflows.js.map +1 -1
  204. package/dist/dashboard/webhook-routes.d.ts +19 -0
  205. package/dist/dashboard/webhook-routes.d.ts.map +1 -0
  206. package/dist/dashboard/webhook-routes.js +321 -0
  207. package/dist/dashboard/webhook-routes.js.map +1 -0
  208. package/dist/dashboard/workflow-api.d.ts +8 -1
  209. package/dist/dashboard/workflow-api.d.ts.map +1 -1
  210. package/dist/dashboard/workflow-api.js +19 -4
  211. package/dist/dashboard/workflow-api.js.map +1 -1
  212. package/dist/dashboard-web/app.js +539 -375
  213. package/dist/dashboard-web/index.html +3 -1
  214. package/dist/dashboard-web/style.css +22 -0
  215. package/dist/dashboard.js +199 -2
  216. package/dist/dashboard.js.map +1 -1
  217. package/dist/i18n/en.d.ts.map +1 -1
  218. package/dist/i18n/en.js +104 -11
  219. package/dist/i18n/en.js.map +1 -1
  220. package/dist/i18n/zh.d.ts.map +1 -1
  221. package/dist/i18n/zh.js +104 -11
  222. package/dist/i18n/zh.js.map +1 -1
  223. package/dist/im/lark/ask-card.d.ts +55 -0
  224. package/dist/im/lark/ask-card.d.ts.map +1 -0
  225. package/dist/im/lark/ask-card.js +328 -0
  226. package/dist/im/lark/ask-card.js.map +1 -0
  227. package/dist/im/lark/card-builder.d.ts +108 -3
  228. package/dist/im/lark/card-builder.d.ts.map +1 -1
  229. package/dist/im/lark/card-builder.js +480 -50
  230. package/dist/im/lark/card-builder.js.map +1 -1
  231. package/dist/im/lark/card-handler.d.ts.map +1 -1
  232. package/dist/im/lark/card-handler.js +241 -18
  233. package/dist/im/lark/card-handler.js.map +1 -1
  234. package/dist/im/lark/client.d.ts +83 -0
  235. package/dist/im/lark/client.d.ts.map +1 -1
  236. package/dist/im/lark/client.js +286 -70
  237. package/dist/im/lark/client.js.map +1 -1
  238. package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
  239. package/dist/im/lark/event-dispatcher.js +29 -4
  240. package/dist/im/lark/event-dispatcher.js.map +1 -1
  241. package/dist/im/lark/grant-command.d.ts +2 -1
  242. package/dist/im/lark/grant-command.d.ts.map +1 -1
  243. package/dist/im/lark/grant-command.js +3 -2
  244. package/dist/im/lark/grant-command.js.map +1 -1
  245. package/dist/im/lark/identity-cache.d.ts.map +1 -1
  246. package/dist/im/lark/identity-cache.js +3 -3
  247. package/dist/im/lark/identity-cache.js.map +1 -1
  248. package/dist/im/lark/md-card.d.ts +20 -2
  249. package/dist/im/lark/md-card.d.ts.map +1 -1
  250. package/dist/im/lark/md-card.js +49 -17
  251. package/dist/im/lark/md-card.js.map +1 -1
  252. package/dist/im/lark/message-parser.d.ts.map +1 -1
  253. package/dist/im/lark/message-parser.js +87 -31
  254. package/dist/im/lark/message-parser.js.map +1 -1
  255. package/dist/im/lark/workflow-card-handler.d.ts +2 -2
  256. package/dist/im/lark/workflow-card-handler.d.ts.map +1 -1
  257. package/dist/im/lark/workflow-card-handler.js +12 -1
  258. package/dist/im/lark/workflow-card-handler.js.map +1 -1
  259. package/dist/im/lark/workflow-progress-card.d.ts.map +1 -1
  260. package/dist/im/lark/workflow-progress-card.js +53 -0
  261. package/dist/im/lark/workflow-progress-card.js.map +1 -1
  262. package/dist/mira-output.d.ts +3 -0
  263. package/dist/mira-output.d.ts.map +1 -0
  264. package/dist/mira-output.js +136 -0
  265. package/dist/mira-output.js.map +1 -0
  266. package/dist/mira-runner.d.ts +3 -0
  267. package/dist/mira-runner.d.ts.map +1 -0
  268. package/dist/mira-runner.js +534 -0
  269. package/dist/mira-runner.js.map +1 -0
  270. package/dist/services/bot-owner-store.d.ts +28 -0
  271. package/dist/services/bot-owner-store.d.ts.map +1 -0
  272. package/dist/services/bot-owner-store.js +82 -0
  273. package/dist/services/bot-owner-store.js.map +1 -0
  274. package/dist/services/bot-profile-store.d.ts +16 -0
  275. package/dist/services/bot-profile-store.d.ts.map +1 -0
  276. package/dist/services/bot-profile-store.js +98 -0
  277. package/dist/services/bot-profile-store.js.map +1 -0
  278. package/dist/services/brand-store.d.ts +15 -0
  279. package/dist/services/brand-store.d.ts.map +1 -0
  280. package/dist/services/brand-store.js +47 -0
  281. package/dist/services/brand-store.js.map +1 -0
  282. package/dist/services/card-prefs-store.d.ts +20 -0
  283. package/dist/services/card-prefs-store.d.ts.map +1 -0
  284. package/dist/services/card-prefs-store.js +82 -0
  285. package/dist/services/card-prefs-store.js.map +1 -0
  286. package/dist/services/codex-bridge-queue.d.ts +1 -0
  287. package/dist/services/codex-bridge-queue.d.ts.map +1 -1
  288. package/dist/services/codex-bridge-queue.js +23 -0
  289. package/dist/services/codex-bridge-queue.js.map +1 -1
  290. package/dist/services/codex-transcript.d.ts +1 -0
  291. package/dist/services/codex-transcript.d.ts.map +1 -1
  292. package/dist/services/codex-transcript.js.map +1 -1
  293. package/dist/services/connector-store.d.ts +58 -0
  294. package/dist/services/connector-store.d.ts.map +1 -0
  295. package/dist/services/connector-store.js +79 -0
  296. package/dist/services/connector-store.js.map +1 -0
  297. package/dist/services/deployment-identity.d.ts +22 -0
  298. package/dist/services/deployment-identity.d.ts.map +1 -0
  299. package/dist/services/deployment-identity.js +67 -0
  300. package/dist/services/deployment-identity.js.map +1 -0
  301. package/dist/services/federation-membership-store.d.ts +23 -0
  302. package/dist/services/federation-membership-store.d.ts.map +1 -0
  303. package/dist/services/federation-membership-store.js +66 -0
  304. package/dist/services/federation-membership-store.js.map +1 -0
  305. package/dist/services/federation-roster.d.ts +54 -0
  306. package/dist/services/federation-roster.d.ts.map +1 -0
  307. package/dist/services/federation-roster.js +51 -0
  308. package/dist/services/federation-roster.js.map +1 -0
  309. package/dist/services/federation-store.d.ts +76 -0
  310. package/dist/services/federation-store.d.ts.map +1 -0
  311. package/dist/services/federation-store.js +133 -0
  312. package/dist/services/federation-store.js.map +1 -0
  313. package/dist/services/grant-store.d.ts +12 -2
  314. package/dist/services/grant-store.d.ts.map +1 -1
  315. package/dist/services/grant-store.js +51 -4
  316. package/dist/services/grant-store.js.map +1 -1
  317. package/dist/services/group-creator.d.ts +10 -0
  318. package/dist/services/group-creator.d.ts.map +1 -1
  319. package/dist/services/group-creator.js +26 -1
  320. package/dist/services/group-creator.js.map +1 -1
  321. package/dist/services/groups-store.d.ts +30 -0
  322. package/dist/services/groups-store.d.ts.map +1 -1
  323. package/dist/services/groups-store.js +85 -12
  324. package/dist/services/groups-store.js.map +1 -1
  325. package/dist/services/hermes-transcript.d.ts +7 -0
  326. package/dist/services/hermes-transcript.d.ts.map +1 -0
  327. package/dist/services/hermes-transcript.js +117 -0
  328. package/dist/services/hermes-transcript.js.map +1 -0
  329. package/dist/services/invite-store.d.ts +28 -0
  330. package/dist/services/invite-store.d.ts.map +1 -0
  331. package/dist/services/invite-store.js +85 -0
  332. package/dist/services/invite-store.js.map +1 -0
  333. package/dist/services/pairing-store.d.ts +47 -0
  334. package/dist/services/pairing-store.d.ts.map +1 -0
  335. package/dist/services/pairing-store.js +132 -0
  336. package/dist/services/pairing-store.js.map +1 -0
  337. package/dist/services/project-scanner.d.ts +10 -0
  338. package/dist/services/project-scanner.d.ts.map +1 -1
  339. package/dist/services/project-scanner.js +11 -0
  340. package/dist/services/project-scanner.js.map +1 -1
  341. package/dist/services/relay-picker.d.ts +22 -0
  342. package/dist/services/relay-picker.d.ts.map +1 -0
  343. package/dist/services/relay-picker.js +62 -0
  344. package/dist/services/relay-picker.js.map +1 -0
  345. package/dist/services/send-policy.d.ts +55 -0
  346. package/dist/services/send-policy.d.ts.map +1 -0
  347. package/dist/services/send-policy.js +47 -0
  348. package/dist/services/send-policy.js.map +1 -0
  349. package/dist/services/session-store.js +1 -1
  350. package/dist/services/session-store.js.map +1 -1
  351. package/dist/services/team-roster.d.ts +38 -0
  352. package/dist/services/team-roster.d.ts.map +1 -0
  353. package/dist/services/team-roster.js +82 -0
  354. package/dist/services/team-roster.js.map +1 -0
  355. package/dist/services/team-store.d.ts +54 -0
  356. package/dist/services/team-store.d.ts.map +1 -0
  357. package/dist/services/team-store.js +156 -0
  358. package/dist/services/team-store.js.map +1 -0
  359. package/dist/services/trigger-log-store.d.ts +46 -0
  360. package/dist/services/trigger-log-store.d.ts.map +1 -0
  361. package/dist/services/trigger-log-store.js +132 -0
  362. package/dist/services/trigger-log-store.js.map +1 -0
  363. package/dist/services/trigger-types.d.ts +57 -0
  364. package/dist/services/trigger-types.d.ts.map +1 -0
  365. package/dist/services/trigger-types.js +28 -0
  366. package/dist/services/trigger-types.js.map +1 -0
  367. package/dist/services/webhook-key.d.ts +16 -0
  368. package/dist/services/webhook-key.d.ts.map +1 -0
  369. package/dist/services/webhook-key.js +123 -0
  370. package/dist/services/webhook-key.js.map +1 -0
  371. package/dist/services/webhook-lifecycle-extractors.d.ts +15 -0
  372. package/dist/services/webhook-lifecycle-extractors.d.ts.map +1 -0
  373. package/dist/services/webhook-lifecycle-extractors.js +59 -0
  374. package/dist/services/webhook-lifecycle-extractors.js.map +1 -0
  375. package/dist/services/webhook-lifecycle-store.d.ts +45 -0
  376. package/dist/services/webhook-lifecycle-store.d.ts.map +1 -0
  377. package/dist/services/webhook-lifecycle-store.js +159 -0
  378. package/dist/services/webhook-lifecycle-store.js.map +1 -0
  379. package/dist/setup/bot-config-editor.d.ts +8 -1
  380. package/dist/setup/bot-config-editor.d.ts.map +1 -1
  381. package/dist/setup/bot-config-editor.js +20 -2
  382. package/dist/setup/bot-config-editor.js.map +1 -1
  383. package/dist/setup/ensure-tmux.d.ts +0 -22
  384. package/dist/setup/ensure-tmux.d.ts.map +1 -1
  385. package/dist/setup/ensure-tmux.js +25 -1
  386. package/dist/setup/ensure-tmux.js.map +1 -1
  387. package/dist/setup/verify-permissions.d.ts.map +1 -1
  388. package/dist/setup/verify-permissions.js +15 -1
  389. package/dist/setup/verify-permissions.js.map +1 -1
  390. package/dist/skills/definitions.d.ts +2 -0
  391. package/dist/skills/definitions.d.ts.map +1 -1
  392. package/dist/skills/definitions.js +178 -12
  393. package/dist/skills/definitions.js.map +1 -1
  394. package/dist/skills/installer.d.ts +34 -0
  395. package/dist/skills/installer.d.ts.map +1 -1
  396. package/dist/skills/installer.js +119 -2
  397. package/dist/skills/installer.js.map +1 -1
  398. package/dist/types.d.ts +25 -0
  399. package/dist/types.d.ts.map +1 -1
  400. package/dist/utils/bot-routing.d.ts +50 -0
  401. package/dist/utils/bot-routing.d.ts.map +1 -1
  402. package/dist/utils/bot-routing.js +83 -0
  403. package/dist/utils/bot-routing.js.map +1 -1
  404. package/dist/utils/daemon-discovery.d.ts +11 -0
  405. package/dist/utils/daemon-discovery.d.ts.map +1 -0
  406. package/dist/utils/daemon-discovery.js +59 -0
  407. package/dist/utils/daemon-discovery.js.map +1 -0
  408. package/dist/utils/user-token.d.ts.map +1 -1
  409. package/dist/utils/user-token.js +0 -2
  410. package/dist/utils/user-token.js.map +1 -1
  411. package/dist/worker.js +198 -27
  412. package/dist/worker.js.map +1 -1
  413. package/dist/workflows/attempt-resume.d.ts.map +1 -1
  414. package/dist/workflows/attempt-resume.js +2 -2
  415. package/dist/workflows/attempt-resume.js.map +1 -1
  416. package/dist/workflows/definition.d.ts +412 -9
  417. package/dist/workflows/definition.d.ts.map +1 -1
  418. package/dist/workflows/definition.js +238 -3
  419. package/dist/workflows/definition.js.map +1 -1
  420. package/dist/workflows/events/payloads.d.ts +114 -11
  421. package/dist/workflows/events/payloads.d.ts.map +1 -1
  422. package/dist/workflows/events/payloads.js +46 -0
  423. package/dist/workflows/events/payloads.js.map +1 -1
  424. package/dist/workflows/events/replay.d.ts +21 -0
  425. package/dist/workflows/events/replay.d.ts.map +1 -1
  426. package/dist/workflows/events/replay.js +103 -0
  427. package/dist/workflows/events/replay.js.map +1 -1
  428. package/dist/workflows/events/schema.d.ts +1301 -606
  429. package/dist/workflows/events/schema.d.ts.map +1 -1
  430. package/dist/workflows/events/schema.js +37 -1
  431. package/dist/workflows/events/schema.js.map +1 -1
  432. package/dist/workflows/events/types.d.ts +5 -1
  433. package/dist/workflows/events/types.d.ts.map +1 -1
  434. package/dist/workflows/loader.d.ts +14 -0
  435. package/dist/workflows/loader.d.ts.map +1 -1
  436. package/dist/workflows/loader.js +27 -0
  437. package/dist/workflows/loader.js.map +1 -1
  438. package/dist/workflows/loop.js +58 -0
  439. package/dist/workflows/loop.js.map +1 -1
  440. package/dist/workflows/ops-projection.d.ts +58 -0
  441. package/dist/workflows/ops-projection.d.ts.map +1 -1
  442. package/dist/workflows/ops-projection.js +74 -0
  443. package/dist/workflows/ops-projection.js.map +1 -1
  444. package/dist/workflows/orchestrator.d.ts +65 -1
  445. package/dist/workflows/orchestrator.d.ts.map +1 -1
  446. package/dist/workflows/orchestrator.js +486 -74
  447. package/dist/workflows/orchestrator.js.map +1 -1
  448. package/dist/workflows/output-binding.d.ts +8 -1
  449. package/dist/workflows/output-binding.d.ts.map +1 -1
  450. package/dist/workflows/output-binding.js +75 -11
  451. package/dist/workflows/output-binding.js.map +1 -1
  452. package/dist/workflows/runtime.d.ts +1 -1
  453. package/dist/workflows/runtime.d.ts.map +1 -1
  454. package/dist/workflows/runtime.js +39 -4
  455. package/dist/workflows/runtime.js.map +1 -1
  456. package/dist/workflows/trigger-from-envelope.d.ts +13 -0
  457. package/dist/workflows/trigger-from-envelope.d.ts.map +1 -0
  458. package/dist/workflows/trigger-from-envelope.js +67 -0
  459. package/dist/workflows/trigger-from-envelope.js.map +1 -0
  460. package/dist/workflows/wait.d.ts +23 -2
  461. package/dist/workflows/wait.d.ts.map +1 -1
  462. package/dist/workflows/wait.js +39 -17
  463. package/dist/workflows/wait.js.map +1 -1
  464. package/package.json +1 -1
  465. package/dist/services/feishu-task-client.d.ts +0 -28
  466. package/dist/services/feishu-task-client.d.ts.map +0 -1
  467. package/dist/services/feishu-task-client.js +0 -123
  468. package/dist/services/feishu-task-client.js.map +0 -1
  469. package/dist/services/task-store.d.ts +0 -37
  470. package/dist/services/task-store.d.ts.map +0 -1
  471. package/dist/services/task-store.js +0 -115
  472. package/dist/services/task-store.js.map +0 -1
package/dist/i18n/en.js CHANGED
@@ -4,6 +4,7 @@ export const messages = {
4
4
  'card.btn.open_terminal': '🖥️ Open Terminal',
5
5
  'card.btn.open_writable_terminal': '🖥️ Open Writable Terminal',
6
6
  'card.btn.get_write_link': '🔑 Get Write Link',
7
+ 'card.writable_terminal_link': '🔑 Writable terminal (visible to everyone here — anyone can drive it): [{url}]({url})',
7
8
  'card.btn.restart_cli': '🔄 Restart {cliName}',
8
9
  'card.btn.disconnect': '⏏ Disconnect',
9
10
  'card.btn.close_session': '❌ Close Session',
@@ -27,11 +28,13 @@ export const messages = {
27
28
  'card.status.retry_ready': 'Ready to retry',
28
29
  'card.status.executing': 'Executing…',
29
30
  'card.status.session_closed': '🛑 Session Closed',
31
+ 'card.status.relay_frozen': '🔄 Relayed away',
30
32
  'card.status.selected': 'Selected',
31
33
  'card.status.waiting_screenshot': '_(Waiting for first screenshot…)_',
32
34
  'card.status.truncated_prefix': '… (truncated)',
33
35
  // ─── Card body text ──────────────────────────────────────────────────────
34
36
  'card.body.cli_terminated': '{cliName} process has exited.',
37
+ 'card.body.relay_frozen': 'This session was relayed elsewhere via /relay; this card is frozen as a historical snapshot. Action buttons removed to prevent accidentally affecting the now-live session in the other chat.',
35
38
  'card.body.click_resume_or_run': 'Click "Resume Session" to continue, or run in your terminal:',
36
39
  'card.body.click_resume_only': 'Click "Resume Session" to continue.',
37
40
  'card.body.cli_no_cli_resume': '_{cliName} cannot resume a specific session from the CLI; you can resume here in Lark._',
@@ -39,19 +42,21 @@ export const messages = {
39
42
  'card.body.choose_label': 'Choice:',
40
43
  'card.usage_limit.retry_at': '⚠️ {cliName} usage limit has been reached. Try again after {retryLabel}.',
41
44
  'card.usage_limit.retry_ready': '✅ {cliName} usage limit should have reset. Retry the last task, or send a new message.',
45
+ 'card.private.snapshot_note': '🔒 Private static snapshot (visible only to you, not live-updating). Tap Open Terminal for the live view.',
42
46
  // ─── Repo select card ────────────────────────────────────────────────────
43
47
  'card.repo.title': '📁 Project Repository',
44
48
  'card.repo.placeholder_switch': 'Pick a repo to switch to',
45
49
  'card.repo.current_active': 'Currently active project:',
46
50
  'card.repo.current_marker': ' ← current',
47
- 'card.repo.note': 'You can also reply `/repo <N>` to switch e.g. `/repo 1`.',
51
+ 'card.repo.note': 'You can also reply `/repo <N>` (e.g. `/repo 1`), or `/repo <path|name>` directly (e.g. `/repo botmux`, `/repo ~/projects/foo`) to skip this card.',
48
52
  // In-group authorization card
49
53
  'card.grant.title': '🔑 Access Request',
50
54
  'card.grant.body_request': 'User **{name}** is requesting to use me in this chat. <at id={owner}></at> allow them to talk to me here?',
51
55
  'card.grant.body_owner': 'Grant **{name}** permission to talk to me in this chat? (<at id={owner}></at>)',
52
56
  'card.grant.btn_chat': 'Grant talk in this chat',
57
+ 'card.grant.btn_global': 'Grant talk globally',
53
58
  'card.grant.btn_deny': 'Deny',
54
- 'card.grant.note': 'Grants "talk in this chat" only; /restart, /close, terminal write and other sensitive ops remain limited to allowedUsers (owner).',
59
+ 'card.grant.note': 'Grants talk access only (this chat or global); /restart, /close, terminal write and other sensitive ops remain limited to allowedUsers (owner).',
55
60
  'card.grant.toast_owner_only': 'Only the owner can do this',
56
61
  'card.grant.toast_expired': 'This request has expired',
57
62
  'card.grant.toast_no_repo_perm': 'No permission',
@@ -77,15 +82,53 @@ export const messages = {
77
82
  'cmd.revoke.failed': '⚠️ Revoke failed: {reason}',
78
83
  'cmd.revoke.scope_chat': 'this-chat ',
79
84
  'cmd.revoke.scope_global': 'global',
85
+ 'cmd.revoke.scope_global_talk': 'global-talk ',
80
86
  'cmd.revoke.scope_none': 'none',
81
87
  // ─── Adopt card ──────────────────────────────────────────────────────────
82
88
  'card.adopt.title': '📡 Choose a CLI session to adopt',
83
89
  'card.adopt.placeholder_select': 'Pick a CLI session',
84
90
  'card.adopt.uptime_unknown': 'unknown',
91
+ // ─── /relay picker card (pull mode) ─────────────────────────────────────
92
+ 'card.relay.title': '📋 Pick a session to relay into this chat',
93
+ 'card.relay.empty': 'No relayable sessions.\n(Picker only lists sessions you own, on this bot, in other chats.)',
94
+ 'card.relay.btn_pull': 'Pull into this chat',
95
+ 'card.relay.btn_confirm': 'Confirm relay into this chat',
96
+ 'card.relay.selected_tag': 'selected',
97
+ 'card.relay.hint_pick_first': 'Tap any session above to select it, then press Confirm to relay.',
98
+ 'card.relay.search_placeholder': '🔍 Search sessions (title / chat / path)',
99
+ 'card.relay.btn_search': 'Search',
100
+ 'card.relay.btn_prev_page': '← Prev',
101
+ 'card.relay.btn_next_page': 'Next →',
102
+ 'card.relay.page_indicator': 'Page {current} / {total}',
103
+ 'card.relay.empty_filtered': 'No sessions match "{query}". Try a different keyword.',
104
+ 'card.relay.placeholder_select': 'Pick a session to relay',
105
+ 'card.relay.type_group': 'group chat',
106
+ 'card.relay.type_topic': 'topic chat',
107
+ 'card.relay.type_p2p': 'direct message',
108
+ 'card.relay.field_type': 'Type',
109
+ 'card.relay.field_location': 'Where',
110
+ 'card.relay.field_time': 'Active',
111
+ 'card.relay.toast_adopt_not_relayable': 'That session was attached via /adopt to an external tmux — it cannot be relayed.',
112
+ 'card.relay.toast_not_found': 'Session not found or already closed.',
113
+ 'card.relay.toast_not_owner': 'Only the session owner can relay it.',
114
+ 'card.relay.toast_not_invoker': 'This menu was summoned by someone else. Run /relay yourself to get your own.',
115
+ 'card.relay.toast_worker_busy': '⚠️ The session is mid-turn. Wait for it to go idle, then relay.',
116
+ 'card.relay.toast_not_started_yet': '⚠️ The session has not picked a repo yet, so the CLI never started. Pick a repo in the source chat first.',
117
+ 'card.relay.toast_same_chat': 'That session is already in this chat — nothing to relay.',
118
+ 'card.relay.toast_failed': 'Relay failed: {error}',
119
+ 'card.relay.toast_target_has_session': 'This chat already has an active session for the bot. Please /close it first, then relay.',
120
+ 'cmd.relay.target_has_session_msg': '⚠️ This bot already has an active session "{title}" in this chat. Please /close it first, then relay a new one in.',
121
+ 'card.relay.toast_success': '✅ Relayed into this chat',
85
122
  // ─── TUI prompt card ─────────────────────────────────────────────────────
86
123
  'card.tui.input_placeholder': 'Type a custom reply…',
87
124
  // ─── Command responses ───────────────────────────────────────────────────
88
125
  'cmd.no_active_session': 'No active session in this topic.',
126
+ 'cmd.card.not_ready': 'Terminal not ready yet — the streaming card will appear once the session is up.',
127
+ 'cmd.card.private_not_ready': '🔒 Terminal not ready yet — send /card again once the session is up.',
128
+ 'cmd.card.private_not_group': '🔒 Private cards only work in regular group chats — topic groups / DMs are unsupported (Feishu limitation).',
129
+ 'cmd.card.private_no_audience': '🔒 No audience: this bot has no owner configured (allowedUsers is empty).',
130
+ 'cmd.card.private_failed': '🔒 Failed to send the private card — likely missing send permission, the bot is not in this chat, or this is a topic group.',
131
+ 'cmd.card.private_partial': '🔒 Private card sent to {sent}/{total}; some recipients failed.',
89
132
  'cmd.restart.in_progress': '🔄 Restarting {cliName}…',
90
133
  'cmd.restart.terminated': '{cliName} has been terminated; it will auto-resume on your next message.',
91
134
  'cmd.cd.usage': 'Usage: /cd <path>\nExample: /cd ~/projects/my-app',
@@ -95,6 +138,7 @@ export const messages = {
95
138
  'cmd.cd.not_a_directory': 'Path is not a directory: {path}',
96
139
  'cmd.repo.no_prior_scan': 'Run `/repo` first to see the project list.',
97
140
  'cmd.repo.index_out_of_range': 'Index out of range. Valid: 1-{max}',
141
+ 'cmd.repo.path_not_found': '❌ No such directory or project: `{arg}`\nPass an absolute path, a relative path, or a first-level project name under workingDir.',
98
142
  'cmd.repo.selected_in_pending': '✅ Selected {name}',
99
143
  'cmd.repo.switched_to': '🔄 Switched to {name}',
100
144
  'cmd.repo.warning_running': '⚠️ A session is already running. Switching repos will close it and start a new one.\nIf that\'s what you want, pick the new repo from the card below.',
@@ -102,7 +146,6 @@ export const messages = {
102
146
  'cmd.repo.working_dir_not_exist': '❌ Configured working directory does not exist or is not a directory: {dirs}\nCheck workingDir / workingDirs in ~/.botmux/bots.json, or run `botmux setup` and choose an existing directory.',
103
147
  'cmd.repo.no_git_repos': 'No git repositories found under {dirs}.',
104
148
  'cmd.skip.opened': '▶️ Session started (working dir: {cwd})',
105
- 'cmd.skip.no_pending': 'No pending repo selection.',
106
149
  'cmd.status.running': 'running',
107
150
  'cmd.status.waiting': 'idle',
108
151
  'cmd.status.fallback_no_session': 'No active session in this topic.\nDaemon active sessions: {count}\n{cliName}: v{version}',
@@ -140,7 +183,36 @@ export const messages = {
140
183
  'cmd.group.warn_transfer_failed': '⚠️ Owner transfer failed ({reason}); the bot is still the group owner. You can transfer it manually inside the new group.',
141
184
  'cmd.group.bots_invited': '🤖 Bots in the group: {bots}',
142
185
  'cmd.group.warn_bots_rejected': '⚠️ Some bots could not be added ({bots}) — they may not be in this bot\'s app scope. Please add them manually.',
186
+ 'cmd.group.warn_share_link_failed': '⚠️ Couldn\'t fetch a group share link; the link above only opens for members already in the group — the owner should invite non-members manually.',
143
187
  'cmd.group.resolve_failed': '⚠️ Could not resolve the @-mentioned bots (chat member info may be temporarily unavailable); group not created. Please retry shortly.',
188
+ // ─── /relay --create ────────────────────────────────────────────────────
189
+ 'cmd.relay.empty_group_name': 'Session Relay {ts}',
190
+ 'cmd.relay.no_session': '⚠️ /relay must be invoked from a thread with an active session.',
191
+ 'cmd.relay.target_has_session': '⚠️ This bot already has an active session "{title}" in this chat. Please /close it first, then /relay to bring a new one in.',
192
+ 'cmd.relay.no_sender': '⚠️ Could not resolve sender open_id; /relay cancelled.',
193
+ 'cmd.relay.no_mentions': '⚠️ /relay --create requires at least one @-mentioned bot as a collaborator in the new group.',
194
+ 'cmd.relay.not_owner': '⚠️ Only the original session owner can /relay --create this session to a new group.',
195
+ 'cmd.relay.adopt_not_relayable': '⚠️ This session was attached via /adopt to an external tmux. The CLI runs on your machine and botmux does not control its tmux lifecycle, so it cannot be relayed.',
196
+ 'cmd.relay.not_started_yet': '⚠️ The session has not picked a repo and the CLI has never started — nothing to relay yet. Pick a repo in this session first.',
197
+ 'cmd.relay.worker_busy': '⚠️ The session is mid-turn (working). Wait for the current turn to finish (idle), then try /relay again.',
198
+ 'cmd.relay.picker_p2p_unsupported': '⚠️ Relay is not supported in direct (p2p) chats. Use /relay in a regular group chat.',
199
+ 'cmd.relay.picker_topic_unsupported': '⚠️ Relay is not supported in topic chats (they route per thread, leaving a relayed session with no thread anchor). Use /relay in a regular group chat.',
200
+ 'cmd.relay.resolve_failed': '⚠️ Could not resolve the @-mentioned bots; /relay cancelled. Please retry shortly.',
201
+ 'cmd.relay.m1_announce': '📋 Relayed from "{sourceChat}".\n⚠️ Lark message history stays in the source chat; AI memory has been carried over.\n@ the corresponding bot to continue.',
202
+ 'cmd.relay.m1_final_all_ok': '🚀 Sessions relayed into this chat\n📋 Source: {sourceChat}\n✅ Ready: {successBots}\n⚠️ Lark message history stays in the source chat; AI memory has been carried over. @ the corresponding bot to continue.',
203
+ 'cmd.relay.m1_final_partial': '🚀 Sessions relayed into this chat\n📋 Source: {sourceChat}\n✅ Ready: {successBots}\n⚠️ Failed to migrate: {failedBots}\n→ Run /relay in this chat to pull those bots\' sessions from the source manually.\n⚠️ Lark message history stays in the source chat; AI memory has been carried over.',
204
+ 'cmd.relay.m1_final_all_fresh': '🚀 New group created and bots invited.\n📋 Source: {sourceChat}\nNo source session to migrate — @ any bot to start a fresh conversation.',
205
+ 'cmd.relay.created': '✅ Created group "{name}" and relayed sessions\n👉 {link}\n\n{report}',
206
+ 'cmd.relay.report_leader_ok': '• {bot} (current session) relayed',
207
+ 'cmd.relay.report_leader_no_session': '• {bot} (current session) — skipped (no active session)',
208
+ 'cmd.relay.report_leader_failed': '• {bot} (current session) — relay failed: {error}',
209
+ 'cmd.relay.report_peer_ok': '• {bot} relayed',
210
+ 'cmd.relay.report_peer_no_session': '• {bot} — skipped (no session in source thread)',
211
+ 'cmd.relay.report_peer_not_owner': '• {bot} — skipped (session not yours)',
212
+ 'cmd.relay.report_peer_offline': '• {bot} — skipped (daemon offline)',
213
+ 'cmd.relay.report_peer_busy': '• {bot} — skipped (session busy, timed out)',
214
+ 'cmd.relay.report_peer_failed': '• {bot} — relay failed: {error}',
215
+ 'cmd.relay.failed': '⚠️ /relay --create failed: {error}',
144
216
  // ─── /schedule ───────────────────────────────────────────────────────────
145
217
  'schedule.empty_with_examples': 'No scheduled tasks yet.\n\nExamples:\n/schedule daily 17:50 summarize today\'s AI news\n/schedule weekdays 9:00 check service status\n/schedule mondays 10:00 generate weekly report',
146
218
  'schedule.list_header': 'Scheduled tasks ({count}):',
@@ -158,9 +230,11 @@ export const messages = {
158
230
  'help.close': '/close - Close current session, kill {cliName}',
159
231
  'help.restart': '/restart - Restart {cliName} (keep session)',
160
232
  'help.cd': '/cd <path> - Change working dir and restart {cliName}',
161
- 'help.repo_list': '/repo - Show project list (interactive dropdown + text list)',
233
+ 'help.repo_list': '/repo - Pending selection: start in default dir; mid-session: show project picker',
162
234
  'help.repo_n': '/repo <N> - Switch to project #N',
235
+ 'help.repo_path': '/repo <path|name> - Use a path or a project name under workingDir, skipping the card',
163
236
  'help.status': '/status - Show current session status (incl. terminal URL)',
237
+ 'help.card': '/card - Manually post the streaming card for this session (summons it even when streaming is off, and resumes live updates; with private-card mode on, sends a static snapshot visible only to authorized users instead)',
164
238
  'help.heading_passthrough': '🔀 Passthrough to {cliName} (forwarded verbatim to its built-in slash commands):',
165
239
  'help.heading_schedule': '⏰ Scheduled tasks:',
166
240
  'help.schedule_create': '/schedule daily 17:50 summarize AI news - create a scheduled task (natural language)',
@@ -206,7 +280,8 @@ export const messages = {
206
280
  'ai.identity.mention_intro': '**Hard fact about cross-bot collaboration**: in a Lark topic group, other bots **do NOT receive** the messages you send via `botmux send` by default —',
207
281
  'ai.identity.mention_must': 'To hand work off to another bot, you **MUST** explicitly pass `--mention <other-bot-open-id>`. Without `--mention`, the other bot is not triggered at all.',
208
282
  'ai.identity.mention_partners': '- Collaborator `open_id`s are listed in the `<available_bots>` block attached to every user message. You can also run `botmux bots list`.',
209
- 'ai.identity.mention_usage': '- Usage: `botmux send --mention ou_xxx "message"` (repeat `--mention` for multiple bots). When you write `@name` in the body, botmux also auto-injects `--mention`, but passing it explicitly is safer.',
283
+ 'ai.identity.mention_usage': '- Usage: `botmux send --mention ou_xxx "message"` (repeat `--mention` for multiple bots). `--mention-back` @s back whoever (person or bot) triggered this turn open_id is pulled from the session, no need to type it.',
284
+ 'ai.identity.mention_gate': '- **@ hard-gate**: every `botmux send` MUST explicitly pick one or it errors out — `--mention` (name someone) / `--mention-back` (@ the triggerer) / `--no-mention` (none). Choose by message VALUE: a substantive conclusion the other party should read/confirm/decide on → --mention-back (or --mention); pure record / low-priority progress / short ack → --no-mention; a contentless "got it" is better not sent at all. Do not let --no-mention become the default, and do not @ people for nothing.',
210
285
  'ai.identity.mention_when_to': '- When to `--mention`: the user explicitly asks for the handoff, you\'re passing a sub-task to the other bot, or you need them to give the final result / take an independent action.',
211
286
  'ai.identity.mention_when_not': '- When NOT to `--mention`: pure status updates / acknowledgements / thanks — fold them into the next message that has real content, to avoid mutual ping-spam.',
212
287
  // ─── AI hints (non-Claude CLIs: BOTMUX_SHELL_HINTS) ──────────────────────
@@ -217,6 +292,7 @@ export const messages = {
217
292
  'ai.shell.heredoc_example': "Correct multi-line example:\n```bash\nbotmux send <<'EOF'\nline 1\nline 2\nEOF\n```",
218
293
  'ai.shell.helpers': 'Helpers: `botmux history` (read this session\'s history — topic-scoped in topic groups, group-wide in normal groups), `botmux quoted <message_id>` (fetch a quoted message — only use it when the prompt header shows `[user quoted message ...]`), `botmux bots list` (list other bots in the group).',
219
294
  'ai.shell.when_to_send': 'When to send: key conclusions, plans (wait for user approval before acting), final results, progress updates. A bare `print`/`echo` does NOT count as a reply.',
295
+ 'ai.shell.mention_gate': '@ decision (mandatory): every `botmux send` MUST explicitly pick one or it errors — `--mention <open_id:name>` (name a person/bot; REQUIRED to hand work to another bot) / `--mention-back` (@ the sender of the message you are replying to) / `--no-mention` (none). Choose by VALUE: substantive conclusion the other party should read/confirm/decide → --mention-back; pure record / low-priority / short ack → --no-mention; a contentless "got it" is better not sent. Do not default to --no-mention, and do not @ people for nothing.',
220
296
  // ─── AI prompt blocks (session-manager) ──────────────────────────────────
221
297
  'ai.attach.hint': 'Read these with the Read tool. The index matches the [image N] / [file N] placeholders in the body.',
222
298
  'ai.identity.short_routing': 'Reminder: handing work off to another bot REQUIRES `botmux send --mention <their open_id>` — without it, the other bot is not triggered.',
@@ -226,15 +302,32 @@ export const messages = {
226
302
  'ai.bridge.mentions_label': '[@Mentions]',
227
303
  'schedule.title_prefix': '[Scheduled]',
228
304
  // ─── Role command ─────────────────────────────────────────────────────────
229
- 'role.current': '📋 Current role for this chat:',
305
+ 'role.current': '📋 Effective role:',
230
306
  'role.byte_count': '{bytes} / {max} bytes',
231
- 'role.empty': 'No role configured for this chat.\n\nUsage:\n/role set <Markdown content> — Set role\n/role — View current role\n/role deleteDelete role',
232
- 'role.saved_via_cmd': '✅ Role updated ({bytes} / {max} bytes). Takes effect on next message.',
233
- 'role.deleted_via_cmd': '✅ Role deleted.',
307
+ 'role.empty': 'No effective role (neither team-level nor chat-level set).\n\nUsage:\n/role set <Markdown> — Set chat role (overrides team)\n/role team set <Markdown> Set team-level role (this bot, cross-chat default)\n/role cap set <one-liner> Set capability label (shown in roster)',
308
+ 'role.saved_via_cmd': '✅ Chat role updated ({bytes} / {max} bytes). Takes effect on next session.',
309
+ 'role.deleted_via_cmd': '✅ Chat role deleted.',
234
310
  'role.nothing_to_delete': 'No role configured for this chat.',
235
311
  'role.set_empty': 'Role content cannot be empty. Usage: /role set <Markdown content>',
236
312
  'role.no_chat': 'Cannot determine chat info. Please retry.',
237
- 'role.help': '/role usage:\n• /role — View current role\n• /role set <Markdown content> — Set role\n• /role delete — Delete role',
313
+ 'role.src_chat': '(source: chat override)',
314
+ 'role.src_team': '(source: team default)',
315
+ 'role.team_current': '📋 Team-level role (this bot, cross-chat default):',
316
+ 'role.team_empty': 'No team-level role set.\nUsage: /role team set <Markdown> — set; /role team delete — delete',
317
+ 'role.team_saved': '✅ Team-level role updated ({bytes} / {max} bytes). Chats without an override pick it up on next session.',
318
+ 'role.team_deleted': '✅ Team-level role deleted.',
319
+ 'role.team_nothing': 'No team-level role to delete.',
320
+ 'role.cap_current': '🏷️ Capability label: {cap}',
321
+ 'role.cap_empty': 'No capability label set.\nUsage: /role cap set <one-line capability>',
322
+ 'role.cap_saved': '✅ Capability label updated: {cap}',
323
+ 'role.cap_cleared': '✅ Capability label cleared.',
324
+ 'role.cap_set_empty': 'Capability label cannot be empty. Usage: /role cap set <description>',
325
+ 'role.help': '/role usage:\n• /role — View effective role\n• /role set <Markdown> — Set chat role (overrides team)\n• /role delete — Delete chat role\n• /role team [set <Markdown>|delete] — Team-level role (cross-chat default)\n• /role cap [set <one-liner>|clear] — Capability label (shown in roster)',
326
+ 'pair.usage': 'Usage: /pair <code> (the code is shown when you click "Log in" on the team platform web UI).',
327
+ 'pair.ok': '✅ Login paired. Return to the web page to continue.',
328
+ 'pair.expired': 'Pairing code expired. Start login again on the web page.',
329
+ 'pair.already': 'That pairing code was already used. Start login again on the web page.',
330
+ 'pair.not_found': 'Invalid pairing code. Check it and retry (expired codes need a new login).',
238
331
  // ─── Card handler responses ──────────────────────────────────────────────
239
332
  'card.action.adopt_no_restart': '⚠️ Restart is disabled in adopt mode (it would not touch your tmux pane / CLI process anyway).',
240
333
  'card.action.restarted': '🔄 Restarted {cliName}',
@@ -269,7 +362,7 @@ export const messages = {
269
362
  'setup.lark_perm_chat': ' - im:chat (group info)',
270
363
  'setup.lark_perm_user_base': ' - contact:user.base:readonly (user info)',
271
364
  'setup.lark_enable_events': 'Enable Event Subscription (WebSocket mode):',
272
- 'setup.supported_clis': 'Supported CLIs: 1) claude-code 2) aiden 3) coco 4) codex 5) gemini 6) opencode',
365
+ 'setup.supported_clis': 'Supported CLIs: 1) claude-code 2) aiden 3) coco 4) codex 5) cursor 6) gemini 7) opencode 8) antigravity 9) mtr 10) hermes 11) codex-app 12) mira',
273
366
  'setup.prompt_cli_choice': 'CLI adapter [1]: ',
274
367
  'setup.prompt_working_dir': 'Default working directory [~]: ',
275
368
  'setup.prompt_allowed_users': 'Allowed users (emails or open_ids, comma-separated; empty = no restriction): ',
@@ -1 +1 @@
1
- {"version":3,"file":"en.js","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"en.js","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"zh.d.ts","sourceRoot":"","sources":["../../src/i18n/zh.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA+U3C,CAAC"}
1
+ {"version":3,"file":"zh.d.ts","sourceRoot":"","sources":["../../src/i18n/zh.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA8a3C,CAAC"}
package/dist/i18n/zh.js CHANGED
@@ -7,6 +7,7 @@ export const messages = {
7
7
  'card.btn.open_terminal': '🖥️ 打开终端',
8
8
  'card.btn.open_writable_terminal': '🖥️ 打开可操作终端',
9
9
  'card.btn.get_write_link': '🔑 获取操作链接',
10
+ 'card.writable_terminal_link': '🔑 可操作终端(群内可见,任何人可直接操控):[{url}]({url})',
10
11
  'card.btn.restart_cli': '🔄 重启 {cliName}',
11
12
  'card.btn.disconnect': '⏏ 断开',
12
13
  'card.btn.close_session': '❌ 关闭会话',
@@ -30,11 +31,13 @@ export const messages = {
30
31
  'card.status.retry_ready': '可重试',
31
32
  'card.status.executing': '正在执行…',
32
33
  'card.status.session_closed': '🛑 会话已关闭',
34
+ 'card.status.relay_frozen': '🔄 会话已搬迁',
33
35
  'card.status.selected': '已选择',
34
36
  'card.status.waiting_screenshot': '_(等待第一张截图…)_',
35
37
  'card.status.truncated_prefix': '… (已截断)',
36
38
  // ─── Card body text ──────────────────────────────────────────────────────
37
39
  'card.body.cli_terminated': '{cliName} 进程已终止。',
40
+ 'card.body.relay_frozen': '本会话已通过 /relay 搬到其他群继续,本卡片冻结作为存档;按钮已移除,避免误操作影响新群里活着的会话。',
38
41
  'card.body.click_resume_or_run': '点击「恢复会话」继续,或在终端执行:',
39
42
  'card.body.click_resume_only': '点击「恢复会话」继续。',
40
43
  'card.body.cli_no_cli_resume': '{cliName} 不支持从命令行精确恢复指定会话,可在飞书内 resume。',
@@ -42,19 +45,21 @@ export const messages = {
42
45
  'card.body.choose_label': '选择:',
43
46
  'card.usage_limit.retry_at': '⚠️ 当前已达到 {cliName} 使用限额。请在 {retryLabel} 后再试。',
44
47
  'card.usage_limit.retry_ready': '✅ {cliName} 限额预计已刷新。你可以重发上一条任务,或直接发送新消息。',
48
+ 'card.private.snapshot_note': '🔒 仅你可见的静态快照(不会实时刷新)。点「打开终端」查看实时画面。',
45
49
  // ─── Repo select card ────────────────────────────────────────────────────
46
50
  'card.repo.title': '📁 项目仓库管理',
47
51
  'card.repo.placeholder_switch': '选择仓库并切换',
48
52
  'card.repo.current_active': '当前活跃项目:',
49
53
  'card.repo.current_marker': ' ← 当前',
50
- 'card.repo.note': '也可以回复 `/repo <编号>` 切换,例如:`/repo 1`',
54
+ 'card.repo.note': '也可以回复 `/repo <编号>` 切换(如 `/repo 1`),或直接 `/repo <路径|项目名>`(如 `/repo botmux`、`/repo ~/projects/foo`)跳过本卡片',
51
55
  // 群内授权卡片
52
56
  'card.grant.title': '🔑 使用授权',
53
57
  'card.grant.body_request': '用户 **{name}** 申请在本群使用我。<at id={owner}></at> 是否允许 ta 在本群与我对话?',
54
58
  'card.grant.body_owner': '是否授权 **{name}** 在本群与我对话?(<at id={owner}></at>)',
55
59
  'card.grant.btn_chat': '授权本群对话',
60
+ 'card.grant.btn_global': '全局授权对话',
56
61
  'card.grant.btn_deny': '拒绝',
57
- 'card.grant.note': '仅授予「在本群与我对话」;/restart、/close、终端写入等敏感操作仍仅限 allowedUsers(owner)。',
62
+ 'card.grant.note': '仅授予对话权(本群或全局);/restart、/close、终端写入等敏感操作仍仅限 allowedUsers(owner)。',
58
63
  'card.grant.toast_owner_only': '仅 owner 可操作',
59
64
  'card.grant.toast_expired': '该授权请求已失效',
60
65
  'card.grant.toast_no_repo_perm': '无操作权限',
@@ -80,15 +85,53 @@ export const messages = {
80
85
  'cmd.revoke.failed': '⚠️ 撤销失败:{reason}',
81
86
  'cmd.revoke.scope_chat': '本群 ',
82
87
  'cmd.revoke.scope_global': '全局',
88
+ 'cmd.revoke.scope_global_talk': '全局对话 ',
83
89
  'cmd.revoke.scope_none': '无',
84
90
  // ─── Adopt card ──────────────────────────────────────────────────────────
85
91
  'card.adopt.title': '📡 选择要接入的 CLI 会话',
86
92
  'card.adopt.placeholder_select': '选择 CLI 会话',
87
93
  'card.adopt.uptime_unknown': '未知',
94
+ // ─── /relay picker card (pull mode) ─────────────────────────────────────
95
+ 'card.relay.title': '📋 选择要接力到本群的会话',
96
+ 'card.relay.empty': '当前没有可接力的会话。\n(picker 只列你作为 owner、同一机器人在其他群里的活跃会话。)',
97
+ 'card.relay.btn_pull': '接力到本群',
98
+ 'card.relay.btn_confirm': '确认接力到本群',
99
+ 'card.relay.selected_tag': '已选中',
100
+ 'card.relay.hint_pick_first': '点击上方任意会话以选中,然后再点确认按钮触发接力。',
101
+ 'card.relay.search_placeholder': '🔍 搜索会话(标题/群名/路径)',
102
+ 'card.relay.btn_search': '搜索',
103
+ 'card.relay.btn_prev_page': '← 上一页',
104
+ 'card.relay.btn_next_page': '下一页 →',
105
+ 'card.relay.page_indicator': '第 {current} / {total} 页',
106
+ 'card.relay.empty_filtered': '没有匹配「{query}」的会话,请换个关键词。',
107
+ 'card.relay.placeholder_select': '选择要接力的会话',
108
+ 'card.relay.type_group': '普通群',
109
+ 'card.relay.type_topic': '话题群',
110
+ 'card.relay.type_p2p': '单聊',
111
+ 'card.relay.field_type': '类型',
112
+ 'card.relay.field_location': '位置',
113
+ 'card.relay.field_time': '活跃',
114
+ 'card.relay.toast_adopt_not_relayable': '该会话是 /adopt 接入的外部 tmux,无法接力。',
115
+ 'card.relay.toast_not_found': '会话已不存在或已关闭。',
116
+ 'card.relay.toast_not_owner': '只有会话发起人能接力它。',
117
+ 'card.relay.toast_not_invoker': '这张菜单是别人召唤的,请自己发 /relay 召唤一张。',
118
+ 'card.relay.toast_worker_busy': '⚠️ 会话当前正在处理中,请等它空闲后再接力。',
119
+ 'card.relay.toast_not_started_yet': '⚠️ 会话还没选仓库、CLI 没起来,无法接力。请先回原会话把仓库选了。',
120
+ 'card.relay.toast_same_chat': '该会话已在本群里,无需接力。',
121
+ 'card.relay.toast_failed': '接力失败:{error}',
122
+ 'card.relay.toast_target_has_session': '本群已有该机器人的活跃会话,请先 /close 它再接力',
123
+ 'cmd.relay.target_has_session_msg': '⚠️ 本群已有该机器人的活跃会话「{title}」。请先用 /close 关掉那个会话,再接力新的过来。',
124
+ 'card.relay.toast_success': '✅ 已接力到本群',
88
125
  // ─── TUI prompt card ─────────────────────────────────────────────────────
89
126
  'card.tui.input_placeholder': '输入自定义回复…',
90
127
  // ─── Command responses ───────────────────────────────────────────────────
91
128
  'cmd.no_active_session': '当前话题没有活跃的会话。',
129
+ 'cmd.card.not_ready': '终端尚未就绪,等会话起好后流式卡片会自动出现。',
130
+ 'cmd.card.private_not_ready': '🔒 终端尚未就绪,等会话起好后再发一次 /card。',
131
+ 'cmd.card.private_not_group': '🔒 私密卡片仅支持普通群聊,话题群 / 单聊无法发送(飞书限制)。',
132
+ 'cmd.card.private_no_audience': '🔒 没有可见对象:当前 bot 未配置 owner(allowedUsers 为空)。',
133
+ 'cmd.card.private_failed': '🔒 私密卡片发送失败 —— 可能是缺少消息发送权限、bot 不在群内,或当前为话题群。',
134
+ 'cmd.card.private_partial': '🔒 私密卡片已发送 {sent}/{total},部分接收人发送失败。',
92
135
  'cmd.restart.in_progress': '🔄 正在重启 {cliName}...',
93
136
  'cmd.restart.terminated': '{cliName} 进程已终止,下次发消息时将自动恢复。',
94
137
  'cmd.cd.usage': '用法:/cd <path>\n例如:/cd ~/projects/my-app',
@@ -98,6 +141,7 @@ export const messages = {
98
141
  'cmd.cd.not_a_directory': '路径不是目录:{path}',
99
142
  'cmd.repo.no_prior_scan': '请先执行 /repo 查看项目列表。',
100
143
  'cmd.repo.index_out_of_range': '序号超出范围,有效范围:1-{max}',
144
+ 'cmd.repo.path_not_found': '❌ 找不到目录或项目:`{arg}`\n请传入绝对路径、相对路径,或 workingDir 下的一级项目名。',
101
145
  'cmd.repo.selected_in_pending': '✅ 已选择 {name}',
102
146
  'cmd.repo.switched_to': '🔄 已切换到 {name}',
103
147
  'cmd.repo.warning_running': '⚠️ 当前会话已在运行中,切换仓库将关闭当前会话并创建新会话。\n如需切换,请在下方卡片中选择新仓库。',
@@ -105,7 +149,6 @@ export const messages = {
105
149
  'cmd.repo.working_dir_not_exist': '❌ 配置的工作目录不存在或不是目录:{dirs}\n请检查 ~/.botmux/bots.json 中的 workingDir / workingDirs,或重新运行 `botmux setup` 修改为已存在的目录。',
106
150
  'cmd.repo.no_git_repos': '在 {dirs} 下未找到 git 仓库。',
107
151
  'cmd.skip.opened': '▶️ 已直接开启会话(工作目录:{cwd})',
108
- 'cmd.skip.no_pending': '当前没有待选择的仓库。',
109
152
  'cmd.status.running': '运行中',
110
153
  'cmd.status.waiting': '等待中',
111
154
  'cmd.status.fallback_no_session': '当前话题没有活跃的会话。\nDaemon active sessions: {count}\n{cliName}: v{version}',
@@ -143,7 +186,36 @@ export const messages = {
143
186
  'cmd.group.warn_transfer_failed': '⚠️ 转让群主失败({reason}),当前机器人仍是群主。可在新群里手动转让。',
144
187
  'cmd.group.bots_invited': '🤖 群内机器人:{bots}',
145
188
  'cmd.group.warn_bots_rejected': '⚠️ 部分机器人未能加入({bots}),可能不在当前机器人的 app scope 下。请到群里手动添加。',
189
+ 'cmd.group.warn_share_link_failed': '⚠️ 群分享链接获取失败,上面的链接仅群内成员可点开,非成员请群主手动邀请。',
146
190
  'cmd.group.resolve_failed': '⚠️ 无法解析被 @ 的机器人(可能群成员信息暂时拿不到),未建群。请稍后重试。',
191
+ // ─── /relay --create ────────────────────────────────────────────────────
192
+ 'cmd.relay.empty_group_name': '会话接力 {ts}',
193
+ 'cmd.relay.no_session': '⚠️ /relay 必须在已有会话的话题里发起。',
194
+ 'cmd.relay.target_has_session': '⚠️ 本群里这个机器人已经有一个活跃会话「{title}」。请先用 /close 关掉那个会话,再 /relay 接力新的过来。',
195
+ 'cmd.relay.no_sender': '⚠️ 无法获取发起人 open_id,/relay 取消。',
196
+ 'cmd.relay.no_mentions': '⚠️ /relay --create 必须 @ 至少一个机器人作为新群的协作伙伴。',
197
+ 'cmd.relay.not_owner': '⚠️ 只有会话发起人能用 /relay --create 把会话搬到新群。',
198
+ 'cmd.relay.adopt_not_relayable': '⚠️ 该会话是 /adopt 接入的外部 tmux 进程,CLI 在你电脑里跑,botmux 控不了 tmux 生命周期,无法接力。',
199
+ 'cmd.relay.not_started_yet': '⚠️ 会话还没选仓库、CLI 没起来,无法接力。请先在本会话里选仓库把 CLI 起起来。',
200
+ 'cmd.relay.worker_busy': '⚠️ 会话正在处理中(mid-turn),无法接力。请等当前回合结束(idle)后再发 /relay。',
201
+ 'cmd.relay.picker_p2p_unsupported': '⚠️ 单聊不支持接力会话。请在普通群里使用 /relay。',
202
+ 'cmd.relay.picker_topic_unsupported': '⚠️ 话题群不支持接力会话(话题群按话题路由,搬过来的会话没有 thread 锚点)。请在普通群里使用 /relay。',
203
+ 'cmd.relay.resolve_failed': '⚠️ 无法解析被 @ 的机器人,/relay 取消。请稍后重试。',
204
+ 'cmd.relay.m1_announce': '📋 已从「{sourceChat}」接力会话过来。\n⚠️ 飞书消息历史留在源群,AI 记忆已接续。\n@ 对应机器人继续对话即可。',
205
+ 'cmd.relay.m1_final_all_ok': '🚀 会话已接力到本群\n📋 来源:{sourceChat}\n✅ 已就绪:{successBots}\n⚠️ 飞书消息历史留在源群,AI 记忆已接续。@ 对应机器人继续对话。',
206
+ 'cmd.relay.m1_final_partial': '🚀 会话已接力到本群\n📋 来源:{sourceChat}\n✅ 已就绪:{successBots}\n⚠️ 未能迁移:{failedBots}\n→ 请在本群发 /relay,从菜单里把上述 bot 在源群的会话拉过来\n⚠️ 飞书消息历史留在源群,AI 记忆已接续。',
207
+ 'cmd.relay.m1_final_all_fresh': '🚀 新群已建好,机器人都已邀请。\n📋 来源:{sourceChat}\n本次没有可迁移的源会话——@ 任意机器人开始新对话即可。',
208
+ 'cmd.relay.created': '✅ 已创建群「{name}」并接力会话\n👉 {link}\n\n{report}',
209
+ 'cmd.relay.report_leader_ok': '• {bot}(当前会话)已接力',
210
+ 'cmd.relay.report_leader_no_session': '• {bot}(当前会话)— 跳过(无活跃会话)',
211
+ 'cmd.relay.report_leader_failed': '• {bot}(当前会话)— 接力失败:{error}',
212
+ 'cmd.relay.report_peer_ok': '• {bot} 已接力',
213
+ 'cmd.relay.report_peer_no_session': '• {bot} — 跳过(在源话题无会话)',
214
+ 'cmd.relay.report_peer_not_owner': '• {bot} — 跳过(会话不属于你)',
215
+ 'cmd.relay.report_peer_offline': '• {bot} — 跳过(守护进程离线)',
216
+ 'cmd.relay.report_peer_busy': '• {bot} — 跳过(会话繁忙,超时)',
217
+ 'cmd.relay.report_peer_failed': '• {bot} — 接力失败:{error}',
218
+ 'cmd.relay.failed': '⚠️ /relay --create 失败:{error}',
147
219
  // ─── /schedule ───────────────────────────────────────────────────────────
148
220
  'schedule.empty_with_examples': '暂无定时任务。\n\n用法示例:\n/schedule 每日17:50 帮我看看今天AI圈有什么新闻\n/schedule 工作日每天9:00 检查服务状态\n/schedule 每周一10:00 生成周报',
149
221
  'schedule.list_header': '定时任务列表 ({count}):',
@@ -161,9 +233,11 @@ export const messages = {
161
233
  'help.close': '/close - 关闭当前会话,终止 {cliName} 进程',
162
234
  'help.restart': '/restart - 重启 {cliName} 进程(保留 session)',
163
235
  'help.cd': '/cd <path> - 切换工作目录并重启 {cliName} 进程',
164
- 'help.repo_list': '/repo - 查看项目列表(交互式下拉 + 文本列表)',
236
+ 'help.repo_list': '/repo - 仓库待选时直接在默认目录开会话;会话中则弹项目选择卡片',
165
237
  'help.repo_n': '/repo <N> - 切换到第 N 个项目',
238
+ 'help.repo_path': '/repo <路径|项目名> - 直接指定路径或 workingDir 下的项目名,跳过选择卡片',
166
239
  'help.status': '/status - 查看当前会话状态(含终端链接)',
240
+ 'help.card': '/card - 手动弹出当前会话的流式卡片(关流式时也能临时召唤,并恢复实时刷新;开了私密卡片则改发仅授权人可见的静态快照)',
167
241
  'help.heading_passthrough': '🔀 透传给 {cliName}(字面送达,供其内置 slash 命令处理):',
168
242
  'help.heading_schedule': '⏰ 定时任务:',
169
243
  'help.schedule_create': '/schedule 每日17:50 帮我看AI新闻 - 创建定时任务(自然语言)',
@@ -209,7 +283,8 @@ export const messages = {
209
283
  'ai.identity.mention_intro': '**和别的机器人协作的硬性物理事实**:飞书话题群里其他 bot **默认收不到** 你 `botmux send` 出去的消息——',
210
284
  'ai.identity.mention_must': '要让某个 bot 接力干活,**必须** 显式 `--mention <对方 bot 的 open_id>`,不 --mention 对方 bot 完全不会被触发。',
211
285
  'ai.identity.mention_partners': '- 协作伙伴的 open_id 会列在每条用户消息附带的 `<available_bots>` 块里,也可以 `botmux bots list` 查',
212
- 'ai.identity.mention_usage': '- 用法:`botmux send --mention ou_xxx "消息内容"`(多个 bot 重复 `--mention`);正文里写 `@对方名字` botmux 也会自动补上 --mention,但显式传更稳',
286
+ 'ai.identity.mention_usage': '- 用法:`botmux send --mention ou_xxx "消息内容"`(多个 bot 重复 `--mention`);`--mention-back` 可一键 @ 回触发你的那个人/ bot(open_id 自动取,无需手填)',
287
+ 'ai.identity.mention_gate': '- **@ 硬门**:每条 `botmux send` 必须显式三选一否则报错不发——`--mention`(点名)/ `--mention-back`(@回触发者)/ `--no-mention`(不@)。按内容价值选:有实质结论、要对方继续看/确认/决策 → --mention-back(或 --mention 点名);纯记录/低优先级进度/简短确认 → --no-mention;没信息量的"收到"不如不发。别把 --no-mention 当默认,也别无意义 @ 打扰',
213
288
  'ai.identity.mention_when_to': '- 该 --mention 的场景:用户明确要求让对方接力、把任务的某段交给对方、需要对方给最终结论或做独立操作',
214
289
  'ai.identity.mention_when_not': '- 不必 --mention 的场景:纯状态更新/确认/感谢——尽量合并到下一次有内容的消息里再带上,避免互相 ping 触发空转',
215
290
  // ─── AI hints (non-Claude CLIs: BOTMUX_SHELL_HINTS) ──────────────────────
@@ -220,6 +295,7 @@ export const messages = {
220
295
  'ai.shell.heredoc_example': "正确多行示例:\n```bash\nbotmux send <<'EOF'\n第一行\n第二行\nEOF\n```",
221
296
  'ai.shell.helpers': '辅助命令:`botmux history`(读此会话历史,话题群拉话题内、普通群拉整群)、`botmux quoted <message_id>`(按需读取被引用的消息,仅在 prompt 头部出现 `[用户引用了消息 ...]` 提示时使用)、`botmux bots list`(查群内其他机器人)。',
222
297
  'ai.shell.when_to_send': '发送时机:关键结论、方案(等用户确认再动手)、最终结果、进度更新。只 print/echo 不算回复。',
298
+ 'ai.shell.mention_gate': '@ 决策(硬性):每条 `botmux send` 必须显式三选一否则报错——`--mention <open_id:名字>`(点名某人/bot,让别的 bot 接力必须用它)/ `--mention-back`(@回触发你的那条消息的发送者)/ `--no-mention`(不@)。按内容价值选:有实质结论要对方看/确认/决策→--mention-back;纯记录/低优先级/简短确认→--no-mention;没信息量的"收到"不如不发。别把 --no-mention 当默认,也别无意义 @ 打扰。',
223
299
  // ─── AI prompt blocks (session-manager) ──────────────────────────────────
224
300
  'ai.attach.hint': '使用 Read 工具查看,序号与正文中的 [图片 N] / [文件 N] 占位符对应',
225
301
  'ai.identity.short_routing': '提醒:让别的 bot 接力干活必须 `botmux send --mention <对方 open_id>`,否则对方 bot 不会被触发。',
@@ -229,15 +305,32 @@ export const messages = {
229
305
  'ai.bridge.mentions_label': '[@提及]',
230
306
  'schedule.title_prefix': '[定时]',
231
307
  // ─── Role command ─────────────────────────────────────────────────────────
232
- 'role.current': '📋 当前群的 Role 配置:',
308
+ 'role.current': '📋 当前生效的 Role',
233
309
  'role.byte_count': '{bytes} / {max} 字节',
234
- 'role.empty': '当前群尚未配置 Role。\n\n用法:\n/role set <Markdown 内容> 设置角色\n/role — 查看当前角色\n/role delete删除角色',
235
- 'role.saved_via_cmd': '✅ Role 已更新({bytes} / {max} 字节)。下次消息生效。',
236
- 'role.deleted_via_cmd': '✅ Role 已删除。',
310
+ 'role.empty': '当前没有生效的 Role(团队级与本群均未配置)。\n\n用法:\n/role set <Markdown>设置本群 Role(覆盖团队级)\n/role team set <Markdown> 设置团队级 Role(本机器人跨群默认)\n/role cap set <一句话> 设置能力标签(花名册展示)',
311
+ 'role.saved_via_cmd': '✅ 本群 Role 已更新({bytes} / {max} 字节)。新会话生效。',
312
+ 'role.deleted_via_cmd': '✅ 本群 Role 已删除。',
237
313
  'role.nothing_to_delete': '当前群没有 Role 配置,无需删除。',
238
314
  'role.set_empty': 'Role 内容不能为空。用法:/role set <Markdown 内容>',
239
315
  'role.no_chat': '无法获取群信息,请稍后重试。',
240
- 'role.help': '/role 用法:\n• /role — 查看当前角色\n• /role set <Markdown 内容> — 设置角色\n• /role delete — 删除角色',
316
+ 'role.src_chat': '(来源:本群覆盖)',
317
+ 'role.src_team': '(来源:团队级默认)',
318
+ 'role.team_current': '📋 团队级 Role(本机器人,跨群默认):',
319
+ 'role.team_empty': '尚未设置团队级 Role。\n用法:/role team set <Markdown> — 设置;/role team delete — 删除',
320
+ 'role.team_saved': '✅ 团队级 Role 已更新({bytes} / {max} 字节)。未单独覆盖的群在新会话生效。',
321
+ 'role.team_deleted': '✅ 团队级 Role 已删除。',
322
+ 'role.team_nothing': '没有团队级 Role,无需删除。',
323
+ 'role.cap_current': '🏷️ 当前能力标签:{cap}',
324
+ 'role.cap_empty': '尚未设置能力标签。\n用法:/role cap set <一句话能力描述>',
325
+ 'role.cap_saved': '✅ 能力标签已更新:{cap}',
326
+ 'role.cap_cleared': '✅ 能力标签已清除。',
327
+ 'role.cap_set_empty': '能力标签不能为空。用法:/role cap set <描述>',
328
+ 'role.help': '/role 用法:\n• /role — 查看当前生效 Role\n• /role set <Markdown> — 设置本群 Role(覆盖团队级)\n• /role delete — 删除本群 Role\n• /role team [set <Markdown>|delete] — 团队级 Role(跨群默认)\n• /role cap [set <一句话>|clear] — 能力标签(花名册展示)',
329
+ 'pair.usage': '用法:/pair <配对码>(在团队平台网页点"登录"会显示配对码)。',
330
+ 'pair.ok': '✅ 登录配对成功,请回到网页继续。',
331
+ 'pair.expired': '配对码已过期,请在网页重新发起登录。',
332
+ 'pair.already': '该配对码已被使用,请在网页重新发起登录。',
333
+ 'pair.not_found': '配对码无效,请检查后重试(区分有效期,过期需重新发起)。',
241
334
  // ─── Card handler responses ──────────────────────────────────────────────
242
335
  'card.action.adopt_no_restart': '⚠️ adopt 模式不支持重启(不会触动你自己的 tmux pane / CLI 进程)',
243
336
  'card.action.restarted': '🔄 已重启 {cliName}',
@@ -272,7 +365,7 @@ export const messages = {
272
365
  'setup.lark_perm_chat': ' - im:chat (群信息)',
273
366
  'setup.lark_perm_user_base': ' - contact:user.base:readonly (用户信息)',
274
367
  'setup.lark_enable_events': '启用事件订阅 (WebSocket 模式):',
275
- 'setup.supported_clis': '支持的 CLI: 1) claude-code 2) aiden 3) coco 4) codex 5) gemini 6) opencode',
368
+ 'setup.supported_clis': '支持的 CLI: 1) claude-code 2) aiden 3) coco 4) codex 5) cursor 6) gemini 7) opencode 8) antigravity 9) mtr 10) hermes 11) codex-app 12) mira',
276
369
  'setup.prompt_cli_choice': 'CLI 适配器 [1]: ',
277
370
  'setup.prompt_working_dir': '默认工作目录 [~]: ',
278
371
  'setup.prompt_allowed_users': '允许的用户 (邮箱或 open_id,逗号分隔,留空=不限制): ',
@@ -1 +1 @@
1
- {"version":3,"file":"zh.js","sourceRoot":"","sources":["../../src/i18n/zh.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zh.js","sourceRoot":"","sources":["../../src/i18n/zh.ts"],"names":[],"mappings":"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"}