botmux 2.85.1 → 2.87.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 (236) hide show
  1. package/README.en.md +26 -0
  2. package/README.md +26 -0
  3. package/dist/adapters/backend/herdr-backend.d.ts.map +1 -1
  4. package/dist/adapters/backend/herdr-backend.js +12 -1
  5. package/dist/adapters/backend/herdr-backend.js.map +1 -1
  6. package/dist/adapters/backend/pty-backend.d.ts.map +1 -1
  7. package/dist/adapters/backend/pty-backend.js +4 -1
  8. package/dist/adapters/backend/pty-backend.js.map +1 -1
  9. package/dist/adapters/backend/tmux-backend.d.ts +1 -1
  10. package/dist/adapters/backend/tmux-backend.d.ts.map +1 -1
  11. package/dist/adapters/backend/tmux-backend.js +22 -9
  12. package/dist/adapters/backend/tmux-backend.js.map +1 -1
  13. package/dist/adapters/backend/tmux-pipe-backend.js +1 -1
  14. package/dist/adapters/backend/tmux-pipe-backend.js.map +1 -1
  15. package/dist/adapters/backend/types.d.ts +9 -0
  16. package/dist/adapters/backend/types.d.ts.map +1 -1
  17. package/dist/adapters/backend/types.js.map +1 -1
  18. package/dist/adapters/backend/zellij-backend.js +1 -1
  19. package/dist/adapters/backend/zellij-backend.js.map +1 -1
  20. package/dist/adapters/cli/codex.d.ts.map +1 -1
  21. package/dist/adapters/cli/codex.js +8 -5
  22. package/dist/adapters/cli/codex.js.map +1 -1
  23. package/dist/adapters/cli/shared-hints.d.ts +2 -1
  24. package/dist/adapters/cli/shared-hints.d.ts.map +1 -1
  25. package/dist/adapters/cli/shared-hints.js +25 -3
  26. package/dist/adapters/cli/shared-hints.js.map +1 -1
  27. package/dist/bot-registry.d.ts +10 -0
  28. package/dist/bot-registry.d.ts.map +1 -1
  29. package/dist/bot-registry.js +6 -0
  30. package/dist/bot-registry.js.map +1 -1
  31. package/dist/cli.d.ts.map +1 -1
  32. package/dist/cli.js +362 -16
  33. package/dist/cli.js.map +1 -1
  34. package/dist/core/command-handler.d.ts.map +1 -1
  35. package/dist/core/command-handler.js +215 -5
  36. package/dist/core/command-handler.js.map +1 -1
  37. package/dist/core/cost-calculator.d.ts.map +1 -1
  38. package/dist/core/cost-calculator.js +7 -106
  39. package/dist/core/cost-calculator.js.map +1 -1
  40. package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
  41. package/dist/core/dashboard-ipc-server.js +285 -2
  42. package/dist/core/dashboard-ipc-server.js.map +1 -1
  43. package/dist/core/maintenance.d.ts +18 -0
  44. package/dist/core/maintenance.d.ts.map +1 -1
  45. package/dist/core/maintenance.js +58 -30
  46. package/dist/core/maintenance.js.map +1 -1
  47. package/dist/core/passthrough-commands.d.ts.map +1 -1
  48. package/dist/core/passthrough-commands.js +1 -1
  49. package/dist/core/passthrough-commands.js.map +1 -1
  50. package/dist/core/per-bot-env.d.ts +38 -0
  51. package/dist/core/per-bot-env.d.ts.map +1 -0
  52. package/dist/core/per-bot-env.js +79 -0
  53. package/dist/core/per-bot-env.js.map +1 -0
  54. package/dist/core/role-resolver.d.ts +1 -0
  55. package/dist/core/role-resolver.d.ts.map +1 -1
  56. package/dist/core/role-resolver.js +14 -0
  57. package/dist/core/role-resolver.js.map +1 -1
  58. package/dist/core/session-manager.d.ts +3 -0
  59. package/dist/core/session-manager.d.ts.map +1 -1
  60. package/dist/core/session-manager.js +70 -6
  61. package/dist/core/session-manager.js.map +1 -1
  62. package/dist/core/skills/discovery.d.ts +7 -0
  63. package/dist/core/skills/discovery.d.ts.map +1 -1
  64. package/dist/core/skills/discovery.js +51 -0
  65. package/dist/core/skills/discovery.js.map +1 -1
  66. package/dist/core/trigger-session.d.ts.map +1 -1
  67. package/dist/core/trigger-session.js +5 -2
  68. package/dist/core/trigger-session.js.map +1 -1
  69. package/dist/core/update-check.d.ts +67 -0
  70. package/dist/core/update-check.d.ts.map +1 -0
  71. package/dist/core/update-check.js +159 -0
  72. package/dist/core/update-check.js.map +1 -0
  73. package/dist/core/worker-pool.d.ts.map +1 -1
  74. package/dist/core/worker-pool.js +4 -0
  75. package/dist/core/worker-pool.js.map +1 -1
  76. package/dist/daemon.d.ts.map +1 -1
  77. package/dist/daemon.js +29 -6
  78. package/dist/daemon.js.map +1 -1
  79. package/dist/dashboard/bot-payload.d.ts +1 -0
  80. package/dist/dashboard/bot-payload.d.ts.map +1 -1
  81. package/dist/dashboard/bot-payload.js +1 -0
  82. package/dist/dashboard/bot-payload.js.map +1 -1
  83. package/dist/dashboard/skill-install-request.d.ts +10 -0
  84. package/dist/dashboard/skill-install-request.d.ts.map +1 -1
  85. package/dist/dashboard/skill-install-request.js +17 -0
  86. package/dist/dashboard/skill-install-request.js.map +1 -1
  87. package/dist/dashboard/web/app.d.ts.map +1 -1
  88. package/dist/dashboard/web/app.js +43 -4
  89. package/dist/dashboard/web/app.js.map +1 -1
  90. package/dist/dashboard/web/bot-defaults.d.ts.map +1 -1
  91. package/dist/dashboard/web/bot-defaults.js +178 -1
  92. package/dist/dashboard/web/bot-defaults.js.map +1 -1
  93. package/dist/dashboard/web/groups.d.ts +2 -0
  94. package/dist/dashboard/web/groups.d.ts.map +1 -1
  95. package/dist/dashboard/web/groups.js +419 -3
  96. package/dist/dashboard/web/groups.js.map +1 -1
  97. package/dist/dashboard/web/i18n.d.ts.map +1 -1
  98. package/dist/dashboard/web/i18n.js +745 -3
  99. package/dist/dashboard/web/i18n.js.map +1 -1
  100. package/dist/dashboard/web/insights.d.ts +2 -0
  101. package/dist/dashboard/web/insights.d.ts.map +1 -0
  102. package/dist/dashboard/web/insights.js +1523 -0
  103. package/dist/dashboard/web/insights.js.map +1 -0
  104. package/dist/dashboard/web/role-profile-match.d.ts +31 -0
  105. package/dist/dashboard/web/role-profile-match.d.ts.map +1 -0
  106. package/dist/dashboard/web/role-profile-match.js +58 -0
  107. package/dist/dashboard/web/role-profile-match.js.map +1 -0
  108. package/dist/dashboard/web/roles.d.ts +1 -0
  109. package/dist/dashboard/web/roles.d.ts.map +1 -1
  110. package/dist/dashboard/web/roles.js +520 -27
  111. package/dist/dashboard/web/roles.js.map +1 -1
  112. package/dist/dashboard/web/sessions.d.ts.map +1 -1
  113. package/dist/dashboard/web/sessions.js +84 -0
  114. package/dist/dashboard/web/sessions.js.map +1 -1
  115. package/dist/dashboard/web/settings.d.ts.map +1 -1
  116. package/dist/dashboard/web/settings.js +289 -0
  117. package/dist/dashboard/web/settings.js.map +1 -1
  118. package/dist/dashboard/web/skills.d.ts.map +1 -1
  119. package/dist/dashboard/web/skills.js +183 -10
  120. package/dist/dashboard/web/skills.js.map +1 -1
  121. package/dist/dashboard/web/whiteboards.d.ts +2 -0
  122. package/dist/dashboard/web/whiteboards.d.ts.map +1 -0
  123. package/dist/dashboard/web/whiteboards.js +267 -0
  124. package/dist/dashboard/web/whiteboards.js.map +1 -0
  125. package/dist/dashboard-web/app.js +1406 -833
  126. package/dist/dashboard-web/index.html +3 -1
  127. package/dist/dashboard-web/style.css +1382 -30
  128. package/dist/dashboard.js +474 -6
  129. package/dist/dashboard.js.map +1 -1
  130. package/dist/global-config.d.ts +6 -0
  131. package/dist/global-config.d.ts.map +1 -1
  132. package/dist/global-config.js +12 -0
  133. package/dist/global-config.js.map +1 -1
  134. package/dist/i18n/en.d.ts.map +1 -1
  135. package/dist/i18n/en.js +34 -1
  136. package/dist/i18n/en.js.map +1 -1
  137. package/dist/i18n/zh.d.ts.map +1 -1
  138. package/dist/i18n/zh.js +34 -1
  139. package/dist/i18n/zh.js.map +1 -1
  140. package/dist/im/lark/card-handler.d.ts.map +1 -1
  141. package/dist/im/lark/card-handler.js +7 -3
  142. package/dist/im/lark/card-handler.js.map +1 -1
  143. package/dist/services/bot-config-store.d.ts.map +1 -1
  144. package/dist/services/bot-config-store.js +19 -0
  145. package/dist/services/bot-config-store.js.map +1 -1
  146. package/dist/services/group-creator.d.ts +6 -0
  147. package/dist/services/group-creator.d.ts.map +1 -1
  148. package/dist/services/group-creator.js +54 -5
  149. package/dist/services/group-creator.js.map +1 -1
  150. package/dist/services/insight/antigravity-span-reader.d.ts +3 -0
  151. package/dist/services/insight/antigravity-span-reader.d.ts.map +1 -0
  152. package/dist/services/insight/antigravity-span-reader.js +249 -0
  153. package/dist/services/insight/antigravity-span-reader.js.map +1 -0
  154. package/dist/services/insight/classify.d.ts +7 -0
  155. package/dist/services/insight/classify.d.ts.map +1 -0
  156. package/dist/services/insight/classify.js +46 -0
  157. package/dist/services/insight/classify.js.map +1 -0
  158. package/dist/services/insight/claude-span-reader.d.ts +3 -0
  159. package/dist/services/insight/claude-span-reader.d.ts.map +1 -0
  160. package/dist/services/insight/claude-span-reader.js +257 -0
  161. package/dist/services/insight/claude-span-reader.js.map +1 -0
  162. package/dist/services/insight/codex-span-reader.d.ts +3 -0
  163. package/dist/services/insight/codex-span-reader.d.ts.map +1 -0
  164. package/dist/services/insight/codex-span-reader.js +290 -0
  165. package/dist/services/insight/codex-span-reader.js.map +1 -0
  166. package/dist/services/insight/intent.d.ts +5 -0
  167. package/dist/services/insight/intent.d.ts.map +1 -0
  168. package/dist/services/insight/intent.js +145 -0
  169. package/dist/services/insight/intent.js.map +1 -0
  170. package/dist/services/insight/jsonl.d.ts +10 -0
  171. package/dist/services/insight/jsonl.d.ts.map +1 -0
  172. package/dist/services/insight/jsonl.js +36 -0
  173. package/dist/services/insight/jsonl.js.map +1 -0
  174. package/dist/services/insight/prompt.d.ts +3 -0
  175. package/dist/services/insight/prompt.d.ts.map +1 -0
  176. package/dist/services/insight/prompt.js +99 -0
  177. package/dist/services/insight/prompt.js.map +1 -0
  178. package/dist/services/insight/redact.d.ts +4 -0
  179. package/dist/services/insight/redact.d.ts.map +1 -0
  180. package/dist/services/insight/redact.js +67 -0
  181. package/dist/services/insight/redact.js.map +1 -0
  182. package/dist/services/insight/report.d.ts +29 -0
  183. package/dist/services/insight/report.d.ts.map +1 -0
  184. package/dist/services/insight/report.js +1126 -0
  185. package/dist/services/insight/report.js.map +1 -0
  186. package/dist/services/insight/safe-detail.d.ts +5 -0
  187. package/dist/services/insight/safe-detail.d.ts.map +1 -0
  188. package/dist/services/insight/safe-detail.js +59 -0
  189. package/dist/services/insight/safe-detail.js.map +1 -0
  190. package/dist/services/insight/scrub.d.ts +22 -0
  191. package/dist/services/insight/scrub.d.ts.map +1 -0
  192. package/dist/services/insight/scrub.js +70 -0
  193. package/dist/services/insight/scrub.js.map +1 -0
  194. package/dist/services/insight/types.d.ts +394 -0
  195. package/dist/services/insight/types.d.ts.map +1 -0
  196. package/dist/services/insight/types.js +2 -0
  197. package/dist/services/insight/types.js.map +1 -0
  198. package/dist/services/resumable-session-discovery.d.ts.map +1 -1
  199. package/dist/services/resumable-session-discovery.js +21 -4
  200. package/dist/services/resumable-session-discovery.js.map +1 -1
  201. package/dist/services/role-profile-store.d.ts +25 -0
  202. package/dist/services/role-profile-store.d.ts.map +1 -0
  203. package/dist/services/role-profile-store.js +171 -0
  204. package/dist/services/role-profile-store.js.map +1 -0
  205. package/dist/services/skill-registry-store.d.ts +1 -0
  206. package/dist/services/skill-registry-store.d.ts.map +1 -1
  207. package/dist/services/skill-registry-store.js +32 -0
  208. package/dist/services/skill-registry-store.js.map +1 -1
  209. package/dist/services/transcript-resolver.d.ts +26 -0
  210. package/dist/services/transcript-resolver.d.ts.map +1 -0
  211. package/dist/services/transcript-resolver.js +111 -0
  212. package/dist/services/transcript-resolver.js.map +1 -0
  213. package/dist/services/whiteboard-store.d.ts +67 -0
  214. package/dist/services/whiteboard-store.d.ts.map +1 -0
  215. package/dist/services/whiteboard-store.js +450 -0
  216. package/dist/services/whiteboard-store.js.map +1 -0
  217. package/dist/setup/bot-config-editor.d.ts +8 -0
  218. package/dist/setup/bot-config-editor.d.ts.map +1 -1
  219. package/dist/setup/bot-config-editor.js +9 -0
  220. package/dist/setup/bot-config-editor.js.map +1 -1
  221. package/dist/skills/definitions.d.ts.map +1 -1
  222. package/dist/skills/definitions.js +118 -0
  223. package/dist/skills/definitions.js.map +1 -1
  224. package/dist/types.d.ts +3 -0
  225. package/dist/types.d.ts.map +1 -1
  226. package/dist/utils/install-diagnostics.d.ts +52 -0
  227. package/dist/utils/install-diagnostics.d.ts.map +1 -0
  228. package/dist/utils/install-diagnostics.js +155 -0
  229. package/dist/utils/install-diagnostics.js.map +1 -0
  230. package/dist/utils/install-info.d.ts +4 -0
  231. package/dist/utils/install-info.d.ts.map +1 -1
  232. package/dist/utils/install-info.js +6 -0
  233. package/dist/utils/install-info.js.map +1 -1
  234. package/dist/worker.js +12 -0
  235. package/dist/worker.js.map +1 -1
  236. package/package.json +1 -1
