botmux 2.46.0 → 2.47.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 (464) hide show
  1. package/README.en.md +5 -10
  2. package/README.md +5 -10
  3. package/dist/adapters/backend/tmux-backend.d.ts.map +1 -1
  4. package/dist/adapters/backend/tmux-backend.js +0 -11
  5. package/dist/adapters/backend/tmux-backend.js.map +1 -1
  6. package/dist/adapters/cli/claude-code.d.ts.map +1 -1
  7. package/dist/adapters/cli/claude-code.js +9 -36
  8. package/dist/adapters/cli/claude-code.js.map +1 -1
  9. package/dist/adapters/cli/coco.d.ts.map +1 -1
  10. package/dist/adapters/cli/coco.js +1 -26
  11. package/dist/adapters/cli/coco.js.map +1 -1
  12. package/dist/adapters/cli/codex.d.ts.map +1 -1
  13. package/dist/adapters/cli/codex.js +1 -6
  14. package/dist/adapters/cli/codex.js.map +1 -1
  15. package/dist/adapters/cli/cursor.d.ts.map +1 -1
  16. package/dist/adapters/cli/cursor.js +12 -58
  17. package/dist/adapters/cli/cursor.js.map +1 -1
  18. package/dist/adapters/cli/gemini.d.ts.map +1 -1
  19. package/dist/adapters/cli/gemini.js +1 -5
  20. package/dist/adapters/cli/gemini.js.map +1 -1
  21. package/dist/adapters/cli/opencode.d.ts.map +1 -1
  22. package/dist/adapters/cli/opencode.js +1 -19
  23. package/dist/adapters/cli/opencode.js.map +1 -1
  24. package/dist/adapters/cli/registry.d.ts +1 -5
  25. package/dist/adapters/cli/registry.d.ts.map +1 -1
  26. package/dist/adapters/cli/registry.js +2 -22
  27. package/dist/adapters/cli/registry.js.map +1 -1
  28. package/dist/adapters/cli/shared-hints.d.ts +1 -1
  29. package/dist/adapters/cli/shared-hints.d.ts.map +1 -1
  30. package/dist/adapters/cli/shared-hints.js +1 -2
  31. package/dist/adapters/cli/shared-hints.js.map +1 -1
  32. package/dist/adapters/cli/types.d.ts +2 -35
  33. package/dist/adapters/cli/types.d.ts.map +1 -1
  34. package/dist/bot-registry.d.ts +0 -59
  35. package/dist/bot-registry.d.ts.map +1 -1
  36. package/dist/bot-registry.js +0 -67
  37. package/dist/bot-registry.js.map +1 -1
  38. package/dist/cli/bots-list-output.d.ts +0 -8
  39. package/dist/cli/bots-list-output.d.ts.map +1 -1
  40. package/dist/cli/bots-list-output.js +0 -9
  41. package/dist/cli/bots-list-output.js.map +1 -1
  42. package/dist/cli.d.ts +1 -15
  43. package/dist/cli.d.ts.map +1 -1
  44. package/dist/cli.js +106 -603
  45. package/dist/cli.js.map +1 -1
  46. package/dist/config.d.ts +2 -11
  47. package/dist/config.d.ts.map +1 -1
  48. package/dist/config.js +4 -17
  49. package/dist/config.js.map +1 -1
  50. package/dist/core/command-handler.d.ts +0 -20
  51. package/dist/core/command-handler.d.ts.map +1 -1
  52. package/dist/core/command-handler.js +313 -762
  53. package/dist/core/command-handler.js.map +1 -1
  54. package/dist/core/dashboard-ipc-server.d.ts +0 -2
  55. package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
  56. package/dist/core/dashboard-ipc-server.js +2 -222
  57. package/dist/core/dashboard-ipc-server.js.map +1 -1
  58. package/dist/core/role-resolver.d.ts +1 -17
  59. package/dist/core/role-resolver.d.ts.map +1 -1
  60. package/dist/core/role-resolver.js +10 -64
  61. package/dist/core/role-resolver.js.map +1 -1
  62. package/dist/core/session-discovery.d.ts.map +1 -1
  63. package/dist/core/session-discovery.js +1 -3
  64. package/dist/core/session-discovery.js.map +1 -1
  65. package/dist/core/session-manager.d.ts +1 -1
  66. package/dist/core/session-manager.d.ts.map +1 -1
  67. package/dist/core/session-manager.js +20 -37
  68. package/dist/core/session-manager.js.map +1 -1
  69. package/dist/core/types.d.ts +0 -5
  70. package/dist/core/types.d.ts.map +1 -1
  71. package/dist/core/types.js.map +1 -1
  72. package/dist/core/worker-pool.d.ts +0 -141
  73. package/dist/core/worker-pool.d.ts.map +1 -1
  74. package/dist/core/worker-pool.js +24 -543
  75. package/dist/core/worker-pool.js.map +1 -1
  76. package/dist/daemon.d.ts.map +1 -1
  77. package/dist/daemon.js +58 -213
  78. package/dist/daemon.js.map +1 -1
  79. package/dist/dashboard/auth.d.ts +1 -6
  80. package/dist/dashboard/auth.d.ts.map +1 -1
  81. package/dist/dashboard/auth.js +1 -9
  82. package/dist/dashboard/auth.js.map +1 -1
  83. package/dist/dashboard/web/app.js +0 -8
  84. package/dist/dashboard/web/app.js.map +1 -1
  85. package/dist/dashboard/web/bot-defaults.d.ts.map +1 -1
  86. package/dist/dashboard/web/bot-defaults.js +21 -205
  87. package/dist/dashboard/web/bot-defaults.js.map +1 -1
  88. package/dist/dashboard/web/i18n.d.ts.map +1 -1
  89. package/dist/dashboard/web/i18n.js +5 -43
  90. package/dist/dashboard/web/i18n.js.map +1 -1
  91. package/dist/dashboard/web/sessions.d.ts.map +1 -1
  92. package/dist/dashboard/web/sessions.js +0 -4
  93. package/dist/dashboard/web/sessions.js.map +1 -1
  94. package/dist/dashboard/web/workflows.js +3 -3
  95. package/dist/dashboard/web/workflows.js.map +1 -1
  96. package/dist/dashboard/workflow-api.d.ts +1 -8
  97. package/dist/dashboard/workflow-api.d.ts.map +1 -1
  98. package/dist/dashboard/workflow-api.js +4 -19
  99. package/dist/dashboard/workflow-api.js.map +1 -1
  100. package/dist/dashboard-web/app.js +375 -539
  101. package/dist/dashboard-web/index.html +1 -3
  102. package/dist/dashboard-web/style.css +0 -22
  103. package/dist/dashboard.js +2 -199
  104. package/dist/dashboard.js.map +1 -1
  105. package/dist/i18n/en.d.ts.map +1 -1
  106. package/dist/i18n/en.js +11 -104
  107. package/dist/i18n/en.js.map +1 -1
  108. package/dist/i18n/zh.d.ts.map +1 -1
  109. package/dist/i18n/zh.js +11 -104
  110. package/dist/i18n/zh.js.map +1 -1
  111. package/dist/im/lark/card-builder.d.ts +3 -108
  112. package/dist/im/lark/card-builder.d.ts.map +1 -1
  113. package/dist/im/lark/card-builder.js +50 -480
  114. package/dist/im/lark/card-builder.js.map +1 -1
  115. package/dist/im/lark/card-handler.d.ts.map +1 -1
  116. package/dist/im/lark/card-handler.js +17 -239
  117. package/dist/im/lark/card-handler.js.map +1 -1
  118. package/dist/im/lark/client.d.ts +0 -83
  119. package/dist/im/lark/client.d.ts.map +1 -1
  120. package/dist/im/lark/client.js +70 -286
  121. package/dist/im/lark/client.js.map +1 -1
  122. package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
  123. package/dist/im/lark/event-dispatcher.js +4 -29
  124. package/dist/im/lark/event-dispatcher.js.map +1 -1
  125. package/dist/im/lark/grant-command.d.ts +1 -2
  126. package/dist/im/lark/grant-command.d.ts.map +1 -1
  127. package/dist/im/lark/grant-command.js +2 -3
  128. package/dist/im/lark/grant-command.js.map +1 -1
  129. package/dist/im/lark/identity-cache.d.ts.map +1 -1
  130. package/dist/im/lark/identity-cache.js +3 -3
  131. package/dist/im/lark/identity-cache.js.map +1 -1
  132. package/dist/im/lark/md-card.d.ts +2 -20
  133. package/dist/im/lark/md-card.d.ts.map +1 -1
  134. package/dist/im/lark/md-card.js +17 -49
  135. package/dist/im/lark/md-card.js.map +1 -1
  136. package/dist/im/lark/message-parser.d.ts.map +1 -1
  137. package/dist/im/lark/message-parser.js +31 -87
  138. package/dist/im/lark/message-parser.js.map +1 -1
  139. package/dist/im/lark/workflow-card-handler.d.ts +2 -2
  140. package/dist/im/lark/workflow-card-handler.d.ts.map +1 -1
  141. package/dist/im/lark/workflow-card-handler.js +1 -12
  142. package/dist/im/lark/workflow-card-handler.js.map +1 -1
  143. package/dist/im/lark/workflow-progress-card.d.ts.map +1 -1
  144. package/dist/im/lark/workflow-progress-card.js +0 -53
  145. package/dist/im/lark/workflow-progress-card.js.map +1 -1
  146. package/dist/services/codex-bridge-queue.d.ts +0 -1
  147. package/dist/services/codex-bridge-queue.d.ts.map +1 -1
  148. package/dist/services/codex-bridge-queue.js +0 -23
  149. package/dist/services/codex-bridge-queue.js.map +1 -1
  150. package/dist/services/codex-transcript.d.ts +0 -1
  151. package/dist/services/codex-transcript.d.ts.map +1 -1
  152. package/dist/services/codex-transcript.js.map +1 -1
  153. package/dist/services/feishu-task-client.d.ts +28 -0
  154. package/dist/services/feishu-task-client.d.ts.map +1 -0
  155. package/dist/services/feishu-task-client.js +123 -0
  156. package/dist/services/feishu-task-client.js.map +1 -0
  157. package/dist/services/grant-store.d.ts +2 -12
  158. package/dist/services/grant-store.d.ts.map +1 -1
  159. package/dist/services/grant-store.js +4 -51
  160. package/dist/services/grant-store.js.map +1 -1
  161. package/dist/services/group-creator.d.ts +0 -10
  162. package/dist/services/group-creator.d.ts.map +1 -1
  163. package/dist/services/group-creator.js +1 -26
  164. package/dist/services/group-creator.js.map +1 -1
  165. package/dist/services/groups-store.d.ts +0 -30
  166. package/dist/services/groups-store.d.ts.map +1 -1
  167. package/dist/services/groups-store.js +12 -85
  168. package/dist/services/groups-store.js.map +1 -1
  169. package/dist/services/project-scanner.d.ts +0 -10
  170. package/dist/services/project-scanner.d.ts.map +1 -1
  171. package/dist/services/project-scanner.js +0 -11
  172. package/dist/services/project-scanner.js.map +1 -1
  173. package/dist/services/session-store.js +1 -1
  174. package/dist/services/session-store.js.map +1 -1
  175. package/dist/services/task-store.d.ts +37 -0
  176. package/dist/services/task-store.d.ts.map +1 -0
  177. package/dist/services/task-store.js +115 -0
  178. package/dist/services/task-store.js.map +1 -0
  179. package/dist/setup/bot-config-editor.d.ts +1 -8
  180. package/dist/setup/bot-config-editor.d.ts.map +1 -1
  181. package/dist/setup/bot-config-editor.js +2 -20
  182. package/dist/setup/bot-config-editor.js.map +1 -1
  183. package/dist/setup/verify-permissions.d.ts.map +1 -1
  184. package/dist/setup/verify-permissions.js +1 -15
  185. package/dist/setup/verify-permissions.js.map +1 -1
  186. package/dist/skills/definitions.d.ts +0 -2
  187. package/dist/skills/definitions.d.ts.map +1 -1
  188. package/dist/skills/definitions.js +12 -178
  189. package/dist/skills/definitions.js.map +1 -1
  190. package/dist/skills/installer.d.ts +0 -34
  191. package/dist/skills/installer.d.ts.map +1 -1
  192. package/dist/skills/installer.js +2 -119
  193. package/dist/skills/installer.js.map +1 -1
  194. package/dist/types.d.ts +0 -25
  195. package/dist/types.d.ts.map +1 -1
  196. package/dist/utils/bot-routing.d.ts +0 -50
  197. package/dist/utils/bot-routing.d.ts.map +1 -1
  198. package/dist/utils/bot-routing.js +0 -83
  199. package/dist/utils/bot-routing.js.map +1 -1
  200. package/dist/utils/user-token.d.ts.map +1 -1
  201. package/dist/utils/user-token.js +2 -0
  202. package/dist/utils/user-token.js.map +1 -1
  203. package/dist/worker.js +27 -198
  204. package/dist/worker.js.map +1 -1
  205. package/dist/workflows/attempt-resume.d.ts.map +1 -1
  206. package/dist/workflows/attempt-resume.js +2 -2
  207. package/dist/workflows/attempt-resume.js.map +1 -1
  208. package/dist/workflows/definition.d.ts +9 -412
  209. package/dist/workflows/definition.d.ts.map +1 -1
  210. package/dist/workflows/definition.js +3 -238
  211. package/dist/workflows/definition.js.map +1 -1
  212. package/dist/workflows/events/payloads.d.ts +11 -114
  213. package/dist/workflows/events/payloads.d.ts.map +1 -1
  214. package/dist/workflows/events/payloads.js +0 -46
  215. package/dist/workflows/events/payloads.js.map +1 -1
  216. package/dist/workflows/events/replay.d.ts +0 -21
  217. package/dist/workflows/events/replay.d.ts.map +1 -1
  218. package/dist/workflows/events/replay.js +0 -103
  219. package/dist/workflows/events/replay.js.map +1 -1
  220. package/dist/workflows/events/schema.d.ts +1017 -1712
  221. package/dist/workflows/events/schema.d.ts.map +1 -1
  222. package/dist/workflows/events/schema.js +1 -37
  223. package/dist/workflows/events/schema.js.map +1 -1
  224. package/dist/workflows/events/types.d.ts +1 -5
  225. package/dist/workflows/events/types.d.ts.map +1 -1
  226. package/dist/workflows/loader.d.ts +0 -14
  227. package/dist/workflows/loader.d.ts.map +1 -1
  228. package/dist/workflows/loader.js +0 -27
  229. package/dist/workflows/loader.js.map +1 -1
  230. package/dist/workflows/loop.js +0 -58
  231. package/dist/workflows/loop.js.map +1 -1
  232. package/dist/workflows/ops-projection.d.ts +0 -58
  233. package/dist/workflows/ops-projection.d.ts.map +1 -1
  234. package/dist/workflows/ops-projection.js +0 -74
  235. package/dist/workflows/ops-projection.js.map +1 -1
  236. package/dist/workflows/orchestrator.d.ts +1 -65
  237. package/dist/workflows/orchestrator.d.ts.map +1 -1
  238. package/dist/workflows/orchestrator.js +74 -486
  239. package/dist/workflows/orchestrator.js.map +1 -1
  240. package/dist/workflows/output-binding.d.ts +1 -8
  241. package/dist/workflows/output-binding.d.ts.map +1 -1
  242. package/dist/workflows/output-binding.js +11 -75
  243. package/dist/workflows/output-binding.js.map +1 -1
  244. package/dist/workflows/runtime.d.ts +1 -1
  245. package/dist/workflows/runtime.d.ts.map +1 -1
  246. package/dist/workflows/runtime.js +4 -39
  247. package/dist/workflows/runtime.js.map +1 -1
  248. package/dist/workflows/wait.d.ts +2 -23
  249. package/dist/workflows/wait.d.ts.map +1 -1
  250. package/dist/workflows/wait.js +17 -39
  251. package/dist/workflows/wait.js.map +1 -1
  252. package/package.json +1 -1
  253. package/dist/adapters/adopt-route.d.ts +0 -63
  254. package/dist/adapters/adopt-route.d.ts.map +0 -1
  255. package/dist/adapters/adopt-route.js +0 -195
  256. package/dist/adapters/adopt-route.js.map +0 -1
  257. package/dist/adapters/cli/codex-app.d.ts +0 -4
  258. package/dist/adapters/cli/codex-app.d.ts.map +0 -1
  259. package/dist/adapters/cli/codex-app.js +0 -72
  260. package/dist/adapters/cli/codex-app.js.map +0 -1
  261. package/dist/adapters/cli/hermes.d.ts +0 -4
  262. package/dist/adapters/cli/hermes.d.ts.map +0 -1
  263. package/dist/adapters/cli/hermes.js +0 -40
  264. package/dist/adapters/cli/hermes.js.map +0 -1
  265. package/dist/adapters/cli/mira.d.ts +0 -4
  266. package/dist/adapters/cli/mira.d.ts.map +0 -1
  267. package/dist/adapters/cli/mira.js +0 -67
  268. package/dist/adapters/cli/mira.js.map +0 -1
  269. package/dist/adapters/cli/mtr.d.ts +0 -5
  270. package/dist/adapters/cli/mtr.d.ts.map +0 -1
  271. package/dist/adapters/cli/mtr.js +0 -62
  272. package/dist/adapters/cli/mtr.js.map +0 -1
  273. package/dist/adapters/hook-command.d.ts +0 -18
  274. package/dist/adapters/hook-command.d.ts.map +0 -1
  275. package/dist/adapters/hook-command.js +0 -38
  276. package/dist/adapters/hook-command.js.map +0 -1
  277. package/dist/adapters/hook-installer.d.ts +0 -14
  278. package/dist/adapters/hook-installer.d.ts.map +0 -1
  279. package/dist/adapters/hook-installer.js +0 -192
  280. package/dist/adapters/hook-installer.js.map +0 -1
  281. package/dist/codex-app-runner.d.ts +0 -3
  282. package/dist/codex-app-runner.d.ts.map +0 -1
  283. package/dist/codex-app-runner.js +0 -512
  284. package/dist/codex-app-runner.js.map +0 -1
  285. package/dist/core/ask-api.d.ts +0 -47
  286. package/dist/core/ask-api.d.ts.map +0 -1
  287. package/dist/core/ask-api.js +0 -139
  288. package/dist/core/ask-api.js.map +0 -1
  289. package/dist/core/ask-args.d.ts +0 -53
  290. package/dist/core/ask-args.d.ts.map +0 -1
  291. package/dist/core/ask-args.js +0 -122
  292. package/dist/core/ask-args.js.map +0 -1
  293. package/dist/core/ask-broker.d.ts +0 -98
  294. package/dist/core/ask-broker.d.ts.map +0 -1
  295. package/dist/core/ask-broker.js +0 -329
  296. package/dist/core/ask-broker.js.map +0 -1
  297. package/dist/core/ask-hook/claude-code.d.ts +0 -50
  298. package/dist/core/ask-hook/claude-code.d.ts.map +0 -1
  299. package/dist/core/ask-hook/claude-code.js +0 -145
  300. package/dist/core/ask-hook/claude-code.js.map +0 -1
  301. package/dist/core/ask-hook/codex.d.ts +0 -43
  302. package/dist/core/ask-hook/codex.d.ts.map +0 -1
  303. package/dist/core/ask-hook/codex.js +0 -69
  304. package/dist/core/ask-hook/codex.js.map +0 -1
  305. package/dist/core/ask-hook/opencode.d.ts +0 -41
  306. package/dist/core/ask-hook/opencode.d.ts.map +0 -1
  307. package/dist/core/ask-hook/opencode.js +0 -108
  308. package/dist/core/ask-hook/opencode.js.map +0 -1
  309. package/dist/core/ask-hook/registry.d.ts +0 -3
  310. package/dist/core/ask-hook/registry.d.ts.map +0 -1
  311. package/dist/core/ask-hook/registry.js +0 -12
  312. package/dist/core/ask-hook/registry.js.map +0 -1
  313. package/dist/core/ask-hook/types.d.ts +0 -26
  314. package/dist/core/ask-hook/types.d.ts.map +0 -1
  315. package/dist/core/ask-hook/types.js +0 -2
  316. package/dist/core/ask-hook/types.js.map +0 -1
  317. package/dist/core/ask-types.d.ts +0 -146
  318. package/dist/core/ask-types.d.ts.map +0 -1
  319. package/dist/core/ask-types.js +0 -18
  320. package/dist/core/ask-types.js.map +0 -1
  321. package/dist/core/trigger-session.d.ts +0 -9
  322. package/dist/core/trigger-session.d.ts.map +0 -1
  323. package/dist/core/trigger-session.js +0 -158
  324. package/dist/core/trigger-session.js.map +0 -1
  325. package/dist/dashboard/connector-api.d.ts +0 -3
  326. package/dist/dashboard/connector-api.d.ts.map +0 -1
  327. package/dist/dashboard/connector-api.js +0 -351
  328. package/dist/dashboard/connector-api.js.map +0 -1
  329. package/dist/dashboard/federated-group-core.d.ts +0 -54
  330. package/dist/dashboard/federated-group-core.d.ts.map +0 -1
  331. package/dist/dashboard/federated-group-core.js +0 -165
  332. package/dist/dashboard/federated-group-core.js.map +0 -1
  333. package/dist/dashboard/federation-api.d.ts +0 -42
  334. package/dist/dashboard/federation-api.d.ts.map +0 -1
  335. package/dist/dashboard/federation-api.js +0 -408
  336. package/dist/dashboard/federation-api.js.map +0 -1
  337. package/dist/dashboard/federation-spoke-api.d.ts +0 -76
  338. package/dist/dashboard/federation-spoke-api.d.ts.map +0 -1
  339. package/dist/dashboard/federation-spoke-api.js +0 -618
  340. package/dist/dashboard/federation-spoke-api.js.map +0 -1
  341. package/dist/dashboard/team-group.d.ts +0 -18
  342. package/dist/dashboard/team-group.d.ts.map +0 -1
  343. package/dist/dashboard/team-group.js +0 -7
  344. package/dist/dashboard/team-group.js.map +0 -1
  345. package/dist/dashboard/trigger-api.d.ts +0 -13
  346. package/dist/dashboard/trigger-api.d.ts.map +0 -1
  347. package/dist/dashboard/trigger-api.js +0 -77
  348. package/dist/dashboard/trigger-api.js.map +0 -1
  349. package/dist/dashboard/web/connectors.d.ts +0 -2
  350. package/dist/dashboard/web/connectors.d.ts.map +0 -1
  351. package/dist/dashboard/web/connectors.js +0 -187
  352. package/dist/dashboard/web/connectors.js.map +0 -1
  353. package/dist/dashboard/web/team-federation.d.ts +0 -3
  354. package/dist/dashboard/web/team-federation.d.ts.map +0 -1
  355. package/dist/dashboard/web/team-federation.js +0 -487
  356. package/dist/dashboard/web/team-federation.js.map +0 -1
  357. package/dist/dashboard/webhook-routes.d.ts +0 -19
  358. package/dist/dashboard/webhook-routes.d.ts.map +0 -1
  359. package/dist/dashboard/webhook-routes.js +0 -321
  360. package/dist/dashboard/webhook-routes.js.map +0 -1
  361. package/dist/im/lark/ask-card.d.ts +0 -55
  362. package/dist/im/lark/ask-card.d.ts.map +0 -1
  363. package/dist/im/lark/ask-card.js +0 -328
  364. package/dist/im/lark/ask-card.js.map +0 -1
  365. package/dist/mira-output.d.ts +0 -3
  366. package/dist/mira-output.d.ts.map +0 -1
  367. package/dist/mira-output.js +0 -136
  368. package/dist/mira-output.js.map +0 -1
  369. package/dist/mira-runner.d.ts +0 -3
  370. package/dist/mira-runner.d.ts.map +0 -1
  371. package/dist/mira-runner.js +0 -534
  372. package/dist/mira-runner.js.map +0 -1
  373. package/dist/services/bot-owner-store.d.ts +0 -28
  374. package/dist/services/bot-owner-store.d.ts.map +0 -1
  375. package/dist/services/bot-owner-store.js +0 -82
  376. package/dist/services/bot-owner-store.js.map +0 -1
  377. package/dist/services/bot-profile-store.d.ts +0 -16
  378. package/dist/services/bot-profile-store.d.ts.map +0 -1
  379. package/dist/services/bot-profile-store.js +0 -98
  380. package/dist/services/bot-profile-store.js.map +0 -1
  381. package/dist/services/brand-store.d.ts +0 -15
  382. package/dist/services/brand-store.d.ts.map +0 -1
  383. package/dist/services/brand-store.js +0 -47
  384. package/dist/services/brand-store.js.map +0 -1
  385. package/dist/services/card-prefs-store.d.ts +0 -20
  386. package/dist/services/card-prefs-store.d.ts.map +0 -1
  387. package/dist/services/card-prefs-store.js +0 -82
  388. package/dist/services/card-prefs-store.js.map +0 -1
  389. package/dist/services/connector-store.d.ts +0 -58
  390. package/dist/services/connector-store.d.ts.map +0 -1
  391. package/dist/services/connector-store.js +0 -79
  392. package/dist/services/connector-store.js.map +0 -1
  393. package/dist/services/deployment-identity.d.ts +0 -22
  394. package/dist/services/deployment-identity.d.ts.map +0 -1
  395. package/dist/services/deployment-identity.js +0 -67
  396. package/dist/services/deployment-identity.js.map +0 -1
  397. package/dist/services/federation-membership-store.d.ts +0 -23
  398. package/dist/services/federation-membership-store.d.ts.map +0 -1
  399. package/dist/services/federation-membership-store.js +0 -66
  400. package/dist/services/federation-membership-store.js.map +0 -1
  401. package/dist/services/federation-roster.d.ts +0 -54
  402. package/dist/services/federation-roster.d.ts.map +0 -1
  403. package/dist/services/federation-roster.js +0 -51
  404. package/dist/services/federation-roster.js.map +0 -1
  405. package/dist/services/federation-store.d.ts +0 -76
  406. package/dist/services/federation-store.d.ts.map +0 -1
  407. package/dist/services/federation-store.js +0 -133
  408. package/dist/services/federation-store.js.map +0 -1
  409. package/dist/services/hermes-transcript.d.ts +0 -7
  410. package/dist/services/hermes-transcript.d.ts.map +0 -1
  411. package/dist/services/hermes-transcript.js +0 -117
  412. package/dist/services/hermes-transcript.js.map +0 -1
  413. package/dist/services/invite-store.d.ts +0 -28
  414. package/dist/services/invite-store.d.ts.map +0 -1
  415. package/dist/services/invite-store.js +0 -85
  416. package/dist/services/invite-store.js.map +0 -1
  417. package/dist/services/pairing-store.d.ts +0 -47
  418. package/dist/services/pairing-store.d.ts.map +0 -1
  419. package/dist/services/pairing-store.js +0 -132
  420. package/dist/services/pairing-store.js.map +0 -1
  421. package/dist/services/relay-picker.d.ts +0 -22
  422. package/dist/services/relay-picker.d.ts.map +0 -1
  423. package/dist/services/relay-picker.js +0 -62
  424. package/dist/services/relay-picker.js.map +0 -1
  425. package/dist/services/send-policy.d.ts +0 -55
  426. package/dist/services/send-policy.d.ts.map +0 -1
  427. package/dist/services/send-policy.js +0 -47
  428. package/dist/services/send-policy.js.map +0 -1
  429. package/dist/services/team-roster.d.ts +0 -38
  430. package/dist/services/team-roster.d.ts.map +0 -1
  431. package/dist/services/team-roster.js +0 -82
  432. package/dist/services/team-roster.js.map +0 -1
  433. package/dist/services/team-store.d.ts +0 -54
  434. package/dist/services/team-store.d.ts.map +0 -1
  435. package/dist/services/team-store.js +0 -156
  436. package/dist/services/team-store.js.map +0 -1
  437. package/dist/services/trigger-log-store.d.ts +0 -46
  438. package/dist/services/trigger-log-store.d.ts.map +0 -1
  439. package/dist/services/trigger-log-store.js +0 -132
  440. package/dist/services/trigger-log-store.js.map +0 -1
  441. package/dist/services/trigger-types.d.ts +0 -57
  442. package/dist/services/trigger-types.d.ts.map +0 -1
  443. package/dist/services/trigger-types.js +0 -28
  444. package/dist/services/trigger-types.js.map +0 -1
  445. package/dist/services/webhook-key.d.ts +0 -16
  446. package/dist/services/webhook-key.d.ts.map +0 -1
  447. package/dist/services/webhook-key.js +0 -123
  448. package/dist/services/webhook-key.js.map +0 -1
  449. package/dist/services/webhook-lifecycle-extractors.d.ts +0 -15
  450. package/dist/services/webhook-lifecycle-extractors.d.ts.map +0 -1
  451. package/dist/services/webhook-lifecycle-extractors.js +0 -59
  452. package/dist/services/webhook-lifecycle-extractors.js.map +0 -1
  453. package/dist/services/webhook-lifecycle-store.d.ts +0 -45
  454. package/dist/services/webhook-lifecycle-store.d.ts.map +0 -1
  455. package/dist/services/webhook-lifecycle-store.js +0 -159
  456. package/dist/services/webhook-lifecycle-store.js.map +0 -1
  457. package/dist/utils/daemon-discovery.d.ts +0 -11
  458. package/dist/utils/daemon-discovery.d.ts.map +0 -1
  459. package/dist/utils/daemon-discovery.js +0 -59
  460. package/dist/utils/daemon-discovery.js.map +0 -1
  461. package/dist/workflows/trigger-from-envelope.d.ts +0 -13
  462. package/dist/workflows/trigger-from-envelope.d.ts.map +0 -1
  463. package/dist/workflows/trigger-from-envelope.js +0 -67
  464. package/dist/workflows/trigger-from-envelope.js.map +0 -1
