botmux 3.0.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (207) hide show
  1. package/dist/adapters/backend/herdr-backend.d.ts +9 -7
  2. package/dist/adapters/backend/herdr-backend.d.ts.map +1 -1
  3. package/dist/adapters/backend/herdr-backend.js +63 -53
  4. package/dist/adapters/backend/herdr-backend.js.map +1 -1
  5. package/dist/adapters/backend/riff-backend.d.ts +6 -1
  6. package/dist/adapters/backend/riff-backend.d.ts.map +1 -1
  7. package/dist/adapters/backend/riff-backend.js +7 -2
  8. package/dist/adapters/backend/riff-backend.js.map +1 -1
  9. package/dist/adapters/backend/sandbox.d.ts +20 -16
  10. package/dist/adapters/backend/sandbox.d.ts.map +1 -1
  11. package/dist/adapters/backend/sandbox.js +192 -65
  12. package/dist/adapters/backend/sandbox.js.map +1 -1
  13. package/dist/adapters/backend/tmux-backend.d.ts +39 -2
  14. package/dist/adapters/backend/tmux-backend.d.ts.map +1 -1
  15. package/dist/adapters/backend/tmux-backend.js +55 -5
  16. package/dist/adapters/backend/tmux-backend.js.map +1 -1
  17. package/dist/adapters/backend/tmux-pipe-backend.js +2 -2
  18. package/dist/adapters/backend/tmux-pipe-backend.js.map +1 -1
  19. package/dist/adapters/backend/zellij-backend.d.ts.map +1 -1
  20. package/dist/adapters/backend/zellij-backend.js +9 -3
  21. package/dist/adapters/backend/zellij-backend.js.map +1 -1
  22. package/dist/adapters/cli/claude-code.d.ts +25 -0
  23. package/dist/adapters/cli/claude-code.d.ts.map +1 -1
  24. package/dist/adapters/cli/claude-code.js +79 -9
  25. package/dist/adapters/cli/claude-code.js.map +1 -1
  26. package/dist/adapters/cli/read-isolation.d.ts +2 -1
  27. package/dist/adapters/cli/read-isolation.d.ts.map +1 -1
  28. package/dist/adapters/cli/read-isolation.js.map +1 -1
  29. package/dist/adapters/cli/types.d.ts +2 -2
  30. package/dist/adapters/hook-installer.d.ts +11 -0
  31. package/dist/adapters/hook-installer.d.ts.map +1 -1
  32. package/dist/adapters/hook-installer.js +72 -11
  33. package/dist/adapters/hook-installer.js.map +1 -1
  34. package/dist/cli.d.ts.map +1 -1
  35. package/dist/cli.js +15 -4
  36. package/dist/cli.js.map +1 -1
  37. package/dist/config.d.ts +6 -0
  38. package/dist/config.d.ts.map +1 -1
  39. package/dist/config.js +18 -0
  40. package/dist/config.js.map +1 -1
  41. package/dist/core/command-handler.d.ts.map +1 -1
  42. package/dist/core/command-handler.js +211 -57
  43. package/dist/core/command-handler.js.map +1 -1
  44. package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
  45. package/dist/core/dashboard-ipc-server.js +12 -5
  46. package/dist/core/dashboard-ipc-server.js.map +1 -1
  47. package/dist/core/dashboard-rows.d.ts +5 -0
  48. package/dist/core/dashboard-rows.d.ts.map +1 -1
  49. package/dist/core/dashboard-rows.js +2 -0
  50. package/dist/core/dashboard-rows.js.map +1 -1
  51. package/dist/core/doc-comment-prompt.d.ts +2 -0
  52. package/dist/core/doc-comment-prompt.d.ts.map +1 -1
  53. package/dist/core/doc-comment-prompt.js +30 -0
  54. package/dist/core/doc-comment-prompt.js.map +1 -1
  55. package/dist/core/github-auth.d.ts +8 -0
  56. package/dist/core/github-auth.d.ts.map +1 -0
  57. package/dist/core/github-auth.js +44 -0
  58. package/dist/core/github-auth.js.map +1 -0
  59. package/dist/core/managed-origin-capability.d.ts +7 -0
  60. package/dist/core/managed-origin-capability.d.ts.map +1 -1
  61. package/dist/core/managed-origin-capability.js +12 -0
  62. package/dist/core/managed-origin-capability.js.map +1 -1
  63. package/dist/core/passthrough-commands.d.ts.map +1 -1
  64. package/dist/core/passthrough-commands.js +1 -1
  65. package/dist/core/passthrough-commands.js.map +1 -1
  66. package/dist/core/restart-report.d.ts +7 -1
  67. package/dist/core/restart-report.d.ts.map +1 -1
  68. package/dist/core/restart-report.js +19 -5
  69. package/dist/core/restart-report.js.map +1 -1
  70. package/dist/core/session-activity.d.ts +8 -0
  71. package/dist/core/session-activity.d.ts.map +1 -1
  72. package/dist/core/session-activity.js +16 -0
  73. package/dist/core/session-activity.js.map +1 -1
  74. package/dist/core/session-discovery.d.ts.map +1 -1
  75. package/dist/core/session-discovery.js +4 -2
  76. package/dist/core/session-discovery.js.map +1 -1
  77. package/dist/core/update-check.d.ts +11 -0
  78. package/dist/core/update-check.d.ts.map +1 -1
  79. package/dist/core/update-check.js +6 -1
  80. package/dist/core/update-check.js.map +1 -1
  81. package/dist/core/vc-meeting-prepare-command.d.ts +22 -0
  82. package/dist/core/vc-meeting-prepare-command.d.ts.map +1 -0
  83. package/dist/core/vc-meeting-prepare-command.js +50 -0
  84. package/dist/core/vc-meeting-prepare-command.js.map +1 -0
  85. package/dist/core/worker-pool.d.ts.map +1 -1
  86. package/dist/core/worker-pool.js +11 -2
  87. package/dist/core/worker-pool.js.map +1 -1
  88. package/dist/daemon.d.ts +15 -5
  89. package/dist/daemon.d.ts.map +1 -1
  90. package/dist/daemon.js +555 -41
  91. package/dist/daemon.js.map +1 -1
  92. package/dist/dashboard/web/bot-defaults-page.d.ts.map +1 -1
  93. package/dist/dashboard/web/bot-defaults-page.js +6 -1
  94. package/dist/dashboard/web/bot-defaults-page.js.map +1 -1
  95. package/dist/dashboard/web/i18n.d.ts.map +1 -1
  96. package/dist/dashboard/web/i18n.js +34 -0
  97. package/dist/dashboard/web/i18n.js.map +1 -1
  98. package/dist/dashboard/web/preferences.d.ts +1 -1
  99. package/dist/dashboard/web/preferences.d.ts.map +1 -1
  100. package/dist/dashboard/web/preferences.js +1 -1
  101. package/dist/dashboard/web/preferences.js.map +1 -1
  102. package/dist/dashboard/web/sessions-page.d.ts +19 -0
  103. package/dist/dashboard/web/sessions-page.d.ts.map +1 -1
  104. package/dist/dashboard/web/sessions-page.js +66 -7
  105. package/dist/dashboard/web/sessions-page.js.map +1 -1
  106. package/dist/dashboard/web/sessions.d.ts +31 -0
  107. package/dist/dashboard/web/sessions.d.ts.map +1 -1
  108. package/dist/dashboard/web/sessions.js +82 -0
  109. package/dist/dashboard/web/sessions.js.map +1 -1
  110. package/dist/dashboard-web/app.js +1 -1
  111. package/dist/dashboard-web/chunks/{bot-defaults-page-MBORWWP7.js → bot-defaults-page-KLDCZNLP.js} +5 -5
  112. package/dist/dashboard-web/chunks/{chunk-G43RUPUN.js → chunk-EZAW2EPM.js} +1 -1
  113. package/dist/dashboard-web/chunks/{chunk-EIO5AWDA.js → chunk-FMJNOATE.js} +1 -1
  114. package/dist/dashboard-web/chunks/{chunk-4QTBR7UF.js → chunk-KEAOTUL3.js} +7 -7
  115. package/dist/dashboard-web/chunks/{chunk-7STGZ5BX.js → chunk-MLNI5BKE.js} +1 -1
  116. package/dist/dashboard-web/chunks/{connectors-page-LKDT4WBG.js → connectors-page-O32LFAL5.js} +1 -1
  117. package/dist/dashboard-web/chunks/{groups-page-XKIWJ2TP.js → groups-page-PSAFIZ6M.js} +1 -1
  118. package/dist/dashboard-web/chunks/{insights-page-CBEZCYKV.js → insights-page-V23LLATX.js} +1 -1
  119. package/dist/dashboard-web/chunks/{monitor-room-AQTHAWXA.js → monitor-room-7X5AKYOF.js} +1 -1
  120. package/dist/dashboard-web/chunks/{monitoring-page-2R4NCNBQ.js → monitoring-page-CBA3CQYL.js} +1 -1
  121. package/dist/dashboard-web/chunks/{office-page-5M6MQIIL.js → office-page-RL6QSEM7.js} +1 -1
  122. package/dist/dashboard-web/chunks/{overview-page-N22HDZ2V.js → overview-page-XQIPO6KH.js} +1 -1
  123. package/dist/dashboard-web/chunks/{roles-page-J6K2HWFX.js → roles-page-ACIWV7QS.js} +1 -1
  124. package/dist/dashboard-web/chunks/{schedules-page-CGAQCB4J.js → schedules-page-KJDUKOJV.js} +1 -1
  125. package/dist/dashboard-web/chunks/sessions-page-2WDWHSP4.js +3 -0
  126. package/dist/dashboard-web/chunks/{settings-page-GLRWV5KU.js → settings-page-6VX4OUGG.js} +1 -1
  127. package/dist/dashboard-web/chunks/{skills-page-KQVW42QU.js → skills-page-WXE3UYLT.js} +1 -1
  128. package/dist/dashboard-web/chunks/{team-federation-page-5PYUOV5M.js → team-federation-page-PYTF4FLM.js} +1 -1
  129. package/dist/dashboard-web/chunks/{v3-page-DXPFILRZ.js → v3-page-G6CD6O3I.js} +1 -1
  130. package/dist/dashboard-web/chunks/{whiteboards-page-NUH6VZ4I.js → whiteboards-page-6SG33GP4.js} +1 -1
  131. package/dist/dashboard-web/style.css +167 -2
  132. package/dist/i18n/en.d.ts.map +1 -1
  133. package/dist/i18n/en.js +18 -3
  134. package/dist/i18n/en.js.map +1 -1
  135. package/dist/i18n/zh.d.ts.map +1 -1
  136. package/dist/i18n/zh.js +18 -3
  137. package/dist/i18n/zh.js.map +1 -1
  138. package/dist/im/lark/card-builder.d.ts.map +1 -1
  139. package/dist/im/lark/card-builder.js +11 -2
  140. package/dist/im/lark/card-builder.js.map +1 -1
  141. package/dist/im/lark/event-dispatcher.d.ts +4 -0
  142. package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
  143. package/dist/im/lark/event-dispatcher.js +249 -5
  144. package/dist/im/lark/event-dispatcher.js.map +1 -1
  145. package/dist/im/lark/forward-followup-buffer.d.ts +26 -0
  146. package/dist/im/lark/forward-followup-buffer.d.ts.map +1 -0
  147. package/dist/im/lark/forward-followup-buffer.js +48 -0
  148. package/dist/im/lark/forward-followup-buffer.js.map +1 -0
  149. package/dist/im/lark/forward-followup-content.d.ts +6 -0
  150. package/dist/im/lark/forward-followup-content.d.ts.map +1 -0
  151. package/dist/im/lark/forward-followup-content.js +46 -0
  152. package/dist/im/lark/forward-followup-content.js.map +1 -0
  153. package/dist/im/lark/forward-followup-store.d.ts +9 -0
  154. package/dist/im/lark/forward-followup-store.d.ts.map +1 -0
  155. package/dist/im/lark/forward-followup-store.js +48 -0
  156. package/dist/im/lark/forward-followup-store.js.map +1 -0
  157. package/dist/im/lark/message-parser.d.ts +1 -1
  158. package/dist/im/lark/message-parser.d.ts.map +1 -1
  159. package/dist/im/lark/message-parser.js +1 -2
  160. package/dist/im/lark/message-parser.js.map +1 -1
  161. package/dist/platform/tunnel-client.js +3 -3
  162. package/dist/platform/tunnel-client.js.map +1 -1
  163. package/dist/services/local-cli-opener.d.ts +7 -0
  164. package/dist/services/local-cli-opener.d.ts.map +1 -1
  165. package/dist/services/local-cli-opener.js +111 -3
  166. package/dist/services/local-cli-opener.js.map +1 -1
  167. package/dist/services/skill-registry-store.d.ts.map +1 -1
  168. package/dist/services/skill-registry-store.js +15 -2
  169. package/dist/services/skill-registry-store.js.map +1 -1
  170. package/dist/services/vc-meeting-consumer-isolation.d.ts +7 -5
  171. package/dist/services/vc-meeting-consumer-isolation.d.ts.map +1 -1
  172. package/dist/services/vc-meeting-consumer-isolation.js +7 -5
  173. package/dist/services/vc-meeting-consumer-isolation.js.map +1 -1
  174. package/dist/services/vc-meeting-preparations-store.d.ts +22 -0
  175. package/dist/services/vc-meeting-preparations-store.d.ts.map +1 -0
  176. package/dist/services/vc-meeting-preparations-store.js +131 -0
  177. package/dist/services/vc-meeting-preparations-store.js.map +1 -0
  178. package/dist/services/vc-meeting-runtime-store.d.ts +9 -0
  179. package/dist/services/vc-meeting-runtime-store.d.ts.map +1 -1
  180. package/dist/services/vc-meeting-runtime-store.js +16 -0
  181. package/dist/services/vc-meeting-runtime-store.js.map +1 -1
  182. package/dist/setup/ensure-tmux.d.ts.map +1 -1
  183. package/dist/setup/ensure-tmux.js +9 -11
  184. package/dist/setup/ensure-tmux.js.map +1 -1
  185. package/dist/utils/child-env.d.ts +16 -8
  186. package/dist/utils/child-env.d.ts.map +1 -1
  187. package/dist/utils/child-env.js +30 -8
  188. package/dist/utils/child-env.js.map +1 -1
  189. package/dist/utils/daemon-discovery.d.ts +8 -0
  190. package/dist/utils/daemon-discovery.d.ts.map +1 -1
  191. package/dist/utils/daemon-discovery.js +19 -0
  192. package/dist/utils/daemon-discovery.js.map +1 -1
  193. package/dist/utils/ready-gate.d.ts +9 -3
  194. package/dist/utils/ready-gate.d.ts.map +1 -1
  195. package/dist/utils/ready-gate.js +12 -4
  196. package/dist/utils/ready-gate.js.map +1 -1
  197. package/dist/worker.js +131 -28
  198. package/dist/worker.js.map +1 -1
  199. package/dist/workflows/ops-projection.d.ts.map +1 -1
  200. package/dist/workflows/ops-projection.js +27 -5
  201. package/dist/workflows/ops-projection.js.map +1 -1
  202. package/dist/workflows/v3/distillation-runner.d.ts +4 -0
  203. package/dist/workflows/v3/distillation-runner.d.ts.map +1 -1
  204. package/dist/workflows/v3/distillation-runner.js +4 -2
  205. package/dist/workflows/v3/distillation-runner.js.map +1 -1
  206. package/package.json +1 -1
  207. package/dist/dashboard-web/chunks/sessions-page-WJ2QYTIE.js +0 -3
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard-ipc-server.d.ts","sourceRoot":"","sources":["../../src/core/dashboard-ipc-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dashboard-ipc-server.d.ts","sourceRoot":"","sources":["../../src/core/dashboard-ipc-server.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ import * as oncallStore from '../services/oncall-store.js';
16
16
  import * as brandStore from '../services/brand-store.js';
