cli-jaw 2.0.1 → 2.0.2

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 (607) hide show
  1. package/README.ko.md +3 -2
  2. package/README.md +41 -12
  3. package/dist/bin/_http-client.js +34 -0
  4. package/dist/bin/_http-client.js.map +1 -0
  5. package/dist/bin/cli-jaw.js +10 -5
  6. package/dist/bin/cli-jaw.js.map +1 -1
  7. package/dist/bin/commands/browser-web-ai.js +155 -38
  8. package/dist/bin/commands/browser-web-ai.js.map +1 -1
  9. package/dist/bin/commands/browser.js +265 -37
  10. package/dist/bin/commands/browser.js.map +1 -1
  11. package/dist/bin/commands/chat.js +18 -14
  12. package/dist/bin/commands/chat.js.map +1 -1
  13. package/dist/bin/commands/clone.js +3 -2
  14. package/dist/bin/commands/clone.js.map +1 -1
  15. package/dist/bin/commands/dashboard.js +22 -18
  16. package/dist/bin/commands/dashboard.js.map +1 -1
  17. package/dist/bin/commands/dispatch.js +9 -11
  18. package/dist/bin/commands/dispatch.js.map +1 -1
  19. package/dist/bin/commands/doctor.js +26 -14
  20. package/dist/bin/commands/doctor.js.map +1 -1
  21. package/dist/bin/commands/employee.js +12 -7
  22. package/dist/bin/commands/employee.js.map +1 -1
  23. package/dist/bin/commands/init.js +9 -9
  24. package/dist/bin/commands/init.js.map +1 -1
  25. package/dist/bin/commands/launchd.js +17 -7
  26. package/dist/bin/commands/launchd.js.map +1 -1
  27. package/dist/bin/commands/mcp.js +7 -4
  28. package/dist/bin/commands/mcp.js.map +1 -1
  29. package/dist/bin/commands/memory.js +7 -5
  30. package/dist/bin/commands/memory.js.map +1 -1
  31. package/dist/bin/commands/orchestrate.js +6 -3
  32. package/dist/bin/commands/orchestrate.js.map +1 -1
  33. package/dist/bin/commands/reset.js +4 -3
  34. package/dist/bin/commands/reset.js.map +1 -1
  35. package/dist/bin/commands/serve.js +3 -2
  36. package/dist/bin/commands/serve.js.map +1 -1
  37. package/dist/bin/commands/service.js +2 -2
  38. package/dist/bin/commands/service.js.map +1 -1
  39. package/dist/bin/commands/status.js +10 -9
  40. package/dist/bin/commands/status.js.map +1 -1
  41. package/dist/bin/commands/tui/api.js +26 -18
  42. package/dist/bin/commands/tui/api.js.map +1 -1
  43. package/dist/bin/commands/tui/overlays.js +3 -1
  44. package/dist/bin/commands/tui/overlays.js.map +1 -1
  45. package/dist/bin/commands/tui/simple-mode.js +1 -1
  46. package/dist/bin/commands/tui/simple-mode.js.map +1 -1
  47. package/dist/bin/commands/tui/types.js.map +1 -1
  48. package/dist/bin/postinstall.js +153 -65
  49. package/dist/bin/postinstall.js.map +1 -1
  50. package/dist/bin/star-prompt.js +4 -3
  51. package/dist/bin/star-prompt.js.map +1 -1
  52. package/dist/lib/mcp/format-converters.js +15 -10
  53. package/dist/lib/mcp/format-converters.js.map +1 -1
  54. package/dist/lib/mcp/mcp-install.js +2 -2
  55. package/dist/lib/mcp/mcp-install.js.map +1 -1
  56. package/dist/lib/mcp/skills-distribution.js +2 -2
  57. package/dist/lib/mcp/skills-distribution.js.map +1 -1
  58. package/dist/lib/mcp/skills-reset.js +5 -4
  59. package/dist/lib/mcp/skills-reset.js.map +1 -1
  60. package/dist/lib/mcp/skills-symlinks.js +9 -9
  61. package/dist/lib/mcp/skills-symlinks.js.map +1 -1
  62. package/dist/lib/mcp/skills-utils.js +5 -4
  63. package/dist/lib/mcp/skills-utils.js.map +1 -1
  64. package/dist/lib/mcp/unified-config.js +3 -2
  65. package/dist/lib/mcp/unified-config.js.map +1 -1
  66. package/dist/lib/mime-detect.js +65 -0
  67. package/dist/lib/mime-detect.js.map +1 -0
  68. package/dist/lib/quota-copilot.js +12 -10
  69. package/dist/lib/quota-copilot.js.map +1 -1
  70. package/dist/lib/stt.js +3 -3
  71. package/dist/lib/stt.js.map +1 -1
  72. package/dist/lib/upload.js +14 -5
  73. package/dist/lib/upload.js.map +1 -1
  74. package/dist/scripts/i18n-registry.js +4 -4
  75. package/dist/scripts/i18n-registry.js.map +1 -1
  76. package/dist/server.js +61 -57
  77. package/dist/server.js.map +1 -1
  78. package/dist/src/agent/alert-escalation.js +61 -0
  79. package/dist/src/agent/alert-escalation.js.map +1 -0
  80. package/dist/src/agent/args.js +71 -2
  81. package/dist/src/agent/args.js.map +1 -1
  82. package/dist/src/agent/error-classifier.js +9 -4
  83. package/dist/src/agent/error-classifier.js.map +1 -1
  84. package/dist/src/agent/events.js +130 -101
  85. package/dist/src/agent/events.js.map +1 -1
  86. package/dist/src/agent/lifecycle-handler.js +44 -19
  87. package/dist/src/agent/lifecycle-handler.js.map +1 -1
  88. package/dist/src/agent/live-run-state.js +7 -3
  89. package/dist/src/agent/live-run-state.js.map +1 -1
  90. package/dist/src/agent/memory-flush-controller.js +6 -4
  91. package/dist/src/agent/memory-flush-controller.js.map +1 -1
  92. package/dist/src/agent/opencode-diagnostics.js +7 -6
  93. package/dist/src/agent/opencode-diagnostics.js.map +1 -1
  94. package/dist/src/agent/session-persistence.js +1 -1
  95. package/dist/src/agent/session-persistence.js.map +1 -1
  96. package/dist/src/agent/spawn-env.js +33 -16
  97. package/dist/src/agent/spawn-env.js.map +1 -1
  98. package/dist/src/agent/spawn.js +176 -110
  99. package/dist/src/agent/spawn.js.map +1 -1
  100. package/dist/src/agent/watchdog.js +56 -0
  101. package/dist/src/agent/watchdog.js.map +1 -0
  102. package/dist/src/browser/actions.js +179 -70
  103. package/dist/src/browser/actions.js.map +1 -1
  104. package/dist/src/browser/connection.js +296 -19
  105. package/dist/src/browser/connection.js.map +1 -1
  106. package/dist/src/browser/index.js +4 -1
  107. package/dist/src/browser/index.js.map +1 -1
  108. package/dist/src/browser/launch-policy.js +1 -1
  109. package/dist/src/browser/launch-policy.js.map +1 -1
  110. package/dist/src/browser/primitives.js +11 -7
  111. package/dist/src/browser/primitives.js.map +1 -1
  112. package/dist/src/browser/runtime-diagnostics.js +45 -0
  113. package/dist/src/browser/runtime-diagnostics.js.map +1 -0
  114. package/dist/src/browser/runtime-orphans.js +127 -0
  115. package/dist/src/browser/runtime-orphans.js.map +1 -0
  116. package/dist/src/browser/runtime-owner-store.js +51 -0
  117. package/dist/src/browser/runtime-owner-store.js.map +1 -0
  118. package/dist/src/browser/runtime-owner.js +2 -2
  119. package/dist/src/browser/runtime-owner.js.map +1 -1
  120. package/dist/src/browser/tab-lifecycle.js +157 -0
  121. package/dist/src/browser/tab-lifecycle.js.map +1 -0
  122. package/dist/src/browser/vision.js +35 -11
  123. package/dist/src/browser/vision.js.map +1 -1
  124. package/dist/src/browser/web-ai/action-breadth.js +56 -0
  125. package/dist/src/browser/web-ai/action-breadth.js.map +1 -0
  126. package/dist/src/browser/web-ai/action-cache.js +9 -8
  127. package/dist/src/browser/web-ai/action-cache.js.map +1 -1
  128. package/dist/src/browser/web-ai/action-intent.js +64 -0
  129. package/dist/src/browser/web-ai/action-intent.js.map +1 -0
  130. package/dist/src/browser/web-ai/action-memory.js +82 -0
  131. package/dist/src/browser/web-ai/action-memory.js.map +1 -0
  132. package/dist/src/browser/web-ai/action-trace.js +11 -6
  133. package/dist/src/browser/web-ai/action-trace.js.map +1 -1
  134. package/dist/src/browser/web-ai/annotated-screenshot.js +2 -1
  135. package/dist/src/browser/web-ai/annotated-screenshot.js.map +1 -1
  136. package/dist/src/browser/web-ai/answer-artifact.js +97 -0
  137. package/dist/src/browser/web-ai/answer-artifact.js.map +1 -0
  138. package/dist/src/browser/web-ai/ax-snapshot.js +3 -2
  139. package/dist/src/browser/web-ai/ax-snapshot.js.map +1 -1
  140. package/dist/src/browser/web-ai/browser-primitives.js +10 -7
  141. package/dist/src/browser/web-ai/browser-primitives.js.map +1 -1
  142. package/dist/src/browser/web-ai/capability-registry.js +1 -1
  143. package/dist/src/browser/web-ai/capability-registry.js.map +1 -1
  144. package/dist/src/browser/web-ai/chatgpt-composer.js +12 -12
  145. package/dist/src/browser/web-ai/chatgpt-composer.js.map +1 -1
  146. package/dist/src/browser/web-ai/chatgpt-model.js +469 -50
  147. package/dist/src/browser/web-ai/chatgpt-model.js.map +1 -1
  148. package/dist/src/browser/web-ai/chatgpt-response.js +82 -10
  149. package/dist/src/browser/web-ai/chatgpt-response.js.map +1 -1
  150. package/dist/src/browser/web-ai/chatgpt.js +325 -49
  151. package/dist/src/browser/web-ai/chatgpt.js.map +1 -1
  152. package/dist/src/browser/web-ai/churn-log.js +1 -1
  153. package/dist/src/browser/web-ai/churn-log.js.map +1 -1
  154. package/dist/src/browser/web-ai/cli-sessions.js +42 -26
  155. package/dist/src/browser/web-ai/cli-sessions.js.map +1 -1
  156. package/dist/src/browser/web-ai/context-pack/builder.js +1 -1
  157. package/dist/src/browser/web-ai/context-pack/builder.js.map +1 -1
  158. package/dist/src/browser/web-ai/context-pack/file-selector.js +2 -2
  159. package/dist/src/browser/web-ai/context-pack/file-selector.js.map +1 -1
  160. package/dist/src/browser/web-ai/context-pack/report.js +1 -1
  161. package/dist/src/browser/web-ai/context-pack/report.js.map +1 -1
  162. package/dist/src/browser/web-ai/copy-markdown.js +25 -5
  163. package/dist/src/browser/web-ai/copy-markdown.js.map +1 -1
  164. package/dist/src/browser/web-ai/diagnostics.js +17 -14
  165. package/dist/src/browser/web-ai/diagnostics.js.map +1 -1
  166. package/dist/src/browser/web-ai/doctor.js +10 -6
  167. package/dist/src/browser/web-ai/doctor.js.map +1 -1
  168. package/dist/src/browser/web-ai/dom-hash.js.map +1 -1
  169. package/dist/src/browser/web-ai/errors.js +5 -22
  170. package/dist/src/browser/web-ai/errors.js.map +1 -1
  171. package/dist/src/browser/web-ai/gemini-live.js +7 -6
  172. package/dist/src/browser/web-ai/gemini-live.js.map +1 -1
  173. package/dist/src/browser/web-ai/grok-live.js +9 -5
  174. package/dist/src/browser/web-ai/grok-live.js.map +1 -1
  175. package/dist/src/browser/web-ai/index.js +5 -0
  176. package/dist/src/browser/web-ai/index.js.map +1 -1
  177. package/dist/src/browser/web-ai/observation-bundle.js +90 -0
  178. package/dist/src/browser/web-ai/observation-bundle.js.map +1 -0
  179. package/dist/src/browser/web-ai/observe-actions.js +186 -0
  180. package/dist/src/browser/web-ai/observe-actions.js.map +1 -0
  181. package/dist/src/browser/web-ai/observe-targets.js +6 -1
  182. package/dist/src/browser/web-ai/observe-targets.js.map +1 -1
  183. package/dist/src/browser/web-ai/planner-contract.js +18 -0
  184. package/dist/src/browser/web-ai/planner-contract.js.map +1 -0
  185. package/dist/src/browser/web-ai/post-action-assert.js +8 -7
  186. package/dist/src/browser/web-ai/post-action-assert.js.map +1 -1
  187. package/dist/src/browser/web-ai/product-surfaces.js +2 -1
  188. package/dist/src/browser/web-ai/product-surfaces.js.map +1 -1
  189. package/dist/src/browser/web-ai/provider-adapter.js.map +1 -1
  190. package/dist/src/browser/web-ai/question.js +14 -7
  191. package/dist/src/browser/web-ai/question.js.map +1 -1
  192. package/dist/src/browser/web-ai/ref-registry.js.map +1 -1
  193. package/dist/src/browser/web-ai/self-heal.js +20 -14
  194. package/dist/src/browser/web-ai/self-heal.js.map +1 -1
  195. package/dist/src/browser/web-ai/session-store.js +61 -1
  196. package/dist/src/browser/web-ai/session-store.js.map +1 -1
  197. package/dist/src/browser/web-ai/session.js +43 -2
  198. package/dist/src/browser/web-ai/session.js.map +1 -1
  199. package/dist/src/browser/web-ai/source-audit.js +116 -0
  200. package/dist/src/browser/web-ai/source-audit.js.map +1 -0
  201. package/dist/src/browser/web-ai/tab-finalizer.js +18 -0
  202. package/dist/src/browser/web-ai/tab-finalizer.js.map +1 -0
  203. package/dist/src/browser/web-ai/tab-lease-store.js +390 -0
  204. package/dist/src/browser/web-ai/tab-lease-store.js.map +1 -0
  205. package/dist/src/browser/web-ai/tab-pool.js +44 -0
  206. package/dist/src/browser/web-ai/tab-pool.js.map +1 -0
  207. package/dist/src/browser/web-ai/target-resolver.js +31 -0
  208. package/dist/src/browser/web-ai/target-resolver.js.map +1 -0
  209. package/dist/src/browser/web-ai/trace-persistence.js +4 -2
  210. package/dist/src/browser/web-ai/trace-persistence.js.map +1 -1
  211. package/dist/src/browser/web-ai/vendor-editor-contract.js.map +1 -1
  212. package/dist/src/browser/web-ai/watcher.js +8 -7
  213. package/dist/src/browser/web-ai/watcher.js.map +1 -1
  214. package/dist/src/cli/acp-client.js +40 -26
  215. package/dist/src/cli/acp-client.js.map +1 -1
  216. package/dist/src/cli/command-context.js +3 -3
  217. package/dist/src/cli/command-context.js.map +1 -1
  218. package/dist/src/cli/commands.js +25 -16
  219. package/dist/src/cli/commands.js.map +1 -1
  220. package/dist/src/cli/compact.js.map +1 -1
  221. package/dist/src/cli/handlers-completions.js +6 -4
  222. package/dist/src/cli/handlers-completions.js.map +1 -1
  223. package/dist/src/cli/handlers-runtime.js +45 -38
  224. package/dist/src/cli/handlers-runtime.js.map +1 -1
  225. package/dist/src/cli/handlers.js +44 -36
  226. package/dist/src/cli/handlers.js.map +1 -1
  227. package/dist/src/cli/readiness.js +3 -1
  228. package/dist/src/cli/readiness.js.map +1 -1
  229. package/dist/src/cli/registry.js +1 -1
  230. package/dist/src/cli/registry.js.map +1 -1
  231. package/dist/src/cli/tui/overlay.js +4 -1
  232. package/dist/src/cli/tui/overlay.js.map +1 -1
  233. package/dist/src/cli/types.js +4 -0
  234. package/dist/src/cli/types.js.map +1 -0
  235. package/dist/src/command-contract/catalog.js +1 -1
  236. package/dist/src/command-contract/catalog.js.map +1 -1
  237. package/dist/src/command-contract/help-renderer.js +1 -1
  238. package/dist/src/command-contract/help-renderer.js.map +1 -1
  239. package/dist/src/core/browser-open-default.js +13 -0
  240. package/dist/src/core/browser-open-default.js.map +1 -0
  241. package/dist/src/core/browser-open.js +41 -0
  242. package/dist/src/core/browser-open.js.map +1 -0
  243. package/dist/src/core/bus.js +13 -2
  244. package/dist/src/core/bus.js.map +1 -1
  245. package/dist/src/core/compact.js +5 -4
  246. package/dist/src/core/compact.js.map +1 -1
  247. package/dist/src/core/config.js +51 -52
  248. package/dist/src/core/config.js.map +1 -1
  249. package/dist/src/core/db.js +48 -6
  250. package/dist/src/core/db.js.map +1 -1
  251. package/dist/src/core/employees.js +9 -8
  252. package/dist/src/core/employees.js.map +1 -1
  253. package/dist/src/core/instance.js +7 -6
  254. package/dist/src/core/instance.js.map +1 -1
  255. package/dist/src/core/logger.js +1 -1
  256. package/dist/src/core/logger.js.map +1 -1
  257. package/dist/src/core/main-session.js +7 -7
  258. package/dist/src/core/main-session.js.map +1 -1
  259. package/dist/src/core/path-expand.js +10 -0
  260. package/dist/src/core/path-expand.js.map +1 -0
  261. package/dist/src/core/runtime-path.js +1 -1
  262. package/dist/src/core/runtime-path.js.map +1 -1
  263. package/dist/src/core/runtime-settings.js +13 -13
  264. package/dist/src/core/runtime-settings.js.map +1 -1
  265. package/dist/src/core/settings-merge.js +14 -14
  266. package/dist/src/core/settings-merge.js.map +1 -1
  267. package/dist/src/core/strip-undefined.js +13 -0
  268. package/dist/src/core/strip-undefined.js.map +1 -0
  269. package/dist/src/core/tcc.js +1 -1
  270. package/dist/src/core/tcc.js.map +1 -1
  271. package/dist/src/discord/bot.js +19 -18
  272. package/dist/src/discord/bot.js.map +1 -1
  273. package/dist/src/discord/channel-types.js +14 -0
  274. package/dist/src/discord/channel-types.js.map +1 -0
  275. package/dist/src/discord/commands.js +7 -6
  276. package/dist/src/discord/commands.js.map +1 -1
  277. package/dist/src/discord/discord-file.js.map +1 -1
  278. package/dist/src/discord/forwarder.js +3 -3
  279. package/dist/src/discord/forwarder.js.map +1 -1
  280. package/dist/src/http/error-middleware.js +3 -3
  281. package/dist/src/http/error-middleware.js.map +1 -1
  282. package/dist/src/http/response.js +2 -2
  283. package/dist/src/http/response.js.map +1 -1
  284. package/dist/src/ide/diff.js +7 -7
  285. package/dist/src/ide/diff.js.map +1 -1
  286. package/dist/src/manager/board/routes.js +28 -27
  287. package/dist/src/manager/board/routes.js.map +1 -1
  288. package/dist/src/manager/dashboard-home.js +3 -5
  289. package/dist/src/manager/dashboard-home.js.map +1 -1
  290. package/dist/src/manager/dashboard-service.js +2 -2
  291. package/dist/src/manager/dashboard-service.js.map +1 -1
  292. package/dist/src/manager/health-history.js +10 -9
  293. package/dist/src/manager/health-history.js.map +1 -1
  294. package/dist/src/manager/launchd-service.js +2 -2
  295. package/dist/src/manager/launchd-service.js.map +1 -1
  296. package/dist/src/manager/lifecycle-helpers.js +7 -6
  297. package/dist/src/manager/lifecycle-helpers.js.map +1 -1
  298. package/dist/src/manager/lifecycle.js +7 -6
  299. package/dist/src/manager/lifecycle.js.map +1 -1
  300. package/dist/src/manager/logs.js +18 -18
  301. package/dist/src/manager/logs.js.map +1 -1
  302. package/dist/src/manager/metadata.js +10 -2
  303. package/dist/src/manager/metadata.js.map +1 -1
  304. package/dist/src/manager/notes/assets.js +216 -0
  305. package/dist/src/manager/notes/assets.js.map +1 -0
  306. package/dist/src/manager/notes/capabilities.js +56 -0
  307. package/dist/src/manager/notes/capabilities.js.map +1 -0
  308. package/dist/src/manager/notes/constants.js +11 -0
  309. package/dist/src/manager/notes/constants.js.map +1 -0
  310. package/dist/src/manager/notes/frontmatter.js +120 -0
  311. package/dist/src/manager/notes/frontmatter.js.map +1 -0
  312. package/dist/src/manager/notes/link-resolver.js +96 -0
  313. package/dist/src/manager/notes/link-resolver.js.map +1 -0
  314. package/dist/src/manager/notes/path-guards.js +4 -0
  315. package/dist/src/manager/notes/path-guards.js.map +1 -1
  316. package/dist/src/manager/notes/remote-assets.js +128 -0
  317. package/dist/src/manager/notes/remote-assets.js.map +1 -0
  318. package/dist/src/manager/notes/routes.js +63 -13
  319. package/dist/src/manager/notes/routes.js.map +1 -1
  320. package/dist/src/manager/notes/store.js +3 -2
  321. package/dist/src/manager/notes/store.js.map +1 -1
  322. package/dist/src/manager/notes/system-trash.js +3 -3
  323. package/dist/src/manager/notes/system-trash.js.map +1 -1
  324. package/dist/src/manager/notes/vault-index.js +220 -0
  325. package/dist/src/manager/notes/vault-index.js.map +1 -0
  326. package/dist/src/manager/notes/watcher.js +27 -0
  327. package/dist/src/manager/notes/watcher.js.map +1 -0
  328. package/dist/src/manager/notes/wiki-links.js +109 -0
  329. package/dist/src/manager/notes/wiki-links.js.map +1 -0
  330. package/dist/src/manager/process-verify.js +29 -0
  331. package/dist/src/manager/process-verify.js.map +1 -1
  332. package/dist/src/manager/profiles.js +3 -2
  333. package/dist/src/manager/profiles.js.map +1 -1
  334. package/dist/src/manager/registry.js +60 -58
  335. package/dist/src/manager/registry.js.map +1 -1
  336. package/dist/src/manager/routes/electron-metrics.js +22 -22
  337. package/dist/src/manager/routes/electron-metrics.js.map +1 -1
  338. package/dist/src/manager/scan.js +2 -2
  339. package/dist/src/manager/scan.js.map +1 -1
  340. package/dist/src/manager/schedule/routes.js +24 -23
  341. package/dist/src/manager/schedule/routes.js.map +1 -1
  342. package/dist/src/manager/server.js +28 -28
  343. package/dist/src/manager/server.js.map +1 -1
  344. package/dist/src/manager/systemd-service.js +1 -1
  345. package/dist/src/manager/systemd-service.js.map +1 -1
  346. package/dist/src/memory/bootstrap.js +5 -4
  347. package/dist/src/memory/bootstrap.js.map +1 -1
  348. package/dist/src/memory/heartbeat-schedule.js +10 -10
  349. package/dist/src/memory/heartbeat-schedule.js.map +1 -1
  350. package/dist/src/memory/heartbeat.js +23 -22
  351. package/dist/src/memory/heartbeat.js.map +1 -1
  352. package/dist/src/memory/indexing.js.map +1 -1
  353. package/dist/src/memory/keyword-expand.js +1 -1
  354. package/dist/src/memory/keyword-expand.js.map +1 -1
  355. package/dist/src/memory/memory.js +2 -2
  356. package/dist/src/memory/memory.js.map +1 -1
  357. package/dist/src/memory/runtime.js +6 -5
  358. package/dist/src/memory/runtime.js.map +1 -1
  359. package/dist/src/memory/shared.js +2 -1
  360. package/dist/src/memory/shared.js.map +1 -1
  361. package/dist/src/memory/worklog.js +1 -1
  362. package/dist/src/memory/worklog.js.map +1 -1
  363. package/dist/src/messaging/runtime.js +13 -10
  364. package/dist/src/messaging/runtime.js.map +1 -1
  365. package/dist/src/messaging/send.js +16 -15
  366. package/dist/src/messaging/send.js.map +1 -1
  367. package/dist/src/orchestrator/collect.js +6 -6
  368. package/dist/src/orchestrator/collect.js.map +1 -1
  369. package/dist/src/orchestrator/distribute.js +112 -77
  370. package/dist/src/orchestrator/distribute.js.map +1 -1
  371. package/dist/src/orchestrator/gateway.js +6 -5
  372. package/dist/src/orchestrator/gateway.js.map +1 -1
  373. package/dist/src/orchestrator/pipeline.js +42 -42
  374. package/dist/src/orchestrator/pipeline.js.map +1 -1
  375. package/dist/src/orchestrator/state-machine.js +3 -3
  376. package/dist/src/orchestrator/state-machine.js.map +1 -1
  377. package/dist/src/orchestrator/worker-registry.js +4 -3
  378. package/dist/src/orchestrator/worker-registry.js.map +1 -1
  379. package/dist/src/prompt/builder.js +24 -19
  380. package/dist/src/prompt/builder.js.map +1 -1
  381. package/dist/src/prompt/templates/a1-system.md +15 -10
  382. package/dist/src/prompt/templates/control-system.md +9 -7
  383. package/dist/src/prompt/templates/employee.md +5 -4
  384. package/dist/src/prompt/templates/vision-click.md +1 -1
  385. package/dist/src/routes/_http-error.js +15 -0
  386. package/dist/src/routes/_http-error.js.map +1 -0
  387. package/dist/src/routes/avatar.js +6 -5
  388. package/dist/src/routes/avatar.js.map +1 -1
  389. package/dist/src/routes/browser.js +132 -45
  390. package/dist/src/routes/browser.js.map +1 -1
  391. package/dist/src/routes/employees.js +28 -21
  392. package/dist/src/routes/employees.js.map +1 -1
  393. package/dist/src/routes/heartbeat.js +12 -9
  394. package/dist/src/routes/heartbeat.js.map +1 -1
  395. package/dist/src/routes/i18n.js +13 -7
  396. package/dist/src/routes/i18n.js.map +1 -1
  397. package/dist/src/routes/jaw-memory.js +15 -11
  398. package/dist/src/routes/jaw-memory.js.map +1 -1
  399. package/dist/src/routes/memory.js +25 -20
  400. package/dist/src/routes/memory.js.map +1 -1
  401. package/dist/src/routes/messaging.js +50 -29
  402. package/dist/src/routes/messaging.js.map +1 -1
  403. package/dist/src/routes/orchestrate.js +38 -24
  404. package/dist/src/routes/orchestrate.js.map +1 -1
  405. package/dist/src/routes/quota.js +81 -17
  406. package/dist/src/routes/quota.js.map +1 -1
  407. package/dist/src/routes/settings.js +28 -18
  408. package/dist/src/routes/settings.js.map +1 -1
  409. package/dist/src/routes/skills.js +22 -13
  410. package/dist/src/routes/skills.js.map +1 -1
  411. package/dist/src/routes/traces.js +77 -0
  412. package/dist/src/routes/traces.js.map +1 -0
  413. package/dist/src/security/path-guards.js +2 -1
  414. package/dist/src/security/path-guards.js.map +1 -1
  415. package/dist/src/shared/tool-log-sanitize.js +191 -0
  416. package/dist/src/shared/tool-log-sanitize.js.map +1 -0
  417. package/dist/src/telegram/bot.js +65 -55
  418. package/dist/src/telegram/bot.js.map +1 -1
  419. package/dist/src/telegram/forwarder.js +5 -9
  420. package/dist/src/telegram/forwarder.js.map +1 -1
  421. package/dist/src/telegram/telegram-file.js +28 -24
  422. package/dist/src/telegram/telegram-file.js.map +1 -1
  423. package/dist/src/telegram/voice.js +4 -3
  424. package/dist/src/telegram/voice.js.map +1 -1
  425. package/dist/src/trace/redact.js +50 -0
  426. package/dist/src/trace/redact.js.map +1 -0
  427. package/dist/src/trace/store.js +162 -0
  428. package/dist/src/trace/store.js.map +1 -0
  429. package/dist/src/trace/types.js +2 -0
  430. package/dist/src/trace/types.js.map +1 -0
  431. package/dist/src/types/cli-engine.js +34 -0
  432. package/dist/src/types/cli-engine.js.map +1 -0
  433. package/dist/src/types/cli-events.js +31 -0
  434. package/dist/src/types/cli-events.js.map +1 -0
  435. package/package.json +22 -2
  436. package/public/css/tool-ui.css +3 -1
  437. package/public/css/trace-drawer.css +48 -0
  438. package/public/dist/assets/{AdvancedExport-3WAYIabE.js → AdvancedExport-DJZ2VmBR.js} +1 -1
  439. package/public/dist/assets/Agent-CgpLT8IY.js +1 -0
  440. package/public/dist/assets/Browser-CrkiQoB8.js +1 -0
  441. package/public/dist/assets/{ChannelsDiscord-UzFPlWT4.js → ChannelsDiscord-CVUC22D4.js} +1 -1
  442. package/public/dist/assets/{ChannelsTelegram-DNWtPX0w.js → ChannelsTelegram-DEatIQNM.js} +1 -1
  443. package/public/dist/assets/{DashboardMeta-Y_6nVeJO.js → DashboardMeta-BKoxRc7i.js} +1 -1
  444. package/public/dist/assets/{Display-D8vGOl4s.js → Display-DnNGV9Km.js} +1 -1
  445. package/public/dist/assets/{Employees-YR_sIRK4.js → Employees-DZ2iJYKy.js} +1 -1
  446. package/public/dist/assets/{HealthBadge-CPePajyU.js → HealthBadge-Cq2c7G9s.js} +1 -1
  447. package/public/dist/assets/{Heartbeat-DTpAULQR.js → Heartbeat-BML6eTXZ.js} +1 -1
  448. package/public/dist/assets/{Mcp-DM-PgG6z.js → Mcp-BlEviQ3h.js} +1 -1
  449. package/public/dist/assets/{Memory-C_LvJnkn.js → Memory-BRyH80He.js} +1 -1
  450. package/public/dist/assets/MilkdownWysiwygEditor-Cm3uXfWf.js +52 -0
  451. package/public/dist/assets/ModelProvider-DxyR7EL9.js +1 -0
  452. package/public/dist/assets/Network-DDOOESh1.js +1 -0
  453. package/public/dist/assets/{Permissions-B1naJjjw.js → Permissions-Br0eSbKb.js} +1 -1
  454. package/public/dist/assets/{Permissions-BKffrMJD.js → Permissions-QHkzStqQ.js} +1 -1
  455. package/public/dist/assets/{Profile-DIqjSe2C.js → Profile-C79NKumk.js} +1 -1
  456. package/public/dist/assets/{Prompts-BMfbV6Y4.js → Prompts-BmiIDiXW.js} +1 -1
  457. package/public/dist/assets/{SpeechKeys-DjiQTzSL.js → SpeechKeys-B8304XJK.js} +1 -1
  458. package/public/dist/assets/app-Be58Cs3Y.js +32 -0
  459. package/public/dist/assets/{app-BzvwJJiv.css → app-CphocJzo.css} +1 -1
  460. package/public/dist/assets/{dist-DTvxN3ux.js → dist-BD0UXfgF2.js} +1 -1
  461. package/public/dist/assets/{dist-CASeq-Tl.js → dist-BNfXO3Yr.js} +1 -1
  462. package/public/dist/assets/{dist-BMPiaUzF.js → dist-BUnPYbK3.js} +1 -1
  463. package/public/dist/assets/{dist-CT_X3hVT.js → dist-BZosRD2u.js} +1 -1
  464. package/public/dist/assets/{dist-4J6YbNXv.js → dist-Bd9PlnQm.js} +1 -1
  465. package/public/dist/assets/{dist-BcZjyn5g.js → dist-BsT5UdNP.js} +1 -1
  466. package/public/dist/assets/{dist-BfBhOPR-.js → dist-CIuXW-sc.js} +1 -1
  467. package/public/dist/assets/{dist-BMiCig3A2.js → dist-CL4PTYWf.js} +1 -1
  468. package/public/dist/assets/{dist-VyP6-HLb.js → dist-Ch5VAlV9.js} +1 -1
  469. package/public/dist/assets/dist-ClqO40BE.js +1 -0
  470. package/public/dist/assets/{dist-c98Tp7bP.js → dist-Cp42cMcI.js} +1 -1
  471. package/public/dist/assets/{dist-CIlYL1qe.js → dist-CpUK8ypo.js} +1 -1
  472. package/public/dist/assets/dist-CxeLAw2Y.js +1 -0
  473. package/public/dist/assets/dist-D2SH8nxa.js +1 -0
  474. package/public/dist/assets/{dist-84fwQ7bO.js → dist-D6cUXP7K.js} +1 -1
  475. package/public/dist/assets/{dist-BOCcQAyF.js → dist-D7bCuS3f.js} +1 -1
  476. package/public/dist/assets/{dist-DMmpfLVP.js → dist-DFYRUAjN.js} +1 -1
  477. package/public/dist/assets/{dist-DdY6pTJr.js → dist-DZsFVYF4.js} +1 -1
  478. package/public/dist/assets/{dist-B0p3Eyme.js → dist-Db16ogVk.js} +1 -1
  479. package/public/dist/assets/{dist-DlnNtr6L.js → dist-DfodGES_.js} +1 -1
  480. package/public/dist/assets/{dist-DO9so2a2.js → dist-SU-YTAIg.js} +1 -1
  481. package/public/dist/assets/{dist-DUjXiMLP.js → dist-UYn7T-GH.js} +1 -1
  482. package/public/dist/assets/{dist-BW1409rz.js → dist-W51oDoeA.js} +1 -1
  483. package/public/dist/assets/{dist-BimBQZx1.js → dist-eU7TyC86.js} +1 -1
  484. package/public/dist/assets/dist-l9HH00ip.js +1 -0
  485. package/public/dist/assets/{dist-BrOPNxdH.js → dist-urPTQzXL.js} +1 -1
  486. package/public/dist/assets/{dist-AloEV3J52.js → dist-yHP6L0Ty.js} +1 -1
  487. package/public/dist/assets/{employees-Bbabvbyx.js → employees-CxdghzoD.js} +7 -7
  488. package/public/dist/assets/{error-normalize-DdvKGLt_.js → error-normalize-5n-zlEQ3.js} +1 -1
  489. package/public/dist/assets/insert-image-markdown-DIEa-zjk.js +22 -0
  490. package/public/dist/assets/{manager-DyB2ZUr9.css → manager-DEiyrWDP.css} +1 -1
  491. package/public/dist/assets/manager-UEXd1_9T.js +25 -0
  492. package/public/dist/assets/{memory-B_plvcuQ.js → memory-CsMNkYtv.js} +9 -9
  493. package/public/dist/assets/memory-DXad_DPO.js +1 -0
  494. package/public/dist/assets/{page-shell-DML_HneX.js → page-shell-D5tbivHH.js} +1 -1
  495. package/public/dist/assets/{render-DEhbfUAW.js → render-DGQX46ei.js} +2 -2
  496. package/public/dist/assets/{settings-D7F-_kYG.js → settings-BH213Yv3.js} +14 -14
  497. package/public/dist/assets/settings-DXT87G2U.js +1 -0
  498. package/public/dist/assets/settings-client-ajlwI-oK.js +1 -0
  499. package/public/dist/assets/skills-5o_1v0nz.js +1 -0
  500. package/public/dist/assets/{skills-DoGJOc0D.js → skills-CQtCtHPA.js} +6 -6
  501. package/public/dist/assets/slash-commands-D4-hrrmh.js +1 -0
  502. package/public/dist/assets/{slash-commands-khNFPOyF.js → slash-commands-Dzk1xHWS.js} +1 -1
  503. package/public/dist/assets/trace-drawer-SRKcfm2S.js +15 -0
  504. package/public/dist/assets/ui-CdRKN2S6.js +141 -0
  505. package/public/dist/assets/ui-n43jmg_f.js +1 -0
  506. package/public/dist/assets/{ws-B2aJ-nD2.js → ws-CTHQFzM1.js} +8 -8
  507. package/public/dist/index.html +2 -2
  508. package/public/dist/manager/index.html +2 -2
  509. package/public/index.html +1 -0
  510. package/public/js/constants.ts +5 -5
  511. package/public/js/diagram/iframe-renderer.ts +11 -11
  512. package/public/js/features/chat.ts +1 -1
  513. package/public/js/features/memory.ts +10 -10
  514. package/public/js/features/pending-queue.ts +2 -2
  515. package/public/js/features/process-block.ts +257 -29
  516. package/public/js/features/process-step-match.ts +18 -0
  517. package/public/js/features/settings-cli-status.ts +1 -1
  518. package/public/js/features/settings-stt.ts +37 -11
  519. package/public/js/features/settings-templates.ts +2 -2
  520. package/public/js/features/slash-commands.ts +1 -1
  521. package/public/js/features/tool-ui.ts +13 -7
  522. package/public/js/features/trace-drawer.ts +122 -0
  523. package/public/js/icons.ts +1 -1
  524. package/public/js/main.ts +28 -28
  525. package/public/js/provider-icons.ts +1 -1
  526. package/public/js/render.ts +29 -27
  527. package/public/js/sanitizer.ts +4 -0
  528. package/public/js/ui.ts +234 -68
  529. package/public/js/virtual-scroll.ts +19 -33
  530. package/public/js/ws.ts +22 -10
  531. package/public/manager/src/App.tsx +34 -6
  532. package/public/manager/src/api.ts +55 -1
  533. package/public/manager/src/components/ActivityTimeline.tsx +1 -1
  534. package/public/manager/src/components/InstanceDetailPanel.tsx +2 -2
  535. package/public/manager/src/components/InstanceGroups.tsx +5 -5
  536. package/public/manager/src/components/InstanceListContent.tsx +1 -1
  537. package/public/manager/src/dashboard-features.ts +1 -1
  538. package/public/manager/src/manager-notes.css +49 -2
  539. package/public/manager/src/notes/MarkdownEditor.tsx +7 -3
  540. package/public/manager/src/notes/NotesFileTree.tsx +45 -6
  541. package/public/manager/src/notes/NotesSidebar.tsx +24 -55
  542. package/public/manager/src/notes/NotesWorkspace.tsx +50 -3
  543. package/public/manager/src/notes/image-assets/clipboard-images.ts +100 -0
  544. package/public/manager/src/notes/image-assets/insert-image-markdown.ts +85 -0
  545. package/public/manager/src/notes/notes-api.ts +2 -0
  546. package/public/manager/src/notes/notes-types.ts +8 -1
  547. package/public/manager/src/notes/rendering/MarkdownRenderer.tsx +6 -0
  548. package/public/manager/src/notes/rendering/markdown-render-security.ts +19 -1
  549. package/public/manager/src/notes/rich-markdown/paste-policy.ts +6 -2
  550. package/public/manager/src/notes/rich-markdown/rich-markdown-extension.ts +5 -5
  551. package/public/manager/src/notes/rich-markdown/rich-widget.ts +8 -8
  552. package/public/manager/src/notes/useNotesExternalSync.ts +37 -0
  553. package/public/manager/src/notes/useNotesModel.ts +91 -0
  554. package/public/manager/src/notes/wysiwyg/MilkdownWysiwygEditor.tsx +157 -17
  555. package/public/manager/src/notes/wysiwyg/milkdown-block-keymap.ts +14 -2
  556. package/public/manager/src/notes/wysiwyg/milkdown-code-block-view.ts +20 -20
  557. package/public/manager/src/notes/wysiwyg/milkdown-heading-source-view.ts +8 -8
  558. package/public/manager/src/notes/wysiwyg/milkdown-math.ts +25 -25
  559. package/public/manager/src/settings/pages/Browser.tsx +38 -20
  560. package/public/manager/src/settings/pages/ModelProvider.tsx +11 -9
  561. package/public/manager/src/settings/pages/Network.tsx +10 -10
  562. package/public/manager/src/settings/pages/components/HealthBadge.tsx +12 -12
  563. package/public/manager/src/settings/pages/components/agent/runtime-employees-helpers.ts +12 -10
  564. package/public/manager/src/settings/pages/components/employees-helpers.ts +9 -9
  565. package/public/manager/src/settings/pages/components/heartbeat-helpers.ts +13 -13
  566. package/public/manager/src/settings/pages/components/memory-helpers.ts +4 -4
  567. package/public/manager/src/settings/pages/mcp-helpers.ts +7 -7
  568. package/public/manager/src/settings/settings-client.ts +4 -3
  569. package/public/manager/src/sync/IframeBridge.tsx +29 -0
  570. package/public/manager/src/sync/VisibilityBridge.tsx +24 -0
  571. package/public/manager/src/sync/invalidation-bus.ts +30 -0
  572. package/public/manager/src/sync/useInvalidationSubscription.ts +19 -0
  573. package/public/manager/src/types.ts +101 -0
  574. package/scripts/check-strict-baseline.mjs +255 -0
  575. package/scripts/claim-audit.mjs +159 -0
  576. package/scripts/i18n-registry.ts +4 -4
  577. package/scripts/install-officecli.sh +2 -2
  578. package/scripts/install-wsl.sh +2 -1
  579. package/scripts/release-gates.mjs +347 -0
  580. package/scripts/release-preview.sh +3 -0
  581. package/scripts/release.sh +4 -0
  582. package/scripts/smoke/opencode-external-dir-smoke.ts +14 -5
  583. package/public/dist/assets/Agent-BYdzZwD0.js +0 -1
  584. package/public/dist/assets/Browser-CkGeczuN.js +0 -1
  585. package/public/dist/assets/MilkdownWysiwygEditor-B7k9bAey.js +0 -52
  586. package/public/dist/assets/ModelProvider-CX3Qhowu.js +0 -1
  587. package/public/dist/assets/Network-DfPLFAvw.js +0 -1
  588. package/public/dist/assets/app-DLYoRkU9.js +0 -32
  589. package/public/dist/assets/dist-8zNAQAIa.js +0 -1
  590. package/public/dist/assets/dist-BgeY6nvK.js +0 -1
  591. package/public/dist/assets/dist-BzDGGxHQ.js +0 -1
  592. package/public/dist/assets/dist-D3YKbVi-.js +0 -1
  593. package/public/dist/assets/manager-CUSgFbMO.js +0 -25
  594. package/public/dist/assets/markdown-render-security-DJfJPWO-.js +0 -22
  595. package/public/dist/assets/memory-DQ6dU0qs.js +0 -1
  596. package/public/dist/assets/settings-DxLPUbpj.js +0 -1
  597. package/public/dist/assets/settings-client-CGf3uPPf.js +0 -1
  598. package/public/dist/assets/skills-yMfNYJ8m.js +0 -1
  599. package/public/dist/assets/slash-commands-CZcwr1W6.js +0 -1
  600. package/public/dist/assets/ui-04YlOMgn.js +0 -136
  601. package/public/dist/assets/ui-D6hlMjRq.js +0 -1
  602. /package/public/dist/assets/{InlineWarn-CqgWEC41.js → InlineWarn-BooBRm7o.js} +0 -0
  603. /package/public/dist/assets/{agent-meta-puNn13DV.js → agent-meta-DHddpWHQ.js} +0 -0
  604. /package/public/dist/assets/{fields-DH9JS3mb.js → fields-BtncIZYA.js} +0 -0
  605. /package/public/dist/assets/{mermaid-loader-6XC0y10y.js → mermaid-loader-BEFIOoJn.js} +0 -0
  606. /package/public/dist/assets/{path-utils-CtsDDGZg.js → path-utils-BuEEtj9w.js} +0 -0
  607. /package/public/dist/assets/{w3c-keyname-VSld09PZ.js → w3c-keyname-IiiZScED.js} +0 -0
