cli-jaw 2.2.4-preview.20260703203439 → 2.2.5

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 (631) hide show
  1. package/README.md +5 -4
  2. package/dist/bin/cli-jaw.js +9 -1
  3. package/dist/bin/cli-jaw.js.map +1 -1
  4. package/dist/bin/commands/chat.js +9 -1
  5. package/dist/bin/commands/chat.js.map +1 -1
  6. package/dist/bin/commands/design.js +172 -0
  7. package/dist/bin/commands/design.js.map +1 -0
  8. package/dist/bin/commands/dispatch-helpers.js +28 -0
  9. package/dist/bin/commands/dispatch-helpers.js.map +1 -1
  10. package/dist/bin/commands/dispatch.js +133 -31
  11. package/dist/bin/commands/dispatch.js.map +1 -1
  12. package/dist/bin/commands/doctor.js +1 -1
  13. package/dist/bin/commands/doctor.js.map +1 -1
  14. package/dist/bin/commands/init.js +1 -1
  15. package/dist/bin/commands/init.js.map +1 -1
  16. package/dist/bin/commands/map.js +53 -0
  17. package/dist/bin/commands/map.js.map +1 -0
  18. package/dist/bin/commands/mcp.js +1 -1
  19. package/dist/bin/commands/mcp.js.map +1 -1
  20. package/dist/bin/commands/skill.js +64 -3
  21. package/dist/bin/commands/skill.js.map +1 -1
  22. package/dist/bin/commands/status.js +1 -1
  23. package/dist/bin/commands/status.js.map +1 -1
  24. package/dist/bin/commands/tui/channel.js +20 -4
  25. package/dist/bin/commands/tui/channel.js.map +1 -1
  26. package/dist/bin/commands/tui/fullscreen-mode.js +17 -9
  27. package/dist/bin/commands/tui/fullscreen-mode.js.map +1 -1
  28. package/dist/bin/commands/tui/input-handler.js +30 -22
  29. package/dist/bin/commands/tui/input-handler.js.map +1 -1
  30. package/dist/bin/commands/tui/overlays.js +36 -8
  31. package/dist/bin/commands/tui/overlays.js.map +1 -1
  32. package/dist/bin/commands/tui/queue-command.js +71 -0
  33. package/dist/bin/commands/tui/queue-command.js.map +1 -0
  34. package/dist/bin/commands/tui/renderer.js +1 -0
  35. package/dist/bin/commands/tui/renderer.js.map +1 -1
  36. package/dist/bin/commands/tui/simple-mode.js +39 -1
  37. package/dist/bin/commands/tui/simple-mode.js.map +1 -1
  38. package/dist/bin/commands/tui/slash-command-runner.js +92 -4
  39. package/dist/bin/commands/tui/slash-command-runner.js.map +1 -1
  40. package/dist/bin/commands/tui/types.js +6 -4
  41. package/dist/bin/commands/tui/types.js.map +1 -1
  42. package/dist/bin/commands/tui/ws-handler.js +78 -9
  43. package/dist/bin/commands/tui/ws-handler.js.map +1 -1
  44. package/dist/bin/commands/worker.js +1 -3
  45. package/dist/bin/commands/worker.js.map +1 -1
  46. package/dist/bin/postinstall.js +3 -3
  47. package/dist/bin/postinstall.js.map +1 -1
  48. package/dist/server.js +7 -2
  49. package/dist/server.js.map +1 -1
  50. package/dist/src/agent/args.js +3 -0
  51. package/dist/src/agent/args.js.map +1 -1
  52. package/dist/src/agent/lifecycle-handler.js +20 -0
  53. package/dist/src/agent/lifecycle-handler.js.map +1 -1
  54. package/dist/src/agent/spawn.js +24 -2
  55. package/dist/src/agent/spawn.js.map +1 -1
  56. package/dist/src/bgtask/notifier.js +2 -1
  57. package/dist/src/bgtask/notifier.js.map +1 -1
  58. package/dist/src/bgtask/recover.js +8 -7
  59. package/dist/src/bgtask/recover.js.map +1 -1
  60. package/dist/src/bgtask/registry.js +2 -1
  61. package/dist/src/bgtask/registry.js.map +1 -1
  62. package/dist/src/bgtask/runner.js +3 -2
  63. package/dist/src/bgtask/runner.js.map +1 -1
  64. package/dist/src/browser/vision.js +3 -1
  65. package/dist/src/browser/vision.js.map +1 -1
  66. package/dist/src/browser/web-ai/tab-lease-store.js +1 -3
  67. package/dist/src/browser/web-ai/tab-lease-store.js.map +1 -1
  68. package/dist/src/cli/commands.js +26 -4
  69. package/dist/src/cli/commands.js.map +1 -1
  70. package/dist/src/cli/handlers-runtime.js +7 -1
  71. package/dist/src/cli/handlers-runtime.js.map +1 -1
  72. package/dist/src/cli/handlers.js +1 -1
  73. package/dist/src/cli/handlers.js.map +1 -1
  74. package/dist/src/cli/tui/jawcode-bridge.js +13 -14
  75. package/dist/src/cli/tui/jawcode-bridge.js.map +1 -1
  76. package/dist/src/cli/tui/markdown.js +1 -1
  77. package/dist/src/cli/tui/markdown.js.map +1 -1
  78. package/dist/src/cli/tui/overlay.js +65 -10
  79. package/dist/src/cli/tui/overlay.js.map +1 -1
  80. package/dist/src/cli/tui/render/frame.js +109 -103
  81. package/dist/src/cli/tui/render/frame.js.map +1 -1
  82. package/dist/src/cli/tui/transcript.js +31 -9
  83. package/dist/src/cli/tui/transcript.js.map +1 -1
  84. package/dist/src/core/bus.js +2 -0
  85. package/dist/src/core/bus.js.map +1 -1
  86. package/dist/src/core/chat-sessions.js +2 -0
  87. package/dist/src/core/chat-sessions.js.map +1 -1
  88. package/dist/src/core/codex-config.js +2 -1
  89. package/dist/src/core/codex-config.js.map +1 -1
  90. package/dist/src/core/config.js +6 -3
  91. package/dist/src/core/config.js.map +1 -1
  92. package/dist/src/core/event-bus.js +1 -1
  93. package/dist/src/core/event-bus.js.map +1 -1
  94. package/dist/src/core/logger.js +9 -1
  95. package/dist/src/core/logger.js.map +1 -1
  96. package/dist/src/core/main-session.js +2 -1
  97. package/dist/src/core/main-session.js.map +1 -1
  98. package/dist/src/core/runtime-settings.js +2 -1
  99. package/dist/src/core/runtime-settings.js.map +1 -1
  100. package/dist/src/core/session-ops.js +1 -1
  101. package/dist/src/core/session-ops.js.map +1 -1
  102. package/dist/src/core/widget-watcher.js +113 -0
  103. package/dist/src/core/widget-watcher.js.map +1 -0
  104. package/dist/src/discord/bot.js +42 -31
  105. package/dist/src/discord/bot.js.map +1 -1
  106. package/dist/src/discord/channel-types.js +16 -0
  107. package/dist/src/discord/channel-types.js.map +1 -1
  108. package/dist/src/discord/commands.js +8 -6
  109. package/dist/src/discord/commands.js.map +1 -1
  110. package/dist/src/discord/discord-file.js +4 -2
  111. package/dist/src/discord/discord-file.js.map +1 -1
  112. package/dist/src/discord/forwarder.js +10 -6
  113. package/dist/src/discord/forwarder.js.map +1 -1
  114. package/dist/src/ide/diff.js +1 -1
  115. package/dist/src/ide/diff.js.map +1 -1
  116. package/dist/src/manager/dashboard-service.js +5 -5
  117. package/dist/src/manager/dashboard-service.js.map +1 -1
  118. package/dist/src/manager/design/path-guards.js +86 -0
  119. package/dist/src/manager/design/path-guards.js.map +1 -0
  120. package/dist/src/manager/design/schema.js +54 -0
  121. package/dist/src/manager/design/schema.js.map +1 -0
  122. package/dist/src/manager/design/snapshots.js +62 -0
  123. package/dist/src/manager/design/snapshots.js.map +1 -0
  124. package/dist/src/manager/design/store.js +269 -0
  125. package/dist/src/manager/design/store.js.map +1 -0
  126. package/dist/src/manager/design/watcher.js +49 -0
  127. package/dist/src/manager/design/watcher.js.map +1 -0
  128. package/dist/src/manager/memory/embedding/vec-store.js +1 -1
  129. package/dist/src/manager/memory/embedding/vec-store.js.map +1 -1
  130. package/dist/src/manager/registry.js +84 -0
  131. package/dist/src/manager/registry.js.map +1 -1
  132. package/dist/src/manager/routes/dashboard-design.js +234 -0
  133. package/dist/src/manager/routes/dashboard-design.js.map +1 -0
  134. package/dist/src/manager/routes/dashboard-memory.js +1 -1
  135. package/dist/src/manager/routes/dashboard-memory.js.map +1 -1
  136. package/dist/src/manager/routes/embedded-browser.js +497 -0
  137. package/dist/src/manager/routes/embedded-browser.js.map +1 -0
  138. package/dist/src/manager/routes/telegram-hub.js +4 -3
  139. package/dist/src/manager/routes/telegram-hub.js.map +1 -1
  140. package/dist/src/manager/server.js +17 -2
  141. package/dist/src/manager/server.js.map +1 -1
  142. package/dist/src/manager/telegram-hub/hub-bot.js +127 -7
  143. package/dist/src/manager/telegram-hub/hub-bot.js.map +1 -1
  144. package/dist/src/memory/heartbeat.js +15 -14
  145. package/dist/src/memory/heartbeat.js.map +1 -1
  146. package/dist/src/memory/identity.js +3 -2
  147. package/dist/src/memory/identity.js.map +1 -1
  148. package/dist/src/memory/memory.js +3 -2
  149. package/dist/src/memory/memory.js.map +1 -1
  150. package/dist/src/memory/reflect.js +2 -1
  151. package/dist/src/memory/reflect.js.map +1 -1
  152. package/dist/src/memory/runtime.js +3 -2
  153. package/dist/src/memory/runtime.js.map +1 -1
  154. package/dist/src/memory/shared.js +4 -3
  155. package/dist/src/memory/shared.js.map +1 -1
  156. package/dist/src/memory/worklog.js +3 -2
  157. package/dist/src/memory/worklog.js.map +1 -1
  158. package/dist/src/messaging/runtime.js +4 -3
  159. package/dist/src/messaging/runtime.js.map +1 -1
  160. package/dist/src/messaging/send.js +1 -1
  161. package/dist/src/messaging/send.js.map +1 -1
  162. package/dist/src/orchestrator/attestation.js +33 -0
  163. package/dist/src/orchestrator/attestation.js.map +1 -1
  164. package/dist/src/orchestrator/collect.js +9 -4
  165. package/dist/src/orchestrator/collect.js.map +1 -1
  166. package/dist/src/orchestrator/distribute.js +0 -142
  167. package/dist/src/orchestrator/distribute.js.map +1 -1
  168. package/dist/src/orchestrator/gateway.js +3 -3
  169. package/dist/src/orchestrator/gateway.js.map +1 -1
  170. package/dist/src/orchestrator/pipeline.js +19 -1
  171. package/dist/src/orchestrator/pipeline.js.map +1 -1
  172. package/dist/src/orchestrator/state-machine.js +93 -16
  173. package/dist/src/orchestrator/state-machine.js.map +1 -1
  174. package/dist/src/orchestrator/worker-replay-notice.js +31 -11
  175. package/dist/src/orchestrator/worker-replay-notice.js.map +1 -1
  176. package/dist/src/prompt/builder.js +20 -20
  177. package/dist/src/prompt/builder.js.map +1 -1
  178. package/dist/src/prompt/context-hooks.js +2 -1
  179. package/dist/src/prompt/context-hooks.js.map +1 -1
  180. package/dist/src/prompt/templates/a1-system.md +69 -45
  181. package/dist/src/prompt/templates/employee.md +3 -2
  182. package/dist/src/prompt/templates/orchestration.md +13 -15
  183. package/dist/src/prompt/templates/skills.md +1 -0
  184. package/dist/src/routes/avatar.js +4 -3
  185. package/dist/src/routes/avatar.js.map +1 -1
  186. package/dist/src/routes/bgtask.js +2 -1
  187. package/dist/src/routes/bgtask.js.map +1 -1
  188. package/dist/src/routes/browser.js +2 -1
  189. package/dist/src/routes/browser.js.map +1 -1
  190. package/dist/src/routes/command.js +32 -2
  191. package/dist/src/routes/command.js.map +1 -1
  192. package/dist/src/routes/messaging.js +6 -5
  193. package/dist/src/routes/messaging.js.map +1 -1
  194. package/dist/src/routes/orchestrate.js +144 -29
  195. package/dist/src/routes/orchestrate.js.map +1 -1
  196. package/dist/src/routes/quota.js +217 -33
  197. package/dist/src/routes/quota.js.map +1 -1
  198. package/dist/src/routes/settings.js +3 -2
  199. package/dist/src/routes/settings.js.map +1 -1
  200. package/dist/src/routes/static.js +37 -2
  201. package/dist/src/routes/static.js.map +1 -1
  202. package/dist/src/telegram/bot.js +123 -67
  203. package/dist/src/telegram/bot.js.map +1 -1
  204. package/dist/src/telegram/elicitation-buttons.js +71 -0
  205. package/dist/src/telegram/elicitation-buttons.js.map +1 -0
  206. package/dist/src/telegram/fetch-body.js +11 -0
  207. package/dist/src/telegram/fetch-body.js.map +1 -0
  208. package/dist/src/telegram/forwarder.js +3 -5
  209. package/dist/src/telegram/forwarder.js.map +1 -1
  210. package/dist/src/telegram/rich-message.js +85 -11
  211. package/dist/src/telegram/rich-message.js.map +1 -1
  212. package/dist/src/telegram/status-update-buffer.js +15 -0
  213. package/dist/src/telegram/status-update-buffer.js.map +1 -0
  214. package/dist/src/telegram/telegram-file.js +5 -4
  215. package/dist/src/telegram/telegram-file.js.map +1 -1
  216. package/dist/src/telegram/voice.js +5 -4
  217. package/dist/src/telegram/voice.js.map +1 -1
  218. package/dist/src/workflows/planaudit.js +2 -1
  219. package/dist/src/workflows/planaudit.js.map +1 -1
  220. package/dist/src/workflows/repo-map/index.js +157 -0
  221. package/dist/src/workflows/repo-map/index.js.map +1 -0
  222. package/dist/src/workflows/scope-sandbox.js +1 -0
  223. package/dist/src/workflows/scope-sandbox.js.map +1 -1
  224. package/package.json +5 -2
  225. package/public/css/chat.css +17 -1
  226. package/public/css/orc-state.css +2 -1
  227. package/public/css/variables.css +0 -1
  228. package/public/dist/assets/{AdvancedExport-qa01DKDO.js → AdvancedExport-DsDpqXoH.js} +1 -1
  229. package/public/dist/assets/{Agent-CHCXjXSN.js → Agent-CrLn42Jb.js} +1 -1
  230. package/public/dist/assets/{Browser-Df4B5cnl.js → Browser-B52Bdaeu.js} +1 -1
  231. package/public/dist/assets/BrowserPanel-Bh3JpkZO.js +3 -0
  232. package/public/dist/assets/BrowserPanel-DpntR8EJ.css +1 -0
  233. package/public/dist/assets/{ChannelsDiscord-BqPckWSY.js → ChannelsDiscord-Bt1_rtNC.js} +1 -1
  234. package/public/dist/assets/{ChannelsTelegram-B9Feggy7.js → ChannelsTelegram-BLV0m1oq.js} +1 -1
  235. package/public/dist/assets/{CodeCanvas-BzhNLZVF.js → CodeCanvas-COgs1P6U.js} +2 -2
  236. package/public/dist/assets/{DashboardEmbeddingSection-CocnWvOE.js → DashboardEmbeddingSection-DMgHZQnn.js} +1 -1
  237. package/public/dist/assets/{DashboardMeta-C9BshDiw.js → DashboardMeta-B7CVqXcU.js} +1 -1
  238. package/public/dist/assets/DesignPanel-3XpGjuEW.css +1 -0
  239. package/public/dist/assets/DesignPanel-BGMPhZSx.js +2 -0
  240. package/public/dist/assets/{DiffPanel-DsFwEFjd.js → DiffPanel-B_ljObDk.js} +1 -1
  241. package/public/dist/assets/{Display-D_r_BwdJ.js → Display-BF-rACK6.js} +1 -1
  242. package/public/dist/assets/{DocPanel-6Z_RELzd.js → DocPanel-DtYwv3n3.js} +1 -1
  243. package/public/dist/assets/{Employees-DL3R3z7K.js → Employees-D3hnciP0.js} +1 -1
  244. package/public/dist/assets/{FolderPanel-DdlzWAuK.js → FolderPanel-DbPhzzvi.js} +3 -3
  245. package/public/dist/assets/{Heartbeat-BblY8Z4a.js → Heartbeat-Dk-_TtKV.js} +1 -1
  246. package/public/dist/assets/{InlineWarn-DrqqH39Y.js → InlineWarn-DDzeHxQw.js} +1 -1
  247. package/public/dist/assets/{MarkdownRenderer-Cl0oEICj.js → MarkdownRenderer-CHacL2M_.js} +2 -2
  248. package/public/dist/assets/MarkdownRenderer-DyrB9FbZ.js +1 -0
  249. package/public/dist/assets/{Mcp-CP6h9IQP.js → Mcp-SfytKWGX.js} +1 -1
  250. package/public/dist/assets/{Memory-BWcfxzCz.js → Memory-BOicOlcn.js} +1 -1
  251. package/public/dist/assets/{MilkdownWysiwygEditor-B-j0IUe6.js → MilkdownWysiwygEditor-BNoLGbFC.js} +1 -1
  252. package/public/dist/assets/{ModelProvider-D4LBX7K2.js → ModelProvider-DQ2AA0gJ.js} +1 -1
  253. package/public/dist/assets/{Network-TkeE8ldB.js → Network-DISUhige.js} +1 -1
  254. package/public/dist/assets/{NotesGraphWorkspace-B55jfeiE.js → NotesGraphWorkspace-Dm1xUFl8.js} +1 -1
  255. package/public/dist/assets/PanelLayoutProvider-XpTo-i_s.js +1 -0
  256. package/public/dist/assets/{Permissions-Dc5xnPMu.js → Permissions-CnKt44dN.js} +1 -1
  257. package/public/dist/assets/Permissions-DNT0TxYL.js +1 -0
  258. package/public/dist/assets/{Profile-Bacunq6W.js → Profile-B8yBO3Ju.js} +1 -1
  259. package/public/dist/assets/{Prompts-D36Mj9HS.js → Prompts-5lNQ5qOm.js} +1 -1
  260. package/public/dist/assets/{SpeechKeys-Dda4Dt6M.js → SpeechKeys-BepaIHBa.js} +1 -1
  261. package/public/dist/assets/{TelegramHub-CuJoPPib.js → TelegramHub--DNjRAwW.js} +1 -1
  262. package/public/dist/assets/{TerminalPanel-DSCJeGjp.js → TerminalPanel-DQovYfwz.js} +1 -1
  263. package/public/dist/assets/{TransportStatusChips-C5QcQVCy.js → TransportStatusChips-Bld0yXi7.js} +1 -1
  264. package/public/dist/assets/app-BJVZZqTm.js +55 -0
  265. package/public/dist/assets/app-CvNmD8jx.css +1 -0
  266. package/public/dist/assets/architecture-7EHR7CIX-D-6Nx315.js +1 -0
  267. package/public/dist/assets/{architectureDiagram-3BPJPVTR-C4lVLx8A.js → architectureDiagram-3BPJPVTR-q8idz3H3.js} +1 -1
  268. package/public/dist/assets/{bgtask-badge-b7pj_Dbh.js → bgtask-badge-Bz8_kUKd.js} +1 -1
  269. package/public/dist/assets/bgtask-badge-iOk9R0RF.js +1 -0
  270. package/public/dist/assets/{blockDiagram-GPEHLZMM-BHjdqDcb.js → blockDiagram-GPEHLZMM-DGB0dsia.js} +1 -1
  271. package/public/dist/assets/{c4Diagram-AAUBKEIU-B1QuN7gf.js → c4Diagram-AAUBKEIU-ChP5YfVt.js} +1 -1
  272. package/public/dist/assets/channel-ByNDsZsH.js +1 -0
  273. package/public/dist/assets/{chunk-2J33WTMH-D1olIwij.js → chunk-2J33WTMH-D3OPoEHg.js} +1 -1
  274. package/public/dist/assets/{chunk-3OPIFGDE-Cf7991q8.js → chunk-3OPIFGDE-CULJ8ZHF.js} +1 -1
  275. package/public/dist/assets/{chunk-4BX2VUAB-zmO3Vjrm.js → chunk-4BX2VUAB-DGgktZYr.js} +1 -1
  276. package/public/dist/assets/{chunk-4EGX6M5U-B-uS9w6F.js → chunk-4EGX6M5U-BD3v8KR4.js} +1 -1
  277. package/public/dist/assets/chunk-55IACEB6-CQFLXxVc.js +1 -0
  278. package/public/dist/assets/{chunk-5DO6E6H7-AkI69lqb.js → chunk-5DO6E6H7-B-FbGqHn.js} +1 -1
  279. package/public/dist/assets/{chunk-5ZQYHXKU-C3d9OOmT.js → chunk-5ZQYHXKU-DVpWOoGS.js} +1 -1
  280. package/public/dist/assets/{chunk-727SXJPM-BOt5gU_h.js → chunk-727SXJPM-CZjR7q6H.js} +1 -1
  281. package/public/dist/assets/{chunk-AQP2D5EJ-CrRyjYkJ.js → chunk-AQP2D5EJ-BlGjnlsV.js} +1 -1
  282. package/public/dist/assets/{chunk-BR22UD5L-DR9GxWFk.js → chunk-BR22UD5L-MK8KuB9X.js} +1 -1
  283. package/public/dist/assets/{chunk-BSJP7CBP-B24w6Ihw.js → chunk-BSJP7CBP-ypXC4wBv.js} +1 -1
  284. package/public/dist/assets/{chunk-CSCIHK7Q-BPBO8B3q.js → chunk-CSCIHK7Q-CmvetykJ.js} +1 -1
  285. package/public/dist/assets/{chunk-FHYWG6QK-CXhRbK1g.js → chunk-FHYWG6QK-Do5csWDm.js} +1 -1
  286. package/public/dist/assets/{chunk-FMBD7UC4-tu50fn_l.js → chunk-FMBD7UC4-BXpT25MP.js} +1 -1
  287. package/public/dist/assets/{chunk-KSCS5N6A-CnJg0Z_l.js → chunk-KSCS5N6A-DtlfLqto.js} +1 -1
  288. package/public/dist/assets/{chunk-L5ZTLDWV-B3Ak80dW.js → chunk-L5ZTLDWV-Czv9NkHn.js} +1 -1
  289. package/public/dist/assets/{chunk-LZXEDZCA-C3fVGX8q.js → chunk-LZXEDZCA-vD7oFdiq.js} +1 -1
  290. package/public/dist/assets/{chunk-MPE355IW-iQbf4K4s.js → chunk-MPE355IW-2ei0PVn0.js} +1 -1
  291. package/public/dist/assets/{chunk-MZUSXYTE-BEKROhpC.js → chunk-MZUSXYTE-JO_qTk4K.js} +1 -1
  292. package/public/dist/assets/{chunk-N66VUXT2-DUtPpNne.js → chunk-N66VUXT2-BXL-FniY.js} +1 -1
  293. package/public/dist/assets/{chunk-ND2GUHAM-DW2SkbNq.js → chunk-ND2GUHAM-B9SIO-4a.js} +1 -1
  294. package/public/dist/assets/{chunk-NZK2D7GU-SJvHIVX3.js → chunk-NZK2D7GU-CqOo06-Z.js} +1 -1
  295. package/public/dist/assets/{chunk-O5CBEL6O-D_hkyy5c.js → chunk-O5CBEL6O-BWbe_grt.js} +1 -1
  296. package/public/dist/assets/{chunk-PUPMXCY4-DcRmz6F2.js → chunk-PUPMXCY4-aFTMGBaR.js} +1 -1
  297. package/public/dist/assets/chunk-QZHKN3VN-Becu19mF.js +1 -0
  298. package/public/dist/assets/{chunk-UIBZB4QT-CFemVDOF.js → chunk-UIBZB4QT-S8EH0jZR.js} +1 -1
  299. package/public/dist/assets/{chunk-WCWK7LTN-B6ske8a4.js → chunk-WCWK7LTN-EgrNk7Dj.js} +1 -1
  300. package/public/dist/assets/chunk-WU5MYG2G-CkoHFn0F.js +1 -0
  301. package/public/dist/assets/{chunk-XPW4576I-elhPZgkY.js → chunk-XPW4576I-8oydVjY6.js} +1 -1
  302. package/public/dist/assets/classDiagram-4FO5ZUOK-DVGoKviY.js +1 -0
  303. package/public/dist/assets/classDiagram-v2-Q7XG4LA2-BIZeptY-.js +1 -0
  304. package/public/dist/assets/{copy-text-BKruhU_y.js → copy-text-BDs2wKjA.js} +1 -1
  305. package/public/dist/assets/{cose-bilkent-S5V4N54A-B-gwVajW.js → cose-bilkent-S5V4N54A-PNmvcq_6.js} +1 -1
  306. package/public/dist/assets/{dagre-BM42HDAG-C9BDjgRM.js → dagre-BM42HDAG-BP_m3uo9.js} +1 -1
  307. package/public/dist/assets/{dagre-HAOs7bVl.js → dagre-Ct2n78X9.js} +1 -1
  308. package/public/dist/assets/{diagram-2AECGRRQ-CvEawheC.js → diagram-2AECGRRQ-DhgfR-ol.js} +1 -1
  309. package/public/dist/assets/{diagram-5GNKFQAL-Da4DwByP.js → diagram-5GNKFQAL-BRLvmdeK.js} +1 -1
  310. package/public/dist/assets/{diagram-KO2AKTUF-Cnhf5Czo.js → diagram-KO2AKTUF-Co3C18-Q.js} +1 -1
  311. package/public/dist/assets/{diagram-LMA3HP47-CMusMTT2.js → diagram-LMA3HP47-3SwoWQij.js} +1 -1
  312. package/public/dist/assets/{diagram-OG6HWLK6-D5nQR5rT.js → diagram-OG6HWLK6-bjEryAd3.js} +1 -1
  313. package/public/dist/assets/{dist-jZTs_0Zg.js → dist-B6T-R4xY.js} +1 -1
  314. package/public/dist/assets/{dist-woWoxWmX.js → dist-B8V2LYzt.js} +1 -1
  315. package/public/dist/assets/{dist-DL8oabBM.js → dist-BDPUxeoi.js} +1 -1
  316. package/public/dist/assets/{dist-Dpn3ujr3.js → dist-BMC_dTfR.js} +1 -1
  317. package/public/dist/assets/{dist-C4WouNM7.js → dist-BSf40pae.js} +1 -1
  318. package/public/dist/assets/{dist-CPOW-jfg.js → dist-BlMOeJym.js} +1 -1
  319. package/public/dist/assets/dist-BmXnOAlo.js +1 -0
  320. package/public/dist/assets/{dist-C_6E126b.js → dist-BqzMcuh8.js} +1 -1
  321. package/public/dist/assets/{dist-CHB0SFvU.js → dist-BvQlb9-o.js} +1 -1
  322. package/public/dist/assets/{dist-BvgkNZ7r.js → dist-C7pD0dEn.js} +1 -1
  323. package/public/dist/assets/{dist-DvlZh9GF.js → dist-CC2vK_6S.js} +1 -1
  324. package/public/dist/assets/{dist-wdt8RQwr.js → dist-CFU9RsAu.js} +1 -1
  325. package/public/dist/assets/{dist-Y5dy_sSf.js → dist-CS1XLdz3.js} +1 -1
  326. package/public/dist/assets/{dist-CiaEUSjf.js → dist-CjzfPsGt.js} +1 -1
  327. package/public/dist/assets/{dist-DlqIM5Y-.js → dist-CvzAXxlb.js} +1 -1
  328. package/public/dist/assets/{dist-CLMpv9qF.js → dist-D8SW_REQ.js} +1 -1
  329. package/public/dist/assets/dist-DLY5I6dK.js +1 -0
  330. package/public/dist/assets/{dist-DfOlJSUk.js → dist-DMZVNaIe.js} +1 -1
  331. package/public/dist/assets/{dist-BSwjNBYz.js → dist-DN-hkAIC.js} +1 -1
  332. package/public/dist/assets/dist-DPHcMCqI.js +1 -0
  333. package/public/dist/assets/{dist-DQR4gW5j.js → dist-DStWZVZ0.js} +1 -1
  334. package/public/dist/assets/{dist-BpbqDhsq.js → dist-DTcoHNXr.js} +1 -1
  335. package/public/dist/assets/{dist-DRKfpxOd.js → dist-DdJuxxG7.js} +1 -1
  336. package/public/dist/assets/{dist-KuP6Gt4m.js → dist-DhgwoIqj.js} +1 -1
  337. package/public/dist/assets/{dist-nbzW6Sn7.js → dist-DmjSXJAP.js} +1 -1
  338. package/public/dist/assets/{dist-8hLkyg-D.js → dist-cBBDKBli.js} +1 -1
  339. package/public/dist/assets/{dist-CKTQ2eXH.js → dist-ph7PUr0c.js} +1 -1
  340. package/public/dist/assets/{dist-DGJG2rr2.js → dist-qUky5WRy.js} +1 -1
  341. package/public/dist/assets/{dist-CYw9JGM_.js → dist-w2YzIhc5.js} +1 -1
  342. package/public/dist/assets/dist-xHOEvyuU.js +1 -0
  343. package/public/dist/assets/{dockerfile-Bq20q5i6.js → dockerfile-C0jniLkw.js} +1 -1
  344. package/public/dist/assets/{employees-DbgFV33i.js → employees-BYebrTfH.js} +1 -1
  345. package/public/dist/assets/{erDiagram-TEJ5UH35-BnsX5Dzt.js → erDiagram-TEJ5UH35-DQBxHU1q.js} +1 -1
  346. package/public/dist/assets/{error-normalize-DLzj47d_.js → error-normalize-BzeO0SXE.js} +1 -1
  347. package/public/dist/assets/eventmodeling-FCH6USID-BB1OVDLb.js +1 -0
  348. package/public/dist/assets/{factor-BfAVKjvH.js → factor-nzjoQ9cK.js} +1 -1
  349. package/public/dist/assets/{fields-MeoSVgIK.js → fields-zkeByFQW.js} +1 -1
  350. package/public/dist/assets/{flowDiagram-I6XJVG4X-BSy1p30u.js → flowDiagram-I6XJVG4X-BN90fCt5.js} +1 -1
  351. package/public/dist/assets/{ganttDiagram-6RSMTGT7-BILWylat.js → ganttDiagram-6RSMTGT7-B-JAlIhh.js} +1 -1
  352. package/public/dist/assets/gitGraph-WXDBUCRP-DAWTa5Fn.js +1 -0
  353. package/public/dist/assets/{gitGraphDiagram-PVQCEYII-BaRlZZ_k.js → gitGraphDiagram-PVQCEYII-CLL2G5U-.js} +1 -1
  354. package/public/dist/assets/{graphlib-DdtRn62K.js → graphlib-B6dRm8vZ.js} +1 -1
  355. package/public/dist/assets/idb-cache-ZH6lOebk.js +1 -0
  356. package/public/dist/assets/iframe-renderer-Clu9EYLW.js +1 -0
  357. package/public/dist/assets/iframe-renderer-DACMLTYf.js +142 -0
  358. package/public/dist/assets/info-J43DQDTF-C530y5-j.js +1 -0
  359. package/public/dist/assets/{infoDiagram-5YYISTIA-BElvxLr3.js → infoDiagram-5YYISTIA-CftYDPfc.js} +1 -1
  360. package/public/dist/assets/{ishikawaDiagram-YF4QCWOH-DPQZsd5R.js → ishikawaDiagram-YF4QCWOH-BVa5AJbz.js} +1 -1
  361. package/public/dist/assets/javascript-DbM-pSY-.js +1 -0
  362. package/public/dist/assets/{journeyDiagram-JHISSGLW-BJZNR2qA.js → journeyDiagram-JHISSGLW-BeUKm6ME.js} +1 -1
  363. package/public/dist/assets/{kanban-definition-UN3LZRKU-OQLDtH0g.js → kanban-definition-UN3LZRKU-K5DYNY4p.js} +1 -1
  364. package/public/dist/assets/{manager-rHNwUB4e.css → manager-C4eNDNFt.css} +1 -1
  365. package/public/dist/assets/manager-pcvo6od1.js +13 -0
  366. package/public/dist/assets/{memory-QobGT0Kv.js → memory-DLD5Xpk8.js} +1 -1
  367. package/public/dist/assets/memory-oWWwCkg5.js +1 -0
  368. package/public/dist/assets/mermaid-loader-Bd9rYyxD.js +1 -0
  369. package/public/dist/assets/{mermaid-parser.core-D1KUUauv.js → mermaid-parser.core-Cz70RgAa.js} +1 -1
  370. package/public/dist/assets/mermaid-preprocess-0hqEN7sn.js +5 -0
  371. package/public/dist/assets/{mermaid.core-R6dUFqZC.js → mermaid.core-Dj5GOPe1.js} +2 -2
  372. package/public/dist/assets/mermaid.core-TSG49mwm.js +1 -0
  373. package/public/dist/assets/message-history-C6D4juRe.js +1 -0
  374. package/public/dist/assets/message-history-DdIshS4Q.js +1 -0
  375. package/public/dist/assets/{mindmap-definition-RKZ34NQL-B8WJHpYI.js → mindmap-definition-RKZ34NQL-PsH0E_3e.js} +1 -1
  376. package/public/dist/assets/{nsis-CIoRNUaw.js → nsis-BI3I3OhH.js} +1 -1
  377. package/public/dist/assets/packet-YPE3B663-BHcxn4sy.js +1 -0
  378. package/public/dist/assets/{page-shell-BeAyKBJW.js → page-shell-LF7vVVfG.js} +1 -1
  379. package/public/dist/assets/pi-settings-CBUGDAuT.js +1 -0
  380. package/public/dist/assets/pie-LRSECV5Y-DjigSia_.js +1 -0
  381. package/public/dist/assets/{pieDiagram-4H26LBE5-BuBruIcx.js → pieDiagram-4H26LBE5-Dtwtlr0z.js} +1 -1
  382. package/public/dist/assets/{pug-Cb8OCun5.js → pug-DHfNwv1w.js} +1 -1
  383. package/public/dist/assets/{quadrantDiagram-W4KKPZXB-B6rzGZvr.js → quadrantDiagram-W4KKPZXB-CAFUbaV6.js} +1 -1
  384. package/public/dist/assets/radar-GUYGQ44K-DPCrmsHJ.js +1 -0
  385. package/public/dist/assets/{react-dom-CZtrmbYs.js → react-dom-AWKMTIe7.js} +1 -1
  386. package/public/dist/assets/render-E2PXsTyS.js +122 -0
  387. package/public/dist/assets/{requirementDiagram-4Y6WPE33-Cvj5JknB.js → requirementDiagram-4Y6WPE33-CvBM4AjK.js} +1 -1
  388. package/public/dist/assets/{sankeyDiagram-5OEKKPKP-DNGNYR7j.js → sankeyDiagram-5OEKKPKP-cordQgRs.js} +1 -1
  389. package/public/dist/assets/{sequenceDiagram-3UESZ5HK-DuUAH96Z.js → sequenceDiagram-3UESZ5HK-DDAqRdga.js} +1 -1
  390. package/public/dist/assets/{settings-D70uFh8l.js → settings-DYIfnpYq.js} +1 -1
  391. package/public/dist/assets/settings-core-BURhLoX3.js +1 -0
  392. package/public/dist/assets/{settings-core-B2lw2bgO.js → settings-core-DRYE_5Wb.js} +1 -1
  393. package/public/dist/assets/settings-yyDc7X3c.js +1 -0
  394. package/public/dist/assets/{sidebar-BqWm2XWP.js → sidebar-Cn-KLQ0U.js} +3 -3
  395. package/public/dist/assets/{skills-CdNOfXlk.js → skills-Brt3opa5.js} +1 -1
  396. package/public/dist/assets/skills-KHfKUuAJ.js +1 -0
  397. package/public/dist/assets/{slash-commands-4Ntm5N7h.js → slash-commands-jMNf0b43.js} +1 -1
  398. package/public/dist/assets/slash-commands-nb096e6A.js +1 -0
  399. package/public/dist/assets/{stateDiagram-AJRCARHV-DGZNs20Q.js → stateDiagram-AJRCARHV-DUaoSRgZ.js} +1 -1
  400. package/public/dist/assets/stateDiagram-v2-BHNVJYJU-BAesfdhr.js +1 -0
  401. package/public/dist/assets/{timeline-definition-PNZ67QCA-yDl1yISI.js → timeline-definition-PNZ67QCA-D85QNy9b.js} +1 -1
  402. package/public/dist/assets/{trace-drawer-DqAwwHHQ.js → trace-drawer-Dv5cDGLR.js} +1 -1
  403. package/public/dist/assets/treeView-BLDUP644-DmufUMul.js +1 -0
  404. package/public/dist/assets/treemap-LRROVOQU-Cg48uw_D.js +1 -0
  405. package/public/dist/assets/ui-BeyzLs7f.js +2 -0
  406. package/public/dist/assets/ui-DabvyDGc.js +1 -0
  407. package/public/dist/assets/{vennDiagram-CIIHVFJN-C0TNoBYO.js → vennDiagram-CIIHVFJN-CQSILdx8.js} +1 -1
  408. package/public/dist/assets/wardley-L42UT6IY-QZOEXU7f.js +1 -0
  409. package/public/dist/assets/{wardleyDiagram-YWT4CUSO-C6cJR4Ib.js → wardleyDiagram-YWT4CUSO-BZEVMlJ4.js} +1 -1
  410. package/public/dist/assets/{wiki-link-suggestions-BMHWTE4_.js → wiki-link-suggestions-DZQc78gj.js} +1 -1
  411. package/public/dist/assets/{xychartDiagram-2RQKCTM6-DqEqpcox.js → xychartDiagram-2RQKCTM6-C8573Tgs.js} +1 -1
  412. package/public/dist/index.html +2 -2
  413. package/public/dist/manager/index.html +2 -2
  414. package/public/js/diagram/iframe-renderer.ts +197 -49
  415. package/public/js/diagram/widget-validator.ts +17 -3
  416. package/public/js/features/chat-messages.ts +5 -1
  417. package/public/js/features/chat-scroll.ts +10 -5
  418. package/public/js/features/chat.ts +9 -1
  419. package/public/js/features/elicitation.ts +1 -5
  420. package/public/js/features/message-item-html.ts +3 -1
  421. package/public/js/features/process-block.ts +46 -3
  422. package/public/js/features/settings-mcp.ts +1 -1
  423. package/public/js/locale.ts +2 -2
  424. package/public/js/main.ts +15 -4
  425. package/public/js/preview-parent-origin.ts +73 -9
  426. package/public/js/render/chart-json.ts +2 -5
  427. package/public/js/render/compose-block.ts +2 -5
  428. package/public/js/render/dataframe.ts +2 -5
  429. package/public/js/render/diff-viewer.ts +2 -5
  430. package/public/js/render/link-preview.ts +1 -5
  431. package/public/js/render/markdown.ts +22 -0
  432. package/public/js/render/post-render.ts +7 -3
  433. package/public/js/render/sanitize.ts +6 -0
  434. package/public/js/render/search-results.ts +2 -5
  435. package/public/js/streaming-render.ts +12 -1
  436. package/public/js/ui.ts +6 -3
  437. package/public/js/ws.ts +39 -25
  438. package/public/locales/en.json +2 -1
  439. package/public/locales/ja.json +2 -1
  440. package/public/locales/ko.json +2 -1
  441. package/public/locales/zh.json +2 -1
  442. package/public/manager/src/InstancePreview.tsx +35 -0
  443. package/public/manager/src/SidebarRailRouter.tsx +209 -124
  444. package/public/manager/src/browser-panel/BrowserPanel.tsx +714 -17
  445. package/public/manager/src/browser-panel/browser-panel.css +305 -0
  446. package/public/manager/src/browser-panel/use-embedded-target-sync.ts +182 -0
  447. package/public/manager/src/components/DesktopPanelControls.tsx +1 -1
  448. package/public/manager/src/design-panel/DesignPageSelector.tsx +27 -0
  449. package/public/manager/src/design-panel/DesignPanel.tsx +265 -0
  450. package/public/manager/src/design-panel/DesignViewport.tsx +34 -0
  451. package/public/manager/src/design-panel/design-api.ts +106 -0
  452. package/public/manager/src/design-panel/design-panel.css +137 -0
  453. package/public/manager/src/design-panel/design-types.ts +43 -0
  454. package/public/manager/src/folder-panel/FolderPanel.tsx +15 -1
  455. package/public/manager/src/jaw-ceo/JawCeoWorkbenchButton.tsx +10 -5
  456. package/public/manager/src/jaw-ceo/jaw-ceo.css +8 -0
  457. package/public/manager/src/jaw-ceo/useJawCeoDashboardBridge.tsx +2 -1
  458. package/public/manager/src/panels/FileFolderSplitPanel.tsx +97 -0
  459. package/public/manager/src/panels/PanelErrorBoundary.tsx +44 -0
  460. package/public/manager/src/panels/PanelLayoutProvider.tsx +569 -86
  461. package/public/manager/src/panels/RightSidebar.tsx +389 -134
  462. package/public/manager/src/panels/desktop-bridge.ts +88 -0
  463. package/public/manager/src/panels/panel-layout-registry-state.ts +252 -10
  464. package/public/manager/src/panels/panels.css +479 -0
  465. package/public/manager/src/panels/right-sidebar-tab-display.ts +36 -0
  466. package/public/manager/src/panels/types.ts +79 -4
  467. package/public/manager/src/types.ts +11 -0
  468. package/scripts/bundle-sidecar.sh +3 -0
  469. package/scripts/check-strict-baseline.mjs +26 -2
  470. package/scripts/docs/check-docs.mts +87 -0
  471. package/scripts/docs/extract-commands.mts +215 -0
  472. package/scripts/docs/extract-routes.mts +350 -0
  473. package/scripts/release-gates.mjs +32 -0
  474. package/public/dist/assets/BrowserPanel-CV_bbQpM.css +0 -1
  475. package/public/dist/assets/BrowserPanel-Ua0Xck6V.js +0 -1
  476. package/public/dist/assets/MarkdownRenderer-BivJ4hJm.js +0 -1
  477. package/public/dist/assets/Permissions-CddCEaJl.js +0 -1
  478. package/public/dist/assets/app-BPsa7jSJ.css +0 -1
  479. package/public/dist/assets/app-DszWzakT.js +0 -55
  480. package/public/dist/assets/architecture-7EHR7CIX-GJhmD5MC.js +0 -1
  481. package/public/dist/assets/bgtask-badge-DZEQ5fMl.js +0 -1
  482. package/public/dist/assets/channel-Sut8CY6m.js +0 -1
  483. package/public/dist/assets/chunk-55IACEB6-C3KMx7HH.js +0 -1
  484. package/public/dist/assets/chunk-QZHKN3VN-C7Qk10ab.js +0 -1
  485. package/public/dist/assets/chunk-WU5MYG2G-BpCiJpUL.js +0 -1
  486. package/public/dist/assets/classDiagram-4FO5ZUOK-BVeAlcVw.js +0 -1
  487. package/public/dist/assets/classDiagram-v2-Q7XG4LA2-mvRsJL7t.js +0 -1
  488. package/public/dist/assets/dist-BQ6IjZAx.js +0 -1
  489. package/public/dist/assets/dist-CB1yXHdY.js +0 -1
  490. package/public/dist/assets/dist-El7lM3OZ.js +0 -1
  491. package/public/dist/assets/dist-ZXqltO6b.js +0 -1
  492. package/public/dist/assets/eventmodeling-FCH6USID-BASBZB6y.js +0 -1
  493. package/public/dist/assets/gitGraph-WXDBUCRP-C6UAXKTO.js +0 -1
  494. package/public/dist/assets/idb-cache-DQM-odDV.js +0 -1
  495. package/public/dist/assets/info-J43DQDTF-DZvaZ8fx.js +0 -1
  496. package/public/dist/assets/javascript-ocJZALE4.js +0 -1
  497. package/public/dist/assets/manager-CdNOlCyS.js +0 -13
  498. package/public/dist/assets/memory-BT-rs3ag.js +0 -1
  499. package/public/dist/assets/mermaid-loader-BMIvbrMb.js +0 -1
  500. package/public/dist/assets/mermaid-preprocess-CqOBWYEb.js +0 -5
  501. package/public/dist/assets/mermaid.core-CE6des8A.js +0 -1
  502. package/public/dist/assets/message-history-BY1UNJAO.js +0 -1
  503. package/public/dist/assets/message-history-BmP5JKio.js +0 -142
  504. package/public/dist/assets/packet-YPE3B663-Br_gfHDJ.js +0 -1
  505. package/public/dist/assets/pi-settings-BVYmGHWD.js +0 -1
  506. package/public/dist/assets/pie-LRSECV5Y-CPSw09Lc.js +0 -1
  507. package/public/dist/assets/radar-GUYGQ44K-D5jGe4n0.js +0 -1
  508. package/public/dist/assets/render-C3r-9_-J.js +0 -119
  509. package/public/dist/assets/settings-CJm8ZSJs.js +0 -1
  510. package/public/dist/assets/settings-core-gdS0lo1b.js +0 -1
  511. package/public/dist/assets/skills-DG_CbTEf.js +0 -1
  512. package/public/dist/assets/slash-commands-B9kOEhJ_.js +0 -1
  513. package/public/dist/assets/stateDiagram-v2-BHNVJYJU-D2I0t9Bo.js +0 -1
  514. package/public/dist/assets/treeView-BLDUP644-i3ZwrLGf.js +0 -1
  515. package/public/dist/assets/treemap-LRROVOQU-CJRBfbOx.js +0 -1
  516. package/public/dist/assets/ui-Anw2S64o.js +0 -1
  517. package/public/dist/assets/ui-DsK6r0Xv.js +0 -2
  518. package/public/dist/assets/wardley-L42UT6IY-B1NLyOET.js +0 -1
  519. /package/public/dist/assets/{agent-meta-FyI15KAa.js → agent-meta-tiPlp7OI.js} +0 -0
  520. /package/public/dist/assets/{api-DvCd2Uff.js → api-C9dOxby7.js} +0 -0
  521. /package/public/dist/assets/{apl-CUNx2Nxr.js → apl-2tE96F_Y.js} +0 -0
  522. /package/public/dist/assets/{asciiarmor-B9JjJqLb.js → asciiarmor-ynSKiC17.js} +0 -0
  523. /package/public/dist/assets/{asn1-NstwUq_r.js → asn1-CfqO1VY8.js} +0 -0
  524. /package/public/dist/assets/{asterisk-Box6GWx7.js → asterisk-DSiRJoqT.js} +0 -0
  525. /package/public/dist/assets/{brainfuck-DAD60u2v.js → brainfuck-DTcanv-8.js} +0 -0
  526. /package/public/dist/assets/{chunk-AGHRB4JF-BeNb9aN4.js → chunk-AGHRB4JF-BXLzSehp.js} +0 -0
  527. /package/public/dist/assets/{chunk-NNHCCRGN-hPUSf84G.js → chunk-NNHCCRGN-D69GtSOc.js} +0 -0
  528. /package/public/dist/assets/{clike-B-3e4_rA.js → clike-qn72CMAj.js} +0 -0
  529. /package/public/dist/assets/{clojure-DpNVclFl.js → clojure-m8yDiYVc.js} +0 -0
  530. /package/public/dist/assets/{cmake-DzNe63Ys.js → cmake-4AHAWHiF.js} +0 -0
  531. /package/public/dist/assets/{cobol-CoytNvhw.js → cobol-CxxJP5eX.js} +0 -0
  532. /package/public/dist/assets/{coffeescript-Cq3xHp7h.js → coffeescript-BAB3zi48.js} +0 -0
  533. /package/public/dist/assets/{commonlisp-CVjsh9SW.js → commonlisp-BPbWuAds.js} +0 -0
  534. /package/public/dist/assets/{constants-EMUBd5RQ.js → constants-DzwdndBj.js} +0 -0
  535. /package/public/dist/assets/{crystal-BlIILE-v.js → crystal-CGuSsWYR.js} +0 -0
  536. /package/public/dist/assets/{css-D1TAh_-V.js → css-DszbR74r.js} +0 -0
  537. /package/public/dist/assets/{cypher-ZntLuJzU.js → cypher-GUnmv522.js} +0 -0
  538. /package/public/dist/assets/{cytoscape.esm-89N3cqwG.js → cytoscape.esm-D_XyYSBG.js} +0 -0
  539. /package/public/dist/assets/{d-CzwXOQ5h.js → d-Cfm0cznj.js} +0 -0
  540. /package/public/dist/assets/{desktop-bridge-B1whMBS2.js → desktop-bridge-CvdhnJQo.js} +0 -0
  541. /package/public/dist/assets/{diff-DI7-Ikca.js → diff-C6rPA7NX.js} +0 -0
  542. /package/public/dist/assets/{dist-B51C28kc.js → dist-AgQwqBLq.js} +0 -0
  543. /package/public/dist/assets/{dtd-7UKQtPWR.js → dtd-Dxh5tS6M.js} +0 -0
  544. /package/public/dist/assets/{dylan-CM1mkXYp.js → dylan-BdIVFR1j.js} +0 -0
  545. /package/public/dist/assets/{ebnf-Llv_5uW5.js → ebnf-iU-8xYFu.js} +0 -0
  546. /package/public/dist/assets/{ecl-uqtp9saI.js → ecl-DjbzOHI6.js} +0 -0
  547. /package/public/dist/assets/{eiffel-BqzGlVPY.js → eiffel-B2ID8LZ3.js} +0 -0
  548. /package/public/dist/assets/{elm-bajSbBYX.js → elm-B6vPcfMj.js} +0 -0
  549. /package/public/dist/assets/{erlang-B5uEM5Ke.js → erlang-nDQwRdZV.js} +0 -0
  550. /package/public/dist/assets/{esm-3SgqVBY5.js → esm-CT1xxdH5.js} +0 -0
  551. /package/public/dist/assets/{fcl-BcH_K33Z.js → fcl-Bf86o55I.js} +0 -0
  552. /package/public/dist/assets/{folder-drag-payload-DE3ZS9PZ.js → folder-drag-payload-Bhln9Mk2.js} +0 -0
  553. /package/public/dist/assets/{forth-DpLesGXt.js → forth-CeQJji0n.js} +0 -0
  554. /package/public/dist/assets/{fortran--G-GJVGI.js → fortran-Dm_CqDsH.js} +0 -0
  555. /package/public/dist/assets/{gas-DpoQvniR.js → gas-e3EfgE3p.js} +0 -0
  556. /package/public/dist/assets/{gherkin-Dr59UACG.js → gherkin-Dn_7tSzg.js} +0 -0
  557. /package/public/dist/assets/{groovy-Cn2K6Dx3.js → groovy-LaKuGRkK.js} +0 -0
  558. /package/public/dist/assets/{haskell-B7lFmXEG.js → haskell-D9nNX9Mr.js} +0 -0
  559. /package/public/dist/assets/{haxe-BHWvyysr.js → haxe-Rp176QXJ.js} +0 -0
  560. /package/public/dist/assets/{http-DBZ5ODWR.js → http-BOeYLbuM.js} +0 -0
  561. /package/public/dist/assets/{idb-cache-DTKWSF12.js → idb-cache-BzzftUET.js} +0 -0
  562. /package/public/dist/assets/{idl-D6JLbJZt.js → idl-DHv3vdme.js} +0 -0
  563. /package/public/dist/assets/{javascript-CMsRa3Ah.js → javascript-Dk2fbl1a.js} +0 -0
  564. /package/public/dist/assets/{jsx-runtime-B3ZGMGGg.js → jsx-runtime-gFMgZ0TQ.js} +0 -0
  565. /package/public/dist/assets/{julia-BgEiFqoe.js → julia-D7CKCk5I.js} +0 -0
  566. /package/public/dist/assets/{livescript-Bl00ljSh.js → livescript-gRbr9rhj.js} +0 -0
  567. /package/public/dist/assets/{locale-GY3-GGWm.js → locale-DC-ZsWOf.js} +0 -0
  568. /package/public/dist/assets/{lua-C7XaZlrp.js → lua-CgZ_7bxf.js} +0 -0
  569. /package/public/dist/assets/{mathematica-8EcxUjYb.js → mathematica-B6bTyoab.js} +0 -0
  570. /package/public/dist/assets/{mbox-rZy25Spd.js → mbox-C8oQj1cJ.js} +0 -0
  571. /package/public/dist/assets/{mirc-BUmwqSCT.js → mirc-v6L6kZuh.js} +0 -0
  572. /package/public/dist/assets/{mllike-BqDqEdQF.js → mllike-CWu4RdWO.js} +0 -0
  573. /package/public/dist/assets/{modelica-MhacK6Xw.js → modelica-B3NBpX1d.js} +0 -0
  574. /package/public/dist/assets/{mscgen-B_VJszPL.js → mscgen-C8u7qRYw.js} +0 -0
  575. /package/public/dist/assets/{mumps-CEdRH9V2.js → mumps-DHjVG4PS.js} +0 -0
  576. /package/public/dist/assets/{nginx-CnXgGeyP.js → nginx-BMt87X3t.js} +0 -0
  577. /package/public/dist/assets/{notes-graph-settings-BaqO8hYl.js → notes-graph-settings-BgNrT_58.js} +0 -0
  578. /package/public/dist/assets/{ntriples-CyZcmI8c.js → ntriples-C8U-Jud2.js} +0 -0
  579. /package/public/dist/assets/{octave-DGH2kDhB.js → octave-Bq37AoFm.js} +0 -0
  580. /package/public/dist/assets/{oz-DUSpf7eX.js → oz-D6HxSRn3.js} +0 -0
  581. /package/public/dist/assets/{pascal-BYIqfrcG.js → pascal-BBqiAVg6.js} +0 -0
  582. /package/public/dist/assets/{path-utils-DX1HplvB.js → path-utils-LsJeDCKF.js} +0 -0
  583. /package/public/dist/assets/{perl-C7iNkbFR.js → perl-sHANlXjx.js} +0 -0
  584. /package/public/dist/assets/{pi-settings-D6opgoo4.js → pi-settings-Dh5lgb87.js} +0 -0
  585. /package/public/dist/assets/{pig-CR5p2dpV.js → pig-Cufgew--.js} +0 -0
  586. /package/public/dist/assets/{powershell-UK-_nKBG.js → powershell--Q4mDip6.js} +0 -0
  587. /package/public/dist/assets/{properties-CJAqwakm.js → properties-DoVpJ-kT.js} +0 -0
  588. /package/public/dist/assets/{protobuf-D3Vrac9j.js → protobuf-B5OiV2Zv.js} +0 -0
  589. /package/public/dist/assets/{provider-icons-BXm8sy5x.js → provider-icons-stsNmQKx.js} +0 -0
  590. /package/public/dist/assets/{puppet-DxgW6kGv.js → puppet-Ce_CFfqW.js} +0 -0
  591. /package/public/dist/assets/{python-C_ebQp0Y.js → python-pK7Wt6QH.js} +0 -0
  592. /package/public/dist/assets/{q-IMCDaQ03.js → q-Dd3Ltku0.js} +0 -0
  593. /package/public/dist/assets/{r-BXdh3mvZ.js → r-CsX__2f0.js} +0 -0
  594. /package/public/dist/assets/{rough.esm-BJMyUbab.js → rough.esm--LLpAgPj.js} +0 -0
  595. /package/public/dist/assets/{rpm-DA-4RGFa.js → rpm-D78AjDAl.js} +0 -0
  596. /package/public/dist/assets/{ruby-Bl1KGNRx.js → ruby-D_-KI498.js} +0 -0
  597. /package/public/dist/assets/{sas-vK1DtUVf.js → sas-D-GUPiy4.js} +0 -0
  598. /package/public/dist/assets/{scheme-DiOFQmiy.js → scheme-DF9WwQDv.js} +0 -0
  599. /package/public/dist/assets/{settings-client-Di8KLXq_.js → settings-client-CjbBShxm.js} +0 -0
  600. /package/public/dist/assets/{shell-DlO-WCDP.js → shell-BTUwbV-w.js} +0 -0
  601. /package/public/dist/assets/{sieve-CbtkgRpt.js → sieve--Z-EbGZo.js} +0 -0
  602. /package/public/dist/assets/{simple-mode-BlwHYanN.js → simple-mode-BUow4bpn.js} +0 -0
  603. /package/public/dist/assets/{smalltalk-BvKYa3AC.js → smalltalk-C2YIwVx3.js} +0 -0
  604. /package/public/dist/assets/{solr-BR4fru6p.js → solr-CYVq4fbf.js} +0 -0
  605. /package/public/dist/assets/{sparql-DXGln-02.js → sparql-Ccd4fsFv.js} +0 -0
  606. /package/public/dist/assets/{spreadsheet-vehQVAxe.js → spreadsheet-DW0WgMrS.js} +0 -0
  607. /package/public/dist/assets/{sql-DqGFyXDS.js → sql-C71Zp6qn.js} +0 -0
  608. /package/public/dist/assets/{stex-BMDhbycI.js → stex-CKuX0g_6.js} +0 -0
  609. /package/public/dist/assets/{stylus-KnS0CroG.js → stylus-CBH8s0NO.js} +0 -0
  610. /package/public/dist/assets/{swift-DgdcCI7r.js → swift-CfZoxKRA.js} +0 -0
  611. /package/public/dist/assets/{tcl-BdAMpvp9.js → tcl-D5MGbeQu.js} +0 -0
  612. /package/public/dist/assets/{textile-BHP2MzNo.js → textile-DJ3U30FW.js} +0 -0
  613. /package/public/dist/assets/{tiddlywiki-DXpY2p61.js → tiddlywiki-_fe1dHUq.js} +0 -0
  614. /package/public/dist/assets/{tiki-rmXXYsbl.js → tiki-Dd1udTrQ.js} +0 -0
  615. /package/public/dist/assets/{toml-C5KR4pi6.js → toml-xpw8pqjz.js} +0 -0
  616. /package/public/dist/assets/{troff-CCKOxFhE.js → troff-CgWiec8m.js} +0 -0
  617. /package/public/dist/assets/{ttcn-DbUUkNp1.js → ttcn-CSwmFrer.js} +0 -0
  618. /package/public/dist/assets/{ttcn-cfg-DXcL9aHC.js → ttcn-cfg-B5HVIC6z.js} +0 -0
  619. /package/public/dist/assets/{turtle-C8XIIixq.js → turtle-Cl_SuWQk.js} +0 -0
  620. /package/public/dist/assets/{vb-6dJ8H6C5.js → vb-BT131bSf.js} +0 -0
  621. /package/public/dist/assets/{vbscript-DIhYyfyM.js → vbscript-D6S8_XkU.js} +0 -0
  622. /package/public/dist/assets/{velocity-D4VFCVF7.js → velocity-9HkI645n.js} +0 -0
  623. /package/public/dist/assets/{vendor-utils-BgdgpA_R.js → vendor-utils-DJY0EWnQ.js} +0 -0
  624. /package/public/dist/assets/{verilog-CMPJNboz.js → verilog-BzMguKeI.js} +0 -0
  625. /package/public/dist/assets/{vhdl-CnU0dAe0.js → vhdl-bHScWzT1.js} +0 -0
  626. /package/public/dist/assets/{w3c-keyname-_Vjqp3zl.js → w3c-keyname-a_sRwNLm.js} +0 -0
  627. /package/public/dist/assets/{webidl-DrscPGMb.js → webidl-CbgaVHNS.js} +0 -0
  628. /package/public/dist/assets/{wiki-link-resolver-C197VhRP.js → wiki-link-resolver-BfNXN9px.js} +0 -0
  629. /package/public/dist/assets/{xquery-B8_nl088.js → xquery-DWZPmAiC.js} +0 -0
  630. /package/public/dist/assets/{yacas-BCnk2qQq.js → yacas-CEdW4z4K.js} +0 -0
  631. /package/public/dist/assets/{z80-CG_mQV7a.js → z80-CMH3qxNg.js} +0 -0