@@ -3,54 +3,4 @@ export declare function pickBotEntryByName<T extends {
3
3
  larkAppId: string;
4
4
  botName: string | null;
5
5
  }>(botEntries: T[], name: string, targetChatId: string | undefined, oncallChatsByApp: Map<string, Set<string>>): T | undefined;
6
- export type BotMentionEntry = {
7
- larkAppId: string;
8
- botOpenId?: string | null;
9
- botName: string | null;
10
- cliId?: string | null;
11
- };
12
- export type OutgoingMention = {
13
- open_id: string;
14
- name?: string;
15
- };
16
- export declare function knownBotOpenIdsFromCrossRef(crossRef: Record<string, string>, entries?: BotMentionEntry[], selfAppId?: string): Set<string>;
17
- export declare function hasKnownBotMention(_text: string, mentions: OutgoingMention[], entries: BotMentionEntry[], crossRef: Record<string, string>, selfAppId?: string): boolean;
18
- /**
19
- * Decide who a botmux-generated reply should @ in the footer.
20
- *
21
- * The footer is an implicit convenience for human readers. It must not wake a
22
- * bot: bot-to-bot routing should be explicit in the message body/--mention.
23
- * When the body already contains an explicit bot target, keep the footer on a
24
- * human owner if one exists; only bot recipients are suppressed.
25
- */
26
- export declare function buildFooterAddressing(s: {
27
- ownerOpenId?: string;
28
- lastCallerOpenId?: string;
29
- }, opts: {
30
- isOncall: boolean;
31
- hasExplicitBotMention?: boolean;
32
- knownBotOpenIds?: Set<string>;
33
- }): {
34
- sendTo: string | undefined;
35
- cc: string[];
36
- };
37
- /**
38
- * Ordered, de-duplicated @ recipients for the footer `发送给:` line.
39
- *
40
- * All real mentions (the human addressee + explicit mention targets + cc) are
41
- * consolidated onto one footer line instead of dangling a trailing @ block at
42
- * the bottom of the card body. The human addressee (`sendTo`) goes first, then
43
- * explicit mention targets (which may include sibling bots for a handoff), then
44
- * cc. Ids already rendered inline inside the body prose (`inlinedIds`) are
45
- * skipped so the same person isn't @-ed twice.
46
- *
47
- * Placement only — these were already real Lark mentions wherever they sat, so
48
- * notification / cross-bot wake behaviour is unchanged.
49
- */
50
- export declare function orderedFooterRecipients(opts: {
51
- sendTo?: string;
52
- mentionIds?: string[];
53
- cc?: string[];
54
- inlinedIds?: Iterable<string>;
55
- }): string[];
56
6
  //# sourceMappingURL=bot-routing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bot-routing.d.ts","sourceRoot":"","sources":["../../src/utils/bot-routing.ts"],"names":[],"mappings":"AAiBA,wBAAgB,oBAAoB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAkBpF;AAED,wBAAgB,kBAAkB,CAAC,CAAC,SAAS;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EACxF,UAAU,EAAE,CAAC,EAAE,EACf,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,GACzC,CAAC,GAAG,SAAS,CAMf;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAaF,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,OAAO,GAAE,eAAe,EAAO,EAC/B,SAAS,CAAC,EAAE,MAAM,GACjB,GAAG,CAAC,MAAM,CAAC,CAOb;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,eAAe,EAAE,EAC3B,OAAO,EAAE,eAAe,EAAE,EAC1B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAUT;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAE,EACtD,IAAI,EAAE;IACJ,QAAQ,EAAE,OAAO,CAAC;IAClB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC/B,GACA;IAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,EAAE,EAAE,MAAM,EAAE,CAAA;CAAE,CAe9C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;IACd,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;CAC/B,GAAG,MAAM,EAAE,CAaX"}
