botmux 3.18.6 → 3.18.7

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 (239) hide show
  1. package/dist/.runtime-build-id +1 -1
  2. package/dist/adapters/backend/riff-backend.d.ts +158 -0
  3. package/dist/adapters/backend/riff-backend.d.ts.map +1 -1
  4. package/dist/adapters/backend/riff-backend.js +330 -7
  5. package/dist/adapters/backend/riff-backend.js.map +1 -1
  6. package/dist/adapters/backend/sandbox.d.ts +42 -0
  7. package/dist/adapters/backend/sandbox.d.ts.map +1 -1
  8. package/dist/adapters/backend/sandbox.js +95 -5
  9. package/dist/adapters/backend/sandbox.js.map +1 -1
  10. package/dist/adapters/cli/codex-app.d.ts.map +1 -1
  11. package/dist/adapters/cli/codex-app.js +2 -1
  12. package/dist/adapters/cli/codex-app.js.map +1 -1
  13. package/dist/adapters/cli/dsh.d.ts.map +1 -1
  14. package/dist/adapters/cli/dsh.js +2 -1
  15. package/dist/adapters/cli/dsh.js.map +1 -1
  16. package/dist/adapters/cli/mir.d.ts.map +1 -1
  17. package/dist/adapters/cli/mir.js +2 -1
  18. package/dist/adapters/cli/mir.js.map +1 -1
  19. package/dist/adapters/cli/mira.d.ts.map +1 -1
  20. package/dist/adapters/cli/mira.js +2 -1
  21. package/dist/adapters/cli/mira.js.map +1 -1
  22. package/dist/adapters/hook-command.d.ts +3 -5
  23. package/dist/adapters/hook-command.d.ts.map +1 -1
  24. package/dist/adapters/hook-command.js +59 -13
  25. package/dist/adapters/hook-command.js.map +1 -1
  26. package/dist/autostart.d.ts +76 -0
  27. package/dist/autostart.d.ts.map +1 -1
  28. package/dist/autostart.js +105 -28
  29. package/dist/autostart.js.map +1 -1
  30. package/dist/bot-registry.d.ts +12 -0
  31. package/dist/bot-registry.d.ts.map +1 -1
  32. package/dist/bot-registry.js +43 -3
  33. package/dist/bot-registry.js.map +1 -1
  34. package/dist/cli/dashboard-command.d.ts +142 -0
  35. package/dist/cli/dashboard-command.d.ts.map +1 -1
  36. package/dist/cli/dashboard-command.js +160 -0
  37. package/dist/cli/dashboard-command.js.map +1 -1
  38. package/dist/cli/dashboard-endpoint.d.ts +66 -0
  39. package/dist/cli/dashboard-endpoint.d.ts.map +1 -1
  40. package/dist/cli/dashboard-endpoint.js +144 -30
  41. package/dist/cli/dashboard-endpoint.js.map +1 -1
  42. package/dist/cli/send-dispatch.d.ts +2 -0
  43. package/dist/cli/send-dispatch.d.ts.map +1 -1
  44. package/dist/cli/send-dispatch.js +8 -2
  45. package/dist/cli/send-dispatch.js.map +1 -1
  46. package/dist/cli.d.ts.map +1 -1
  47. package/dist/cli.js +270 -38
  48. package/dist/cli.js.map +1 -1
  49. package/dist/core/binary-self-update.d.ts +7 -0
  50. package/dist/core/binary-self-update.d.ts.map +1 -1
  51. package/dist/core/binary-self-update.js +17 -0
  52. package/dist/core/binary-self-update.js.map +1 -1
  53. package/dist/core/command-handler.d.ts.map +1 -1
  54. package/dist/core/command-handler.js +52 -1
  55. package/dist/core/command-handler.js.map +1 -1
  56. package/dist/core/cost-calculator.d.ts +9 -1
  57. package/dist/core/cost-calculator.d.ts.map +1 -1
  58. package/dist/core/cost-calculator.js +5 -0
  59. package/dist/core/cost-calculator.js.map +1 -1
  60. package/dist/core/passthrough-commands.d.ts.map +1 -1
  61. package/dist/core/passthrough-commands.js +1 -1
  62. package/dist/core/passthrough-commands.js.map +1 -1
  63. package/dist/core/self-spawn.d.ts +46 -1
  64. package/dist/core/self-spawn.d.ts.map +1 -1
  65. package/dist/core/self-spawn.js +57 -0
  66. package/dist/core/self-spawn.js.map +1 -1
  67. package/dist/core/worker-pool.d.ts.map +1 -1
  68. package/dist/core/worker-pool.js +81 -5
  69. package/dist/core/worker-pool.js.map +1 -1
  70. package/dist/daemon.d.ts.map +1 -1
  71. package/dist/daemon.js +93 -0
  72. package/dist/daemon.js.map +1 -1
  73. package/dist/dashboard/autostart-api.d.ts.map +1 -1
  74. package/dist/dashboard/autostart-api.js +16 -3
  75. package/dist/dashboard/autostart-api.js.map +1 -1
  76. package/dist/dashboard/bot-onboarding.d.ts +2 -1
  77. package/dist/dashboard/bot-onboarding.d.ts.map +1 -1
  78. package/dist/dashboard/bot-onboarding.js +22 -6
  79. package/dist/dashboard/bot-onboarding.js.map +1 -1
  80. package/dist/dashboard/bot-payload.d.ts +1 -0
  81. package/dist/dashboard/bot-payload.d.ts.map +1 -1
  82. package/dist/dashboard/bot-payload.js +3 -0
  83. package/dist/dashboard/bot-payload.js.map +1 -1
  84. package/dist/dashboard/connector-api.d.ts.map +1 -1
  85. package/dist/dashboard/connector-api.js +28 -0
  86. package/dist/dashboard/connector-api.js.map +1 -1
  87. package/dist/dashboard/trigger-api.d.ts.map +1 -1
  88. package/dist/dashboard/trigger-api.js +33 -21
  89. package/dist/dashboard/trigger-api.js.map +1 -1
  90. package/dist/dashboard/web/bot-defaults-page.d.ts.map +1 -1
  91. package/dist/dashboard/web/bot-defaults-page.js +12 -2
  92. package/dist/dashboard/web/bot-defaults-page.js.map +1 -1
  93. package/dist/dashboard/web/bot-defaults.d.ts +2 -0
  94. package/dist/dashboard/web/bot-defaults.d.ts.map +1 -1
  95. package/dist/dashboard/web/bot-defaults.js.map +1 -1
  96. package/dist/dashboard/web/bot-onboarding.d.ts +40 -1
  97. package/dist/dashboard/web/bot-onboarding.d.ts.map +1 -1
  98. package/dist/dashboard/web/bot-onboarding.js +52 -2
  99. package/dist/dashboard/web/bot-onboarding.js.map +1 -1
  100. package/dist/dashboard/web/i18n.d.ts.map +1 -1
  101. package/dist/dashboard/web/i18n.js +2 -0
  102. package/dist/dashboard/web/i18n.js.map +1 -1
  103. package/dist/dashboard/webhook-routes.d.ts.map +1 -1
  104. package/dist/dashboard/webhook-routes.js +272 -30
  105. package/dist/dashboard/webhook-routes.js.map +1 -1
  106. package/dist/dashboard-web/app.js +1 -1
  107. package/dist/dashboard-web/chunks/{agent-workbench-dock-page-XHJUYFGN.js → agent-workbench-dock-page-6LC422N6.js} +1 -1
  108. package/dist/dashboard-web/chunks/{agent-workbench-page-FLKTLIRM.js → agent-workbench-page-RSAWY7O2.js} +1 -1
  109. package/dist/dashboard-web/chunks/{bot-defaults-page-XMGLZZ2E.js → bot-defaults-page-67RAWCSQ.js} +1 -1
  110. package/dist/dashboard-web/chunks/{chunk-TLG45URB.js → chunk-IA5KMD5O.js} +1 -1
  111. package/dist/dashboard-web/chunks/{chunk-BU3Q6XC6.js → chunk-K232GT3M.js} +2 -2
  112. package/dist/dashboard-web/chunks/chunk-MMLTCXHP.js +10 -0
  113. package/dist/dashboard-web/chunks/{chunk-ECFC7UG2.js → chunk-R3LJUCEO.js} +1 -1
  114. package/dist/dashboard-web/chunks/{chunk-Z67OSM5P.js → chunk-YJA3KY3J.js} +1 -1
  115. package/dist/dashboard-web/chunks/{connectors-page-WDM4CEAU.js → connectors-page-DJCTHSFB.js} +1 -1
  116. package/dist/dashboard-web/chunks/{feedback-page-GMJ4FLJ4.js → feedback-page-O7SZRKNM.js} +1 -1
  117. package/dist/dashboard-web/chunks/{groups-page-L4ZJNWVR.js → groups-page-7PONUYHE.js} +1 -1
  118. package/dist/dashboard-web/chunks/{insights-page-7LUJU2CX.js → insights-page-J6DAAJ6D.js} +1 -1
  119. package/dist/dashboard-web/chunks/{monitor-room-7LZUJQPF.js → monitor-room-F3QNEW7N.js} +1 -1
  120. package/dist/dashboard-web/chunks/{monitoring-page-AUSXMPYO.js → monitoring-page-JHDD2VS2.js} +1 -1
  121. package/dist/dashboard-web/chunks/{office-page-6ZU6MAZN.js → office-page-MMTN4IKD.js} +1 -1
  122. package/dist/dashboard-web/chunks/{overview-page-QBC5CIYH.js → overview-page-IQ2UJAJP.js} +1 -1
  123. package/dist/dashboard-web/chunks/{roles-page-QO3YCA7D.js → roles-page-FNI4MGX6.js} +1 -1
  124. package/dist/dashboard-web/chunks/{schedules-page-YNGSKDQW.js → schedules-page-6PUU63KS.js} +1 -1
  125. package/dist/dashboard-web/chunks/{sessions-page-BWR4UB6X.js → sessions-page-O4N72EXT.js} +4 -4
  126. package/dist/dashboard-web/chunks/{settings-page-2IRIS3FP.js → settings-page-G7B3STUF.js} +1 -1
  127. package/dist/dashboard-web/chunks/{skills-page-5RZPM6HJ.js → skills-page-CEWKQOIG.js} +1 -1
  128. package/dist/dashboard-web/chunks/{team-federation-page-KERG6LKC.js → team-federation-page-NUP4VK4H.js} +1 -1
  129. package/dist/dashboard-web/chunks/{v3-page-766CBD7H.js → v3-page-M4XF6D5Z.js} +1 -1
  130. package/dist/dashboard-web/chunks/{whiteboards-page-2M6XZD5C.js → whiteboards-page-L755NZX6.js} +1 -1
  131. package/dist/dashboard-web/style.css +13 -0
  132. package/dist/dashboard.js +3 -0
  133. package/dist/dashboard.js.map +1 -1
  134. package/dist/global-config.d.ts +3 -0
  135. package/dist/global-config.d.ts.map +1 -1
  136. package/dist/global-config.js +10 -3
  137. package/dist/global-config.js.map +1 -1
  138. package/dist/i18n/en.d.ts.map +1 -1
  139. package/dist/i18n/en.js +19 -1
  140. package/dist/i18n/en.js.map +1 -1
  141. package/dist/i18n/zh.d.ts.map +1 -1
  142. package/dist/i18n/zh.js +19 -1
  143. package/dist/i18n/zh.js.map +1 -1
  144. package/dist/im/lark/api-gate.d.ts +53 -0
  145. package/dist/im/lark/api-gate.d.ts.map +1 -0
  146. package/dist/im/lark/api-gate.js +322 -0
  147. package/dist/im/lark/api-gate.js.map +1 -0
  148. package/dist/im/lark/audio-transcribe.d.ts +23 -0
  149. package/dist/im/lark/audio-transcribe.d.ts.map +1 -0
  150. package/dist/im/lark/audio-transcribe.js +126 -0
  151. package/dist/im/lark/audio-transcribe.js.map +1 -0
  152. package/dist/im/lark/card-builder.d.ts +6 -0
  153. package/dist/im/lark/card-builder.d.ts.map +1 -1
  154. package/dist/im/lark/card-builder.js +53 -1
  155. package/dist/im/lark/card-builder.js.map +1 -1
  156. package/dist/im/lark/card-handler.d.ts +10 -0
  157. package/dist/im/lark/card-handler.d.ts.map +1 -1
  158. package/dist/im/lark/card-handler.js +68 -1
  159. package/dist/im/lark/card-handler.js.map +1 -1
  160. package/dist/im/lark/client.d.ts.map +1 -1
  161. package/dist/im/lark/client.js +247 -224
  162. package/dist/im/lark/client.js.map +1 -1
  163. package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
  164. package/dist/im/lark/event-dispatcher.js +34 -3
  165. package/dist/im/lark/event-dispatcher.js.map +1 -1
  166. package/dist/im/lark/message-parser.d.ts +16 -0
  167. package/dist/im/lark/message-parser.d.ts.map +1 -1
  168. package/dist/im/lark/message-parser.js +31 -0
  169. package/dist/im/lark/message-parser.js.map +1 -1
  170. package/dist/services/budget-tracker.d.ts +61 -0
  171. package/dist/services/budget-tracker.d.ts.map +1 -0
  172. package/dist/services/budget-tracker.js +306 -0
  173. package/dist/services/budget-tracker.js.map +1 -0
  174. package/dist/services/connector-store.d.ts +16 -0
  175. package/dist/services/connector-store.d.ts.map +1 -1
  176. package/dist/services/connector-store.js.map +1 -1
  177. package/dist/services/failed-turn-retry.d.ts +43 -0
  178. package/dist/services/failed-turn-retry.d.ts.map +1 -0
  179. package/dist/services/failed-turn-retry.js +50 -0
  180. package/dist/services/failed-turn-retry.js.map +1 -0
  181. package/dist/services/model-pricing.d.ts +80 -0
  182. package/dist/services/model-pricing.d.ts.map +1 -0
  183. package/dist/services/model-pricing.js +182 -0
  184. package/dist/services/model-pricing.js.map +1 -0
  185. package/dist/services/session-store.d.ts.map +1 -1
  186. package/dist/services/session-store.js +13 -3
  187. package/dist/services/session-store.js.map +1 -1
  188. package/dist/services/trigger-types.d.ts +10 -0
  189. package/dist/services/trigger-types.d.ts.map +1 -1
  190. package/dist/services/trigger-types.js.map +1 -1
  191. package/dist/services/usage-ledger.d.ts +10 -0
  192. package/dist/services/usage-ledger.d.ts.map +1 -1
  193. package/dist/services/usage-ledger.js +36 -0
  194. package/dist/services/usage-ledger.js.map +1 -1
  195. package/dist/services/voice/asr.d.ts +17 -0
  196. package/dist/services/voice/asr.d.ts.map +1 -0
  197. package/dist/services/voice/asr.js +64 -0
  198. package/dist/services/voice/asr.js.map +1 -0
  199. package/dist/services/voice/index.d.ts +17 -2
  200. package/dist/services/voice/index.d.ts.map +1 -1
  201. package/dist/services/voice/index.js +43 -0
  202. package/dist/services/voice/index.js.map +1 -1
  203. package/dist/services/voice/types.d.ts +15 -0
  204. package/dist/services/voice/types.d.ts.map +1 -1
  205. package/dist/services/webhook-idempotency.d.ts +134 -0
  206. package/dist/services/webhook-idempotency.d.ts.map +1 -0
  207. package/dist/services/webhook-idempotency.js +265 -0
  208. package/dist/services/webhook-idempotency.js.map +1 -0
  209. package/dist/setup/app-name.d.ts +1 -0
  210. package/dist/setup/app-name.d.ts.map +1 -1
  211. package/dist/setup/app-name.js +7 -0
  212. package/dist/setup/app-name.js.map +1 -1
  213. package/dist/setup/bot-config-editor.d.ts +28 -0
  214. package/dist/setup/bot-config-editor.d.ts.map +1 -1
  215. package/dist/setup/bot-config-editor.js +73 -0
  216. package/dist/setup/bot-config-editor.js.map +1 -1
  217. package/dist/setup/open-platform-automation.d.ts +26 -0
  218. package/dist/setup/open-platform-automation.d.ts.map +1 -1
  219. package/dist/setup/open-platform-automation.js +90 -1
  220. package/dist/setup/open-platform-automation.js.map +1 -1
  221. package/dist/setup/open-platform-outcome.d.ts.map +1 -1
  222. package/dist/setup/open-platform-outcome.js +8 -2
  223. package/dist/setup/open-platform-outcome.js.map +1 -1
  224. package/dist/types.d.ts +20 -1
  225. package/dist/types.d.ts.map +1 -1
  226. package/dist/utils/usage-limit-tracker.d.ts +29 -9
  227. package/dist/utils/usage-limit-tracker.d.ts.map +1 -1
  228. package/dist/utils/usage-limit-tracker.js +122 -14
  229. package/dist/utils/usage-limit-tracker.js.map +1 -1
  230. package/dist/worker.js +27 -6
  231. package/dist/worker.js.map +1 -1
  232. package/dist/workflows/definition.d.ts +56 -56
  233. package/dist/workflows/events/payloads.d.ts +2 -2
  234. package/dist/workflows/events/schema.d.ts +430 -430
  235. package/dist/workflows/migration/v2-run-archive-schema.d.ts +2 -2
  236. package/dist/workflows/v3/run-envelope.d.ts +56 -56
  237. package/package.json +9 -8
  238. package/scripts/postinstall-bin.mjs +25 -0
  239. package/dist/dashboard-web/chunks/chunk-NJCJR3U2.js +0 -10