17
17
  import * as sandboxStore from '../services/sandbox-store.js';
18
18
  import * as backendTypeStore from '../services/backend-type-store.js';
19
- import { isValidRiffBaseUrl } from '../adapters/backend/riff-backend.js';
19
+ import { isValidRiffBaseUrl, isValidRiffSandboxCluster } from '../adapters/backend/riff-backend.js';
20
20
  import { ensureBackendAvailable } from '../services/backend-availability.js';
21
21
  import * as cardPrefsStore from '../services/card-prefs-store.js';
22
22
  import * as substituteModeStore from '../services/substitute-mode-store.js';
@@ -2377,9 +2377,9 @@ ipcRoute('PUT', '/api/bot-env', async (req, res) => {
2377
2377
  // 空白 → 清除;否则按 json kind 解析后落盘。走 applyConfigField(与 /botconfig
2378
2378
  // 同一写盘 + 内存热更新路径),next-session 生效。仅 backendType=riff 时使用。
2379
2379
  /** riff 配置里 dashboard 可编辑的字段——PUT /bot-riff 只覆盖这些,其余保留。 */
2380
- // sandboxCluster / injectStatusLines 已从 dashboard UI 移除(前者极少用、后者
2381
- // 恒默认开启)——不在此集合中意味着存量 bots.json 值按「隐藏字段」原样保留。
2382
- const RIFF_UI_EDITABLE_KEYS = new Set(['baseUrl', 'model', 'reasoningEffort', 'jwtEnv', 'systemPrompt', 'setupCommands']);
2380
+ // injectStatusLines 已从 dashboard UI 移除(恒默认开启)——不在此集合中意味着
2381
+ // 存量 bots.json 值按「隐藏字段」原样保留。
2382
+ const RIFF_UI_EDITABLE_KEYS = new Set(['baseUrl', 'sandboxCluster', 'model', 'reasoningEffort', 'jwtEnv', 'systemPrompt', 'setupCommands']);
2383
2383
  /** 发给浏览器前脱敏:明文 jwt / env(可能含各类密钥)绝不进 dashboard 响应。 */
2384
2384
  function redactRiffForClient(riff) {
2385
2385
  if (!riff || typeof riff !== 'object')
@@ -2415,7 +2415,14 @@ ipcRoute('PUT', '/api/bot-riff', async (req, res) => {
2415
2415
  // 一个 model 就会静默删掉认证等隐藏配置。
2416
2416
  const prev = (getBot(cachedLarkAppId).config.riff ?? {});
2417
2417
  const preserved = Object.fromEntries(Object.entries(prev).filter(([k]) => !RIFF_UI_EDITABLE_KEYS.has(k)));
2418
- value = { ...preserved, ...value };
2418
+ // Older dashboard clients do not send sandboxCluster. Preserve a valid
2419
+ // existing selection for them; a brand-new config follows Riff's BOE
2420
+ // default. New clients always submit the explicit dropdown value.
2421
+ const sandboxCluster = value.sandboxCluster ?? prev.sandboxCluster ?? 'boe';
2422
+ if (!isValidRiffSandboxCluster(sandboxCluster)) {
2423
+ return jsonRes(res, 400, { ok: false, error: 'invalid_sandbox_cluster' });
2424
+ }
2425
+ value = { ...preserved, ...value, sandboxCluster };
2419
2426
  if (!isValidRiffBaseUrl(value.baseUrl)) {
2420
2427
  return jsonRes(res, 400, { ok: false, error: 'invalid_base_url' });
2421
2428
  }