1
+ {"version":3,"file":"bot-routing.d.ts","sourceRoot":"","sources":["../../src/utils/bot-routing.ts"],"names":[],"mappings":"AAiBA,wBAAgB,oBAAoB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAkBpF;AAED,wBAAgB,kBAAkB,CAAC,CAAC,SAAS;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EACxF,UAAU,EAAE,CAAC,EAAE,EACf,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,GACzC,CAAC,GAAG,SAAS,CAMf"}
@@ -47,87 +47,4 @@ export function pickBotEntryByName(botEntries, name, targetChatId, oncallChatsBy
47
47
  return candidates[0];
48
48
  return candidates.find(e => oncallChatsByApp.get(e.larkAppId)?.has(targetChatId)) ?? candidates[0];
49
49
  }
50
- function knownBotNames(entries, selfAppId) {
51
- const names = new Set();
52
- for (const entry of entries) {
53
- if (selfAppId && entry.larkAppId === selfAppId)
54
- continue;
55
- for (const name of [entry.botName, entry.cliId]) {
56
- if (name)
57
- names.add(name.toLowerCase());
58
- }
59
- }
60
- return names;
61
- }
62
- export function knownBotOpenIdsFromCrossRef(crossRef, entries = [], selfAppId) {
63
- const out = new Set(Object.values(crossRef).filter(Boolean));
64
- for (const entry of entries) {
65
- if (selfAppId && entry.larkAppId === selfAppId)
66
- continue;
67
- if (entry.botOpenId)
68
- out.add(entry.botOpenId);
69
- }
70
- return out;
71
- }
72
- export function hasKnownBotMention(_text, mentions, entries, crossRef, selfAppId) {
73
- const names = knownBotNames(entries, selfAppId);
74
- const openIds = knownBotOpenIdsFromCrossRef(crossRef, entries, selfAppId);
75
- for (const mention of mentions) {
76
- if (openIds.has(mention.open_id))
77
- return true;
78
- if (mention.name && names.has(mention.name.toLowerCase()))
79
- return true;
80
- }
81
- return false;
82
- }
83
- /**
84
- * Decide who a botmux-generated reply should @ in the footer.
85
- *
86
- * The footer is an implicit convenience for human readers. It must not wake a
87
- * bot: bot-to-bot routing should be explicit in the message body/--mention.
88
- * When the body already contains an explicit bot target, keep the footer on a
89
- * human owner if one exists; only bot recipients are suppressed.
90
- */
91
- export function buildFooterAddressing(s, opts) {
92
- const owner = s.ownerOpenId;
93
- const botIds = opts.knownBotOpenIds ?? new Set();
94
- const ownerHuman = owner && !botIds.has(owner) ? owner : undefined;
95
- if (!opts.isOncall)
96
- return { sendTo: ownerHuman, cc: [] };
97
- const caller = s.lastCallerOpenId ?? owner;
98
- const callerIsBot = !!caller && botIds.has(caller);
99
- if (opts.hasExplicitBotMention || callerIsBot) {
100
- return { sendTo: ownerHuman, cc: [] };
101
- }
102
- return { sendTo: caller, cc: [] };
103
- }
104
- /**
105
- * Ordered, de-duplicated @ recipients for the footer `发送给:` line.
106
- *
107
- * All real mentions (the human addressee + explicit mention targets + cc) are
108
- * consolidated onto one footer line instead of dangling a trailing @ block at
109
- * the bottom of the card body. The human addressee (`sendTo`) goes first, then
110
- * explicit mention targets (which may include sibling bots for a handoff), then
111
- * cc. Ids already rendered inline inside the body prose (`inlinedIds`) are
112
- * skipped so the same person isn't @-ed twice.
113
- *
114
- * Placement only — these were already real Lark mentions wherever they sat, so
115
- * notification / cross-bot wake behaviour is unchanged.
116
- */
117
- export function orderedFooterRecipients(opts) {
118
- const seen = new Set(opts.inlinedIds ?? []);
119
- const out = [];
120
- const push = (id) => {
121
- if (id && !seen.has(id)) {
122
- seen.add(id);
123
- out.push(id);
124
- }
125
- };
126
- push(opts.sendTo);
127
- for (const id of opts.mentionIds ?? [])
128
- push(id);
129
- for (const id of opts.cc ?? [])
130
- push(id);
131
- return out;
132
- }
133
50
  //# sourceMappingURL=bot-routing.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bot-routing.js","sourceRoot":"","sources":["../../src/utils/bot-routing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bot-routing.js","sourceRoot":"","sources":["../../src/utils/bot-routing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;AAElE,MAAM,UAAU,oBAAoB,CAAC,YAAqB;IACxD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC3C,MAAM,IAAI,GAAG,YAAY;WACpB,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;IACtF,IAAI,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,OAAO,GAAG,CAAC;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QACvD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,GAAG,CAAC;QACvC,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;YACzB,IAAI,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;gBAAE,SAAS;YACjE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;YAChC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;gBAChC,IAAI,OAAO,CAAC,EAAE,MAAM,KAAK,QAAQ;oBAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YACzD,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC;gBAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC;IACjB,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,UAAe,EACf,IAAY,EACZ,YAAgC,EAChC,gBAA0C;IAE1C,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACjC,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,KAAK,CAAC,CAAC;IAC9E,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC9C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,YAAY;QAAE,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;IACnE,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;AACrG,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"user-token.d.ts","sourceRoot":"","sources":["../../src/utils/user-token.ts"],"names":[],"mappings":"AAuBA,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;CACf;AA+FD;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAuB/F;AAYD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CA6BpG;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA2D3E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAgBvC"}