@@ -1,20 +1,20 @@
1
- import{i as e,n as t}from"./api-tVoG39dL.js";import{n,u as r,v as i}from"./render-DEhbfUAW.js";import{r as a}from"./locale-f397XJgr.js";function o(e){return document.getElementById(e)}function s(e,t){let n=o(e);n&&(n.textContent=t==null?``:String(t))}function c(e,t){let n=o(e);n&&(n.value=t==null?``:String(t))}function l(e,t){let s=o(`memorySidebarBtn`);if(!s)return;if(e?.enabled&&e?.hasSoul===!1){s.innerHTML=`${r.brain} Memory · <span style="color:var(--accent)">${a(`updateNeeded`)}</span>`;return}if(e?.enabled&&e?.hasSoul&&!e?.soulSynthesized){s.innerHTML=`${r.brain} Memory · <span style="color:var(--accent)">${i(`memory.banner.soulOptimize`)}</span>`;return}let c=e?.indexState===`ready`?`Ready`:e?.state===`not_initialized`?`Indexing`:e?.state||`(${t})`;s.innerHTML=`${r.brain} Memory · ${n(c)}`}function u(e){let t=o(`advStatusBanner`);if(t){if(!e?.enabled){t.style.display=`none`,t.textContent=``;return}if(t.style.display=``,e.hasSoul===!1){t.innerHTML=`<span>Memory structure upgrade available.</span>
1
+ import{i as e,n as t}from"./api-tVoG39dL.js";import{d as n,n as r,y as i}from"./render-DGQX46ei.js";import{r as a}from"./locale-f397XJgr.js";function o(e){return document.getElementById(e)}function s(e,t){let n=o(e);n&&(n.textContent=t==null?``:String(t))}function c(e,t){let n=o(e);n&&(n.value=t==null?``:String(t))}function l(e,t){let s=o(`memorySidebarBtn`);if(!s)return;if(e?.enabled&&e?.hasSoul===!1){s.innerHTML=`${n.brain} Memory · <span style="color:var(--accent)">${a(`updateNeeded`)}</span>`;return}if(e?.enabled&&e?.hasSoul&&!e?.soulSynthesized){s.innerHTML=`${n.brain} Memory · <span style="color:var(--accent)">${i(`memory.banner.soulOptimize`)}</span>`;return}let c=e?.indexState===`ready`?`Ready`:e?.state===`not_initialized`?`Indexing`:e?.state||`(${t})`;s.innerHTML=`${n.brain} Memory · ${r(c)}`}function u(e){let t=o(`advStatusBanner`);if(t){if(!e?.enabled){t.style.display=`none`,t.textContent=``;return}if(t.style.display=``,e.hasSoul===!1){t.innerHTML=`<span>Memory structure upgrade available.</span>
2
2
  <button id="advUpgradeSoulBtn" class="btn-sm" style="margin-left:8px">${a(`memoryUpdateBtn`)}</button>`;return}if(e.hasSoul&&!e.soulSynthesized){t.innerHTML=`<span>Soul identity can be personalized with your active CLI.</span>
3
3
  <button id="advSynthesizeSoulBtn" class="btn-sm" style="margin-left:8px">${i(`memory.banner.soulOptimize`)}</button>`;return}if(e.state===`not_initialized`){t.textContent=`Integrated memory is preparing its index. Temporary fallback memory context is active until initialization completes.`;return}if(e.indexState===`not_indexed`){t.textContent=`Integrated memory is configured. Indexed search/read will activate after indexing becomes available.`;return}t.textContent=`Memory active. search/read=${e.routing?.searchRead||`basic`} / save=${e.routing?.save||`basic`}`}}function d(e,t=!0){let n=o(`advStatusBanner`);n&&(n.style.display=t?``:`none`,n.textContent=e)}function f(e){for(let t of[`advBootstrapBtn`,`advReindexBtn`,`advReimportBtn`,`advOpenCorruptedBtn`]){let n=o(t);n&&(n.disabled=e)}}function p(e){o(`memOn`)?.classList.toggle(`active`,e.enabled),o(`memOff`)?.classList.toggle(`active`,!e.enabled),c(`memFlushEvery`,e.flushEvery),c(`memRetention`,e.retentionDays),c(`memFlushLang`,e.flushLanguage||`en`),s(`memPath`,e.path),s(`memCounter`,e.counter),s(`memThreshold`,e.flushEvery)}function m(e){let t=o(`memTabBtnSettings`),n=o(`memTabSettings`);!t||!n||(t.style.display=``,n.style.display||(n.style.display=``))}function h(e){s(`advIndexState`,e?.indexState||e?.state||`-`),s(`advStorageRoot`,e?.storageRoot||`-`),s(`advIndexedFiles`,e?.indexedFiles||0),s(`advIndexedChunks`,e?.indexedChunks||0),s(`advLastIndexedAt`,e?.lastIndexedAt||`-`),s(`advImportStatus`,e?.importStatus||`-`),s(`advCorruptedCount`,e?.corruptedCount||0),s(`advLastExpansion`,(e?.lastExpansion||[]).join(`, `)||`-`),s(`advLastError`,e?.lastError||`-`);let t=e?.importedCounts||{};s(`advImportStatus`,`${e?.importStatus||`-`} (core:${t.core||0} md:${t.markdown||0} kv:${t.kv||0} claude:${t.claude||0})`),s(`advProfileFresh`,e?.profileFresh===!1?`⚠ stale`:`✓ fresh`),s(`advLastReflectedAt`,e?.lastReflectedAt||`never`),s(`advFlushRunning`,e?.flushRunning?`running`:`idle`),s(`advMigrationLock`,e?.migrationLocked?`⚠ locked`:`none`);let n=e?.staleWarnings||[];s(`advWarnings`,n.length?n.join(`, `):`none`),s(`advSoulStatus`,e?.hasSoul?`✓ active`:`⚠ not created`)}function g(e){let t=o(`basicMemoryFiles`);if(t){if(!e?.length){t.innerHTML=`<p style="color:var(--text-dim);font-size:12px;text-align:center">No memory files yet</p>`;return}t.innerHTML=e.map(e=>`
4
4
  <div style="display:flex;align-items:center;justify-content:space-between;padding:6px 8px;border:1px solid var(--border);border-radius:4px;margin-bottom:4px;cursor:pointer"
5
- data-mem-view="${n(e.name)}">
5
+ data-mem-view="${r(e.name)}">
6
6
  <div>
7
- <span style="font-size:12px;font-family:monospace">${n(e.name)}</span>
7
+ <span style="font-size:12px;font-family:monospace">${r(e.name)}</span>
8
8
  <span style="font-size:10px;color:var(--accent);margin-left:6px">${e.entries} entries</span>
9
9
  </div>
10
- <button data-mem-delete="${n(e.name)}" style="background:none;border:none;color:#f55;cursor:pointer;font-size:14px">${r.trash}</button>
10
+ <button data-mem-delete="${r(e.name)}" style="background:none;border:none;color:#f55;cursor:pointer;font-size:14px">${n.trash}</button>
11
11
  </div>
12
- `).join(``)}}function _(e,t){let r=o(e);if(r){if(!t?.length){r.innerHTML=`<p style="color:var(--text-dim);font-size:12px;text-align:center">No files</p>`;return}r.innerHTML=t.map(e=>`<div style="padding:6px 8px;border:1px solid var(--border);border-radius:4px;margin-bottom:4px">
13
- <span style="font-size:12px;font-family:monospace">${n(e)}</span>
12
+ `).join(``)}}function _(e,t){let n=o(e);if(n){if(!t?.length){n.innerHTML=`<p style="color:var(--text-dim);font-size:12px;text-align:center">No files</p>`;return}n.innerHTML=t.map(e=>`<div style="padding:6px 8px;border:1px solid var(--border);border-radius:4px;margin-bottom:4px">
13
+ <span style="font-size:12px;font-family:monospace">${r(e)}</span>
14
14
  </div>`).join(``)}}function v(e){_(`advancedMemoryFiles`,[...e?.sections?.profile||[],...e?.sections?.shared||[],...e?.sections?.episodes||[],...e?.sections?.semantic||[],...e?.sections?.procedures||[],...e?.sections?.sessions||[]]),_(`corruptedMemoryFiles`,e?.sections?.corrupted||[]),_(`legacyUnmappedFiles`,e?.sections?.legacyUnmapped||[])}function y(){return{importCore:o(`advImportCore`)?.checked!==!1,importMarkdown:o(`advImportMarkdown`)?.checked!==!1,importKv:o(`advImportKv`)?.checked!==!1,importClaudeSession:o(`advImportClaudeSession`)?.checked!==!1}}async function b(){let[e,n,r]=await Promise.all([t(`/api/memory-files`),t(`/api/memory/status`),t(`/api/memory/files`)]);return{basic:e,status:n,files:r}}async function x(){let{basic:e,status:t,files:n}=await b();e&&(p(e),m(t),u(t),h(t),g(e.files),v(n),l(t,e.files.length),o(`memoryModal`)?.classList.add(`open`),C(`status`))}function S(e){e&&e.target!==e.currentTarget||o(`memoryModal`)?.classList.remove(`open`)}function C(e){let t={settings:`memTabSettings`,status:`memTabAdvOps`,files:`memTabFiles`};for(let n of Object.values(t)){let r=o(n);r&&(r.style.display=n===t[e]?``:`none`)}o(`memTabBtnSettings`)?.classList.toggle(`active`,e===`settings`),o(`memTabBtnAdvOps`)?.classList.toggle(`active`,e===`status`),o(`memTabBtnFiles`)?.classList.toggle(`active`,e===`files`),o(`memTabBtnSettings`)?.setAttribute(`aria-selected`,String(e===`settings`)),o(`memTabBtnAdvOps`)?.setAttribute(`aria-selected`,String(e===`status`)),o(`memTabBtnFiles`)?.setAttribute(`aria-selected`,String(e===`files`))}async function w(t){o(`memOn`)?.classList.toggle(`active`,t),o(`memOff`)?.classList.toggle(`active`,!t),await e(`/api/memory-files/settings`,`PUT`,{enabled:t})}async function T(){let t=o(`memFlushEvery`),n=o(`memRetention`),r=o(`memFlushLang`);await e(`/api/memory-files/settings`,`PUT`,{flushEvery:+(t?.value||10),retentionDays:+(n?.value||30),flushLanguage:r?.value||`en`});let i=o(`memThreshold`);i&&t&&(i.textContent=t.value)}async function E(){f(!0),d(i(`memory.banner.bootstrapRerun`),!0);let t=await e(`/api/memory/bootstrap`,`POST`,y());f(!1),t?.message&&alert(t.message),await x(),C(`status`)}async function D(){f(!0),d(a(`memoryUpdating`),!0);let n=await e(`/api/jaw-memory/soul/activate`,`POST`,{});f(!1),n?.created?d(`✓ Soul identity created.`):d(`✓ Soul already active.`),await x(),C(`status`);let r=await t(`/api/memory/status`);l(r,0),u(r)}async function O(){f(!0),d(i(`memory.banner.soulOptimizing`),!0);let n=await e(`/api/soul/bootstrap`,`POST`,{});if(f(!1),!n?.ok){d(n?.reason===`already_synthesized`?`✓ Soul already optimized.`:n?.reason===`no_active_agent`?`No active CLI agent. Please start an agent first.`:`Soul optimization failed: ${n?.reason||`unknown`}`);return}d(i(`memory.banner.soulPromptSent`)),await x(),C(`status`);let r=await t(`/api/memory/status`);l(r,0),u(r)}async function k(){f(!0),d(i(`memory.banner.reindexing`),!0);let t=await e(`/api/memory/reindex`,`POST`,{});f(!1),t?.message&&alert(t.message),await x(),C(`status`)}function A(){let e=o(`advStorageRoot`)?.textContent||``,t=e?`${e}/corrupted`:`JAW_HOME/memory/structured/corrupted`;navigator.clipboard?.writeText&&navigator.clipboard.writeText(t).catch(()=>{}),alert(`Corrupted folder path copied/shown:\n${t}`)}async function j(t){confirm(`Delete `+t+`?`)&&(await e(`/api/memory-file?path=`+encodeURIComponent(t),`DELETE`,{}),x())}async function M(e){let i=await t(`/api/memory-file?path=`+encodeURIComponent(e));if(!i)return;let a=o(`basicMemoryFiles`);a&&(a.innerHTML=`
15
15
  <div style="margin-bottom:8px;display:flex;justify-content:space-between;align-items:center">
16
- <span style="font-size:12px;font-weight:600">${n(i.name)}</span>
17
- <button data-mem-back style="background:none;border:none;color:var(--accent);cursor:pointer;font-size:11px">${r.arrowLeft} back</button>
16
+ <span style="font-size:12px;font-weight:600">${r(i.name)}</span>
17
+ <button data-mem-back style="background:none;border:none;color:var(--accent);cursor:pointer;font-size:11px">${n.arrowLeft} back</button>
18
18
  </div>
19
- <pre style="background:var(--bg);padding:8px;border-radius:4px;font-size:11px;white-space:pre-wrap;max-height:50vh;overflow-y:auto;color:var(--text)">${n(i.content)}</pre>
19
+ <pre style="background:var(--bg);padding:8px;border-radius:4px;font-size:11px;white-space:pre-wrap;max-height:50vh;overflow-y:auto;color:var(--text)">${r(i.content)}</pre>
20
20
  `)}async function N(){try{let[e,n]=await Promise.all([t(`/api/memory-files`),t(`/api/memory/status`)]);l(n,e?.files?.length||0),u(n)}catch{}}async function P(){let t=o(`memFlushNowBtn`);t&&(t.disabled=!0),await e(`/api/jaw-memory/flush`,`POST`,{})?(t&&(t.textContent=`✅ Triggered`),setTimeout(()=>{t&&(t.textContent=`🧠 Flush Now`,t.disabled=!1)},2e3)):t&&(t.textContent=`❌ Failed`,t.disabled=!1)}export{N as a,T as c,O as d,P as f,x as i,w as l,M as m,j as n,k as o,D as p,A as r,E as s,S as t,C as u};
@@ -0,0 +1 @@
1
+ import{a as e}from"./memory-CsMNkYtv.js";export{e as refreshMemorySidebar};
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime-DE9SaGGd.js";import{n as t,t as n}from"./jsx-runtime-DOs-BiPY.js";import{t as r}from"./settings-client-CGf3uPPf.js";var i=e(t(),1),a=n();function o(e,t,n=[]){let[r,a]=(0,i.useState)({kind:`loading`}),[o,c]=(0,i.useState)(0);return(0,i.useEffect)(()=>{let n=!1;return a({kind:`loading`}),e.get(t).then(e=>{n||a({kind:`ready`,data:e})}).catch(e=>{n||a(s(e))}),()=>{n=!0}},[e,t,o,...n]),{state:r,refresh:(0,i.useCallback)(async()=>{c(e=>e+1)},[]),setData:(0,i.useCallback)(e=>{a({kind:`ready`,data:e})},[])}}function s(e){return e instanceof r?e.status===401||e.status===403?{kind:`error`,message:`Instance requires auth. Open its native UI to grant access.`}:e.status>=500||e.status===0?{kind:`offline`}:{kind:`error`,message:e.message}:{kind:`error`,message:e instanceof Error?e.message:String(e)}}function c({title:e,hint:t,children:n}){return(0,a.jsxs)(`section`,{className:`settings-section`,children:[(0,a.jsxs)(`header`,{className:`settings-section-header`,children:[(0,a.jsx)(`h2`,{children:e}),t?(0,a.jsx)(`p`,{className:`settings-section-hint`,children:t}):null]}),(0,a.jsx)(`div`,{className:`settings-section-body`,children:n})]})}function l({label:e=`Loading instance settings…`}){return(0,a.jsx)(`div`,{className:`settings-loading`,children:e})}function u({message:e}){return(0,a.jsx)(`div`,{className:`settings-error`,role:`alert`,children:e})}function d({port:e}){return(0,a.jsxs)(`div`,{className:`settings-error`,role:`alert`,children:[`Instance offline or proxy error. The dashboard could not reach`,(0,a.jsxs)(`code`,{children:[` /i/`,e,`/api/settings`]}),`.`]})}export{o as a,c as i,l as n,d as r,u as t};
1
+ import{o as e}from"./rolldown-runtime-DE9SaGGd.js";import{n as t,t as n}from"./jsx-runtime-DOs-BiPY.js";import{t as r}from"./settings-client-ajlwI-oK.js";var i=e(t(),1),a=n();function o(e,t,n=[]){let[r,a]=(0,i.useState)({kind:`loading`}),[o,c]=(0,i.useState)(0);return(0,i.useEffect)(()=>{let n=!1;return a({kind:`loading`}),e.get(t).then(e=>{n||a({kind:`ready`,data:e})}).catch(e=>{n||a(s(e))}),()=>{n=!0}},[e,t,o,...n]),{state:r,refresh:(0,i.useCallback)(async()=>{c(e=>e+1)},[]),setData:(0,i.useCallback)(e=>{a({kind:`ready`,data:e})},[])}}function s(e){return e instanceof r?e.status===401||e.status===403?{kind:`error`,message:`Instance requires auth. Open its native UI to grant access.`}:e.status>=500||e.status===0?{kind:`offline`}:{kind:`error`,message:e.message}:{kind:`error`,message:e instanceof Error?e.message:String(e)}}function c({title:e,hint:t,children:n}){return(0,a.jsxs)(`section`,{className:`settings-section`,children:[(0,a.jsxs)(`header`,{className:`settings-section-header`,children:[(0,a.jsx)(`h2`,{children:e}),t?(0,a.jsx)(`p`,{className:`settings-section-hint`,children:t}):null]}),(0,a.jsx)(`div`,{className:`settings-section-body`,children:n})]})}function l({label:e=`Loading instance settings…`}){return(0,a.jsx)(`div`,{className:`settings-loading`,children:e})}function u({message:e}){return(0,a.jsx)(`div`,{className:`settings-error`,role:`alert`,children:e})}function d({port:e}){return(0,a.jsxs)(`div`,{className:`settings-error`,role:`alert`,children:[`Instance offline or proxy error. The dashboard could not reach`,(0,a.jsxs)(`code`,{children:[` /i/`,e,`/api/settings`]}),`.`]})}export{o as a,c as i,l as n,d as r,u as t};
@@ -1,5 +1,5 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/vendor-render-Bjnw0wQ6.css"])))=>i.map(i=>d[i]);
2
- import{A as e,C as t,D as n,E as r,F as i,I as a,L as o,M as s,N as c,O as l,P as u,R as d,S as ee,T as te,b as ne,f as re,i as ie,j as f,k as ae,w as oe,x as p,y as m}from"./vendor-render-984tPmpy.js";import{i as se}from"./api-tVoG39dL.js";import{t as h}from"./preload-helper-CMqhPRCH.js";import{A as ce,B as le,C as ue,D as de,E as fe,F as pe,G as me,H as he,I as ge,J as _e,K as ve,L as ye,M as be,N as xe,O as Se,P as Ce,Q as we,R as Te,S as Ee,T as De,U as Oe,V as ke,W as Ae,X as je,Y as Me,Z as Ne,_ as Pe,a as Fe,b as Ie,c as Le,d as Re,f as ze,g as Be,h as Ve,i as He,j as Ue,k as We,l as Ge,m as Ke,n as qe,o as Je,p as Ye,q as Xe,r as Ze,s as Qe,t as $e,u as et,v as tt,w as nt,x as rt,y as it,z as at}from"./vendor-icons-D2l6ddC0.js";var ot=`http://www.w3.org/2000/svg`,st=new Set([`a`,`area`,`link`]),ct=[`fill`,`stroke`,`filter`,`mask`,`clip-path`,`marker-start`,`marker-mid`,`marker-end`,`cursor`],g=null;function lt(){let e=ie;return typeof e.sanitize==`function`&&typeof e.addHook==`function`?e:typeof window<`u`?e(window):{sanitize:e=>e,addHook:()=>void 0}}function ut(e){e.addHook(`afterSanitizeAttributes`,e=>{let t=e.tagName.toLowerCase();if(e.namespaceURI===ot||!st.has(t)){let t=e.getAttribute(`href`)||``;t&&!t.startsWith(`#`)&&e.removeAttribute(`href`)}let n=e.getAttributeNS(`http://www.w3.org/1999/xlink`,`href`)||e.getAttribute(`xlink:href`)||``;if(n&&!n.startsWith(`#`)&&(e.removeAttributeNS(`http://www.w3.org/1999/xlink`,`href`),e.removeAttribute(`xlink:href`)),t===`image`||t===`feimage`){let t=e.getAttribute(`src`)||``;t&&!t.startsWith(`#`)&&e.removeAttribute(`src`)}if(e.hasAttribute(`style`)){let t=e.style?.cssText||``;if(/url\s*\(/i.test(t)){let n=t.replace(/url\s*\(\s*(?!['"]?#)[^)]*\)/gi,`none`);e.style.cssText=n}}for(let t of ct){if(!e.hasAttribute(t))continue;let n=e.getAttribute(t)||``;if(/url\s*\(/i.test(n)){let r=n.replace(/url\s*\(\s*(?!['"]?#)[^)]*\)/gi,`none`);e.setAttribute(t,r)}}})}function dt(){return g||(g=lt(),ut(g),g)}var _=[`en`,`ko`,`zh`,`ja`],v=`ko`,y={},b={};async function ft(){let e=null;try{e=localStorage.getItem(`claw_locale`)}catch{}if(!e){let t=(navigator.language||`ko`).split(/[-_]/)[0].toLowerCase();e=_.includes(t)?t:`ko`}b=await x(`ko`),y=e===`ko`?b:await x(e),v=e,document.documentElement.lang=v,C()}async function x(e){try{let{api:t}=await h(async()=>{let{api:e}=await import(`./api-DNnX8m0u.js`);return{api:e}},[]);return await t(`/api/i18n/${e}`)||{}}catch{return{}}}function S(e,t={}){let n=y[e]??b[e]??e;for(let[e,r]of Object.entries(t))n=n.replaceAll(`{${e}}`,String(r));return n}function C(){document.querySelectorAll(`[data-i18n]`).forEach(e=>{let t=e.getAttribute(`data-i18n`);t&&(e.textContent=S(t))}),document.querySelectorAll(`[data-i18n-placeholder]`).forEach(e=>{let t=e.getAttribute(`data-i18n-placeholder`);t&&(e.placeholder=S(t))}),document.querySelectorAll(`[data-i18n-title]`).forEach(e=>{let t=e.getAttribute(`data-i18n-title`);t&&(e.title=S(t))}),document.querySelectorAll(`[data-i18n-aria]`).forEach(e=>{let t=e.getAttribute(`data-i18n-aria`);t&&e.setAttribute(`aria-label`,S(t))})}async function pt(e){if(e!==v){_.includes(e)||(e=`ko`),y=e===`ko`?b:await x(e),v=e,document.documentElement.lang=v;try{localStorage.setItem(`claw_locale`,e)}catch{}C();try{let{loadEmployees:e}=await h(async()=>{let{loadEmployees:e}=await import(`./employees-Bbabvbyx.js`);return{loadEmployees:e}},[]);e()}catch{}try{let{loadSkills:e}=await h(async()=>{let{loadSkills:e}=await import(`./skills-yMfNYJ8m.js`);return{loadSkills:e}},[]);e()}catch{}try{let{loadCommands:e}=await h(async()=>{let{loadCommands:e}=await import(`./slash-commands-CZcwr1W6.js`);return{loadCommands:e}},[]);e()}catch{}try{let{loadSettings:e}=await h(async()=>{let{loadSettings:e}=await import(`./settings-DxLPUbpj.js`);return{loadSettings:e}},[]);e()}catch{}}}function mt(){return v}function ht(e,t={}){let n=new URL(e,location.origin);return n.searchParams.has(`locale`)||n.searchParams.set(`locale`,v),fetch(n.toString(),t)}var gt=`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M2 12c0 0 2-4 6-4 1 0 2 .5 3 1l3-6c0 0 1 5 3 7 1.5 1.5 5 2 5 2s-1 4-5 4c-1 0-2-.3-3-.8L12 18c0 0-2-1-4-1-4 0-6-5-6-5z"/><circle cx="17" cy="11" r="0.5" fill="currentColor" stroke="none"/><path d="M7 12l1 2"/><path d="M9.5 12l1 2"/></svg>`,w=14,_t=16;function T(e,t=_t){return we(e,{size:t})}var E={check:T(ke),error:T(at),warning:T(He),skip:T(Le),tool:T(Ze),thinking:T(Ee),search:T(Re),web:T(be),exec:T($e),compacting:T(it),plan:T(Ie),brain:T(Xe),heartPulse:T(ce),lock:T(ue),lockOpen:T(nt),key:T(de),settings:T(Ge),file:T(pe),trash:T(Fe),lightbulb:T(fe),refresh:T(Ye),mic:T(rt),clipboard:T(Te),robot:T(_e),palette:T(tt),link:T(De),salute:T(Ue),shark:gt,user:T(le),paperclip:T(Pe),save:T(ze),gamepad:T(xe),house:T(Se),radio:T(Ke),folder:T(Ce),pencil:T(Be),chart:T(ve),hourglass:T(We),target:T(Je),ban:T(Me),play:T(Ve),stop:T(Qe),close:T(qe,w),send:T(et),copy:T(ye,w),download:T(ge,w),checkSimple:T(me,w),chevronLeft:T(Oe,w),chevronRight:T(he,w),chevronDown:T(Ae,w),arrowLeft:T(Ne,w),arrowRight:T(je,w)},vt={"✅":`check`,"❌":`error`,"🔧":`tool`,"⏭":`skip`,"🧠":`brain`,"💓":`heartPulse`,"🔒":`lock`,"🔓":`lockOpen`,"🔑":`key`,"⚙":`settings`,"⚙️":`settings`,"📄":`file`,"🗑":`trash`,"🗑️":`trash`,"⚠":`warning`,"⚠️":`warning`,"💡":`lightbulb`,"🦈":`shark`,"👤":`user`,"💭":`thinking`,"🔍":`search`,"🌐":`web`,"⚡":`exec`,"🗜":`compacting`,"🗜️":`compacting`,"📝":`plan`,"📑":`clipboard`,"🤖":`robot`,"📋":`clipboard`,"🔄":`refresh`,"🎨":`palette`,"🎤":`mic`,"🔗":`link`,"🫡":`salute`,"📎":`paperclip`,"💾":`save`,"🎮":`gamepad`,"🏠":`house`,"📡":`radio`,"📂":`folder`,"✏️":`pencil`,"📊":`chart`,"🎙️":`mic`,"⏳":`hourglass`,"🎯":`target`,"📨":`send`,"🚫":`ban`,"▶":`play`};function yt(e){let t=vt[e];return t?E[t]:e}function bt(e){return e===`✅`?`done`:e===`❌`?`error`:null}function xt(e=document.body){let t=e.querySelectorAll(`[data-icon]`);for(let e of t){let t=e.dataset.icon;t&&E[t]&&(e.innerHTML=E[t],e.classList.add(`icon-hydrated`))}}function St(e){let t=[],n=e.replace(/```[\s\S]*?```/g,e=>(t.push(e),`\x00P${t.length-1}\x00`)).replace(/`[^`]+`/g,e=>(t.push(e),`\x00P${t.length-1}\x00`));return n=n.replace(/([\p{P}])\*\*(?=[^\s\p{P}])/gu,(e,t)=>t===`*`?e:t+`​**`),n=n.replace(/\x00P(\d+)\x00/g,(e,n)=>t[Number(n)]),n}var D=0;function Ct(e){let t=new Map;return{text:e.replace(/^ {0,3}(`{3,}|~{3,})[^\n]*\n[\s\S]*?\n {0,3}\1[ \t]*$/gm,e=>{let n=`\x00FENCE-${D++}\x00`;return t.set(n,e),n}),fences:t}}function wt(e,t){for(let[n,r]of t)e=e.replace(n,()=>r);return e}function Tt(e,t=!1){let n=[],r=``,i=0;for(;i<e.length;){let a=e.indexOf(`<svg`,i);if(a===-1){r+=e.slice(i);break}let o=e[a+4];if(o&&!/[\s\/>]/.test(o)){r+=e.slice(i,a+4),i=a+4;continue}r+=e.slice(i,a);let s=0,c=a,l=!1;for(;c<e.length;){let t=e.indexOf(`<svg`,c+1),o=e.indexOf(`</svg>`,c+(c===a?0:1));if(o===-1)break;if(t!==-1&&t<o){let n=e[t+4];n&&/[\s\/>]/.test(n)&&s++,c=t+4}else if(s===0){let t=o+6,s=e.slice(a,t),c=D++,u=`\n\n<div data-jaw-svg="${c}"></div>\n\n`;n.push({id:c,index:a,length:s.length,svg:s,kind:`complete`,placeholder:u}),r+=u,i=t,l=!0;break}else s--,c=o+6}if(!l){let o=D++;if(t){let t=e.slice(a),s=`\n\n<div data-jaw-svg="${o}" data-jaw-kind="partial"></div>\n\n`;n.push({id:o,index:a,length:t.length,svg:``,kind:`partial`,placeholder:s}),r+=s,i=e.length}else{let t=`\n\n<div data-jaw-svg="${o}" data-jaw-kind="error"></div>\n\n`,s=e.slice(a),c=s.search(/\n\s*\n/),l=c===-1?s.length:c;n.push({id:o,index:a,length:l,svg:``,kind:`error`,placeholder:t}),r+=t,i=a+l}}}return{text:r,blocks:n}}var Et=dt();a.registerLanguage(`javascript`,i),a.registerLanguage(`js`,i),a.registerLanguage(`typescript`,u),a.registerLanguage(`ts`,u),a.registerLanguage(`python`,c),a.registerLanguage(`py`,c),a.registerLanguage(`bash`,s),a.registerLanguage(`shell`,f),a.registerLanguage(`sh`,f),a.registerLanguage(`json`,e),a.registerLanguage(`css`,ae),a.registerLanguage(`xml`,l),a.registerLanguage(`html`,l),a.registerLanguage(`markdown`,n),a.registerLanguage(`md`,n),a.registerLanguage(`yaml`,r),a.registerLanguage(`yml`,r),a.registerLanguage(`sql`,te),a.registerLanguage(`rust`,oe),a.registerLanguage(`rs`,oe),a.registerLanguage(`go`,t),a.registerLanguage(`java`,ee),a.registerLanguage(`cpp`,p),a.registerLanguage(`c`,p),a.registerLanguage(`diff`,ne),a.registerLanguage(`plaintext`,m),a.registerLanguage(`text`,m);var O=null,k=Promise.resolve();function Dt(){return document.documentElement.getAttribute(`data-theme`)===`light`?{primaryColor:`#e2e8f0`,primaryTextColor:`#1a202c`,primaryBorderColor:`#a0aec0`,lineColor:`#718096`,secondaryColor:`#ebf8ff`,tertiaryColor:`#f7fafc`,background:`transparent`,mainBkg:`#e2e8f0`,nodeBorder:`#a0aec0`,clusterBkg:`#f7fafc`,clusterBorder:`#cbd5e0`,titleColor:`#1a202c`,edgeLabelBackground:`#f7fafc`}:{primaryColor:`#2d3748`,primaryTextColor:`#e2e8f0`,primaryBorderColor:`#4a5568`,lineColor:`#718096`,secondaryColor:`#1a365d`,tertiaryColor:`#1a202c`,background:`transparent`,mainBkg:`#2d3748`,nodeBorder:`#4a5568`,clusterBkg:`#1a202c`,clusterBorder:`#2d3748`,titleColor:`#e2e8f0`,edgeLabelBackground:`#1a202c`}}async function A(){return O||=(await h(()=>import(`./mermaid-loader-6XC0y10y.js`),__vite__mapDeps([0]))).loadMermaid(),O}function j(){O.initialize({startOnLoad:!1,theme:`base`,htmlLabels:!1,themeVariables:Dt(),securityLevel:`strict`,suppressErrorRendering:!0})}function Ot(e){let t=Et.sanitize(e,{USE_PROFILES:{svg:!0,svgFilters:!0},FORBID_TAGS:[`script`,`iframe`,`object`,`embed`,`form`,`input`,`foreignObject`,`animate`,`set`,`animateTransform`,`animateMotion`],FORBID_ATTR:[`onerror`,`onclick`,`onload`,`onmouseover`,`onfocus`,`onblur`,`background`]}),n=document.createElement(`div`);n.innerHTML=t;for(let e of n.querySelectorAll(`style`)){let t=e.textContent||``;t=t.replace(/@import\b[^;]*;?/gi,`/* stripped */`),t=t.replace(/@font-face\s*\{[^}]*\}/gi,`/* stripped */`),t=t.replace(/url\s*\(\s*(?!['"]?#)[^)]*\)/gi,`none`),e.textContent=t}return n.innerHTML}function M(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&#39;`)}function N(e){return Et.sanitize(e,{USE_PROFILES:{html:!0,svg:!0,svgFilters:!0},FORBID_TAGS:[`script`,`style`,`iframe`,`object`,`embed`,`form`,`input`,`foreignObject`,`animate`,`set`,`animateTransform`,`animateMotion`],FORBID_ATTR:[`onerror`,`onclick`,`onload`,`onmouseover`,`onfocus`,`onblur`,`background`],ADD_TAGS:[`use`],ADD_ATTR:[`aria-hidden`,`xmlns`,`viewBox`,`role`,`aria-label`,`data-jaw-svg`,`data-jaw-kind`,`data-mermaid-code-raw`,`href`,`xlink:href`]})}var kt=/["'](?:subtasks|employee_config|agent_phases|orchestration_plan)["']\s*:/,At=/(^|\n)(?:## Approved Plan \((?:authoritative|auto-injected by orchestrator)[^\n]*\)|\[PABCD — [A-Z]:[^\n]*\]|\[PLANNING MODE[^\n]*\]|\[PLAN AUDIT[^\n]*\]|The approved plan is already injected above)/m;function jt(e){let t=At.exec(e);return!t||t.index<0?e:e.slice(0,t.index).trim()}function P(e){let t=e.replace(/```json\n([\s\S]*?)\n```/g,(e,t)=>kt.test(t)?``:e);return t=t.replace(/\{[^{}]*"subtasks"\s*:\s*\[[\s\S]*?\]\s*\}/g,``).trim(),jt(t)}function Mt(e){let t=[],n=[],r=e.replace(/```[\s\S]*?```/g,e=>(n.push(e),`\x00C${n.length-1}\x00`)).replace(/`[^`]+`/g,e=>(n.push(e),`\x00C${n.length-1}\x00`));return r=r.replace(/\$\$([\s\S]+?)\$\$/g,(e,n)=>(t.push({tex:n.trim(),displayMode:!0}),`\x00MATH-${t.length-1}\x00`)),r=r.replace(/\\\[([\s\S]+?)\\\]/g,(e,n)=>(t.push({tex:n.trim(),displayMode:!0}),`\x00MATH-${t.length-1}\x00`)),r=r.replace(/(?<!\$)\$(?!\$)([^\n$]+?)\$(?!\$)/g,(e,n)=>(t.push({tex:n.trim(),displayMode:!1}),`\x00MATH-${t.length-1}\x00`)),r=r.replace(/\\\((.+?)\\\)/g,(e,n)=>(t.push({tex:n.trim(),displayMode:!1}),`\x00MATH-${t.length-1}\x00`)),r=r.replace(/\x00C(\d+)\x00/g,(e,t)=>n[Number(t)]),{text:r,blocks:t}}function Nt(e,t,n=!1){return e.replace(/\x00MATH-(\d+)\x00/g,(e,r)=>{let i=t[Number(r)];if(!i)return`<code title="math placeholder error">[math error]</code>`;if(n)return i.displayMode?`<div class="math-placeholder">${M(i.tex)}</div>`:`<code class="math-placeholder">${M(i.tex)}</code>`;try{return re.renderToString(i.tex,{displayMode:i.displayMode,throwOnError:!1})}catch{return i.displayMode?`<pre><code>${M(i.tex)}</code></pre>`:`<code>${M(i.tex)}</code>`}})}var F=0;async function Pt(){let e=document.querySelectorAll(`.mermaid-rendered`);e.length&&(k=k.then(async()=>{let t=await A();for(let n of e){let e=n,r=e.dataset.mermaidCode;if(!r||!e.isConnected)continue;let i=`mermaid-${++F}`;try{j();let{svg:n}=await t.render(i,r);if(!e.isConnected)continue;e.innerHTML=Ot(n),L(e),Z(e)}catch{}}}).catch(e=>{console.error(`[mermaid:queue] rerender failed, keeping queue alive:`,e)}),await k)}var I=null;function Ft(){I||=new IntersectionObserver(e=>{for(let t of e){if(!t.isIntersecting)continue;let e=t.target;e.classList.contains(`mermaid-pending`)&&(I.unobserve(e),R(e))}},{rootMargin:`200px`})}function L(e){e.querySelector(`.mermaid-zoom-btn`)?.remove(),e.querySelector(`.mermaid-copy-btn`)?.remove(),e.querySelector(`.mermaid-save-btn`)?.remove();let t=document.createElement(`button`);t.className=`mermaid-zoom-btn`,t.type=`button`,t.ariaLabel=`Expand diagram`,t.title=`Expand`,t.textContent=`⤢`,e.appendChild(t);let n=document.createElement(`button`);n.className=`mermaid-save-btn`,n.type=`button`,n.ariaLabel=`Save as image`,n.title=`Save`,n.innerHTML=E.download,e.appendChild(n);let r=document.createElement(`button`);r.className=`mermaid-copy-btn`,r.type=`button`,r.ariaLabel=`Copy source`,r.title=`Copy`,r.innerHTML=E.copy,e.appendChild(r)}function It(e,t,n){e.classList.remove(`mermaid-rendered`),e.innerHTML=`
2
+ import{A as e,C as t,D as n,E as r,F as i,I as a,L as o,M as s,N as c,O as l,P as u,R as d,S as ee,T as te,b as ne,f as re,i as ie,j as f,k as ae,w as oe,x as p,y as m}from"./vendor-render-984tPmpy.js";import{i as se}from"./api-tVoG39dL.js";import{t as h}from"./preload-helper-CMqhPRCH.js";import{A as ce,B as le,C as ue,D as de,E as fe,F as pe,G as me,H as he,I as ge,J as _e,K as ve,L as ye,M as be,N as xe,O as Se,P as Ce,Q as we,R as Te,S as Ee,T as De,U as Oe,V as ke,W as Ae,X as je,Y as Me,Z as Ne,_ as Pe,a as Fe,b as Ie,c as Le,d as Re,f as ze,g as Be,h as Ve,i as He,j as Ue,k as We,l as Ge,m as Ke,n as qe,o as Je,p as Ye,q as Xe,r as Ze,s as Qe,t as $e,u as et,v as tt,w as nt,x as rt,y as it,z as at}from"./vendor-icons-D2l6ddC0.js";var ot=`http://www.w3.org/2000/svg`,st=new Set([`a`,`area`,`link`]),ct=[`fill`,`stroke`,`filter`,`mask`,`clip-path`,`marker-start`,`marker-mid`,`marker-end`,`cursor`],g=null;function lt(){let e=ie;return typeof e.sanitize==`function`&&typeof e.addHook==`function`?e:typeof window<`u`?e(window):{sanitize:e=>e,addHook:()=>void 0}}function ut(e){e.addHook(`afterSanitizeAttributes`,e=>{let t=e.tagName.toLowerCase();if(e.namespaceURI===ot||!st.has(t)){let t=e.getAttribute(`href`)||``;t&&!t.startsWith(`#`)&&e.removeAttribute(`href`)}let n=e.getAttributeNS(`http://www.w3.org/1999/xlink`,`href`)||e.getAttribute(`xlink:href`)||``;if(n&&!n.startsWith(`#`)&&(e.removeAttributeNS(`http://www.w3.org/1999/xlink`,`href`),e.removeAttribute(`xlink:href`)),t===`image`||t===`feimage`){let t=e.getAttribute(`src`)||``;t&&!t.startsWith(`#`)&&e.removeAttribute(`src`)}if(e.hasAttribute(`style`)){let t=e.style?.cssText||``;if(/url\s*\(/i.test(t)){let n=t.replace(/url\s*\(\s*(?!['"]?#)[^)]*\)/gi,`none`);e.style.cssText=n}}for(let t of ct){if(!e.hasAttribute(t))continue;let n=e.getAttribute(t)||``;if(/url\s*\(/i.test(n)){let r=n.replace(/url\s*\(\s*(?!['"]?#)[^)]*\)/gi,`none`);e.setAttribute(t,r)}}})}function dt(){return g||(g=lt(),ut(g),g)}var _=[`en`,`ko`,`zh`,`ja`],v=`ko`,y={},b={};async function ft(){let e=null;try{e=localStorage.getItem(`claw_locale`)}catch{}if(!e){let t=(navigator.language||`ko`).split(/[-_]/)[0].toLowerCase();e=_.includes(t)?t:`ko`}b=await x(`ko`),y=e===`ko`?b:await x(e),v=e,document.documentElement.lang=v,C()}async function x(e){try{let{api:t}=await h(async()=>{let{api:e}=await import(`./api-DNnX8m0u.js`);return{api:e}},[]);return await t(`/api/i18n/${e}`)||{}}catch{return{}}}function S(e,t={}){let n=y[e]??b[e]??e;for(let[e,r]of Object.entries(t))n=n.replaceAll(`{${e}}`,String(r));return n}function C(){document.querySelectorAll(`[data-i18n]`).forEach(e=>{let t=e.getAttribute(`data-i18n`);t&&(e.textContent=S(t))}),document.querySelectorAll(`[data-i18n-placeholder]`).forEach(e=>{let t=e.getAttribute(`data-i18n-placeholder`);t&&(e.placeholder=S(t))}),document.querySelectorAll(`[data-i18n-title]`).forEach(e=>{let t=e.getAttribute(`data-i18n-title`);t&&(e.title=S(t))}),document.querySelectorAll(`[data-i18n-aria]`).forEach(e=>{let t=e.getAttribute(`data-i18n-aria`);t&&e.setAttribute(`aria-label`,S(t))})}async function pt(e){if(e!==v){_.includes(e)||(e=`ko`),y=e===`ko`?b:await x(e),v=e,document.documentElement.lang=v;try{localStorage.setItem(`claw_locale`,e)}catch{}C();try{let{loadEmployees:e}=await h(async()=>{let{loadEmployees:e}=await import(`./employees-CxdghzoD.js`);return{loadEmployees:e}},[]);e()}catch{}try{let{loadSkills:e}=await h(async()=>{let{loadSkills:e}=await import(`./skills-5o_1v0nz.js`);return{loadSkills:e}},[]);e()}catch{}try{let{loadCommands:e}=await h(async()=>{let{loadCommands:e}=await import(`./slash-commands-D4-hrrmh.js`);return{loadCommands:e}},[]);e()}catch{}try{let{loadSettings:e}=await h(async()=>{let{loadSettings:e}=await import(`./settings-DXT87G2U.js`);return{loadSettings:e}},[]);e()}catch{}}}function mt(){return v}function ht(e,t={}){let n=new URL(e,location.origin);return n.searchParams.has(`locale`)||n.searchParams.set(`locale`,v),fetch(n.toString(),t)}var gt=`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M2 12c0 0 2-4 6-4 1 0 2 .5 3 1l3-6c0 0 1 5 3 7 1.5 1.5 5 2 5 2s-1 4-5 4c-1 0-2-.3-3-.8L12 18c0 0-2-1-4-1-4 0-6-5-6-5z"/><circle cx="17" cy="11" r="0.5" fill="currentColor" stroke="none"/><path d="M7 12l1 2"/><path d="M9.5 12l1 2"/></svg>`,w=14,_t=16;function T(e,t=_t){return we(e,{size:t})}var E={check:T(ke),error:T(at),warning:T(He),skip:T(Le),tool:T(Ze),thinking:T(Ee),search:T(Re),web:T(be),exec:T($e),compacting:T(it),plan:T(Ie),brain:T(Xe),heartPulse:T(ce),lock:T(ue),lockOpen:T(nt),key:T(de),settings:T(Ge),file:T(pe),trash:T(Fe),lightbulb:T(fe),refresh:T(Ye),mic:T(rt),clipboard:T(Te),robot:T(_e),palette:T(tt),link:T(De),salute:T(Ue),shark:gt,user:T(le),paperclip:T(Pe),save:T(ze),gamepad:T(xe),house:T(Se),radio:T(Ke),folder:T(Ce),pencil:T(Be),chart:T(ve),hourglass:T(We),target:T(Je),ban:T(Me),play:T(Ve),stop:T(Qe),close:T(qe,w),send:T(et),copy:T(ye,w),download:T(ge,w),checkSimple:T(me,w),chevronLeft:T(Oe,w),chevronRight:T(he,w),chevronDown:T(Ae,w),arrowLeft:T(Ne,w),arrowRight:T(je,w)},vt={"✅":`check`,"❌":`error`,"🔧":`tool`,"⏭":`skip`,"🧠":`brain`,"💓":`heartPulse`,"🔒":`lock`,"🔓":`lockOpen`,"🔑":`key`,"⚙":`settings`,"⚙️":`settings`,"📄":`file`,"🗑":`trash`,"🗑️":`trash`,"⚠":`warning`,"⚠️":`warning`,"💡":`lightbulb`,"🦈":`shark`,"👤":`user`,"💭":`thinking`,"🔍":`search`,"🌐":`web`,"⚡":`exec`,"🗜":`compacting`,"🗜️":`compacting`,"📝":`plan`,"📑":`clipboard`,"🤖":`robot`,"📋":`clipboard`,"🔄":`refresh`,"🎨":`palette`,"🎤":`mic`,"🔗":`link`,"🫡":`salute`,"📎":`paperclip`,"💾":`save`,"🎮":`gamepad`,"🏠":`house`,"📡":`radio`,"📂":`folder`,"✏️":`pencil`,"📊":`chart`,"🎙️":`mic`,"⏳":`hourglass`,"🎯":`target`,"📨":`send`,"🚫":`ban`,"▶":`play`};function yt(e){let t=vt[e];return t?E[t]:e}function bt(e){return e===`✅`?`done`:e===`❌`?`error`:null}function xt(e=document.body){let t=e.querySelectorAll(`[data-icon]`);for(let e of t){let t=e.dataset.icon;t&&E[t]&&(e.innerHTML=E[t],e.classList.add(`icon-hydrated`))}}function St(e){let t=[],n=e.replace(/```[\s\S]*?```/g,e=>(t.push(e),`\x00P${t.length-1}\x00`)).replace(/`[^`]+`/g,e=>(t.push(e),`\x00P${t.length-1}\x00`));return n=n.replace(/([\p{P}])\*\*(?=[^\s\p{P}])/gu,(e,t)=>t===`*`?e:t+`​**`),n=n.replace(/\x00P(\d+)\x00/g,(e,n)=>t[Number(n)]),n}var D=0;function Ct(e){let t=new Map;return{text:e.replace(/^ {0,3}(`{3,}|~{3,})[^\n]*\n[\s\S]*?\n {0,3}\1[ \t]*$/gm,e=>{let n=`\x00FENCE-${D++}\x00`;return t.set(n,e),n}),fences:t}}function wt(e,t){for(let[n,r]of t)e=e.replace(n,()=>r);return e}function Tt(e,t=!1){let n=[],r=``,i=0;for(;i<e.length;){let a=e.indexOf(`<svg`,i);if(a===-1){r+=e.slice(i);break}let o=e[a+4];if(o&&!/[\s\/>]/.test(o)){r+=e.slice(i,a+4),i=a+4;continue}r+=e.slice(i,a);let s=0,c=a,l=!1;for(;c<e.length;){let t=e.indexOf(`<svg`,c+1),o=e.indexOf(`</svg>`,c+(c===a?0:1));if(o===-1)break;if(t!==-1&&t<o){let n=e[t+4];n&&/[\s\/>]/.test(n)&&s++,c=t+4}else if(s===0){let t=o+6,s=e.slice(a,t),c=D++,u=`\n\n<div data-jaw-svg="${c}"></div>\n\n`;n.push({id:c,index:a,length:s.length,svg:s,kind:`complete`,placeholder:u}),r+=u,i=t,l=!0;break}else s--,c=o+6}if(!l){let o=D++;if(t){let t=e.slice(a),s=`\n\n<div data-jaw-svg="${o}" data-jaw-kind="partial"></div>\n\n`;n.push({id:o,index:a,length:t.length,svg:``,kind:`partial`,placeholder:s}),r+=s,i=e.length}else{let t=`\n\n<div data-jaw-svg="${o}" data-jaw-kind="error"></div>\n\n`,s=e.slice(a),c=s.search(/\n\s*\n/),l=c===-1?s.length:c;n.push({id:o,index:a,length:l,svg:``,kind:`error`,placeholder:t}),r+=t,i=a+l}}}return{text:r,blocks:n}}function Et(){return dt()}a.registerLanguage(`javascript`,i),a.registerLanguage(`js`,i),a.registerLanguage(`typescript`,u),a.registerLanguage(`ts`,u),a.registerLanguage(`python`,c),a.registerLanguage(`py`,c),a.registerLanguage(`bash`,s),a.registerLanguage(`shell`,f),a.registerLanguage(`sh`,f),a.registerLanguage(`json`,e),a.registerLanguage(`css`,ae),a.registerLanguage(`xml`,l),a.registerLanguage(`html`,l),a.registerLanguage(`markdown`,n),a.registerLanguage(`md`,n),a.registerLanguage(`yaml`,r),a.registerLanguage(`yml`,r),a.registerLanguage(`sql`,te),a.registerLanguage(`rust`,oe),a.registerLanguage(`rs`,oe),a.registerLanguage(`go`,t),a.registerLanguage(`java`,ee),a.registerLanguage(`cpp`,p),a.registerLanguage(`c`,p),a.registerLanguage(`diff`,ne),a.registerLanguage(`plaintext`,m),a.registerLanguage(`text`,m);var O=null,k=Promise.resolve();function Dt(){return document.documentElement.getAttribute(`data-theme`)===`light`?{primaryColor:`#e2e8f0`,primaryTextColor:`#1a202c`,primaryBorderColor:`#a0aec0`,lineColor:`#718096`,secondaryColor:`#ebf8ff`,tertiaryColor:`#f7fafc`,background:`transparent`,mainBkg:`#e2e8f0`,nodeBorder:`#a0aec0`,clusterBkg:`#f7fafc`,clusterBorder:`#cbd5e0`,titleColor:`#1a202c`,edgeLabelBackground:`#f7fafc`}:{primaryColor:`#2d3748`,primaryTextColor:`#e2e8f0`,primaryBorderColor:`#4a5568`,lineColor:`#718096`,secondaryColor:`#1a365d`,tertiaryColor:`#1a202c`,background:`transparent`,mainBkg:`#2d3748`,nodeBorder:`#4a5568`,clusterBkg:`#1a202c`,clusterBorder:`#2d3748`,titleColor:`#e2e8f0`,edgeLabelBackground:`#1a202c`}}async function A(){return O||=(await h(()=>import(`./mermaid-loader-BEFIOoJn.js`),__vite__mapDeps([0]))).loadMermaid(),O}function j(){O.initialize({startOnLoad:!1,theme:`base`,htmlLabels:!1,themeVariables:Dt(),securityLevel:`strict`,suppressErrorRendering:!0})}function Ot(e){let t=Et().sanitize(e,{USE_PROFILES:{svg:!0,svgFilters:!0},FORBID_TAGS:[`script`,`iframe`,`object`,`embed`,`form`,`input`,`foreignObject`,`animate`,`set`,`animateTransform`,`animateMotion`],FORBID_ATTR:[`onerror`,`onclick`,`onload`,`onmouseover`,`onfocus`,`onblur`,`background`]}),n=document.createElement(`div`);n.innerHTML=t;for(let e of n.querySelectorAll(`style`)){let t=e.textContent||``;t=t.replace(/@import\b[^;]*;?/gi,`/* stripped */`),t=t.replace(/@font-face\s*\{[^}]*\}/gi,`/* stripped */`),t=t.replace(/url\s*\(\s*(?!['"]?#)[^)]*\)/gi,`none`),e.textContent=t}return n.innerHTML}function M(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&#39;`)}function N(e){return Et().sanitize(e,{USE_PROFILES:{html:!0,svg:!0,svgFilters:!0},FORBID_TAGS:[`script`,`style`,`iframe`,`object`,`embed`,`form`,`input`,`foreignObject`,`animate`,`set`,`animateTransform`,`animateMotion`],FORBID_ATTR:[`onerror`,`onclick`,`onload`,`onmouseover`,`onfocus`,`onblur`,`background`],ADD_TAGS:[`use`],ADD_ATTR:[`aria-hidden`,`xmlns`,`viewBox`,`role`,`aria-label`,`data-jaw-svg`,`data-jaw-kind`,`data-mermaid-code-raw`,`href`,`xlink:href`]})}var kt=/["'](?:subtasks|employee_config|agent_phases|orchestration_plan)["']\s*:/,At=/(^|\n)(?:## Approved Plan \((?:authoritative|auto-injected by orchestrator)[^\n]*\)|\[PABCD — [A-Z]:[^\n]*\]|\[PLANNING MODE[^\n]*\]|\[PLAN AUDIT[^\n]*\]|The approved plan is already injected above)/m;function jt(e){let t=At.exec(e);return!t||t.index<0?e:e.slice(0,t.index).trim()}function P(e){let t=e.replace(/```json\n([\s\S]*?)\n```/g,(e,t)=>kt.test(t)?``:e);return t=t.replace(/\{[^{}]*"subtasks"\s*:\s*\[[\s\S]*?\]\s*\}/g,``).trim(),jt(t)}function Mt(e){let t=[],n=[],r=e.replace(/```[\s\S]*?```/g,e=>(n.push(e),`\x00C${n.length-1}\x00`)).replace(/`[^`]+`/g,e=>(n.push(e),`\x00C${n.length-1}\x00`));return r=r.replace(/\$\$([\s\S]+?)\$\$/g,(e,n)=>(t.push({tex:n.trim(),displayMode:!0}),`\x00MATH-${t.length-1}\x00`)),r=r.replace(/\\\[([\s\S]+?)\\\]/g,(e,n)=>(t.push({tex:n.trim(),displayMode:!0}),`\x00MATH-${t.length-1}\x00`)),r=r.replace(/(?<!\$)\$(?!\$)([^\n$]+?)\$(?!\$)/g,(e,n)=>(t.push({tex:n.trim(),displayMode:!1}),`\x00MATH-${t.length-1}\x00`)),r=r.replace(/\\\((.+?)\\\)/g,(e,n)=>(t.push({tex:n.trim(),displayMode:!1}),`\x00MATH-${t.length-1}\x00`)),r=r.replace(/\x00C(\d+)\x00/g,(e,t)=>n[Number(t)]),{text:r,blocks:t}}function Nt(e,t,n=!1){return e.replace(/\x00MATH-(\d+)\x00/g,(e,r)=>{let i=t[Number(r)];if(!i)return`<code title="math placeholder error">[math error]</code>`;if(n)return i.displayMode?`<div class="math-placeholder">${M(i.tex)}</div>`:`<code class="math-placeholder">${M(i.tex)}</code>`;try{return re.renderToString(i.tex,{displayMode:i.displayMode,throwOnError:!1})}catch{return i.displayMode?`<pre><code>${M(i.tex)}</code></pre>`:`<code>${M(i.tex)}</code>`}})}var F=0;async function Pt(){let e=document.querySelectorAll(`.mermaid-rendered`);e.length&&(k=k.then(async()=>{let t=await A();for(let n of e){let e=n,r=e.dataset.mermaidCode;if(!r||!e.isConnected)continue;let i=`mermaid-${++F}`;try{j();let{svg:n}=await t.render(i,r);if(!e.isConnected)continue;e.innerHTML=Ot(n),L(e),Z(e)}catch{}}}).catch(e=>{console.error(`[mermaid:queue] rerender failed, keeping queue alive:`,e)}),await k)}var I=null;function Ft(){I||=new IntersectionObserver(e=>{for(let t of e){if(!t.isIntersecting)continue;let e=t.target;e.classList.contains(`mermaid-pending`)&&(I.unobserve(e),R(e))}},{rootMargin:`200px`})}function L(e){e.querySelector(`.mermaid-zoom-btn`)?.remove(),e.querySelector(`.mermaid-copy-btn`)?.remove(),e.querySelector(`.mermaid-save-btn`)?.remove();let t=document.createElement(`button`);t.className=`mermaid-zoom-btn`,t.type=`button`,t.ariaLabel=`Expand diagram`,t.title=`Expand`,t.textContent=`⤢`,e.appendChild(t);let n=document.createElement(`button`);n.className=`mermaid-save-btn`,n.type=`button`,n.ariaLabel=`Save as image`,n.title=`Save`,n.innerHTML=E.download,e.appendChild(n);let r=document.createElement(`button`);r.className=`mermaid-copy-btn`,r.type=`button`,r.ariaLabel=`Copy source`,r.title=`Copy`,r.innerHTML=E.copy,e.appendChild(r)}function It(e,t,n){e.classList.remove(`mermaid-rendered`),e.innerHTML=`
3
3
  <div class="mermaid-error">
4
4
  <div class="mermaid-error-title">${E.warning} ${M(S(`mermaid.renderFail`)||`Mermaid render failed`)}</div>
5
5
  <div class="mermaid-error-msg">${M(n.slice(0,200))}</div>
@@ -28,4 +28,4 @@ import{A as e,C as t,D as n,E as r,F as i,I as a,L as o,M as s,N as c,O as l,P a
28
28
  <button class="diagram-overlay-close" type="button" aria-label="Close">✕</button>
29
29
  `,n.querySelectorAll(`.diagram-overlay-content svg`).forEach(e=>{if(!e.getAttribute(`viewBox`)){let t=e.getAttribute(`width`)||e.getBBox?.()?.width,n=e.getAttribute(`height`)||e.getBBox?.()?.height;t&&n&&e.setAttribute(`viewBox`,`0 0 ${parseFloat(String(t))} ${parseFloat(String(n))}`)}e.removeAttribute(`width`),e.removeAttribute(`height`)});let r=n.querySelector(`.diagram-overlay-close`),i=()=>{n.remove(),document.removeEventListener(`keydown`,a),t&&t.isConnected&&t.focus()},a=e=>{if(e.key===`Escape`){i();return}if(e.key===`Tab`){let t=n.querySelectorAll(`button, [href], [tabindex]:not([tabindex="-1"])`);if(t.length===0)return;let r=t[0],i=t[t.length-1];e.shiftKey&&document.activeElement===r?(e.preventDefault(),i.focus()):!e.shiftKey&&document.activeElement===i&&(e.preventDefault(),r.focus())}};r.addEventListener(`click`,i),document.addEventListener(`keydown`,a),document.body.appendChild(n),r.focus()}function Zt(e,t=!1){let n=P(e);if(!n)return`<em class="text-dim orchestrate-placeholder">${M(S(`orchestrator.dispatching`))}</em>`;let{text:r,fences:i}=Ct(n.replace(/\n{3,}/g,`
30
30
 
31
- `)),{text:a,blocks:s}=Tt(r,t),{text:c,blocks:l}=Mt(wt(a,i));Bt();let u=St(c),d=o.parse(u);return d=d.replace(/<table/g,`<div class="table-wrapper"><table`).replace(/<\/table>/g,`</table></div>`),d=Nt(d,l,t),d=N(d),d=Yt(d,s),t||Qt(),Kt(),qt(),Gt(),d}var Q=null,$=null;function Qt(){$&&clearTimeout($),Q&&=(cancelAnimationFrame(Q),null),$=setTimeout(()=>{$=null,Q=requestAnimationFrame(()=>{Q=null,z(),Vt(),Z();let e=document.getElementById(`chatMessages`);e&&U(e)})},100)}function $t(){$&&=(clearTimeout($),null),Q&&=(cancelAnimationFrame(Q),null)}export{pt as _,Rt as a,Pt as c,yt as d,bt as f,ft as g,mt as h,zt as i,P as l,ht as m,M as n,Zt as o,xt as p,U as r,z as s,$t as t,E as u,S as v};
31
+ `)),{text:a,blocks:s}=Tt(r,t),{text:c,blocks:l}=Mt(wt(a,i));Bt();let u=St(c),d=o.parse(u);return d=d.replace(/<table/g,`<div class="table-wrapper"><table`).replace(/<\/table>/g,`</table></div>`),d=Nt(d,l,t),d=N(d),d=Yt(d,s),t||Qt(),Kt(),qt(),Gt(),d}var Q=null,$=null;function Qt(){$&&clearTimeout($),Q&&=(cancelAnimationFrame(Q),null),$=setTimeout(()=>{$=null,Q=requestAnimationFrame(()=>{Q=null,z(),Vt(),Z();let e=document.getElementById(`chatMessages`);e&&U(e)})},100)}function $t(){$&&=(clearTimeout($),null),Q&&=(cancelAnimationFrame(Q),null)}export{ft as _,Rt as a,Pt as c,E as d,yt as f,mt as g,ht as h,zt as i,N as l,xt as m,M as n,Zt as o,bt as p,U as r,z as s,$t as t,P as u,pt as v,S as y};
@@ -1,40 +1,40 @@
1
- import{t as e}from"./state-xhhyIPlq.js";import{i as t,n,r}from"./api-tVoG39dL.js";import{n as i,u as a,v as o}from"./render-DEhbfUAW.js";import{n as s,r as c}from"./locale-f397XJgr.js";import{a as l,i as u,r as d,t as f}from"./constants-CYjOMbjf.js";function p(e){let n=document.getElementById(`sttEngine`),r=document.getElementById(`sttGeminiKey`),i=document.getElementById(`sttGeminiModel`),a=document.getElementById(`sttGeminiModelCustom`),o=document.getElementById(`sttWhisperModel`),s=document.getElementById(`sttOpenaiBaseUrl`),c=document.getElementById(`sttOpenaiKey`),l=document.getElementById(`sttOpenaiModel`),u=document.getElementById(`sttVertexJson`);if(n&&(n.value=e.engine||`auto`),r&&(r.placeholder=e.geminiKeySet?m(e.geminiKeyLast4):`AIza...`),i){let t=e.geminiModel||`gemini-2.5-flash-lite`;Array.from(i.options).some(e=>e.value===t)?i.value=t:(i.value=`__custom__`,a&&(a.value=t,a.style.display=``))}o&&(o.value=e.whisperModel||`mlx-community/whisper-large-v3-turbo`),s&&(s.value=e.openaiBaseUrl||``),c&&(c.placeholder=e.openaiKeySet?m(e.openaiKeyLast4):`sk-...`),l&&(l.value=e.openaiModel||``),u&&(u.value=e.vertexConfig||``);function d(){let e=n?.value||`auto`,t=e===`auto`||e===`gemini`,r=e===`openai`,i=e===`vertex`,a=e===`auto`||e===`whisper`;document.querySelectorAll(`.stt-gemini`).forEach(e=>e.style.display=t?``:`none`),document.querySelectorAll(`.stt-openai`).forEach(e=>e.style.display=r?``:`none`),document.querySelectorAll(`.stt-vertex`).forEach(e=>e.style.display=i?``:`none`),document.querySelectorAll(`.stt-whisper`).forEach(e=>e.style.display=a?``:`none`)}d();async function f(){let e={stt:{engine:n?.value||`auto`,geminiModel:(i?.value===`__custom__`?a?.value:i?.value)||`gemini-2.5-flash-lite`,whisperModel:o?.value||``,openaiBaseUrl:s?.value||``,openaiModel:l?.value||``,vertexConfig:u?.value||``}};r?.value&&(e.stt.geminiApiKey=r.value),c?.value&&(e.stt.openaiApiKey=c.value),console.log(`[stt] saving:`,{engine:e.stt.engine,hasGeminiKey:!!e.stt.geminiApiKey,hasOpenaiKey:!!e.stt.openaiApiKey});try{if(await t(`/api/settings`,`PUT`,e),r?.value){let e=r.value.slice(-4);r.value=``,r.placeholder=m(e)}if(c?.value){let e=c.value.slice(-4);c.value=``,c.placeholder=m(e)}}catch(e){console.error(`[stt] save failed:`,e)}}n?.addEventListener(`change`,()=>{d(),f()}),i?.addEventListener(`change`,()=>{a&&(a.style.display=i.value===`__custom__`?``:`none`),i.value!==`__custom__`&&f()}),a?.addEventListener(`blur`,f),r?.addEventListener(`blur`,()=>{r.value&&f()}),c?.addEventListener(`blur`,()=>{c.value&&f()}),s?.addEventListener(`blur`,f),l?.addEventListener(`blur`,f),o?.addEventListener(`blur`,f),u?.addEventListener(`blur`,f)}function m(e){return o(`stt.key.savedPlaceholder`,{last4:e||``})}async function ee(){let e=document.getElementById(`tgToken`)?.value.trim()||``,n=document.getElementById(`tgChatIds`)?.value.trim()||``;await t(`/api/settings`,`PUT`,{telegram:{token:e,allowedChatIds:n?n.split(`,`).map(e=>parseInt(e.trim(),10)).filter(e=>!isNaN(e)):[]}})}async function te(e){document.getElementById(`tgOn`)?.classList.toggle(`active`,e),document.getElementById(`tgOff`)?.classList.toggle(`active`,!e),await t(`/api/settings`,`PUT`,{telegram:{enabled:e}})}async function ne(e){document.getElementById(`tgForwardOn`)?.classList.toggle(`active`,e),document.getElementById(`tgForwardOff`)?.classList.toggle(`active`,!e),await t(`/api/settings`,`PUT`,{telegram:{forwardAll:e}})}async function re(e){document.getElementById(`tgMentionOn`)?.classList.toggle(`active`,e),document.getElementById(`tgMentionOff`)?.classList.toggle(`active`,!e),await t(`/api/settings`,`PUT`,{telegram:{mentionOnly:e}})}function ie(e){if(!e.telegram)return;let t=e.telegram;document.getElementById(`tgOn`)?.classList.toggle(`active`,!!t.enabled),document.getElementById(`tgOff`)?.classList.toggle(`active`,!t.enabled);let n=document.getElementById(`tgToken`);t.token&&n&&(n.value=t.token);let r=document.getElementById(`tgChatIds`);t.allowedChatIds?.length&&r&&(r.value=t.allowedChatIds.join(`, `));let i=t.forwardAll!==!1;document.getElementById(`tgForwardOn`)?.classList.toggle(`active`,i),document.getElementById(`tgForwardOff`)?.classList.toggle(`active`,!i);let a=t.mentionOnly!==!1;document.getElementById(`tgMentionOn`)?.classList.toggle(`active`,a),document.getElementById(`tgMentionOff`)?.classList.toggle(`active`,!a)}async function ae(){let e=document.getElementById(`dcToken`)?.value.trim()||``,n=document.getElementById(`dcGuildId`)?.value.trim()||``,r=document.getElementById(`dcChannelIds`)?.value.trim()||``;await t(`/api/settings`,`PUT`,{discord:{token:e,guildId:n,channelIds:r?r.split(`,`).map(e=>e.trim()).filter(Boolean):[]}})}async function oe(e){document.getElementById(`dcOn`)?.classList.toggle(`active`,e),document.getElementById(`dcOff`)?.classList.toggle(`active`,!e),await t(`/api/settings`,`PUT`,{discord:{enabled:e}})}async function h(e){document.getElementById(`dcForwardOn`)?.classList.toggle(`active`,e),document.getElementById(`dcForwardOff`)?.classList.toggle(`active`,!e),await t(`/api/settings`,`PUT`,{discord:{forwardAll:e}})}async function se(e){document.getElementById(`dcAllowBotsOn`)?.classList.toggle(`active`,e),document.getElementById(`dcAllowBotsOff`)?.classList.toggle(`active`,!e),await t(`/api/settings`,`PUT`,{discord:{allowBots:e}})}async function ce(e){document.getElementById(`dcMentionOn`)?.classList.toggle(`active`,e),document.getElementById(`dcMentionOff`)?.classList.toggle(`active`,!e),await t(`/api/settings`,`PUT`,{discord:{mentionOnly:e}})}function le(e){if(!e.discord)return;let t=e.discord;document.getElementById(`dcOn`)?.classList.toggle(`active`,!!t.enabled),document.getElementById(`dcOff`)?.classList.toggle(`active`,!t.enabled);let n=document.getElementById(`dcToken`);t.token&&n&&(n.value=t.token);let r=document.getElementById(`dcGuildId`);t.guildId&&r&&(r.value=t.guildId);let i=document.getElementById(`dcChannelIds`);t.channelIds?.length&&i&&(i.value=t.channelIds.join(`, `));let a=t.forwardAll!==!1;document.getElementById(`dcForwardOn`)?.classList.toggle(`active`,a),document.getElementById(`dcForwardOff`)?.classList.toggle(`active`,!a);let o=!!t.allowBots;document.getElementById(`dcAllowBotsOn`)?.classList.toggle(`active`,o),document.getElementById(`dcAllowBotsOff`)?.classList.toggle(`active`,!o);let s=!!t.mentionOnly;document.getElementById(`dcMentionOn`)?.classList.toggle(`active`,s),document.getElementById(`dcMentionOff`)?.classList.toggle(`active`,!s)}async function ue(e){document.getElementById(`chTelegram`)?.classList.toggle(`active`,e===`telegram`),document.getElementById(`chDiscord`)?.classList.toggle(`active`,e===`discord`),document.getElementById(`channelTelegramSettings`)?.style.setProperty(`display`,e===`telegram`?``:`none`),document.getElementById(`channelDiscordSettings`)?.style.setProperty(`display`,e===`discord`?``:`none`),await t(`/api/settings`,`PUT`,{channel:e})}function de(e){let t=e.channel||`telegram`;document.getElementById(`chTelegram`)?.classList.toggle(`active`,t===`telegram`),document.getElementById(`chDiscord`)?.classList.toggle(`active`,t===`discord`),document.getElementById(`channelTelegramSettings`)?.style.setProperty(`display`,t===`telegram`?``:`none`),document.getElementById(`channelDiscordSettings`)?.style.setProperty(`display`,t===`discord`?``:`none`)}function g(e){let t=document.getElementById(`fallbackOrderList`);if(!t)return;let n=Object.keys(e.perCli||{}),r=e.fallbackOrder||[],a=Math.min(n.length-1,3),s=``;for(let e=0;e<a;e++){let t=r[e]||``,a=n.map(e=>`<option value="${i(e)}" ${e===t?`selected`:``}>${i(e)}</option>`).join(``);s+=`
1
+ import{t as e}from"./state-xhhyIPlq.js";import{i as t,n,r}from"./api-tVoG39dL.js";import{d as i,n as a,y as o}from"./render-DGQX46ei.js";import{n as s,r as c}from"./locale-f397XJgr.js";import{a as l,i as u,r as d,t as f}from"./constants-CYjOMbjf.js";function p(e){let n=document.getElementById(`sttEngine`),r=document.getElementById(`sttGeminiKey`),i=document.getElementById(`sttGeminiModel`),a=document.getElementById(`sttGeminiModelCustom`),o=document.getElementById(`sttWhisperModel`),s=document.getElementById(`sttOpenaiBaseUrl`),c=document.getElementById(`sttOpenaiKey`),l=document.getElementById(`sttOpenaiModel`),u=document.getElementById(`sttVertexJson`);if(n&&(n.value=e.engine||`auto`),r&&(r.placeholder=e.geminiKeySet?m(e.geminiKeyLast4):`AIza...`),i){let t=e.geminiModel||`gemini-2.5-flash-lite`;Array.from(i.options).some(e=>e.value===t)?i.value=t:(i.value=`__custom__`,a&&(a.value=t,a.style.display=``))}o&&(o.value=e.whisperModel||`mlx-community/whisper-large-v3-turbo`),s&&(s.value=e.openaiBaseUrl||``),c&&(c.placeholder=e.openaiKeySet?m(e.openaiKeyLast4):`sk-...`),l&&(l.value=e.openaiModel||``),u&&(u.value=e.vertexConfig||``);function d(){let e=n?.value||`auto`,t=e===`auto`||e===`gemini`,r=e===`openai`,i=e===`vertex`,a=e===`auto`||e===`whisper`;document.querySelectorAll(`.stt-gemini`).forEach(e=>e.style.display=t?``:`none`),document.querySelectorAll(`.stt-openai`).forEach(e=>e.style.display=r?``:`none`),document.querySelectorAll(`.stt-vertex`).forEach(e=>e.style.display=i?``:`none`),document.querySelectorAll(`.stt-whisper`).forEach(e=>e.style.display=a?``:`none`)}d();async function f(){let e={stt:{engine:n?.value||`auto`,geminiModel:(i?.value===`__custom__`?a?.value:i?.value)||`gemini-2.5-flash-lite`,whisperModel:o?.value||``,openaiBaseUrl:s?.value||``,openaiModel:l?.value||``,vertexConfig:u?.value||``}};r?.value&&(e.stt.geminiApiKey=r.value),c?.value&&(e.stt.openaiApiKey=c.value),console.log(`[stt] saving:`,{engine:e.stt.engine,hasGeminiKey:!!e.stt.geminiApiKey,hasOpenaiKey:!!e.stt.openaiApiKey});try{if(await t(`/api/settings`,`PUT`,e),r?.value){let e=r.value.slice(-4);r.value=``,r.placeholder=m(e)}if(c?.value){let e=c.value.slice(-4);c.value=``,c.placeholder=m(e)}}catch(e){console.error(`[stt] save failed:`,e)}}n?.addEventListener(`change`,()=>{d(),f()}),i?.addEventListener(`change`,()=>{a&&(a.style.display=i.value===`__custom__`?``:`none`),i.value!==`__custom__`&&f()}),a?.addEventListener(`blur`,f),r?.addEventListener(`blur`,()=>{r.value&&f()}),c?.addEventListener(`blur`,()=>{c.value&&f()}),s?.addEventListener(`blur`,f),l?.addEventListener(`blur`,f),o?.addEventListener(`blur`,f),u?.addEventListener(`blur`,f)}function m(e){return o(`stt.key.savedPlaceholder`,{last4:e||``})}async function ee(){let e=document.getElementById(`tgToken`)?.value.trim()||``,n=document.getElementById(`tgChatIds`)?.value.trim()||``;await t(`/api/settings`,`PUT`,{telegram:{token:e,allowedChatIds:n?n.split(`,`).map(e=>parseInt(e.trim(),10)).filter(e=>!isNaN(e)):[]}})}async function te(e){document.getElementById(`tgOn`)?.classList.toggle(`active`,e),document.getElementById(`tgOff`)?.classList.toggle(`active`,!e),await t(`/api/settings`,`PUT`,{telegram:{enabled:e}})}async function ne(e){document.getElementById(`tgForwardOn`)?.classList.toggle(`active`,e),document.getElementById(`tgForwardOff`)?.classList.toggle(`active`,!e),await t(`/api/settings`,`PUT`,{telegram:{forwardAll:e}})}async function re(e){document.getElementById(`tgMentionOn`)?.classList.toggle(`active`,e),document.getElementById(`tgMentionOff`)?.classList.toggle(`active`,!e),await t(`/api/settings`,`PUT`,{telegram:{mentionOnly:e}})}function ie(e){if(!e.telegram)return;let t=e.telegram;document.getElementById(`tgOn`)?.classList.toggle(`active`,!!t.enabled),document.getElementById(`tgOff`)?.classList.toggle(`active`,!t.enabled);let n=document.getElementById(`tgToken`);t.token&&n&&(n.value=t.token);let r=document.getElementById(`tgChatIds`);t.allowedChatIds?.length&&r&&(r.value=t.allowedChatIds.join(`, `));let i=t.forwardAll!==!1;document.getElementById(`tgForwardOn`)?.classList.toggle(`active`,i),document.getElementById(`tgForwardOff`)?.classList.toggle(`active`,!i);let a=t.mentionOnly!==!1;document.getElementById(`tgMentionOn`)?.classList.toggle(`active`,a),document.getElementById(`tgMentionOff`)?.classList.toggle(`active`,!a)}async function ae(){let e=document.getElementById(`dcToken`)?.value.trim()||``,n=document.getElementById(`dcGuildId`)?.value.trim()||``,r=document.getElementById(`dcChannelIds`)?.value.trim()||``;await t(`/api/settings`,`PUT`,{discord:{token:e,guildId:n,channelIds:r?r.split(`,`).map(e=>e.trim()).filter(Boolean):[]}})}async function oe(e){document.getElementById(`dcOn`)?.classList.toggle(`active`,e),document.getElementById(`dcOff`)?.classList.toggle(`active`,!e),await t(`/api/settings`,`PUT`,{discord:{enabled:e}})}async function h(e){document.getElementById(`dcForwardOn`)?.classList.toggle(`active`,e),document.getElementById(`dcForwardOff`)?.classList.toggle(`active`,!e),await t(`/api/settings`,`PUT`,{discord:{forwardAll:e}})}async function se(e){document.getElementById(`dcAllowBotsOn`)?.classList.toggle(`active`,e),document.getElementById(`dcAllowBotsOff`)?.classList.toggle(`active`,!e),await t(`/api/settings`,`PUT`,{discord:{allowBots:e}})}async function ce(e){document.getElementById(`dcMentionOn`)?.classList.toggle(`active`,e),document.getElementById(`dcMentionOff`)?.classList.toggle(`active`,!e),await t(`/api/settings`,`PUT`,{discord:{mentionOnly:e}})}function le(e){if(!e.discord)return;let t=e.discord;document.getElementById(`dcOn`)?.classList.toggle(`active`,!!t.enabled),document.getElementById(`dcOff`)?.classList.toggle(`active`,!t.enabled);let n=document.getElementById(`dcToken`);t.token&&n&&(n.value=t.token);let r=document.getElementById(`dcGuildId`);t.guildId&&r&&(r.value=t.guildId);let i=document.getElementById(`dcChannelIds`);t.channelIds?.length&&i&&(i.value=t.channelIds.join(`, `));let a=t.forwardAll!==!1;document.getElementById(`dcForwardOn`)?.classList.toggle(`active`,a),document.getElementById(`dcForwardOff`)?.classList.toggle(`active`,!a);let o=!!t.allowBots;document.getElementById(`dcAllowBotsOn`)?.classList.toggle(`active`,o),document.getElementById(`dcAllowBotsOff`)?.classList.toggle(`active`,!o);let s=!!t.mentionOnly;document.getElementById(`dcMentionOn`)?.classList.toggle(`active`,s),document.getElementById(`dcMentionOff`)?.classList.toggle(`active`,!s)}async function ue(e){document.getElementById(`chTelegram`)?.classList.toggle(`active`,e===`telegram`),document.getElementById(`chDiscord`)?.classList.toggle(`active`,e===`discord`),document.getElementById(`channelTelegramSettings`)?.style.setProperty(`display`,e===`telegram`?``:`none`),document.getElementById(`channelDiscordSettings`)?.style.setProperty(`display`,e===`discord`?``:`none`),await t(`/api/settings`,`PUT`,{channel:e})}function de(e){let t=e.channel||`telegram`;document.getElementById(`chTelegram`)?.classList.toggle(`active`,t===`telegram`),document.getElementById(`chDiscord`)?.classList.toggle(`active`,t===`discord`),document.getElementById(`channelTelegramSettings`)?.style.setProperty(`display`,t===`telegram`?``:`none`),document.getElementById(`channelDiscordSettings`)?.style.setProperty(`display`,t===`discord`?``:`none`)}function g(e){let t=document.getElementById(`fallbackOrderList`);if(!t)return;let n=Object.keys(e.perCli||{}),r=e.fallbackOrder||[],i=Math.min(n.length-1,3),s=``;for(let e=0;e<i;e++){let t=r[e]||``,i=n.map(e=>`<option value="${a(e)}" ${e===t?`selected`:``}>${a(e)}</option>`).join(``);s+=`
2
2
  <div class="settings-row sub-row">
3
3
  <label style="min-width:60px">Fallback ${e+1}</label>
4
4
  <select id="fallback${e}"
5
5
  style="font-size:11px;padding:4px;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:4px;flex:1">
6
6
  <option value="">${o(`settings.none`)}</option>
7
- ${a}
7
+ ${i}
8
8
  </select>
9
- </div>`}t.innerHTML=s}async function fe(){await t(`/api/settings`,`PUT`,{fallbackOrder:[...document.querySelectorAll(`#fallbackOrderList select`)].map(e=>e.value).filter(Boolean)})}async function _(){try{let e=await n(`/api/mcp`);if(!e)return;let t=document.getElementById(`mcpServerList`);if(!t)return;let r=Object.entries(e.servers||{});if(!r.length){t.textContent=o(`mcp.noServers`);return}t.innerHTML=r.map(([e,t])=>`<div style="padding:2px 0">• <b>${i(e)}</b> <span style="opacity:.6">${i(t.command)} ${(t.args||[]).slice(0,2).map(e=>i(e)).join(` `)}</span></div>`).join(``)}catch{}}async function pe(){let e=document.getElementById(`mcpSyncResult`);if(e){e.style.display=`block`,e.textContent=o(`mcp.syncing`);try{let n=await t(`/api/mcp/sync`,`POST`,{});if(!n){e.innerHTML=`${a.error} sync failed`;return}let r=n.results||{};e.innerHTML=Object.entries(r).map(([e,t])=>`${t?a.check:a.skip} ${i(e)}`).join(` &nbsp; `)}catch(t){e.innerHTML=`${a.error} ${i(t.message)}`}}}async function me(){let e=document.getElementById(`mcpSyncResult`);if(e){e.style.display=`block`,e.textContent=o(`mcp.installing`);try{let n=await t(`/api/mcp/install`,`POST`,{});if(!n){e.innerHTML=`${a.error} install failed`;return}e.innerHTML=Object.entries(n.results||{}).map(([e,t])=>`${t.status===`installed`?a.check:t.status===`skip`?a.skip:a.error} <b>${i(e)}</b>: ${i(t.status)}${t.bin?` ${a.arrowRight} `+i(t.bin):``}`).join(`<br>`),_()}catch(t){e.innerHTML=`${a.error} ${i(t.message)}`}}}var he=`<svg height="1em" style="flex:none;line-height:1" viewBox="0 0 24 24" width="1em" xmlns="http://www.w3.org/2000/svg"><title>Claude</title><path d="M4.709 15.955l4.72-2.647.08-.23-.08-.128H9.2l-.79-.048-2.698-.073-2.339-.097-2.266-.122-.571-.121L0 11.784l.055-.352.48-.321.686.06 1.52.103 2.278.158 1.652.097 2.449.255h.389l.055-.157-.134-.098-.103-.097-2.358-1.596-2.552-1.688-1.336-.972-.724-.491-.364-.462-.158-1.008.656-.722.881.06.225.061.893.686 1.908 1.476 2.491 1.833.365.304.145-.103.019-.073-.164-.274-1.355-2.446-1.446-2.49-.644-1.032-.17-.619a2.97 2.97 0 01-.104-.729L6.283.134 6.696 0l.996.134.42.364.62 1.414 1.002 2.229 1.555 3.03.456.898.243.832.091.255h.158V9.01l.128-1.706.237-2.095.23-2.695.08-.76.376-.91.747-.492.584.28.48.685-.067.444-.286 1.851-.559 2.903-.364 1.942h.212l.243-.242.985-1.306 1.652-2.064.73-.82.85-.904.547-.431h1.033l.76 1.129-.34 1.166-1.064 1.347-.881 1.142-1.264 1.7-.79 1.36.073.11.188-.02 2.856-.606 1.543-.28 1.841-.315.833.388.091.395-.328.807-1.969.486-2.309.462-3.439.813-.042.03.049.061 1.549.146.662.036h1.622l3.02.225.79.522.474.638-.079.485-1.215.62-1.64-.389-3.829-.91-1.312-.329h-.182v.11l1.093 1.068 2.006 1.81 2.509 2.33.127.578-.322.455-.34-.049-2.205-1.657-.851-.747-1.926-1.62h-.128v.17l.444.649 2.345 3.521.122 1.08-.17.353-.608.213-.668-.122-1.374-1.925-1.415-2.167-1.143-1.943-.14.08-.674 7.254-.316.37-.729.28-.607-.461-.322-.747.322-1.476.389-1.924.315-1.53.286-1.9.17-.632-.012-.042-.14.018-1.434 1.967-2.18 2.945-1.726 1.845-.414.164-.717-.37.067-.662.401-.589 2.388-3.036 1.44-1.882.93-1.086-.006-.158h-.055L4.132 18.56l-1.13.146-.487-.456.061-.746.231-.243 1.908-1.312-.006.006z" fill="#D97757" fill-rule="nonzero"></path></svg>`,v=`<svg fill="currentColor" fill-rule="evenodd" height="1em" style="flex:none;line-height:1" viewBox="0 0 24 24" width="1em" xmlns="http://www.w3.org/2000/svg"><title>OpenAI</title><path d="M9.205 8.658v-2.26c0-.19.072-.333.238-.428l4.543-2.616c.619-.357 1.356-.523 2.117-.523 2.854 0 4.662 2.212 4.662 4.566 0 .167 0 .357-.024.547l-4.71-2.759a.797.797 0 00-.856 0l-5.97 3.473zm10.609 8.8V12.06c0-.333-.143-.57-.429-.737l-5.97-3.473 1.95-1.118a.433.433 0 01.476 0l4.543 2.617c1.309.76 2.189 2.378 2.189 3.948 0 1.808-1.07 3.473-2.76 4.163zM7.802 12.703l-1.95-1.142c-.167-.095-.239-.238-.239-.428V5.899c0-2.545 1.95-4.472 4.591-4.472 1 0 1.927.333 2.712.928L8.23 5.067c-.285.166-.428.404-.428.737v6.898zM12 15.128l-2.795-1.57v-3.33L12 8.658l2.795 1.57v3.33L12 15.128zm1.796 7.23c-1 0-1.927-.332-2.712-.927l4.686-2.712c.285-.166.428-.404.428-.737v-6.898l1.974 1.142c.167.095.238.238.238.428v5.233c0 2.545-1.974 4.472-4.614 4.472zm-5.637-5.303l-4.544-2.617c-1.308-.761-2.188-2.378-2.188-3.948A4.482 4.482 0 014.21 6.327v5.423c0 .333.143.571.428.738l5.947 3.449-1.95 1.118a.432.432 0 01-.476 0zm-.262 3.9c-2.688 0-4.662-2.021-4.662-4.519 0-.19.024-.38.047-.57l4.686 2.71c.286.167.571.167.856 0l5.97-3.448v2.26c0 .19-.07.333-.237.428l-4.543 2.616c-.619.357-1.356.523-2.117.523zm5.899 2.83a5.947 5.947 0 005.827-4.756C22.287 18.339 24 15.84 24 13.296c0-1.665-.713-3.282-1.998-4.448.119-.5.19-.999.19-1.498 0-3.401-2.759-5.947-5.946-5.947-.642 0-1.26.095-1.88.31A5.962 5.962 0 0010.205 0a5.947 5.947 0 00-5.827 4.757C1.713 5.447 0 7.945 0 10.49c0 1.666.713 3.283 1.998 4.448-.119.5-.19 1-.19 1.499 0 3.401 2.759 5.946 5.946 5.946.642 0 1.26-.095 1.88-.309a5.96 5.96 0 004.162 1.713z"></path></svg>`,ge=`<svg height="1em" style="flex:none;line-height:1" viewBox="0 0 24 24" width="1em" xmlns="http://www.w3.org/2000/svg"><title>Gemini</title><path d="M20.616 10.835a14.147 14.147 0 01-4.45-3.001 14.111 14.111 0 01-3.678-6.452.503.503 0 00-.975 0 14.134 14.134 0 01-3.679 6.452 14.155 14.155 0 01-4.45 3.001c-.65.28-1.318.505-2.002.678a.502.502 0 000 .975c.684.172 1.35.397 2.002.677a14.147 14.147 0 014.45 3.001 14.112 14.112 0 013.679 6.453.502.502 0 00.975 0c.172-.685.397-1.351.677-2.003a14.145 14.145 0 013.001-4.45 14.113 14.113 0 016.453-3.678.503.503 0 000-.975 13.245 13.245 0 01-2.003-.678z" fill="#3186FF"></path><path d="M20.616 10.835a14.147 14.147 0 01-4.45-3.001 14.111 14.111 0 01-3.678-6.452.503.503 0 00-.975 0 14.134 14.134 0 01-3.679 6.452 14.155 14.155 0 01-4.45 3.001c-.65.28-1.318.505-2.002.678a.502.502 0 000 .975c.684.172 1.35.397 2.002.677a14.147 14.147 0 014.45 3.001 14.112 14.112 0 013.679 6.453.502.502 0 00.975 0c.172-.685.397-1.351.677-2.003a14.145 14.145 0 013.001-4.45 14.113 14.113 0 016.453-3.678.503.503 0 000-.975 13.245 13.245 0 01-2.003-.678z" fill="url(#lobe-icons-gemini-0-_R_0_)"></path><path d="M20.616 10.835a14.147 14.147 0 01-4.45-3.001 14.111 14.111 0 01-3.678-6.452.503.503 0 00-.975 0 14.134 14.134 0 01-3.679 6.452 14.155 14.155 0 01-4.45 3.001c-.65.28-1.318.505-2.002.678a.502.502 0 000 .975c.684.172 1.35.397 2.002.677a14.147 14.147 0 014.45 3.001 14.112 14.112 0 013.679 6.453.502.502 0 00.975 0c.172-.685.397-1.351.677-2.003a14.145 14.145 0 013.001-4.45 14.113 14.113 0 016.453-3.678.503.503 0 000-.975 13.245 13.245 0 01-2.003-.678z" fill="url(#lobe-icons-gemini-1-_R_0_)"></path><path d="M20.616 10.835a14.147 14.147 0 01-4.45-3.001 14.111 14.111 0 01-3.678-6.452.503.503 0 00-.975 0 14.134 14.134 0 01-3.679 6.452 14.155 14.155 0 01-4.45 3.001c-.65.28-1.318.505-2.002.678a.502.502 0 000 .975c.684.172 1.35.397 2.002.677a14.147 14.147 0 014.45 3.001 14.112 14.112 0 013.679 6.453.502.502 0 00.975 0c.172-.685.397-1.351.677-2.003a14.145 14.145 0 013.001-4.45 14.113 14.113 0 016.453-3.678.503.503 0 000-.975 13.245 13.245 0 01-2.003-.678z" fill="url(#lobe-icons-gemini-2-_R_0_)"></path><defs><linearGradient gradientUnits="userSpaceOnUse" id="lobe-icons-gemini-0-_R_0_" x1="7" x2="11" y1="15.5" y2="12"><stop stop-color="#08B962"></stop><stop offset="1" stop-color="#08B962" stop-opacity="0"></stop></linearGradient><linearGradient gradientUnits="userSpaceOnUse" id="lobe-icons-gemini-1-_R_0_" x1="8" x2="11.5" y1="5.5" y2="11"><stop stop-color="#F94543"></stop><stop offset="1" stop-color="#F94543" stop-opacity="0"></stop></linearGradient><linearGradient gradientUnits="userSpaceOnUse" id="lobe-icons-gemini-2-_R_0_" x1="3.5" x2="17.5" y1="13.5" y2="12"><stop stop-color="#FABC12"></stop><stop offset=".46" stop-color="#FABC12" stop-opacity="0"></stop></linearGradient></defs></svg>`,_e=`<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" fill="currentColor"><title>GitHub Copilot</title><path d="M23.922 16.997C23.061 18.492 18.063 22.02 12 22.02 5.937 22.02.939 18.492.078 16.997A.641.641 0 0 1 0 16.741v-2.869a.883.883 0 0 1 .053-.22c.372-.935 1.347-2.292 2.605-2.656.167-.429.414-1.055.644-1.517a10.098 10.098 0 0 1-.052-1.086c0-1.331.282-2.499 1.132-3.368.397-.406.89-.717 1.474-.952C7.255 2.937 9.248 1.98 11.978 1.98c2.731 0 4.767.957 6.166 2.093.584.235 1.077.546 1.474.952.85.869 1.132 2.037 1.132 3.368 0 .368-.014.733-.052 1.086.23.462.477 1.088.644 1.517 1.258.364 2.233 1.721 2.605 2.656a.841.841 0 0 1 .053.22v2.869a.641.641 0 0 1-.078.256Zm-11.75-5.992h-.344a4.359 4.359 0 0 1-.355.508c-.77.947-1.918 1.492-3.508 1.492-1.725 0-2.989-.359-3.782-1.259a2.137 2.137 0 0 1-.085-.104L4 11.746v6.585c1.435.779 4.514 2.179 8 2.179 3.486 0 6.565-1.4 8-2.179v-6.585l-.098-.104s-.033.045-.085.104c-.793.9-2.057 1.259-3.782 1.259-1.59 0-2.738-.545-3.508-1.492a4.359 4.359 0 0 1-.355-.508Zm2.328 3.25c.549 0 1 .451 1 1v2c0 .549-.451 1-1 1-.549 0-1-.451-1-1v-2c0-.549.451-1 1-1Zm-5 0c.549 0 1 .451 1 1v2c0 .549-.451 1-1 1-.549 0-1-.451-1-1v-2c0-.549.451-1 1-1Zm3.313-6.185c.136 1.057.403 1.913.878 2.497.442.544 1.134.938 2.344.938 1.573 0 2.292-.337 2.657-.751.384-.435.558-1.15.558-2.361 0-1.14-.243-1.847-.705-2.319-.477-.488-1.319-.862-2.824-1.025-1.487-.161-2.192.138-2.533.529-.269.307-.437.808-.438 1.578v.021c0 .265.021.562.063.893Zm-1.626 0c.042-.331.063-.628.063-.894v-.02c-.001-.77-.169-1.271-.438-1.578-.341-.391-1.046-.69-2.533-.529-1.505.163-2.347.537-2.824 1.025-.462.472-.705 1.179-.705 2.319 0 1.211.175 1.926.558 2.361.365.414 1.084.751 2.657.751 1.21 0 1.902-.394 2.344-.938.475-.584.742-1.44.878-2.497Z"/></svg>
9
+ </div>`}t.innerHTML=s}async function fe(){await t(`/api/settings`,`PUT`,{fallbackOrder:[...document.querySelectorAll(`#fallbackOrderList select`)].map(e=>e.value).filter(Boolean)})}async function _(){try{let e=await n(`/api/mcp`);if(!e)return;let t=document.getElementById(`mcpServerList`);if(!t)return;let r=Object.entries(e.servers||{});if(!r.length){t.textContent=o(`mcp.noServers`);return}t.innerHTML=r.map(([e,t])=>`<div style="padding:2px 0">• <b>${a(e)}</b> <span style="opacity:.6">${a(t.command)} ${(t.args||[]).slice(0,2).map(e=>a(e)).join(` `)}</span></div>`).join(``)}catch{}}async function pe(){let e=document.getElementById(`mcpSyncResult`);if(e){e.style.display=`block`,e.textContent=o(`mcp.syncing`);try{let n=await t(`/api/mcp/sync`,`POST`,{});if(!n){e.innerHTML=`${i.error} sync failed`;return}let r=n.results||{};e.innerHTML=Object.entries(r).map(([e,t])=>`${t?i.check:i.skip} ${a(e)}`).join(` &nbsp; `)}catch(t){e.innerHTML=`${i.error} ${a(t.message)}`}}}async function me(){let e=document.getElementById(`mcpSyncResult`);if(e){e.style.display=`block`,e.textContent=o(`mcp.installing`);try{let n=await t(`/api/mcp/install`,`POST`,{});if(!n){e.innerHTML=`${i.error} install failed`;return}e.innerHTML=Object.entries(n.results||{}).map(([e,t])=>`${t.status===`installed`?i.check:t.status===`skip`?i.skip:i.error} <b>${a(e)}</b>: ${a(t.status)}${t.bin?` ${i.arrowRight} `+a(t.bin):``}`).join(`<br>`),_()}catch(t){e.innerHTML=`${i.error} ${a(t.message)}`}}}var he=`<svg height="1em" style="flex:none;line-height:1" viewBox="0 0 24 24" width="1em" xmlns="http://www.w3.org/2000/svg"><title>Claude</title><path d="M4.709 15.955l4.72-2.647.08-.23-.08-.128H9.2l-.79-.048-2.698-.073-2.339-.097-2.266-.122-.571-.121L0 11.784l.055-.352.48-.321.686.06 1.52.103 2.278.158 1.652.097 2.449.255h.389l.055-.157-.134-.098-.103-.097-2.358-1.596-2.552-1.688-1.336-.972-.724-.491-.364-.462-.158-1.008.656-.722.881.06.225.061.893.686 1.908 1.476 2.491 1.833.365.304.145-.103.019-.073-.164-.274-1.355-2.446-1.446-2.49-.644-1.032-.17-.619a2.97 2.97 0 01-.104-.729L6.283.134 6.696 0l.996.134.42.364.62 1.414 1.002 2.229 1.555 3.03.456.898.243.832.091.255h.158V9.01l.128-1.706.237-2.095.23-2.695.08-.76.376-.91.747-.492.584.28.48.685-.067.444-.286 1.851-.559 2.903-.364 1.942h.212l.243-.242.985-1.306 1.652-2.064.73-.82.85-.904.547-.431h1.033l.76 1.129-.34 1.166-1.064 1.347-.881 1.142-1.264 1.7-.79 1.36.073.11.188-.02 2.856-.606 1.543-.28 1.841-.315.833.388.091.395-.328.807-1.969.486-2.309.462-3.439.813-.042.03.049.061 1.549.146.662.036h1.622l3.02.225.79.522.474.638-.079.485-1.215.62-1.64-.389-3.829-.91-1.312-.329h-.182v.11l1.093 1.068 2.006 1.81 2.509 2.33.127.578-.322.455-.34-.049-2.205-1.657-.851-.747-1.926-1.62h-.128v.17l.444.649 2.345 3.521.122 1.08-.17.353-.608.213-.668-.122-1.374-1.925-1.415-2.167-1.143-1.943-.14.08-.674 7.254-.316.37-.729.28-.607-.461-.322-.747.322-1.476.389-1.924.315-1.53.286-1.9.17-.632-.012-.042-.14.018-1.434 1.967-2.18 2.945-1.726 1.845-.414.164-.717-.37.067-.662.401-.589 2.388-3.036 1.44-1.882.93-1.086-.006-.158h-.055L4.132 18.56l-1.13.146-.487-.456.061-.746.231-.243 1.908-1.312-.006.006z" fill="#D97757" fill-rule="nonzero"></path></svg>`,v=`<svg fill="currentColor" fill-rule="evenodd" height="1em" style="flex:none;line-height:1" viewBox="0 0 24 24" width="1em" xmlns="http://www.w3.org/2000/svg"><title>OpenAI</title><path d="M9.205 8.658v-2.26c0-.19.072-.333.238-.428l4.543-2.616c.619-.357 1.356-.523 2.117-.523 2.854 0 4.662 2.212 4.662 4.566 0 .167 0 .357-.024.547l-4.71-2.759a.797.797 0 00-.856 0l-5.97 3.473zm10.609 8.8V12.06c0-.333-.143-.57-.429-.737l-5.97-3.473 1.95-1.118a.433.433 0 01.476 0l4.543 2.617c1.309.76 2.189 2.378 2.189 3.948 0 1.808-1.07 3.473-2.76 4.163zM7.802 12.703l-1.95-1.142c-.167-.095-.239-.238-.239-.428V5.899c0-2.545 1.95-4.472 4.591-4.472 1 0 1.927.333 2.712.928L8.23 5.067c-.285.166-.428.404-.428.737v6.898zM12 15.128l-2.795-1.57v-3.33L12 8.658l2.795 1.57v3.33L12 15.128zm1.796 7.23c-1 0-1.927-.332-2.712-.927l4.686-2.712c.285-.166.428-.404.428-.737v-6.898l1.974 1.142c.167.095.238.238.238.428v5.233c0 2.545-1.974 4.472-4.614 4.472zm-5.637-5.303l-4.544-2.617c-1.308-.761-2.188-2.378-2.188-3.948A4.482 4.482 0 014.21 6.327v5.423c0 .333.143.571.428.738l5.947 3.449-1.95 1.118a.432.432 0 01-.476 0zm-.262 3.9c-2.688 0-4.662-2.021-4.662-4.519 0-.19.024-.38.047-.57l4.686 2.71c.286.167.571.167.856 0l5.97-3.448v2.26c0 .19-.07.333-.237.428l-4.543 2.616c-.619.357-1.356.523-2.117.523zm5.899 2.83a5.947 5.947 0 005.827-4.756C22.287 18.339 24 15.84 24 13.296c0-1.665-.713-3.282-1.998-4.448.119-.5.19-.999.19-1.498 0-3.401-2.759-5.947-5.946-5.947-.642 0-1.26.095-1.88.31A5.962 5.962 0 0010.205 0a5.947 5.947 0 00-5.827 4.757C1.713 5.447 0 7.945 0 10.49c0 1.666.713 3.283 1.998 4.448-.119.5-.19 1-.19 1.499 0 3.401 2.759 5.946 5.946 5.946.642 0 1.26-.095 1.88-.309a5.96 5.96 0 004.162 1.713z"></path></svg>`,ge=`<svg height="1em" style="flex:none;line-height:1" viewBox="0 0 24 24" width="1em" xmlns="http://www.w3.org/2000/svg"><title>Gemini</title><path d="M20.616 10.835a14.147 14.147 0 01-4.45-3.001 14.111 14.111 0 01-3.678-6.452.503.503 0 00-.975 0 14.134 14.134 0 01-3.679 6.452 14.155 14.155 0 01-4.45 3.001c-.65.28-1.318.505-2.002.678a.502.502 0 000 .975c.684.172 1.35.397 2.002.677a14.147 14.147 0 014.45 3.001 14.112 14.112 0 013.679 6.453.502.502 0 00.975 0c.172-.685.397-1.351.677-2.003a14.145 14.145 0 013.001-4.45 14.113 14.113 0 016.453-3.678.503.503 0 000-.975 13.245 13.245 0 01-2.003-.678z" fill="#3186FF"></path><path d="M20.616 10.835a14.147 14.147 0 01-4.45-3.001 14.111 14.111 0 01-3.678-6.452.503.503 0 00-.975 0 14.134 14.134 0 01-3.679 6.452 14.155 14.155 0 01-4.45 3.001c-.65.28-1.318.505-2.002.678a.502.502 0 000 .975c.684.172 1.35.397 2.002.677a14.147 14.147 0 014.45 3.001 14.112 14.112 0 013.679 6.453.502.502 0 00.975 0c.172-.685.397-1.351.677-2.003a14.145 14.145 0 013.001-4.45 14.113 14.113 0 016.453-3.678.503.503 0 000-.975 13.245 13.245 0 01-2.003-.678z" fill="url(#lobe-icons-gemini-0-_R_0_)"></path><path d="M20.616 10.835a14.147 14.147 0 01-4.45-3.001 14.111 14.111 0 01-3.678-6.452.503.503 0 00-.975 0 14.134 14.134 0 01-3.679 6.452 14.155 14.155 0 01-4.45 3.001c-.65.28-1.318.505-2.002.678a.502.502 0 000 .975c.684.172 1.35.397 2.002.677a14.147 14.147 0 014.45 3.001 14.112 14.112 0 013.679 6.453.502.502 0 00.975 0c.172-.685.397-1.351.677-2.003a14.145 14.145 0 013.001-4.45 14.113 14.113 0 016.453-3.678.503.503 0 000-.975 13.245 13.245 0 01-2.003-.678z" fill="url(#lobe-icons-gemini-1-_R_0_)"></path><path d="M20.616 10.835a14.147 14.147 0 01-4.45-3.001 14.111 14.111 0 01-3.678-6.452.503.503 0 00-.975 0 14.134 14.134 0 01-3.679 6.452 14.155 14.155 0 01-4.45 3.001c-.65.28-1.318.505-2.002.678a.502.502 0 000 .975c.684.172 1.35.397 2.002.677a14.147 14.147 0 014.45 3.001 14.112 14.112 0 013.679 6.453.502.502 0 00.975 0c.172-.685.397-1.351.677-2.003a14.145 14.145 0 013.001-4.45 14.113 14.113 0 016.453-3.678.503.503 0 000-.975 13.245 13.245 0 01-2.003-.678z" fill="url(#lobe-icons-gemini-2-_R_0_)"></path><defs><linearGradient gradientUnits="userSpaceOnUse" id="lobe-icons-gemini-0-_R_0_" x1="7" x2="11" y1="15.5" y2="12"><stop stop-color="#08B962"></stop><stop offset="1" stop-color="#08B962" stop-opacity="0"></stop></linearGradient><linearGradient gradientUnits="userSpaceOnUse" id="lobe-icons-gemini-1-_R_0_" x1="8" x2="11.5" y1="5.5" y2="11"><stop stop-color="#F94543"></stop><stop offset="1" stop-color="#F94543" stop-opacity="0"></stop></linearGradient><linearGradient gradientUnits="userSpaceOnUse" id="lobe-icons-gemini-2-_R_0_" x1="3.5" x2="17.5" y1="13.5" y2="12"><stop stop-color="#FABC12"></stop><stop offset=".46" stop-color="#FABC12" stop-opacity="0"></stop></linearGradient></defs></svg>`,_e=`<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" fill="currentColor"><title>GitHub Copilot</title><path d="M23.922 16.997C23.061 18.492 18.063 22.02 12 22.02 5.937 22.02.939 18.492.078 16.997A.641.641 0 0 1 0 16.741v-2.869a.883.883 0 0 1 .053-.22c.372-.935 1.347-2.292 2.605-2.656.167-.429.414-1.055.644-1.517a10.098 10.098 0 0 1-.052-1.086c0-1.331.282-2.499 1.132-3.368.397-.406.89-.717 1.474-.952C7.255 2.937 9.248 1.98 11.978 1.98c2.731 0 4.767.957 6.166 2.093.584.235 1.077.546 1.474.952.85.869 1.132 2.037 1.132 3.368 0 .368-.014.733-.052 1.086.23.462.477 1.088.644 1.517 1.258.364 2.233 1.721 2.605 2.656a.841.841 0 0 1 .053.22v2.869a.641.641 0 0 1-.078.256Zm-11.75-5.992h-.344a4.359 4.359 0 0 1-.355.508c-.77.947-1.918 1.492-3.508 1.492-1.725 0-2.989-.359-3.782-1.259a2.137 2.137 0 0 1-.085-.104L4 11.746v6.585c1.435.779 4.514 2.179 8 2.179 3.486 0 6.565-1.4 8-2.179v-6.585l-.098-.104s-.033.045-.085.104c-.793.9-2.057 1.259-3.782 1.259-1.59 0-2.738-.545-3.508-1.492a4.359 4.359 0 0 1-.355-.508Zm2.328 3.25c.549 0 1 .451 1 1v2c0 .549-.451 1-1 1-.549 0-1-.451-1-1v-2c0-.549.451-1 1-1Zm-5 0c.549 0 1 .451 1 1v2c0 .549-.451 1-1 1-.549 0-1-.451-1-1v-2c0-.549.451-1 1-1Zm3.313-6.185c.136 1.057.403 1.913.878 2.497.442.544 1.134.938 2.344.938 1.573 0 2.292-.337 2.657-.751.384-.435.558-1.15.558-2.361 0-1.14-.243-1.847-.705-2.319-.477-.488-1.319-.862-2.824-1.025-1.487-.161-2.192.138-2.533.529-.269.307-.437.808-.438 1.578v.021c0 .265.021.562.063.893Zm-1.626 0c.042-.331.063-.628.063-.894v-.02c-.001-.77-.169-1.271-.438-1.578-.341-.391-1.046-.69-2.533-.529-1.505.163-2.347.537-2.824 1.025-.462.472-.705 1.179-.705 2.319 0 1.211.175 1.926.558 2.361.365.414 1.084.751 2.657.751 1.21 0 1.902-.394 2.344-.938.475-.584.742-1.44.878-2.497Z"/></svg>
10
10
  `,ve=`<svg fill="currentColor" fill-rule="evenodd" height="1em" style="flex:none;line-height:1" viewBox="0 0 24 24" width="1em" xmlns="http://www.w3.org/2000/svg"><title>Claude</title><path d="M4.709 15.955l4.72-2.647.08-.23-.08-.128H9.2l-.79-.048-2.698-.073-2.339-.097-2.266-.122-.571-.121L0 11.784l.055-.352.48-.321.686.06 1.52.103 2.278.158 1.652.097 2.449.255h.389l.055-.157-.134-.098-.103-.097-2.358-1.596-2.552-1.688-1.336-.972-.724-.491-.364-.462-.158-1.008.656-.722.881.06.225.061.893.686 1.908 1.476 2.491 1.833.365.304.145-.103.019-.073-.164-.274-1.355-2.446-1.446-2.49-.644-1.032-.17-.619a2.97 2.97 0 01-.104-.729L6.283.134 6.696 0l.996.134.42.364.62 1.414 1.002 2.229 1.555 3.03.456.898.243.832.091.255h.158V9.01l.128-1.706.237-2.095.23-2.695.08-.76.376-.91.747-.492.584.28.48.685-.067.444-.286 1.851-.559 2.903-.364 1.942h.212l.243-.242.985-1.306 1.652-2.064.73-.82.85-.904.547-.431h1.033l.76 1.129-.34 1.166-1.064 1.347-.881 1.142-1.264 1.7-.79 1.36.073.11.188-.02 2.856-.606 1.543-.28 1.841-.315.833.388.091.395-.328.807-1.969.486-2.309.462-3.439.813-.042.03.049.061 1.549.146.662.036h1.622l3.02.225.79.522.474.638-.079.485-1.215.62-1.64-.389-3.829-.91-1.312-.329h-.182v.11l1.093 1.068 2.006 1.81 2.509 2.33.127.578-.322.455-.34-.049-2.205-1.657-.851-.747-1.926-1.62h-.128v.17l.444.649 2.345 3.521.122 1.08-.17.353-.608.213-.668-.122-1.374-1.925-1.415-2.167-1.143-1.943-.14.08-.674 7.254-.316.37-.729.28-.607-.461-.322-.747.322-1.476.389-1.924.315-1.53.286-1.9.17-.632-.012-.042-.14.018-1.434 1.967-2.18 2.945-1.726 1.845-.414.164-.717-.37.067-.662.401-.589 2.388-3.036 1.44-1.882.93-1.086-.006-.158h-.055L4.132 18.56l-1.13.146-.487-.456.061-.746.231-.243 1.908-1.312-.006.006z"></path></svg>`,ye=`<svg fill="currentColor" fill-rule="evenodd" height="1em" style="flex:none;line-height:1" viewBox="0 0 24 24" width="1em" xmlns="http://www.w3.org/2000/svg"><title>Gemini</title><path d="M20.616 10.835a14.147 14.147 0 01-4.45-3.001 14.111 14.111 0 01-3.678-6.452.503.503 0 00-.975 0 14.134 14.134 0 01-3.679 6.452 14.155 14.155 0 01-4.45 3.001c-.65.28-1.318.505-2.002.678a.502.502 0 000 .975c.684.172 1.35.397 2.002.677a14.147 14.147 0 014.45 3.001 14.112 14.112 0 013.679 6.453.502.502 0 00.975 0c.172-.685.397-1.351.677-2.003a14.145 14.145 0 013.001-4.45 14.113 14.113 0 016.453-3.678.503.503 0 000-.975 13.245 13.245 0 01-2.003-.678z"></path></svg>`,be=`<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" fill="currentColor"><title>GitHub Copilot</title><path d="M23.922 16.997C23.061 18.492 18.063 22.02 12 22.02 5.937 22.02.939 18.492.078 16.997A.641.641 0 0 1 0 16.741v-2.869a.883.883 0 0 1 .053-.22c.372-.935 1.347-2.292 2.605-2.656.167-.429.414-1.055.644-1.517a10.098 10.098 0 0 1-.052-1.086c0-1.331.282-2.499 1.132-3.368.397-.406.89-.717 1.474-.952C7.255 2.937 9.248 1.98 11.978 1.98c2.731 0 4.767.957 6.166 2.093.584.235 1.077.546 1.474.952.85.869 1.132 2.037 1.132 3.368 0 .368-.014.733-.052 1.086.23.462.477 1.088.644 1.517 1.258.364 2.233 1.721 2.605 2.656a.841.841 0 0 1 .053.22v2.869a.641.641 0 0 1-.078.256Zm-11.75-5.992h-.344a4.359 4.359 0 0 1-.355.508c-.77.947-1.918 1.492-3.508 1.492-1.725 0-2.989-.359-3.782-1.259a2.137 2.137 0 0 1-.085-.104L4 11.746v6.585c1.435.779 4.514 2.179 8 2.179 3.486 0 6.565-1.4 8-2.179v-6.585l-.098-.104s-.033.045-.085.104c-.793.9-2.057 1.259-3.782 1.259-1.59 0-2.738-.545-3.508-1.492a4.359 4.359 0 0 1-.355-.508Zm2.328 3.25c.549 0 1 .451 1 1v2c0 .549-.451 1-1 1-.549 0-1-.451-1-1v-2c0-.549.451-1 1-1Zm-5 0c.549 0 1 .451 1 1v2c0 .549-.451 1-1 1-.549 0-1-.451-1-1v-2c0-.549.451-1 1-1Zm3.313-6.185c.136 1.057.403 1.913.878 2.497.442.544 1.134.938 2.344.938 1.573 0 2.292-.337 2.657-.751.384-.435.558-1.15.558-2.361 0-1.14-.243-1.847-.705-2.319-.477-.488-1.319-.862-2.824-1.025-1.487-.161-2.192.138-2.533.529-.269.307-.437.808-.438 1.578v.021c0 .265.021.562.063.893Zm-1.626 0c.042-.331.063-.628.063-.894v-.02c-.001-.77-.169-1.271-.438-1.578-.341-.391-1.046-.69-2.533-.529-1.505.163-2.347.537-2.824 1.025-.462.472-.705 1.179-.705 2.319 0 1.211.175 1.926.558 2.361.365.414 1.084.751 2.657.751 1.21 0 1.902-.394 2.344-.938.475-.584.742-1.44.878-2.497Z"/></svg>
11
11
  `,y=`<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" fill="currentColor"><title>Discord</title><path d="M20.317 4.3698a19.7913 19.7913 0 00-4.8851-1.5152.0741.0741 0 00-.0785.0371c-.211.3753-.4447.8648-.6083 1.2495-1.8447-.2762-3.68-.2762-5.4868 0-.1636-.3933-.4058-.8742-.6177-1.2495a.077.077 0 00-.0785-.037 19.7363 19.7363 0 00-4.8852 1.515.0699.0699 0 00-.0321.0277C.5334 9.0458-.319 13.5799.0992 18.0578a.0824.0824 0 00.0312.0561c2.0528 1.5076 4.0413 2.4228 5.9929 3.0294a.0777.0777 0 00.0842-.0276c.4616-.6304.8731-1.2952 1.226-1.9942a.076.076 0 00-.0416-.1057c-.6528-.2476-1.2743-.5495-1.8722-.8923a.077.077 0 01-.0076-.1277c.1258-.0943.2517-.1923.3718-.2914a.0743.0743 0 01.0776-.0105c3.9278 1.7933 8.18 1.7933 12.0614 0a.0739.0739 0 01.0785.0095c.1202.099.246.1981.3728.2924a.077.077 0 01-.0066.1276 12.2986 12.2986 0 01-1.873.8914.0766.0766 0 00-.0407.1067c.3604.698.7719 1.3628 1.225 1.9932a.076.076 0 00.0842.0286c1.961-.6067 3.9495-1.5219 6.0023-3.0294a.077.077 0 00.0313-.0552c.5004-5.177-.8382-9.6739-3.5485-13.6604a.061.061 0 00-.0312-.0286zM8.02 15.3312c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9555-2.4189 2.157-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.9555 2.4189-2.1569 2.4189zm7.9748 0c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9554-2.4189 2.1569-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.946 2.4189-2.1568 2.4189Z"/></svg>`,b=`<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" fill="currentColor"><title>Telegram</title><path d="M11.944 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0a12 12 0 0 0-.056 0zm4.962 7.224c.1-.002.321.023.465.14a.506.506 0 0 1 .171.325c.016.093.036.306.02.472-.18 1.898-.962 6.502-1.36 8.627-.168.9-.499 1.201-.82 1.23-.696.065-1.225-.46-1.9-.902-1.056-.693-1.653-1.124-2.678-1.8-1.185-.78-.417-1.21.258-1.91.177-.184 3.247-2.977 3.307-3.23.007-.032.014-.15-.056-.212s-.174-.041-.249-.024c-.106.024-1.793 1.14-5.061 3.345-.48.33-.913.49-1.302.48-.428-.008-1.252-.241-1.865-.44-.752-.245-1.349-.374-1.297-.789.027-.216.325-.437.893-.663 3.498-1.524 5.83-2.529 6.998-3.014 3.332-1.386 4.025-1.627 4.476-1.635z"/></svg>`,x=`<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="4 17 10 11 4 5"/><line x1="12" y1="19" x2="20" y2="19"/></svg>
12
- `,xe={claude:{color:he,mono:ve,label:`Claude`},openai:{color:v,mono:v,label:`OpenAI`},gemini:{color:ge,mono:ye,label:`Gemini`},copilot:{color:_e,mono:be,label:`GitHub Copilot`},codex:{color:v,mono:v,label:`Codex (OpenAI)`},opencode:{color:x,mono:x,label:`OpenCode`},discord:{color:y,mono:y,label:`Discord`},telegram:{color:b,mono:b,label:`Telegram`}};function S(e,t=`color`){let n=e.toLowerCase().replace(/[-_\s]/g,``),r;if(n===`claude`||n.startsWith(`claude`))r=`claude`;else if(n===`gemini`||n.startsWith(`gemini`))r=`gemini`;else if(n.startsWith(`copilot`)||n===`githubcopilot`)r=`copilot`;else if(n===`codex`)r=`codex`;else if(n===`opencode`)r=`opencode`;else if(n===`openai`||n.startsWith(`gpt`)||n.startsWith(`o1`)||n.startsWith(`o3`)||n.startsWith(`o4`))r=`openai`;else if(n===`discord`)r=`discord`;else if(n===`telegram`)r=`telegram`;else return``;let i=xe[r];return t===`mono`?i.mono:i.color}function Se(e=document.body){let t=e.querySelectorAll(`[data-provider]`);for(let e of t){let t=S(e.dataset.provider||``);t&&(e.innerHTML=t,e.classList.add(`cli-provider-icon`))}}var C=null;function w(e){let t=document.getElementById(`headerCli`);if(!t)return;let n=S(e);t.innerHTML=n?`${n} ${i(e)}`:i(e)}function Ce(e){let t=e.finally(()=>{C===t&&(C=null)});return C=t,t}async function we(){let e=C;e&&await e}function T(e){return e.charAt(0).toUpperCase()+e.slice(1)}function E(e){return document.getElementById(`model`+T(e))}function D(e){return document.getElementById(`customModel`+T(e))}function O(e){return document.getElementById(`effort`+T(e))}function k(e,t,{includeCustom:n=!1,includeDefault:r=!1,selected:a=``}={}){if(!e)return;let s=r?`<option value="default">default</option>`:``,c=n?`<option value="__custom__">${o(`model.customOption`)}</option>`:``;e.innerHTML=s+(t||[]).map(e=>`<option value="${i(e)}">${i(e)}</option>`).join(``)+c,a&&Array.from(e.options).some(e=>e.value===a)&&(e.value=a)}function A(e,t){if(!e||!t||Array.from(e.options).some(e=>e.value===t))return;let n=document.createElement(`option`);n.value=t,n.textContent=t;let r=e.querySelector(`option[value="__custom__"]`);r?e.insertBefore(n,r):e.appendChild(n)}function Te(e=null){let t=d(),n=document.getElementById(`selCli`);if(n){let r=e?.cli||n.value||t[0]||`claude`;n.innerHTML=t.map(e=>{let t=u(e)?.label||e;return`<option value="${i(e)}">${i(t)}</option>`}).join(``),Array.from(n.options).some(e=>e.value===r)&&(n.value=r)}let r=document.getElementById(`flushCli`);if(r){let n=e?.memory?.cli||r.value||``;r.innerHTML=`<option value="">(active CLI)</option>`+t.map(e=>`<option value="${i(e)}">${i(e)}</option>`).join(``),Array.from(r.options).some(e=>e.value===n)&&(r.value=n)}}function j(e,t){return(t||``).trim()}function Ee(e=null){for(let t of d()){let n=E(t);if(n){let r=j(t,e?.perCli?.[t]?.model||n.value||``);k(n,f[t]||[],{includeCustom:!0,selected:r}),r&&!Array.from(n.options).some(e=>e.value===r)&&(A(n,r),n.value=r)}let r=O(t);if(r){let n=u(t),a=[``].concat(n?.efforts||[]),o=e?.perCli?.[t]?.effort||r.value||``,s=[...new Set(a)],c=n?.efforts?.length===0&&n?.effortNote?n.effortNote:`— none`;r.innerHTML=s.map(e=>e?`<option value="${i(e)}">${i(e)}</option>`:`<option value="">${i(c)}</option>`).join(``),n?.effortNote&&(r.title=n.effortNote),r.disabled=n?.efforts?.length===0&&!!n?.effortNote,Array.from(r.options).some(e=>e.value===o)&&(r.value=o)}}}function M(e,t=``){let n=document.getElementById(`selEffort`);if(!n)return;let r=u(e);if(r?.effortNote){n.innerHTML=`<option value="">${i(r.effortNote)}</option>`,n.title=r.effortNote,n.disabled=!0;return}let a=[``].concat(r?.efforts||[]);n.innerHTML=[...new Set(a)].map(e=>e?`<option value="${i(e)}">${i(e)}</option>`:`<option value="">— none</option>`).join(``),n.disabled=!1,n.title=``,Array.from(n.options).some(e=>e.value===t)&&(n.value=t)}async function N(){await l();let e=await n(`/api/settings`);if(!e)return;s(e.locale??``),Te(e),Ee(e);let t=document.getElementById(`selCli`);t&&Array.from(t.options).some(t=>t.value===e.cli)&&(t.value=e.cli);let r=document.getElementById(`inpCwd`);r&&(r.textContent=e.workingDir);let a=document.getElementById(`headerCli`);if(a){let t=S(e.cli);a.innerHTML=t?`${t} ${i(e.cli)}`:i(e.cli)}if(F(e.permissions,!1),e.perCli)for(let[t,n]of Object.entries(e.perCli)){let e=E(t),r=O(t);if(e&&n.model){let r=j(t,n.model);A(e,r),e.value=r}if(r&&(r.value=n.effort||``),t===`codex`&&n.fastMode!==void 0&&(document.getElementById(`codexFastOn`)?.classList.toggle(`active`,n.fastMode),document.getElementById(`codexFastOff`)?.classList.toggle(`active`,!n.fastMode)),t===`codex`){let e=!!n.contextWindow;document.getElementById(`codexCtxOn`)?.classList.toggle(`active`,e),document.getElementById(`codexCtxOff`)?.classList.toggle(`active`,!e);let t=document.getElementById(`codexCtxValues`);t&&(t.style.display=e?``:`none`);let r=document.getElementById(`codexCtxWindow`),i=document.getElementById(`codexCtxCompact`);r&&n.contextWindowSize&&(r.value=String(n.contextWindowSize)),i&&n.contextCompactLimit&&(i.value=String(n.contextCompactLimit))}if(t===`claude`){let e=!!(n.model&&String(n.model).endsWith(`[1m]`));document.getElementById(`claude1mOn`)?.classList.toggle(`active`,e),document.getElementById(`claude1mOff`)?.classList.toggle(`active`,!e)}}B(!1);let o=e.activeOverrides?.[e.cli]||{},c=e.perCli?.[e.cli]||{},u=o.model||c.model,d=o.effort||c.effort||``,f=document.getElementById(`selModel`);if(u&&f){let t=j(e.cli,u);t&&!Array.from(f.options).some(e=>e.value===t)&&A(f,t),f.value=t}M(e.cli,d),ie(e),le(e),de(e),g(e),_(),p(e.stt||{})}async function P(){let e={cli:document.getElementById(`selCli`)?.value||`claude`};return Ce((async()=>{let n=await t(`/api/settings`,`PUT`,e);if(!n){await N();return}let r=n.cli||e.cli,i=document.getElementById(`selCli`);i&&Array.from(i.options).some(e=>e.value===r)&&(i.value=r),w(r)})())}function F(e,t=!0){t&&r(`/api/settings`,`PUT`,{permissions:`auto`})}function I(e){let t=E(e);return t?t.value===`__custom__`?D(e)?.value?.trim()||t.options[0]?.value||`default`:t.value:`default`}function L(e,t){let n=D(e);n&&(t.value===`__custom__`?(n.style.display=`block`,n.focus()):(n.style.display=`none`,e===`claude`&&R(t.value),z()))}function R(e){let t=!!(e&&e.endsWith(`[1m]`));document.getElementById(`claude1mOn`)?.classList.toggle(`active`,t),document.getElementById(`claude1mOff`)?.classList.toggle(`active`,!t)}function De(e,t){let n=t.value.trim();if(!n)return;let r=E(e);r&&(A(r,n),r.value=n,t.style.display=`none`,e===`claude`&&R(n),z())}async function z(){let e={};for(let t of d()){if(!E(t))continue;let n=O(t),r={model:I(t),effort:n?n.value:``};if(t===`codex`){r.fastMode=document.getElementById(`codexFastOn`)?.classList.contains(`active`)??!1,r.contextWindow=document.getElementById(`codexCtxOn`)?.classList.contains(`active`)??!1;let e=document.getElementById(`codexCtxWindow`),t=document.getElementById(`codexCtxCompact`);r.contextWindowSize=parseInt(e?.value||`1000000`,10),r.contextCompactLimit=parseInt(t?.value||`900000`,10)}e[t]=r}await t(`/api/settings`,`PUT`,{perCli:e})}function B(e=!0){let t=document.getElementById(`selCli`)?.value||`claude`,r=f[t]||[],i=document.getElementById(`selModel`);k(i,r,{includeCustom:!0,includeDefault:!0}),w(t),M(t);let a=document.getElementById(`selModelCustom`);a&&a.remove();let s=document.createElement(`input`);if(s.type=`text`,s.id=`selModelCustom`,s.className=`custom-model-input`,s.placeholder=o(`model.placeholder`),s.style.display=`none`,s.onchange=function(){let e=this.value.trim();!e||!i||(A(i,e),i.value=e,this.style.display=`none`,V())},!i){e&&P();return}i.parentElement?.appendChild(s),i.onchange=function(){this.value===`__custom__`?(s.style.display=`block`,s.focus()):(s.style.display=`none`,V())},n(`/api/settings`).then(e=>{if(!e)return;let n=e.activeOverrides?.[t]||{},r=e.perCli?.[t]||{},a=n.model||r.model,o=n.effort||r.effort||``;if(a&&i){let e=j(t,a);A(i,e),i.value=e}M(t,o)}),e&&P()}async function V(){let e=document.getElementById(`selCli`)?.value||`claude`,n=document.getElementById(`selModel`)?.value||`default`;n===`__custom__`&&(n=document.getElementById(`selModelCustom`)?.value?.trim()||`default`);let r=document.getElementById(`selEffort`),i={};i[e]={model:n},r&&!r.disabled&&(i[e].effort=r.value||``),await t(`/api/settings`,`PUT`,{activeOverrides:i})}function Oe(){let e=f[document.getElementById(`flushCli`)?.value||document.getElementById(`selCli`)?.value||`claude`]||[];k(document.getElementById(`flushModel`),e,{includeDefault:!0}),H(),Ae()}async function ke(){let e=await n(`/api/memory-files`);if(!e)return;let t=document.getElementById(`flushCli`),r=document.getElementById(`flushModel`);t&&e.cli&&(t.value=e.cli),k(r,f[e.cli||document.getElementById(`selCli`)?.value||`claude`]||[],{includeDefault:!0}),r&&e.model&&(A(r,e.model),r.value=e.model),H()}async function Ae(){await t(`/api/memory-files/settings`,`PUT`,{cli:document.getElementById(`flushCli`)?.value||``,model:document.getElementById(`flushModel`)?.value||``})}function H(){let e=document.getElementById(`flushAgentBadge`);if(!e)return;let t=document.getElementById(`flushCli`)?.value||``,n=document.getElementById(`flushModel`)?.value||``,r=t||document.getElementById(`selCli`)?.value||``,i=[];r&&i.push(t?r:`${r}*`),n&&n!==`default`&&i.push(n),e.textContent=i.length?`(${i.join(` / `)})`:``}var U=new Set([0,600,1800]),W=0,G=null;function K(){let e=Number(localStorage.getItem(`cliStatusInterval`)||W);return U.has(e)?e:W}function q(e=K()){let t=document.getElementById(`cliStatusInterval`);if(!t)return;let n=String(e);t.value=Array.from(t.options).some(e=>e.value===n)?n:String(W)}function J(){G!=null&&(window.clearInterval(G),G=null);let e=K();q(e),!(e<=0)&&(G=window.setInterval(()=>{document.hidden||!document.hasFocus()||Y(!0)},e*1e3))}function je(e){let t=Number(e),n=U.has(t)?t:W;localStorage.setItem(`cliStatusInterval`,String(n)),q(n),J()}function Me(e,t){return e===`gemini`?t===`Pro`||t===`P`?`P`:t===`Flash`||t===`F`?`F`:t:e===`copilot`&&(t===`Premium`||t===`Prem`||t.includes(`plus monthly subscriber quota`))?`30d`:t.replace(`-hour`,`h`).replace(`-day`,`d`).replace(` Sonnet`,``).replace(` Opus`,``)}async function Y(t=!1){let r=K();if(!t&&e.cliStatusCache&&r>0&&Date.now()-e.cliStatusTs<r*1e3){X({cliStatus:e.cliStatusCache?.cliStatus,quota:e.cliStatusCache?.quota});return}let i=document.getElementById(`cliStatusList`);i&&(i.innerHTML=`<div style="color:var(--text-dim);font-size:11px">Loading...</div>`);let[a,o]=await Promise.all([n(`/api/cli-status`),n(`/api/quota`)]);e.cliStatusCache={cliStatus:a,quota:o},e.cliStatusTs=Date.now(),X({cliStatus:a,quota:o})}function X(e){let{cliStatus:t,quota:r}=e,s=document.getElementById(`cliStatusList`),c={claude:{install:`npm i -g @anthropic-ai/claude-code`,auth:`claude auth`},codex:{install:`npm i -g @openai/codex`,auth:`codex login`},gemini:{install:`npm i -g @google/gemini-cli`,auth:`gemini (${o(`cli.gemini.auth`)})`},opencode:{install:`npm i -g opencode-ai`,auth:`opencode auth`},copilot:{install:`npm i -g copilot`,auth:o(`cli.copilot.authHint`)}},l=``;if(!t||typeof t!=`object`){s&&(s.innerHTML=`<div style="color:var(--text-dim);font-size:11px">Failed to load CLI status</div>`);return}for(let[e,n]of Object.entries(t)){let t=r?.[e],s;s=n.available?!t||t.error?`ok`:t.authenticated===!1?`warn`:`ok`:`missing`;let u=``;if(t?.account){let e=[];t.account.email&&e.push(t.account.email),t.account.type&&e.push(t.account.type),t.account.plan&&e.push(t.account.plan),t.account.tier&&e.push(t.account.tier),e.length&&(u=`<div style="font-size:10px;color:var(--text-dim);margin:2px 0 4px 16px">${i(e.join(` · `))}</div>`)}let d=``;if(!n.available||s===`warn`){let t=c[e];if(t){let e=!n.available,r=o(e?`cli.authRequired`:`cli.notAuthenticated`),a=e?`#ef4444`:`#fbbf24`;d=`
13
- <div style="font-size:10px;margin:4px 0 2px 16px;padding:6px 8px;background:var(--bg-dim, #1e1e2e);border-radius:4px;border-left:2px solid ${a}">
14
- <div style="color:${a};margin-bottom:3px">${r}</div>
15
- ${e?`<div style="color:var(--text-dim)"><code style="font-size:10px;background:var(--border);padding:1px 4px;border-radius:2px">${i(t.install)}</code></div>`:``}
16
- <div style="color:var(--text-dim)${e?`;margin-top:2px`:``}"><code style="font-size:10px;background:var(--border);padding:1px 4px;border-radius:2px">${i(t.auth)}</code></div>
12
+ `,xe={claude:{color:he,mono:ve,label:`Claude`},openai:{color:v,mono:v,label:`OpenAI`},gemini:{color:ge,mono:ye,label:`Gemini`},copilot:{color:_e,mono:be,label:`GitHub Copilot`},codex:{color:v,mono:v,label:`Codex (OpenAI)`},opencode:{color:x,mono:x,label:`OpenCode`},discord:{color:y,mono:y,label:`Discord`},telegram:{color:b,mono:b,label:`Telegram`}};function S(e,t=`color`){let n=e.toLowerCase().replace(/[-_\s]/g,``),r;if(n===`claude`||n.startsWith(`claude`))r=`claude`;else if(n===`gemini`||n.startsWith(`gemini`))r=`gemini`;else if(n.startsWith(`copilot`)||n===`githubcopilot`)r=`copilot`;else if(n===`codex`)r=`codex`;else if(n===`opencode`)r=`opencode`;else if(n===`openai`||n.startsWith(`gpt`)||n.startsWith(`o1`)||n.startsWith(`o3`)||n.startsWith(`o4`))r=`openai`;else if(n===`discord`)r=`discord`;else if(n===`telegram`)r=`telegram`;else return``;let i=xe[r];return t===`mono`?i.mono:i.color}function Se(e=document.body){let t=e.querySelectorAll(`[data-provider]`);for(let e of t){let t=S(e.dataset.provider||``);t&&(e.innerHTML=t,e.classList.add(`cli-provider-icon`))}}var C=null;function w(e){let t=document.getElementById(`headerCli`);if(!t)return;let n=S(e);t.innerHTML=n?`${n} ${a(e)}`:a(e)}function Ce(e){let t=e.finally(()=>{C===t&&(C=null)});return C=t,t}async function we(){let e=C;e&&await e}function T(e){return e.charAt(0).toUpperCase()+e.slice(1)}function E(e){return document.getElementById(`model`+T(e))}function D(e){return document.getElementById(`customModel`+T(e))}function O(e){return document.getElementById(`effort`+T(e))}function k(e,t,{includeCustom:n=!1,includeDefault:r=!1,selected:i=``}={}){if(!e)return;let s=r?`<option value="default">default</option>`:``,c=n?`<option value="__custom__">${o(`model.customOption`)}</option>`:``;e.innerHTML=s+(t||[]).map(e=>`<option value="${a(e)}">${a(e)}</option>`).join(``)+c,i&&Array.from(e.options).some(e=>e.value===i)&&(e.value=i)}function A(e,t){if(!e||!t||Array.from(e.options).some(e=>e.value===t))return;let n=document.createElement(`option`);n.value=t,n.textContent=t;let r=e.querySelector(`option[value="__custom__"]`);r?e.insertBefore(n,r):e.appendChild(n)}function Te(e=null){let t=d(),n=document.getElementById(`selCli`);if(n){let r=e?.cli||n.value||t[0]||`claude`;n.innerHTML=t.map(e=>{let t=u(e)?.label||e;return`<option value="${a(e)}">${a(t)}</option>`}).join(``),Array.from(n.options).some(e=>e.value===r)&&(n.value=r)}let r=document.getElementById(`flushCli`);if(r){let n=e?.memory?.cli||r.value||``;r.innerHTML=`<option value="">(active CLI)</option>`+t.map(e=>`<option value="${a(e)}">${a(e)}</option>`).join(``),Array.from(r.options).some(e=>e.value===n)&&(r.value=n)}}function j(e,t){return(t||``).trim()}function Ee(e=null){for(let t of d()){let n=E(t);if(n){let r=j(t,e?.perCli?.[t]?.model||n.value||``);k(n,f[t]||[],{includeCustom:!0,selected:r}),r&&!Array.from(n.options).some(e=>e.value===r)&&(A(n,r),n.value=r)}let r=O(t);if(r){let n=u(t),i=[``].concat(n?.efforts||[]),o=e?.perCli?.[t]?.effort||r.value||``,s=[...new Set(i)],c=n?.efforts?.length===0&&n?.effortNote?n.effortNote:`— none`;r.innerHTML=s.map(e=>e?`<option value="${a(e)}">${a(e)}</option>`:`<option value="">${a(c)}</option>`).join(``),n?.effortNote&&(r.title=n.effortNote),r.disabled=n?.efforts?.length===0&&!!n?.effortNote,Array.from(r.options).some(e=>e.value===o)&&(r.value=o)}}}function M(e,t=``){let n=document.getElementById(`selEffort`);if(!n)return;let r=u(e);if(r?.effortNote){n.innerHTML=`<option value="">${a(r.effortNote)}</option>`,n.title=r.effortNote,n.disabled=!0;return}let i=[``].concat(r?.efforts||[]);n.innerHTML=[...new Set(i)].map(e=>e?`<option value="${a(e)}">${a(e)}</option>`:`<option value="">— none</option>`).join(``),n.disabled=!1,n.title=``,Array.from(n.options).some(e=>e.value===t)&&(n.value=t)}async function N(){await l();let e=await n(`/api/settings`);if(!e)return;s(e.locale??``),Te(e),Ee(e);let t=document.getElementById(`selCli`);t&&Array.from(t.options).some(t=>t.value===e.cli)&&(t.value=e.cli);let r=document.getElementById(`inpCwd`);r&&(r.textContent=e.workingDir);let i=document.getElementById(`headerCli`);if(i){let t=S(e.cli);i.innerHTML=t?`${t} ${a(e.cli)}`:a(e.cli)}if(F(e.permissions,!1),e.perCli)for(let[t,n]of Object.entries(e.perCli)){let e=E(t),r=O(t);if(e&&n.model){let r=j(t,n.model);A(e,r),e.value=r}if(r&&(r.value=n.effort||``),t===`codex`&&n.fastMode!==void 0&&(document.getElementById(`codexFastOn`)?.classList.toggle(`active`,n.fastMode),document.getElementById(`codexFastOff`)?.classList.toggle(`active`,!n.fastMode)),t===`codex`){let e=!!n.contextWindow;document.getElementById(`codexCtxOn`)?.classList.toggle(`active`,e),document.getElementById(`codexCtxOff`)?.classList.toggle(`active`,!e);let t=document.getElementById(`codexCtxValues`);t&&(t.style.display=e?``:`none`);let r=document.getElementById(`codexCtxWindow`),i=document.getElementById(`codexCtxCompact`);r&&n.contextWindowSize&&(r.value=String(n.contextWindowSize)),i&&n.contextCompactLimit&&(i.value=String(n.contextCompactLimit))}if(t===`claude`){let e=!!(n.model&&String(n.model).endsWith(`[1m]`));document.getElementById(`claude1mOn`)?.classList.toggle(`active`,e),document.getElementById(`claude1mOff`)?.classList.toggle(`active`,!e)}}B(!1);let o=e.activeOverrides?.[e.cli]||{},c=e.perCli?.[e.cli]||{},u=o.model||c.model,d=o.effort||c.effort||``,f=document.getElementById(`selModel`);if(u&&f){let t=j(e.cli,u);t&&!Array.from(f.options).some(e=>e.value===t)&&A(f,t),f.value=t}M(e.cli,d),ie(e),le(e),de(e),g(e),_(),p(e.stt||{})}async function P(){let e={cli:document.getElementById(`selCli`)?.value||`claude`};return Ce((async()=>{let n=await t(`/api/settings`,`PUT`,e);if(!n){await N();return}let r=n.cli||e.cli,i=document.getElementById(`selCli`);i&&Array.from(i.options).some(e=>e.value===r)&&(i.value=r),w(r)})())}function F(e,t=!0){t&&r(`/api/settings`,`PUT`,{permissions:`auto`})}function I(e){let t=E(e);return t?t.value===`__custom__`?D(e)?.value?.trim()||t.options[0]?.value||`default`:t.value:`default`}function L(e,t){let n=D(e);n&&(t.value===`__custom__`?(n.style.display=`block`,n.focus()):(n.style.display=`none`,e===`claude`&&R(t.value),z()))}function R(e){let t=!!(e&&e.endsWith(`[1m]`));document.getElementById(`claude1mOn`)?.classList.toggle(`active`,t),document.getElementById(`claude1mOff`)?.classList.toggle(`active`,!t)}function De(e,t){let n=t.value.trim();if(!n)return;let r=E(e);r&&(A(r,n),r.value=n,t.style.display=`none`,e===`claude`&&R(n),z())}async function z(){let e={};for(let t of d()){if(!E(t))continue;let n=O(t),r={model:I(t),effort:n?n.value:``};if(t===`codex`){r.fastMode=document.getElementById(`codexFastOn`)?.classList.contains(`active`)??!1,r.contextWindow=document.getElementById(`codexCtxOn`)?.classList.contains(`active`)??!1;let e=document.getElementById(`codexCtxWindow`),t=document.getElementById(`codexCtxCompact`);r.contextWindowSize=parseInt(e?.value||`1000000`,10),r.contextCompactLimit=parseInt(t?.value||`900000`,10)}e[t]=r}await t(`/api/settings`,`PUT`,{perCli:e})}function B(e=!0){let t=document.getElementById(`selCli`)?.value||`claude`,r=f[t]||[],i=document.getElementById(`selModel`);k(i,r,{includeCustom:!0,includeDefault:!0}),w(t),M(t);let a=document.getElementById(`selModelCustom`);a&&a.remove();let s=document.createElement(`input`);if(s.type=`text`,s.id=`selModelCustom`,s.className=`custom-model-input`,s.placeholder=o(`model.placeholder`),s.style.display=`none`,s.onchange=function(){let e=this.value.trim();!e||!i||(A(i,e),i.value=e,this.style.display=`none`,V())},!i){e&&P();return}i.parentElement?.appendChild(s),i.onchange=function(){this.value===`__custom__`?(s.style.display=`block`,s.focus()):(s.style.display=`none`,V())},n(`/api/settings`).then(e=>{if(!e)return;let n=e.activeOverrides?.[t]||{},r=e.perCli?.[t]||{},a=n.model||r.model,o=n.effort||r.effort||``;if(a&&i){let e=j(t,a);A(i,e),i.value=e}M(t,o)}),e&&P()}async function V(){let e=document.getElementById(`selCli`)?.value||`claude`,n=document.getElementById(`selModel`)?.value||`default`;n===`__custom__`&&(n=document.getElementById(`selModelCustom`)?.value?.trim()||`default`);let r=document.getElementById(`selEffort`),i={};i[e]={model:n},r&&!r.disabled&&(i[e].effort=r.value||``),await t(`/api/settings`,`PUT`,{activeOverrides:i})}function Oe(){let e=f[document.getElementById(`flushCli`)?.value||document.getElementById(`selCli`)?.value||`claude`]||[];k(document.getElementById(`flushModel`),e,{includeDefault:!0}),H(),Ae()}async function ke(){let e=await n(`/api/memory-files`);if(!e)return;let t=document.getElementById(`flushCli`),r=document.getElementById(`flushModel`);t&&e.cli&&(t.value=e.cli),k(r,f[e.cli||document.getElementById(`selCli`)?.value||`claude`]||[],{includeDefault:!0}),r&&e.model&&(A(r,e.model),r.value=e.model),H()}async function Ae(){await t(`/api/memory-files/settings`,`PUT`,{cli:document.getElementById(`flushCli`)?.value||``,model:document.getElementById(`flushModel`)?.value||``})}function H(){let e=document.getElementById(`flushAgentBadge`);if(!e)return;let t=document.getElementById(`flushCli`)?.value||``,n=document.getElementById(`flushModel`)?.value||``,r=t||document.getElementById(`selCli`)?.value||``,i=[];r&&i.push(t?r:`${r}*`),n&&n!==`default`&&i.push(n),e.textContent=i.length?`(${i.join(` / `)})`:``}var U=new Set([0,600,1800]),W=0,G=null;function K(){let e=Number(localStorage.getItem(`cliStatusInterval`)||W);return U.has(e)?e:W}function q(e=K()){let t=document.getElementById(`cliStatusInterval`);if(!t)return;let n=String(e);t.value=Array.from(t.options).some(e=>e.value===n)?n:String(W)}function J(){G!=null&&(window.clearInterval(G),G=null);let e=K();q(e),!(e<=0)&&(G=window.setInterval(()=>{document.hidden||!document.hasFocus()||Y(!0)},e*1e3))}function je(e){let t=Number(e),n=U.has(t)?t:W;localStorage.setItem(`cliStatusInterval`,String(n)),q(n),J()}function Me(e,t){return e===`gemini`?t===`Pro`||t===`P`?`P`:t===`Flash`||t===`F`?`F`:t:e===`copilot`&&(t===`Premium`||t===`Prem`||t.includes(`plus monthly subscriber quota`))?`30d`:t.replace(`-hour`,`h`).replace(`-day`,`d`).replace(` Sonnet`,``).replace(` Opus`,``)}async function Y(t=!1){let r=K();if(!t&&e.cliStatusCache&&r>0&&Date.now()-e.cliStatusTs<r*1e3){X({cliStatus:e.cliStatusCache?.cliStatus,quota:e.cliStatusCache?.quota});return}let i=document.getElementById(`cliStatusList`);i&&(i.innerHTML=`<div style="color:var(--text-dim);font-size:11px">Loading...</div>`);let[a,o]=await Promise.all([n(`/api/cli-status`),n(`/api/quota`)]);e.cliStatusCache={cliStatus:a,quota:o},e.cliStatusTs=Date.now(),X({cliStatus:a,quota:o})}function X(e){let{cliStatus:t,quota:r}=e,s=document.getElementById(`cliStatusList`),c={claude:{install:`npm i -g @anthropic-ai/claude-code`,auth:`claude auth`},codex:{install:`npm i -g @openai/codex`,auth:`codex login`},gemini:{install:`npm i -g @google/gemini-cli`,auth:`gemini (${o(`cli.gemini.auth`)})`},opencode:{install:`npm i -g opencode-ai`,auth:`opencode auth`},copilot:{install:`npm i -g copilot`,auth:o(`cli.copilot.authHint`)}},l=``;if(!t||typeof t!=`object`){s&&(s.innerHTML=`<div style="color:var(--text-dim);font-size:11px">Failed to load CLI status</div>`);return}for(let[e,n]of Object.entries(t)){let t=r?.[e],s;s=n.available?!t||t.error?`ok`:t.authenticated===!1?`warn`:`ok`:`missing`;let u=``;if(t?.account){let e=[];t.account.email&&e.push(t.account.email),t.account.type&&e.push(t.account.type),t.account.plan&&e.push(t.account.plan),t.account.tier&&e.push(t.account.tier),e.length&&(u=`<div style="font-size:10px;color:var(--text-dim);margin:2px 0 4px 16px">${a(e.join(` · `))}</div>`)}let d=``;if(!n.available||s===`warn`){let t=c[e];if(t){let e=!n.available,r=o(e?`cli.authRequired`:`cli.notAuthenticated`),i=e?`#ef4444`:`#fbbf24`;d=`
13
+ <div style="font-size:10px;margin:4px 0 2px 16px;padding:6px 8px;background:var(--bg-dim, #1e1e2e);border-radius:4px;border-left:2px solid ${i}">
14
+ <div style="color:${i};margin-bottom:3px">${r}</div>
15
+ ${e?`<div style="color:var(--text-dim)"><code style="font-size:10px;background:var(--border);padding:1px 4px;border-radius:2px">${a(t.install)}</code></div>`:``}
16
+ <div style="color:var(--text-dim)${e?`;margin-top:2px`:``}"><code style="font-size:10px;background:var(--border);padding:1px 4px;border-radius:2px">${a(t.auth)}</code></div>
17
17
  </div>
18
- `}}let f=``;if(t?.windows?.length)f=t.windows.map(t=>{let n=Math.round(t.percent),r=n>80?`#ef4444`:n>50?`#fbbf24`:`#38bdf8`,a=Me(e,t.label),o=``;if(t.resetsAt){let e=new Date(typeof t.resetsAt==`number`?t.resetsAt*1e3:t.resetsAt),n=new Date;o=e.toDateString()===n.toDateString()?`${e.getHours()}:${String(e.getMinutes()).padStart(2,`0`)}`:`${e.getMonth()+1}/${e.getDate()}`}return`
18
+ `}}let f=``;if(t?.windows?.length)f=t.windows.map(t=>{let n=Math.round(t.percent),r=n>80?`#ef4444`:n>50?`#fbbf24`:`#38bdf8`,i=Me(e,t.label),o=``;if(t.resetsAt){let e=new Date(typeof t.resetsAt==`number`?t.resetsAt*1e3:t.resetsAt),n=new Date;o=e.toDateString()===n.toDateString()?`${e.getHours()}:${String(e.getMinutes()).padStart(2,`0`)}`:`${e.getMonth()+1}/${e.getDate()}`}return`
19
19
  <div style="display:flex;align-items:center;gap:4px;margin-left:16px;font-size:10px;color:var(--text-dim)">
20
- <span style="min-width:18px;max-width:48px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis">${i(a)}</span>
20
+ <span style="min-width:18px;max-width:48px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis">${a(i)}</span>
21
21
  <div style="flex:1;height:4px;background:var(--border);border-radius:2px;overflow:hidden">
22
22
  <div style="width:${n}%;height:100%;background:${r};border-radius:2px"></div>
23
23
  </div>
24
24
  <span style="width:24px;text-align:right">${n}%</span>
25
25
  ${o?`<span style="width:30px;text-align:right;opacity:0.6">${o}</span>`:``}
26
26
  </div>
27
- `}).join(``);else if(t?.error&&n.available){let e=t.reason===`rate_limited`?`Rate limited — retry in a moment`:`Usage data unavailable`;f=`<div style="font-size:10px;color:var(--text-dim);margin:2px 0 0 16px;opacity:0.7">${a.warning} ${e}</div>`}l+=`
27
+ `}).join(``);else if(t?.error&&n.available){let e=t.reason===`rate_limited`?`Rate limited — retry in a moment`:`Usage data unavailable`;f=`<div style="font-size:10px;color:var(--text-dim);margin:2px 0 0 16px;opacity:0.7">${i.warning} ${e}</div>`}l+=`
28
28
  <div class="settings-group" style="margin-bottom:6px;padding:8px 10px">
29
29
  <div class="cli-status-row">
30
30
  <span class="cli-dot ${s}"></span>
31
31
  <span class="cli-provider-icon" aria-hidden="true">${S(e)||``}</span>
32
- <span class="cli-name" style="font-weight:600">${i(e)}</span>${e===`copilot`?`<button id="copilotKeychainBtn" style="font-size:9px;margin-left:6px;padding:1px 5px;background:var(--border);color:var(--text-dim);border:1px solid var(--text-dim);border-radius:3px;cursor:pointer;vertical-align:middle;line-height:1" title="${o(`copilot.keychainHint`)}">${a.key}</button>`:``}
32
+ <span class="cli-name" style="font-weight:600">${a(e)}</span>${e===`copilot`?`<button id="copilotKeychainBtn" style="font-size:9px;margin-left:6px;padding:1px 5px;background:var(--border);color:var(--text-dim);border:1px solid var(--text-dim);border-radius:3px;cursor:pointer;vertical-align:middle;line-height:1" title="${o(`copilot.keychainHint`)}">${i.key}</button>`:``}
33
33
  </div>
34
34
  ${u}
35
35
  ${d}
36
36
  ${f}
37
37
  </div>
38
38
  `}s&&(s.innerHTML=l);let u=Object.entries(t);!u.some(([e,t])=>{if(!t.available)return!1;let n=r?.[e];return!n||n.authenticated!==!1})&&u.length>0&&s&&s.insertAdjacentHTML(`afterbegin`,`<div style="padding:8px 10px;margin-bottom:8px;background:#fbbf2422;border:1px solid #fbbf24;border-radius:6px;font-size:11px;color:#fbbf24">
39
- ${a.warning} ${o(`cli.noReadyCli`)}
40
- </div>`);let d=document.getElementById(`copilotKeychainBtn`);d&&d.addEventListener(`click`,async()=>{let e=d;e.disabled=!0,e.innerHTML=a.hourglass;try{let t=await n(`/api/copilot/refresh`,{method:`POST`});e.innerHTML=t?.ok?a.check:a.error,t?.ok&&await Y(!0)}catch{e.innerHTML=a.error}setTimeout(()=>{e.innerHTML=a.key,e.disabled=!1},2e3)})}function Ne(){n(`/api/prompt`).then(e=>{if(!e)return;let t=document.getElementById(`modalPromptEditor`);t&&(t.value=e.content||``),document.getElementById(`promptModal`)?.classList.add(`open`)})}function Pe(e){e&&e.target!==e.currentTarget||document.getElementById(`promptModal`)?.classList.remove(`open`)}async function Fe(){await t(`/api/prompt`,`PUT`,{content:document.getElementById(`modalPromptEditor`)?.value||``}),document.getElementById(`promptModal`)?.classList.remove(`open`)}var Z=[],Q=!1;async function Ie(){let e=await n(`/api/prompt-templates`);e&&(Z=e.templates,Q=!1,Le(e.tree),$(`tree`),document.getElementById(`templateModal`)?.classList.add(`open`))}function Le(e){let t=document.getElementById(`templateTree`);if(t){t.innerHTML=``;for(let n of e){let e=document.createElement(`div`);e.style.cssText=`background:var(--bg);border:1px solid var(--accent);border-radius:6px;padding:8px 10px;margin:8px 0 4px;font-size:12px;color:var(--accent);font-weight:600`,e.textContent=`${n.emoji} ${n.label}`,t.appendChild(e);for(let e of n.children){let n=Z.find(t=>t.id===e);if(!n)continue;let r=document.createElement(`div`);r.style.cssText=`background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:6px 10px;margin:2px 0 2px 24px;font-size:12px;cursor:pointer;transition:border-color .15s`,r.innerHTML=`${a.file} ${i(n.filename)}`,r.addEventListener(`mouseenter`,()=>{r.style.borderColor=`var(--accent2)`}),r.addEventListener(`mouseleave`,()=>{r.style.borderColor=`var(--border)`}),r.addEventListener(`click`,()=>{Re(n)}),t.appendChild(r)}}}}function Re(e){let t=document.getElementById(`templateEditor`);t.value=e.content,t.dataset.templateId=e.id,t.readOnly=!0,Q=!1;let n=document.getElementById(`templateEditorLabel`);n&&(n.innerHTML=`${a.file} ${i(e.filename)}`);let r=e.content.match(/\{\{[A-Z_]+\}\}/g),o=document.getElementById(`templateVars`);o&&(o.textContent=r?`vars: ${[...new Set(r)].join(`, `)}`:`no variables`);let s=document.getElementById(`templateSaveBtn`);s&&(s.style.display=`none`);let l=document.getElementById(`templateDevToggle`);l&&(l.style.color=`var(--text-dim)`,l.style.borderColor=`var(--border)`,l.innerHTML=`${a.tool} ${c(`devMode`)}`);let u=document.getElementById(`templateModalTitle`);u&&(u.innerHTML=`${a.file} ${i(e.filename)}`),$(`editor`)}function ze(){if(!Q&&!confirm(c(`promptEditWarning`)))return;Q=!Q;let e=document.getElementById(`templateEditor`);e.readOnly=!Q;let t=document.getElementById(`templateSaveBtn`);t&&(t.style.display=Q?``:`none`);let n=document.getElementById(`templateDevToggle`);n&&(n.style.color=Q?`var(--stop-btn)`:`var(--text-dim)`,n.style.borderColor=Q?`var(--stop-btn)`:`var(--border)`,n.innerHTML=Q?`${a.lockOpen} ${c(`devModeOn`)}`:`${a.tool} ${c(`devMode`)}`)}async function Be(){let e=document.getElementById(`templateEditor`),n=e.dataset.templateId;if(!n)return;await t(`/api/prompt-templates/${n}`,`PUT`,{content:e.value});let r=document.getElementById(`templateEditorLabel`);r&&(r.innerHTML=`${a.check} ${c(`savedAndReloaded`)}`,setTimeout(()=>{r.innerHTML=`${a.file} ${i(n)}.md`},2e3));let o=Z.find(e=>e.id===n);o&&(o.content=e.value)}function $(e){let t=document.getElementById(`templateTreeView`),n=document.getElementById(`templateEditorView`);t&&(t.style.display=e===`tree`?``:`none`),n&&(n.style.display=e===`editor`?`flex`:`none`);let r=document.getElementById(`templateModalTitle`);r&&e===`tree`&&(r.innerHTML=`${a.plan} ${c(`promptStructure`)}`)}function Ve(){$(`tree`)}function He(e){e&&e.target!==e.currentTarget||document.getElementById(`templateModal`)?.classList.remove(`open`)}export{ue as A,p as B,we as C,pe as D,_ as E,ce as F,ee as I,ne as L,oe as M,se as N,g as O,h as P,te as R,P as S,me as T,B as _,Fe as a,z as b,ze as c,je as d,De as f,N as g,ke as h,Ie as i,ae as j,fe as k,Y as l,L as m,He as n,Be as o,I as p,Ne as r,Ve as s,Pe as t,J as u,Oe as v,Se as w,F as x,V as y,re as z};
39
+ ${i.warning} ${o(`cli.noReadyCli`)}
40
+ </div>`);let d=document.getElementById(`copilotKeychainBtn`);d&&d.addEventListener(`click`,async()=>{let e=d;e.disabled=!0,e.innerHTML=i.hourglass;try{let t=await n(`/api/copilot/refresh`,{method:`POST`});e.innerHTML=t?.ok?i.check:i.error,t?.ok&&await Y(!0)}catch{e.innerHTML=i.error}setTimeout(()=>{e.innerHTML=i.key,e.disabled=!1},2e3)})}function Ne(){n(`/api/prompt`).then(e=>{if(!e)return;let t=document.getElementById(`modalPromptEditor`);t&&(t.value=e.content||``),document.getElementById(`promptModal`)?.classList.add(`open`)})}function Pe(e){e&&e.target!==e.currentTarget||document.getElementById(`promptModal`)?.classList.remove(`open`)}async function Fe(){await t(`/api/prompt`,`PUT`,{content:document.getElementById(`modalPromptEditor`)?.value||``}),document.getElementById(`promptModal`)?.classList.remove(`open`)}var Z=[],Q=!1;async function Ie(){let e=await n(`/api/prompt-templates`);e&&(Z=e.templates,Q=!1,Le(e.tree),$(`tree`),document.getElementById(`templateModal`)?.classList.add(`open`))}function Le(e){let t=document.getElementById(`templateTree`);if(t){t.innerHTML=``;for(let n of e){let e=document.createElement(`div`);e.style.cssText=`background:var(--bg);border:1px solid var(--accent);border-radius:6px;padding:8px 10px;margin:8px 0 4px;font-size:12px;color:var(--accent);font-weight:600`,e.textContent=`${n.emoji} ${n.label}`,t.appendChild(e);for(let e of n.children){let n=Z.find(t=>t.id===e);if(!n)continue;let r=document.createElement(`div`);r.style.cssText=`background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:6px 10px;margin:2px 0 2px 24px;font-size:12px;cursor:pointer;transition:border-color .15s`,r.innerHTML=`${i.file} ${a(n.filename)}`,r.addEventListener(`mouseenter`,()=>{r.style.borderColor=`var(--accent2)`}),r.addEventListener(`mouseleave`,()=>{r.style.borderColor=`var(--border)`}),r.addEventListener(`click`,()=>{Re(n)}),t.appendChild(r)}}}}function Re(e){let t=document.getElementById(`templateEditor`);t.value=e.content,t.dataset.templateId=e.id,t.readOnly=!0,Q=!1;let n=document.getElementById(`templateEditorLabel`);n&&(n.innerHTML=`${i.file} ${a(e.filename)}`);let r=e.content.match(/\{\{[A-Z_]+\}\}/g),o=document.getElementById(`templateVars`);o&&(o.textContent=r?`vars: ${[...new Set(r)].join(`, `)}`:`no variables`);let s=document.getElementById(`templateSaveBtn`);s&&(s.style.display=`none`);let l=document.getElementById(`templateDevToggle`);l&&(l.style.color=`var(--text-dim)`,l.style.borderColor=`var(--border)`,l.innerHTML=`${i.tool} ${c(`devMode`)}`);let u=document.getElementById(`templateModalTitle`);u&&(u.innerHTML=`${i.file} ${a(e.filename)}`),$(`editor`)}function ze(){if(!Q&&!confirm(c(`promptEditWarning`)))return;Q=!Q;let e=document.getElementById(`templateEditor`);e.readOnly=!Q;let t=document.getElementById(`templateSaveBtn`);t&&(t.style.display=Q?``:`none`);let n=document.getElementById(`templateDevToggle`);n&&(n.style.color=Q?`var(--stop-btn)`:`var(--text-dim)`,n.style.borderColor=Q?`var(--stop-btn)`:`var(--border)`,n.innerHTML=Q?`${i.lockOpen} ${c(`devModeOn`)}`:`${i.tool} ${c(`devMode`)}`)}async function Be(){let e=document.getElementById(`templateEditor`),n=e.dataset.templateId;if(!n)return;await t(`/api/prompt-templates/${n}`,`PUT`,{content:e.value});let r=document.getElementById(`templateEditorLabel`);r&&(r.innerHTML=`${i.check} ${c(`savedAndReloaded`)}`,setTimeout(()=>{r.innerHTML=`${i.file} ${a(n)}.md`},2e3));let o=Z.find(e=>e.id===n);o&&(o.content=e.value)}function $(e){let t=document.getElementById(`templateTreeView`),n=document.getElementById(`templateEditorView`);t&&(t.style.display=e===`tree`?``:`none`),n&&(n.style.display=e===`editor`?`flex`:`none`);let r=document.getElementById(`templateModalTitle`);r&&e===`tree`&&(r.innerHTML=`${i.plan} ${c(`promptStructure`)}`)}function Ve(){$(`tree`)}function He(e){e&&e.target!==e.currentTarget||document.getElementById(`templateModal`)?.classList.remove(`open`)}export{ue as A,p as B,we as C,pe as D,_ as E,ce as F,ee as I,ne as L,oe as M,se as N,g as O,h as P,te as R,P as S,me as T,B as _,Fe as a,z as b,ze as c,je as d,De as f,N as g,ke as h,Ie as i,ae as j,fe as k,Y as l,L as m,He as n,Be as o,I as p,Ne as r,Ve as s,Pe as t,J as u,Oe as v,Se as w,F as x,V as y,re as z};
@@ -0,0 +1 @@
1
+ import{S as e,b as t,g as n}from"./settings-BH213Yv3.js";export{n as loadSettings,t as savePerCli,e as updateSettings};
@@ -0,0 +1 @@
1
+ var e=8e3,t=class extends Error{method;path;status;detail;constructor(e,t,n,r){super(`${e} ${t} → ${n}: ${r}`),this.name=`SettingsRequestError`,this.method=e,this.path=t,this.status=n,this.detail=r}};function n(e){return`/i/${e}`}function r(r){let i=n(r),a={"content-type":`application/json`};async function o(n,r,o,s){let c=new AbortController,l=setTimeout(()=>c.abort(),e);try{let e={method:n,headers:a,signal:s?.signal||c.signal,...s};o!==void 0&&(e.body=JSON.stringify(o));let l=await fetch(`${i}${r}`,e);if(!l.ok){let e=await l.text().catch(()=>``);throw new t(n,r,l.status,e)}let u=l.headers.get(`content-type`)||``;if(u.includes(`application/json`))return await l.json();let d=await l.text().catch(()=>``);throw new t(n,r,l.status,`expected JSON, received ${u||`unknown content-type`}: ${d.slice(0,120)}`)}finally{clearTimeout(l)}}return{get:(e,t)=>o(`GET`,e,void 0,t),put:(e,t,n)=>o(`PUT`,e,t,n),post:(e,t,n)=>o(`POST`,e,t,n),delete:(e,t)=>o(`DELETE`,e,void 0,t)}}export{r as n,t};
@@ -0,0 +1 @@
1
+ import{n as e}from"./skills-CQtCtHPA.js";export{e as loadSkills};
@@ -1,12 +1,12 @@
1
- import{t as e}from"./state-xhhyIPlq.js";import{i as t}from"./api-tVoG39dL.js";import{d as n,m as r,n as i,u as a,v as o}from"./render-DEhbfUAW.js";var s=[`productivity`,`communication`,`devtools`,`ai-media`,`utility`,`smarthome`,`automation`];function c(e,t){return t?[e.id,e.name,e.description,e.category,e.requires?.env?.join(` `),e.requires?.bins?.join(` `),e.install].filter(Boolean).join(` `).toLowerCase().includes(t):!0}async function l(){try{e.allSkills=await(await r(`/api/skills`)).json(),u()}catch{let e=document.getElementById(`skillsList`);e&&(e.innerHTML=`<div style="color:var(--text-dim);font-size:11px">${o(`skill.loadFail`)}</div>`)}}function u(){let t=document.getElementById(`skillsList`),r=document.getElementById(`skillsCount`);if(!t||!r)return;let l=e.allSkills,u=l;e.currentSkillFilter===`installed`?u=l.filter(e=>e.enabled):e.currentSkillFilter===`other`?u=l.filter(e=>!s.includes(e.category||``)):e.currentSkillFilter!==`all`&&(u=l.filter(t=>t.category===e.currentSkillFilter));let d=e.currentSkillSearch.trim().toLowerCase();u=u.filter(e=>c(e,d));let f=l.filter(e=>e.enabled).length;if(r.textContent=d?o(`skill.countFiltered`,{shown:u.length,active:f,total:l.length}):o(`skill.count`,{active:f,total:l.length}),!u.length){t.innerHTML=`<div class="skill-empty">${i(o(`skill.search.empty`))}</div>`;return}t.innerHTML=u.map(e=>{let t=[];return e.requires?.env&&t.push(`${a.key} `+e.requires.env.map(e=>i(e)).join(`, `)),e.requires?.bins&&t.push(`${a.settings} `+e.requires.bins.map(e=>i(e)).join(`, `)),e.install&&t.push(i(e.install)),`
1
+ import{t as e}from"./state-xhhyIPlq.js";import{i as t}from"./api-tVoG39dL.js";import{d as n,f as r,h as i,n as a,y as o}from"./render-DGQX46ei.js";var s=[`productivity`,`communication`,`devtools`,`ai-media`,`utility`,`smarthome`,`automation`];function c(e,t){return t?[e.id,e.name,e.description,e.category,e.requires?.env?.join(` `),e.requires?.bins?.join(` `),e.install].filter(Boolean).join(` `).toLowerCase().includes(t):!0}async function l(){try{e.allSkills=await(await i(`/api/skills`)).json(),u()}catch{let e=document.getElementById(`skillsList`);e&&(e.innerHTML=`<div style="color:var(--text-dim);font-size:11px">${o(`skill.loadFail`)}</div>`)}}function u(){let t=document.getElementById(`skillsList`),i=document.getElementById(`skillsCount`);if(!t||!i)return;let l=e.allSkills,u=l;e.currentSkillFilter===`installed`?u=l.filter(e=>e.enabled):e.currentSkillFilter===`other`?u=l.filter(e=>!s.includes(e.category||``)):e.currentSkillFilter!==`all`&&(u=l.filter(t=>t.category===e.currentSkillFilter));let d=e.currentSkillSearch.trim().toLowerCase();u=u.filter(e=>c(e,d));let f=l.filter(e=>e.enabled).length;if(i.textContent=d?o(`skill.countFiltered`,{shown:u.length,active:f,total:l.length}):o(`skill.count`,{active:f,total:l.length}),!u.length){t.innerHTML=`<div class="skill-empty">${a(o(`skill.search.empty`))}</div>`;return}t.innerHTML=u.map(e=>{let t=[];return e.requires?.env&&t.push(`${n.key} `+e.requires.env.map(e=>a(e)).join(`, `)),e.requires?.bins&&t.push(`${n.settings} `+e.requires.bins.map(e=>a(e)).join(`, `)),e.install&&t.push(a(e.install)),`
2
2
  <div class="skill-card ${e.enabled?`enabled`:``}">
3
3
  <div class="skill-card-header">
4
- <span class="skill-emoji">${e.emoji?n(e.emoji):a.tool}</span>
5
- <span class="skill-name">${i(e.name||e.id)}</span>
4
+ <span class="skill-emoji">${e.emoji?r(e.emoji):n.tool}</span>
5
+ <span class="skill-name">${a(e.name||e.id)}</span>
6
6
  <button class="skill-toggle ${e.enabled?`on`:`off`}"
7
- data-skill-id="${i(e.id)}" data-skill-enabled="${e.enabled}"
8
- aria-label="${i((e.name||e.id)+` toggle`)}"></button>
7
+ data-skill-id="${a(e.id)}" data-skill-enabled="${e.enabled}"
8
+ aria-label="${a((e.name||e.id)+` toggle`)}"></button>
9
9
  </div>
10
- <div class="skill-desc">${i(e.description||``)}</div>
10
+ <div class="skill-desc">${a(e.description||``)}</div>
11
11
  ${t.length?`<div class="skill-req">${t.join(` · `)}</div>`:``}
12
12
  </div>`}).join(``)}async function d(e,n){let r=n?`/api/skills/disable`:`/api/skills/enable`;try{await t(r,`POST`,{id:e}),await l()}catch(e){console.error(`toggleSkill error:`,e)}}function f(t,n){e.currentSkillFilter=t,document.querySelectorAll(`.skill-filter`).forEach(e=>e.classList.remove(`active`)),n&&n.classList.add(`active`),u()}function p(t){e.currentSkillSearch=t,u()}export{d as a,p as i,l as n,u as r,f as t};
@@ -0,0 +1 @@
1
+ import{a as e}from"./slash-commands-Dzk1xHWS.js";export{e as loadCommands};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./api-tVoG39dL.js";import{n as t,v as n}from"./render-DEhbfUAW.js";import{t as r}from"./locale-f397XJgr.js";var i=[],a=[],o=-1,s=!1,c=null;function l(e){let t=String(e||``).slice(1).trim().split(/\s+/)[0]||``;return t.includes(`/`)||t.includes(`\\`)}var u=()=>document.getElementById(`cmdDropdown`),d=()=>document.getElementById(`chatInput`);function f(e){let t=String(e||``).toLowerCase();return i.filter(e=>`/${e.name}`.startsWith(t))}function p(){let e=u(),t=d();!e||!t||(c&&=(clearTimeout(c),null),e.style.display=`block`,requestAnimationFrame(()=>e.classList.add(`visible`)),s=!0,t.setAttribute(`aria-expanded`,`true`))}function m(){let e=u(),r=d();if(!e||!r)return;if(!a.length){if(!r.value.startsWith(`/`)||l(r.value)){_();return}e.innerHTML=`
1
+ import{n as e}from"./api-tVoG39dL.js";import{n as t,y as n}from"./render-DGQX46ei.js";import{t as r}from"./locale-f397XJgr.js";var i=[],a=[],o=-1,s=!1,c=null;function l(e){let t=String(e||``).slice(1).trim().split(/\s+/)[0]||``;return t.includes(`/`)||t.includes(`\\`)}var u=()=>document.getElementById(`cmdDropdown`),d=()=>document.getElementById(`chatInput`);function f(e){let t=String(e||``).toLowerCase();return i.filter(e=>`/${e.name}`.startsWith(t))}function p(){let e=u(),t=d();!e||!t||(c&&=(clearTimeout(c),null),e.style.display=`block`,requestAnimationFrame(()=>e.classList.add(`visible`)),s=!0,t.setAttribute(`aria-expanded`,`true`))}function m(){let e=u(),r=d();if(!e||!r)return;if(!a.length){if(!r.value.startsWith(`/`)||l(r.value)){_();return}e.innerHTML=`
2
2
  <div class="cmd-item cmd-empty" role="option" aria-disabled="true">
3
3
  ${n(`cmd.noMatch`)}
4
4
  </div>
@@ -0,0 +1,15 @@
1
+ import{n as e}from"./api-tVoG39dL.js";import{n as t}from"./render-DGQX46ei.js";var n=80,r=``,i=0,a=0,o=!1;function s(e){return e.eventType||e.event_type||`event`}function c(){let e=document.getElementById(`traceDrawerOverlay`);return e||(e=document.createElement(`div`),e.id=`traceDrawerOverlay`,e.className=`trace-drawer-overlay`,e.innerHTML=`<aside class="trace-drawer" role="dialog" aria-modal="true" aria-labelledby="traceDrawerTitle">
2
+ <header class="trace-drawer-header">
3
+ <div><p class="trace-drawer-kicker">Raw trace</p><h2 id="traceDrawerTitle">Trace</h2></div>
4
+ <button class="trace-drawer-close" type="button" aria-label="Close trace drawer">×</button>
5
+ </header>
6
+ <section class="trace-drawer-meta" id="traceDrawerMeta"></section>
7
+ <section class="trace-drawer-body">
8
+ <div class="trace-event-list" id="traceEventList"></div>
9
+ <pre class="trace-event-raw" id="traceEventRaw">Select an event.</pre>
10
+ </section>
11
+ <footer class="trace-drawer-footer"><button class="trace-load-more" type="button">Load more</button></footer>
12
+ </aside>`,document.body.appendChild(e),e.addEventListener(`click`,t=>{let n=t.target;if(!n)return;(n===e||n.closest(`.trace-drawer-close`))&&u();let r=n.closest(`.trace-event-row`);r&&m(r.dataset.runId||``,Number(r.dataset.seq||0)),n.closest(`.trace-load-more`)&&p()}),document.addEventListener(`keydown`,t=>{t.key===`Escape`&&e?.classList.contains(`open`)&&u()}),e)}function l(e){let t=document.getElementById(`traceEventRaw`);t&&(t.textContent=e)}function u(){document.getElementById(`traceDrawerOverlay`)?.classList.remove(`open`)}function d(e){let n=document.getElementById(`traceDrawerTitle`);n&&(n.textContent=`${e.cli||`agent`} trace`);let r=document.getElementById(`traceDrawerMeta`);r&&(r.innerHTML=[[`run`,e.id],[`model`,e.model||`-`],[`agent`,e.agentLabel||`-`],[`status`,e.status],[`events`,`${e.eventCount}`],[`bytes`,`${e.byteCount}`],[`retention`,e.rawRetentionStatus]].map(([e,n])=>`<span><b>${t(e)}</b>${t(n)}</span>`).join(``))}function f(e){let n=document.getElementById(`traceEventList`);if(!n)return;let i=e.map(e=>{let n=Number(e.seq||0);return`<button class="trace-event-row" type="button" data-run-id="${t(r)}" data-seq="${n}">
13
+ <span class="trace-event-seq">#${n}</span><span class="trace-event-source">${t(e.source||`trace`)}</span>
14
+ <span class="trace-event-type">${t(s(e))}</span><span class="trace-event-preview">${t(e.preview||``)}</span>
15
+ </button>`}).join(``);n.insertAdjacentHTML(`beforeend`,i)}async function p(){if(!r||o||i>=a&&a>0)return;o=!0;let t=await e(`/api/traces/${encodeURIComponent(r)}/events?offset=${i}&limit=${n}`);if(o=!1,!t){l(`Trace events could not be loaded.`);return}a=t.total||0,i+=t.events.length,f(t.events);let s=document.querySelector(`.trace-load-more`);s&&(s.disabled=i>=a)}async function m(t,n){if(!t||!Number.isInteger(n)||n<1)return;l(`Loading event...`);let r=await e(`/api/traces/${encodeURIComponent(t)}/events/${n}`);l(r?.raw||(r?`(empty trace event)`:`Trace event could not be loaded.`))}async function h(t,n){let o=c();r=t,i=0,a=0;let s=document.getElementById(`traceEventList`);s&&(s.innerHTML=``),l(`Loading trace...`),o.classList.add(`open`);let u=await e(`/api/traces/${encodeURIComponent(t)}`);if(!u){l(`Trace is unavailable or internal-only.`);return}d(u),a=u.eventCount||0,await p(),n&&await m(t,n)}export{h as openTraceDrawer};