botmux 3.5.0 → 3.6.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 (505) hide show
  1. package/README.en.md +56 -396
  2. package/README.md +55 -396
  3. package/dist/.runtime-build-id +1 -0
  4. package/dist/adapters/backend/sandbox.d.ts +99 -279
  5. package/dist/adapters/backend/sandbox.d.ts.map +1 -1
  6. package/dist/adapters/backend/sandbox.js +424 -826
  7. package/dist/adapters/backend/sandbox.js.map +1 -1
  8. package/dist/adapters/cli/claude-code.d.ts +6 -0
  9. package/dist/adapters/cli/claude-code.d.ts.map +1 -1
  10. package/dist/adapters/cli/claude-code.js +197 -11
  11. package/dist/adapters/cli/claude-code.js.map +1 -1
  12. package/dist/adapters/cli/coco.js +4 -4
  13. package/dist/adapters/cli/coco.js.map +1 -1
  14. package/dist/adapters/cli/codex-app.d.ts.map +1 -1
  15. package/dist/adapters/cli/codex-app.js +9 -6
  16. package/dist/adapters/cli/codex-app.js.map +1 -1
  17. package/dist/adapters/cli/codex.d.ts.map +1 -1
  18. package/dist/adapters/cli/codex.js +9 -5
  19. package/dist/adapters/cli/codex.js.map +1 -1
  20. package/dist/adapters/cli/fs-policy.d.ts +244 -0
  21. package/dist/adapters/cli/fs-policy.d.ts.map +1 -0
  22. package/dist/adapters/cli/fs-policy.js +537 -0
  23. package/dist/adapters/cli/fs-policy.js.map +1 -0
  24. package/dist/adapters/cli/grok.d.ts +2 -1
  25. package/dist/adapters/cli/grok.d.ts.map +1 -1
  26. package/dist/adapters/cli/grok.js +2 -1
  27. package/dist/adapters/cli/grok.js.map +1 -1
  28. package/dist/adapters/cli/hermes.d.ts.map +1 -1
  29. package/dist/adapters/cli/hermes.js +8 -4
  30. package/dist/adapters/cli/hermes.js.map +1 -1
  31. package/dist/adapters/cli/mtr.d.ts.map +1 -1
  32. package/dist/adapters/cli/mtr.js +3 -2
  33. package/dist/adapters/cli/mtr.js.map +1 -1
  34. package/dist/adapters/cli/opencode.d.ts.map +1 -1
  35. package/dist/adapters/cli/opencode.js +5 -4
  36. package/dist/adapters/cli/opencode.js.map +1 -1
  37. package/dist/adapters/cli/read-isolation.d.ts +14 -200
  38. package/dist/adapters/cli/read-isolation.d.ts.map +1 -1
  39. package/dist/adapters/cli/read-isolation.js +18 -477
  40. package/dist/adapters/cli/read-isolation.js.map +1 -1
  41. package/dist/adapters/cli/relay.js +2 -2
  42. package/dist/adapters/cli/relay.js.map +1 -1
  43. package/dist/adapters/cli/runner-input.d.ts +2 -2
  44. package/dist/adapters/cli/runner-input.d.ts.map +1 -1
  45. package/dist/adapters/cli/runner-input.js +9 -6
  46. package/dist/adapters/cli/runner-input.js.map +1 -1
  47. package/dist/adapters/cli/seed.d.ts.map +1 -1
  48. package/dist/adapters/cli/seed.js +2 -1
  49. package/dist/adapters/cli/seed.js.map +1 -1
  50. package/dist/adapters/cli/traex.d.ts.map +1 -1
  51. package/dist/adapters/cli/traex.js +3 -2
  52. package/dist/adapters/cli/traex.js.map +1 -1
  53. package/dist/adapters/cli/types.d.ts +25 -18
  54. package/dist/adapters/cli/types.d.ts.map +1 -1
  55. package/dist/bot-registry.d.ts +54 -23
  56. package/dist/bot-registry.d.ts.map +1 -1
  57. package/dist/bot-registry.js +91 -0
  58. package/dist/bot-registry.js.map +1 -1
  59. package/dist/cli.d.ts.map +1 -1
  60. package/dist/cli.js +297 -104
  61. package/dist/cli.js.map +1 -1
  62. package/dist/codex-app-runner.js +85 -192
  63. package/dist/codex-app-runner.js.map +1 -1
  64. package/dist/config.d.ts +0 -16
  65. package/dist/config.d.ts.map +1 -1
  66. package/dist/config.js +0 -30
  67. package/dist/config.js.map +1 -1
  68. package/dist/core/ask-broker.d.ts +12 -0
  69. package/dist/core/ask-broker.d.ts.map +1 -1
  70. package/dist/core/ask-broker.js +41 -0
  71. package/dist/core/ask-broker.js.map +1 -1
  72. package/dist/core/bot-turn-mutation-gate.d.ts +24 -0
  73. package/dist/core/bot-turn-mutation-gate.d.ts.map +1 -0
  74. package/dist/core/bot-turn-mutation-gate.js +369 -0
  75. package/dist/core/bot-turn-mutation-gate.js.map +1 -0
  76. package/dist/core/command-handler.d.ts +5 -0
  77. package/dist/core/command-handler.d.ts.map +1 -1
  78. package/dist/core/command-handler.js +53 -73
  79. package/dist/core/command-handler.js.map +1 -1
  80. package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
  81. package/dist/core/dashboard-ipc-server.js +356 -84
  82. package/dist/core/dashboard-ipc-server.js.map +1 -1
  83. package/dist/core/dashboard-rows.d.ts +8 -0
  84. package/dist/core/dashboard-rows.d.ts.map +1 -1
  85. package/dist/core/dashboard-rows.js.map +1 -1
  86. package/dist/core/host-overload-alert.d.ts +157 -0
  87. package/dist/core/host-overload-alert.d.ts.map +1 -0
  88. package/dist/core/host-overload-alert.js +251 -0
  89. package/dist/core/host-overload-alert.js.map +1 -0
  90. package/dist/core/passthrough-commands.d.ts +8 -0
  91. package/dist/core/passthrough-commands.d.ts.map +1 -1
  92. package/dist/core/passthrough-commands.js +20 -1
  93. package/dist/core/passthrough-commands.js.map +1 -1
  94. package/dist/core/plugins/mcp/gateway-installer.d.ts.map +1 -1
  95. package/dist/core/plugins/mcp/gateway-installer.js +14 -2
  96. package/dist/core/plugins/mcp/gateway-installer.js.map +1 -1
  97. package/dist/core/restart-coordinator.d.ts +28 -0
  98. package/dist/core/restart-coordinator.d.ts.map +1 -0
  99. package/dist/core/restart-coordinator.js +82 -0
  100. package/dist/core/restart-coordinator.js.map +1 -0
  101. package/dist/core/restart-followup-policy.d.ts +112 -0
  102. package/dist/core/restart-followup-policy.d.ts.map +1 -0
  103. package/dist/core/restart-followup-policy.js +49 -0
  104. package/dist/core/restart-followup-policy.js.map +1 -0
  105. package/dist/core/role-library.d.ts +1 -1
  106. package/dist/core/role-library.js +1 -1
  107. package/dist/core/session-cwd.d.ts.map +1 -1
  108. package/dist/core/session-cwd.js +8 -0
  109. package/dist/core/session-cwd.js.map +1 -1
  110. package/dist/core/session-discovery.d.ts +14 -0
  111. package/dist/core/session-discovery.d.ts.map +1 -1
  112. package/dist/core/session-discovery.js +25 -0
  113. package/dist/core/session-discovery.js.map +1 -1
  114. package/dist/core/session-liveness.d.ts +15 -0
  115. package/dist/core/session-liveness.d.ts.map +1 -0
  116. package/dist/core/session-liveness.js +76 -0
  117. package/dist/core/session-liveness.js.map +1 -0
  118. package/dist/core/session-manager.d.ts.map +1 -1
  119. package/dist/core/session-manager.js +90 -60
  120. package/dist/core/session-manager.js.map +1 -1
  121. package/dist/core/session-row-enrichment.d.ts +15 -0
  122. package/dist/core/session-row-enrichment.d.ts.map +1 -0
  123. package/dist/core/session-row-enrichment.js +93 -0
  124. package/dist/core/session-row-enrichment.js.map +1 -0
  125. package/dist/core/slash-inject.js +1 -1
  126. package/dist/core/slash-inject.js.map +1 -1
  127. package/dist/core/trigger-final-suppression.d.ts +24 -0
  128. package/dist/core/trigger-final-suppression.d.ts.map +1 -0
  129. package/dist/core/trigger-final-suppression.js +97 -0
  130. package/dist/core/trigger-final-suppression.js.map +1 -0
  131. package/dist/core/trigger-session.d.ts.map +1 -1
  132. package/dist/core/trigger-session.js +64 -4
  133. package/dist/core/trigger-session.js.map +1 -1
  134. package/dist/core/types.d.ts +6 -0
  135. package/dist/core/types.d.ts.map +1 -1
  136. package/dist/core/types.js.map +1 -1
  137. package/dist/core/worker-pool.d.ts +44 -0
  138. package/dist/core/worker-pool.d.ts.map +1 -1
  139. package/dist/core/worker-pool.js +333 -38
  140. package/dist/core/worker-pool.js.map +1 -1
  141. package/dist/daemon.d.ts +5 -1
  142. package/dist/daemon.d.ts.map +1 -1
  143. package/dist/daemon.js +526 -35
  144. package/dist/daemon.js.map +1 -1
  145. package/dist/dashboard/aggregator.d.ts +1 -0
  146. package/dist/dashboard/aggregator.d.ts.map +1 -1
  147. package/dist/dashboard/aggregator.js +34 -6
  148. package/dist/dashboard/aggregator.js.map +1 -1
  149. package/dist/dashboard/bot-payload.d.ts +8 -0
  150. package/dist/dashboard/bot-payload.d.ts.map +1 -1
  151. package/dist/dashboard/bot-payload.js +10 -0
  152. package/dist/dashboard/bot-payload.js.map +1 -1
  153. package/dist/dashboard/compat.d.ts +102 -2
  154. package/dist/dashboard/compat.d.ts.map +1 -1
  155. package/dist/dashboard/compat.js +78 -14
  156. package/dist/dashboard/compat.js.map +1 -1
  157. package/dist/dashboard/connector-api.d.ts.map +1 -1
  158. package/dist/dashboard/connector-api.js +1 -0
  159. package/dist/dashboard/connector-api.js.map +1 -1
  160. package/dist/dashboard/desktop-asks.d.ts +21 -0
  161. package/dist/dashboard/desktop-asks.d.ts.map +1 -0
  162. package/dist/dashboard/desktop-asks.js +49 -0
  163. package/dist/dashboard/desktop-asks.js.map +1 -0
  164. package/dist/dashboard/public-redact.d.ts +7 -0
  165. package/dist/dashboard/public-redact.d.ts.map +1 -1
  166. package/dist/dashboard/public-redact.js +35 -3
  167. package/dist/dashboard/public-redact.js.map +1 -1
  168. package/dist/dashboard/session-presentation.d.ts +16 -0
  169. package/dist/dashboard/session-presentation.d.ts.map +1 -0
  170. package/dist/dashboard/session-presentation.js +62 -0
  171. package/dist/dashboard/session-presentation.js.map +1 -0
  172. package/dist/dashboard/settings-write-applier.d.ts +2 -1
  173. package/dist/dashboard/settings-write-applier.d.ts.map +1 -1
  174. package/dist/dashboard/settings-write-applier.js +19 -1
  175. package/dist/dashboard/settings-write-applier.js.map +1 -1
  176. package/dist/dashboard/trigger-api.d.ts.map +1 -1
  177. package/dist/dashboard/trigger-api.js +19 -1
  178. package/dist/dashboard/trigger-api.js.map +1 -1
  179. package/dist/dashboard/vc-consumer-profiles-api.d.ts +7 -2
  180. package/dist/dashboard/vc-consumer-profiles-api.d.ts.map +1 -1
  181. package/dist/dashboard/vc-consumer-profiles-api.js +13 -0
  182. package/dist/dashboard/vc-consumer-profiles-api.js.map +1 -1
  183. package/dist/dashboard/web/app.d.ts.map +1 -1
  184. package/dist/dashboard/web/app.js +18 -5
  185. package/dist/dashboard/web/app.js.map +1 -1
  186. package/dist/dashboard/web/bot-defaults-page.d.ts +16 -0
  187. package/dist/dashboard/web/bot-defaults-page.d.ts.map +1 -1
  188. package/dist/dashboard/web/bot-defaults-page.js +288 -7
  189. package/dist/dashboard/web/bot-defaults-page.js.map +1 -1
  190. package/dist/dashboard/web/bot-defaults.d.ts +10 -0
  191. package/dist/dashboard/web/bot-defaults.d.ts.map +1 -1
  192. package/dist/dashboard/web/bot-defaults.js.map +1 -1
  193. package/dist/dashboard/web/client-shell.d.ts +29 -0
  194. package/dist/dashboard/web/client-shell.d.ts.map +1 -0
  195. package/dist/dashboard/web/client-shell.js +89 -0
  196. package/dist/dashboard/web/client-shell.js.map +1 -0
  197. package/dist/dashboard/web/connectors-page.d.ts.map +1 -1
  198. package/dist/dashboard/web/connectors-page.js +5 -1
  199. package/dist/dashboard/web/connectors-page.js.map +1 -1
  200. package/dist/dashboard/web/i18n.d.ts.map +1 -1
  201. package/dist/dashboard/web/i18n.js +130 -22
  202. package/dist/dashboard/web/i18n.js.map +1 -1
  203. package/dist/dashboard/web/preferences.d.ts +7 -0
  204. package/dist/dashboard/web/preferences.d.ts.map +1 -1
  205. package/dist/dashboard/web/preferences.js +32 -0
  206. package/dist/dashboard/web/preferences.js.map +1 -1
  207. package/dist/dashboard/web/sessions-kanban.d.ts +1 -1
  208. package/dist/dashboard/web/sessions-kanban.d.ts.map +1 -1
  209. package/dist/dashboard/web/sessions-kanban.js +1 -1
  210. package/dist/dashboard/web/sessions-kanban.js.map +1 -1
  211. package/dist/dashboard/web/sessions-page.d.ts.map +1 -1
  212. package/dist/dashboard/web/sessions-page.js +78 -67
  213. package/dist/dashboard/web/sessions-page.js.map +1 -1
  214. package/dist/dashboard/web/sessions.d.ts +4 -0
  215. package/dist/dashboard/web/sessions.d.ts.map +1 -1
  216. package/dist/dashboard/web/sessions.js +14 -1
  217. package/dist/dashboard/web/sessions.js.map +1 -1
  218. package/dist/dashboard/web/settings-page.d.ts +6 -0
  219. package/dist/dashboard/web/settings-page.d.ts.map +1 -1
  220. package/dist/dashboard/web/settings-page.js +55 -30
  221. package/dist/dashboard/web/settings-page.js.map +1 -1
  222. package/dist/dashboard/web/store.d.ts +1 -2
  223. package/dist/dashboard/web/store.d.ts.map +1 -1
  224. package/dist/dashboard/web/store.js +69 -20
  225. package/dist/dashboard/web/store.js.map +1 -1
  226. package/dist/dashboard/web/vc-consumer-profiles-section.d.ts.map +1 -1
  227. package/dist/dashboard/web/vc-consumer-profiles-section.js +128 -42
  228. package/dist/dashboard/web/vc-consumer-profiles-section.js.map +1 -1
  229. package/dist/dashboard/webhook-routes.d.ts.map +1 -1
  230. package/dist/dashboard/webhook-routes.js +9 -2
  231. package/dist/dashboard/webhook-routes.js.map +1 -1
  232. package/dist/dashboard-web/app.js +1 -1
  233. package/dist/dashboard-web/chunks/bot-defaults-page-VQMPUJ4Y.js +10 -0
  234. package/dist/dashboard-web/chunks/chunk-AGCPF6MT.js +1 -0
  235. package/dist/dashboard-web/chunks/{chunk-QCPPKCX3.js → chunk-JMRGZQDB.js} +1 -1
  236. package/dist/dashboard-web/chunks/{chunk-EJDYUINZ.js → chunk-NP4JUBGS.js} +1 -1
  237. package/dist/dashboard-web/chunks/{chunk-WXPMNEYV.js → chunk-P327LXOT.js} +1 -1
  238. package/dist/dashboard-web/chunks/chunk-SNKATZWK.js +49 -0
  239. package/dist/dashboard-web/chunks/connectors-page-DOY4J3ZL.js +1 -0
  240. package/dist/dashboard-web/chunks/{groups-page-3P4TLUMF.js → groups-page-74TS2DIH.js} +1 -1
  241. package/dist/dashboard-web/chunks/{insights-page-TDCZV56A.js → insights-page-AYCO65JC.js} +1 -1
  242. package/dist/dashboard-web/chunks/{monitor-room-QWCWL3SX.js → monitor-room-YKYLTSAN.js} +1 -1
  243. package/dist/dashboard-web/chunks/{monitoring-page-IOWFSNVC.js → monitoring-page-QBIUNRBR.js} +1 -1
  244. package/dist/dashboard-web/chunks/{office-page-5AUPEHZP.js → office-page-4PH2A26P.js} +1 -1
  245. package/dist/dashboard-web/chunks/overview-page-H73D5UT4.js +1 -0
  246. package/dist/dashboard-web/chunks/{roles-page-WJVB52ET.js → roles-page-U4BTOQ7F.js} +1 -1
  247. package/dist/dashboard-web/chunks/{schedules-page-RVRWHP4V.js → schedules-page-RHRHX7R7.js} +1 -1
  248. package/dist/dashboard-web/chunks/sessions-page-VSC6AM5G.js +2 -0
  249. package/dist/dashboard-web/chunks/settings-page-LF3RKM5P.js +2 -0
  250. package/dist/dashboard-web/chunks/{skills-page-7YT5TIX5.js → skills-page-SYOIGGXH.js} +1 -1
  251. package/dist/dashboard-web/chunks/{team-federation-page-NJZKTU7A.js → team-federation-page-RMBLASTW.js} +1 -1
  252. package/dist/dashboard-web/chunks/{v3-page-NQ73UA2Q.js → v3-page-XJXKKJRN.js} +1 -1
  253. package/dist/dashboard-web/chunks/{whiteboards-page-DSM3MDMN.js → whiteboards-page-K3YVSTHJ.js} +1 -1
  254. package/dist/dashboard-web/style.css +571 -3
  255. package/dist/dashboard.js +238 -9
  256. package/dist/dashboard.js.map +1 -1
  257. package/dist/global-config.d.ts +11 -0
  258. package/dist/global-config.d.ts.map +1 -1
  259. package/dist/global-config.js +27 -1
  260. package/dist/global-config.js.map +1 -1
  261. package/dist/i18n/en.d.ts.map +1 -1
  262. package/dist/i18n/en.js +6 -19
  263. package/dist/i18n/en.js.map +1 -1
  264. package/dist/i18n/zh.d.ts.map +1 -1
  265. package/dist/i18n/zh.js +6 -19
  266. package/dist/i18n/zh.js.map +1 -1
  267. package/dist/im/lark/card-builder.d.ts +1 -14
  268. package/dist/im/lark/card-builder.d.ts.map +1 -1
  269. package/dist/im/lark/card-builder.js +1 -35
  270. package/dist/im/lark/card-builder.js.map +1 -1
  271. package/dist/im/lark/card-handler.d.ts +10 -0
  272. package/dist/im/lark/card-handler.d.ts.map +1 -1
  273. package/dist/im/lark/card-handler.js +161 -44
  274. package/dist/im/lark/card-handler.js.map +1 -1
  275. package/dist/im/lark/client.d.ts +47 -0
  276. package/dist/im/lark/client.d.ts.map +1 -1
  277. package/dist/im/lark/client.js +127 -18
  278. package/dist/im/lark/client.js.map +1 -1
  279. package/dist/im/lark/event-dispatcher.d.ts +13 -0
  280. package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
  281. package/dist/im/lark/event-dispatcher.js +48 -3
  282. package/dist/im/lark/event-dispatcher.js.map +1 -1
  283. package/dist/im/lark/identity-cache.d.ts +25 -1
  284. package/dist/im/lark/identity-cache.d.ts.map +1 -1
  285. package/dist/im/lark/identity-cache.js +47 -1
  286. package/dist/im/lark/identity-cache.js.map +1 -1
  287. package/dist/im/lark/overload-nonce.d.ts +19 -0
  288. package/dist/im/lark/overload-nonce.d.ts.map +1 -0
  289. package/dist/im/lark/overload-nonce.js +72 -0
  290. package/dist/im/lark/overload-nonce.js.map +1 -0
  291. package/dist/im/lark/v3-progress-card.d.ts.map +1 -1
  292. package/dist/im/lark/v3-progress-card.js +5 -0
  293. package/dist/im/lark/v3-progress-card.js.map +1 -1
  294. package/dist/services/async-trigger-state.d.ts +82 -0
  295. package/dist/services/async-trigger-state.d.ts.map +1 -0
  296. package/dist/services/async-trigger-state.js +95 -0
  297. package/dist/services/async-trigger-state.js.map +1 -0
  298. package/dist/services/async-trigger-store.d.ts +28 -0
  299. package/dist/services/async-trigger-store.d.ts.map +1 -0
  300. package/dist/services/async-trigger-store.js +120 -0
  301. package/dist/services/async-trigger-store.js.map +1 -0
  302. package/dist/services/bot-config-store.d.ts.map +1 -1
  303. package/dist/services/bot-config-store.js +34 -2
  304. package/dist/services/bot-config-store.js.map +1 -1
  305. package/dist/services/bridge-fallback-gate.d.ts +32 -0
  306. package/dist/services/bridge-fallback-gate.d.ts.map +1 -1
  307. package/dist/services/bridge-fallback-gate.js +39 -0
  308. package/dist/services/bridge-fallback-gate.js.map +1 -1
  309. package/dist/services/bridge-turn-queue.d.ts.map +1 -1
  310. package/dist/services/bridge-turn-queue.js +15 -1
  311. package/dist/services/bridge-turn-queue.js.map +1 -1
  312. package/dist/services/card-prefs-store.d.ts +4 -0
  313. package/dist/services/card-prefs-store.d.ts.map +1 -1
  314. package/dist/services/card-prefs-store.js +8 -0
  315. package/dist/services/card-prefs-store.js.map +1 -1
  316. package/dist/services/claude-transcript.d.ts +23 -0
  317. package/dist/services/claude-transcript.d.ts.map +1 -1
  318. package/dist/services/claude-transcript.js +33 -0
  319. package/dist/services/claude-transcript.js.map +1 -1
  320. package/dist/services/codex-app-runner-protocol.d.ts +61 -0
  321. package/dist/services/codex-app-runner-protocol.d.ts.map +1 -0
  322. package/dist/services/codex-app-runner-protocol.js +170 -0
  323. package/dist/services/codex-app-runner-protocol.js.map +1 -0
  324. package/dist/services/codex-app-turn-controller.d.ts +72 -0
  325. package/dist/services/codex-app-turn-controller.d.ts.map +1 -0
  326. package/dist/services/codex-app-turn-controller.js +524 -0
  327. package/dist/services/codex-app-turn-controller.js.map +1 -0
  328. package/dist/services/codex-runner-freshness.d.ts +39 -0
  329. package/dist/services/codex-runner-freshness.d.ts.map +1 -0
  330. package/dist/services/codex-runner-freshness.js +78 -0
  331. package/dist/services/codex-runner-freshness.js.map +1 -0
  332. package/dist/services/connector-store.d.ts +6 -0
  333. package/dist/services/connector-store.d.ts.map +1 -1
  334. package/dist/services/connector-store.js.map +1 -1
  335. package/dist/services/grant-store.d.ts.map +1 -1
  336. package/dist/services/grant-store.js +16 -0
  337. package/dist/services/grant-store.js.map +1 -1
  338. package/dist/services/hermes-transcript.d.ts +1 -0
  339. package/dist/services/hermes-transcript.d.ts.map +1 -1
  340. package/dist/services/hermes-transcript.js +49 -0
  341. package/dist/services/hermes-transcript.js.map +1 -1
  342. package/dist/services/sandbox-migration.d.ts +14 -0
  343. package/dist/services/sandbox-migration.d.ts.map +1 -0
  344. package/dist/services/sandbox-migration.js +85 -0
  345. package/dist/services/sandbox-migration.js.map +1 -0
  346. package/dist/services/sandbox-store.d.ts +28 -0
  347. package/dist/services/sandbox-store.d.ts.map +1 -1
  348. package/dist/services/sandbox-store.js +82 -0
  349. package/dist/services/sandbox-store.js.map +1 -1
  350. package/dist/services/schedule-split-migration.d.ts +2 -0
  351. package/dist/services/schedule-split-migration.d.ts.map +1 -0
  352. package/dist/services/schedule-split-migration.js +159 -0
  353. package/dist/services/schedule-split-migration.js.map +1 -0
  354. package/dist/services/schedule-store.d.ts +28 -4
  355. package/dist/services/schedule-store.d.ts.map +1 -1
  356. package/dist/services/schedule-store.js +118 -33
  357. package/dist/services/schedule-store.js.map +1 -1
  358. package/dist/services/trigger-types.d.ts +18 -1
  359. package/dist/services/trigger-types.d.ts.map +1 -1
  360. package/dist/services/trigger-types.js +3 -0
  361. package/dist/services/trigger-types.js.map +1 -1
  362. package/dist/services/vc-meeting-consumer-profile-store.d.ts.map +1 -1
  363. package/dist/services/vc-meeting-consumer-profile-store.js +1 -0
  364. package/dist/services/vc-meeting-consumer-profile-store.js.map +1 -1
  365. package/dist/services/vc-meeting-consumer-profile-templates.d.ts +32 -0
  366. package/dist/services/vc-meeting-consumer-profile-templates.d.ts.map +1 -0
  367. package/dist/services/vc-meeting-consumer-profile-templates.js +106 -0
  368. package/dist/services/vc-meeting-consumer-profile-templates.js.map +1 -0
  369. package/dist/services/vc-meeting-delivery-feed.d.ts +1 -1
  370. package/dist/services/vc-meeting-delivery-feed.d.ts.map +1 -1
  371. package/dist/services/vc-meeting-delivery-feed.js +2 -1
  372. package/dist/services/vc-meeting-delivery-feed.js.map +1 -1
  373. package/dist/services/vc-meeting-delivery-hub-store.d.ts +3 -1
  374. package/dist/services/vc-meeting-delivery-hub-store.d.ts.map +1 -1
  375. package/dist/services/vc-meeting-delivery-hub-store.js +11 -0
  376. package/dist/services/vc-meeting-delivery-hub-store.js.map +1 -1
  377. package/dist/services/vc-meeting-delivery-protocol.d.ts +9 -2
  378. package/dist/services/vc-meeting-delivery-protocol.d.ts.map +1 -1
  379. package/dist/services/vc-meeting-delivery-protocol.js +10 -1
  380. package/dist/services/vc-meeting-delivery-protocol.js.map +1 -1
  381. package/dist/services/vc-meeting-delivery-receiver.d.ts.map +1 -1
  382. package/dist/services/vc-meeting-delivery-receiver.js +10 -1
  383. package/dist/services/vc-meeting-delivery-receiver.js.map +1 -1
  384. package/dist/services/vc-meeting-delivery-store.d.ts +12 -2
  385. package/dist/services/vc-meeting-delivery-store.d.ts.map +1 -1
  386. package/dist/services/vc-meeting-delivery-store.js +14 -2
  387. package/dist/services/vc-meeting-delivery-store.js.map +1 -1
  388. package/dist/services/vc-meeting-im-reply.d.ts +2 -1
  389. package/dist/services/vc-meeting-im-reply.d.ts.map +1 -1
  390. package/dist/services/vc-meeting-im-reply.js +19 -3
  391. package/dist/services/vc-meeting-im-reply.js.map +1 -1
  392. package/dist/services/vc-meeting-listener-output-protocol.d.ts +27 -0
  393. package/dist/services/vc-meeting-listener-output-protocol.d.ts.map +1 -0
  394. package/dist/services/vc-meeting-listener-output-protocol.js +58 -0
  395. package/dist/services/vc-meeting-listener-output-protocol.js.map +1 -0
  396. package/dist/services/vc-meeting-listener-topic-store.d.ts +31 -0
  397. package/dist/services/vc-meeting-listener-topic-store.d.ts.map +1 -0
  398. package/dist/services/vc-meeting-listener-topic-store.js +120 -0
  399. package/dist/services/vc-meeting-listener-topic-store.js.map +1 -0
  400. package/dist/services/vc-meeting-runtime-store.d.ts +2 -1
  401. package/dist/services/vc-meeting-runtime-store.d.ts.map +1 -1
  402. package/dist/services/vc-meeting-runtime-store.js +8 -0
  403. package/dist/services/vc-meeting-runtime-store.js.map +1 -1
  404. package/dist/services/vc-meeting-send-policy.d.ts +8 -1
  405. package/dist/services/vc-meeting-send-policy.d.ts.map +1 -1
  406. package/dist/services/vc-meeting-send-policy.js +8 -0
  407. package/dist/services/vc-meeting-send-policy.js.map +1 -1
  408. package/dist/types.d.ts +53 -4
  409. package/dist/types.d.ts.map +1 -1
  410. package/dist/utils/allowed-users-apply.d.ts +76 -0
  411. package/dist/utils/allowed-users-apply.d.ts.map +1 -0
  412. package/dist/utils/allowed-users-apply.js +123 -0
  413. package/dist/utils/allowed-users-apply.js.map +1 -0
  414. package/dist/utils/allowed-users-cache.d.ts +29 -0
  415. package/dist/utils/allowed-users-cache.d.ts.map +1 -0
  416. package/dist/utils/allowed-users-cache.js +82 -0
  417. package/dist/utils/allowed-users-cache.js.map +1 -0
  418. package/dist/utils/child-env.d.ts +4 -3
  419. package/dist/utils/child-env.d.ts.map +1 -1
  420. package/dist/utils/child-env.js +16 -1
  421. package/dist/utils/child-env.js.map +1 -1
  422. package/dist/utils/cli-usage-limit.d.ts +27 -1
  423. package/dist/utils/cli-usage-limit.d.ts.map +1 -1
  424. package/dist/utils/cli-usage-limit.js +92 -20
  425. package/dist/utils/cli-usage-limit.js.map +1 -1
  426. package/dist/utils/input-gate.d.ts +2 -0
  427. package/dist/utils/input-gate.d.ts.map +1 -1
  428. package/dist/utils/input-gate.js +2 -0
  429. package/dist/utils/input-gate.js.map +1 -1
  430. package/dist/utils/runtime-build-id.d.ts +21 -0
  431. package/dist/utils/runtime-build-id.d.ts.map +1 -0
  432. package/dist/utils/runtime-build-id.js +83 -0
  433. package/dist/utils/runtime-build-id.js.map +1 -0
  434. package/dist/utils/terminal-renderer.d.ts +3 -3
  435. package/dist/utils/terminal-renderer.js +3 -3
  436. package/dist/vc-agent/cards.d.ts.map +1 -1
  437. package/dist/vc-agent/cards.js +21 -1
  438. package/dist/vc-agent/cards.js.map +1 -1
  439. package/dist/worker.js +1010 -669
  440. package/dist/worker.js.map +1 -1
  441. package/dist/workflows/events/payloads.d.ts +56 -0
  442. package/dist/workflows/events/payloads.d.ts.map +1 -1
  443. package/dist/workflows/events/payloads.js +9 -0
  444. package/dist/workflows/events/payloads.js.map +1 -1
  445. package/dist/workflows/events/schema.d.ts +86 -0
  446. package/dist/workflows/events/schema.d.ts.map +1 -1
  447. package/dist/workflows/hostExecutors/botmux-schedule.d.ts.map +1 -1
  448. package/dist/workflows/hostExecutors/botmux-schedule.js +13 -1
  449. package/dist/workflows/hostExecutors/botmux-schedule.js.map +1 -1
  450. package/dist/workflows/migration/v2-run-archive-schema.d.ts +20 -20
  451. package/dist/workflows/migration/v2-to-v3.d.ts.map +1 -1
  452. package/dist/workflows/migration/v2-to-v3.js +5 -1
  453. package/dist/workflows/migration/v2-to-v3.js.map +1 -1
  454. package/dist/workflows/shared/sandbox-policy.d.ts +10 -1
  455. package/dist/workflows/shared/sandbox-policy.d.ts.map +1 -1
  456. package/dist/workflows/shared/sandbox-policy.js +12 -0
  457. package/dist/workflows/shared/sandbox-policy.js.map +1 -1
  458. package/dist/workflows/v3/architect.d.ts.map +1 -1
  459. package/dist/workflows/v3/architect.js +1 -0
  460. package/dist/workflows/v3/architect.js.map +1 -1
  461. package/dist/workflows/v3/bot-resolve.d.ts.map +1 -1
  462. package/dist/workflows/v3/bot-resolve.js +36 -0
  463. package/dist/workflows/v3/bot-resolve.js.map +1 -1
  464. package/dist/workflows/v3/cli-run.d.ts +9 -0
  465. package/dist/workflows/v3/cli-run.d.ts.map +1 -1
  466. package/dist/workflows/v3/cli-run.js +17 -2
  467. package/dist/workflows/v3/cli-run.js.map +1 -1
  468. package/dist/workflows/v3/contract.d.ts +8 -0
  469. package/dist/workflows/v3/contract.d.ts.map +1 -1
  470. package/dist/workflows/v3/contract.js.map +1 -1
  471. package/dist/workflows/v3/goal-cli.d.ts +58 -0
  472. package/dist/workflows/v3/goal-cli.d.ts.map +1 -0
  473. package/dist/workflows/v3/goal-cli.js +430 -0
  474. package/dist/workflows/v3/goal-cli.js.map +1 -0
  475. package/dist/workflows/v3/library-materialize.d.ts.map +1 -1
  476. package/dist/workflows/v3/library-materialize.js +5 -1
  477. package/dist/workflows/v3/library-materialize.js.map +1 -1
  478. package/dist/workflows/v3/library-schema.d.ts +21 -0
  479. package/dist/workflows/v3/library-schema.d.ts.map +1 -1
  480. package/dist/workflows/v3/library-schema.js +95 -1
  481. package/dist/workflows/v3/library-schema.js.map +1 -1
  482. package/dist/workflows/v3/progress-projection.d.ts +3 -0
  483. package/dist/workflows/v3/progress-projection.d.ts.map +1 -1
  484. package/dist/workflows/v3/progress-projection.js +23 -1
  485. package/dist/workflows/v3/progress-projection.js.map +1 -1
  486. package/dist/workflows/v3/run-envelope.d.ts +46 -1
  487. package/dist/workflows/v3/run-envelope.d.ts.map +1 -1
  488. package/dist/workflows/v3/run-envelope.js +32 -1
  489. package/dist/workflows/v3/run-envelope.js.map +1 -1
  490. package/package.json +2 -2
  491. package/dist/dashboard-web/chunks/bot-defaults-page-O376WSER.js +0 -5
  492. package/dist/dashboard-web/chunks/chunk-H7P5UV4W.js +0 -49
  493. package/dist/dashboard-web/chunks/chunk-SZOB6VK2.js +0 -1
  494. package/dist/dashboard-web/chunks/connectors-page-IR54AOAI.js +0 -1
  495. package/dist/dashboard-web/chunks/overview-page-QJMI6NLW.js +0 -1
  496. package/dist/dashboard-web/chunks/sessions-page-KWLGBX6G.js +0 -3
  497. package/dist/dashboard-web/chunks/settings-page-TNZEPC7V.js +0 -2
  498. package/dist/services/sandbox-land.d.ts +0 -45
  499. package/dist/services/sandbox-land.d.ts.map +0 -1
  500. package/dist/services/sandbox-land.js +0 -394
  501. package/dist/services/sandbox-land.js.map +0 -1
  502. package/dist/utils/screen-analyzer.d.ts +0 -75
  503. package/dist/utils/screen-analyzer.d.ts.map +0 -1
  504. package/dist/utils/screen-analyzer.js +0 -333
  505. package/dist/utils/screen-analyzer.js.map +0 -1