@@ -1 +1 @@
1
- {"version":3,"file":"send-dispatch.js","sourceRoot":"","sources":["../../src/cli/send-dispatch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"send-dispatch.js","sourceRoot":"","sources":["../../src/cli/send-dispatch.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AA8BA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAqLhD,OAAO,EAAE,KAAK,KAAK,EAA0C,MAAM,yBAAyB,CAAC;AA2iB7F;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,GAAG,OAAO,CACpF;IACE,EAAE,EAAE,IAAI,CAAC;IACT,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,oDAAoD;IACpD,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,GACD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,CACrC,CA6LA;AAmlDD,MAAM,MAAM,kBAAkB,GAC1B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,SAAS,GAAG,gBAAgB,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GACtE;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,WAAW,GAAG,WAAW,GAAG,YAAY,GAAG,SAAS,GAAG,kBAAkB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtH,MAAM,MAAM,iBAAiB,GACzB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,SAAS,GAAG,iBAAiB,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GACvE;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,WAAW,GAAG,YAAY,GAAG,SAAS,GAAG,kBAAkB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AA4rQxG;;;;;;;;;;;GAWG;AACH,wBAAsB,OAAO,CAC3B,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EACvC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,qBAAqB,EAAE,SAAS,CAAC,EAC9F,KAAK,EAAE,MAAM,EACb,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,2BAA2B,EAAE,UAAU,GAAG,IAAI,CAAC;AAC1F;qDACqD;AACrD,wBAAwB,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,2BAA2B,EAAE,UAAU,GAAG,IAAI,CAAC,GAClH,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAuL7B"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AA+BA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AA4LhD,OAAO,EAAE,KAAK,KAAK,EAA0C,MAAM,yBAAyB,CAAC;AA4iB7F;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,GAAG,OAAO,CACpF;IACE,EAAE,EAAE,IAAI,CAAC;IACT,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,oDAAoD;IACpD,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,GACD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,CACrC,CA6LA;AA4pDD,MAAM,MAAM,kBAAkB,GAC1B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,SAAS,GAAG,gBAAgB,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GACtE;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,WAAW,GAAG,WAAW,GAAG,YAAY,GAAG,SAAS,GAAG,kBAAkB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtH,MAAM,MAAM,iBAAiB,GACzB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,SAAS,GAAG,iBAAiB,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GACvE;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,WAAW,GAAG,YAAY,GAAG,SAAS,GAAG,kBAAkB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAoxQxG;;;;;;;;;;;GAWG;AACH,wBAAsB,OAAO,CAC3B,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EACvC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,qBAAqB,EAAE,SAAS,CAAC,EAC9F,KAAK,EAAE,MAAM,EACb,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,2BAA2B,EAAE,UAAU,GAAG,IAAI,CAAC;AAC1F;qDACqD;AACrD,wBAAwB,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,2BAA2B,EAAE,UAAU,GAAG,IAAI,CAAC,GAClH,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAuL7B"}
package/dist/cli.js CHANGED
@@ -6,6 +6,7 @@
6
6
  * botmux setup — interactive first-time configuration
7
7
  * botmux setup --no-open-platform-auto — skip Feishu Open Platform automation
8
8
  * botmux setup list|add|configure|edit|remove — scripted (non-TUI) bot management, see `botmux setup help`
9
+ * botmux clone <bot> [--name <name>] — create a new app, then copy an existing bot's configuration
9
10
  * botmux start — start daemon and auto plugin services
10
11
  * botmux stop [--with-plugin] — stop daemon (optionally stop auto plugin services)
11
12
  * botmux restart [--with-plugin] — restart daemon, then ensure auto plugin services
@@ -40,13 +41,13 @@ import { dashboardSecretPath } from './core/dashboard-secret.js';
40
41
  import { acceptedDispatchBotAppIds, activeConversationBotOpenIds, buildDispatchCompletionBrief, parseDispatchBotSpec, buildDispatchMessages, buildRepoPrimeText, buildReportContent, eligibleAutoMentionAliases, foldableChatSessionAppIds, offTopicSubBotTopic, resolveReportPlacement, resolveReportRecipient, resolveSendTarget, threadRootForReachability } from './core/dispatch.js';
41
42
  import { withBotSteerDirective } from './core/bot-steer-directive.js';
42
43
  import { pickTurnReplyTarget, collectTurnWindowParticipants } from './core/reply-target.js';
43
- import { enableAutostart, disableAutostart, autostartStatus, refreshAutostart, } from './autostart.js';
44
+ import { consumeAutostartUnitMarker, enableAutostart, disableAutostart, autostartStatus, refreshAutostart, } from './autostart.js';
44
45
  import { tmuxEnv } from './setup/ensure-tmux.js';
45
46
  import { writeBotsJsonAtomic as writeBotsAtomic } from './setup/bots-store.js';
46
- import { applyBotConfigEdits, assertUniqueBotProcessNames, botProcessName, normalizeBotConfig, parseBotConfigsJson, parseBotSelection, removeBotConfig, resolveCliId, assertOwnerWhenChatGroups, findInvalidAllowedUserEntries, hasOwnerEntry, } from './setup/bot-config-editor.js';
47
+ import { applyBotConfigEdits, assertUniqueBotProcessNames, botProcessName, cloneBotConfig, cloneOwnerEntries, normalizeBotConfig, parseBotConfigsJson, parseBotSelection, removeBotConfig, resolveCliId, assertOwnerWhenChatGroups, findInvalidAllowedUserEntries, hasOwnerEntry, } from './setup/bot-config-editor.js';
47
48
  import { resolveCliSelection, selectionKeyForBot } from './setup/cli-selection.js';
48
49
  import { checkCliAvailability, hasAgentLaunchConfigChanged } from './setup/cli-availability.js';
49
- import { resolveSetupAppName } from './setup/app-name.js';
50
+ import { resolveCloneAppName, resolveSetupAppName } from './setup/app-name.js';
50
51
  import { blocksSetupBotStart, classifySetupOpenPlatformOutcome, scriptedSetupOpenPlatformReuseOnly, setupOpenPlatformOutcomeJson, setupOpenPlatformRetryCommand, } from './setup/open-platform-outcome.js';
51
52
  import { buildBotFromAddFlags, editInputFromFlags, isScriptedSetupInvocation, maskAppSecret, parseSetupCommand, SETUP_CLI_USAGE, } from './setup/setup-args.js';
52
53
  import { detectUnusableOwnerEntries, normalizeManagedOwnerEntries, resolveScannerAllowedUser, } from './setup/owner-identity.js';
@@ -68,7 +69,7 @@ import { canWakeDormantBackendForAttach, wakeDormantBackendForAttach, } from './
68
69
  import { SESSION_WAKE_DEADLINE_HEADER } from './core/session-wake-deadline.js';
69
70
  import { terminalCellWidth } from './cli/terminal-width.js';
70
71
  import { attachFrozenManagedZmxSession, freezeManagedZmxAttachTarget, } from './cli/zmx-managed-attach.js';
71
- import { dispatchPrimaryMessage, findStdinAliasAttachment, normalizeInteractiveCardInput, sendFileAttachments, sendVideoAttachments, shouldSendAsPureVideo, validateSlashSend, validateVideoAttachments } from './cli/send-dispatch.js';
72
+ import { describeSendFailure, dispatchPrimaryMessage, findStdinAliasAttachment, normalizeInteractiveCardInput, sendFileAttachments, sendVideoAttachments, shouldSendAsPureVideo, validateSlashSend, validateVideoAttachments } from './cli/send-dispatch.js';
72
73
  import { buildCardPatchSuccessOutput, CARD_COMMAND_USAGE, CARD_PATCH_USAGE, cardPatchArgsWantHelp, executeCardPatch, parseCardPatchArgs, readCardPatchInput } from './cli/card-dispatch.js';
73
74
  import { dispatchDeferredTopicSend, reusableDeferredTopicRoot } from './cli/deferred-topic-send.js';
74
75
  import { readDeferredTopicBinding } from './core/deferred-topic-binding.js';
@@ -76,7 +77,7 @@ import { callDashboard } from './cli/dashboard-endpoint.js';
76
77
  import { ensureDevboxDashboardExport } from './platform/devbox-dashboard-export.js';
77
78
  import { platformMachineBaseUrl, publicReverseProxyBaseUrl } from './platform/binding.js';
78
79
  import { isRemoteAccessEnabled } from './global-config.js';
79
- import { DASHBOARD_COMMAND_USAGE, executeDashboardCommand, formatDashboardFallbackFailure, formatDashboardSuccessLines, } from './cli/dashboard-command.js';
80
+ import { DASHBOARD_COMMAND_USAGE, dashboardComingUpFromState, dashboardFailureIsTerminal, executeDashboardCliCommand, formatDashboardFallbackFailure, formatDashboardSuccessLines, formatDashboardUnreachable, shouldKeepWaitingForDashboard, } from './cli/dashboard-command.js';
80
81
  import { globalInstallUpdateLockTarget, globalInstallUpdateLockTargetIn, installLatestBotmuxSync } from './core/maintenance.js';
81
82
  import { formatGlobalInstallCommand, resolveGlobalInstallPlan, UnsupportedGlobalInstallError, } from './utils/global-install.js';
82
83
  import { isLocalDevInstall, botmuxCliEntryAt, bakedBinaryVersion, botmuxInstallRoot } from './utils/install-info.js';
@@ -502,6 +503,8 @@ async function finishOpenPlatformSetup(appId, brand, options = {}) {
502
503
  }
503
504
  if (result.versionId)
504
505
  say(` 已提交发布版本: ${result.versionId}`);
506
+ else if (result.publishSkipped)
507
+ say(' 本次配置无变更,已跳过发版(未创建新版本)。');
505
508
  else
506
509
  say(' 已创建版本;未从响应中解析到 versionId,请到开放平台确认是否需要手动发布。');
507
510
  say('');
@@ -1236,7 +1239,7 @@ function botJsonView(bot, index) {
1236
1239
  * 的老姿势在问题序列变化时会静默错位)。校验口径与 TUI 一致:目录存在性、
1237
1240
  * owner 必填、凭证变更时的 tenant_access_token 校验,任一失败不写盘。
1238
1241
  */
1239
- async function cmdSetupScripted(argv) {
1242
+ async function cmdSetupScripted(argv, cloneSource) {
1240
1243
  const wantsJson = argv.includes('--json');
1241
1244
  let cmd;
1242
1245
  try {
@@ -1483,6 +1486,9 @@ async function cmdSetupScripted(argv) {
1483
1486
  failSetupScripted(cmd.json, err?.message ?? String(err));
1484
1487
  return;
1485
1488
  }
1489
+ if (cloneSource) {
1490
+ bot = cloneBotConfig(cloneSource, bot);
1491
+ }
1486
1492
  if (existing.some(b => b?.larkAppId === bot.larkAppId)) {
1487
1493
  failSetupScripted(cmd.json, `AppID ${bot.larkAppId} 已存在,修改请用 botmux setup edit ${bot.larkAppId}。`);
1488
1494
  return;
@@ -1756,6 +1762,45 @@ async function cmdSetupScripted(argv) {
1756
1762
  console.log('下一步: botmux restart');
1757
1763
  }
1758
1764
  }
1765
+ async function cmdClone(argv) {
1766
+ const [sourceSelector, nameFlag, requestedName] = argv;
1767
+ if (!sourceSelector
1768
+ || (argv.length !== 1 && (argv.length !== 3 || nameFlag !== '--name' || !requestedName?.trim()))) {
1769
+ console.error('用法: botmux clone <进程名|配置名|AppID> [--name <新名称>]');
1770
+ process.exitCode = 1;
1771
+ return;
1772
+ }
1773
+ const bots = loadBotsJson();
1774
+ const sourceIndex = parseBotSelection(sourceSelector, bots);
1775
+ if (sourceIndex === undefined) {
1776
+ console.error(`找不到机器人 "${sourceSelector}"。`);
1777
+ process.exitCode = 1;
1778
+ return;
1779
+ }
1780
+ const source = bots[sourceIndex];
1781
+ const owners = cloneOwnerEntries(source, process.env.BOTMUX_LARK_APP_ID, process.env.BOTMUX_OWNER_OPEN_ID ?? process.env.__OWNER_OPEN_ID);
1782
+ if (!hasOwnerEntry(owners)) {
1783
+ console.error('源机器人没有可跨应用复用的 owner(邮箱、手机号、on_ union_id,或当前会话已认证的 owner)。');
1784
+ process.exitCode = 1;
1785
+ return;
1786
+ }
1787
+ const addArgs = ['add', '--create-app', '--allowed-users', owners.join(',')];
1788
+ if (botBrand(source) === 'lark') {
1789
+ if (requestedName) {
1790
+ console.error('Lark SDK 创建路径暂不支持自定义应用名称。');
1791
+ process.exitCode = 1;
1792
+ return;
1793
+ }
1794
+ addArgs.push('--brand', 'lark');
1795
+ }
1796
+ else {
1797
+ const sourceName = typeof source.displayName === 'string' && source.displayName.trim()
1798
+ ? source.displayName.trim()
1799
+ : botProcessName(source, sourceIndex);
1800
+ addArgs.push('--app-name', resolveCloneAppName(requestedName, sourceName));
1801
+ }
1802
+ await cmdSetupScripted(addArgs, source);
1803
+ }
1759
1804
  // ─── Commands ────────────────────────────────────────────────────────────────
1760
1805
  async function cmdSetup() {
1761
1806
  ensureConfigDir();
@@ -2014,6 +2059,9 @@ function preflightNodeSanity() {
2014
2059
  }
2015
2060
  }
2016
2061
  async function cmdStart() {
2062
+ // FIRST STATEMENT, before any await or dependency probe: those run as child
2063
+ // processes and would inherit the marker. See consumeAutostartUnitMarker.
2064
+ const bootHookStart = consumeAutostartUnitMarker();
2017
2065
  // `--systemd-service` and the PM2-God ownership gating that used to live here
2018
2066
  // are gone with pm2 itself: the built-in supervisor owns single-owner exclusion
2019
2067
  // via fleet-state (pid + kill-0 under the fleet mutation lock), so there is no
@@ -2026,7 +2074,9 @@ async function cmdStart() {
2026
2074
  ensureConfigDir();
2027
2075
  await ensureSystemDependencies();
2028
2076
  const botsForCheck = await preflightConfiguredBotCredentials();
2029
- await startConfiguredFleet(botsForCheck);
2077
+ // The boot hook marks itself so purely presentational waiting can be skipped
2078
+ // there (see startConfiguredFleet).
2079
+ await startConfiguredFleet(botsForCheck, { bootHookStart });
2030
2080
  }
2031
2081
  /** Validate before systemd handoff so a predictable failure cannot stop the old fleet. */
2032
2082
  async function preflightConfiguredBotCredentials() {
@@ -2097,17 +2147,28 @@ async function startConfiguredFleet(botsForCheck, options = {}) {
2097
2147
  console.log(`\n✅ daemon 已启动${count > 1 ? ` (${count} 个机器人, 每个独立进程)` : ''}`);
2098
2148
  console.log(` 日志: botmux logs`);
2099
2149
  console.log(` 状态: botmux status`);
2100
- // If the user previously enabled autostart, sync the unit file in case
2101
- // node/cli.js paths changed since (nvm switch, npm upgrade, etc.).
2102
- // A Type=forking unit necessarily has a live start Job/activating state
2103
- // until this ExecStart child returns. The parent repair transaction already
2104
- // wrote and daemon-reloaded the unit; self-refresh here would reject that
2105
- // expected in-flight state and make every systemd start fail.
2106
- if (!options.systemdServiceStart
2150
+ // If the user previously enabled autostart, sync the unit file in case the
2151
+ // launch paths changed since (nvm switch, npm upgrade, a move between the Node
2152
+ // and compiled forms).
2153
+ // NOT UNDER THE BOOT HOOK ITSELF: the unit is `Type=oneshot` with
2154
+ // `RemainAfterExit=yes`, so this ExecStart child IS the start job — rewriting
2155
+ // and `daemon-reload`ing the very unit that is mid-transaction is at best
2156
+ // pointless and at worst makes the start fail.
2157
+ if (!options.bootHookStart
2107
2158
  && refreshAutostart({ pkgRoot: PKG_ROOT, configDir: CONFIG_DIR, logDir: LOG_DIR })) {
2108
- console.log(` autostart 主 unit 已同步到当前 Node/cli.js 路径`);
2109
- }
2110
- await printDashboardHintWithRetry();
2159
+ console.log(` autostart 主 unit 已同步到当前启动路径`);
2160
+ }
2161
+ // NOT UNDER systemd. Nobody reads a dashboard link at boot, and this poll waits
2162
+ // up to DASHBOARD_READY_WAIT_MS (90s) — exactly the DefaultTimeoutStartUSec on a
2163
+ // stock user manager (VERIFIED: `systemctl --user show -p
2164
+ // DefaultTimeoutStartUSec` → 1min 30s), with the credential preflight, legacy
2165
+ // reap and plugin reconcile already spent before we get here. A slow fleet would
2166
+ // push this Type=oneshot unit past that deadline; systemd would call the start a
2167
+ // failure and, under the default KillMode=control-group, take the freshly
2168
+ // started supervisor down with the unit — so fixing the unit's path would be
2169
+ // undone by waiting inside it. Purely presentational: skip it.
2170
+ if (!options.bootHookStart)
2171
+ await printDashboardHintWithRetry();
2111
2172
  }
2112
2173
  /**
2113
2174
  * Wipe stale dashboard-daemon descriptors (mtime older than 5 minutes).
@@ -2277,11 +2338,18 @@ async function cmdRestart() {
2277
2338
  }, { maxWaitMs: 5_000 });
2278
2339
  await reconcilePluginServicesForCli(undefined, { autoOnly: true });
2279
2340
  if (refreshAutostart({ pkgRoot: PKG_ROOT, configDir: CONFIG_DIR, logDir: LOG_DIR })) {
2280
- console.log(`autostart 主 unit 已同步到当前 Node/cli.js 路径`);
2341
+ console.log(`autostart 主 unit 已同步到当前启动路径`);
2281
2342
  }
2282
2343
  console.log('✅ daemon 已重启');
2283
- await printDashboardHintWithRetry();
2284
2344
  }, { maxWaitMs: 5_000 });
2345
+ // OUTSIDE THE FLEET MUTATION LOCK, deliberately. This poll waits up to
2346
+ // DASHBOARD_READY_WAIT_MS (90s) and reads nothing the lock protects — it only
2347
+ // asks the dashboard for a link. Holding the lock across it would block every
2348
+ // other fleet mutation (`start`, `stop`, `start-bot`, plugin reconcile) for that
2349
+ // whole time, and those callers give up after 5s with a lock timeout. The
2350
+ // restart itself, its health gate, the plugin reconcile and the autostart sync
2351
+ // all stay inside.
2352
+ await printDashboardHintWithRetry();
2285
2353
  }
2286
2354
  async function ensureBotDaemonStopped(appId, _opts = {}) {
2287
2355
  ensureConfigDir();
@@ -2820,13 +2888,21 @@ function cmdUpgradeLocalDev() {
2820
2888
  * over {@link callDashboard}, which handles 404 disambiguation and self-heals a
2821
2889
  * stale `.dashboard-port` that points at the wrong service (e.g. daemon IPC).
2822
2890
  * See `src/cli/dashboard-endpoint.ts` for the why.
2891
+ *
2892
+ * `rescanWhenUnreachable` extends that self-heal to a recorded port with NOTHING
2893
+ * listening on it. It must stay opt-in: during boot `unreachable` is the normal
2894
+ * state and is resolved by retrying the same port, so scanning the range on every
2895
+ * poll tick would be pure waste. `executeDashboardCliCommand` passes it for the
2896
+ * one-shot `botmux dashboard`; the readiness poll below must NOT.
2823
2897
  */
2824
- async function callDashboardEndpoint(path) {
2898
+ async function callDashboardEndpoint(path, opts = {}) {
2825
2899
  return callDashboard({
2826
2900
  configDir: CONFIG_DIR,
2827
2901
  defaultPort: 7891,
2828
2902
  envPort: process.env.BOTMUX_DASHBOARD_PORT,
2829
2903
  path,
2904
+ rescanWhenUnreachable: opts.rescanWhenUnreachable,
2905
+ requestTimeoutMs: opts.requestTimeoutMs,
2830
2906
  });
2831
2907
  }
2832
2908
  /**
@@ -2845,23 +2921,76 @@ async function ensureDevboxDashboardExportForCurrentPort() {
2845
2921
  remoteBaseConfigured: Boolean((isRemoteAccessEnabled() && platformMachineBaseUrl()) || publicReverseProxyBaseUrl()),
2846
2922
  });
2847
2923
  }
2924
+ /**
2925
+ * Is the supervisor going to have a dashboard answering shortly — i.e. is one
2926
+ * running, or scheduled to be? Answers "is it worth waiting", so the question is
2927
+ * about the SUPERVISOR'S INTENT, not about a pid existing at this instant.
2928
+ *
2929
+ * A pid-only check was wrong in a way that reproduced the very bug this helps fix:
2930
+ * after a crash the supervisor records `status='launching', pid=0` and holds a
2931
+ * restart timer (fleet-supervisor.ts, handleExit), so during that backoff a
2932
+ * pid-based check says "not live", the poll stops, and `botmux dashboard` advises a
2933
+ * restart — while the supervisor was about to bring it back on its own.
2934
+ *
2935
+ * • No live supervisor → nothing will start anything. false.
2936
+ * • `launching` → true even with pid 0: that IS the supervisor saying "coming up".
2937
+ * • `online` → the recorded pid must really be alive; an `online` row can outlive
2938
+ * the process it names (a crash between state writes, or a stale state file).
2939
+ * • `stopped` / `errored` → the supervisor has given up. false.
2940
+ * • No row yet → `null`, meaning "cannot tell yet": a just-started supervisor has
2941
+ * not written the dashboard row, which must not be read as "never will".
2942
+ *
2943
+ * `fleet-runtime` is imported dynamically to match every other use of it in this
2944
+ * file — it pulls in the supervisor machinery, which the CLI deliberately keeps
2945
+ * off its startup path.
2946
+ */
2947
+ async function dashboardMemberComingUp() {
2948
+ try {
2949
+ const { fleetStatePath, DASHBOARD_PROCESS_NAME } = await import('./core/fleet-runtime.js');
2950
+ const { readFleetState } = await import('./core/fleet-state-store.js');
2951
+ // The mapping itself lives in dashboard-command.ts as a pure function so it is
2952
+ // unit testable; this wrapper only supplies the I/O (state file + pid probe).
2953
+ return dashboardComingUpFromState(readFleetState(fleetStatePath()), DASHBOARD_PROCESS_NAME, (pid) => { try {
2954
+ process.kill(pid, 0);
2955
+ return true;
2956
+ }
2957
+ catch {
2958
+ return false;
2959
+ } });
2960
+ }
2961
+ catch {
2962
+ return null; // unreadable → cannot tell
2963
+ }
2964
+ }
2848
2965
  /**
2849
2966
  * Best-effort dashboard hint printed after start/restart. Reads the LIVE link
2850
2967
  * via /__cli/current (non-rotating) so an already-shared URL is preserved.
2851
- * Retries for a few seconds since the dashboard process boots after the daemon;
2852
- * if it still isn't ready, prints a soft fallback so the user isn't blocked.
2968
+ * Retries since the dashboard process boots after the daemon; if it still isn't
2969
+ * ready, prints a soft fallback so the user isn't blocked.
2970
+ *
2971
+ * BUDGET AND STOP CONDITIONS live in `cli/dashboard-command.ts`
2972
+ * (`DASHBOARD_READY_WAIT_MS`, `shouldKeepWaitingForDashboard`) so they are unit
2973
+ * testable and shared with the `botmux dashboard` message below — the two used to
2974
+ * disagree, which is how an operator got told to restart a healthy, still-booting
2975
+ * dashboard. The wait is bounded by LIVENESS as well as by the clock, so a fleet
2976
+ * with the dashboard disabled or already crashed falls through in one tick instead
2977
+ * of hanging for the whole budget. A fast boot is unaffected — the loop returns the
2978
+ * moment the dashboard answers.
2853
2979
  */
2854
2980
  async function printDashboardHintWithRetry() {
2855
- const maxWaitMs = 6000;
2856
2981
  const stepMs = 500;
2857
2982
  const started = Date.now();
2858
2983
  let last = null;
2859
2984
  // 只在轮询之前做一次:导出结果与「dashboard 起没起来」无关,放在循环体里每轮都会
2860
2985
  // 重新 spawn 一次 merlin-cli,而失败路径最坏每轮付满 5s 超时——本函数自己的预算
2861
- // 6s,实测会把 start/restart 的这段拖到近两倍。
2986
+ // 撑不住,实测会把 start/restart 的这段拖到近两倍。
2862
2987
  await ensureDevboxDashboardExportForCurrentPort();
2863
- while (Date.now() - started < maxWaitMs) {
2864
- last = await callDashboardEndpoint('/__cli/current');
2988
+ for (;;) {
2989
+ // Bounded per request (NOT opted into rescanning): this loop's own budget is
2990
+ // only consulted below, after the await returns, so a recorded port that
2991
+ // accepts the connection and never answers would hang here forever and never
2992
+ // reach that check. See requestTimeoutMs in dashboard-endpoint.ts.
2993
+ last = await callDashboardEndpoint('/__cli/current', { requestTimeoutMs: stepMs * 4 });
2865
2994
  if (last.ok) {
2866
2995
  console.log(` 面板: botmux dashboard (${last.url})`);
2867
2996
  // 走中心化平台链接时,附带本地直连兜底,平台异常也能直接 ip:port 访问。
@@ -2869,11 +2998,14 @@ async function printDashboardHintWithRetry() {
2869
2998
  console.log(` 本地直连(平台异常时可用): ${last.localUrl}`);
2870
2999
  return;
2871
3000
  }
2872
- // Terminal states — file-backed secret/token won't appear mid-poll, unlike
2873
- // a not-yet-listening port. `wrong-service` means the port file points at a
2874
- // non-dashboard server and discovery already failed to find it, so retrying
2875
- // won't help either. Don't spin on any of them.
2876
- if (last.reason === 'no-secret' || last.reason === 'no-active-token' || last.reason === 'wrong-service')
3001
+ const keepWaiting = shouldKeepWaitingForDashboard({
3002
+ elapsedMs: Date.now() - started,
3003
+ failure: last,
3004
+ // Only asked when a retry is otherwise possible, so a fast boot never pays
3005
+ // for reading the fleet state.
3006
+ comingUp: dashboardFailureIsTerminal(last) ? false : await dashboardMemberComingUp(),
3007
+ });
3008
+ if (!keepWaiting)
2877
3009
  break;
2878
3010
  await new Promise(r => setTimeout(r, stepMs));
2879
3011
  }
@@ -2901,7 +3033,11 @@ async function cmdDashboard(args) {
2901
3033
  && (rawAction === undefined || rawAction === 'current' || rawAction === 'rotate');
2902
3034
  if (resolvesEndpoint)
2903
3035
  await ensureDevboxDashboardExportForCurrentPort();
2904
- const execution = await executeDashboardCommand(args, callDashboardEndpoint);
3036
+ // The opt-in for a dead recorded port lives INSIDE executeDashboardCliCommand
3037
+ // so it is directly testable (see its doc comment for why source-regex guards
3038
+ // were not). `printDashboardHintWithRetry()` deliberately does not use this
3039
+ // wrapper — a 500ms poll must never scan the probe range per tick.
3040
+ const execution = await executeDashboardCliCommand(args, callDashboardEndpoint);
2905
3041
  if (execution.kind === 'help') {
2906
3042
  console.log(DASHBOARD_COMMAND_USAGE);
2907
3043
  return;
@@ -2924,11 +3060,22 @@ async function cmdDashboard(args) {
2924
3060
  const recordedPort = (existsSync(portFile) ? readFileSync(portFile, 'utf8').trim() : '')
2925
3061
  || process.env.BOTMUX_DASHBOARD_PORT
2926
3062
  || '7891';
2927
- if (r.reason === 'no-secret') {
3063
+ // Every non-terminal failure shape is reachable while the dashboard is still
3064
+ // booting, so ask ONCE whether a dashboard member is actually live and let that
3065
+ // decide the advice. Telling the operator to restart a healthy, still-booting
3066
+ // dashboard throws away the boot that was about to succeed — see
3067
+ // dashboardFailureIsTerminal for why `no-secret`/`wrong-service` are transient.
3068
+ const stillComingUp = dashboardFailureIsTerminal(r) ? false : await dashboardMemberComingUp();
3069
+ if (stillComingUp !== false) {
3070
+ console.error(formatDashboardUnreachable(recordedPort, stillComingUp));
3071
+ if (r.reason === 'wrong-service' && r.detail)
3072
+ console.error(` 详情: ${r.detail}`);
3073
+ }
3074
+ else if (r.reason === 'no-secret') {
2928
3075
  console.error('Dashboard not initialised. Run `botmux restart` first.');
2929
3076
  }
2930
3077
  else if (r.reason === 'unreachable') {
2931
- console.error(`dashboard process not reachable on 127.0.0.1:${recordedPort} — \`botmux restart\` will start it`);
3078
+ console.error(formatDashboardUnreachable(recordedPort, false));
2932
3079
  }
2933
3080
  else if (r.reason === 'wrong-service') {
2934
3081
  // 127.0.0.1:<port> answered, but it isn't the dashboard (typically the
@@ -4808,6 +4955,8 @@ async function readCardUsageSnapshotForSend(session, larkAppId) {
4808
4955
  // (parity with the daemon reader and the ledger/dashboard consumers).
4809
4956
  larkAppId: larkAppId ?? session.larkAppId,
4810
4957
  fresh: true,
4958
+ // 定价覆盖:从 bot 配置解析,未配置时 undefined(costCny 缺省)。
4959
+ pricing: larkAppId ? resolvePricingForCli(larkAppId) : undefined,
4811
4960
  });
4812
4961
  }
4813
4962
  catch {
@@ -5355,6 +5504,8 @@ botmux v${getVersion()} — IM ↔ AI 编程 CLI 桥接
5355
5504
  命令:
5356
5505
  setup 交互式配置(首次使用 / 添加机器人)
5357
5506
  默认使用 botmux 内置 Feishu Web QR 登录尝试自动导入权限/redirect/发布版本;可加 --no-open-platform-auto 跳过
5507
+ clone <机器人名> [--name <新名称>]
5508
+ 创建新应用并复制该机器人的行为配置;留空名称自动使用 源名称-copy-时间戳
5358
5509
  start 启动 daemon,并启动 mode=auto 的插件 service
5359
5510
  stop 停止 daemon(默认不停止插件 service;--with-plugin 显式停止 mode=auto 的插件 service)
5360
5511
  restart 重启 daemon(默认不停止插件 service,core 启动后确保 mode=auto 正在运行;--with-plugin 显式先停再启动 auto service)
@@ -5403,6 +5554,8 @@ botmux v${getVersion()} — IM ↔ AI 编程 CLI 桥接
5403
5554
  voice 配置语音总结(高级功能,独立于 setup)— 交互式填 TTS 引擎+凭证
5404
5555
  voice status 查看当前语音配置(凭证打码)
5405
5556
  voice disable 关闭语音功能(移除配置)
5557
+ voice asr 配置语音识别(飞书语音消息→文字驱动会话)
5558
+ voice asr status|disable 查看 / 关闭 ASR
5406
5559
  vc-agent tat-gate|poll
5407
5560
  飞书会议智能体 P0:校验 TAT 会中事件读取、轮询会议事件并触发 workflow
5408
5561
  plugin 管理 botmux 插件
@@ -6535,7 +6688,8 @@ import { resolveFeedbackPolicyForDelivery, resolveFeedbackTeamId } from './servi
6535
6688
  import { normalizeFeedbackPolicy } from './services/feedback-policy.js';
6536
6689
  import { applyInlineMentions } from './im/lark/inline-mentions.js';
6537
6690
  import { renderBrandTemplate } from './im/lark/brand-template.js';
6538
- import { effectiveDefaultWorkingDir, loadBotConfigs, resolveBrandLabel, resolveUsageDisplay } from './bot-registry.js';
6691
+ import { effectiveDefaultWorkingDir, loadBotConfigs, resolveBrandLabel, resolveUsageDisplay, getBot } from './bot-registry.js';
6692
+ import { resolvePricingConfig } from './services/model-pricing.js';
6539
6693
  import { config } from './config.js';
6540
6694
  import { getSessionUsageSnapshot } from './core/cost-calculator.js';
6541
6695
  import { resolveQuoteTarget, shouldDropAfterTheFactTopicQuote, validateMentionDecision, mentionBackAmbiguity, mentionBackAmbiguityError, parseAttentionFlag, attentionUsageError, managedVcQuoteError, managedVcCustomCardError, managedVcSendControlError, managedVcSendPayloadError, containsLarkAtTag, } from './services/send-policy.js';
@@ -6901,6 +7055,10 @@ async function registerSelfFromCredFile() {
6901
7055
  * `loadBotConfigs()` 重载会把沙箱残留的 stale bots.json(可能是同 appId 的旧
6902
7056
  * secret)覆盖到注册表上——每次本地重载后必须把 env bot 重新注册回去压轴。 */
6903
7057
  let envPinnedRiffBot = null;
7058
+ /** 从 bot 配置解析定价(bots.json pricing 块 → 内置表)。未配置时返回 undefined。 */
7059
+ function resolvePricingForCli(larkAppId) {
7060
+ return resolvePricingConfig(getBot(larkAppId)?.config?.pricing);
7061
+ }
6904
7062
  function riffModeSession(opts = {}) {
6905
7063
  const appId = process.env.BOTMUX_LARK_APP_ID;
6906
7064
  const appSecret = process.env.BOTMUX_LARK_APP_SECRET;
@@ -7856,7 +8014,7 @@ async function cmdSend(rest) {
7856
8014
  }));
7857
8015
  }
7858
8016
  catch (e) {
7859
- console.error(`语音发送失败:${e?.message ?? e}`);
8017
+ console.error(`语音发送失败:${describeSendFailure(e)}`);
7860
8018
  if (dir) {
7861
8019
  try {
7862
8020
  rmSync(dir, { recursive: true, force: true });
@@ -7937,7 +8095,7 @@ async function cmdSend(rest) {
7937
8095
  console.log(JSON.stringify({ success: true, commentId: exactDocTarget.commentId, sessionId: originSessionId, kind: 'doc-comment', chunks: chunks.length }));
7938
8096
  }
7939
8097
  catch (e) {
7940
- console.error(`文档评论发送失败:${e?.message ?? e}`);
8098
+ console.error(`文档评论发送失败:${describeSendFailure(e)}`);
7941
8099
  process.exit(1);
7942
8100
  }
7943
8101
  return;
@@ -8881,7 +9039,7 @@ async function cmdSend(rest) {
8881
9039
  }));
8882
9040
  }
8883
9041
  catch (err) {
8884
- console.error(`发送失败: ${err.message}`);
9042
+ console.error(`发送失败: ${describeSendFailure(err)}`);
8885
9043
  process.exit(1);
8886
9044
  }
8887
9045
  }
@@ -11429,6 +11587,19 @@ if (__entrySubcommand) {
11429
11587
  await import('./index-supervisor.js');
11430
11588
  else if (__entrySubcommand === 'dashboard')
11431
11589
  await import('./index-dashboard.js');
11590
+ // CLI-adapter runners. Same mechanism, different role: these ARE the CLI session
11591
+ // process an adapter launches, not a fleet member. Without these branches the
11592
+ // compiled binary re-execed itself with a `/$bunfs/…-runner.js` argv[0] that
11593
+ // dispatch did not recognise, so it printed help and exited 0 — the user saw a
11594
+ // help dump instead of a session, and nothing reported an error.
11595
+ else if (__entrySubcommand === 'codex-app-runner')
11596
+ await import('./codex-app-runner.js');
11597
+ else if (__entrySubcommand === 'dsh-runner')
11598
+ await import('./dsh-runner.js');
11599
+ else if (__entrySubcommand === 'mira-runner')
11600
+ await import('./mira-runner.js');
11601
+ else if (__entrySubcommand === 'mir-runner')
11602
+ await import('./mir-runner.js');
11432
11603
  // The entry module now drives the process (top-level main() keeps the event
11433
11604
  // loop alive for the daemon; the worker's IPC listener does the same; a
11434
11605
  // core-only bind failure exits from within). Park here so the normal dispatch
@@ -11616,6 +11787,64 @@ async function cmdVoiceSetup(args) {
11616
11787
  console.log('✅ 已移除全局语音配置(回复卡片不再显示「🔊 语音总结」按钮)。重启 daemon 生效。');
11617
11788
  return;
11618
11789
  }
11790
+ if (sub === 'asr') {
11791
+ const asrSub = (args[1] ?? '').toLowerCase();
11792
+ const maskAsr = (s) => (s ? `${s.slice(0, 4)}***` : '(未设)');
11793
+ if (asrSub === 'status') {
11794
+ const asr = readGlobalConfig().voice?.asr;
11795
+ if (!asr) {
11796
+ console.log('语音识别(ASR)未配置。运行 `botmux voice asr` 配置。');
11797
+ return;
11798
+ }
11799
+ console.log('当前 ASR 配置(全局 ~/.botmux/config.json):');
11800
+ console.log(` 启用: ${asr.enabled ? '是' : '否'}`);
11801
+ console.log(` baseUrl: ${asr.baseUrl ?? '(未设)'}`);
11802
+ console.log(` model: ${asr.model ?? '(未设)'}`);
11803
+ console.log(` apiKey: ${maskAsr(asr.apiKey)}`);
11804
+ if (asr.language)
11805
+ console.log(` 语言: ${asr.language}`);
11806
+ if (typeof asr.timeoutMs === 'number')
11807
+ console.log(` 超时: ${asr.timeoutMs}ms`);
11808
+ return;
11809
+ }
11810
+ if (asrSub === 'disable' || asrSub === 'off') {
11811
+ const curVoice = readGlobalConfig().voice ?? {};
11812
+ mergeGlobalConfig({ voice: { ...curVoice, asr: { ...(curVoice.asr ?? {}), enabled: false } } });
11813
+ console.log('✅ 已关闭语音识别(ASR)。重启 daemon 生效。');
11814
+ return;
11815
+ }
11816
+ if (asrSub && asrSub !== 'setup') {
11817
+ console.error('用法: botmux voice asr [status|disable](无参 = 交互式配置)');
11818
+ process.exit(1);
11819
+ }
11820
+ const rl = createInterface({ input: process.stdin, output: process.stdout });
11821
+ try {
11822
+ console.log('🎤 配置语音识别(ASR)。飞书语音消息将转写为文本驱动会话。写入全局 ~/.botmux/config.json,重启后生效。\n');
11823
+ const baseUrl = (await ask(rl, 'baseUrl(OpenAI 兼容,如 https://api.openai.com/v1): ')).trim();
11824
+ const apiKey = (await ask(rl, 'apiKey(无则留空): ')).trim();
11825
+ const model = (await ask(rl, 'model(如 whisper-1): ')).trim();
11826
+ if (!baseUrl || !model) {
11827
+ console.error('❌ baseUrl 和 model 必填,未写入。');
11828
+ return;
11829
+ }
11830
+ const language = (await ask(rl, '语言提示(可选,如 zh,留空跳过): ')).trim();
11831
+ const curVoice = readGlobalConfig().voice ?? {};
11832
+ const asr = {
11833
+ enabled: true,
11834
+ baseUrl,
11835
+ model,
11836
+ ...(apiKey ? { apiKey } : {}),
11837
+ ...(language ? { language } : {}),
11838
+ };
11839
+ mergeGlobalConfig({ voice: { ...curVoice, asr } });
11840
+ console.log('\n✅ 已写入 voice.asr 配置。`botmux restart` 后,发给机器人的语音消息会自动转写。');
11841
+ console.log(' 查看:`botmux voice asr status` 关闭:`botmux voice asr disable`');
11842
+ }
11843
+ finally {
11844
+ rl.close();
11845
+ }
11846
+ return;
11847
+ }
11619
11848
  if (sub && sub !== 'setup') {
11620
11849
  console.error('用法: botmux voice [status|disable](无参 = 交互式配置)');
11621
11850
  process.exit(1);
@@ -12298,6 +12527,9 @@ switch (command) {
12298
12527
  await cmdSetup();
12299
12528
  break;
12300
12529
  }
12530
+ case 'clone':
12531
+ await cmdClone(process.argv.slice(3));
12532
+ break;
12301
12533
  case 'start':
12302
12534
  await cmdStart();
12303
12535
  break;