@@ -1060,6 +1060,123 @@ botmux dispatch --title "<子项目标题>" --bot "<coder_open_id>:名字:coder"
1060
1060
  - 一条话题别塞太多 bot;coder+reviewer 两人一组最顺。
1061
1061
  - 失败别硬重试同一招 ≥3 次;上报用户。
1062
1062
  `;
1063
+ const WHITEBOARD_SKILL = `---
1064
+ name: botmux-whiteboard
1065
+ description: 使用 botmux 本地项目白板读写跨 agent 的项目摘要、关键决策、已验证命令、阻塞和交接信息。触发场景:用户说白板、上下文、项目记忆、让其他 agent 看本地总结、长任务断点、多 agent 协作、handoff、需要沉淀不适合发飞书的大段上下文时。
1066
+ ---
1067
+
1068
+ # botmux-whiteboard — 本地项目白板
1069
+
1070
+ 白板是可选能力,默认关闭。它用于保存项目级、可持久化的核心摘要知识和本地 handoff 信息;它不是飞书消息的替代,也不是存秘密的地方。
1071
+
1072
+ ## 先判断是否启用
1073
+
1074
+ \`\`\`bash
1075
+ botmux whiteboard status
1076
+ \`\`\`
1077
+
1078
+ 如果未启用,不要尝试隐式开启;告诉用户/dashboard 管理员需要先打开白板能力。关闭时 CLI/agent 读写会拒绝。
1079
+
1080
+ ## 当前白板
1081
+
1082
+ \`\`\`bash
1083
+ botmux whiteboard current
1084
+ botmux whiteboard current --create # 仅在用户要求或你确实需要沉淀长期上下文时使用
1085
+ botmux whiteboard list
1086
+ \`\`\`
1087
+
1088
+ 默认绑定 key 是当前群的 default 白板;不按 bot 或 workingDir 分裂。显式创建的多白板用 id/title 区分。
1089
+
1090
+ ## 读取
1091
+
1092
+ 当用户/其他 agent 让你“看白板”、或你需要恢复项目状态时:
1093
+
1094
+ \`\`\`bash
1095
+ botmux whiteboard read --id <whiteboardId> # 输出 board.md 纯内容
1096
+ botmux whiteboard read --id <whiteboardId> --json # 输出 { id, updatedAt, content }
1097
+ \`\`\`
1098
+
1099
+ 不要假设白板正文已经在上下文里;prompt 只会给 id 和 CLI 命令说明。
1100
+
1101
+ \`--json\` 同时返回内容与该版本的 \`updatedAt\`——更新时用它做并发冲突检测(见下)。
1102
+
1103
+ ## 写入原则
1104
+
1105
+ 白板是**当前项目的全局上下文快照**:记录项目目标、组织方式、核心方案、关键进展和下一步。它不是过程日志,也不是零散备忘录——不要把每轮对话/命令流水记上去。
1106
+
1107
+ 适合写:
1108
+ - 项目目标、组织方式(群/白板/协作角色分工、默认白板与多白板关系)
1109
+ - 当前采用的核心方案与关键边界(含「不做什么 / 已废弃什么」)
1110
+ - 关键进展(已完成、已验证、当前风险/阻塞)
1111
+ - 下一步计划
1112
+ - 需要其他 agent 接力时的当前状态说明
1113
+
1114
+ 不要写:密钥、token、个人隐私、未授权外部信息、大段无用日志、单轮过程流水。
1115
+
1116
+ 每次 update 都先 read 旧白板,融合新信息后整体重写为一份完整的当前状态,而不是只追加本轮局部信息——白板永远是「当前快照」,不是累加日志。默认用中文撰写,除非用户明确要求其他语言;代码标识、命令、错误信息可保留原文。
1117
+
1118
+ ### 并发冲突检测(CAS)
1119
+
1120
+ 白板是整个群共享的单一快照,多个 agent 可能同时读写。为避免后写静默覆盖先写、丢掉其它 agent 的更新,更新时回传 read 到的版本号做 compare-and-set:
1121
+
1122
+ \`\`\`bash
1123
+ # 1) 读取当前内容 + 版本号
1124
+ botmux whiteboard read --id <whiteboardId> --json
1125
+ # → { "id": "wb_...", "updatedAt": "2026-06-22T01:23:45.000Z", "content": "# 当前状态\\n..." }
1126
+
1127
+ # 2) 融合后整体重写,用 --expected-updated-at 回传刚才读到的 updatedAt
1128
+ botmux whiteboard update --id <whiteboardId> --expected-updated-at 2026-06-22T01:23:45.000Z <<'EOF'
1129
+ # 当前状态
1130
+ ...
1131
+ EOF
1132
+ \`\`\`
1133
+
1134
+ - 若期间没有其它 agent 改过白板,写入成功,返回新的 board(含新 updatedAt)。
1135
+ - 若报 \`whiteboard_cas_mismatch\`(exit 2),说明有人改过——重新 \`read --json\` 拿最新内容与 updatedAt,再次融合重写,不要直接覆盖。
1136
+ - 不传 \`--expected-updated-at\` 时退化为直接覆盖(向后兼容),但推荐每次 update 都带上以获得冲突保护。
1137
+
1138
+ 更新当前状态用 update(覆盖 board.md,保持它是最新全局状态)。建议沿用以下固定结构:
1139
+
1140
+ \`\`\`bash
1141
+ botmux whiteboard update --id <whiteboardId> <<'EOF'
1142
+ # 当前状态
1143
+
1144
+ ## 项目目标
1145
+
1146
+ - ...
1147
+
1148
+ ## 组织方式
1149
+
1150
+ - 群/白板/协作角色如何分工
1151
+ - 当前默认白板/多白板关系
1152
+
1153
+ ## 核心方案
1154
+
1155
+ - 当前采用的设计与关键边界
1156
+ - 不做什么 / 已废弃什么
1157
+
1158
+ ## 关键进展
1159
+
1160
+ - 已完成
1161
+ - 已验证
1162
+ - 当前风险/阻塞
1163
+
1164
+ ## 下一步
1165
+
1166
+ - ...
1167
+ EOF
1168
+ \`\`\`
1169
+
1170
+ \`write --yes\` 是人工强制覆盖的兼容命令;agent 默认使用 \`update\`。
1171
+
1172
+ ## 飞书提示
1173
+
1174
+ 白板减少飞书噪音,但不能让人完全不可见:
1175
+ - 首次创建白板,或首次更新关键状态时,用 \`botmux send\` 发一句短提示:\`已建立/更新 whiteboard:<id>,后续关键状态会维护在那里。\`
1176
+ - 小更新不要每次通知。
1177
+ - 需要其他 agent 接力时,在飞书 @ 对方并让它读 \`whiteboard:<id>\`;不要复制大段白板内容。
1178
+ - 用户可见结论、需要确认的决策、最终结果仍必须 \`botmux send\`。
1179
+ `;
1063
1180
  export const ASK_SKILL_NAME = 'botmux-ask';