@@ -2042,6 +2042,104 @@ tr[data-chat]:hover { background: var(--surface-muted); cursor: pointer; }
2042
2042
  text-overflow: ellipsis;
2043
2043
  }
2044
2044
 
2045
+ /* ── 表格列显隐下拉菜单 ─────────────────────────────────────────────── */
2046
+ .session-table-columns-th {
2047
+ position: relative;
2048
+ padding: 0;
2049
+ }
2050
+
2051
+ .session-table-columns-menu {
2052
+ position: relative;
2053
+ display: inline-block;
2054
+ }
2055
+
2056
+ .session-table-columns-menu > summary {
2057
+ display: inline-flex;
2058
+ align-items: center;
2059
+ gap: 4px;
2060
+ cursor: pointer;
2061
+ padding: 4px 8px;
2062
+ border-radius: 6px;
2063
+ font-size: 12px;
2064
+ white-space: nowrap;
2065
+ user-select: none;
2066
+ }
2067
+
2068
+ .session-table-columns-menu > summary:hover {
2069
+ background: rgba(127, 90, 240, 0.12);
2070
+ }
2071
+
2072
+ .session-table-columns-menu > summary::-webkit-details-marker {
2073
+ display: none;
2074
+ }
2075
+
2076
+ .session-table-columns-icon svg {
2077
+ width: 14px;
2078
+ height: 14px;
2079
+ stroke: currentColor;
2080
+ fill: none;
2081
+ stroke-width: 1.5;
2082
+ stroke-linecap: round;
2083
+ }
2084
+
2085
+ .session-table-columns-dropdown {
2086
+ position: absolute;
2087
+ top: 100%;
2088
+ right: 0;
2089
+ z-index: 50;
2090
+ min-width: 160px;
2091
+ margin-top: 4px;
2092
+ padding: 8px;
2093
+ border-radius: 8px;
2094
+ background: var(--surface, #fff);
2095
+ border: 1px solid rgba(127, 90, 240, 0.2);
2096
+ box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
2097
+ }
2098
+
2099
+ .session-table-columns-header {
2100
+ display: flex;
2101
+ align-items: center;
2102
+ justify-content: space-between;
2103
+ gap: 8px;
2104
+ margin-bottom: 6px;
2105
+ padding-bottom: 6px;
2106
+ border-bottom: 1px solid rgba(127, 90, 240, 0.15);
2107
+ font-size: 12px;
2108
+ font-weight: 600;
2109
+ }
2110
+
2111
+ .session-table-columns-reset {
2112
+ font-size: 11px;
2113
+ padding: 2px 6px;
2114
+ border-radius: 4px;
2115
+ border: 1px solid rgba(127, 90, 240, 0.25);
2116
+ background: transparent;
2117
+ cursor: pointer;
2118
+ }
2119
+
2120
+ .session-table-columns-reset:hover {
2121
+ background: rgba(127, 90, 240, 0.12);
2122
+ }
2123
+
2124
+ .session-table-columns-item {
2125
+ display: flex;
2126
+ align-items: center;
2127
+ gap: 6px;
2128
+ padding: 4px 4px;
2129
+ font-size: 12px;
2130
+ cursor: pointer;
2131
+ border-radius: 4px;
2132
+ }
2133
+
2134
+ .session-table-columns-item:hover {
2135
+ background: rgba(127, 90, 240, 0.08);
2136
+ }
2137
+
2138
+ .session-table-columns-item input[type="checkbox"] {
2139
+ margin: 0;
2140
+ cursor: pointer;
2141
+ }
2142
+
2045
2143
  button,
2046
2144
  .btn-link {
2047
2145
  min-height: 32px;
@@ -6147,9 +6245,9 @@ dialog.onboarding-dialog::backdrop {
6147
6245
  color: var(--muted);
6148
6246
  }
6149
6247
  .bd-section-note { margin: 6px 0 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
6150
- /* Read-isolation capability line under the file-sandbox toggle: green when this
6151
- bot's sandbox also read-isolates (claude/codex on macOS/Linux), muted grey when
6152
- it's write-protection only. Theme-safe via color-mix on the semantic tokens. */
6248
+ /* CLI-data-isolation capability line under the file-sandbox toggle: green when
6249
+ the CLI data root is redirected into this bot's private BOT_HOME, muted grey
6250
+ when only the base deny-by-default file sandbox applies. */
6153
6251
  .bd-section-note[data-read-iso-capability] { margin-top: 8px; padding: 7px 10px; border-radius: 9px; line-height: 1.55; }
6154
6252
  .bd-section-note[data-read-iso-capability="yes"] {
6155
6253
  color: var(--success);
@@ -6162,6 +6260,23 @@ dialog.onboarding-dialog::backdrop {
6162
6260
  border: 1px solid var(--border-soft);
6163
6261
  }
6164
6262
 
6263
+ /* ── Sandbox directory whitelist tree ── */
6264
+ .bd-sbx-tree { margin-top: 10px; max-height: 380px; overflow: auto; border: 1px solid var(--border-soft); border-radius: 9px; padding: 8px; font-size: 13px; }
6265
+ .bd-sbx-row { display: flex; flex-wrap: nowrap; align-items: center; gap: 6px; padding: 2px 0; min-width: 0; }
6266
+ .bd-sbx-twisty { cursor: pointer; flex: 0 0 14px; text-align: center; color: var(--muted); user-select: none; }
6267
+ .bd-sbx-name { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-family: var(--mono, monospace); }
6268
+ .bd-sbx-state { cursor: pointer; flex: 0 0 auto; width: 84px; text-align: center; font-size: 11px; padding: 1px 0; border-radius: 999px; border: 1px solid var(--border-soft); background: transparent; color: var(--muted); }
6269
+ .bd-sbx-state-inherit { color: var(--muted); border-style: dashed; }
6270
+ .bd-sbx-state-readWrite { color: #1a7f37; background: color-mix(in srgb, #1a7f37 12%, transparent); border-color: color-mix(in srgb, #1a7f37 40%, transparent); }
6271
+ .bd-sbx-state-readOnly { color: #9a6700; background: color-mix(in srgb, #9a6700 12%, transparent); border-color: color-mix(in srgb, #9a6700 40%, transparent); }
6272
+ .bd-sbx-state-deny { color: #cf222e; background: color-mix(in srgb, #cf222e 12%, transparent); border-color: color-mix(in srgb, #cf222e 40%, transparent); }
6273
+ .bd-sbx-state-none { color: var(--muted); }
6274
+ .bd-sbx-empty { color: var(--muted); font-size: 12px; padding: 2px 0; }
6275
+ .bd-sbx-text { margin-top: 10px; width: 100%; box-sizing: border-box; font-family: var(--mono, monospace); font-size: 13px; padding: 8px; border: 1px solid var(--border-soft); border-radius: 9px; resize: vertical; }
6276
+ .bd-sbx-tester { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 10px; }
6277
+ .bd-sbx-test-input { flex: 1 1 240px; font-family: var(--mono, monospace); font-size: 13px; padding: 6px 9px; border: 1px solid var(--border-soft); border-radius: 8px; }
6278
+ .bd-sbx-test-out { font-size: 12px; font-family: var(--mono, monospace); padding: 2px 8px; border-radius: 8px; }
6279
+
6165
6280
  /* ── Version & update card ── */
6166
6281
  .update-version { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 0 0 12px; }
6167
6282
  .update-badge { font-size: 12px; font-weight: 600; padding: 2px 8px; border-radius: 999px; }
@@ -17481,6 +17596,41 @@ form.dashboard-toolbar > input[type="text"]:focus {
17481
17596
  min-width: 0;
17482
17597
  }
17483
17598
 
17599
+ .settings-module {
17600
+ display: grid;
17601
+ gap: 10px;
17602
+ min-width: 0;
17603
+ }
17604
+
17605
+ .settings-module + .settings-module {
17606
+ margin-top: 8px;
17607
+ }
17608
+
17609
+ .settings-module-heading {
17610
+ display: flex;
17611
+ align-items: baseline;
17612
+ gap: 12px;
17613
+ padding: 0 2px;
17614
+ }
17615
+
17616
+ .settings-module-heading h2,
17617
+ .settings-module-heading p {
17618
+ margin: 0;
17619
+ }
17620
+
17621
+ .settings-module-heading h2 {
17622
+ flex: none;
17623
+ color: var(--fg);
17624
+ font-size: 15px;
17625
+ font-weight: 780;
17626
+ }
17627
+
17628
+ .settings-module-heading p {
17629
+ color: var(--muted);
17630
+ font-size: 12px;
17631
+ line-height: 1.5;
17632
+ }
17633
+
17484
17634
  .settings-page .settings-primary-grid {
17485
17635
  grid-template-columns: repeat(6, minmax(0, 1fr));
17486
17636
  grid-auto-rows: 1fr;
@@ -17528,6 +17678,14 @@ form.dashboard-toolbar > input[type="text"]:focus {
17528
17678
  grid-column: span 2;
17529
17679
  }
17530
17680
 
17681
+ .settings-group-meeting .settings-group-card {
17682
+ grid-template-columns: 1fr;
17683
+ }
17684
+
17685
+ .settings-group-meeting .settings-vc-block {
17686
+ grid-column: 1 / -1;
17687
+ }
17688
+
17531
17689
  .settings-group-ops .settings-group-card {
17532
17690
  grid-template-columns: minmax(360px, 5fr) minmax(0, 7fr);
17533
17691
  }
@@ -17910,6 +18068,11 @@ form.dashboard-toolbar > input[type="text"]:focus {
17910
18068
  padding: 8px 0 2px;
17911
18069
  min-width: 0;
17912
18070
  }
18071
+ .settings-page .settings-group-prefix-editor .settings-field-row {
18072
+ grid-template-columns: 1fr;
18073
+ align-items: start;
18074
+ gap: 8px;
18075
+ }
17913
18076
  .settings-page .settings-subfield-hint {
17914
18077
  margin: 0;
17915
18078
  font-size: 12px;
@@ -18135,6 +18298,12 @@ input.office-proxy-input[type="text"]:not([type=checkbox]):not([type=radio]):not
18135
18298
  gap: 8px;
18136
18299
  }
18137
18300
 
18301
+ .settings-module-heading {
18302
+ align-items: flex-start;
18303
+ flex-direction: column;
18304
+ gap: 3px;
18305
+ }
18306
+
18138
18307
  .settings-block-title-extra {
18139
18308
  width: 100%;
18140
18309
  justify-content: flex-start;
@@ -23166,6 +23335,65 @@ button.ui-refresh-button.is-loading .ui-action-icon {
23166
23335
  font-size: 11px;
23167
23336
  opacity: 0.6;
23168
23337
  }
23338
+ .vc-profile-template-catalog {
23339
+ display: flex;
23340
+ flex-direction: column;
23341
+ gap: 8px;
23342
+ padding: 12px;
23343
+ border: 1px solid var(--border-soft);
23344
+ border-radius: 10px;
23345
+ background: color-mix(in srgb, var(--surface) 92%, var(--accent) 8%);
23346
+ }
23347
+ .vc-profile-template-heading {
23348
+ display: flex;
23349
+ align-items: center;
23350
+ gap: 8px;
23351
+ }
23352
+ .vc-profile-template-heading > span {
23353
+ padding: 2px 7px;
23354
+ border-radius: 999px;
23355
+ background: color-mix(in srgb, var(--accent) 14%, transparent);
23356
+ color: var(--accent);
23357
+ font-size: 10px;
23358
+ font-weight: 700;
23359
+ }
23360
+ .vc-profile-template-grid {
23361
+ display: grid;
23362
+ grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
23363
+ gap: 8px;
23364
+ }
23365
+ .vc-profile-template-card {
23366
+ display: flex;
23367
+ flex-direction: column;
23368
+ align-items: flex-start;
23369
+ gap: 6px;
23370
+ min-width: 0;
23371
+ padding: 10px;
23372
+ border: 1px solid var(--border-soft);
23373
+ border-radius: 8px;
23374
+ background: var(--surface);
23375
+ }
23376
+ .vc-profile-template-card p {
23377
+ flex: 1;
23378
+ margin: 0;
23379
+ color: var(--muted);
23380
+ font-size: 11px;
23381
+ line-height: 1.5;
23382
+ }
23383
+ .vc-profile-template-use {
23384
+ border: 1px solid var(--accent, #4a7dff);
23385
+ border-radius: 6px;
23386
+ padding: 4px 9px;
23387
+ background: transparent;
23388
+ color: var(--accent, #4a7dff);
23389
+ font: inherit;
23390
+ font-size: 11px;
23391
+ cursor: pointer;
23392
+ }
23393
+ .vc-profile-template-use:disabled {
23394
+ opacity: 0.5;
23395
+ cursor: default;
23396
+ }
23169
23397
  .vc-profile-err {
23170
23398
  font-style: normal;
23171
23399
  font-size: 11px;
@@ -23207,6 +23435,346 @@ button.ui-refresh-button.is-loading .ui-action-icon {
23207
23435
  cursor: default;
23208
23436
  }
23209
23437
 
23438
+ /* Compact preset library: cards are summaries; configuration lives in dialogs. */
23439
+ .vc-profile-library-section,
23440
+ .vc-profile-template-catalog {
23441
+ display: grid;
23442
+ gap: 12px;
23443
+ padding: 0;
23444
+ border: 0;
23445
+ background: transparent;
23446
+ }
23447
+
23448
+ .vc-profile-library-section + .vc-profile-template-catalog {
23449
+ margin-top: 8px;
23450
+ padding-top: 20px;
23451
+ border-top: 1px solid var(--border-soft);
23452
+ }
23453
+
23454
+ .vc-profile-list-heading,
23455
+ .vc-profile-template-heading {
23456
+ display: flex;
23457
+ align-items: flex-start;
23458
+ justify-content: space-between;
23459
+ gap: 16px;
23460
+ }
23461
+
23462
+ .vc-profile-list-heading > div,
23463
+ .vc-profile-template-heading > div {
23464
+ display: grid;
23465
+ gap: 4px;
23466
+ }
23467
+
23468
+ .vc-profile-list-heading strong,
23469
+ .vc-profile-template-heading strong {
23470
+ color: var(--fg);
23471
+ font-size: 13px;
23472
+ }
23473
+
23474
+ .vc-profile-list-heading p,
23475
+ .vc-profile-template-heading p {
23476
+ max-width: 720px;
23477
+ margin: 0;
23478
+ color: var(--muted);
23479
+ font-size: 11.5px;
23480
+ line-height: 1.5;
23481
+ }
23482
+
23483
+ .vc-profile-add {
23484
+ flex: none;
23485
+ min-height: 32px;
23486
+ padding: 0 12px;
23487
+ border: 1px solid color-mix(in srgb, var(--accent) 42%, var(--border-soft));
23488
+ border-radius: var(--radius-full);
23489
+ background: color-mix(in srgb, var(--accent) 7%, var(--surface));
23490
+ font-weight: 700;
23491
+ }
23492
+
23493
+ .vc-profile-card-grid,
23494
+ .vc-profile-template-grid {
23495
+ display: grid;
23496
+ grid-template-columns: repeat(auto-fill, minmax(min(250px, 100%), 1fr));
23497
+ gap: 10px;
23498
+ }
23499
+
23500
+ .vc-profile-summary-card,
23501
+ .vc-profile-template-card {
23502
+ box-sizing: border-box;
23503
+ min-width: 0;
23504
+ min-height: 164px;
23505
+ padding: 14px;
23506
+ border: 1px solid var(--border-soft);
23507
+ border-radius: var(--radius-lg);
23508
+ background: var(--surface);
23509
+ color: var(--fg);
23510
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.035);
23511
+ cursor: pointer;
23512
+ transition: border-color 140ms ease, background 140ms ease, transform 140ms ease, box-shadow 140ms ease;
23513
+ }
23514
+
23515
+ .vc-profile-summary-card:hover,
23516
+ .vc-profile-summary-card:focus-visible,
23517
+ .vc-profile-template-card:hover,
23518
+ .vc-profile-template-card:focus-visible {
23519
+ border-color: color-mix(in srgb, var(--accent) 52%, var(--border-soft));
23520
+ background: color-mix(in srgb, var(--accent) 4%, var(--surface));
23521
+ box-shadow: 0 8px 22px color-mix(in srgb, var(--accent) 10%, transparent);
23522
+ outline: none;
23523
+ transform: translateY(-1px);
23524
+ }
23525
+
23526
+ .vc-profile-summary-card {
23527
+ display: flex;
23528
+ flex-direction: column;
23529
+ gap: 10px;
23530
+ }
23531
+
23532
+ .vc-profile-summary-top {
23533
+ display: grid;
23534
+ grid-template-columns: 34px minmax(0, 1fr) auto;
23535
+ align-items: center;
23536
+ gap: 9px;
23537
+ }
23538
+
23539
+ .vc-profile-summary-icon {
23540
+ display: inline-flex;
23541
+ align-items: center;
23542
+ justify-content: center;
23543
+ width: 34px;
23544
+ height: 34px;
23545
+ border-radius: 10px;
23546
+ background: color-mix(in srgb, var(--accent) 13%, var(--surface));
23547
+ color: var(--accent);
23548
+ font-size: 14px;
23549
+ font-weight: 800;
23550
+ }
23551
+
23552
+ .vc-profile-summary-top > div {
23553
+ display: grid;
23554
+ gap: 2px;
23555
+ min-width: 0;
23556
+ }
23557
+
23558
+ .vc-profile-summary-top strong,
23559
+ .vc-profile-summary-top code {
23560
+ overflow: hidden;
23561
+ text-overflow: ellipsis;
23562
+ white-space: nowrap;
23563
+ }
23564
+
23565
+ .vc-profile-summary-top strong { font-size: 12.5px; }
23566
+ .vc-profile-summary-top code { color: var(--faint); font-size: 10.5px; }
23567
+ .vc-profile-summary-top > em {
23568
+ padding: 2px 7px;
23569
+ border-radius: var(--radius-full);
23570
+ background: color-mix(in srgb, var(--warning) 12%, transparent);
23571
+ color: var(--warning);
23572
+ font-size: 10px;
23573
+ font-style: normal;
23574
+ font-weight: 700;
23575
+ }
23576
+
23577
+ .vc-profile-summary-card > p {
23578
+ display: -webkit-box;
23579
+ flex: 1;
23580
+ min-height: 34px;
23581
+ margin: 0;
23582
+ overflow: hidden;
23583
+ color: var(--muted);
23584
+ font-size: 11px;
23585
+ line-height: 1.55;
23586
+ -webkit-box-orient: vertical;
23587
+ -webkit-line-clamp: 2;
23588
+ }
23589
+
23590
+ .vc-profile-summary-meta {
23591
+ display: flex;
23592
+ flex-wrap: wrap;
23593
+ gap: 6px;
23594
+ }
23595
+
23596
+ .vc-profile-summary-meta span,
23597
+ .vc-profile-template-events span {
23598
+ padding: 3px 7px;
23599
+ border-radius: var(--radius-full);
23600
+ background: var(--surface-muted);
23601
+ color: var(--muted);
23602
+ font-size: 10px;
23603
+ }
23604
+
23605
+ .vc-profile-default-toggle {
23606
+ display: inline-flex;
23607
+ align-items: center;
23608
+ gap: 6px;
23609
+ width: fit-content;
23610
+ color: var(--muted);
23611
+ font-size: 11px;
23612
+ cursor: pointer;
23613
+ }
23614
+
23615
+ .vc-profile-template-card {
23616
+ display: grid;
23617
+ grid-template-columns: 28px minmax(0, 1fr);
23618
+ grid-template-rows: auto 1fr auto;
23619
+ align-items: start;
23620
+ gap: 6px 9px;
23621
+ text-align: left;
23622
+ }
23623
+
23624
+ .vc-profile-template-card > span {
23625
+ display: inline-flex;
23626
+ align-items: center;
23627
+ justify-content: center;
23628
+ width: 28px;
23629
+ height: 28px;
23630
+ grid-row: 1 / span 2;
23631
+ border-radius: 9px;
23632
+ background: color-mix(in srgb, var(--accent) 12%, var(--surface));
23633
+ color: var(--accent);
23634
+ }
23635
+
23636
+ .vc-profile-template-card > strong { margin-top: 5px; font-size: 12.5px; }
23637
+ .vc-profile-template-card > p {
23638
+ display: -webkit-box;
23639
+ margin: 0;
23640
+ overflow: hidden;
23641
+ color: var(--muted);
23642
+ font-size: 11px;
23643
+ line-height: 1.5;
23644
+ -webkit-box-orient: vertical;
23645
+ -webkit-line-clamp: 3;
23646
+ }
23647
+ .vc-profile-template-card > em {
23648
+ grid-column: 2;
23649
+ color: var(--accent);
23650
+ font-size: 10.5px;
23651
+ font-style: normal;
23652
+ font-weight: 700;
23653
+ }
23654
+
23655
+ .vc-profile-empty {
23656
+ margin: 0;
23657
+ padding: 22px;
23658
+ border: 1px dashed var(--border-soft);
23659
+ border-radius: var(--radius-lg);
23660
+ color: var(--muted);
23661
+ font-size: 12px;
23662
+ text-align: center;
23663
+ }
23664
+
23665
+ .vc-profile-default-mode-row {
23666
+ max-width: 560px;
23667
+ margin-top: 4px;
23668
+ }
23669
+
23670
+ .vc-profile-dialog {
23671
+ width: min(760px, calc(100vw - 28px));
23672
+ max-height: min(88vh, 900px);
23673
+ padding: 0;
23674
+ overflow: hidden;
23675
+ border: 1px solid var(--border-soft);
23676
+ border-radius: 16px;
23677
+ background: var(--surface);
23678
+ color: var(--fg);
23679
+ box-shadow: var(--modal-shadow);
23680
+ }
23681
+
23682
+ .vc-profile-dialog::backdrop {
23683
+ background: rgba(10, 14, 24, 0.5);
23684
+ backdrop-filter: blur(3px);
23685
+ }
23686
+
23687
+ .vc-profile-dialog[open] {
23688
+ display: flex;
23689
+ flex-direction: column;
23690
+ }
23691
+
23692
+ .vc-profile-dialog-head {
23693
+ display: flex;
23694
+ align-items: center;
23695
+ justify-content: space-between;
23696
+ gap: 16px;
23697
+ padding: 16px 18px;
23698
+ border-bottom: 1px solid var(--border-soft);
23699
+ }
23700
+
23701
+ .vc-profile-dialog-head > div { display: grid; gap: 3px; min-width: 0; }
23702
+ .vc-profile-dialog-head span { color: var(--accent); font-size: 10.5px; font-weight: 760; }
23703
+ .vc-profile-dialog-head h3 { margin: 0; overflow: hidden; font-size: 16px; text-overflow: ellipsis; white-space: nowrap; }
23704
+
23705
+ .vc-profile-dialog-close {
23706
+ position: relative;
23707
+ width: 30px;
23708
+ height: 30px;
23709
+ flex: none;
23710
+ padding: 0;
23711
+ border: 1px solid var(--border-soft);
23712
+ border-radius: 50%;
23713
+ background: var(--surface);
23714
+ }
23715
+ .vc-profile-dialog-close::before,
23716
+ .vc-profile-dialog-close::after {
23717
+ position: absolute;
23718
+ top: 50%; left: 50%;
23719
+ width: 12px; height: 1.5px;
23720
+ background: currentColor;
23721
+ content: '';
23722
+ }
23723
+ .vc-profile-dialog-close::before { transform: translate(-50%, -50%) rotate(45deg); }
23724
+ .vc-profile-dialog-close::after { transform: translate(-50%, -50%) rotate(-45deg); }
23725
+
23726
+ .vc-profile-dialog-body {
23727
+ display: grid;
23728
+ gap: 16px;
23729
+ min-height: 0;
23730
+ padding: 18px;
23731
+ overflow-y: auto;
23732
+ }
23733
+
23734
+ .vc-profile-dialog .vc-profile-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
23735
+ .vc-profile-dialog .vc-profile-instructions textarea { min-height: 150px; background: var(--surface-muted); }
23736
+
23737
+ .vc-profile-dialog-actions {
23738
+ display: flex;
23739
+ align-items: center;
23740
+ justify-content: flex-end;
23741
+ gap: 9px;
23742
+ padding-top: 4px;
23743
+ }
23744
+
23745
+ .vc-profile-dialog-actions .vc-profile-remove { margin-right: auto; }
23746
+ .vc-profile-dialog-done,
23747
+ .vc-profile-dialog-secondary,
23748
+ .vc-profile-dialog .vc-profile-template-use {
23749
+ min-height: 34px;
23750
+ padding: 0 14px;
23751
+ border-radius: var(--radius-full);
23752
+ font-size: 11.5px;
23753
+ font-weight: 700;
23754
+ }
23755
+ .vc-profile-dialog-done,
23756
+ .vc-profile-dialog .vc-profile-template-use { border-color: var(--accent); background: var(--accent); color: white; }
23757
+ .vc-profile-dialog-secondary { border: 1px solid var(--border-soft); background: var(--surface); color: var(--fg); }
23758
+
23759
+ .vc-profile-template-description { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.65; }
23760
+ .vc-profile-template-facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
23761
+ .vc-profile-template-facts > div { display: grid; gap: 4px; padding: 10px; border-radius: 10px; background: var(--surface-muted); }
23762
+ .vc-profile-template-facts span { color: var(--faint); font-size: 10px; }
23763
+ .vc-profile-template-facts strong { font-size: 11px; }
23764
+ .vc-profile-template-prompt { display: grid; gap: 7px; }
23765
+ .vc-profile-template-prompt > strong,
23766
+ .vc-profile-template-events > strong { font-size: 12px; }
23767
+ .vc-profile-template-prompt p { margin: 0; padding: 12px; border: 1px solid var(--border-soft); border-radius: 10px; background: var(--surface-muted); color: var(--muted); font-size: 11.5px; line-height: 1.65; white-space: pre-wrap; }
23768
+ .vc-profile-template-events { display: grid; gap: 8px; }
23769
+ .vc-profile-template-events > div { display: flex; flex-wrap: wrap; gap: 6px; }
23770
+
23771
+ @media (max-width: 680px) {
23772
+ .vc-profile-dialog .vc-profile-grid,
23773
+ .vc-profile-template-facts { grid-template-columns: 1fr; }
23774
+ .vc-profile-list-heading,
23775
+ .vc-profile-template-heading { flex-direction: column; }
23776
+ }
23777
+
23210
23778
  /* Installed Skills library: search stays lightweight; selection affordances
23211
23779
  appear only after the explicit Select action. Mutations update cards in place. */
23212
23780
  .skills-installed-header-actions {