@@ -1,119 +0,0 @@
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,L as t,R as n,_ as r,a as i,b as a,c as o,d as s,f as c,g as l,h as u,i as d,l as f,m as p,o as ee,p as te,s as ne,u as re,v as ie,x as m,y as ae}from"./vendor-render-DCb9B75Q.js";import{i as oe,t as se}from"./api-tVoG39dL.js";import{t as h}from"./preload-helper-DFYRRz9w.js";import{a as ce,i as le,n as ue,o as de,r as fe,t as pe}from"./mermaid-preprocess-CqOBWYEb.js";import{$ as me,$t as he,A as ge,At as _e,B as ve,Bt as ye,C as be,Cn as xe,Ct as Se,D as Ce,Dt as we,E as Te,Et as Ee,F as De,Ft as Oe,G as ke,Gt as Ae,H as je,Ht as Me,I as Ne,It as Pe,J as Fe,Jt as Ie,K as Le,Kt as Re,L as ze,Lt as Be,M as Ve,Mt as He,N as Ue,Nt as We,O as Ge,Ot as Ke,P as qe,Pt as Je,Q as Ye,Qt as Xe,R as Ze,Rt as Qe,S as $e,Sn as et,St as tt,T as nt,Tn as rt,Tt as it,U as at,Ut as ot,V as st,Vt as ct,W as lt,Wt as ut,X as dt,Xt as ft,Y as pt,Yt as mt,Z as ht,Zt as gt,_ as _t,_n as vt,_t as yt,a as bt,an as xt,at as St,b as Ct,bn as wt,bt as Tt,c as Et,cn as Dt,ct as Ot,d as kt,dn as At,dt as jt,en as Mt,et as Nt,f as Pt,fn as Ft,ft as It,g as Lt,gn as Rt,gt as zt,h as Bt,hn as Vt,ht as Ht,i as Ut,in as Wt,it as Gt,j as Kt,jt as qt,k as Jt,kt as Yt,l as Xt,ln as Zt,lt as Qt,m as $t,mn as en,mt as tn,n as nn,nn as rn,nt as an,o as on,on as sn,ot as cn,p as ln,pn as un,pt as dn,q as fn,qt as pn,r as mn,rn as hn,rt as gn,s as _n,sn as vn,st as yn,t as bn,tn as xn,tt as Sn,u as Cn,un as wn,ut as Tn,v as En,vn as Dn,vt as On,w as kn,wn as An,wt as jn,x as Mn,xn as Nn,xt as Pn,y as Fn,yn as In,yt as Ln,z as Rn,zt as zn}from"./vendor-icons-eoCVgkBn.js";var Bn=[`en`,`ko`,`zh`,`ja`],g=`ko`,Vn={},_={};async function Hn(){let e=null;try{e=localStorage.getItem(`claw_locale`)}catch{}if(!e){let t=(navigator.language||`ko`).split(/[-_]/)[0].toLowerCase();e=Bn.includes(t)?t:`ko`}_=await Un(`ko`),Vn=e===`ko`?_:await Un(e),g=e,document.documentElement.lang=g,Wn()}async function Un(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 v(e,t={}){let n=Vn[e]??_[e]??e;for(let[e,r]of Object.entries(t))n=n.replaceAll(`{${e}}`,String(r));return n}function Wn(){document.querySelectorAll(`[data-i18n]`).forEach(e=>{let t=e.getAttribute(`data-i18n`);t&&(e.textContent=v(t))}),document.querySelectorAll(`[data-i18n-placeholder]`).forEach(e=>{let t=e.getAttribute(`data-i18n-placeholder`);t&&(e.placeholder=v(t))}),document.querySelectorAll(`[data-i18n-title]`).forEach(e=>{let t=e.getAttribute(`data-i18n-title`);t&&(e.title=v(t))}),document.querySelectorAll(`[data-i18n-aria]`).forEach(e=>{let t=e.getAttribute(`data-i18n-aria`);t&&e.setAttribute(`aria-label`,v(t))})}async function Gn(e){if(e!==g){Bn.includes(e)||(e=`ko`),Vn=e===`ko`?_:await Un(e),g=e,document.documentElement.lang=g;try{localStorage.setItem(`claw_locale`,e)}catch{}Wn();try{let{loadEmployees:e}=await h(async()=>{let{loadEmployees:e}=await import(`./employees-DbgFV33i.js`);return{loadEmployees:e}},__vite__mapDeps([0]));e()}catch{}try{let{loadSkills:e}=await h(async()=>{let{loadSkills:e}=await import(`./skills-DG_CbTEf.js`);return{loadSkills:e}},[]);e()}catch{}try{let{loadCommands:e}=await h(async()=>{let{loadCommands:e}=await import(`./slash-commands-B9kOEhJ_.js`);return{loadCommands:e}},[]);e()}catch{}try{let{loadSettings:e}=await h(async()=>{let{loadSettings:e}=await import(`./settings-CJm8ZSJs.js`);return{loadSettings:e}},[]);e()}catch{}}}function Kn(){return g}function qn(e,t={}){let n=new URL(e,location.origin);return n.searchParams.has(`locale`)||n.searchParams.set(`locale`,g),fetch(n.toString(),t)}function Jn(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 Yn=0;function Xn(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-${Yn++}\x00`;return t.set(n,e),n}),fences:t}}function Zn(e,t){for(let[n,r]of t)e=e.replace(n,()=>r);return e}function Qn(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=Yn++,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=Yn++;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 y(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&#39;`)}var $n=/["'](?:subtasks|employee_config|agent_phases|orchestration_plan)["']\s*:/,er=/(^|\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 tr(e){let t=er.exec(e);return!t||t.index<0?e:e.slice(0,t.index).trim()}function nr(e){let t=e.replace(/```json\n([\s\S]*?)\n```/g,(e,t)=>$n.test(t)?``:e);return t=t.replace(/\{[^{}]*"subtasks"\s*:\s*\[[\s\S]*?\]\s*\}/g,``).trim(),tr(t)}function rr(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 ir(t,n,r=!1){return t.replace(/\x00MATH-(\d+)\x00/g,(t,i)=>{let a=n[Number(i)];if(!a)return`<code title="math placeholder error">[math error]</code>`;if(r)return a.displayMode?`<div class="math-placeholder">${y(a.tex)}</div>`:`<code class="math-placeholder">${y(a.tex)}</code>`;try{return e.renderToString(a.tex,{displayMode:a.displayMode,throwOnError:!1})}catch{return a.displayMode?`<pre><code>${y(a.tex)}</code></pre>`:`<code>${y(a.tex)}</code>`}})}var ar={"✅":`check`,"❌":`error`,"❔":`unknown`,"🔧":`tool`,"⏭":`skip`,"🧠":`brain`,"💓":`heartPulse`,"🔒":`lock`,"🔓":`lockOpen`,"🔑":`key`,"⚙":`settings`,"⚙️":`settings`,"📄":`file`,"🗑":`trash`,"🗑️":`trash`,"⚠":`warning`,"⚠️":`warning`,"💡":`lightbulb`,"🦈":`shark`,"👤":`user`,"💭":`thinking`,"💬":`message`,"🔍":`search`,"🌐":`web`,"⚡":`exec`,"💻":`terminal`,"🗜":`compacting`,"🗜️":`compacting`,"📝":`plan`,"📑":`clipboard`,"🤖":`robot`,"📋":`clipboard`,"🔄":`refresh`,"🎨":`palette`,"🎤":`mic`,"🔗":`link`,"🫡":`salute`,"📎":`paperclip`,"💾":`save`,"🎮":`gamepad`,"🏠":`house`,"📡":`radio`,"📂":`folder`,"✏️":`pencil`,"📊":`chart`,"🎙️":`mic`,"⏳":`hourglass`,"⏹️":`stop`,"🎯":`target`,"📨":`send`,"🚫":`ban`,"▶":`play`,"🔐":`permission`,"📖":`read`},or={"🧪":`test`,"🏗️":`architecture`,"🍎":`apple`,"🔴":`statusDot`,"🎬":`video`,"🐍":`code`,"🐛":`bug`,"📐":`drafting`,"📚":`library`,"📦":`package`,"🔬":`research`,"🖼️":`image`,"🗃️":`database`,"▲":`triangle`,"🇰🇷":`korea`,"✍️":`pen`,"🎥":`video`,"🐘":`database`,"🐦":`message`,"👥":`people`,"📏":`ruler`,"📱":`mobile`,"🔀":`branch`,"🔎":`searchCheck`,"🔥":`flame`,"🖥️":`monitor`,"🗺️":`map`,"🧵":`thread`,"🚀":`deploy`,"🛡️":`shield`,"☁️":`cloud`,"☕":`coffee`,"♾️":`infinity`,"♿":`accessibility`,"⚓":`anchor`,"⚛️":`atom`,"✉️":`mail`,"🌊":`waves`,"🌍":`web`,"🌤️":`weather`,"🌲":`tree`,"🍃":`leaf`,"🎭":`theatre`,"🎵":`music`,"🏋️":`fitness`,"🏛️":`institution`,"🏢":`company`,"🏭":`factory`,"🐙":`git`,"🐪":`camel`,"🐳":`container`,"🐹":`golang`,"👁️":`eye`,"💎":`gem`,"💚":`heart`,"💰":`money`,"💼":`briefcase`,"📍":`mapPin`,"📓":`notebook`,"📘":`read`,"📢":`megaphone`,"📧":`mail`,"📩":`inbox`,"📰":`newspaper`,"📲":`mobile`,"📸":`camera`,"📽️":`presentation`,"🔁":`repeat`,"🔊":`volume`,"🔌":`plug`,"🔔":`bell`,"🔤":`language`,"🔷":`code`,"🔺":`triangle`,"🕷️":`crawler`,"🗄️":`database`,"🗣️":`voice`,"🤗":`hug`,"🤝":`handshake`,"🦀":`rust`,"🦋":`flutter`,"🦠":`quality`,"🧙":`wizard`,"🧩":`puzzle`,"🧭":`compass`,"🧱":`brick`,"🧹":`cleanup`,"🚚":`truck`,"🚨":`siren`,"🛂":`compliance`,"🛃":`compliance`,"🟣":`code`},sr={...ar,...or},cr=`<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>`,b=14,lr=16;function x(e,t=lr){return rt(e,{size:t})}var S={check:x(he),error:x(ft),warning:x(kt),skip:x(Ct),tool:x(mn),thinking:x(Nt),search:x(Ge),web:x(it),exec:x(bn),compacting:x(Le),plan:x(Fe),message:x(Sn),unknown:x(Xe),read:x(un),terminal:x($t),test:x(_e),architecture:x(ot),build:x(vn),apple:x(et),statusDot:x(mt),video:x(_n),bug:x(sn),ruler:x(Ve),drafting:x(Be),library:x(Tn),package:x(Le),research:x(Ye),image:x(yt),archive:x(Nn),database:x(ye),deploy:x(qe),shield:x(be),shieldAlert:x(nt),permission:x(kn),cloud:x(pn),code:x(Re),coffee:x(Ae),infinity:x(Ht),accessibility:x(An),anchor:x(xe),atom:x(Dn),mail:x(St),waves:x(Ut),map:x(gn),weather:x(Lt),tree:x(Pt),leaf:x(jt),theatre:x(We),music:x(dt),fitness:x(Pe),institution:x(dn),company:x(vn),factory:x(Oe),git:x(Ee),camel:x(Re),container:x(Me),golang:x(He),eye:x(ge),gem:x(we),heart:x(Tt),money:x(zn),briefcase:x(Zt),mapPin:x(Gt),notebook:x(fn),megaphone:x(an),mailIn:x(St),inbox:x(zt),newspaper:x(pt),mobile:x(Fn),camera:x(xt),presentation:x(Rn),repeat:x(De),volume:x(on),plug:x(ve),bell:x(Vt),language:x(It),triangle:x(Cn),crawler:x(sn),voice:x(En),hug:x(jn),handshake:x(tt),rust:x(Re),flutter:x(Ut),quality:x(vt),wizard:x(bt),puzzle:x(Ze),compass:x(ut),brick:x(wn),cleanup:x(Dt),truck:x(Xt),siren:x(Mn),compliance:x(vt),korea:x(It),people:x(Et),branch:x(Ee),searchCheck:x(Jt),flame:x(qt),monitor:x(ht),route:x(Ue),thread:x(Ee),bike:x(en),ship:x($e),pen:x(at),brain:x(At),heartPulse:x(Pn),lock:x(cn),lockOpen:x(yn),key:x(tn),settings:x(Te),file:x(Je),trash:x(ln),lightbulb:x(Qt),refresh:x(Ne),mic:x(me),clipboard:x(Ie),robot:x(Ft),palette:x(ke),link:x(Ot),salute:x(Se),shark:cr,user:x(gt),paperclip:x(lt),save:x(Kt),gamepad:x(Ke),house:x(On),radio:x(ze),folder:x(Yt),pencil:x(je),chart:x(Wt),hourglass:x(Ln),target:x(Bt),ban:x(Rt),play:x(st),stop:x(_t),close:x(nn,b),send:x(Ce),copy:x(ct,b),download:x(Qe,b),checkSimple:x(hn,b),chevronLeft:x(xn,b),chevronRight:x(Mt,b),chevronDown:x(rn,b),arrowLeft:x(wt,b),arrowRight:x(In,b)};function ur(e){return Object.prototype.hasOwnProperty.call(S,e)}function dr(e,t=`tool`){let n=(e||``).trim();if(!n)return S[t];if(n.startsWith(`<svg`))return n;if(ur(n))return S[n];let r=sr[n];return r?S[r]:S[t]}function fr(e){return e===`✅`?`done`:e===`❌`?`error`:null}function pr(e=document.body){let t=e.querySelectorAll(`[data-icon]`);for(let e of t){let t=e.dataset.icon;t&&S[t]&&(e.innerHTML=S[t],e.classList.add(`icon-hydrated`))}}function mr(e){return e instanceof Error?e.message:String(e)}function hr(){return window.cliJawDesktop?.clipboard??null}async function gr(e){try{let t=hr();if(t){let n=await t.writeText(e);return n.ok?{ok:!0}:{ok:!1,error:n.error??`Clipboard bridge rejected the copy request.`}}return navigator.clipboard?.writeText?(await navigator.clipboard.writeText(e),{ok:!0}):{ok:!1,error:`Clipboard API is unavailable.`}}catch(e){return{ok:!1,error:mr(e)}}}function _r(e){if(/\bwidth\s*=/i.test(e.slice(0,e.indexOf(`>`))))return e;let t=e.match(/viewBox=["']?\s*([\d.]+)\s+([\d.]+)\s+([\d.]+)\s+([\d.]+)/);if(!t)return e;let n=Math.round(parseFloat(t[3])),r=Math.round(parseFloat(t[4]));return!n||!r?e:e.replace(/^<svg/,`<svg width="${n}" height="${r}"`)}function vr(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=S.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=S.copy,e.appendChild(r)}var yr=!1;function br(){yr||(yr=!0,document.addEventListener(`click`,e=>{let t=e.target,n=t?.closest(`.diagram-copy-btn`);if(n){let e=n.closest(`.diagram-container`);if(!e)return;let t=``;if(e.dataset.widgetHtml)try{t=decodeURIComponent(escape(atob(e.dataset.widgetHtml)))}catch{return}else{let n=e.querySelector(`svg`);n&&(t=n.outerHTML)}t&&C(n,t,`copy`);return}let r=t?.closest(`.mermaid-copy-btn`);if(r){let e=r.closest(`.mermaid-container`);if(!e)return;let t=e.dataset.mermaidCode||``;t&&C(r,t,`copy`);return}let i=t?.closest(`.diagram-save-btn`);if(i){let e=i.closest(`.diagram-container`);if(!e)return;if(e.dataset.widgetHtml){let t=e.querySelector(`iframe`);t?.contentWindow&&(t.contentWindow.postMessage({type:`jaw-request-screenshot`},`*`),C(i,``,`save`));return}let t=e.querySelector(`svg`);t&&Sr(t,i);return}let a=t?.closest(`.mermaid-save-btn`);if(a){let e=a.closest(`.mermaid-container`);if(!e)return;let t=e.querySelector(`svg`);t&&Sr(t,a);return}}))}function C(e,t,n){let r=()=>{let t=e.innerHTML;e.innerHTML=S.checkSimple,e.classList.add(`copied`),setTimeout(()=>{e.innerHTML=t,e.classList.remove(`copied`)},1500)};n===`copy`?gr(t).then(e=>{e.ok&&r()}):r()}function xr(e,t){let n=e.children,r=t.children,i=[`fill`,`stroke`,`stroke-width`,`color`,`opacity`,`rx`,`ry`,`font-size`,`font-weight`,`font-family`,`text-anchor`,`dominant-baseline`];for(let e=0;e<n.length;e++){let t=n[e],a=r[e];if(!t||!a)continue;let o=getComputedStyle(t);for(let e of i){let t=o.getPropertyValue(e);t&&a.style.setProperty(e,t)}t.children.length&&xr(t,a)}}function Sr(e,t){let n=e.cloneNode(!0);xr(e,n);let r=e.getBoundingClientRect();n.getAttribute(`width`)||n.setAttribute(`width`,String(r.width)),n.getAttribute(`height`)||n.setAttribute(`height`,String(r.height));let i=new XMLSerializer().serializeToString(n),a=`data:image/svg+xml;charset=utf-8,`+encodeURIComponent(i),o=new Image;o.onload=()=>{let e=document.createElement(`canvas`);e.width=o.naturalWidth*2,e.height=o.naturalHeight*2;let n=e.getContext(`2d`);n.scale(2,2),n.drawImage(o,0,0),e.toBlob(e=>{e&&(Cr(e,`diagram-${Date.now()}.png`),C(t,``,`save`))},`image/png`)},o.onerror=()=>{Cr(new Blob([i],{type:`image/svg+xml;charset=utf-8`}),`diagram-${Date.now()}.svg`),C(t,``,`save`)},o.src=a}function Cr(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,r.click(),setTimeout(()=>URL.revokeObjectURL(n),1e3)}function wr(e){if(e.kind===`partial`)return`<div class="diagram-container diagram-loading" role="status"
3
- aria-label="Diagram loading"><div class="diagram-spinner"></div></div>`;if(e.kind===`error`)return`<div class="diagram-container diagram-error" role="alert">
4
- Malformed SVG: unclosed element</div>`;let t=ce(e.svg);return t=_r(t),`<div class="diagram-container diagram-svg" tabindex="0"
5
- role="figure" aria-label="SVG diagram">
6
- ${t}
7
- <button class="diagram-save-btn" type="button"
8
- aria-label="Save as image" title="Save">${S.download}</button>
9
- <button class="diagram-copy-btn" type="button"
10
- aria-label="Copy source" title="Copy">${S.copy}</button>
11
- <button class="diagram-zoom-btn" type="button"
12
- aria-label="Expand diagram" title="Expand">⤢</button>
13
- </div>`}function Tr(e,t){for(let n of t){let t=`<div\\b[^>]*?\\bdata-jaw-svg="${n.id}"[^>]*></div>`,r=new RegExp(t,`g`),i=wr(n);e=e.replace(r,()=>i)}return e}function Er(e){(e||document).querySelectorAll(`.diagram-zoom-btn, .mermaid-zoom-btn`).forEach(e=>{e.dataset.bound||(e.dataset.bound=`1`,e.addEventListener(`click`,()=>{if(e.closest(`.diagram-widget`))return;let t=e.closest(`.diagram-container`),n=e.closest(`.mermaid-container`),r=t||n;if(!r)return;let i=r.cloneNode(!0);i.querySelectorAll(`.diagram-zoom-btn, .mermaid-zoom-btn, .diagram-copy-btn, .diagram-save-btn, .mermaid-copy-btn, .mermaid-save-btn`).forEach(e=>e.remove());let a=n&&!t?`mermaid`:`inline-svg`;Dr(i.innerHTML,a)}))})}function Dr(e,t=`inline-svg`){let n=document.activeElement,r=document.createElement(`div`);r.className=`diagram-overlay`,r.setAttribute(`role`,`dialog`),r.setAttribute(`aria-modal`,`true`),r.setAttribute(`aria-label`,`Expanded diagram`);let i=ce(e);r.innerHTML=[`<div class="`,t===`inline-svg`?`diagram-overlay-content diagram-svg-overlay`:`diagram-overlay-content`,`">`,i,`</div>`,`<button class="diagram-overlay-close" type="button" aria-label="Close">✕</button>`].join(``),r.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 a=r.querySelector(`.diagram-overlay-close`),o=()=>{r.remove(),document.removeEventListener(`keydown`,s),n&&n.isConnected&&n.focus()},s=e=>{if(e.key===`Escape`){o();return}if(e.key===`Tab`){let t=r.querySelectorAll(`button, [href], [tabindex]:not([tabindex="-1"])`);if(t.length===0)return;let n=t[0],i=t[t.length-1];e.shiftKey&&document.activeElement===n?(e.preventDefault(),i.focus()):!e.shiftKey&&document.activeElement===i&&(e.preventDefault(),n.focus())}};a.addEventListener(`click`,o),document.addEventListener(`keydown`,s),document.body.appendChild(r),a.focus()}var Or=!1;function kr(){Or||(Or=!0,m.registerLanguage(`javascript`,a),m.registerLanguage(`js`,a),m.registerLanguage(`typescript`,ae),m.registerLanguage(`ts`,ae),m.registerLanguage(`python`,ie),m.registerLanguage(`py`,ie),m.registerLanguage(`bash`,r),m.registerLanguage(`shell`,l),m.registerLanguage(`sh`,l),m.registerLanguage(`json`,u),m.registerLanguage(`css`,p),m.registerLanguage(`xml`,te),m.registerLanguage(`html`,te),m.registerLanguage(`markdown`,c),m.registerLanguage(`md`,c),m.registerLanguage(`yaml`,s),m.registerLanguage(`yml`,s),m.registerLanguage(`sql`,re),m.registerLanguage(`rust`,f),m.registerLanguage(`rs`,f),m.registerLanguage(`go`,o),m.registerLanguage(`java`,ne),m.registerLanguage(`cpp`,ee),m.registerLanguage(`c`,ee),m.registerLanguage(`diff`,i),m.registerLanguage(`plaintext`,d),m.registerLanguage(`text`,d))}function Ar(e,t){if(kr(),t&&m.getLanguage(t))try{return m.highlight(e,{language:t}).value}catch{return y(e)}try{return m.highlightAuto(e).value}catch{return y(e)}}function jr(e){kr(),(e||document).querySelectorAll(`.code-block pre code, .code-block-wrapper pre code`).forEach(e=>{if(e.dataset.highlighted===`yes`)return;let t=[...e.classList].find(e=>e.startsWith(`language-`))?.replace(`language-`,``),n=e.textContent||``;try{t&&m.getLanguage(t)?e.innerHTML=m.highlight(n,{language:t}).value:e.innerHTML=m.highlightAuto(n).value,e.dataset.highlighted=`yes`}catch{}})}var w=null,T=Promise.resolve();async function Mr(){return w||=(await h(()=>import(`./mermaid-loader-BMIvbrMb.js`),__vite__mapDeps([0]))).loadMermaid(),w}function E(){w.initialize(fe())}var Nr=0;async function Pr(){let e=document.querySelectorAll(`.mermaid-rendered`);e.length&&(T=T.then(async()=>{let t=await Mr();for(let n of e){let e=n,r=e.dataset.mermaidCode;if(!r||!e.isConnected)continue;let i=pe(r),a=`mermaid-${++Nr}`;try{E();let n;try{({svg:n}=await t.render(a,i))}catch{let e=ue(i);if(!e)continue;E(),{svg:n}=await t.render(`${a}-retry`,e)}if(!e.isConnected)continue;e.innerHTML=de(n);let r=e.closest(`.mermaid-container`);r&&r.classList.toggle(`mermaid-type-wide`,le(i)),vr(e),Er(e)}catch{}}}).catch(e=>{console.error(`[mermaid:queue] rerender failed, keeping queue alive:`,e)}),await T)}var D=null;function Fr(){D||=new IntersectionObserver(e=>{for(let t of e){if(!t.isIntersecting)continue;let e=t.target;e.classList.contains(`mermaid-pending`)&&(D.unobserve(e),Rr(e))}},{rootMargin:`200px`})}function Ir(e,t,n){e.classList.remove(`mermaid-rendered`),e.innerHTML=`
14
- <div class="mermaid-error">
15
- <div class="mermaid-error-title">${S.warning} ${y(v(`mermaid.renderFail`)||`Mermaid render failed`)}</div>
16
- <div class="mermaid-error-msg">${y(n.slice(0,200))}</div>
17
- <pre class="mermaid-error-code"><code>${y(t)}</code></pre>
18
- </div>`}async function Lr(e){if(!e.isConnected){delete e.dataset.mermaidQueued,delete e.dataset.mermaidInflight;return}e.classList.remove(`mermaid-pending`);let t=e.dataset.mermaidCodeRaw||``,n=pe(t?decodeURIComponent(t):e.textContent||``);e.dataset.mermaidCode=n;let r=`mermaid-${++Nr}`;e.dataset.mermaidInflight=`1`;try{let t=await Mr();E();let i;try{({svg:i}=await t.render(r,n))}catch(e){let a=ue(n);if(!a)throw e;E(),{svg:i}=await t.render(`${r}-retry`,a)}if(!e.isConnected)return;e.innerHTML=de(i),e.classList.add(`mermaid-rendered`);let a=e.closest(`.mermaid-container`);a&&a.classList.toggle(`mermaid-type-wide`,le(n)),delete e.dataset.mermaidCodeRaw,vr(e),Er(e)}catch(t){Ir(e,n,t?.message||t?.str||`Unknown error`)}finally{delete e.dataset.mermaidQueued,delete e.dataset.mermaidInflight}}function Rr(e){e.dataset.mermaidQueued!==`1`&&(e.dataset.mermaidQueued=`1`,T=T.then(()=>Lr(e)).catch(e=>{console.error(`[mermaid:queue] render failed, keeping queue alive:`,e)}))}async function zr(e,t={}){let n=(e||document).querySelectorAll(`.mermaid-pending`);if(n.length){Fr();for(let e of n)if(e.dataset.mermaidQueued!==`1`){if(t.immediate){let t=e.getBoundingClientRect(),n=window.innerHeight||document.documentElement.clientHeight;if(t.bottom>=-200&&t.top<=n+200){D.unobserve(e),Rr(e);continue}}D.observe(e)}}}function Br(e){if(!D)return;let t=[`.mermaid-pending`,`[data-mermaid-queued="1"]`,`[data-mermaid-inflight="1"]`].join(`,`),n=[];e.matches(t)&&n.push(e),e.querySelectorAll(t).forEach(e=>n.push(e));for(let e of n)D.unobserve(e),delete e.dataset.mermaidQueued,delete e.dataset.mermaidQueuedAt,delete e.dataset.mermaidInflight,!e.classList.contains(`mermaid-rendered`)&&(e.dataset.mermaidCodeRaw||e.dataset.mermaidCode)&&e.classList.add(`mermaid-pending`)}function Vr(){if(w)return;let e=()=>{Mr().catch(()=>{})};typeof window.requestIdleCallback==`function`?window.requestIdleCallback(e,{timeout:2e3}):setTimeout(e,500)}function O(e){if(e===window.location.origin)return!0;try{let t=new URL(e).hostname;return t===`localhost`||t===`127.0.0.1`||t===`::1`||t===`[::1]`}catch{return!1}}function k(){if(window.parent===window)return null;try{let e=window.parent.location.origin;if(e&&e!==`null`&&O(e))return e}catch{}if(Gr)return Gr;try{if(document.referrer){let e=new URL(document.referrer).origin;if(O(e))return e}}catch{}return null}var A=!1,Hr=!1,Ur=!1,Wr=!1,Gr=null,j=new Set;function Kr(){return A}function qr(e){O(e)&&(Gr=e)}function Jr(e){for(let t of j)t(e);j.clear()}function Yr(){let e=k()||`*`;try{return window.parent.postMessage({type:`jaw-preview-capabilities-request`},e),!0}catch{return!1}}function Xr(){Ur||(Ur=!0,window.addEventListener(`message`,e=>{if(e.source!==window.parent||!O(e.origin))return;let t=e.data;!t||t.type!==`jaw-preview-capabilities`||(qr(e.origin),A=t.docPanel===!0,Hr=!0,Jr(A))}),Yr())}function Zr(e=180){return Xr(),A||Hr?Promise.resolve(A):Yr()?new Promise(t=>{let n=!1,r=e=>{n||(n=!0,j.delete(r),window.clearTimeout(i),t(e))},i=window.setTimeout(()=>r(A),e);j.add(r)}):Promise.resolve(!1)}function Qr(e){return e instanceof HTMLInputElement?[`text`,`search`,`url`,`tel`,`email`,`password`].includes(e.type):!1}function $r(e,t){if(e instanceof HTMLTextAreaElement||Qr(e)){let n=e.selectionStart??e.value.length,r=e.selectionEnd??n;return e.setRangeText(t,n,r,`end`),e.dispatchEvent(new InputEvent(`input`,{bubbles:!0,inputType:`insertText`,data:t})),e.focus(),!0}let n=e.closest(`[contenteditable="true"]`);if(!(n instanceof HTMLElement))return!1;let r=window.getSelection();if(!r||r.rangeCount===0)return!1;let i=r.getRangeAt(0);if(!n.contains(i.commonAncestorContainer))return!1;i.deleteContents();let a=document.createTextNode(t);return i.insertNode(a),i.setStartAfter(a),i.setEndAfter(a),r.removeAllRanges(),r.addRange(i),n.dispatchEvent(new InputEvent(`input`,{bubbles:!0,inputType:`insertText`,data:t})),n.focus(),!0}function ei(){Wr||(Wr=!0,window.addEventListener(`message`,e=>{if(!O(e.origin))return;let t=e.data;if(!t||t.type!==`jaw-preview-insert-text`)return;qr(e.origin);let n=typeof t.requestId==`string`?t.requestId:``,r=typeof t.text==`string`?t.text:``,i=(t,r)=>{n&&window.parent.postMessage({type:`jaw-preview-insert-text-result`,requestId:n,ok:t,...r?{error:r}:{}},e.origin)};if(!n||!r){i(!1,`invalid insert request`);return}let a=document.activeElement;if(!a||!$r(a,r)){i(!1,`no editable target`);return}i(!0)}))}function ti(e){let t=k();return!t||!e.trim()?!1:(window.parent.postMessage({type:`jaw-preview-open-notes`,path:e},t),!0)}function ni(e){let t=k();return!t||!e.trim()?!1:(window.parent.postMessage({type:`jaw-preview-open-doc`,path:e},t),!0)}function ri(e,t){let n=k();return!n||e.length===0?!1:(window.parent.postMessage({type:`dashboard.invalidate`,topics:e,reason:t},n),!0)}var ii=new Set([`.git`,`.assets`,`_templates`,`_snippets`,`_plugins`]),ai=`.md`;function M(e){return e.replace(/\\/g,`/`).trim()}function oi(e){let t=e.split(`/`)[0]??``;return ii.has(t)}function si(e){return!(!e||e.startsWith(`/`)||e.includes(`..`)||!e.endsWith(ai)||oi(e))}function ci(e,t){let n=M(e),r=M(t).replace(/\/+$/,``);if(!r||n===r)return null;let i=`${r}/`;if(!n.startsWith(i))return null;let a=n.slice(i.length);return si(a)?a:null}function li(e){let t=M(e),n=t.match(/^(\/Users\/[^/]+)/);if(n)return n[1];let r=t.match(/^(\/home\/[^/]+)/);return r?r[1]:null}function ui(e,t){if(!e.startsWith(`~/`))return e;let n=li(t);return n?`${n}/${e.slice(2)}`:e}function di(e,t){let n=M(e);return n?t&&!n.startsWith(`~/`)&&si(n)?n:t&&ci(ui(n,t),t)||null:null}var fi=/(?:~\/[^\s)`\]"'<>]+|\/(?:Users|home|tmp|var|opt|private)\/[^\s)`\]"'<>]+)/g,pi=/(?:^|[\s([{"'`])([A-Za-z0-9._-]+(?:\/[A-Za-z0-9._-]+)*\.md)\b/g,mi=/[.,!?:;]+$/,hi=/^(?:~\/|\/(?:Users|home|tmp|var|opt|private)\/)/,gi=/\.(ts|tsx|js|jsx|py|rs|go|java|cpp|c|css|html|htm|xml|json|yaml|yml|sh|bash|sql)$/i,_i=/\.(md|mdx)$/i,N,vi=null;function yi(e){return hi.test(e)}function bi(e){if(yi(e))return e;try{let t=new URL(e,window.location.href);if(t.origin!==window.location.origin||t.pathname!==`/api/file/open`)return null;let n=t.searchParams.get(`path`)??``;return yi(n)?n:null}catch{return null}}function xi(e){try{let t=new URL(e,window.location.href);return t.protocol!==`http:`&&t.protocol!==`https:`||t.username||t.password?!1:t.origin!==window.location.origin}catch{return!1}}function Si(e){e.target=`_blank`;let t=new Set(e.rel.split(/\s+/).filter(Boolean));t.add(`noopener`),t.add(`noreferrer`),e.rel=[...t].join(` `)}async function Ci(){return N===void 0?k()?(vi||=oe(`/api/dashboard/notes/info`,`GET`,null).then(e=>typeof e?.root==`string`?e.root:null).catch(()=>null).then(e=>(N=e,e)),vi):(N=null,null):N}function wi(e,t){t&&t.classList.add(`opening`),oe(`/api/file/open`,`POST`,{path:e}).then(e=>{t?.classList.remove(`opening`),e?.ok===!1?(t?.classList.add(`open-failed`),t&&(t.title=e?.error||`Failed to open`),setTimeout(()=>{t?.classList.remove(`open-failed`),t&&(t.title=``)},2e3)):(t?.classList.add(`opened`),setTimeout(()=>t?.classList.remove(`opened`),1500))}).catch(()=>{t?.classList.remove(`opening`),t?.classList.add(`open-failed`),setTimeout(()=>t?.classList.remove(`open-failed`),2e3)})}function Ti(e,t,n){let r=document.createElement(`span`);r.className=`file-path-link`,r.setAttribute(`data-file-path`,t),n&&r.setAttribute(`data-vault-rel`,n),r.setAttribute(`role`,`button`),r.setAttribute(`tabindex`,`0`);let i=t.split(`/`).pop()||t,a=/\.\w{1,10}$/.test(i);r.textContent=a?i:t,a&&(r.title=t),e.appendChild(r)}function Ei(e){fi.lastIndex=0;let t=[],n;for(;n=fi.exec(e);){let e=n[0],r=e.replace(mi,``);r.length<4||t.push({index:n.index,raw:e,clean:r})}return t}function Di(e){pi.lastIndex=0;let t=[],n;for(;n=pi.exec(e);){let e=n[0].slice(0,n[0].length-n[1].length),r=n[1],i=n.index+e.length;t.push({index:i,raw:r,clean:r})}return t}function Oi(e,t){let n=[...e,...t].sort((e,t)=>e.index-t.index),r=[],i=-1;for(let e of n)e.index<i||(r.push(e),i=e.index+e.raw.length);return r}function ki(e,t=null){let n=new Set([`PRE`,`A`,`BUTTON`,`TEXTAREA`,`INPUT`,`SCRIPT`,`STYLE`]),r=document.createTreeWalker(e,NodeFilter.SHOW_TEXT,{acceptNode(t){let r=t.parentElement;for(;r&&r!==e;){if(n.has(r.tagName)||r.classList.contains(`file-path-link`)||r.tagName===`CODE`&&r.parentElement?.tagName===`PRE`)return NodeFilter.FILTER_REJECT;r=r.parentElement}return NodeFilter.FILTER_ACCEPT}}),i=new Map,a;for(;a=r.nextNode();){let e=a.textContent||``,n=Oi(Ei(e),t?Di(e):[]);n.length&&i.set(a,n)}for(let[e,n]of i){let r=e.textContent||``,i=e.parentNode;if(!i)continue;let a=document.createDocumentFragment(),o=0;for(let{index:e,raw:i,clean:s}of n){e>o&&a.appendChild(document.createTextNode(r.slice(o,e))),Ti(a,s,di(s,t));let n=i.slice(s.length);n&&a.appendChild(document.createTextNode(n)),o=e+i.length}o<r.length&&a.appendChild(document.createTextNode(r.slice(o))),i.replaceChild(a,e)}}async function Ai(e){ki(e,await Ci())}async function ji(e,t){let n=await Ci(),r=t.getAttribute(`data-vault-rel`)||di(e,n);if(r&&k()&&ti(r)){t.classList.add(`opened`),setTimeout(()=>t.classList.remove(`opened`),1500);return}if((_i.test(e)||gi.test(e))&&(Kr()||await Zr())&&k()&&ni(e)){t.classList.add(`opened`),setTimeout(()=>t.classList.remove(`opened`),1500);return}wi(e,t)}var Mi=!1;function Ni(){Mi||(Mi=!0,Xr(),document.addEventListener(`click`,e=>{let t=e.target,n=t?.closest(`a`),r=n?.getAttribute(`href`)||``;if(n&&xi(r)){Si(n);return}let i=n?bi(r):null;if(n&&i){e.preventDefault(),n.classList.add(`file-path-link`),ji(i,n);return}let a=t?.closest(`.file-path-link`);if(!a)return;let o=a.getAttribute(`data-file-path`);o&&(e.preventDefault(),ji(o,a))},!0),document.addEventListener(`keydown`,e=>{if(e.key!==`Enter`&&e.key!==` `)return;let t=e.target;t?.classList.contains(`file-path-link`)&&(e.preventDefault(),t.click())},!0))}function P(e){return typeof e==`string`?e.trim():``}function Pi(e){try{return JSON.parse(e)}catch{return null}}function Fi(e){let t=P(e);return t===`multi_select`||t===`multi`||t===`checkbox`?`multi_select`:t===`rank_priorities`||t===`rank`||t===`ranking`?`rank_priorities`:`single_select`}function Ii(e){return Array.isArray(e)?e.map((e,t)=>{if(typeof e==`string`){let n=e.trim();return n?{id:`option_${t+1}`,value:n,label:n,description:``,submitText:``}:null}if(!e||typeof e!=`object`)return null;let n=e,r=P(n.label)||P(n.text)||P(n.value)||P(n.id);if(!r)return null;let i=P(n.value)||r;return{id:P(n.id)||i||`option_${t+1}`,value:i,label:r,description:P(n.description),submitText:P(n.submitText)}}).filter(e=>!!e):[]}function Li(e){if(!e||typeof e!=`object`||Array.isArray(e))return{};let t={};for(let[n,r]of Object.entries(e)){let e=n.trim();if(!e)continue;let i=Array.isArray(r)?r.map(P).filter(Boolean):[P(r)].filter(Boolean);i.length>0&&(t[e]=i)}return t}function Ri(e,t){if(!e||typeof e!=`object`)return null;let n=e,r=P(n.question)||P(n.title)||P(n.prompt);return r?{id:P(n.id)||`q${t+1}`,type:Fi(n.type),question:r,options:Ii(n.options),visibleWhen:Li(n.visibleWhen)}:null}function zi(e){if(!e||typeof e!=`object`)return null;let t=e,n=(Array.isArray(t.questions)?t.questions:[{question:t.question,options:t.options,type:t.type}]).map((e,t)=>Ri(e,t)).filter(e=>!!e);return n.length>0?{questions:n}:null}function Bi(e){return zi(Pi(e))}function Vi(e){let t=[];for(let n of e.matchAll(/^ {0,3}```(?:elicitation|choice-buttons)[^\n]*\n([\s\S]*?)^ {0,3}```/gm)){let e=n[1]?.trim();e&&t.push(e)}return t}var Hi=`jaw:elicitation:complete`,Ui=`구조화 질문 응답:`;function Wi(e){return Array.isArray(e)?`[${e.map(Wi).join(`,`)}]`:e&&typeof e==`object`?`{${Object.keys(e).sort().map(t=>`${JSON.stringify(t)}:${Wi(e[t])}`).join(`,`)}}`:JSON.stringify(e)}function Gi(e){let t=2166136261;for(let n=0;n<e.length;n+=1)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return(t>>>0).toString(36)}function Ki(){let e=typeof window>`u`?`unknown`:`${window.location.origin}${window.location.pathname}`,t=`default`;try{t=localStorage.getItem(`clijaw_scope`)||`default`}catch{}return Gi(`${e}::${t}`)}function qi(e){return Gi(Wi(e))}function Ji(e){return`${Hi}:${Ki()}:${e.turnIndex}:${e.blockIndex}:${qi(e.spec)}`}function Yi(e,t){let n=e.closest(`.msg`),r=n?.dataset.turnIndex||``,i=Number(r);if(!Number.isFinite(i)||i<0)return null;let a=e.closest(`.msg-content`)||n,o=a?Array.from(a.querySelectorAll(`.elicitation-pending, .elicitation-block`)):[e];return Ji({turnIndex:i,blockIndex:Math.max(0,o.indexOf(e)),spec:t})}function Xi(e){if(!e)return!1;try{return localStorage.getItem(e)===`1`}catch{return!1}}function Zi(e){if(e)try{localStorage.setItem(e,`1`)}catch{}}function Qi(e){return e===`assistant`||e===`agent`}function $i(e){return e?.role===`user`&&e.content.includes(Ui)}function ea(e,t){return t.questions.some(t=>e.includes(t.question))}function ta(e){e.forEach((t,n)=>{if(!Qi(t.role))return;let r=e[n+1];$i(r)&&Vi(t.content).forEach((e,t)=>{let i=Bi(e);!i||!ea(r.content,i)||Zi(Ji({turnIndex:n,blockIndex:t,spec:i}))})})}var na=`.elicitation-pending`,ra=`.elicitation-block`,F=`submitting`,ia=`위 응답을 기준으로 계속 진행해줘.`,I=new WeakMap,aa=null,oa=0;function L(e){return e.replace(/&/g,`&amp;`).replace(/"/g,`&quot;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}function sa(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&#39;`)}function ca(e,t){let n=encodeURIComponent(e);return`<div class="elicitation-pending" data-elicitation-kind="${L(t)}" data-elicitation-spec="${L(n)}" role="status" aria-label="Structured question loading">
19
- <div class="elicitation-loading">질문을 준비하는 중...</div>
20
- </div>`}function la(e){let t=[];return e instanceof HTMLElement&&e.matches(na)&&t.push(e),t.push(...Array.from(e.querySelectorAll(na))),t}function ua(e=document){for(let t of la(e)){if(t.dataset.elicitationHydrated===`true`)continue;let e=t.dataset.elicitationSpec||``,n=``;try{n=decodeURIComponent(e)}catch{n=``}let r=Bi(n);if(t.dataset.elicitationHydrated=`true`,!r){console.warn(`[elicitation] invalid structured question spec`,{kind:t.dataset.elicitationKind||``,decodedChars:n.length,reason:n?`parse_or_normalize_failed`:`empty_spec`}),t.className=`elicitation-block elicitation-error`,t.innerHTML=`<div class="elicitation-error-text">질문 형식을 읽을 수 없습니다.</div>`;continue}let i=Yi(t,r);if(t.dataset.elicitationCompletionKey=i||``,Xi(i)){Ta(t);continue}let a={spec:r,index:0,answers:[]};I.set(t,a),_a(t,a)}}function da(e){let t=I.get(e);if(!t)return;let n=t.spec.questions[t.index];if(!n){Da(e,t);return}let r=t.spec.questions.length,i=e.id||`elicitation-${++oa}`;e.id=i,e.className=`elicitation-block`,e.dataset.elicitationState=`active`,e.innerHTML=`
21
- <div class="elicitation-top">
22
- <div class="elicitation-progress">Q${t.index+1} ${t.index+1}/${r}</div>
23
- <button class="elicitation-skip" type="button" data-elicitation-action="skip">skip</button>
24
- </div>
25
- <div class="elicitation-question" id="${L(i)}-question">${sa(n.question)}</div>
26
- <div class="elicitation-options" role="group" aria-labelledby="${L(i)}-question">
27
- ${n.options.map(e=>fa(n,e)).join(``)}
28
- </div>
29
- ${n.type===`multi_select`?`<button class="elicitation-submit" type="button" data-elicitation-action="submit-multi">선택 완료</button>`:``}
30
- <div class="elicitation-input-row">
31
- <input class="elicitation-input" type="text" placeholder="직접 입력" aria-label="직접 입력">
32
- <button class="elicitation-submit" type="button" data-elicitation-action="submit-custom">입력</button>
33
- </div>`}function fa(e,t){let n=e.type===`multi_select`?` aria-pressed="false"`:``,r=t.description?`<span class="elicitation-option-description">${sa(t.description)}</span>`:``;return`<button class="elicitation-option" type="button" data-elicitation-action="select-option" data-option-id="${L(t.id)}"${n}>
34
- <span class="elicitation-option-label">${sa(t.label)}</span>${r}
35
- </button>`}function pa(e){return e instanceof HTMLElement?e.closest(ra):null}function R(e){return e.spec.questions[e.index]||null}function ma(e,t){return R(e)?.options.find(e=>e.id===t)||null}function ha(e){let t=new Map;for(let n of e.answers)n&&t.set(n.question.id,n);return t}function ga(e,t){for(let[n,r]of Object.entries(e.visibleWhen)){let e=t.get(n);if(!e||e.skipped||!e.values.some(e=>r.includes(e)))return!1}return!0}function _a(e,t){for(;t.index<t.spec.questions.length;){let e=R(t);if(!e||ga(e,ha(t)))break;t.index+=1}da(e)}function z(e,t){let n=I.get(e),r=n?R(n):null;!n||!r||e.dataset.elicitationState===F||(n.answers[n.index]={question:r,...t},n.index+=1,_a(e,n))}function va(e,t,n){let r=ma(n,e.dataset.optionId||``),i=R(n);if(!(!r||!i)){if(i.type===`multi_select`){let t=e.getAttribute(`aria-pressed`)!==`true`;e.setAttribute(`aria-pressed`,String(t)),e.classList.toggle(`is-selected`,t);return}z(t,{skipped:!1,values:[r.value],labels:[r.submitText||r.label]})}}function ya(e,t){let n=Array.from(e.querySelectorAll(`.elicitation-option[aria-pressed="true"]`)).map(e=>ma(t,e.dataset.optionId||``)).filter(e=>!!e);n.length!==0&&z(e,{skipped:!1,values:n.map(e=>e.value),labels:n.map(e=>e.submitText||e.label)})}function ba(e){let t=e.querySelector(`.elicitation-input`),n=t?.value.trim()||``;if(!n){t?.focus();return}z(e,{skipped:!1,values:[n],labels:[n]})}function xa(e){let t=e.target instanceof HTMLElement?e.target.closest(`[data-elicitation-action]`):null;if(!t)return;let n=pa(t),r=n?I.get(n):null;if(!n||!r||n.dataset.elicitationState===F)return;e.preventDefault();let i=t.dataset.elicitationAction;i===`select-option`&&va(t,n,r),i===`submit-multi`&&ya(n,r),i===`submit-custom`&&ba(n),i===`skip`&&z(n,{skipped:!0,values:[],labels:[`skip`]})}function Sa(e){if(e.key!==`Enter`)return;let t=e.target;if(!(t instanceof HTMLElement)||t.tagName!==`INPUT`||!t.classList.contains(`elicitation-input`))return;let n=pa(t);n&&(e.preventDefault(),ba(n))}function Ca(e){return e.filter(e=>!!e)}function wa(e){return`구조화 질문 응답:\n\n${Ca(e).map(e=>{let t=e.skipped?`skip`:e.labels.join(`, `),n=e.values.length>0?` (값: ${e.values.join(`, `)})`:``;return`- ${e.question.question}: ${t}${n}`}).join(`
36
- `)}\n\n${ia}`}function Ta(e){e.className=`elicitation-block elicitation-complete`,e.dataset.elicitationState=`complete`,e.innerHTML=`<div class="elicitation-complete-row"><button class="elicitation-complete-button" type="button" disabled>응답 완료</button></div>`}function Ea(e,t){return new(e.ownerDocument.defaultView?.Event||Event)(t,{bubbles:!0})}function Da(e,t){if(e.dataset.elicitationState===F)return;e.dataset.elicitationState=F;let n=document.getElementById(`chatInput`);if(!n){e.classList.add(`elicitation-error`),e.innerHTML=`<div class="elicitation-error-text">입력창을 찾을 수 없습니다.</div>`;return}n.value=wa(t.answers),n.dispatchEvent(Ea(n,`input`)),n.dispatchEvent(Ea(n,`cmd-execute`)),Zi(e.dataset.elicitationCompletionKey||null),I.delete(e),Ta(e)}function Oa(){aa!==document&&(document.addEventListener(`click`,xa),document.addEventListener(`keydown`,Sa),aa=document)}var ka=`.search-results-pending`,Aa=10,ja=240;function Ma(e){return e.replace(/&/g,`&amp;`).replace(/"/g,`&quot;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}function B(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&#39;`)}function V(e,t=ja){let n=typeof e==`string`?e.trim().replace(/\s+/g,` `):``;return n.length>t?`${n.slice(0,t-1)}…`:n}function Na(e){let t=e.replace(/^\[|\]$/g,``).toLowerCase();return t===`localhost`||t.endsWith(`.localhost`)||t.endsWith(`.local`)||/^0\./.test(t)||/^10\./.test(t)||/^127\./.test(t)||/^169\.254\./.test(t)||/^172\.(1[6-9]|2\d|3[01])\./.test(t)||/^192\.168\./.test(t)||/^::1$/.test(t)}function Pa(e){let t=typeof e==`string`?e.trim():``;if(!t)return``;try{let e=new URL(t);return![`http:`,`https:`].includes(e.protocol)||e.username||e.password||Na(e.hostname)?``:e.href}catch{return``}}function Fa(e){try{return JSON.parse(e)}catch{return null}}function Ia(e){if(!e||typeof e!=`object`)return null;let t=e;if(t.schemaVersion!==`search-results-v1`)return null;let n=V(t.query,160),r=Array.isArray(t.results)?t.results:[],i=new Set,a=[];for(let e of r){if(!e||typeof e!=`object`)continue;let t=e,n=Pa(t.url||t.link);if(!n||i.has(n))continue;i.add(n);let r=V(t.title,160)||new URL(n).hostname;if(a.push({title:r,url:n,snippet:V(t.snippet||t.description),source:V(t.source,80)||new URL(n).hostname}),a.length>=Aa)break}return!n&&a.length===0?null:{schemaVersion:`search-results-v1`,query:n,results:a}}function La(e){return`<div class="search-results-pending" data-search-results-kind="search-results" data-search-results-spec="${Ma(encodeURIComponent(e))}" role="status" aria-label="Search results loading">
37
- <div class="search-results-loading">검색 결과를 준비하는 중...</div>
38
- </div>`}function Ra(e){let t=[];return e instanceof HTMLElement&&e.matches(ka)&&t.push(e),t.push(...Array.from(e.querySelectorAll(ka))),t}function za(e){let t=e.results.length===0?`<div class="search-results-empty">표시할 검색 결과가 없습니다.</div>`:``,n=e.results.map((e,t)=>`
39
- <a class="search-result-card" href="${Ma(e.url)}" target="_blank" rel="noopener noreferrer">
40
- <span class="search-result-index">${t+1}</span>
41
- <span class="search-result-body">
42
- <span class="search-result-title">${B(e.title)}</span>
43
- ${e.snippet?`<span class="search-result-snippet">${B(e.snippet)}</span>`:``}
44
- <span class="search-result-source">${B(e.source)}</span>
45
- </span>
46
- </a>`).join(``);return`
47
- <div class="search-results-header">
48
- <div class="search-results-title">Search Results</div>
49
- ${e.query?`<div class="search-results-query">${B(e.query)}</div>`:``}
50
- </div>
51
- <div class="search-results-list">${n}${t}</div>`}function Ba(e=document){for(let t of Ra(e)){if(t.dataset.searchResultsHydrated===`true`)continue;t.dataset.searchResultsHydrated=`true`;let e=t.dataset.searchResultsSpec||``,n=``;try{n=decodeURIComponent(e)}catch{n=``}delete t.dataset.searchResultsSpec;let r=Ia(Fa(n));if(!r){console.warn(`[search-results] invalid search result spec`,{decodedChars:n.length}),t.className=`search-results-block search-results-error`,t.innerHTML=`<div class="search-results-error-text">검색 결과 형식을 읽을 수 없습니다.</div>`;continue}t.className=`search-results-block`,t.innerHTML=za(r)}}var Va=`.compose-block-pending`,Ha=`.compose-block`,Ua=120,Wa=180,Ga=2e4,Ka=4e3,qa=3,H=new WeakMap,Ja=null;function Ya(e){return e.replace(/&/g,`&amp;`).replace(/"/g,`&quot;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}function U(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&#39;`)}function W(e,t){let n=typeof e==`string`?e.trim():``;return n.length>t?n.slice(0,t):n}function Xa(e,t){if(!Array.isArray(e))return[];let n=[],r=0;for(let i of e){let e=typeof i==`string`?i.trim():``;if(!e)continue;let a=t-r;if(a<=0)break;let o=e.length>a?e.slice(0,a):e;n.push(o),r+=o.length}return n}function Za(e){let t=W(e.body,Ga);if(t)return t;let n=Xa(e.paragraphs,Ga);if(n.length>0)return n.join(`
52
-
53
- `);let r=Xa(e.bodyLines,Ga);return r.length>0?r.join(`
54
- `):``}function Qa(e){let t=typeof e==`string`?e.trim():``;return t===`email`||t===`message`||t===`document`||t===`other`?t:t===`textMessage`?`message`:`other`}function $a(e){try{return JSON.parse(e)}catch{return null}}function eo(e){return encodeURIComponent(JSON.stringify(e))}function to(e){let t=e.dataset.composeBlockSpec||``,n=``;try{n=decodeURIComponent(t)}catch{n=``}return ro($a(n))}function no(e,t,n){if(!e||typeof e!=`object`)return null;let r=e,i=Za(r);if(!i)return null;let a=W(r.label,40)||`Variant ${t+1}`;return{id:W(r.id,60)||`variant_${t+1}`,label:a,subject:W(r.subject,Wa)||n,body:i}}function ro(e){if(!e||typeof e!=`object`)return null;let t=e;if(t.schemaVersion!==`compose-block-v1`)return null;let n=Qa(t.kind),r=W(t.subject,Wa),i=(Array.isArray(t.variants)?t.variants:[]).map((e,t)=>no(e,t,r)).filter(e=>!!e).slice(0,qa);return i.length===0?null:{schemaVersion:`compose-block-v1`,kind:n,title:W(t.title,Ua)||`Draft`,subject:r,variants:i}}function io(e){return`<div class="compose-block-pending" data-compose-block-kind="compose-block" data-compose-block-spec="${Ya(encodeURIComponent(e))}" role="status" aria-label="Compose block loading">
55
- <div class="compose-loading">초안을 준비하는 중...</div>
56
- </div>`}function ao(e){let t=[];return e instanceof HTMLElement&&e.matches(Va)&&t.push(e),t.push(...Array.from(e.querySelectorAll(Va))),t}function oo(e){let t=[],n=`${Ha}[data-compose-block-spec]`;return e instanceof HTMLElement&&e.matches(n)&&t.push(e),t.push(...Array.from(e.querySelectorAll(n))),t}function so(e){return e===`email`?`Email`:e===`message`?`Message`:e===`document`?`Document`:`Draft`}function co(e){return e===`document`?`Title`:e===`message`?`Topic`:`Subject`}function lo(e){return e.variants.map((e,t)=>`<button class="compose-tab${t===0?` is-active`:``}" type="button" data-compose-action="variant" data-variant-id="${Ya(e.id)}" aria-pressed="${t===0?`true`:`false`}">${U(e.label)}</button>`).join(``)}function uo(e){let t=e.variants[0],n=e.kind===`email`?`<button class="compose-btn" type="button" data-compose-action="mail">Open in Mail</button>`:e.kind===`message`?`<button class="compose-btn" type="button" data-compose-action="sms">Open in Messages</button>`:``;return`
57
- <div class="compose-block-header">
58
- <div class="compose-title">${U(e.title)}</div>
59
- <div class="compose-kind">${U(so(e.kind))}</div>
60
- </div>
61
- <label class="compose-subject-row">
62
- <span>${U(co(e.kind))}</span>
63
- <input class="compose-subject-input" type="text" value="${Ya(t.subject||e.subject)}" maxlength="${Wa}">
64
- </label>
65
- <div class="compose-tabs" role="group" aria-label="Draft variants">${lo(e)}</div>
66
- <textarea class="compose-body" rows="8" maxlength="${Ga}">${U(t.body)}</textarea>
67
- <div class="compose-actions">
68
- <button class="compose-btn" type="button" data-compose-action="copy">Copy</button>
69
- ${n}
70
- </div>
71
- <div class="compose-followup">
72
- <label class="compose-followup-row">
73
- <span>Prompt</span>
74
- <textarea class="compose-followup-input" rows="2" maxlength="${Ka}" placeholder="추가 요청을 입력하세요. Cmd/Ctrl+Enter로 보낼 수 있습니다."></textarea>
75
- </label>
76
- <div class="compose-followup-actions">
77
- <div class="compose-followup-error" role="alert" aria-live="polite"></div>
78
- <button class="compose-btn compose-send-btn" type="button" data-compose-action="send-followup">Send</button>
79
- </div>
80
- </div>`}function fo(e=document){for(let t of ao(e)){if(t.dataset.composeBlockHydrated===`true`)continue;t.dataset.composeBlockHydrated=`true`;let e=to(t);if(!e){console.warn(`[compose-block] invalid compose block spec`),delete t.dataset.composeBlockSpec,t.className=`compose-block compose-error`,t.innerHTML=`<div class="compose-error-text">초안 형식을 읽을 수 없습니다. compose-block은 strict JSON이어야 하며 문자열 안 줄바꿈은 \\n으로 escape해야 합니다.</div>`;continue}t.className=`compose-block`,t.dataset.composeBlockSpec=eo(e),H.set(t,e),t.innerHTML=uo(e)}for(let t of oo(e)){if(H.has(t))continue;let e=to(t);e&&H.set(t,e)}}function po(e){return e instanceof HTMLElement?e.closest(Ha):null}function mo(e){return{subject:e.querySelector(`.compose-subject-input`)?.value||``,body:e.querySelector(`.compose-body`)?.value||``}}function ho(e){let t=(e.querySelector(`.compose-followup-input`)?.value||``).trim();return t.length>Ka?t.slice(0,Ka):t}function go(e,t,n=`error`){let r=e.querySelector(`.compose-followup-error`);r&&(r.textContent=t,r.dataset.state=t?n:``)}function _o(e,t){return new(e.ownerDocument.defaultView?.Event||Event)(t,{bubbles:!0})}function vo(e,t,n,r){let i=co(e.kind);return[`다음 compose-block 초안을 사용자가 편집했습니다.`,``,`종류: ${so(e.kind)}`,`카드 제목: ${e.title}`,``,`${i}:`,t||`(비어 있음)`,``,`본문:`,n||`(비어 있음)`,``,`사용자 추가 요청:`,r,``,`위 수정본과 추가 요청을 반영해서 새 compose-block 초안을 다시 작성해주세요. 결과는 strict JSON compose-block으로 반환하고, 멀티라인 본문은 variants[].paragraphs 또는 variants[].bodyLines 배열을 우선 사용해주세요.`].join(`
81
- `)}function yo(e,t){let n=ho(e);if(!n){go(e,`추가 요청을 입력한 뒤 Send를 눌러주세요.`),e.querySelector(`.compose-followup-input`)?.focus();return}let r=document.getElementById(`chatInput`);if(!r){go(e,`채팅 입력창을 찾을 수 없습니다.`);return}let{subject:i,body:a}=mo(e);r.value=vo(t,i,a,n),r.dispatchEvent(_o(r,`input`)),r.dispatchEvent(_o(r,`cmd-execute`));let o=e.querySelector(`.compose-followup-input`);o&&(o.value=``),go(e,`전송했습니다.`,`success`)}function bo(e,t){let n=H.get(e);if(!n)return;let r=n?.variants.find(e=>e.id===t);if(!r)return;let i=e.querySelector(`.compose-subject-input`),a=e.querySelector(`.compose-body`);i&&(i.value=r.subject||n.subject),a&&(a.value=r.body);for(let n of e.querySelectorAll(`.compose-tab`)){let e=n.dataset.variantId===t;n.classList.toggle(`is-active`,e),n.setAttribute(`aria-pressed`,String(e))}}async function xo(e){let t=navigator.clipboard;if(t?.writeText){await t.writeText(e);return}let n=document.createElement(`textarea`);n.value=e,n.style.position=`fixed`,n.style.opacity=`0`,document.body.appendChild(n),n.select(),document.execCommand(`copy`),n.remove()}function So(e){window.location.href=e}function Co(e){let t=e.target instanceof HTMLElement?e.target.closest(`[data-compose-action]`):null;if(!t)return;let n=po(t),r=n?H.get(n):null;if(!n||!r)return;e.preventDefault();let i=t.dataset.composeAction,{subject:a,body:o}=mo(n);i===`variant`&&bo(n,t.dataset.variantId||``),i===`copy`&&xo(a?`${a}\n\n${o}`:o),i===`mail`&&So(`mailto:?subject=${encodeURIComponent(a)}&body=${encodeURIComponent(o)}`),i===`sms`&&So(`sms:?body=${encodeURIComponent(o)}`),i===`send-followup`&&yo(n,r)}function wo(e){if(e.key!==`Enter`||e.shiftKey||!e.metaKey&&!e.ctrlKey)return;let t=e.target;if(!(t instanceof HTMLElement)||!t.classList.contains(`compose-followup-input`))return;let n=po(t),r=n?H.get(n):null;!n||!r||(e.preventDefault(),yo(n,r))}function To(){Ja!==document&&(document.addEventListener(`click`,Co),document.addEventListener(`keydown`,wo),Ja=document)}var Eo=`.dataframe-pending`,Do=`.dataframe-block`,Oo=20,ko=500,Ao=240,jo=25,G=new WeakMap,Mo=null;function No(e){return e.replace(/&/g,`&amp;`).replace(/"/g,`&quot;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}function Po(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&#39;`)}function Fo(e,t=Ao){let n=``;return n=e==null?``:typeof e==`object`?JSON.stringify(e):String(e),n=n.trim(),n.length>t?`${n.slice(0,t-1)}…`:n}function Io(e){try{return JSON.parse(e)}catch{return null}}function Lo(e){return encodeURIComponent(JSON.stringify(e))}function Ro(e){let t=e.dataset.dataframeSpec||``,n=``;try{n=decodeURIComponent(t)}catch{n=``}return Vo(Io(n))}function zo(e){return Math.min(100,Math.max(5,typeof e==`number`&&Number.isFinite(e)?Math.floor(e):jo))}function Bo(e){return e===`number`||e===`boolean`||e===`date`||e===`json`?e:`string`}function Vo(e){if(!e||typeof e!=`object`)return null;let t=e;if(t.schemaVersion!==`dataframe-v1`)return null;let n=(Array.isArray(t.columns)?t.columns:[]).map(e=>Fo(e,80)).filter(Boolean).slice(0,Oo);if(n.length===0)return null;let r=(Array.isArray(t.rows)?t.rows:Array.isArray(t.data)?t.data:[]).filter(e=>Array.isArray(e)).slice(0,ko).map(e=>n.map((t,n)=>Fo(e[n]))),i=Array.isArray(t.types)?t.types:[],a=n.map((e,t)=>Bo(i[t]));return{schemaVersion:`dataframe-v1`,title:Fo(t.title,120)||`Dataframe`,columns:n,types:a,rows:r,pageSize:zo(t.pageSize)}}function Ho(e){return`<div class="dataframe-pending" data-dataframe-kind="dataframe" data-dataframe-spec="${No(encodeURIComponent(e))}" role="status" aria-label="Dataframe loading">
82
- <div class="dataframe-loading">표를 준비하는 중...</div>
83
- </div>`}function Uo(e){let t=[];return e instanceof HTMLElement&&e.matches(Eo)&&t.push(e),t.push(...Array.from(e.querySelectorAll(Eo))),t}function Wo(e){let t=[],n=`${Do}[data-dataframe-spec]`;return e instanceof HTMLElement&&e.matches(n)&&t.push(e),t.push(...Array.from(e.querySelectorAll(n))),t}function Go(e){let t=e.filter.trim().toLowerCase(),n=e.spec.rows;if(t&&(n=n.filter(e=>e.some(e=>e.toLowerCase().includes(t)))),e.sortColumn!==null){let t=e.sortColumn,r=e.sortDirection===`asc`?1:-1;n=[...n].sort((e,n)=>e[t].localeCompare(n[t],void 0,{numeric:!0})*r)}return n}function K(e){let t=G.get(e);if(!t)return;let n=Go(t),r=Math.max(1,Math.ceil(n.length/t.spec.pageSize));t.page=Math.min(t.page,r-1);let i=t.page*t.spec.pageSize,a=n.slice(i,i+t.spec.pageSize),o=t.spec.columns.map((e,n)=>{let r=t.sortColumn===n?t.sortDirection===`asc`?`↑`:`↓`:``;return`<th><button class="dataframe-sort-btn" type="button" data-dataframe-action="sort" data-column-index="${n}">${Po(e)} ${r}</button></th>`}).join(``),s=a.length===0?`<tr><td class="dataframe-empty" colspan="${t.spec.columns.length}">표시할 행이 없습니다.</td></tr>`:a.map(e=>`<tr>${e.map(e=>`<td><button class="dataframe-cell" type="button" data-dataframe-action="copy-cell" data-cell-value="${No(e)}">${Po(e)}</button></td>`).join(``)}</tr>`).join(``);e.querySelector(`.dataframe-table-wrap`).innerHTML=`<table class="dataframe-table"><thead><tr>${o}</tr></thead><tbody>${s}</tbody></table>`,e.querySelector(`.dataframe-page-info`).textContent=`${t.page+1}/${r} · ${n.length} rows`;let c=e.querySelector(`[data-dataframe-action="prev"]`),l=e.querySelector(`[data-dataframe-action="next"]`);c&&(c.disabled=t.page===0),l&&(l.disabled=t.page>=r-1)}function Ko(e){return`
84
- <div class="dataframe-toolbar">
85
- <div class="dataframe-title">${Po(e.title)}</div>
86
- <input class="dataframe-filter" type="search" placeholder="Filter" aria-label="Filter table">
87
- </div>
88
- <div class="dataframe-table-wrap"></div>
89
- <div class="dataframe-pagination">
90
- <button class="dataframe-page-btn" type="button" data-dataframe-action="prev">Prev</button>
91
- <span class="dataframe-page-info"></span>
92
- <button class="dataframe-page-btn" type="button" data-dataframe-action="next">Next</button>
93
- </div>`}function qo(e=document){for(let t of Uo(e)){if(t.dataset.dataframeHydrated===`true`)continue;t.dataset.dataframeHydrated=`true`;let e=Ro(t);if(!e){console.warn(`[dataframe] invalid dataframe spec`),delete t.dataset.dataframeSpec,t.className=`dataframe-block dataframe-error`,t.innerHTML=`<div class="dataframe-error-text">표 형식을 읽을 수 없습니다.</div>`;continue}t.className=`dataframe-block`,t.dataset.dataframeSpec=Lo(e),G.set(t,{spec:e,filter:``,sortColumn:null,sortDirection:`asc`,page:0}),t.innerHTML=Ko(e),K(t)}for(let t of Wo(e)){if(G.has(t))continue;let e=Ro(t);if(!e)continue;let n=t.querySelector(`.dataframe-filter`)?.value||``;G.set(t,{spec:e,filter:n,sortColumn:null,sortDirection:`asc`,page:0}),K(t)}}function Jo(e){return e instanceof HTMLElement?e.closest(Do):null}async function Yo(e){navigator.clipboard?.writeText&&await navigator.clipboard.writeText(e)}function Xo(e){let t=e.target instanceof HTMLElement?e.target.closest(`[data-dataframe-action]`):null;if(!t)return;let n=Jo(t),r=n?G.get(n):null;if(!n||!r)return;e.preventDefault();let i=t.dataset.dataframeAction;if(i===`sort`){let e=Number(t.dataset.columnIndex);if(!Number.isInteger(e))return;r.sortColumn===e?r.sortDirection=r.sortDirection===`asc`?`desc`:`asc`:(r.sortColumn=e,r.sortDirection=`asc`),r.page=0,K(n)}i===`prev`&&(r.page=Math.max(0,r.page-1),K(n)),i===`next`&&(r.page+=1,K(n)),i===`copy-cell`&&Yo(t.dataset.cellValue||``)}function Zo(e){let t=e.target;if(!(t instanceof HTMLElement)||!t.classList.contains(`dataframe-filter`))return;let n=Jo(t),r=n?G.get(n):null;!n||!r||(r.filter=t.value,r.page=0,K(n))}function Qo(){Mo!==document&&(document.addEventListener(`click`,Xo),document.addEventListener(`input`,Zo),Mo=document)}var $o=`.chart-json-pending`,es=24,q=[`#2563eb`,`#16a34a`,`#dc2626`,`#9333ea`,`#ca8a04`,`#0891b2`];function ts(e){return e.replace(/&/g,`&amp;`).replace(/"/g,`&quot;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}function J(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&#39;`)}function ns(e,t){let n=typeof e==`string`?e.trim():``;return n.length>t?`${n.slice(0,t-1)}…`:n}function rs(e){try{return JSON.parse(e)}catch{return null}}function is(e){return e===`line`||e===`pie`?e:`bar`}function as(e){if(!e||typeof e!=`object`)return null;let t=e;if(t.schemaVersion!==`chart-json-v1`)return null;let n=Array.isArray(t.labels)?t.labels:[],r=Array.isArray(t.data)?t.data:[],i=Math.min(n.length,r.length,es),a=[],o=[];for(let e=0;e<i;e+=1){let t=Number(r[e]);Number.isFinite(t)&&(a.push(ns(n[e],40)||`Item ${e+1}`),o.push(t))}return a.length===0?null:{schemaVersion:`chart-json-v1`,type:is(t.type),title:ns(t.title,120)||`Chart`,description:ns(t.description,240),labels:a,data:o}}function os(e){return`<div class="chart-json-pending" data-chart-json-kind="chart-json" data-chart-json-spec="${ts(encodeURIComponent(e))}" role="status" aria-label="Chart loading">
94
- <div class="chart-json-loading">차트를 준비하는 중...</div>
95
- </div>`}function ss(e){let t=[];return e instanceof HTMLElement&&e.matches($o)&&t.push(e),t.push(...Array.from(e.querySelectorAll($o))),t}function cs(e,t,n){return n===t?.5:(e-t)/(n-t)}function ls(e){let t=Math.max(...e.data,1),n=Math.max(8,(360-6*(e.data.length-1))/e.data.length),r=e.data.map((r,i)=>{let a=Math.max(2,r/t*130);return`<rect x="${i*(n+6)}" y="${170-a-24}" width="${n}" height="${a}" rx="3" fill="${q[i%q.length]}"><title>${J(e.labels[i])}: ${r}</title></rect>`}).join(``);return`<svg class="chart-json-svg" viewBox="0 0 360 170" role="img" aria-label="${ts(e.title)}">${r}</svg>`}function us(e){let t=Math.min(...e.data),n=Math.max(...e.data),r=e.data.map((r,i)=>{let a=e.data.length===1?360/2:i/(e.data.length-1)*360,o=145-cs(r,t,n)*120;return`${a.toFixed(1)},${o.toFixed(1)}`}),i=r.map((t,n)=>{let[r,i]=t.split(`,`);return`<circle cx="${r}" cy="${i}" r="3" fill="${q[n%q.length]}"><title>${J(e.labels[n])}: ${e.data[n]}</title></circle>`}).join(``);return`<svg class="chart-json-svg" viewBox="0 0 360 170" role="img" aria-label="${ts(e.title)}"><polyline points="${r.join(` `)}" fill="none" stroke="#2563eb" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/>${i}</svg>`}function ds(e,t,n,r,i){let a=e+n*Math.cos(r),o=t+n*Math.sin(r),s=e+n*Math.cos(i),c=t+n*Math.sin(i),l=+(i-r>Math.PI);return`M ${e} ${t} L ${a.toFixed(2)} ${o.toFixed(2)} A ${n} ${n} 0 ${l} 1 ${s.toFixed(2)} ${c.toFixed(2)} Z`}function fs(e){let t=e.data.reduce((e,t)=>e+Math.max(0,t),0);if(t<=0)return ls(e);let n=-Math.PI/2,r=e.data.map((r,i)=>{let a=Math.max(0,r)/t*Math.PI*2,o=ds(90,85,64,n,n+a);return n+=a,`<path d="${o}" fill="${q[i%q.length]}"><title>${J(e.labels[i])}: ${r}</title></path>`}).join(``);return`<svg class="chart-json-svg" viewBox="0 0 180 170" role="img" aria-label="${ts(e.title)}">${r}</svg>`}function ps(e){return e.labels.map((e,t)=>`<span class="chart-json-legend-item"><span class="chart-json-swatch chart-json-swatch-${t%q.length}"></span>${J(e)}</span>`).join(``)}function ms(e){let t=e.type===`line`?us(e):e.type===`pie`?fs(e):ls(e);return`
96
- <div class="chart-json-header">
97
- <div class="chart-json-title">${J(e.title)}</div>
98
- ${e.description?`<div class="chart-json-description">${J(e.description)}</div>`:``}
99
- </div>
100
- <div class="chart-json-frame">${t}</div>
101
- <div class="chart-json-legend">${ps(e)}</div>`}function hs(e=document){for(let t of ss(e)){if(t.dataset.chartJsonHydrated===`true`)continue;t.dataset.chartJsonHydrated=`true`;let e=t.dataset.chartJsonSpec||``,n=``;try{n=decodeURIComponent(e)}catch{n=``}delete t.dataset.chartJsonSpec;let r=as(rs(n));if(!r){console.warn(`[chart-json] invalid chart spec`,{decodedChars:n.length}),t.className=`chart-json-block chart-json-error`,t.innerHTML=`<div class="chart-json-error-text">차트 형식을 읽을 수 없습니다.</div>`;continue}t.className=`chart-json-block`,t.innerHTML=ms(r)}}var gs=`link-preview-card`,_s=4,vs=200,Y=new Map,ys=[],bs=0;function xs(e){return e.replace(/&/g,`&amp;`).replace(/"/g,`&quot;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}function Ss(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&#39;`)}function Cs(e){let t=e.replace(/^\[|\]$/g,``).toLowerCase();return t===`localhost`||t.endsWith(`.localhost`)||t.endsWith(`.local`)||/^0\./.test(t)||/^10\./.test(t)||/^127\./.test(t)||/^169\.254\./.test(t)||/^172\.(1[6-9]|2\d|3[01])\./.test(t)||/^192\.168\./.test(t)||/^::1$/.test(t)}function ws(e){try{let t=new URL(e,window.location.href);return![`http:`,`https:`].includes(t.protocol)||t.origin===window.location.origin||t.username||t.password||Cs(t.hostname)||/\.(?:png|jpe?g|gif|webp|avif|svg|mp4|webm|mov|zip|tar|gz|pdf)(?:$|\?)/i.test(t.pathname)?``:t.href}catch{return``}}function Ts(e){return e.closest(`.${gs}, .search-results-block, .elicitation-block, .code-block`)||e.dataset.linkPreviewAttached===`true`?!1:!!ws(e.href)}async function Es(e){bs>=_s&&await new Promise(e=>ys.push(e)),bs+=1;try{return await e()}finally{--bs,ys.shift()?.()}}function Ds(e){let t=Y.get(e);if(t)return Y.delete(e),Y.set(e,t),t;let n=Es(async()=>{try{let t=await fetch(`${se}/api/link-preview?url=${encodeURIComponent(e)}`);if(t.status===204||!t.ok)return null;let n=await t.json();return n.ok&&n.data?n.data:null}catch{return null}});for(Y.set(e,n);Y.size>vs;){let e=Y.keys().next().value;if(!e)break;Y.delete(e)}return n}function Os(e){return`${se}/api/link-preview/image?url=${encodeURIComponent(e)}`}function ks(e,t){let n=String(e.title||``).trim(),r=String(e.description||``).trim(),i=String(e.siteName||e.domain||``).trim(),a=String(e.canonicalUrl||e.finalUrl||t).trim(),o=new URL(a||t).hostname,s=i&&i.toLowerCase()!==o.toLowerCase()?i:``,c=String(e.image||``).trim(),l=String(e.favicon||``).trim();if(!n&&!r&&!c&&!l)return null;let u=c?`<img class="link-preview-image" src="${xs(Os(c))}" alt="" loading="lazy" referrerpolicy="no-referrer">`:`<div class="link-preview-image link-preview-image-empty" aria-hidden="true"></div>`,d=l?`<img class="link-preview-favicon" src="${xs(Os(l))}" alt="" loading="lazy" referrerpolicy="no-referrer">`:``,f=document.createElement(`a`);return f.className=gs,f.href=a||t,f.target=`_blank`,f.rel=`noopener noreferrer`,f.setAttribute(`aria-label`,n?`Link preview: ${n}`:`Link preview`),f.innerHTML=`
102
- ${u}
103
- <span class="link-preview-body">
104
- <span class="link-preview-meta">${d}${s?`<span>${Ss(s)}</span><span class="link-preview-separator">-</span>`:``}<span class="link-preview-url">${Ss(o)}</span></span>
105
- ${n?`<span class="link-preview-title">${Ss(n)}</span>`:``}
106
- ${r?`<span class="link-preview-description">${Ss(r)}</span>`:``}
107
- </span>`,f.href=a||t,f}async function As(e){let t=ws(e.href);if(!t||e.dataset.linkPreviewAttached===`true`)return;e.dataset.linkPreviewAttached=`true`;let n=await Ds(t);if(!n||!e.isConnected)return;let r=ks(n,t);r&&e.insertAdjacentElement(`afterend`,r)}function js(e){if(!(`IntersectionObserver`in window)){As(e);return}let t=new IntersectionObserver(n=>{for(let r of n)r.isIntersecting&&(t.disconnect(),As(e))},{rootMargin:`160px`});t.observe(e)}function Ms(e=document){let t=[];e instanceof HTMLAnchorElement&&Ts(e)&&t.push(e),t.push(...Array.from(e.querySelectorAll(`a[href]`)).filter(Ts));for(let e of t)js(e)}var X=null,Z=null;function Ns(){Z&&clearTimeout(Z),X&&=(cancelAnimationFrame(X),null),Z=setTimeout(()=>{Z=null,X=requestAnimationFrame(()=>{X=null,zr(),jr(),Er();let e=document.getElementById(`chatMessages`);e&&(ua(e),Ba(e),fo(e),qo(e),hs(e),Ms(e),Ai(e))})},100)}function Ps(){Z&&=(clearTimeout(Z),null),X&&=(cancelAnimationFrame(X),null)}var Fs=!1;function Is(e,t){gr(t).then(t=>{if(!t.ok)return;let n=e.textContent||``;e.textContent=v(`code.copied`),e.classList.add(`copied`),setTimeout(()=>{e.textContent=n,e.classList.remove(`copied`)},1500)})}function Ls(){Fs||(Fs=!0,document.addEventListener(`click`,e=>{let t=e.target,n=t?.closest(`.code-copy-btn`);if(n){let e=n.closest(`.code-block`);if(!e)return;let t=e.querySelector(`pre code`);if(!t)return;Is(n,t.textContent||``);return}let r=t?.closest(`.code-lang-label`);if(!r)return;let i=r.closest(`.code-block-wrapper`);if(!i)return;let a=i.querySelector(`pre code`);a&&Is(r,a.textContent||``)}))}function Rs(){Ls(),br(),Ni(),Oa(),To(),Qo()}var zs=/^---\s+\S+\n\+\+\+\s+\S+\n@@\s/m,Bs=800;function Vs(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&#39;`)}function Hs(e){return zs.test(e.trim())}function Us(e){return e.startsWith(`--- `)||e.startsWith(`+++ `)?`diff-file`:e.startsWith(`@@`)?`diff-hunk`:e.startsWith(`+`)?`diff-add`:e.startsWith(`-`)?`diff-del`:e.startsWith(` `)?`diff-ctx`:`diff-meta`}function Ws(e,t){return t.startsWith(`@@`)||t.startsWith(`--- `)||t.startsWith(`+++ `)?``:String(e+1)}function Gs(e){let t=e.replace(/\r\n/g,`
108
- `).split(`
109
- `);return`<div class="diff-viewer" role="region" aria-label="Diff viewer">${t.slice(0,Bs).map((e,t)=>`<div class="diff-line ${Us(e)}"><span class="diff-ln">${Vs(Ws(t,e))}</span><span class="diff-code">${Vs(e||` `)}</span></div>`).join(``)}${t.length>Bs?`<div class="diff-omitted">${t.length-Bs} lines omitted</div>`:``}</div>`}var Ks=[`elicitation`,`choice-buttons`,`search-results`,`compose-block`,`dataframe`,`chart-json`],qs=/^ {0,3}(`{3,}|~{3,})([A-Za-z0-9_-]+)?[^\n]*$/;function Js(e){return new Set(e.map(e=>e.trim().toLowerCase()).filter(Boolean))}function Ys(e,t){let n=t[0],r=t.length;return RegExp(`^ {0,3}\\${n}{${r},}[ \\t]*$`).test(e)}function Xs(e,t=Ks){let n=Js(t),r=new Set,i=0,a=0,o=e.split(/\r?\n/);for(let e=0;e<o.length;e+=1){let t=o[e].match(qs);if(!t)continue;let s=t[1],c=(t[2]||``).trim().toLowerCase();if(!n.has(c))continue;r.add(c);let l=!1;for(let t=e+1;t<o.length;t+=1)if(Ys(o[t],s)){i+=1,l=!0,e=t;break}if(!l){a+=1;break}}return{status:a>0?`incomplete`:i>0?`complete`:`absent`,completeCount:i,incompleteCount:a,langs:[...r]}}function Zs(e){return Xs(e).status===`incomplete`}var Qs=!1,Q=!1,$s=RegExp(`^([ \\t]{0,3})([-*+]|\\d+[.)])[ \\t]+(\`{3,}|~{3,})(${[`elicitation`,`choice-buttons`,`search-results`,`compose-block`,`dataframe`,`chart-json`].join(`|`)})([^\\n]*)$`,`gim`);function ec(e){return e.replace($s,`$1$3$4$5`)}function $(e,t){let n=Ar(e,t),r=t?y(t):``,i=v(`code.copy`)||`Copy`;return`<div class="code-block"><div class="code-header"><span class="code-lang">${r}</span><button class="code-copy-btn" type="button" aria-label="${y(i)}">${y(i)}</button></div><pre><code class="hljs${t?` language-${y(t)}`:``}">${n}</code></pre></div>`}function tc(){if(Qs)return!0;let e=new n;return e.code=function({text:e,lang:t}){let n=t?.trim().toLowerCase();return n===`mermaid`?`<div class="mermaid-container mermaid-pending" data-mermaid-code-raw="${encodeURIComponent(e)}" role="status" aria-label="Diagram loading">
110
- <div class="mermaid-skeleton">
111
- <div class="mermaid-skeleton-spinner"></div>
112
- <div class="mermaid-skeleton-text">Rendering diagram…</div>
113
- </div>
114
- </div>`:n===`diagram-html`?`<div class="diagram-widget-pending" data-diagram-html="${btoa(unescape(encodeURIComponent(e)))}"
115
- role="status" aria-label="Interactive widget loading">
116
- <div class="diagram-spinner"></div>
117
- </div>`:n===`elicitation`||n===`choice-buttons`?Q?$(e,t):ca(e,n):n===`search-results`?Q?$(e,t):La(e):n===`compose-block`?Q?$(e,t):io(e):n===`dataframe`?Q?$(e,t):Ho(e):n===`chart-json`?Q?$(e,t):os(e):n===`diff`||!n&&Hs(e)?Gs(e):$(e,t)},e.image=function({href:e,title:t,text:n}){if(!e)return``;let r=e.startsWith(`/`)||e.includes(`/uploads/`)?`${se}/media/${encodeURIComponent(e.split(`/`).pop())}`:y(e),i=y(n||``),a=t?` title="${y(t)}"`:``,o=(r.split(`.`).pop()||``).toLowerCase().split(`?`)[0]||``;return[`mp4`,`webm`,`mov`,`ogg`].includes(o)?`<video src="${r}" controls class="chat-inline-video" preload="metadata"${a}></video>`:`<img src="${r}" alt="${i}" class="chat-inline-img" loading="lazy"${a} />`},e.link=function({href:e,title:t,text:n}){return`<a href="${y(e||``)}" target="_blank" rel="noopener noreferrer"${t?` title="${y(t)}"`:``}>${n}</a>`},t.setOptions({renderer:e,gfm:!0,breaks:!1}),Qs=!0,!0}function nc(e,n=!1){let r=nr(e);if(!r)return`<em class="text-dim orchestrate-placeholder">`+y(v(`orchestrator.dispatching`))+`</em>`;let i=ec(r).replace(/\n{3,}/g,`
118
-
119
- `),a=Zs(i),{text:o,fences:s}=Xn(i),{text:c,blocks:l}=Qn(o,n),{text:u,blocks:d}=rr(Zn(c,s));kr(),tc();let f=Jn(u),p=``;Q=n||a;try{p=t.parse(f)}finally{Q=!1}return p=p.replace(/<table/g,`<div class="table-wrapper"><table`).replace(/<\/table>/g,`</table></div>`),p=ir(p,d,n),p=ce(p),p=Tr(p,l),n||Ns(),Rs(),p}export{Gn as A,pr as C,qn as D,nr as E,Kn as O,fr as S,y as T,Br as _,qo as a,gr as b,ua as c,Xr as d,ei as f,Vr as g,k as h,hs as i,v as j,Hn as k,ta as l,ri as m,Ps as n,fo as o,O as p,Ms as r,Ba as s,nc as t,Ai as u,zr as v,dr as w,S as x,Pr as y};
@@ -1 +0,0 @@
1
- import{a as e,d as t,p as n}from"./settings-core-B2lw2bgO.js";import"./settings-D70uFh8l.js";export{e as loadSettings,t as savePerCli,n as updateSettings};
@@ -1 +0,0 @@
1
- import{d as e,l as t}from"./settings-core-B2lw2bgO.js";export{t as refreshHeaderFromSettingsChange,e as savePerCli};
@@ -1 +0,0 @@
1
- import{n as e}from"./skills-CdNOfXlk.js";export{e as loadSkills};
@@ -1 +0,0 @@
1
- import{a as e}from"./slash-commands-4Ntm5N7h.js";export{e as loadCommands};
@@ -1 +0,0 @@
1
- import{n as e}from"./chunk-AGHRB4JF-BeNb9aN4.js";import"./chunk-CSCIHK7Q-BPBO8B3q.js";import"./chunk-5ZQYHXKU-C3d9OOmT.js";import"./chunk-O5CBEL6O-D_hkyy5c.js";import"./chunk-BSJP7CBP-B24w6Ihw.js";import"./chunk-L5ZTLDWV-B3Ak80dW.js";import"./chunk-55IACEB6-C3KMx7HH.js";import"./chunk-2J33WTMH-D1olIwij.js";import"./chunk-NZK2D7GU-SJvHIVX3.js";import"./chunk-3OPIFGDE-Cf7991q8.js";import"./chunk-KSCS5N6A-CnJg0Z_l.js";import"./chunk-LZXEDZCA-C3fVGX8q.js";import{i as t,n,r,t as i}from"./chunk-AQP2D5EJ-CrRyjYkJ.js";var a={parser:n,get db(){return new i(2)},renderer:r,styles:t,init:e(e=>{e.state||={},e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute},`init`)};export{a as diagram};
@@ -1 +0,0 @@
1
- import"./chunk-NNHCCRGN-hPUSf84G.js";import{n as e}from"./chunk-WCWK7LTN-B6ske8a4.js";export{e as createTreeViewServices};
@@ -1 +0,0 @@
1
- import"./chunk-NNHCCRGN-hPUSf84G.js";import{n as e}from"./chunk-BR22UD5L-DR9GxWFk.js";export{e as createTreemapServices};
@@ -1 +0,0 @@
1
- import{F as e,d as t,o as n}from"./message-history-BmP5JKio.js";import{r}from"./ui-DsK6r0Xv.js";export{r as cleanupToolActivity,n as loadMessages,e as reconcileChatBottomAfterRestore,t as updateQueueBadge};
@@ -1,2 +0,0 @@
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{t as e}from"./state-DxpgDKMO.js";import{t}from"./preload-helper-DFYRRz9w.js";import{E as n,S as r,t as i,v as a,w as o}from"./render-C3r-9_-J.js";import{B as s,C as c,D as l,E as u,G as d,H as f,I as p,J as m,K as h,O as g,R as _,S as v,U as y,V as ee,W as b,X as te,_ as x,b as S,f as C,g as w,h as ne,l as re,m as T,p as ie,q as E,u as D,v as ae,w as O,x as k,y as A,z as j}from"./message-history-BmP5JKio.js";import{o as oe}from"./idb-cache-DTKWSF12.js";var se=2e3,ce=80;function M(e){return{chunks:[],fullText:``,textDirty:!1,element:e,pendingRAF:null,isFinalized:!1,lastRenderTime:0}}function le(e,t=``){let n=M(e);return t?(n.chunks=[t],n.fullText=t,n.textDirty=!1,n.element.innerHTML=i(t,!0)+`<span class="stream-cursor" aria-hidden="true"></span>`):n.element.innerHTML=`<span class="stream-cursor" aria-hidden="true"></span>`,n}function N(e){return e.textDirty&&=(e.fullText=e.chunks.join(``),!1),e.fullText}function P(e,t){e.chunks.push(t),e.textDirty=!0,!e.pendingRAF&&!e.isFinalized&&(e.pendingRAF=requestAnimationFrame(()=>{if(e.pendingRAF=null,e.isFinalized)return;let t=performance.now(),n=N(e);n.length<se||t-e.lastRenderTime>ce?(e.element.innerHTML=i(n,!0)+`<span class="stream-cursor" aria-hidden="true"></span>`,e.lastRenderTime=t):e.pendingRAF=requestAnimationFrame(()=>{e.pendingRAF=null,!e.isFinalized&&(e.element.innerHTML=i(N(e),!0)+`<span class="stream-cursor" aria-hidden="true"></span>`,e.lastRenderTime=performance.now())})}))}function F(e,t=!1){e.isFinalized=!0,e.pendingRAF&&=(cancelAnimationFrame(e.pendingRAF),null);let n=N(e);return t||(e.element.innerHTML=i(n)),n}function I(e){return typeof e.traceSeq==`number`&&Number.isFinite(e.traceSeq)&&e.traceSeq>0}function L(e,t){return!!t.traceRunId&&!!e.traceRunId&&t.traceRunId===e.traceRunId&&I(t)&&I(e)&&t.traceSeq===e.traceSeq&&t.type===e.type&&t.label===e.label&&!!t.isEmployee==!!e.isEmployee}function R(e,t){return t.stepRef&&e.stepRef===t.stepRef?!0:L(e,t)}function z(e,t,n={}){return[...e].reverse().filter(e=>n.includeDone||e.status===`running`).find(e=>R(e,t))??null}function B(e,t){let n=e.filter(e=>e.status===`running`&&!e.stepRef&&e.label===t.label&&e.type===t.type&&!!e.isEmployee==!!t.isEmployee);return n.length===1?n[0]:null}function V(e,t){let n=[...e].reverse().filter(e=>e.status===`running`);return z(n,t)||B(n,t)}function H(){e.currentProcessBlock&&d(e.currentProcessBlock),e.currentAgentDiv instanceof HTMLElement&&d(e.currentAgentDiv),l(),m(),e.currentAgentDiv=null,e.currentProcessBlock=null,q=null}var U=0;function W(){U=Date.now()}function ue(){U=0}function de(){return Date.now()-U<8e3}function G(e){for(let t of document.querySelectorAll(`.msg-user`))if(e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING)return!0;return!1}function K(){let t=e.currentAgentDiv&&e.currentAgentDiv.isConnected?e.currentAgentDiv:null;return t?G(t)?(e.currentAgentDiv=null,e.currentProcessBlock=null,q=null,null):t:null}function fe(){let e=Array.from(document.querySelectorAll(`.msg-agent`)).at(-1)??null;return!e||G(e)?null:e}function pe(t,n){A();let i=K();if(i||(i=x(`agent`,``),e.currentAgentDiv=i,e.currentProcessBlock=null),v(i),!e.currentProcessBlock){let t=i.querySelector(`.agent-body`);t&&(e.currentProcessBlock=S(i)),!e.currentProcessBlock&&t&&(c(i),e.currentProcessBlock=f(t))}if(n&&e.currentProcessBlock&&!e.currentProcessBlock.startedAt&&(e.currentProcessBlock.startedAt=n),e.currentProcessBlock){let n=t.rawIcon||t.icon,i=t.status||r(t.icon)||`running`;if(i===`done`||i===`error`){let r=V(e.currentProcessBlock.steps,t);if(r){t.icon=o(t.icon);let a=t.type===`thinking`?E(r.id,t.detail):b(r.id,t.detail);h(e.currentProcessBlock,r.id,{...r,...t,id:r.id,rawIcon:n,detail:a,detailPreview:a,label:t.label||r.label,status:i,startTime:r.startTime}),p();return}if(t.stepRef&&(i===`done`||i===`error`)){let r=[...e.currentProcessBlock.steps].reverse().find(e=>e.stepRef===t.stepRef&&(e.status===`done`||e.status===`error`));if(r){t.icon=o(t.icon);let a=t.type===`thinking`?E(r.id,t.detail):b(r.id,t.detail);h(e.currentProcessBlock,r.id,{...r,...t,id:r.id,rawIcon:n,status:i,detail:a,detailPreview:a,startTime:r.startTime}),p();return}}}if(t.stepRef&&i===`running`){let r=[...e.currentProcessBlock.steps].reverse().find(e=>e.stepRef===t.stepRef&&e.status===`running`);if(r){t.rawIcon=n,t.icon=o(t.icon);let i=E(r.id,t.detail);h(e.currentProcessBlock,r.id,{...r,...t,id:r.id,rawIcon:n,status:`running`,detail:i,detailPreview:i,label:t.label||r.label,startTime:r.startTime}),p();return}}let a=z(e.currentProcessBlock.steps,t,{includeDone:!0});if(a){t.rawIcon=n,t.icon=o(t.icon);let r=t.detail||``,s=y(a.id)||a.detail||a.detailPreview||``,c=r.length>=s.length?r:s,l=E(a.id,c),u=(a.status===`done`||a.status===`error`)&&i===`running`?a.status:i;h(e.currentProcessBlock,a.id,{...a,...t,id:a.id,rawIcon:n,status:u,detail:l,detailPreview:l,label:t.label||a.label,startTime:a.startTime}),p();return}if(t.detail){let n=[...e.currentProcessBlock.steps].reverse().find(e=>e.status===`running`&&e.label===t.label&&e.type===t.type&&!!e.isEmployee==!!t.isEmployee&&!e.detail);if(n){h(e.currentProcessBlock,n.id,t),p();return}}t.rawIcon=n,t.icon=o(t.icon),j(e.currentProcessBlock,t)}p()}var q=null,J=`data-active-run-hydrated`;function Y(e){document.querySelectorAll(`[${J}="true"]`).forEach(t=>{e&&t===e||t.remove()})}function me(e){let t=K()??fe();Y(t);let n=t||x(`agent`,``,e||null);return n.setAttribute(J,`true`),n}function he(e,t){let n=y(e.id)||e.detail||e.detailPreview||``,r=t.detail||t.detailPreview||``;return r.length>=n.length?r:n}function X(e){return e.stepRef?!0:!!e.traceRunId&&typeof e.traceSeq==`number`&&Number.isFinite(e.traceSeq)&&e.traceSeq>0}function ge(e,t){let n=e.steps.filter(e=>!X(e)),r=0,i=!0;for(let a of t){let t=e.steps.find(e=>R(e,a))??null;if(!t&&!X(a)&&i){let e=n[r]??null;e?e.type===a.type&&!!e.isEmployee==!!a.isEmployee?(t=e,r++):i=!1:r++}if(!t){let n=e.steps.filter(e=>e.label===a.label&&e.type===a.type&&!!e.isEmployee==!!a.isEmployee);t=n.length===1?n[0]:null}if(!t){if(j(e,a),!X(a)&&i){let t=e.steps[e.steps.length-1];t&&n.push(t)}continue}let o=E(t.id,he(t,a));h(e,t.id,{...t,...a,id:t.id,detail:o,detailPreview:o,label:a.label||t.label})}}function _e(e=[]){document.querySelectorAll(`[data-queued-overlay="true"]`).forEach(e=>e.remove())}var Z=``;function ve(e){let t=Array.isArray(e.toolLog)?e.toolLog:[],n=t.map(e=>`${e.stepRef||``}~${e.traceRunId||``}~${e.traceSeq??``}~${e.status||``}~${e.label||``}~${(e.detail||``).length}`).join(`|`);return`${e.traceRunId||``}:${e.cli||``}:${(e.text||``).length}:${t.length}:${n}`}function Q(t){if(!t?.running){Z=``,Y();return}let n=ve(t);if(n===Z&&K())return;l(),A(),e.currentAgentDiv=me(t.cli||null);let r=e.currentAgentDiv.querySelector(`.agent-body`),i=T(t.toolLog||[]);v(e.currentAgentDiv),e.currentProcessBlock=S(e.currentAgentDiv),r&&i.length?(e.currentProcessBlock||=(c(e.currentAgentDiv),f(r)),t.startedAt&&(e.currentProcessBlock.startedAt=t.startedAt),ge(e.currentProcessBlock,w(i,t.startedAt))):e.currentProcessBlock=S(e.currentAgentDiv);let a=e.currentAgentDiv.querySelector(`.msg-content`);a&&(q=le(a,t.text||``)),Z=n}function ye(t){if(!t)return;A(),K()||(e.currentAgentDiv=x(`agent`,``),q=null);let n=e.currentAgentDiv?.querySelector(`.msg-content`);n&&(q||=M(n),P(q,t)),p()}var $=0;function be(e){e.querySelectorAll(`.mermaid-pending`).forEach(e=>{delete e.dataset.mermaidQueued,delete e.dataset.mermaidQueuedAt})}function xe(t,r){let o=Date.now();if(!e.currentAgentDiv&&o-$<500)return;Z=``,l(),A(),e.currentAgentDiv&&v(e.currentAgentDiv);let c=O(e.currentProcessBlock??e.currentAgentDiv,!0),u=T(ie(Array.isArray(r)?r:[],c)),f=ne(u),p=!!e.currentProcessBlock||!!(e.currentAgentDiv&&k(e.currentAgentDiv));e.currentProcessBlock&&=(ee(e.currentProcessBlock),null);let m=u.length>0;if(t||m){(!e.currentAgentDiv||!e.currentAgentDiv.isConnected)&&(e.currentAgentDiv=x(`agent`,``)),e.currentAgentDiv.removeAttribute(J);let r=e.currentAgentDiv?.querySelector(`.msg-content`),o=q?F(q,!0):``,c=t||o;if(q=null,r&&(r.innerHTML=i(c)),m&&e.currentAgentDiv&&!p&&!k(e.currentAgentDiv)){let t=e.currentAgentDiv.querySelector(`.msg-content`);t&&t.insertAdjacentHTML(`beforebegin`,s(w(u),!0))}e.currentAgentDiv&&v(e.currentAgentDiv),r&&r.setAttribute(`data-raw`,n(c)),r&&g(r);let l=_(),h=!!(l.active&&e.currentAgentDiv&&e.currentAgentDiv.isConnected);if(r&&!h&&a(r,{immediate:!0}),h){let t=e.currentAgentDiv;be(t),t.querySelectorAll(`.diagram-widget`).forEach(e=>{let t=e.dataset.widgetHtml;if(!t)return;let n=document.createElement(`div`);n.className=`diagram-widget-pending`,n.dataset.diagramHtml=t,e.replaceWith(n)}),f?(l.appendItem(C({role:`assistant`,content:c,cli:null,tool_log:f},l.count)),d(t),l.scrollToBottom()):(t.dataset.turnIndex=String(l.count),t.dataset.messageId||(t.dataset.messageId=te()),l.appendLiveItem(t)),t.remove()}c&&oe({role:`assistant`,content:c,tool_log:f,timestamp:Date.now()}).catch(()=>{})}q=null,e.currentAgentDiv=null,$=Date.now(),D(`idle`),re()}function Se(e,n){document.querySelectorAll(`.tab-btn`).forEach(e=>{e.classList.remove(`active`),e.setAttribute(`aria-selected`,`false`)}),document.querySelectorAll(`.tab-content`).forEach(e=>e.classList.remove(`active`)),document.getElementById({agents:`tabAgents`,settings:`tabSettings`,skills:`tabSkills`}[e])?.classList.add(`active`),n&&(n.classList.add(`active`),n.setAttribute(`aria-selected`,`true`)),e===`settings`&&t(()=>import(`./settings-CJm8ZSJs.js`).then(e=>e.loadSettings()),__vite__mapDeps([0])),e===`agents`&&t(()=>import(`./employees-DbgFV33i.js`).then(e=>e.loadEmployees()),__vite__mapDeps([0])),e===`skills`&&t(()=>import(`./skills-DG_CbTEf.js`).then(e=>e.loadSkills()),__vite__mapDeps([0]))}function Ce(){let e=document.getElementById(`tabSettings`)?.classList.contains(`active`);t(()=>import(`./settings-CJm8ZSJs.js`).then(t=>e?t.savePerCli():t.updateSettings()),__vite__mapDeps([0]))}function we(){u({onStatus:ae})}export{xe as a,we as c,pe as d,Se as f,ue as i,de as l,_e as n,Ce as o,H as r,Q as s,ye as t,W as u};
@@ -1 +0,0 @@
1
- import"./chunk-NNHCCRGN-hPUSf84G.js";import{n as e}from"./chunk-PUPMXCY4-DcRmz6F2.js";export{e as createWardleyServices};