1064
1181
  export const BUILTIN_SKILLS = [
1065
1182
  { name: 'botmux-schedule', content: SCHEDULE_SKILL },
@@ -1070,6 +1187,7 @@ export const BUILTIN_SKILLS = [
1070
1187
  { name: 'botmux-handoff', content: HANDOFF_SKILL },
1071
1188
  { name: 'botmux-workflow-create', content: WORKFLOW_CREATE_SKILL },
1072
1189
  { name: 'botmux-orchestrate', content: ORCHESTRATE_SKILL },
1190
+ { name: 'botmux-whiteboard', content: WHITEBOARD_SKILL },
1073
1191
  ];
1074
1192
  /** Skills that earlier botmux versions installed but no longer ship. The
1075
1193
  * installer cleans these up so renamed skills don't linger as duplicates
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/skills/definitions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/skills/definitions.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -113,6 +113,8 @@ export interface Session {
113
113
  usageLimit?: CliUsageLimitState;
114
114
  lastUserPrompt?: string;
115
115
  lastCliInput?: string;
116
+ /** Default local project whiteboard bound to this session when the optional whiteboard feature is enabled. */
117
+ whiteboardId?: string;
116
118
  /** CLI-native resume id when it differs from botmux's sessionId (for example Codex thread id). */
117
119
  cliSessionId?: string;
118
120
  /**
@@ -274,6 +276,7 @@ export type DaemonToWorker = {
274
276
  model?: string;
275
277
  disableCliBypass?: boolean;
276
278
  startupCommands?: string[];
279
+ env?: Record<string, string>;
277
280
  sandbox?: boolean;
278
281
  sandboxHidePaths?: string[];
279
282
  backendType: BackendType;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /** Minimum Node major (mirrors package.json `engines.node`). */
2
+ export declare const MIN_NODE_MAJOR = 22;
3
+ export interface NodeCheck {
4
+ /** e.g. "v22.21.1" */
5
+ version: string;
6
+ major: number;
7
+ required: number;
8
+ ok: boolean;
9
+ }
10
+ /** Classify the running Node against the minimum major. Pure. */
11
+ export declare function checkNode(version?: string, required?: number): NodeCheck;
12
+ /**
13
+ * The version to show in the update card. For an npm install this is the real
14
+ * published version from package.json. A source checkout ships the unbuilt
15
+ * `0.0.0` (CI injects the real version only at publish), so we derive a real
16
+ * baseline from the latest git tag (`git describe --tags --abbrev=0` → the clean
17
+ * tag, e.g. "v2.86.0", stripped of the leading v). That makes the version
18
+ * display, "behind" comparison, and changelog range correct in dev mode too.
19
+ * Falls back to the raw package.json version if git is unavailable.
20
+ */
21
+ export declare function resolveCurrentVersion(): string;
22
+ export type InstallKind = 'npm-global' | 'source-checkout' | 'unknown';
23
+ export interface InstallEntry {
24
+ /** The PATH entry that resolved to this install. */
25
+ binPath: string;
26
+ /** The install root we attribute it to (the dedup key). */
27
+ root: string;
28
+ kind: InstallKind;
29
+ }
30
+ export interface InstallDiagnostics {
31
+ entries: InstallEntry[];
32
+ /** true when more than one distinct install root is reachable on PATH. */
33
+ multiple: boolean;
34
+ }
35
+ /** Filesystem deps, injectable for tests. */
36
+ export interface InstallProbeDeps {
37
+ /** Read a bin file's text, or null (missing / binary / unreadable). */
38
+ readFile: (path: string) => string | null;
39
+ /** Resolve symlinks to a real path, or null on failure. */
40
+ realpath: (path: string) => string | null;
41
+ /** Does `root` look like a source checkout (has .git or src)? */
42
+ isSourceCheckout: (root: string) => boolean;
43
+ }
44
+ /**
45
+ * Pure: dedup the raw `which -a botmux` paths, resolve each to an install root,
46
+ * and report whether more than one distinct install is present. Exported for
47
+ * tests.
48
+ */
49
+ export declare function analyzeInstalls(binPaths: string[], deps: InstallProbeDeps): InstallDiagnostics;
50
+ /** Production wiring: probe PATH for botmux installs. */
51
+ export declare function detectBotmuxInstalls(): InstallDiagnostics;
52
+ //# sourceMappingURL=install-diagnostics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-diagnostics.d.ts","sourceRoot":"","sources":["../../src/utils/install-diagnostics.ts"],"names":[],"mappings":"AAoBA,gEAAgE;AAChE,eAAO,MAAM,cAAc,KAAK,CAAC;AAEjC,MAAM,WAAW,SAAS;IACxB,sBAAsB;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,OAAO,CAAC;CACb;AAED,iEAAiE;AACjE,wBAAgB,SAAS,CAAC,OAAO,GAAE,MAAwB,EAAE,QAAQ,SAAiB,GAAG,SAAS,CAIjG;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAe9C;AAED,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,iBAAiB,GAAG,SAAS,CAAC;AAEvE,MAAM,WAAW,YAAY;IAC3B,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,0EAA0E;IAC1E,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,6CAA6C;AAC7C,MAAM,WAAW,gBAAgB;IAC/B,uEAAuE;IACvE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAC1C,2DAA2D;IAC3D,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAC1C,iEAAiE;IACjE,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;CAC7C;AAuCD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,gBAAgB,GAAG,kBAAkB,CAe9F;AAgCD,yDAAyD;AACzD,wBAAgB,oBAAoB,IAAI,kBAAkB,CAEzD"}
@@ -0,0 +1,155 @@
1
+ /**
2
+ * Install diagnostics for the manual-update preflight (Settings "version &
3
+ * update" card): the running Node version, and whether more than one botmux
4
+ * install is reachable on PATH.
5
+ *
6
+ * The multi-install check matters because `npm install -g botmux@latest` only
7
+ * updates the npm-global copy. If the active `botmux` (first on PATH) is a
8
+ * different install — the `~/.botmux/bin/botmux` source-checkout shim, or a
9
+ * sibling Node version's global — the update silently doesn't take effect. We
10
+ * surface every distinct install so the user can react before updating.
11
+ *
12
+ * The analysis core (analyzeInstalls / checkNode / parsing) is pure over
13
+ * injected deps and unit tested; only the `which -a botmux` listing is wiring.
14
+ */
15
+ import { execFileSync } from 'node:child_process';
16
+ import { readFileSync, realpathSync, statSync } from 'node:fs';
17
+ import { dirname } from 'node:path';
18
+ import { isLocalDevInstallAt, botmuxVersion, botmuxInstallRoot } from './install-info.js';
19
+ import { parseVersion } from '../core/update-check.js';
20
+ /** Minimum Node major (mirrors package.json `engines.node`). */
21
+ export const MIN_NODE_MAJOR = 22;
22
+ /** Classify the running Node against the minimum major. Pure. */
23
+ export function checkNode(version = process.version, required = MIN_NODE_MAJOR) {
24
+ const m = version.match(/v?(\d+)\./);
25
+ const major = m ? Number(m[1]) : 0;
26
+ return { version, major, required, ok: major >= required };
27
+ }
28
+ /**
29
+ * The version to show in the update card. For an npm install this is the real
30
+ * published version from package.json. A source checkout ships the unbuilt
31
+ * `0.0.0` (CI injects the real version only at publish), so we derive a real
32
+ * baseline from the latest git tag (`git describe --tags --abbrev=0` → the clean
33
+ * tag, e.g. "v2.86.0", stripped of the leading v). That makes the version
34
+ * display, "behind" comparison, and changelog range correct in dev mode too.
35
+ * Falls back to the raw package.json version if git is unavailable.
36
+ */
37
+ export function resolveCurrentVersion() {
38
+ const raw = botmuxVersion();
39
+ if (raw !== '0.0.0')
40
+ return raw;
41
+ try {
42
+ const tag = execFileSync('git', ['describe', '--tags', '--abbrev=0'], {
43
+ cwd: botmuxInstallRoot(),
44
+ encoding: 'utf-8',
45
+ timeout: 3_000,
46
+ stdio: ['ignore', 'pipe', 'ignore'],
47
+ }).trim();
48
+ const ver = tag.replace(/^v/i, '');
49
+ return parseVersion(ver) ? ver : raw;
50
+ }
51
+ catch {
52
+ return raw; // no git / no tags / not a checkout
53
+ }
54
+ }
55
+ /** A shim under 4 KiB is a tiny `exec node "<cli.js>"` wrapper; the real cli.js
56
+ * is hundreds of KiB, so a small file is the only one worth string-scanning. */
57
+ const MAX_SHIM_BYTES = 4096;
58
+ /** Resolve a `botmux` bin on PATH to the install root that runs it.
59
+ * - a `~/.botmux/bin/botmux` shim → the cli.js path it `exec`s
60
+ * - an npm-global symlink → the real `<pkg>/dist/cli.js` it points at
61
+ * Returns null when neither yields a cli.js path. */
62
+ function resolveBin(binPath, deps) {
63
+ let cliJs = null;
64
+ const content = deps.readFile(binPath);
65
+ if (content && content.length < MAX_SHIM_BYTES) {
66
+ // Require a path separator before cli.js so a bare "cli.js" literal inside
67
+ // compiled code (if a binary slips through the size guard) can't match.
68
+ const m = content.match(/"([^"]*[/\\]cli\.js)"/);
69
+ if (m)
70
+ cliJs = m[1];
71
+ }
72
+ if (!cliJs) {
73
+ const real = deps.realpath(binPath);
74
+ if (real && /cli\.js$/i.test(real))
75
+ cliJs = real;
76
+ }
77
+ if (!cliJs)
78
+ return null;
79
+ // <root>/dist/cli.js → <root>; otherwise the parent's parent.
80
+ const root = /[/\\]dist[/\\]cli\.js$/i.test(cliJs)
81
+ ? cliJs.replace(/[/\\]dist[/\\]cli\.js$/i, '')
82
+ : dirname(dirname(cliJs));
83
+ return { cliJs, root };
84
+ }
85
+ function classify(root, deps) {
86
+ if (/[/\\]node_modules[/\\]/.test(root))
87
+ return 'npm-global';
88
+ if (deps.isSourceCheckout(root))
89
+ return 'source-checkout';
90
+ return 'unknown';
91
+ }
92
+ /**
93
+ * Pure: dedup the raw `which -a botmux` paths, resolve each to an install root,
94
+ * and report whether more than one distinct install is present. Exported for
95
+ * tests.
96
+ */
97
+ export function analyzeInstalls(binPaths, deps) {
98
+ const seenBin = new Set();
99
+ const seenRoot = new Set();
100
+ const entries = [];
101
+ for (const raw of binPaths) {
102
+ const binPath = raw.trim();
103
+ if (!binPath || seenBin.has(binPath))
104
+ continue;
105
+ seenBin.add(binPath);
106
+ const resolved = resolveBin(binPath, deps);
107
+ const root = resolved?.root ?? binPath; // unresolvable → key by the bin path itself
108
+ if (seenRoot.has(root))
109
+ continue; // same install reached twice on PATH → one entry
110
+ seenRoot.add(root);
111
+ entries.push({ binPath, root, kind: resolved ? classify(root, deps) : 'unknown' });
112
+ }
113
+ return { entries, multiple: seenRoot.size > 1 };
114
+ }
115
+ const PROD_PROBE_DEPS = {
116
+ readFile: (p) => {
117
+ try {
118
+ // Don't slurp a multi-hundred-KB cli.js just to scan for a shim path.
119
+ if (statSync(p).size >= MAX_SHIM_BYTES)
120
+ return null;
121
+ return readFileSync(p, 'utf-8');
122
+ }
123
+ catch {
124
+ return null;
125
+ }
126
+ },
127
+ realpath: (p) => {
128
+ try {
129
+ return realpathSync(p);
130
+ }
131
+ catch {
132
+ return null;
133
+ }
134
+ },
135
+ isSourceCheckout: (root) => isLocalDevInstallAt(root),
136
+ };
137
+ /** List every `botmux` on PATH (best-effort; [] when the lookup tool fails). */
138
+ function listBotmuxBins() {
139
+ try {
140
+ const win = process.platform === 'win32';
141
+ const out = execFileSync(win ? 'where' : 'which', win ? ['botmux'] : ['-a', 'botmux'], {
142
+ encoding: 'utf-8',
143
+ timeout: 5_000,
144
+ });
145
+ return out.split(/\r?\n/).map((s) => s.trim()).filter(Boolean);
146
+ }
147
+ catch {
148
+ return []; // `which` exits non-zero when nothing is found → no installs visible
149
+ }
150
+ }
151
+ /** Production wiring: probe PATH for botmux installs. */
152
+ export function detectBotmuxInstalls() {
153
+ return analyzeInstalls(listBotmuxBins(), PROD_PROBE_DEPS);
154
+ }
155
+ //# sourceMappingURL=install-diagnostics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-diagnostics.js","sourceRoot":"","sources":["../../src/utils/install-diagnostics.ts"],"names":[],"mappings":"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"}
@@ -10,4 +10,8 @@ export declare function botmuxVersion(): string;
10
10
  * way to restart is `node <this>/dist/cli.js restart` — a raw `pm2 restart`