1
+ {"version":3,"file":"user-token.d.ts","sourceRoot":"","sources":["../../src/utils/user-token.ts"],"names":[],"mappings":"AAuBA,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;CACf;AA+FD;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAuB/F;AAcD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CA6BpG;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA2D3E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAgBvC"}
@@ -119,6 +119,8 @@ const DEFAULT_PORT = 9768;
119
119
  const DEFAULT_SCOPES = [
120
120
  'im:message:readonly',
121
121
  'im:resource',
122
+ 'task:task:read',
123
+ 'task:task:write',
122
124
  'offline_access',
123
125
  ].join(' ');
124
126
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"user-token.js","sourceRoot":"","sources":["../../src/utils/user-token.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user-token.js","sourceRoot":"","sources":["../../src/utils/user-token.ts"],"names":[],"mappings":"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"}
package/dist/worker.js CHANGED
@@ -22,7 +22,6 @@ import { shouldRunQuietRotation, evaluatePidResolverPullback, decideFingerprintS
22
22
  import { CodexBridgeQueue } from './services/codex-bridge-queue.js';
23
23
  import { drainCodexRollout, findCodexRolloutBySessionId, findCodexRolloutByPid, splitCodexEventsByCutoff, extractLastCodexTurn } from './services/codex-transcript.js';
24
24
  import { cocoEventsPathForSession, drainCocoEvents, findCocoSessionByPid } from './services/coco-transcript.js';
25
- import { currentHermesStateOffset, drainHermesStateDb } from './services/hermes-transcript.js';
26
25
  import { baselineJsonlCursor } from './services/jsonl-cursor.js';
27
26
  import { dirname } from 'node:path';
28
27
  import { createServer as createHttpServer } from 'node:http';
@@ -64,7 +63,7 @@ const clientPtys = new Map();
64
63
  const writeToken = randomBytes(16).toString('hex');
65
64
  let sessionId = '';
66
65
  let lastInitConfig = null;
67
- const CLI_DISPLAY_NAMES = { 'claude-code': 'Claude', aiden: 'Aiden', coco: 'CoCo', codex: 'Codex', 'codex-app': 'Codex App', cursor: 'Cursor', gemini: 'Gemini', opencode: 'OpenCode', antigravity: 'Antigravity', mtr: 'MTR', hermes: 'Hermes', mira: 'Mira' };
66
+ const CLI_DISPLAY_NAMES = { 'claude-code': 'Claude', aiden: 'Aiden', coco: 'CoCo', codex: 'Codex', cursor: 'Cursor', gemini: 'Gemini', opencode: 'OpenCode', antigravity: 'Antigravity' };
68
67
  function cliName() { return CLI_DISPLAY_NAMES[lastInitConfig?.cliId ?? ''] ?? 'CLI'; }
69
68
  let isPromptReady = false;
70
69
  /** Mutex for async flushPending — prevents concurrent flush loops. */
@@ -200,8 +199,6 @@ let codexBridgeBaselineDone = false;
200
199
  const codexBridgeQueue = new CodexBridgeQueue();
201
200
  let codexBridgeWatcher = null;
202
201
  let codexBridgeTimer = null;
203
- let hermesBridgeOffset = 0;
204
- let hermesBridgeBaselineDone = false;
205
202
  /** Codex sessionId we received via writeInput but haven't yet resolved a
206
203
  * rollout file for. The poller keeps retrying — the file appears on
207
204
  * Codex's first user submit, but with some race delay after our submit
@@ -265,11 +262,6 @@ function formatHeadlessLocalTurnContent(assistantText) {
265
262
  // needed. Append-only over a shared file (instead of a per-turn marker) is
266
263
  // type-ahead safe: type-ahead'd turns each have their own [markTimeMs,
267
264
  // nextTurn.markTimeMs) window, and a stray send only fills its own bucket.
268
- // This relies on each turn's markTimeMs reflecting when it ACTUALLY started
269
- // processing, not when the worker marked it — the structured queue overrides
270
- // markTimeMs to the dequeue-time transcript event (CodexBridgeQueue.ingest)
271
- // and emitReadyCodexTurns only treats a STARTED next turn as a boundary, so
272
- // the early back-to-back marks type-ahead produces don't collapse the windows.
273
265
  function bridgeMarkerPath() {
274
266
  if (!process.env.SESSION_DATA_DIR || !sessionId)
275
267
  return undefined;
@@ -1331,23 +1323,18 @@ function drainPathInto(path, fromOffset) {
1331
1323
  // shared with the Claude path.
1332
1324
  function codexBridgeFallbackActive() {
1333
1325
  // True for transcript-backed CLIs whose final output can be harvested
1334
- // when the model forgets to call `botmux send`.
1335
- return lastInitConfig?.cliId === 'codex' || lastInitConfig?.cliId === 'coco' || lastInitConfig?.cliId === 'hermes';
1326
+ // from append-only JSONL when the model forgets to call `botmux send`.
1327
+ // Codex uses ~/.codex rollouts; CoCo uses ~/.cache/coco events. Both
1328
+ // work in adopt mode now that CoCo's PID→sessionId discovery is wired.
1329
+ return lastInitConfig?.cliId === 'codex' || lastInitConfig?.cliId === 'coco';
1336
1330
  }
1337
1331
  function structuredBridgeIsCodex() {
1338
1332
  return lastInitConfig?.cliId === 'codex';
1339
1333
  }
1340
- function structuredBridgeIsHermes() {
1341
- return lastInitConfig?.cliId === 'hermes';
1342
- }
1343
1334
  function structuredBridgeIngestPath(path, offset) {
1344
- if (structuredBridgeIsCodex())
1345
- return drainCodexRollout(path, offset);
1346
- if (structuredBridgeIsHermes()) {
1347
- const result = drainHermesStateDb(offset);
1348
- return { events: result.events, newOffset: result.newOffset, pendingTail: '' };
1349
- }
1350
- return drainCocoEvents(path, offset);
1335
+ return structuredBridgeIsCodex()
1336
+ ? drainCodexRollout(path, offset)
1337
+ : drainCocoEvents(path, offset);
1351
1338
  }
1352
1339
  function codexBridgeStartTimer() {
1353
1340
  if (codexBridgeTimer)
@@ -1365,14 +1352,6 @@ function codexBridgeStartTimer() {
1365
1352
  // publish a half-streamed response.
1366
1353
  codexBridgeTimer = setInterval(() => {
1367
1354
  try {
1368
- if (structuredBridgeIsHermes()) {
1369
- if (!hermesBridgeBaselineDone)
1370
- hermesBridgeAttach(lastInitConfig?.resume ? 'baseline-existing' : 'fresh-empty');
1371
- hermesBridgeIngest();
1372
- if (isPromptReady)
1373
- emitReadyCodexTurns();
1374
- return;
1375
- }
1376
1355
  if (!codexBridgeRolloutPath) {
1377
1356
  // Two discovery paths, in order: cliSessionId (known via writeInput
1378
1357
  // result for non-adopt or daemon-side probe for adopt) → exact
@@ -1426,22 +1405,6 @@ function codexBridgeStartTimer() {
1426
1405
  }
1427
1406
  }, 1000);
1428
1407
  }
1429
- function hermesBridgeAttach(mode) {
1430
- hermesBridgeOffset = currentHermesStateOffset();
1431
- hermesBridgeBaselineDone = true;
1432
- log(`Hermes bridge ${mode}: state.db offset=${hermesBridgeOffset}`);
1433
- codexBridgeStartTimer();
1434
- }
1435
- function hermesBridgeIngest() {
1436
- if (!hermesBridgeBaselineDone)
1437
- return;
1438
- const result = drainHermesStateDb(hermesBridgeOffset);
1439
- hermesBridgeOffset = result.newOffset;
1440
- codexBridgeQueue.ingest(result.events);
1441
- if (result.events.some(e => e.kind === 'assistant_final')) {
1442
- idleDetector?.fireIdle();
1443
- }
1444
- }
1445
1408
  function codexBridgeAttach(rolloutPath, mode) {
1446
1409
  codexBridgeRolloutPath = rolloutPath;
1447
1410
  if (mode === 'fresh-empty') {
@@ -1536,10 +1499,6 @@ function codexBridgeNotifyCliSessionId(cliSessionId) {
1536
1499
  }
1537
1500
  }
1538
1501
  function codexBridgeIngest() {
1539
- if (structuredBridgeIsHermes()) {
1540
- hermesBridgeIngest();
1541
- return;
1542
- }
1543
1502
  if (!codexBridgeRolloutPath || !codexBridgeBaselineDone)
1544
1503
  return;
1545
1504
  const result = structuredBridgeIngestPath(codexBridgeRolloutPath, codexBridgeOffset);
@@ -1569,7 +1528,7 @@ function codexBridgeMarkPendingTurn(messageText) {
1569
1528
  function codexBridgeDrainAndMaybeEmit() {
1570
1529
  if (!codexBridgeFallbackActive())
1571
1530
  return;
1572
- if (structuredBridgeIsHermes() || (codexBridgeRolloutPath && codexBridgeBaselineDone)) {
1531
+ if (codexBridgeRolloutPath && codexBridgeBaselineDone) {
1573
1532
  try {
1574
1533
  codexBridgeIngest();
1575
1534
  }
@@ -1589,17 +1548,7 @@ function emitReadyCodexTurns() {
1589
1548
  // should reach the thread. Skip marker IO entirely.
1590
1549
  const markers = adoptMode ? [] : readSendMarkers();
1591
1550
  const remaining = codexBridgeQueue.peek();
1592
- // Only a STARTED pending turn can bound the last ready turn's send window.
1593
- // An unstarted turn hasn't been dequeued yet (its user event hasn't landed),
1594
- // so it has produced no sends to leak backwards — and under type-ahead its
1595
- // markTimeMs is still the early flush-time mark, which would prematurely
1596
- // (often invalidly, lower>upper) close the ready turn's window and let its
1597
- // own send escape suppression → duplicate. A started-but-not-final turn
1598
- // (model mid-tool-use for N+1) keeps its real overridden markTimeMs as the
1599
- // boundary, preserving the original leak guard.
1600
- const nextPendingMarkTimeMs = remaining.length > 0 && remaining[0].started
1601
- ? remaining[0].markTimeMs
1602
- : undefined;
1551
+ const nextPendingMarkTimeMs = remaining.length > 0 ? remaining[0].markTimeMs : undefined;
1603
1552
  for (let i = 0; i < ready.length; i++) {
1604
1553
  const turn = ready[i];
1605
1554
  if (!turn.finalText)
@@ -1646,8 +1595,6 @@ function stopCodexBridge() {
1646
1595
  codexBridgeOffset = 0;
1647
1596
  codexBridgePendingTail = '';
1648
1597
  codexBridgeBaselineDone = false;
1649
- hermesBridgeOffset = 0;
1650
- hermesBridgeBaselineDone = false;
1651
1598
  codexBridgeQueue.clearPending();
1652
1599
  codexBridgeQueue.setLocalTurns(false);
1653
1600
  codexBridgePendingSessionId = undefined;
@@ -2179,88 +2126,8 @@ async function handleTuiTextInput(keys, text) {
2179
2126
  // in a single PTY chunk)
2180
2127
  const TRUST_DIALOG_PATTERN = /Yes, I trust this folder|Yes, continue/;
2181
2128
  let trustHandled = false;
2182
- // Codex App runner sends botmux control messages as OSC sequences so they do
2183
- // not pollute the visible terminal. Strip them before xterm rendering and
2184
- // translate them back into worker IPC.
2185
- const CODEX_APP_OSC_PREFIX = '\x1b]777;botmux:';
2186
- const APP_RUNNER_OSC_CLI_IDS = new Set(['codex-app', 'mira']);
2187
- let codexAppOscPending = '';
2188
- function decodeCodexAppPayload(payload) {
2189
- try {
2190
- return JSON.parse(Buffer.from(payload, 'base64').toString('utf8'));
2191
- }
2192
- catch {
2193
- return undefined;
2194
- }
2195
- }
2196
- function handleCodexAppMarker(body) {
2197
- const sep = body.indexOf(':');
2198
- if (sep < 0)
2199
- return;
2200
- const kind = body.slice(0, sep);
2201
- const payload = decodeCodexAppPayload(body.slice(sep + 1));
2202
- if (!payload || typeof payload !== 'object')
2203
- return;
2204
- if (kind === 'thread' && typeof payload.threadId === 'string') {
2205
- persistCliSessionId(payload.threadId);
2206
- return;
2207
- }
2208
- if (kind === 'final' && typeof payload.content === 'string') {
2209
- const startedAtMs = typeof payload.startedAtMs === 'number' ? payload.startedAtMs : undefined;
2210
- const completedAtMs = typeof payload.completedAtMs === 'number' ? payload.completedAtMs : Date.now();
2211
- if (startedAtMs !== undefined) {
2212
- const sentByModel = readSendMarkers().some(m => m.sentAtMs >= startedAtMs && m.sentAtMs <= completedAtMs + 5_000);
2213
- if (sentByModel) {
2214
- log(`${cliName()} final_output suppressed (model already called botmux send)`);
2215
- return;
2216
- }
2217
- }
2218
- const turnId = typeof payload.turnId === 'string' ? payload.turnId : `${lastInitConfig?.cliId ?? 'app'}-${Date.now()}`;
2219
- send({
2220
- type: 'final_output',
2221
- content: payload.content,
2222
- lastUuid: turnId,
2223
- turnId,
2224
- });
2225
- }
2226
- }
2227
- function splitCodexAppControl(data) {
2228
- if (!APP_RUNNER_OSC_CLI_IDS.has(lastInitConfig?.cliId ?? '') && codexAppOscPending.length === 0)
2229
- return data;
2230
- const input = codexAppOscPending + data;
2231
- codexAppOscPending = '';
2232
- let out = '';
2233
- let cursor = 0;
2234
- for (;;) {
2235
- const start = input.indexOf(CODEX_APP_OSC_PREFIX, cursor);
2236
- if (start < 0) {
2237
- let tailStart = input.length;
2238
- const tail = input.slice(cursor);
2239
- for (let n = Math.min(CODEX_APP_OSC_PREFIX.length - 1, tail.length); n > 0; n--) {
2240
- if (CODEX_APP_OSC_PREFIX.startsWith(tail.slice(tail.length - n))) {
2241
- tailStart = input.length - n;
2242
- break;
2243
- }
2244
- }
2245
- out += input.slice(cursor, tailStart);
2246
- codexAppOscPending = input.slice(tailStart);
2247
- return out;
2248
- }
2249
- out += input.slice(cursor, start);
2250
- const end = input.indexOf('\x07', start + CODEX_APP_OSC_PREFIX.length);
2251
- if (end < 0) {
2252
- codexAppOscPending = input.slice(start);
2253
- return out;
2254
- }
2255
- handleCodexAppMarker(input.slice(start + CODEX_APP_OSC_PREFIX.length, end));
2256
- cursor = end + 1;
2257
- }
2258
- }
2259
2129
  // ─── Prompt Detection ────────────────────────────────────────────────────────
2260
2130
  function onPtyData(data) {
2261
- data = splitCodexAppControl(data);
2262
- if (data.length === 0)
2263
- return;
2264
2131
  captureWorkflowTranscript(data);
2265
2132
  renderer?.write(data);
2266
2133
  // In tmux-attach mode, each web client has its own tmux attach PTY —
@@ -2446,23 +2313,10 @@ async function flushPending() {
2446
2313
  // Lark message. Now that the queue handles queued_command identically to
2447
2314
  // role:user (and overrides markTimeMs to the dequeue-time event timestamp
2448
2315
  // so the gate window is correct), Claude bridge can run with type-ahead
2449
- // again.
2450
- //
2451
- // CoCo (0.120.32+) also tolerates type-ahead, but for a different reason
2452
- // than Claude: it parks a submit-while-busy message in its own TUI queue
2453
- // ("↑ Press up to edit queued messages") and only writes the user event to
2454
- // events.jsonl when it DEQUEUES and starts processing it — i.e. AFTER the
2455
- // previous turn's assistant_final. So the transcript stays strictly
2456
- // interleaved (user1 → asst1 → user2 → asst2) and CodexBridgeQueue's
2457
- // single-`collecting` attribution stays correct without the queued_command
2458
- // upgrade Claude needed. (The submit log history.jsonl, which the adapter's
2459
- // writeInput verification polls, IS written at submit time even for a queued
2460
- // message, so verification doesn't spuriously fail either.) Only the Codex
2461
- // rollout bridge stays serial — its queue hasn't been validated for the
2462
- // back-to-back user_message ordering that type-ahead can produce there.
2316
+ // again. Codex bridge stays serial because its queue hasn't been upgraded.
2463
2317
  const claudeBridgeActive = !!bridgeJsonlPath && !lastInitConfig?.adoptMode;
2464
2318
  const codexBridgeActive = codexBridgeFallbackActive();
2465
- const typeAheadAllowed = cliAdapter.supportsTypeAhead && !structuredBridgeIsCodex();
2319
+ const typeAheadAllowed = cliAdapter.supportsTypeAhead && !codexBridgeActive;
2466
2320
  if (!isPromptReady && !typeAheadAllowed)
2467
2321
  return;
2468
2322
  isFlushing = true;
@@ -2535,18 +2389,16 @@ async function flushPending() {
2535
2389
  if (result && result.submitted === false && backend) {
2536
2390
  scheduleSubmitFailureNotify(msg, result.recheck, '会话 JSONL', bridgeTurnId, result.failureReason, turnSeq);
2537
2391
  }
2538
- // Codex rollout bridge: stop after one writeInput per idle cycle.
2539
- // Codex's bridge queue doesn't yet attribute queued_command-equivalents,
2540
- // so type-ahead'd submits would have their assistant text dropped or
2392
+ // Codex bridge: stop after one writeInput per idle cycle. Codex's
2393
+ // bridge queue doesn't yet attribute queued_command-equivalents, so
2394
+ // type-ahead'd submits would have their assistant text dropped or
2541
2395
  // mis-attributed. We resume on the next idle, by which point Codex
2542
2396
  // has finished and the next message can be a normal user_message
2543
- // submit. Claude bridge and CoCo no longer take this break — Claude's
2397
+ // submit. Claude bridge no longer takes this break — its
2544
2398
  // BridgeTurnQueue handles `attachment(queued_command)` events
2545
- // identically to `role:user`, and CoCo parks queued submits in its own
2546
- // TUI queue (writing the events.jsonl user event only at dequeue time),
2547
- // so both keep the transcript interleaved and attribute correctly. We
2548
- // WANT CoCo to drain all pending here so they land in its TUI queue.
2549
- if (structuredBridgeIsCodex() && pendingMessages.length > 0)
2399
+ // identically to `role:user`, so type-ahead'd turns are correctly
2400
+ // attributed and no longer need the serial-per-idle guard.
2401
+ if (codexBridgeActive && pendingMessages.length > 0)
2550
2402
  break;
2551
2403
  }
2552
2404
  }
@@ -2571,12 +2423,12 @@ function sendToPty(content) {
2571
2423
  // Tear down the prompt card so the user doesn't see stale options.
2572
2424
  send({ type: 'tui_prompt_resolved', selectedText: 'user-override' });
2573
2425
  }
2574
- // See flushPending: only the Codex rollout bridge still serialises
2575
- // type-ahead. Claude attributes `attachment(queued_command)` events
2576
- // identically to `role:user`, and CoCo parks queued submits in its own TUI
2577
- // queue, so both land type-ahead'd submits in the right turn only Codex
2578
- // needs the entry path gated.
2579
- const typeAheadAllowed = cliAdapter.supportsTypeAhead && !structuredBridgeIsCodex();
2426
+ // See flushPending: only Codex bridge still serialises type-ahead.
2427
+ // Claude bridge now attributes `attachment(queued_command)` events
2428
+ // identically to `role:user`, so type-ahead'd submits land in the right
2429
+ // turn and we no longer need to gate the entry path on claudeBridgeActive.
2430
+ const codexBridgeActive = codexBridgeFallbackActive();
2431
+ const typeAheadAllowed = cliAdapter.supportsTypeAhead && !codexBridgeActive;
2580
2432
  if (isPromptReady || isFlushing || typeAheadAllowed) {
2581
2433
  log(`Writing to PTY: "${content.substring(0, 80)}"`);
2582
2434
  flushPending(); // fire-and-forget async; no-op if already flushing
@@ -2857,7 +2709,6 @@ function spawnCli(cfg) {
2857
2709
  botName: cfg.botName,
2858
2710
  botOpenId: cfg.botOpenId,
2859
2711
  locale: cfg.locale,
2860
- model: cfg.model,
2861
2712
  });
2862
2713
  // Extra args from env (CLI_DISABLE_DEFAULT_ARGS is removed — adapters own their defaults)
2863
2714
  const extra = (process.env.CLI_EXTRA_ARGS ?? '').trim();
@@ -2872,15 +2723,6 @@ function spawnCli(cfg) {
2872
2723
  if (injectClaudeSandbox) {
2873
2724
  log('Detected root user — injecting IS_SANDBOX=1 for Claude Code');
2874
2725
  }
2875
- // Claude Code 2.1.x:`--resume` 一个「空闲 >70min 且累计 >10 万 token」的会话会弹
2876
- // 交互式菜单(Resume from summary / full / Don't ask again),botmux 无法导航 →
2877
- // 进程卡死(issue #62)。把 token 阈值顶到极大让触发门永远命中 `tokens < threshold`
2878
- // 而 return null → 菜单不弹、按 full session 原样续(走 summary 会触发 /compact,
2879
- // 破坏 bridge 的会话连续性追踪)。用户显式设了就尊重。注意:该 key 必须同时进
2880
- // BOTMUX_INJECTED_ENV_KEYS 白名单,否则 tmux backend 不会把它透传进 pane。
2881
- const claudeResumeTokenThreshold = cfg.cliId === 'claude-code'
2882
- ? process.env.CLAUDE_CODE_RESUME_TOKEN_THRESHOLD ?? '2147483647'
2883
- : undefined;
2884
2726
  // Predict reattach vs fresh so the log line tells the truth. When a bmx-*
2885
2727
  // tmux session is still alive, TmuxBackend.spawn ignores the bin/args and
2886
2728
  // just `tmux attach-session`s — logging `Spawning: <new bin>` in that case
@@ -2900,15 +2742,7 @@ function spawnCli(cfg) {
2900
2742
  env: {
2901
2743
  ...process.env,
2902
2744
  CLAUDECODE: undefined,
2903
- // §5 of botmux ask v0.1.7 — `botmux ask buttons` reads these to find
2904
- // the daemon socket, route the card back to this thread, and resolve
2905
- // the approver allowlist against session.owner. Missing env → exit 2.
2906
- BOTMUX_SESSION_ID: cfg.sessionId,
2907
- BOTMUX_CHAT_ID: cfg.chatId,
2908
- BOTMUX_LARK_APP_ID: cfg.larkAppId,
2909
- BOTMUX_ROOT_MESSAGE_ID: cfg.rootMessageId,
2910
2745
  ...(injectClaudeSandbox ? { IS_SANDBOX: '1' } : {}),
2911
- ...(claudeResumeTokenThreshold ? { CLAUDE_CODE_RESUME_TOKEN_THRESHOLD: claudeResumeTokenThreshold } : {}),
2912
2746
  },
2913
2747
  });
2914
2748
  // Write CLI PID marker so agent-facing subcommands (`botmux send`, etc.)
@@ -2963,12 +2797,8 @@ function spawnCli(cfg) {
2963
2797
  // calling `botmux send`, harvest the final answer from the CLI transcript
2964
2798
  // and post it to Lark. Codex needs late attach because its rollout id is
2965
2799
  // discovered after the first submit; CoCo's events path is deterministic
2966
- // from botmux sessionId. Hermes uses a global SQLite store, so baseline its
2967
- // row id at spawn and poll for rows after each queued prompt is flushed.
2968
- if (cfg.cliId === 'hermes') {
2969
- hermesBridgeAttach(cfg.resume ? 'baseline-existing' : 'fresh-empty');
2970
- }
2971
- else if (cfg.cliId === 'codex') {
2800
+ // from botmux sessionId.
2801
+ if (cfg.cliId === 'codex') {
2972
2802
  if (cfg.cliSessionId) {
2973
2803
  const rolloutPath = findCodexRolloutBySessionId(cfg.cliSessionId);
2974
2804
  if (rolloutPath) {
@@ -3070,7 +2900,6 @@ function killCli() {
3070
2900
  scrollback = '';
3071
2901
  altBufferActive = false;
3072
2902
  trustHandled = false;
3073
- codexAppOscPending = '';
3074
2903
  }
3075
2904
  // ─── HTTP + WebSocket Server ─────────────────────────────────────────────────
3076
2905
  function startWebServer(host, preferredPort) {