11
11
  * would not pick up a changed install dir. */
12
12
  export declare function botmuxCliEntry(): string;
13
+ /** Absolute path to this install's root (the dir holding package.json). For a
14
+ * source checkout this is the git working tree — used to derive a real version
15
+ * via `git describe` when package.json is the unbuilt 0.0.0. */
16
+ export declare function botmuxInstallRoot(): string;
13
17
  //# sourceMappingURL=install-info.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"install-info.d.ts","sourceRoot":"","sources":["../../src/utils/install-info.ts"],"names":[],"mappings":"AAcA,iFAAiF;AACjF,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE5D;AAID,2EAA2E;AAC3E,wBAAgB,iBAAiB,IAAI,OAAO,CAG3C;AAED;;yEAEyE;AACzE,wBAAgB,aAAa,IAAI,MAAM,CAOtC;AAED;;+CAE+C;AAC/C,wBAAgB,cAAc,IAAI,MAAM,CAEvC"}
1
+ {"version":3,"file":"install-info.d.ts","sourceRoot":"","sources":["../../src/utils/install-info.ts"],"names":[],"mappings":"AAcA,iFAAiF;AACjF,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE5D;AAID,2EAA2E;AAC3E,wBAAgB,iBAAiB,IAAI,OAAO,CAG3C;AAED;;yEAEyE;AACzE,wBAAgB,aAAa,IAAI,MAAM,CAOtC;AAED;;+CAE+C;AAC/C,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED;;iEAEiE;AACjE,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C"}
@@ -40,6 +40,12 @@ export function botmuxVersion() {
40
40
  export function botmuxCliEntry() {
41
41
  return join(packageRoot(), 'dist', 'cli.js');
42
42
  }
43
+ /** Absolute path to this install's root (the dir holding package.json). For a
44
+ * source checkout this is the git working tree — used to derive a real version
45
+ * via `git describe` when package.json is the unbuilt 0.0.0. */
46
+ export function botmuxInstallRoot() {
47
+ return packageRoot();
48
+ }
43
49
  /** Walk up from this module to the nearest dir containing package.json. */
44
50
  function packageRoot() {
45
51
  let dir = dirname(fileURLToPath(import.meta.url));
@@ -1 +1 @@
1
- {"version":3,"file":"install-info.js","sourceRoot":"","sources":["../../src/utils/install-info.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,iFAAiF;AACjF,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED,IAAI,MAA2B,CAAC;AAEhC,2EAA2E;AAC3E,MAAM,UAAU,iBAAiB;IAC/B,IAAI,MAAM,KAAK,SAAS;QAAE,MAAM,GAAG,mBAAmB,CAAC,WAAW,EAAE,CAAC,CAAC;IACtE,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;yEAEyE;AACzE,MAAM,UAAU,aAAa;IAC3B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QACnF,OAAO,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IACjE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED;;+CAE+C;AAC/C,MAAM,UAAU,cAAc;IAC5B,OAAO,IAAI,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AAC/C,CAAC;AAED,2EAA2E;AAC3E,SAAS,WAAW;IAClB,IAAI,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;YAAE,OAAO,GAAG,CAAC;QACtD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM;QAC1B,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"install-info.js","sourceRoot":"","sources":["../../src/utils/install-info.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,iFAAiF;AACjF,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED,IAAI,MAA2B,CAAC;AAEhC,2EAA2E;AAC3E,MAAM,UAAU,iBAAiB;IAC/B,IAAI,MAAM,KAAK,SAAS;QAAE,MAAM,GAAG,mBAAmB,CAAC,WAAW,EAAE,CAAC,CAAC;IACtE,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;yEAEyE;AACzE,MAAM,UAAU,aAAa;IAC3B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QACnF,OAAO,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IACjE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED;;+CAE+C;AAC/C,MAAM,UAAU,cAAc;IAC5B,OAAO,IAAI,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AAC/C,CAAC;AAED;;iEAEiE;AACjE,MAAM,UAAU,iBAAiB;IAC/B,OAAO,WAAW,EAAE,CAAC;AACvB,CAAC;AAED,2EAA2E;AAC3E,SAAS,WAAW;IAClB,IAAI,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;YAAE,OAAO,GAAG,CAAC;QACtD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM;QAC1B,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
package/dist/worker.js CHANGED
@@ -23,6 +23,7 @@ import { shouldWriteNow } from './utils/input-gate.js';
23
23
  import { mergeQueuedCliInput } from './utils/pending-input-queue.js';
24
24
  import { ReadyGate, shouldArmReadyGate } from './utils/ready-gate.js';
25
25
  import { shouldRunStartupCommandsOnSpawn, shouldDeferInitialPromptForStartup } from './core/startup-commands.js';
26
+ import { sanitizePerBotEnv } from './core/per-bot-env.js';
26
27
  import { InflightInputTracker } from './core/inflight-input-tracker.js';
27
28
  import { shouldRunQuietRotation, evaluatePidResolverPullback, decideFingerprintSwitch, shouldHealAbsentBaseline, sessionIdFromJsonlPath, SESSION_ID_FILENAME_RE, } from './services/bridge-rotation-policy.js';
28
29
  import { CodexBridgeQueue } from './services/codex-bridge-queue.js';
@@ -4063,6 +4064,16 @@ function spawnCli(cfg) {
4063
4064
  // them past the server's global env.
4064
4065
  if (cliAdapter.spawnEnv)
4065
4066
  Object.assign(childEnv, cliAdapter.spawnEnv);
4067
+ // Per-bot env (bots.json `env`): extra vars for THIS bot's CLI only — e.g.
4068
+ // ANTHROPIC_BASE_URL/ANTHROPIC_AUTH_TOKEN to run a bot on GLM/a 3rd-party
4069
+ // provider, an HTTPS_PROXY, or a CLI feature flag. Passed as injectEnv (NOT
4070
+ // merged into childEnv) so the tmux/zellij backends inject it via the per-pane
4071
+ // `/usr/bin/env` prefix and never into the shared backing-server global env,
4072
+ // keeping it from leaking across bots. Re-sanitized here (crossed IPC).
4073
+ const perBotInjectEnv = sanitizePerBotEnv(cfg.env);
4074
+ const perBotInjectKeys = Object.keys(perBotInjectEnv);
4075
+ if (perBotInjectKeys.length)
4076
+ log(`Injecting ${perBotInjectKeys.length} per-bot env var(s): ${perBotInjectKeys.join(', ')}`);
4066
4077
  // ── File sandbox (oncall): wrap the CLI in bwrap so it can only touch a
4067
4078
  // per-session project copy + de-identified config. The agent's `botmux send`
4068
4079
  // routes through a daemon-side outbox watcher (creds never enter the sandbox).
@@ -4230,6 +4241,7 @@ function spawnCli(cfg) {
4230
4241
  cols: PTY_COLS,
4231
4242
  rows: PTY_ROWS,
4232
4243
  env: childEnv,
4244
+ injectEnv: perBotInjectKeys.length ? perBotInjectEnv : undefined,
4233
4245
  });
4234
4246
  // Write CLI PID marker so agent-facing subcommands (`botmux send`, etc.)
4235
4247
  // can verify they were spawned inside a botmux session by walking the