@vantran-se/openchamber-web 1.24.4 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (367) hide show
  1. package/README.md +2 -8
  2. package/bin/lib/commands-connect-url.js +3 -8
  3. package/bin/lib/commands-tunnel.js +3 -0
  4. package/dist/assets/{CodeMirrorCommentWidgets-B4a0JkUz.js → CodeMirrorCommentWidgets-B82Oye3V.js} +1 -1
  5. package/dist/assets/DiffView-DJLmWn6Z.js +4 -0
  6. package/dist/assets/FilesView-DjksmZRo.js +17 -0
  7. package/dist/assets/{GitView-Byu2DY7s.js → GitView-DiUsUIgr.js} +4 -4
  8. package/dist/assets/{GuestAttachDialog-B808E0-d.js → GuestAttachDialog-CYwWYLr3.js} +1 -1
  9. package/dist/assets/GuestSurfacePane-CmctyRI4.js +1 -0
  10. package/dist/assets/{JsonTreeView-VW_7czo3.js → JsonTreeView-DOHHcbgJ.js} +1 -1
  11. package/dist/assets/LinearIssuesView-DaqnylcV.js +1 -0
  12. package/dist/assets/MarkdownImageGallery-HJNvWt7L.js +1 -0
  13. package/dist/assets/MarkdownRendererImpl-nDZRGg2I.js +12 -0
  14. package/dist/assets/OnboardingScreen-C2B5Bsof.js +1 -0
  15. package/dist/assets/{PatchDiff-DCjGhlYV.js → PatchDiff-C4FLBjpt.js} +1 -1
  16. package/dist/assets/{PierreDiffViewer-CEDZNkU2.js → PierreDiffViewer-C_1S9c9n.js} +1 -1
  17. package/dist/assets/PlanView-_eZvb-G5.js +5 -0
  18. package/dist/assets/PluginPane-sM8fcZIV.js +3 -0
  19. package/dist/assets/SettingsView-BRfr46hb.js +29 -0
  20. package/dist/assets/SettingsWindow-CcUDwQHg.js +1 -0
  21. package/dist/assets/SubmoduleDiffSummary-CrN1ZGwl.js +1 -0
  22. package/dist/assets/ToolOutputDialog-Cij4jI09.js +15 -0
  23. package/dist/assets/ToolPartDiffPreview-BXzwQ-JY.js +8 -0
  24. package/dist/assets/{VirtualizedFileDiff-NU0FHFhT.js → VirtualizedFileDiff-DSWTLJNH.js} +4 -4
  25. package/dist/assets/{WalkthroughView-BZyjhqHv.js → WalkthroughView-CpUUgY8H.js} +2 -2
  26. package/dist/assets/appThemeRegistry-B5tHTkR8.js +1 -0
  27. package/dist/assets/{commitAndPush-BDftrjr6.js → commitAndPush-D7D8qV8p.js} +1 -1
  28. package/dist/assets/{computeVirtualFileMetrics-DlWlEM3x.js → computeVirtualFileMetrics-cq9uQ30i.js} +1 -1
  29. package/dist/assets/de-CUO1-KqF.js +10 -0
  30. package/dist/assets/es-BlbC6sGJ.js +16 -0
  31. package/dist/assets/fr-D2nwe_0W.js +14 -0
  32. package/dist/assets/index-BQOoYIOu.js +1 -0
  33. package/dist/assets/index-CLcM8HKx.css +1 -0
  34. package/dist/assets/index-CvLgnuNI.js +41 -0
  35. package/dist/assets/{isDiffPlainText-CO4e5J_S.js → isDiffPlainText-D0obJ2p8.js} +1 -1
  36. package/dist/assets/{isFilePlainText-ue6kCou7.js → isFilePlainText-DB3_rjyW.js} +1 -1
  37. package/dist/assets/ja-CA7vnDsZ.js +16 -0
  38. package/dist/assets/ko-Chy6a9l-.js +16 -0
  39. package/dist/assets/main-B9JFK3vF.js +896 -0
  40. package/dist/assets/main-Bhiqnrhd.js +2 -0
  41. package/dist/assets/{markdownCore-CK48LG0z.js → markdownCore-tfqOFaBd.js} +4 -4
  42. package/dist/assets/miniChat-B0UOL5zA.js +2 -0
  43. package/dist/assets/mobile-BJppFIEo.js +2 -0
  44. package/dist/assets/{patchFileDiff-D7QVlovD.js → patchFileDiff-Db6KuwCP.js} +3 -3
  45. package/dist/assets/pl-CTR5A_1P.js +16 -0
  46. package/dist/assets/pt-BR-BE1O1KEx.js +16 -0
  47. package/dist/assets/renderElectronMiniChatApp-Yz5sfoFh.js +2 -0
  48. package/dist/assets/renderMobileApp-QQ-yB8aY.js +25 -0
  49. package/dist/assets/runtimeEndpointReset-DKDdzRzm.js +27 -0
  50. package/dist/assets/scheduledTasksApi-C5sCuNqf.js +1 -0
  51. package/dist/assets/{shikiHighlight-BPu3JiQs.js → shikiHighlight-xURoo5t_.js} +1 -1
  52. package/dist/assets/{textMateThemeFromAppTheme-DWqRPo9A.js → textMateThemeFromAppTheme-BZLGuYTU.js} +1 -1
  53. package/dist/assets/tr-Bh5vK6cW.js +7 -0
  54. package/dist/assets/uk-CLDkZFy_.js +16 -0
  55. package/dist/assets/useAppFontEffects-BxrtCnfR.js +7337 -0
  56. package/dist/assets/{useInlineCommentController-CgS0fnw_.js → useInlineCommentController-CeXuR-SR.js} +2 -2
  57. package/dist/assets/useRootScrollLock-DgWxezc1.js +2 -0
  58. package/dist/assets/{vendor-codemirror-language-data-Bx2EHc1O.js → vendor-codemirror-language-data-DOuaQUZ0.js} +2 -2
  59. package/dist/assets/vendor-cron-parser-CjvYVigk.js +2 -0
  60. package/dist/assets/vendor-opencode-client-_BAHQo4R.js +12 -0
  61. package/dist/assets/{vendor-remixicon-react-BDmGmFCA.js → vendor-remixicon-react-D6dZ0UwF.js} +1 -1
  62. package/dist/assets/{vendor-zod-CgAdXWZO.js → vendor-zod-Gea9uBlY.js} +1 -1
  63. package/dist/assets/{web-components-DxX8bZ1o.js → web-components-63H1h21j.js} +2 -2
  64. package/dist/assets/zh-CN-DODgcmYj.js +16 -0
  65. package/dist/assets/zh-TW-ByNfIwLA.js +16 -0
  66. package/dist/index.html +13 -7
  67. package/dist/mini-chat.html +5 -5
  68. package/dist/mobile.html +5 -5
  69. package/package.json +6 -5
  70. package/server/index.d.ts +1 -0
  71. package/server/index.js +246 -91
  72. package/server/lib/agent-tool/DOCUMENTATION.md +32 -15
  73. package/server/lib/agent-tool/runtime.js +135 -54
  74. package/server/lib/agent-tool/runtime.test.js +155 -87
  75. package/server/lib/browser-control/DOCUMENTATION.md +37 -2
  76. package/server/lib/browser-control/provider.js +217 -0
  77. package/server/lib/browser-control/provider.test.js +251 -0
  78. package/server/lib/context-obligatory/runtime.js +61 -50
  79. package/server/lib/context-obligatory/runtime.test.js +62 -162
  80. package/server/lib/event-stream/DOCUMENTATION.md +12 -1
  81. package/server/lib/event-stream/delta-coalescer.js +0 -0
  82. package/server/lib/event-stream/delta-coalescer.test.js +68 -57
  83. package/server/lib/event-stream/directory-ws-bridge.js +1 -1
  84. package/server/lib/event-stream/global-hub.js +10 -1
  85. package/server/lib/event-stream/global-hub.test.js +27 -26
  86. package/server/lib/event-stream/index.js +6 -0
  87. package/server/lib/event-stream/protocol.js +26 -19
  88. package/server/lib/event-stream/protocol.test.js +18 -7
  89. package/server/lib/event-stream/rebind.test.js +5 -5
  90. package/server/lib/event-stream/runtime.test.js +17 -15
  91. package/server/lib/event-stream/translate-v2.js +313 -0
  92. package/server/lib/event-stream/translate-v2.test.js +209 -0
  93. package/server/lib/event-stream/upstream-reader.test.js +16 -16
  94. package/server/lib/fs/DOCUMENTATION.md +4 -2
  95. package/server/lib/fs/byte-range.js +35 -0
  96. package/server/lib/fs/byte-range.test.js +31 -0
  97. package/server/lib/fs/routes.js +47 -42
  98. package/server/lib/fs/routes.test.js +123 -18
  99. package/server/lib/git/service.js +12 -0
  100. package/server/lib/github/DOCUMENTATION.md +1 -1
  101. package/server/lib/github/pr-status.js +22 -2
  102. package/server/lib/github/pr-status.test.js +27 -14
  103. package/server/lib/guests/DOCUMENTATION.md +13 -0
  104. package/server/lib/guests/catalog.js +12 -0
  105. package/server/lib/guests/catalog.test.js +33 -0
  106. package/server/lib/guests/routes.js +10 -1
  107. package/server/lib/guests/service.js +192 -14
  108. package/server/lib/guests/service.test.js +201 -1
  109. package/server/lib/guests/surface.js +630 -0
  110. package/server/lib/guests/surface.test.js +486 -0
  111. package/server/lib/markdown-image-grants/routes.js +18 -5
  112. package/server/lib/markdown-image-grants/routes.test.js +9 -6
  113. package/server/lib/message-queue/DOCUMENTATION.md +33 -22
  114. package/server/lib/message-queue/runtime.js +155 -100
  115. package/server/lib/message-queue/runtime.test.js +168 -82
  116. package/server/lib/notifications/DOCUMENTATION.md +28 -0
  117. package/server/lib/notifications/control-stream.http.test.js +68 -0
  118. package/server/lib/notifications/emitter-runtime.js +15 -0
  119. package/server/lib/notifications/emitter-runtime.test.js +32 -0
  120. package/server/lib/notifications/push-runtime.js +5 -1
  121. package/server/lib/notifications/push-runtime.test.js +2 -2
  122. package/server/lib/notifications/routes.js +1 -1
  123. package/server/lib/notifications/runtime.js +115 -26
  124. package/server/lib/notifications/template-runtime.js +13 -15
  125. package/server/lib/notifications/template-runtime.test.js +16 -9
  126. package/server/lib/notifications/trigger-runtime.test.js +187 -0
  127. package/server/lib/openchamber-control/DOCUMENTATION.md +10 -0
  128. package/server/lib/openchamber-control/actions.js +3 -2
  129. package/server/lib/openchamber-control/error.js +1 -1
  130. package/server/lib/openchamber-control/file-open.js +59 -0
  131. package/server/lib/openchamber-control/file-open.test.js +57 -0
  132. package/server/lib/openchamber-control/routes.test.js +12 -0
  133. package/server/lib/openchamber-control/service.js +102 -49
  134. package/server/lib/openchamber-control/service.test.js +84 -44
  135. package/server/lib/openchamber-sessions/archive-store.js +224 -0
  136. package/server/lib/openchamber-sessions/archive-store.test.js +187 -0
  137. package/server/lib/openchamber-sessions/opencode-client.js +22 -0
  138. package/server/lib/openchamber-sessions/routes.js +398 -328
  139. package/server/lib/openchamber-sessions/routes.test.js +777 -740
  140. package/server/lib/openchamber-sessions/session-metadata-store.js +285 -0
  141. package/server/lib/openchamber-sessions/session-metadata-store.test.js +259 -0
  142. package/server/lib/opencode/DOCUMENTATION.md +449 -29
  143. package/server/lib/opencode/agents.js +233 -327
  144. package/server/lib/opencode/auth.js +41 -44
  145. package/server/lib/opencode/auth.test.js +92 -0
  146. package/server/lib/opencode/cli-upgrade.d.ts +4 -0
  147. package/server/lib/opencode/cli-upgrade.js +18 -0
  148. package/server/lib/opencode/cli-upgrade.test.js +36 -0
  149. package/server/lib/opencode/commands.js +164 -145
  150. package/server/lib/opencode/compatibility.d.ts +16 -0
  151. package/server/lib/opencode/compatibility.js +88 -0
  152. package/server/lib/opencode/compatibility.test.js +62 -0
  153. package/server/lib/opencode/config-entity-routes.js +58 -29
  154. package/server/lib/opencode/config-entity-v2.test.js +290 -0
  155. package/server/lib/opencode/config-mutation-response.js +17 -7
  156. package/server/lib/opencode/config-mutation-response.test.js +4 -7
  157. package/server/lib/opencode/config-paths.test.js +2 -2
  158. package/server/lib/opencode/config-v2.d.ts +183 -0
  159. package/server/lib/opencode/config-v2.js +801 -0
  160. package/server/lib/opencode/config-v2.test.js +466 -0
  161. package/server/lib/opencode/credential-db.js +144 -0
  162. package/server/lib/opencode/credential-db.test.js +104 -0
  163. package/server/lib/opencode/env-runtime.js +48 -9
  164. package/server/lib/opencode/env-runtime.test.js +45 -0
  165. package/server/lib/opencode/feature-routes-runtime.js +15 -5
  166. package/server/lib/opencode/lifecycle-process.test.js +7 -4
  167. package/server/lib/opencode/lifecycle.js +85 -30
  168. package/server/lib/opencode/lifecycle.test.js +80 -8
  169. package/server/lib/opencode/login-shell-env.js +27 -0
  170. package/server/lib/opencode/managed-config-file.js +119 -0
  171. package/server/lib/opencode/managed-config-file.test.js +152 -0
  172. package/server/lib/opencode/managed-plugin-config.js +33 -13
  173. package/server/lib/opencode/mcp.js +43 -149
  174. package/server/lib/opencode/network-runtime.js +6 -7
  175. package/server/lib/opencode/openchamber-routes.test.js +2 -5
  176. package/server/lib/opencode/plugin-routes.js +3 -3
  177. package/server/lib/opencode/plugin-routes.test.js +6 -24
  178. package/server/lib/opencode/plugins.js +91 -40
  179. package/server/lib/opencode/plugins.test.js +28 -15
  180. package/server/lib/opencode/providers.js +63 -83
  181. package/server/lib/opencode/providers.test.js +128 -59
  182. package/server/lib/opencode/proxy-agent-wiring.test.js +4 -2
  183. package/server/lib/opencode/proxy.js +179 -129
  184. package/server/lib/opencode/pwa-manifest-routes.js +4 -2
  185. package/server/lib/opencode/pwa-manifest-routes.test.js +3 -2
  186. package/server/lib/opencode/response-envelope.js +14 -0
  187. package/server/lib/opencode/response-envelope.test.js +23 -0
  188. package/server/lib/opencode/routes-upgrade.test.js +73 -116
  189. package/server/lib/opencode/routes.js +121 -428
  190. package/server/lib/opencode/server-utils-runtime.js +10 -4
  191. package/server/lib/opencode/session-activity.js +78 -0
  192. package/server/lib/opencode/session-runtime.js +21 -10
  193. package/server/lib/opencode/session-runtime.test.js +9 -9
  194. package/server/lib/opencode/settings-helpers.js +9 -9
  195. package/server/lib/opencode/settings-helpers.test.js +7 -12
  196. package/server/lib/opencode/settings-registry.json +6 -8
  197. package/server/lib/opencode/settings-runtime.js +18 -1
  198. package/server/lib/opencode/settings-runtime.test.js +31 -2
  199. package/server/lib/opencode/shared.js +54 -22
  200. package/server/lib/opencode/shared.test.js +8 -4
  201. package/server/lib/opencode/shutdown-runtime.js +54 -7
  202. package/server/lib/opencode/shutdown-runtime.test.js +224 -30
  203. package/server/lib/opencode/skill-routes.js +23 -24
  204. package/server/lib/opencode/skills.js +7 -5
  205. package/server/lib/opencode/tunnel-wiring-runtime.js +2 -1
  206. package/server/lib/opencode/upgrade-capability.test.js +1 -1
  207. package/server/lib/opencode/v1-migration-topup.js +288 -0
  208. package/server/lib/opencode/v1-migration-topup.test.js +266 -0
  209. package/server/lib/opencode/v2-install.d.ts +8 -0
  210. package/server/lib/opencode/v2-install.js +158 -0
  211. package/server/lib/opencode/v2-install.test.js +124 -0
  212. package/server/lib/opencode/watcher.js +10 -3
  213. package/server/lib/opencode/watcher.test.js +17 -21
  214. package/server/lib/opencode/websearch-config.js +66 -0
  215. package/server/lib/package-manager.js +55 -68
  216. package/server/lib/package-manager.test.js +241 -75
  217. package/server/lib/permission-auto-accept/runtime.js +38 -22
  218. package/server/lib/permission-auto-accept/runtime.test.js +39 -17
  219. package/server/lib/quota/DOCUMENTATION.md +4 -0
  220. package/server/lib/quota/providers/xai.js +4 -4
  221. package/server/lib/relay/tunnel-host.js +4 -1
  222. package/server/lib/relay/tunnel-host.test.js +7 -0
  223. package/server/lib/routing/DOCUMENTATION.md +52 -21
  224. package/server/lib/routing/defaults.js +23 -6
  225. package/server/lib/routing/jev.js +17 -7
  226. package/server/lib/routing/routes.http.test.js +68 -33
  227. package/server/lib/routing/routes.js +65 -22
  228. package/server/lib/routing/runtime.js +145 -48
  229. package/server/lib/routing/runtime.test.js +79 -55
  230. package/server/lib/scheduled-tasks/DOCUMENTATION.md +4 -0
  231. package/server/lib/scheduled-tasks/issue-2710-double-execution.test.js +51 -46
  232. package/server/lib/scheduled-tasks/runtime.js +81 -74
  233. package/server/lib/scheduled-tasks/runtime.test.js +53 -1
  234. package/server/lib/session-assist/DOCUMENTATION.md +8 -3
  235. package/server/lib/session-assist/context.js +122 -46
  236. package/server/lib/session-assist/context.test.js +117 -49
  237. package/server/lib/session-assist/runtime.js +52 -22
  238. package/server/lib/session-assist/runtime.test.js +145 -173
  239. package/server/lib/session-goal/DOCUMENTATION.md +23 -15
  240. package/server/lib/session-goal/create.js +9 -12
  241. package/server/lib/session-goal/create.test.js +27 -28
  242. package/server/lib/session-goal/runtime.js +164 -77
  243. package/server/lib/session-goal/runtime.test.js +271 -519
  244. package/server/lib/session-knowledge/DOCUMENTATION.md +5 -0
  245. package/server/lib/session-knowledge/runtime.js +59 -41
  246. package/server/lib/session-knowledge/runtime.test.js +90 -20
  247. package/server/lib/small-model/DOCUMENTATION.md +154 -208
  248. package/server/lib/small-model/client.js +113 -0
  249. package/server/lib/small-model/index.js +296 -158
  250. package/server/lib/small-model/index.test.js +423 -256
  251. package/server/lib/small-model/routes.js +1 -1
  252. package/server/lib/spaces/DOCUMENTATION.md +807 -0
  253. package/server/lib/spaces/code-in-bait.js +185 -0
  254. package/server/lib/spaces/code-in.js +641 -0
  255. package/server/lib/spaces/code-in.test.js +1048 -0
  256. package/server/lib/spaces/errors.js +8 -0
  257. package/server/lib/spaces/exec-http.js +94 -0
  258. package/server/lib/spaces/gatekeeper-channel.js +202 -0
  259. package/server/lib/spaces/gatekeeper-channel.test.js +215 -0
  260. package/server/lib/spaces/gatekeeper-program.cjs +914 -0
  261. package/server/lib/spaces/gatekeeper-program.test.js +1391 -0
  262. package/server/lib/spaces/hardening.js +457 -0
  263. package/server/lib/spaces/hardening.test.js +368 -0
  264. package/server/lib/spaces/host-git.js +127 -0
  265. package/server/lib/spaces/host-git.test.js +137 -0
  266. package/server/lib/spaces/labels.js +234 -0
  267. package/server/lib/spaces/labels.test.js +219 -0
  268. package/server/lib/spaces/layout.js +184 -0
  269. package/server/lib/spaces/layout.test.js +30 -0
  270. package/server/lib/spaces/manager.js +82 -0
  271. package/server/lib/spaces/manager.test.js +114 -0
  272. package/server/lib/spaces/places/code-in.docker.live.test.js +216 -0
  273. package/server/lib/spaces/places/contract-suite.js +156 -0
  274. package/server/lib/spaces/places/contract.docker.live.test.js +7 -0
  275. package/server/lib/spaces/places/contract.test.js +6 -0
  276. package/server/lib/spaces/places/docker-engine.js +126 -0
  277. package/server/lib/spaces/places/docker-live-support.js +202 -0
  278. package/server/lib/spaces/places/docker-tools.js +186 -0
  279. package/server/lib/spaces/places/docker.js +587 -0
  280. package/server/lib/spaces/places/docker.test.js +1610 -0
  281. package/server/lib/spaces/places/escape-suite.js +1018 -0
  282. package/server/lib/spaces/places/escape.docker.live.test.js +7 -0
  283. package/server/lib/spaces/places/fake-docker.js +375 -0
  284. package/server/lib/spaces/places/memory-place.js +103 -0
  285. package/server/lib/spaces/places/packed.docker.live.test.js +77 -0
  286. package/server/lib/spaces/places/registry.js +43 -0
  287. package/server/lib/spaces/places/registry.test.js +50 -0
  288. package/server/lib/spaces/places/server.docker.live.test.js +225 -0
  289. package/server/lib/spaces/run-command.js +261 -0
  290. package/server/lib/spaces/run-command.test.js +396 -0
  291. package/server/lib/spaces/space-server.js +190 -0
  292. package/server/lib/spaces/space-server.test.js +335 -0
  293. package/server/lib/spaces/tools-filler.js +82 -0
  294. package/server/lib/spaces/tools-filler.test.js +148 -0
  295. package/server/lib/spaces/tools-pack.js +49 -0
  296. package/server/lib/spaces/tools-pack.test.js +57 -0
  297. package/server/lib/spaces/tools.js +138 -0
  298. package/server/lib/spaces/tools.test.js +153 -0
  299. package/server/lib/tts/openai-sdk.js +11 -0
  300. package/server/lib/tts/service.js +7 -5
  301. package/server/lib/tts/stt.js +3 -2
  302. package/server/lib/tunnels/DOCUMENTATION.md +2 -0
  303. package/server/lib/tunnels/routes.js +7 -0
  304. package/server/lib/tunnels/routes.test.js +55 -0
  305. package/server/lib/ui-auth/ui-auth.js +38 -2
  306. package/server/lib/ui-auth/ui-auth.test.js +42 -0
  307. package/server/lib/ui-auth/ui-passkeys.js +12 -10
  308. package/server/lib/walkthrough/DOCUMENTATION.md +10 -1
  309. package/server/lib/walkthrough/pull-request.js +61 -8
  310. package/server/lib/walkthrough/pull-request.test.js +54 -1
  311. package/server/lib/walkthrough/routes.js +20 -0
  312. package/server/lib/walkthrough/routes.test.js +19 -0
  313. package/server/opencode-proxy.test.js +190 -166
  314. package/server/opencode-worktree-readiness.test.js +5 -4
  315. package/dist/assets/DiffView-B2CD9wC8.js +0 -4
  316. package/dist/assets/FilesView-C4vMFclc.js +0 -13
  317. package/dist/assets/LinearIssuesView-EzGNCGrd.js +0 -1
  318. package/dist/assets/MarkdownImageGallery-B2YUDFaB.js +0 -1
  319. package/dist/assets/MarkdownRendererImpl-B4ikIzR3.js +0 -12
  320. package/dist/assets/OnboardingScreen-CQHBSTEi.js +0 -1
  321. package/dist/assets/PlanView-D3x-pTkZ.js +0 -5
  322. package/dist/assets/PluginPane-DEcgDQ9h.js +0 -3
  323. package/dist/assets/SettingsView-CSinuH-1.js +0 -29
  324. package/dist/assets/SettingsWindow-B5CHoJFZ.js +0 -1
  325. package/dist/assets/SubmoduleDiffSummary-oxeACCWs.js +0 -1
  326. package/dist/assets/ToolOutputDialog-tLNWmfcW.js +0 -15
  327. package/dist/assets/ToolPartDiffPreview-CflzmK-x.js +0 -8
  328. package/dist/assets/appThemeRegistry-DLicw4dH.js +0 -1
  329. package/dist/assets/de-Bro6_zyl.js +0 -10
  330. package/dist/assets/es-Bb9XQZvd.js +0 -16
  331. package/dist/assets/fr-Dgfzn-IL.js +0 -14
  332. package/dist/assets/index-CtQNmqUL.js +0 -1
  333. package/dist/assets/index-DqaMWNrC.css +0 -1
  334. package/dist/assets/index-Dqc6USl3.js +0 -40
  335. package/dist/assets/ja-BYsakGFh.js +0 -16
  336. package/dist/assets/ko-BSaQz9aN.js +0 -16
  337. package/dist/assets/main-B62_pjL5.js +0 -2
  338. package/dist/assets/main-BEdcOI2P.js +0 -896
  339. package/dist/assets/miniChat-LT8Rqofr.js +0 -2
  340. package/dist/assets/mobile-CqarEynh.js +0 -2
  341. package/dist/assets/pl-OIviPdoj.js +0 -16
  342. package/dist/assets/pt-BR-Cltg-E6s.js +0 -16
  343. package/dist/assets/renderElectronMiniChatApp-COyLTtZx.js +0 -2
  344. package/dist/assets/renderMobileApp-BC1MHg6g.js +0 -25
  345. package/dist/assets/runtimeEndpointReset-DdrazOVH.js +0 -25
  346. package/dist/assets/scheduledTasksApi-B2SWMGEU.js +0 -1
  347. package/dist/assets/tr-CQI-KPre.js +0 -7
  348. package/dist/assets/uk-CqW7R4DA.js +0 -16
  349. package/dist/assets/useAppFontEffects-ne84JBVL.js +0 -7333
  350. package/dist/assets/useRootScrollLock-Cpf1qoGp.js +0 -2
  351. package/dist/assets/vendor-cron-parser-CUcP7OfX.js +0 -2
  352. package/dist/assets/vendor-opencode-sdk-BJ73u-bH.js +0 -7
  353. package/dist/assets/zh-CN-CVZG_o_J.js +0 -16
  354. package/dist/assets/zh-TW-D5ZxzCZp.js +0 -16
  355. package/server/lib/opencode/mcp-oauth-callback.test.js +0 -111
  356. package/server/lib/routing/feature-flag.js +0 -11
  357. package/server/lib/small-model/call.js +0 -851
  358. package/server/lib/small-model/call.test.js +0 -1292
  359. package/server/lib/small-model/catalog.js +0 -13
  360. package/server/lib/small-model/resolve.js +0 -131
  361. package/server/lib/small-model/resolve.test.js +0 -197
  362. package/server/lib/small-model/runtime-providers.js +0 -164
  363. package/server/lib/small-model/runtime-providers.test.js +0 -118
  364. package/server/lib/system-prompt/DOCUMENTATION.md +0 -36
  365. package/server/lib/system-prompt/runtime.js +0 -49
  366. package/server/lib/system-prompt/runtime.test.js +0 -76
  367. package/server/lib/walkthrough/reproduce-2607.test.js +0 -148
@@ -1 +0,0 @@
1
- import{f as y,R as b,j as o}from"./vendor-react-BUCujlKS.js";import{f as j,h as u}from"./useAppFontEffects-ne84JBVL.js";import{S as w}from"./SettingsView-CSinuH-1.js";import{m as k,l as v,n as D,j as S,D as R}from"./vendor-base-ui-CsXYnR5c.js";import"./vendor-scheduler-7OC5HNn7.js";import"./index-Dqc6USl3.js";import"./vendor-zod-CgAdXWZO.js";import"./vendor-vite-runtime-DD1OZmLC.js";import"./vendor-zustand-BAGL70zf.js";import"./vendor-opencode-sdk-BJ73u-bH.js";import"./vendor-simplewebauthn-browser-VDA66rT_.js";import"./vendor-class-variance-authority-5VPnzWs2.js";import"./vendor-clsx-B-dksMZM.js";import"./vendor-dnd-kit-core-BZknOX2w.js";import"./vendor-dnd-kit-utilities-B_MdXhJC.js";import"./vendor-dnd-kit-accessibility-BHxJPORy.js";import"./vendor-dnd-kit-sortable-CsEagZ81.js";import"./vendor-framer-motion-Bq3iTZ6r.js";import"./vendor-motion-dom-DcCgeG69.js";import"./vendor-motion-utils-BGh8QBgx.js";import"./vendor-tanstack-react-virtual-ClYN8CzB.js";import"./vendor-tanstack-virtual-core-BewVQryB.js";import"./contextPanelEmbeddedChat-CirXEPJq.js";import"./vendor-sonner-DFyL3AvE.js";import"./vendor-cmdk-DgLInKvT.js";import"./vendor-radix-ui-react-dialog-B94Bt2qq.js";import"./vendor-radix-ui-primitive-Dc_FVRD7.js";import"./vendor-radix-ui-react-compose-refs-DcAh5WdT.js";import"./vendor-radix-ui-react-context-Czxm7Z62.js";import"./vendor-radix-ui-react-id-f5BLKEVw.js";import"./vendor-radix-ui-react-use-layout-effect-D_3IhJdJ.js";import"./vendor-radix-ui-react-use-controllable-state-BFT5YmkA.js";import"./vendor-radix-ui-react-dismissable-layer-D7kXcwgJ.js";import"./vendor-radix-ui-react-primitive-DhVoX9SD.js";import"./vendor-radix-ui-react-slot-BQgQOasS.js";import"./vendor-radix-ui-react-use-callback-ref-BZPnuXAC.js";import"./vendor-radix-ui-react-use-escape-keydown-oph88g-F.js";import"./vendor-radix-ui-react-focus-scope-CiaxW4dD.js";import"./vendor-radix-ui-react-portal-BMJYHWck.js";import"./vendor-radix-ui-react-presence-CNxf-uq4.js";import"./vendor-radix-ui-react-focus-guards-B6qJXYua.js";import"./vendor-react-remove-scroll-DO7dCTnK.js";import"./vendor-tslib-De9GV7Vy.js";import"./vendor-react-remove-scroll-bar-BcFYyj3E.js";import"./vendor-react-style-singleton-q6EMHnwf.js";import"./vendor-get-nonce-C-Z93AgS.js";import"./vendor-use-sidecar-zDC0RhA3.js";import"./vendor-use-callback-ref-D3RC8gqK.js";import"./vendor-aria-hidden-DvXkyWUv.js";import"./vendor-codemirror-language-BgPj_McA.js";import"./vendor-lezer-common-B3-cUCR_.js";import"./vendor-codemirror-state-C9awkmn-.js";import"./vendor-marijn-find-cluster-break-DXwl3gUT.js";import"./vendor-codemirror-view-CiLROUVV.js";import"./vendor-style-mod-NZ5MEPvj.js";import"./vendor-w3c-keyname-Vcq4gwWv.js";import"./vendor-crelt-C8TCjufn.js";import"./vendor-lezer-highlight-CDMHUZ74.js";import"./vendor-codemirror-lang-javascript-Cc2ZYbgX.js";import"./vendor-lezer-javascript-D7Tj24ot.js";import"./vendor-lezer-lr-bhwg1HMg.js";import"./vendor-codemirror-autocomplete-DzPz9Wgq.js";import"./vendor-codemirror-lang-json-CMBS2tG9.js";import"./vendor-lezer-json-Iaex0UN-.js";import"./vendor-codemirror-lang-css-O0cZX78y.js";import"./vendor-lezer-css-C5xB6jxd.js";import"./vendor-codemirror-lang-html-CfgK872x.js";import"./vendor-lezer-html-C0I1p52t.js";import"./vendor-codemirror-lang-markdown-BPGOH9ye.js";import"./vendor-lezer-markdown-C6g-d6P3.js";import"./vendor-codemirror-language-data-Bx2EHc1O.js";import"./vendor-codemirror-lang-python-HahnQaAS.js";import"./vendor-lezer-python-CvuFxeZl.js";import"./vendor-codemirror-commands-B7H_j0iU.js";import"./vendor-legendapp-list-BuBPBC3R.js";import"./vendor-use-sync-external-store-D6wYuSt-.js";import"./vendor-tailwind-merge-CPcsbTWB.js";import"./vendor-fuse.js-Dw8P0qyA.js";import"./runtimeEndpointReset-DdrazOVH.js";import"./GuestAttachDialog-B808E0-d.js";import"./PluginPane-DEcgDQ9h.js";import"./vendor-floating-ui-utils-D6FqdtJt.js";import"./vendor-floating-ui-react-dom-DxYCWdHj.js";import"./vendor-floating-ui-dom-BTvzWks8.js";import"./vendor-floating-ui-core-PuGzNPnN.js";import"./vendor-yaml-3778uTud.js";import"./shikiHighlight-BPu3JiQs.js";import"./vendor-codemirror-search-BmS-GmcX.js";import"./vendor-replit-codemirror-vim-B2DJlAhT.js";import"./vendor-replit-codemirror-vim-core-FHzKdNUS.js";import"./appThemeRegistry-DLicw4dH.js";import"./textMateThemeFromAppTheme-DWqRPo9A.js";import"./themeResolver-BmJyTmjJ.js";import"./vendor-pierre-theming-C6Z4M5_u.js";import"./vendor-shikijs-core-CGM_jqPK.js";import"./vendor-shikijs-types-CPSbSeK6.js";import"./vendor-shikijs-vscode-textmate-BgLrS_2D.js";import"./vendor-hast-util-to-html-BKBhbTDb.js";import"./vendor-html-void-elements-CkdplsNl.js";import"./vendor-property-information-rJCbAzvX.js";import"./vendor-zwitch-C2o2j-tx.js";import"./vendor-stringify-entities-CsH1VEn9.js";import"./vendor-character-entities-legacy-BpoLgcEt.js";import"./vendor-character-entities-html4-D7taRCQ7.js";import"./vendor-ccount-c2V3InAJ.js";import"./vendor-comma-separated-tokens-D8TqSuIK.js";import"./vendor-space-separated-tokens-DD3iYX1K.js";import"./vendor-hast-util-whitespace-D4Wp6AEg.js";import"./vendor-qrcode-DTJ12-WC.js";import"./vendor-dijkstrajs-COg3n3zL.js";import"./vendor-strip-json-comments-5dJlOkP1.js";const zo=h=>{const t=y.c(19),{open:c,onOpenChange:i}=h,{t:f}=j(),r=b.useId(),x=_;let p;t[0]!==i?(p=g=>{!g&&x()||i(g)},t[0]=i,t[1]=p):p=t[1];let a;t[2]===Symbol.for("react.memo_cache_sentinel")?(a=o.jsx(k,{className:u("oc-glass-backdrop fixed inset-0 z-50 bg-black/25 dark:bg-black/40","transition-opacity duration-150 ease-out","data-[starting-style]:opacity-0 data-[ending-style]:opacity-0")}),t[2]=a):a=t[2];let l;t[3]===Symbol.for("react.memo_cache_sentinel")?(l=u("relative pointer-events-auto","w-[90vw] max-w-[1200px] h-[85vh] max-h-[900px]","rounded-xl border shadow-none overflow-hidden origin-center","bg-background","transition-all duration-150 ease-out","data-[starting-style]:opacity-0 data-[starting-style]:scale-[0.98]","data-[ending-style]:opacity-0 data-[ending-style]:scale-[0.98]","data-[nested-dialog-open]:brightness-[0.55] dark:data-[nested-dialog-open]:brightness-[0.4]"),t[3]=l):l=t[3];let e;t[4]!==f?(e=f("settings.window.description"),t[4]=f,t[5]=e):e=t[5];let m;t[6]!==r||t[7]!==e?(m=o.jsx(v,{id:r,className:"sr-only",children:e}),t[6]=r,t[7]=e,t[8]=m):m=t[8];let n;t[9]!==i?(n=o.jsx(w,{onClose:()=>i(!1),isWindowed:!0}),t[9]=i,t[10]=n):n=t[10];let s;t[11]!==r||t[12]!==m||t[13]!==n?(s=o.jsxs(D,{children:[a,o.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center pointer-events-none",children:o.jsxs(S,{"aria-describedby":r,className:l,children:[m,n]})})]}),t[11]=r,t[12]=m,t[13]=n,t[14]=s):s=t[14];let d;return t[15]!==c||t[16]!==p||t[17]!==s?(d=o.jsx(R,{open:c,onOpenChange:p,children:s}),t[15]=c,t[16]=p,t[17]=s,t[18]=d):d=t[18],d};function _(){return typeof document>"u"?!1:!!document.querySelector('[data-slot="dropdown-menu-content"][data-open], [data-slot="select-content"][data-open]')}export{zo as SettingsWindow};
@@ -1 +0,0 @@
1
- import{R as k,r as R,f as G,j as D}from"./vendor-react-BUCujlKS.js";import{jB as P,f as T,K as L,jD as U,jE as B,jF as J,jG as K}from"./useAppFontEffects-ne84JBVL.js";import{h as O,dJ as W,dK as A,a as M}from"./index-Dqc6USl3.js";import{o as I,s as $}from"./vendor-zod-CgAdXWZO.js";const ee=(t,e)=>!!t&&e!==null&&t!==e,te=(t,e,s,a)=>s?t===null||a&&e===null?!0:e!==null&&t===e:!1,se=(t,e)=>t==="branch"&&!e?"working":t,ne=(t,e,s,a,n,l)=>{const r=k.useRef({directory:"",attempts:0}),[i,f]=k.useState(()=>({directory:"",exhausted:!1})),d=k.useRef(n);d.current=n;const c=!!t&&i.directory===t&&i.exhausted;return k.useEffect(()=>{if(!t||!e||a||s)return;const o=r.current.directory===t?r.current.attempts:0;if(o>=l){i.directory===t&&i.exhausted||f({directory:t,exhausted:!0});return}r.current={directory:t,attempts:o+1},d.current()},[t,i,a,e,s,l]),c},re=(t,e,s,a,n="")=>{const[l,r]=k.useState(()=>new Map),i=k.useRef(l);i.current=l;const f=k.useRef(new Map),d=k.useRef(null),c=k.useRef(s);c.current=s;const o=k.useCallback((h,p)=>{const u=new Map(i.current);if(p===null){if(!u.delete(h))return}else u.set(h,p);i.current=u,r(u)},[]);return k.useEffect(()=>{d.current=t,f.current.clear(),i.current=new Map,r(i.current)},[t]),k.useEffect(()=>{const h=c.current;if(!t||!h||!e)return;let p=!1;const u=new Set,x=f.current;for(const m of e.split("\0"))i.current.has(m)&&x.get(m)===n||(u.add(m),i.current.has(m)||o(m,a),h(m).then(w=>{p||(u.delete(m),x.set(m,n),o(m,w))}).catch(()=>{p||(u.delete(m),x.delete(m),o(m,null))}));return()=>{p=!0;for(const m of u)x.has(m)||o(m,null)}},[e,a,t,n,o]),d.current===t?l:new Map};function z(t){if(!t.trim())return[];if(!t.startsWith("diff --git "))throw new Error("Invalid pull request diff");return t.split(/(?=^diff --git )/m).filter(Boolean).map(e=>{const s=P(e);if(!s)throw new Error("Invalid pull request file diff");return{path:s.name,previousPath:s.prevName,status:/^new file mode /m.test(e)?"A":/^deleted file mode /m.test(e)?"D":/^rename from /m.test(e)?"R":/^copy from /m.test(e)?"C":"M",insertions:s.hunks.reduce((a,n)=>a+n.additionLines,0),deletions:s.hunks.reduce((a,n)=>a+n.deletionLines,0),patch:e}})}async function H(t,e){const s=await O("/api/walkthrough/pr-diff",{query:{directory:t,source:JSON.stringify(e)},signal:AbortSignal.timeout(3e4)});if(!s.ok){const a=I({error:$()}).safeParse(await s.json().catch(()=>null));throw new Error(a.success?a.data.error:`Failed to load pull request diff (${s.status})`)}if(!s.headers.get("content-type")?.includes("text/plain"))throw new Error("Pull request comparison is unavailable on this server");return z(await s.text())}class Q{entries=new Map;load(e,s,a,n=!1){const l=JSON.stringify([e,s]),r=this.entries.get(l);if(r&&(!n||r.files===null))return r.pending;const i={scope:e,pending:a(),files:null,bytes:0};return i.pending=i.pending.then(f=>{if(this.entries.get(l)!==i)return f;i.files=f,i.bytes=f.reduce((c,o)=>c+2*(o.patch.length+o.path.length),0);let d=[...this.entries.values()].reduce((c,o)=>c+o.bytes,0);for(const[c,o]of this.entries){if(this.entries.size<=8&&d<=32*1024*1024)break;o===i||o.files===null||(d-=o.bytes,this.entries.delete(c))}return f}).catch(f=>{throw this.entries.get(l)===i&&this.entries.delete(l),f}),this.entries.delete(l),this.entries.set(l,i),i.pending}invalidate(e){for(const[s,a]of this.entries)a.scope===e&&this.entries.delete(s)}}function ie(t,e,s=!0,a=""){const{t:n}=T(),l=L(g=>g.runtimeKey),r=t&&e?JSON.stringify([l,t,e]):null,i=W(t??"",l),f=R.useRef({key:r,source:e,enabled:s,pushScope:i});f.current={key:r,source:e,enabled:s,pushScope:i};const[d,c]=R.useState(null),o=R.useRef(0),[h]=R.useState(()=>new Q),[p,u]=R.useState(0);R.useEffect(()=>A(g=>{h.invalidate(g),!(g!==f.current.pushScope||f.current.source?.kind!=="pr")&&(o.current+=1,u(E=>E+1))}),[h]);const x=R.useCallback(async g=>{const{key:E,source:y,enabled:C}=f.current;if(!s||!C||!r||E!==r||!t||!y)return;const V=++o.current,S=M();c(v=>v?.key===r&&v.status==="ready"?{...v,refreshing:!0}:{key:r,status:"loading"});try{const v=y.kind==="pr"?await h.load(i,y,()=>H(t,y),g):y.kind==="branch"?(await U(t,{base:y.baseRef,head:y.headRef,includeWorkingTree:!0})).map(b=>({...b,insertions:0,deletions:0})):(await B(t,y.hash)).files.map(b=>({path:b.path,status:b.changeType,previousPath:b.previousPath,insertions:b.insertions,deletions:b.deletions}));if(o.current!==V||M()!==S)return;c(b=>b?.key===r&&b.status==="ready"&&b.files===v?{...b,refreshing:!1}:{key:r,status:"ready",files:v,revision:V,refreshing:!1})}catch(v){if(o.current!==V||M()!==S)return;c({key:r,status:"error",message:v instanceof Error?v.message:n("diffView.state.failedToLoadDiff")})}},[t,s,r,h,i,n]),m=R.useCallback(()=>x(!0),[x]);R.useEffect(()=>(x(!1),()=>{o.current+=1}),[x,a,p]);const w=d?.key===r?d:null,F=w?.status==="ready"?w.files:null,N=R.useMemo(()=>new Map((F??[]).map(g=>[g.path,g])),[F]),q=R.useCallback(async(g,E=3)=>{const{key:y,source:C,enabled:V}=f.current,S=N.get(g);if(!t||y!==r||!C||!S||!s||!V)throw new Error(n("diffView.state.failedToLoadDiff"));if(C.kind==="pr"){if(S.patch===void 0)throw new Error(n("diffView.state.failedToLoadDiff"));return{diff:S.patch}}return C.kind==="branch"?J(t,{base:C.baseRef,head:C.headRef,path:g,contextLines:E,includeWorkingTree:!0}):K(t,{hash:C.hash,path:g,previousPath:S.previousPath,contextLines:E})},[t,s,N,r,n]);return{key:r,revision:w?.status==="ready"?w.revision:0,files:F,loading:!!(s&&r&&(!w||w.status==="loading"||w.status==="ready"&&w.refreshing)),error:w?.status==="error"?w.message:null,refresh:m,fetchDiff:q}}const j=t=>t.slice(0,7),ae=t=>{const e=G.c(32),{state:s,staged:a}=t,{t:n}=T(),l=a?s.headCommit:s.indexCommit,r=a?s.indexCommit:s.worktreeCommit;let i=null;if(s.hasConflict){let u;e[0]!==n?(u=n("diffView.submodule.conflict"),e[0]=n,e[1]=u):u=e[1],i=u}else if(l&&r){let u;e[2]!==l||e[3]!==n||e[4]!==r?(u=l===r?n("diffView.submodule.commitUnchanged",{commit:j(r)}):n("diffView.submodule.commitChanged",{from:j(l),to:j(r)}),e[2]=l,e[3]=n,e[4]=r,e[5]=u):u=e[5],i=u}else if(r){let u;e[6]!==n||e[7]!==r?(u=n("diffView.submodule.added",{commit:j(r)}),e[6]=n,e[7]=r,e[8]=u):u=e[8],i=u}else if(l){let u;e[9]!==l||e[10]!==a||e[11]!==n?(u=a?n("diffView.submodule.removed",{commit:j(l)}):n("diffView.submodule.notCheckedOut",{commit:j(l)}),e[9]=l,e[10]=a,e[11]=n,e[12]=u):u=e[12],i=u}let f;e[13]!==n?(f=n("diffView.submodule.title"),e[13]=n,e[14]=f):f=e[14];let d;e[15]!==f?(d=D.jsx("div",{className:"typography-ui-label font-semibold text-foreground",children:f}),e[15]=f,e[16]=d):d=e[16];let c;e[17]!==i?(c=i?D.jsx("div",{className:"typography-meta text-muted-foreground",children:i}):null,e[17]=i,e[18]=c):c=e[18];let o;e[19]!==a||e[20]!==s.hasTrackedChanges||e[21]!==n?(o=!a&&s.hasTrackedChanges?D.jsx("div",{className:"typography-meta text-muted-foreground",children:n("diffView.submodule.trackedChanges")}):null,e[19]=a,e[20]=s.hasTrackedChanges,e[21]=n,e[22]=o):o=e[22];let h;e[23]!==a||e[24]!==s.hasUntrackedFiles||e[25]!==n?(h=!a&&s.hasUntrackedFiles?D.jsx("div",{className:"typography-meta text-muted-foreground",children:n("diffView.submodule.untrackedFiles")}):null,e[23]=a,e[24]=s.hasUntrackedFiles,e[25]=n,e[26]=h):h=e[26];let p;return e[27]!==d||e[28]!==c||e[29]!==o||e[30]!==h?(p=D.jsxs("div",{className:"flex flex-col gap-1 rounded-lg border border-border/60 bg-background px-3 py-2",children:[d,c,o,h]}),e[27]=d,e[28]=c,e[29]=o,e[30]=h,e[31]=p):p=e[31],p};export{ae as S,re as a,ee as b,ne as c,se as d,te as i,ie as u};
@@ -1,15 +0,0 @@
1
- import{R as N,f as fe,j as n,c as He}from"./vendor-react-BUCujlKS.js";import{S as Ke,gB as Xe,kb as Qe,f as _e,kc as et,h as pe,kd as tt,I as Ne,ke as ot,cE as Re,av as $e,kf as it,kg as nt,kh as rt,ki as st,kj as at,cn as We,kk as lt,kl as ct,eE as dt,eF as Le,km as mt,c1 as ut,c0 as ft}from"./useAppFontEffects-ne84JBVL.js";import{F as Ue,J as pt}from"./JsonTreeView-VW_7czo3.js";import{P as ht}from"./PatchDiff-DCjGhlYV.js";import{cL as je,h as gt}from"./index-Dqc6USl3.js";import{ensurePierreThemeRegistered as Ce}from"./appThemeRegistry-DLicw4dH.js";import{u as xt}from"./vendor-tanstack-react-virtual-ClYN8CzB.js";import"./vendor-scheduler-7OC5HNn7.js";import"./vendor-zod-CgAdXWZO.js";import"./vendor-simplewebauthn-browser-VDA66rT_.js";import"./vendor-vite-runtime-DD1OZmLC.js";import"./vendor-zustand-BAGL70zf.js";import"./vendor-base-ui-CsXYnR5c.js";import"./vendor-floating-ui-utils-D6FqdtJt.js";import"./vendor-floating-ui-react-dom-DxYCWdHj.js";import"./vendor-floating-ui-dom-BTvzWks8.js";import"./vendor-floating-ui-core-PuGzNPnN.js";import"./vendor-use-sync-external-store-D6wYuSt-.js";import"./vendor-class-variance-authority-5VPnzWs2.js";import"./vendor-clsx-B-dksMZM.js";import"./vendor-dnd-kit-core-BZknOX2w.js";import"./vendor-dnd-kit-utilities-B_MdXhJC.js";import"./vendor-dnd-kit-accessibility-BHxJPORy.js";import"./vendor-dnd-kit-sortable-CsEagZ81.js";import"./vendor-framer-motion-Bq3iTZ6r.js";import"./vendor-motion-dom-DcCgeG69.js";import"./vendor-motion-utils-BGh8QBgx.js";import"./contextPanelEmbeddedChat-CirXEPJq.js";import"./vendor-sonner-DFyL3AvE.js";import"./vendor-cmdk-DgLInKvT.js";import"./vendor-radix-ui-react-dialog-B94Bt2qq.js";import"./vendor-radix-ui-primitive-Dc_FVRD7.js";import"./vendor-radix-ui-react-compose-refs-DcAh5WdT.js";import"./vendor-radix-ui-react-context-Czxm7Z62.js";import"./vendor-radix-ui-react-id-f5BLKEVw.js";import"./vendor-radix-ui-react-use-layout-effect-D_3IhJdJ.js";import"./vendor-radix-ui-react-use-controllable-state-BFT5YmkA.js";import"./vendor-radix-ui-react-dismissable-layer-D7kXcwgJ.js";import"./vendor-radix-ui-react-primitive-DhVoX9SD.js";import"./vendor-radix-ui-react-slot-BQgQOasS.js";import"./vendor-radix-ui-react-use-callback-ref-BZPnuXAC.js";import"./vendor-radix-ui-react-use-escape-keydown-oph88g-F.js";import"./vendor-radix-ui-react-focus-scope-CiaxW4dD.js";import"./vendor-radix-ui-react-portal-BMJYHWck.js";import"./vendor-radix-ui-react-presence-CNxf-uq4.js";import"./vendor-radix-ui-react-focus-guards-B6qJXYua.js";import"./vendor-react-remove-scroll-DO7dCTnK.js";import"./vendor-tslib-De9GV7Vy.js";import"./vendor-react-remove-scroll-bar-BcFYyj3E.js";import"./vendor-react-style-singleton-q6EMHnwf.js";import"./vendor-get-nonce-C-Z93AgS.js";import"./vendor-use-sidecar-zDC0RhA3.js";import"./vendor-use-callback-ref-D3RC8gqK.js";import"./vendor-aria-hidden-DvXkyWUv.js";import"./vendor-codemirror-language-BgPj_McA.js";import"./vendor-lezer-common-B3-cUCR_.js";import"./vendor-codemirror-state-C9awkmn-.js";import"./vendor-marijn-find-cluster-break-DXwl3gUT.js";import"./vendor-codemirror-view-CiLROUVV.js";import"./vendor-style-mod-NZ5MEPvj.js";import"./vendor-w3c-keyname-Vcq4gwWv.js";import"./vendor-crelt-C8TCjufn.js";import"./vendor-lezer-highlight-CDMHUZ74.js";import"./vendor-codemirror-lang-javascript-Cc2ZYbgX.js";import"./vendor-lezer-javascript-D7Tj24ot.js";import"./vendor-lezer-lr-bhwg1HMg.js";import"./vendor-codemirror-autocomplete-DzPz9Wgq.js";import"./vendor-codemirror-lang-json-CMBS2tG9.js";import"./vendor-lezer-json-Iaex0UN-.js";import"./vendor-codemirror-lang-css-O0cZX78y.js";import"./vendor-lezer-css-C5xB6jxd.js";import"./vendor-codemirror-lang-html-CfgK872x.js";import"./vendor-lezer-html-C0I1p52t.js";import"./vendor-codemirror-lang-markdown-BPGOH9ye.js";import"./vendor-lezer-markdown-C6g-d6P3.js";import"./vendor-codemirror-language-data-Bx2EHc1O.js";import"./vendor-codemirror-lang-python-HahnQaAS.js";import"./vendor-lezer-python-CvuFxeZl.js";import"./vendor-codemirror-commands-B7H_j0iU.js";import"./vendor-legendapp-list-BuBPBC3R.js";import"./vendor-tailwind-merge-CPcsbTWB.js";import"./vendor-fuse.js-Dw8P0qyA.js";import"./web-components-DxX8bZ1o.js";import"./computeVirtualFileMetrics-DlWlEM3x.js";import"./vendor-shiki-Bbf2GEcE.js";import"./vendor-shikijs-core-CGM_jqPK.js";import"./vendor-shikijs-types-CPSbSeK6.js";import"./vendor-shikijs-vscode-textmate-BgLrS_2D.js";import"./vendor-hast-util-to-html-BKBhbTDb.js";import"./vendor-html-void-elements-CkdplsNl.js";import"./vendor-property-information-rJCbAzvX.js";import"./vendor-zwitch-C2o2j-tx.js";import"./vendor-stringify-entities-CsH1VEn9.js";import"./vendor-character-entities-legacy-BpoLgcEt.js";import"./vendor-character-entities-html4-D7taRCQ7.js";import"./vendor-ccount-c2V3InAJ.js";import"./vendor-comma-separated-tokens-D8TqSuIK.js";import"./vendor-space-separated-tokens-DD3iYX1K.js";import"./vendor-hast-util-whitespace-D4Wp6AEg.js";import"./vendor-shikijs-engine-oniguruma-DPWuIF1G.js";import"./themeResolver-BmJyTmjJ.js";import"./vendor-pierre-theming-C6Z4M5_u.js";import"./vendor-shikijs-engine-javascript-Cme4830A.js";import"./vendor-oniguruma-to-es-DLBnFDCE.js";import"./vendor-oniguruma-parser-C0D4_9rT.js";import"./vendor-regex-BBWcyTkg.js";import"./vendor-regex-utilities-2BQyy0xI.js";import"./vendor-regex-recursion-JU4mF-dD.js";import"./vendor-shikijs-transformers-CZWsLLKm.js";import"./Virtualizer-CZlLSacm.js";import"./isFilePlainText-ue6kCou7.js";import"./VirtualizedFileDiff-NU0FHFhT.js";import"./isDiffPlainText-CO4e5J_S.js";import"./vendor-diff-C3JhlQdm.js";import"./vendor-opencode-sdk-BJ73u-bH.js";import"./textMateThemeFromAppTheme-DWqRPo9A.js";import"./vendor-tanstack-virtual-core-BewVQryB.js";const yt=80,Oe=20,qe=N.memo(o=>{const e=fe.c(26),{lines:t,language:a,maxHeight:c,showLineNumbers:i,lineStyles:l}=o,r=c===void 0?"60vh":c,s=i===void 0?!0:i,{currentTheme:f}=Ke();let m;e[0]!==f?(m=Xe(f),e[0]=f,e[1]=m):m=e[1];const y=m;let k;e[2]!==t?(k=t.map(wt).join(`
2
- `),e[2]=t,e[3]=k):k=e[3];const b=Qe(k,a).lines;if(!(t.length>yt)){const v=y;let w;e[4]!==r||e[5]!==v?(w={...v,maxHeight:r,overflow:"auto"},e[4]=r,e[5]=v,e[6]=w):w=e[6];let x;if(e[7]!==b||e[8]!==l||e[9]!==t||e[10]!==s){let h;e[12]!==b||e[13]!==l||e[14]!==s?(h=(S,P)=>n.jsx(Pe,{line:S,html:b?.[P],showLineNumbers:s,style:l?.(S)},P),e[12]=b,e[13]=l,e[14]=s,e[15]=h):h=e[15],x=t.map(h),e[7]=b,e[8]=l,e[9]=t,e[10]=s,e[11]=x}else x=e[11];let u;return e[16]!==w||e[17]!==x?(u=n.jsx("div",{className:"oc-surface-code bg-[var(--syntax-background)] typography-code font-mono w-full min-w-0",style:w,children:x}),e[16]=w,e[17]=x,e[18]=u):u=e[18],u}let R;return e[19]!==b||e[20]!==l||e[21]!==t||e[22]!==r||e[23]!==s||e[24]!==y?(R=n.jsx(Be,{lines:t,highlighted:b,syntaxVars:y,maxHeight:r,showLineNumbers:s,lineStyles:l}),e[19]=b,e[20]=l,e[21]=t,e[22]=r,e[23]=s,e[24]=y,e[25]=R):R=e[25],R});qe.displayName="VirtualizedCodeBlock";const Be=N.memo(({lines:o,highlighted:e,syntaxVars:t,maxHeight:a,showLineNumbers:c,lineStyles:i})=>{const l=N.useRef(null),r=`min(${o.length*Oe}px, ${a})`,s=xt({count:o.length,getScrollElement:()=>l.current,estimateSize:()=>Oe,overscan:20}),f=s.getVirtualItems();return n.jsx("div",{ref:l,className:"oc-surface-code bg-[var(--syntax-background)] typography-code font-mono w-full min-w-0",style:{...t,height:r,maxHeight:a,overflow:"auto"},children:n.jsx("div",{style:{height:s.getTotalSize(),position:"relative"},children:f.map(m=>{const y=o[m.index];return y?n.jsx("div",{"data-index":m.index,ref:s.measureElement,style:{position:"absolute",top:0,left:0,width:"100%",transform:`translateY(${m.start}px)`},children:n.jsx(Pe,{line:y,html:e?.[m.index],showLineNumbers:c,style:i?.(y)})},m.index):null})})})});Be.displayName="VirtualizedRows";const Pe=N.memo(o=>{const e=fe.c(12),{line:t,html:a,showLineNumbers:c,style:i}=o;let l;e[0]!==t.isInfo||e[1]!==t.lineNumber||e[2]!==c?(l=c&&n.jsx("span",{className:"w-10 flex-shrink-0 text-right pr-3 select-none border-r mr-3 -my-0.5 py-0.5",style:{color:"var(--syntax-line-number)",borderColor:"var(--interactive-border)"},children:!t.isInfo&&t.lineNumber!=null?t.lineNumber:""}),e[0]=t.isInfo,e[1]=t.lineNumber,e[2]=c,e[3]=l):l=e[3];let r;e[4]!==a||e[5]!==t.isInfo||e[6]!==t.text?(r=n.jsx("div",{className:"flex-1 min-w-0",children:t.isInfo?n.jsx("div",{className:"whitespace-pre-wrap break-words text-muted-foreground/70 italic",children:t.text}):a!==void 0?n.jsx("div",{className:"whitespace-pre",dangerouslySetInnerHTML:{__html:a}}):n.jsx("div",{className:"whitespace-pre",children:t.text})}),e[4]=a,e[5]=t.isInfo,e[6]=t.text,e[7]=r):r=e[7];let s;return e[8]!==i||e[9]!==l||e[10]!==r?(s=n.jsxs("div",{className:"typography-code font-mono flex w-full min-w-0",style:i,children:[l,r]}),e[8]=i,e[9]=l,e[10]=r,e[11]=s):s=e[11],s});Pe.displayName="VirtualizedCodeBlock.Row";function wt(o){return o.text}class Ee extends Error{key;params;constructor(e,t){super(e),this.name="MermaidLoadFailure",this.key=e,this.params=t}}const bt=(o,e)=>new Ee(o,e),vt=o=>o instanceof Ee,jt=o=>o+1,Ae=(o,e)=>o===e,Nt=o=>{const e=o.indexOf(",");if(e<0)throw bt("chat.toolOutputDialog.mermaid.dataUrlMalformed");const t=o.slice(0,e).toLowerCase(),a=o.slice(e+1);return t.includes(";base64")?atob(a):decodeURIComponent(a)},St=o=>Promise.resolve().then(()=>Nt(o)),De=(o,e)=>new Ee(o,e),Fe=150,kt=40,Tt=120,Rt=3,Ie={style:{background:"transparent",backgroundColor:"transparent",fontSize:"inherit"}},It={download:!1,copy:!1,showPanZoomControls:!0},Dt=`
3
- [data-diff-header],
4
- [data-diff] {
5
- [data-separator] {
6
- height: 24px !important;
7
- }
8
- }
9
- `,Mt={hunkLineCount:50,lineHeight:24,diffHeaderHeight:44,hunkSeparatorHeight:24,spacing:0},_t=()=>{const o=fe.c(22),e=dt();let t;o[0]===Symbol.for("react.memo_cache_sentinel")?(t=Le(!1),o[0]=t):t=o[0];const a=t;let c;o[1]===Symbol.for("react.memo_cache_sentinel")?(c=Le(!0),o[1]=c):c=o[1];const i=c;let l;o[2]!==e?.availableThemes?(l=()=>e?.availableThemes??[a,i],o[2]=e?.availableThemes,o[3]=l):l=o[3],e?.availableThemes;let r;o[4]!==l?(r=l(),o[4]=l,o[5]=r):r=o[5];const s=r,f=e?.lightThemeId??a.metadata.id,m=e?.darkThemeId??i.metadata.id;let y;o[6]!==s||o[7]!==f?(y=s.find(u=>u.metadata.id===f)??a,o[6]=s,o[7]=f,o[8]=y):y=o[8];const k=y;let E;o[9]!==s||o[10]!==m?(E=s.find(u=>u.metadata.id===m)??i,o[9]=s,o[10]=m,o[11]=E):E=o[11];const D=E;let b,I;o[12]!==D||o[13]!==k?(b=()=>{Ce(k),Ce(D)},I=[D,k],o[12]=D,o[13]=k,o[14]=b,o[15]=I):(b=o[14],I=o[15]),N.useEffect(b,I);const R=e?.currentTheme.metadata.variant??"light";let v;o[16]!==D.metadata.id||o[17]!==k.metadata.id?(v={light:k.metadata.id,dark:D.metadata.id},o[16]=D.metadata.id,o[17]=k.metadata.id,o[18]=v):v=o[18];const w=R==="dark"?"dark":"light";let x;return o[19]!==v||o[20]!==w?(x={theme:v,themeType:w},o[19]=v,o[20]=w,o[21]=x):x=o[21],x},ze=()=>({width:typeof window<"u"?window.innerWidth:0,height:typeof window<"u"?window.innerHeight:0}),Ve={mobile:{widthRatio:.94,heightRatio:.86,padding:10},desktop:{widthRatio:.8,heightRatio:.8,padding:16}},Pt=(o,e)=>{const t=e?Ve.mobile:Ve.desktop,a=Math.max(160,o.width-t.padding*2),c=Math.max(160,o.height-t.padding*2);return{maxWidth:Math.max(160,Math.min(a,o.width*t.widthRatio)),maxHeight:Math.max(160,Math.min(c,o.height*t.heightRatio))}},Et=o=>{try{const i=Array.from(o.querySelectorAll("g"));let l=0,r=null;for(const s of i){if(!(s instanceof SVGGraphicsElement))continue;const f=s.getBBox();if(!(f.width>0&&f.height>0))continue;const m=f.width*f.height;m>l&&(l=m,r=f.width/f.height)}if(r&&Number.isFinite(r)&&r>0)return r}catch{}const e=o.getAttribute("viewBox");if(e){const i=e.trim().split(/\s+/).map(Number);if(i.length===4){const l=i[2],r=i[3];if(Number.isFinite(l)&&Number.isFinite(r)&&l>0&&r>0)return l/r}}const t=Number(o.getAttribute("width")),a=Number(o.getAttribute("height"));if(Number.isFinite(t)&&Number.isFinite(a)&&t>0&&a>0)return t/a;const c=o.getBoundingClientRect();return c.width>0&&c.height>0?c.width/c.height:null},Ge=o=>{const e=fe.c(7),[t,a]=N.useState(o),[c,i]=N.useState(o),[l,r]=N.useState(!1);let s,f;e[0]!==o?(s=()=>{if(o){if(a(!0),r(!0),typeof window>"u"){i(!0);return}const k=window.requestAnimationFrame(()=>{i(!0)}),E=window.setTimeout(()=>{r(!1)},Fe);return()=>{window.cancelAnimationFrame(k),window.clearTimeout(E)}}if(i(!1),r(!0),typeof window>"u"){a(!1);return}const y=window.setTimeout(()=>{a(!1),r(!1)},Fe);return()=>{window.clearTimeout(y)}},f=[o],e[0]=o,e[1]=s,e[2]=f):(s=e[1],f=e[2]),N.useEffect(s,f);let m;return e[3]!==t||e[4]!==l||e[5]!==c?(m={isRendered:t,isVisible:c,isTransitioning:l},e[3]=t,e[4]=l,e[5]=c,e[6]=m):m=e[6],m},Je=o=>{const e=fe.c(3),[t,a]=N.useState(ze);let c,i;return e[0]!==o?(c=()=>{if(!o||typeof window>"u")return;const l=()=>{a(ze())};return l(),window.addEventListener("resize",l),()=>{window.removeEventListener("resize",l)}},i=[o],e[0]=o,e[1]=c,e[2]=i):(c=e[1],i=e[2]),N.useEffect(c,i),t},Lt=o=>{const e=fe.c(103),{popup:t,onOpenChange:a,isMobile:c}=o,{t:i}=_e();let l;e:{const d=t.image;if(!d){let T;e[0]===Symbol.for("react.memo_cache_sentinel")?(T=[],e[0]=T):T=e[0],l=T;break e}let g;e[1]!==d.gallery?(g=Array.isArray(d.gallery)?d.gallery.filter(Ot):[],e[1]=d.gallery,e[2]=g):g=e[2];const _=g;if(_.length>0){l=_;break e}let L;e[3]!==d.filename||e[4]!==d.mimeType||e[5]!==d.size||e[6]!==d.url?(L=[{url:d.url,mimeType:d.mimeType,filename:d.filename,size:d.size}],e[3]=d.filename,e[4]=d.mimeType,e[5]=d.size,e[6]=d.url,e[7]=L):L=e[7],l=L}const r=l,[s,f]=N.useState(0),[m,y]=N.useState(null),{isRendered:k,isVisible:E,isTransitioning:D}=Ge(t.open),b=Je(t.open);let I;e[8]!==r||e[9]!==t.image||e[10]!==t.open?(I=()=>{if(!t.open||r.length===0)return;const d=typeof t.image?.index=="number"?t.image.index:-1;if(d>=0&&d<r.length){f(d);return}const g=t.image?.url?r.findIndex(_=>_.url===t.image?.url):-1;f(g>=0?g:0)},e[8]=r,e[9]=t.image,e[10]=t.open,e[11]=I):I=e[11];const R=t.image?.index,v=t.image?.url;let w;e[12]!==r||e[13]!==t.open||e[14]!==R||e[15]!==v?(w=[r,R,v,t.open],e[12]=r,e[13]=t.open,e[14]=R,e[15]=v,e[16]=w):w=e[16],N.useEffect(I,w);const x=r[s]??r[0]??t.image,u=x?.filename||t.title||"Image preview",h=r.length>1;let S;e[17]!==r.length?(S=()=>{r.length<=1||f(d=>(d-1+r.length)%r.length)},e[17]=r.length,e[18]=S):S=e[18];const P=S;let A;e[19]!==r.length?(A=()=>{r.length<=1||f(d=>(d+1)%r.length)},e[19]=r.length,e[20]=A):A=e[20];const C=A;let p,z;e[21]!==h||e[22]!==a||e[23]!==t.open||e[24]!==C||e[25]!==P?(p=()=>{if(!t.open)return;const d=g=>{if(g.key==="Escape"){a(!1);return}if(g.key==="ArrowLeft"&&h){g.preventDefault(),P();return}g.key==="ArrowRight"&&h&&(g.preventDefault(),C())};return window.addEventListener("keydown",d),()=>{window.removeEventListener("keydown",d)}},z=[h,a,t.open,C,P],e[21]=h,e[22]=a,e[23]=t.open,e[24]=C,e[25]=P,e[26]=p,e[27]=z):(p=e[26],z=e[27]),N.useEffect(p,z);let M;e[28]===Symbol.for("react.memo_cache_sentinel")?(M=()=>{y(null)},e[28]=M):M=e[28];const X=x?.url;let Y;e[29]!==X?(Y=[X],e[29]=X,e[30]=Y):Y=e[30],N.useEffect(M,Y);let ge;e:{const d=Math.max(160,b.width*(c?.86:.75)),g=Math.max(160,b.height*(c?.72:.75));if(!m){let be;e[31]!==d?(be=Math.round(d),e[31]=d,e[32]=be):be=e[32];let ve;e[33]!==g?(ve=Math.round(g),e[33]=g,e[34]=ve):ve=e[34];let Te;e[35]!==be||e[36]!==ve?(Te={width:be,height:ve},e[35]=be,e[36]=ve,e[37]=Te):Te=e[37],ge=Te;break e}const _=d/m.width,L=g/m.height,T=Math.min(_,L);let O;e[38]!==m.width||e[39]!==T?(O=Math.round(m.width*T),e[38]=m.width,e[39]=T,e[40]=O):O=e[40];const K=Math.max(1,O);let Se;e[41]!==m.height||e[42]!==T?(Se=Math.round(m.height*T),e[41]=m.height,e[42]=T,e[43]=Se):Se=e[43];const Me=Math.max(1,Se);let ke;e[44]!==K||e[45]!==Me?(ke={width:K,height:Me},e[44]=K,e[45]=Me,e[46]=ke):ke=e[46],ge=ke}const ie=ge;if(!k||!x||typeof document>"u")return null;const xe=t.open?"pointer-events-auto":"pointer-events-none";let ne;e[47]!==xe?(ne=pe("fixed inset-0 z-50",xe),e[47]=xe,e[48]=ne):ne=e[48];const re=D&&"transition-opacity duration-150 ease-out",he=E?"opacity-100":"opacity-0";let V;e[49]!==re||e[50]!==he?(V=pe("oc-glass-backdrop absolute inset-0 bg-surface-overlay/60",re,he),e[49]=re,e[50]=he,e[51]=V):V=e[51];let H;e[52]!==a?(H=()=>a(!1),e[52]=a,e[53]=H):H=e[53];let se;e[54]!==V||e[55]!==H?(se=n.jsx("div",{"aria-hidden":"true",className:V,onMouseDown:H}),e[54]=V,e[55]=H,e[56]=se):se=e[56];let $;e[57]!==h||e[58]!==C||e[59]!==P||e[60]!==i?($=h&&n.jsxs(n.Fragment,{children:[n.jsx("button",{type:"button",onMouseDown:At,onClick:P,className:"absolute left-3 top-1/2 -translate-y-1/2 z-10 h-10 w-10 flex items-center justify-center rounded-full bg-surface-elevated/90 text-surface-elevated-foreground hover:bg-surface-elevated focus:outline-none focus:ring-2 focus:ring-ring","aria-label":i("chat.toolOutputDialog.image.previousAria"),children:n.jsx(Ne,{name:"arrow-left-s",className:"h-6 w-6"})}),n.jsx("button",{type:"button",onMouseDown:Ft,onClick:C,className:"absolute right-3 top-1/2 -translate-y-1/2 z-10 h-10 w-10 flex items-center justify-center rounded-full bg-surface-elevated/90 text-surface-elevated-foreground hover:bg-surface-elevated focus:outline-none focus:ring-2 focus:ring-ring","aria-label":i("chat.toolOutputDialog.image.nextAria"),children:n.jsx(Ne,{name:"arrow-right-s",className:"h-6 w-6"})})]}),e[57]=h,e[58]=C,e[59]=P,e[60]=i,e[61]=$):$=e[61];const ye=c?"p-2.5":"p-4";let ae;e[62]!==ye?(ae=pe("absolute inset-0 flex items-center justify-center pointer-events-none",ye),e[62]=ye,e[63]=ae):ae=e[63];const le=D&&"transition-opacity duration-150 ease-out",we=E?"opacity-100":"opacity-0";let W;e[64]!==le||e[65]!==we?(W=pe("pointer-events-auto flex flex-col gap-2",le,we),e[64]=le,e[65]=we,e[66]=W):W=e[66];const ce=`${ie.width}px`;let U;e[67]!==ce?(U={width:ce},e[67]=ce,e[68]=U):U=e[68];let Q;e[69]!==u?(Q=n.jsx("div",{className:"min-w-0 flex-1 text-foreground typography-ui-header font-semibold truncate",title:u,children:u}),e[69]=u,e[70]=Q):Q=e[70];let q;e[71]!==a?(q=()=>a(!1),e[71]=a,e[72]=q):q=e[72];let de;e[73]!==i?(de=i("chat.toolOutputDialog.image.closeAria"),e[73]=i,e[74]=de):de=e[74];let ee;e[75]===Symbol.for("react.memo_cache_sentinel")?(ee=n.jsx(Ne,{name:"close",className:"h-4 w-4"}),e[75]=ee):ee=e[75];let B;e[76]!==q||e[77]!==de?(B=n.jsx("button",{type:"button",className:"h-8 w-8 flex items-center justify-center rounded-lg text-muted-foreground/80 hover:text-foreground focus:outline-none focus:ring-2 focus:ring-ring",onClick:q,"aria-label":de,children:ee}),e[76]=q,e[77]=de,e[78]=B):B=e[78];let G;e[79]!==Q||e[80]!==B?(G=n.jsxs("div",{className:"flex items-center justify-between gap-2",children:[Q,B]}),e[79]=Q,e[80]=B,e[81]=G):G=e[81];const me=`${ie.width}px`,ue=`${ie.height}px`;let J;e[82]!==me||e[83]!==ue?(J={width:me,height:ue},e[82]=me,e[83]=ue,e[84]=J):J=e[84];let te;e[85]===Symbol.for("react.memo_cache_sentinel")?(te=d=>{const g=d.currentTarget,_=g.naturalWidth,L=g.naturalHeight;_>0&&L>0&&y(T=>T&&T.width===_&&T.height===L?T:{width:_,height:L})},e[85]=te):te=e[85];let Z;e[86]!==x.url||e[87]!==u||e[88]!==J?(Z=n.jsx("img",{src:x.url,alt:u,className:"block object-contain",style:J,loading:"lazy",onLoad:te}),e[86]=x.url,e[87]=u,e[88]=J,e[89]=Z):Z=e[89];let oe;e[90]!==W||e[91]!==U||e[92]!==G||e[93]!==Z?(oe=n.jsxs("div",{className:W,style:U,children:[G,Z]}),e[90]=W,e[91]=U,e[92]=G,e[93]=Z,e[94]=oe):oe=e[94];let j;e[95]!==ae||e[96]!==oe?(j=n.jsx("div",{className:ae,children:oe}),e[95]=ae,e[96]=oe,e[97]=j):j=e[97];let F;if(e[98]!==ne||e[99]!==se||e[100]!==$||e[101]!==j){const d=n.jsxs("div",{className:ne,children:[se,$,j]});F=He.createPortal(d,document.body),e[98]=ne,e[99]=se,e[100]=$,e[101]=j,e[102]=F}else F=e[102];return F},Ze=N.memo(o=>{const e=fe.c(7),{popup:t,diffViewMode:a,pierreThemeConfig:c}=o,i=t.content||"",l=a==="unified"?"unified":"split";let r;e[0]!==c.theme||e[1]!==c.themeType||e[2]!==l?(r={diffStyle:l,diffIndicators:"none",hunkSeparators:"line-info-basic",lineDiffType:"none",disableFileHeader:!0,maxLineDiffLength:1e3,expansionLineCount:20,overflow:"wrap",theme:c.theme,themeType:c.themeType,unsafeCSS:Dt},e[0]=c.theme,e[1]=c.themeType,e[2]=l,e[3]=r):r=e[3];let s;return e[4]!==i||e[5]!==r?(s=n.jsx("div",{className:"typography-code",children:n.jsx(ht,{patch:i,metrics:Mt,options:r,className:"block w-full"})}),e[4]=i,e[5]=r,e[6]=s):s=e[6],s});Ze.displayName="DialogUnifiedDiff";const Ye=N.memo(o=>{const e=fe.c(29),{popup:t,pierreThemeConfig:a}=o;let c;e[0]!==t.content?(c=mt(t.content),e[0]=t.content,e[1]=c):c=e[1];const i=c,l=t.metadata?.input;let r;e[2]!==l?(r=typeof l=="object"&&l!==null?l:{},e[2]=l,e[3]=r):r=e[3];const s=r,f=typeof s.offset=="number"?s.offset:0,m=typeof s.file_path=="string"?s.file_path:typeof s.filePath=="string"?s.filePath:typeof s.path=="string"?s.path:"read-output";let y;e[4]!==i.lines?(y=i.lines.map(zt).join(`
10
- `),e[4]=i.lines,e[5]=y):y=e[5];const k=y;let E;e[6]!==m||e[7]!==t.language?(E=t.language||$e(m)||"text",e[6]=m,e[7]=t.language,e[8]=E):E=e[8];const D=E;let b;e[9]!==i.lines?(b=i.lines.some(Vt),e[9]=i.lines,e[10]=b):b=e[10];const I=b;let R;if(e[11]!==I||e[12]!==f||e[13]!==i.lines||e[14]!==i.type){R=[];let x=f;for(const u of i.lines){u.lineNumber!==null&&(x=u.lineNumber);const h=i.type==="file"&&!I&&u.lineNumber===null&&!u.isInfo,S=u.lineNumber??(h?x+1:null);typeof S=="number"&&(x=S),R.push({text:u.text,lineNumber:S,isInfo:u.isInfo})}e[11]=I,e[12]=f,e[13]=i.lines,e[14]=i.type,e[15]=R}else R=e[15];const v=R;if(i.type==="file"){const x=D||void 0;let u;e[16]!==k||e[17]!==m||e[18]!==x?(u={name:m,contents:k,lang:x},e[16]=k,e[17]=m,e[18]=x,e[19]=u):u=e[19];let h;e[20]!==a.theme||e[21]!==a.themeType?(h={disableFileHeader:!0,overflow:"wrap",theme:a.theme,themeType:a.themeType},e[20]=a.theme,e[21]=a.themeType,e[22]=h):h=e[22];let S;return e[23]!==u||e[24]!==h?(S=n.jsx(Ue,{file:u,options:h,className:"block w-full"}),e[23]=u,e[24]=h,e[25]=S):S=e[25],S}let w;return e[26]!==v||e[27]!==D?(w=n.jsx(qe,{lines:v,language:D,maxHeight:"70vh"}),e[26]=v,e[27]=D,e[28]=w):w=e[28],w});Ye.displayName="DialogReadContent";const Ct=o=>{const e=fe.c(90),{popup:t,onOpenChange:a,isMobile:c}=o,{t:i}=_e(),[l,r]=N.useState(t.mermaid?.source||""),[s,f]=N.useState(t.mermaid?.source?"ready":"idle"),[m,y]=N.useState(""),{isRendered:k,isVisible:E,isTransitioning:D}=Ge(t.open),[b,I]=N.useState(null),R=Je(t.open),v=N.useRef(0),w=N.useRef(null),x=Ut;let u;e[0]!==t.mermaid||e[1]!==i?(u=async()=>{const j=t.mermaid,F=jt(v.current);if(v.current=F,!j?.url){f("error"),y(i("chat.toolOutputDialog.mermaid.missingSource"));return}if(j.source){r(j.source),f("ready"),y("");return}f("loading"),y("");let d;if(j.url.startsWith("data:"))d=St(j.url);else if(j.url.toLowerCase().startsWith("file://")){const g=x(j.url);g?d=gt("/api/fs/raw",{query:{path:g}}).then(qt):d=Promise.reject(De("chat.toolOutputDialog.mermaid.invalidLocalPath"))}else{const _=(typeof URL.canParse=="function"?URL.canParse(j.url,window.location.origin):!1)?new URL(j.url,window.location.origin):null;!_||_.protocol!=="http:"&&_.protocol!=="https:"?d=Promise.reject(De("chat.toolOutputDialog.mermaid.unsupportedUrlProtocol")):d=fetch(_.toString()).then(Bt)}await d.then(g=>{Ae(v.current,F)&&(r(g),f("ready"))}).catch(g=>{Ae(v.current,F)&&(f("error"),y(vt(g)?i(g.key,g.params):i("chat.toolOutputDialog.mermaid.loadFailed")))})},e[0]=t.mermaid,e[1]=i,e[2]=u):u=e[2];const h=u;let S,P;e[3]!==h||e[4]!==t.mermaid||e[5]!==t.open?(S=()=>{!t.open||!t.mermaid||h()},P=[h,t.mermaid,t.open],e[3]=h,e[4]=t.mermaid,e[5]=t.open,e[6]=S,e[7]=P):(S=e[6],P=e[7]),N.useEffect(S,P);let A,C;e[8]!==a||e[9]!==t.open?(A=()=>{if(!t.open)return;const j=F=>{F.key==="Escape"&&a(!1)};return window.addEventListener("keydown",j),()=>{window.removeEventListener("keydown",j)}},C=[a,t.open],e[8]=a,e[9]=t.open,e[10]=A,e[11]=C):(A=e[10],C=e[11]),N.useEffect(A,C);let p;e[12]!==t.open||e[13]!==s?(p=()=>{if(!t.open||s!=="ready"){I(null);return}const j=()=>{const T=w.current?.querySelector("svg");if(!T)return!1;const O=Et(T);return!O||!Number.isFinite(O)||O<=0?!1:(I(K=>K&&Math.abs(K-O)<.001?K:O),!0)};let F=window.requestAnimationFrame(()=>{j()||(F=window.requestAnimationFrame(()=>{j()}))}),d=0,g;const _=()=>{d>=Rt||(g=window.setTimeout(()=>{d=d+1,j()||_()},Tt))};_();const L=new MutationObserver(()=>{j()});return w.current&&L.observe(w.current,{childList:!0,subtree:!0,attributes:!0}),()=>{window.cancelAnimationFrame(F),typeof g=="number"&&window.clearTimeout(g),L.disconnect()}},e[12]=t.open,e[13]=s,e[14]=p):p=e[14];let z;e[15]!==t.open||e[16]!==l||e[17]!==s?(z=[t.open,l,s],e[15]=t.open,e[16]=l,e[17]=s,e[18]=z):z=e[18],N.useEffect(p,z);const M=`\`\`\`mermaid
11
- ${l}
12
- \`\`\``;let X;if(e[19]!==b||e[20]!==c||e[21]!==R){e:{const{maxWidth:j,maxHeight:F}=Pt(R,c),d=Math.max(160,F-kt);if(b&&b<1){const L=Math.min(j,d);let T;e[23]!==L?(T=Math.round(L),e[23]=L,e[24]=T):T=e[24];let O;e[25]!==L?(O=Math.round(L),e[25]=L,e[26]=O):O=e[26];let K;e[27]!==O||e[28]!==T?(K={width:T,height:O},e[27]=O,e[28]=T,e[29]=K):K=e[29],X=K;break e}const g=Math.round(j);let _;e[30]!==d?(_=Math.round(d),e[30]=d,e[31]=_):_=e[31],X={width:g,height:_}}e[19]=b,e[20]=c,e[21]=R,e[22]=X}else X=e[22];const Y=X;if(!k||typeof document>"u")return null;const ge=t.open?"pointer-events-auto":"pointer-events-none";let ie;e[32]!==ge?(ie=pe("fixed inset-0 z-50",ge),e[32]=ge,e[33]=ie):ie=e[33];const xe=D&&"transition-opacity duration-150 ease-out",ne=E?"opacity-100":"opacity-0";let re;e[34]!==xe||e[35]!==ne?(re=pe("absolute inset-0",xe,ne),e[34]=xe,e[35]=ne,e[36]=re):re=e[36];let he;e[37]===Symbol.for("react.memo_cache_sentinel")?(he={backgroundColor:"color-mix(in srgb, var(--surface-elevated) 70%, transparent)",color:"var(--surface-elevated-foreground)"},e[37]=he):he=e[37];let V;e[38]!==a?(V=()=>a(!1),e[38]=a,e[39]=V):V=e[39];let H;e[40]!==re||e[41]!==V?(H=n.jsx("div",{"aria-hidden":"true",className:re,style:he,onMouseDown:V}),e[40]=re,e[41]=V,e[42]=H):H=e[42];const se=c?"p-2.5":"p-4";let $;e[43]!==se?($=pe("absolute inset-0 flex items-center justify-center pointer-events-none",se),e[43]=se,e[44]=$):$=e[44];const ye=D&&"transition-opacity duration-150 ease-out",ae=E?"opacity-100":"opacity-0";let le;e[45]!==ye||e[46]!==ae?(le=pe("pointer-events-auto flex flex-col gap-2",ye,ae),e[45]=ye,e[46]=ae,e[47]=le):le=e[47];const we=`${Y.width}px`;let W;e[48]!==we?(W={width:we},e[48]=we,e[49]=W):W=e[49];let ce;e[50]!==a?(ce=()=>a(!1),e[50]=a,e[51]=ce):ce=e[51];let U;e[52]!==i?(U=i("chat.toolOutputDialog.mermaid.closeAria"),e[52]=i,e[53]=U):U=e[53];let Q;e[54]===Symbol.for("react.memo_cache_sentinel")?(Q=n.jsx(Ne,{name:"close",className:"h-4 w-4"}),e[54]=Q):Q=e[54];let q;e[55]!==ce||e[56]!==U?(q=n.jsx("div",{className:"flex items-center justify-end",children:n.jsx("button",{type:"button",className:"h-8 w-8 flex items-center justify-center rounded-lg text-muted-foreground/80 hover:text-foreground focus:outline-none focus:ring-2 focus:ring-ring",onClick:ce,"aria-label":U,children:Q})}),e[55]=ce,e[56]=U,e[57]=q):q=e[57];const de=`${Y.height}px`;let ee;e[58]!==de?(ee={height:de},e[58]=de,e[59]=ee):ee=e[59];let B;e[60]!==s||e[61]!==i?(B=s==="loading"&&n.jsxs("div",{className:"h-full min-h-28 flex items-center justify-center gap-2 text-muted-foreground typography-meta",children:[n.jsx(Ne,{name:"loader-4",className:"h-4 w-4 animate-spin"}),n.jsx("span",{children:i("chat.toolOutputDialog.mermaid.loading")})]}),e[60]=s,e[61]=i,e[62]=B):B=e[62];let G;e[63]!==m||e[64]!==h||e[65]!==s||e[66]!==i?(G=s==="error"&&n.jsxs("div",{className:"rounded-xl border p-3 space-y-3",style:{backgroundColor:"var(--status-error-background)",borderColor:"var(--status-error-border)"},children:[n.jsx("p",{className:"typography-markdown",style:{color:"var(--status-error)"},children:m||i("chat.toolOutputDialog.mermaid.renderFailed")}),n.jsx("button",{type:"button",onClick:()=>{h()},className:"px-3 py-1.5 rounded-lg typography-meta border transition-colors hover:bg-[var(--interactive-hover)]",style:{borderColor:"var(--interactive-border)",color:"var(--surface-foreground)"},children:i("chat.toolOutputDialog.mermaid.retry")})]}),e[63]=m,e[64]=h,e[65]=s,e[66]=i,e[67]=G):G=e[67];let me;e[68]!==M||e[69]!==s?(me=s==="ready"&&n.jsx("div",{ref:w,className:"h-full",children:n.jsx(We,{content:M,variant:"tool",allowMermaidWheelEvents:!0,className:"markdown-mermaid-fullscreen h-full",mermaidControls:It,enableFileReferences:!1})}),e[68]=M,e[69]=s,e[70]=me):me=e[70];let ue;e[71]!==B||e[72]!==G||e[73]!==me?(ue=n.jsxs("div",{className:"h-full overflow-hidden",children:[B,G,me]}),e[71]=B,e[72]=G,e[73]=me,e[74]=ue):ue=e[74];let J;e[75]!==ee||e[76]!==ue?(J=n.jsx("div",{className:"relative overflow-hidden",style:ee,children:ue}),e[75]=ee,e[76]=ue,e[77]=J):J=e[77];let te;e[78]!==le||e[79]!==W||e[80]!==q||e[81]!==J?(te=n.jsxs("div",{className:le,style:W,onMouseDown:Gt,children:[q,J]}),e[78]=le,e[79]=W,e[80]=q,e[81]=J,e[82]=te):te=e[82];let Z;e[83]!==$||e[84]!==te?(Z=n.jsx("div",{className:$,children:te}),e[83]=$,e[84]=te,e[85]=Z):Z=e[85];let oe;if(e[86]!==ie||e[87]!==H||e[88]!==Z){const j=n.jsxs("div",{className:ie,children:[H,Z]});oe=He.createPortal(j,document.body),e[86]=ie,e[87]=H,e[88]=Z,e[89]=oe}else oe=e[89];return oe},rn=o=>{const e=fe.c(49),{popup:t,onOpenChange:a,isMobile:c}=o,{t:i}=_e(),[l,r]=N.useState("unified"),s=_t(),f=typeof t.metadata?.tool=="string"?t.metadata.tool:null,m=et(f);let y;e[0]!==t.open?(y=()=>{t.open&&r("unified")},e[0]=t.open,e[1]=y):y=e[1];let k;if(e[2]!==t.open||e[3]!==t.title?(k=[t.open,t.title],e[2]=t.open,e[3]=t.title,e[4]=k):k=e[4],N.useEffect(y,k),t.image){let p;return e[5]!==c||e[6]!==a||e[7]!==t?(p=n.jsx(Lt,{popup:t,onOpenChange:a,isMobile:c}),e[5]=c,e[6]=a,e[7]=t,e[8]=p):p=e[8],p}if(t.mermaid){let p;return e[9]!==c||e[10]!==a||e[11]!==t?(p=n.jsx(Ct,{popup:t,onOpenChange:a,isMobile:c}),e[9]=c,e[10]=a,e[11]=t,e[12]=p):p=e[12],p}const E=t.open,D=c?"w-[95vw] max-w-[95vw]":"max-w-5xl",b=c?"[&>button]:right-1":"[&>button]:top-2.5 [&>button]:right-4";let I;e[13]!==D||e[14]!==b?(I=pe("overflow-hidden flex flex-col min-h-0 pt-3 pb-4 px-4 gap-1","[&>button]:top-1.5",D,b),e[13]=D,e[14]=b,e[15]=I):I=e[15];let R;e[16]===Symbol.for("react.memo_cache_sentinel")?(R={maxHeight:"90vh"},e[16]=R):R=e[16];let v;e[17]!==f||e[18]!==m?(v=f?tt(f,m):n.jsx(Ne,{name:"tools",className:"h-3.5 w-3.5 text-foreground flex-shrink-0"}),e[17]=f,e[18]=m,e[19]=v):v=e[19];let w;e[20]!==t.title?(w=n.jsx("span",{className:"break-words flex-1 leading-tight",children:t.title}),e[20]=t.title,e[21]=w):w=e[21];let x;e[22]!==l||e[23]!==t.isDiff?(x=t.isDiff&&n.jsx(ot,{mode:l,onModeChange:r,className:"mr-8 flex-shrink-0"}),e[22]=l,e[23]=t.isDiff,e[24]=x):x=e[24];let u;e[25]!==x||e[26]!==v||e[27]!==w?(u=n.jsx("div",{className:"flex-shrink-0 pb-1",children:n.jsxs("div",{className:"flex items-start gap-2 text-foreground typography-ui-header font-semibold",children:[v,w,x]})}),e[25]=x,e[26]=v,e[27]=w,e[28]=u):u=e[28];let h;e[29]!==s||e[30]!==t.metadata?(h=t.metadata?.input&&typeof t.metadata.input=="object"&&Object.keys(t.metadata.input).length>0&&t.metadata?.tool!=="todowrite"&&t.metadata?.tool!=="todoread"&&t.metadata?.tool!=="apply_patch"?(()=>{const p=t.metadata,z=p.input,M=X=>{const Y=z[X];return typeof Y=="string"?Y:typeof Y=="number"?String(Y):null};return n.jsxs("div",{className:"border-b border-border/20 p-4 -mx-3",children:[n.jsx("div",{className:"typography-markdown font-medium text-muted-foreground mb-2 px-3",children:p.tool==="bash"?"Command:":p.tool==="task"?"Task Details:":"Input:"}),p.tool==="bash"&&M("command")?n.jsx("div",{className:"tool-input-surface bg-transparent rounded-xl border border-border/20 mx-3",children:n.jsx(Re,{language:"bash",code:M("command"),style:je.getPopupStyles(),codeStyle:Ie.style,wrap:!0})}):p.tool==="task"&&M("prompt")?n.jsxs("div",{className:"tool-input-surface bg-transparent rounded-xl border border-border/20 font-mono whitespace-pre-wrap text-foreground/90 mx-3",style:je.getPopupStyles(),children:[M("description")?`Task: ${M("description")}
13
- `:"",M("subagent_type")?`Agent Type: ${M("subagent_type")}
14
- `:"",`Instructions:
15
- ${M("prompt")}`]}):p.tool==="write"&&M("content")?n.jsx("div",{className:"tool-input-surface bg-transparent rounded-xl border border-border/20 mx-3",children:n.jsx(Ue,{file:{name:M("filePath")||M("file_path")||"new-file",contents:M("content"),lang:$e(M("filePath")||M("file_path")||"")||void 0},options:{disableFileHeader:!0,overflow:"wrap",theme:s.theme,themeType:s.themeType},className:"block w-full"})}):n.jsx("div",{className:"tool-input-surface bg-transparent rounded-xl border border-border/20 font-mono whitespace-pre-wrap text-foreground/90 mx-3",style:je.getPopupStyles(),children:it(z,p.tool)})]})})():null,e[29]=s,e[30]=t.metadata,e[31]=h):h=e[31];let S;e[32]!==l||e[33]!==c||e[34]!==s||e[35]!==t||e[36]!==i?(S=t.isDiff?n.jsx(Ze,{popup:t,diffViewMode:l,pierreThemeConfig:s}):t.content?n.jsx("div",{className:"p-4",children:(()=>{const p=t.metadata?.tool;return p==="todowrite"||p==="todoread"?nt(t.content,{total:i("chat.todo.total"),inProgress:i("chat.todo.inProgress"),pending:i("chat.todo.pending"),completed:i("chat.todo.completed"),cancelled:i("chat.todo.cancelled")})||n.jsx(Re,{language:"json",code:t.content,style:je.getPopupContainerStyles(),codeStyle:Ie.style,wrap:!0}):p==="list"?rt(t.content)||n.jsx("pre",{className:"typography-markdown bg-muted/30 p-2 rounded-xl border border-border/20 font-mono whitespace-pre-wrap",children:t.content}):p==="grep"?st(t.content,c)||n.jsx("pre",{className:"typography-code bg-muted/30 p-2 rounded-xl border border-border/20 font-mono whitespace-pre-wrap",children:t.content}):p==="glob"?at(t.content,c)||n.jsx("pre",{className:"typography-code bg-muted/30 p-2 rounded-xl border border-border/20 font-mono whitespace-pre-wrap",children:t.content}):p==="task"||p==="reasoning"?n.jsx("div",{className:p==="reasoning"?"text-muted-foreground/70":"",children:n.jsx(We,{content:t.content,variant:"tool"})}):p==="web-search"||p==="websearch"||p==="search_web"?lt(t.content)||n.jsx(Re,{language:"text",code:t.content,style:je.getPopupContainerStyles(),codeStyle:Ie.style,wrap:!0}):p==="read"?n.jsx(Ye,{popup:t,pierreThemeConfig:s}):(t.content?ct(t.content):{isJson:!1}).isJson?n.jsx(pt,{jsonString:t.content,initiallyExpandedDepth:3,maxHeight:"70vh"}):n.jsx(Re,{language:t.language||"text",code:t.content,style:je.getPopupContainerStyles(),codeStyle:Ie.style,wrap:!0})})()}):n.jsxs("div",{className:"p-8 text-muted-foreground typography-ui-header",children:[n.jsx("div",{className:"mb-2",children:i("chat.toolOutputDialog.commandCompleted")}),n.jsx("div",{className:"typography-meta",children:i("chat.toolOutputDialog.noOutputProduced")})]}),e[32]=l,e[33]=c,e[34]=s,e[35]=t,e[36]=i,e[37]=S):S=e[37];let P;e[38]!==h||e[39]!==S?(P=n.jsx("div",{className:"flex-1 min-h-0 rounded-xl border border-border/30 bg-muted/10 overflow-hidden",children:n.jsxs("div",{className:"tool-output-surface h-full max-h-[75vh] overflow-y-auto px-3 pr-4",children:[h,S]})}),e[38]=h,e[39]=S,e[40]=P):P=e[40];let A;e[41]!==u||e[42]!==P||e[43]!==I?(A=n.jsxs(ut,{className:I,style:R,children:[u,P]}),e[41]=u,e[42]=P,e[43]=I,e[44]=A):A=e[44];let C;return e[45]!==a||e[46]!==t.open||e[47]!==A?(C=n.jsx(ft,{open:E,onOpenChange:a,children:A}),e[45]=a,e[46]=t.open,e[47]=A,e[48]=C):C=e[48],C};function Ot(o){return!!o?.url}function At(o){return o.stopPropagation()}function Ft(o){return o.stopPropagation()}function zt(o){return o.text}function Vt(o){return o.lineNumber!==null}function Ht(o){if(!o||/[\0\r\n]/.test(o))return!1;const e=o.replace(/\\/g,"/");return e.split("/").filter(Boolean).includes("..")?!1:e.startsWith("/")?!0:/^[A-Za-z]:\//.test(e)}function $t(o,e){const t=Number.parseInt(e,16);return Number.isFinite(t)?String.fromCharCode(t):`%${e}`}function Wt(o){return o.replace(/%([0-9A-Fa-f]{2})/g,$t)}function Ut(o){const e=o.trim();if(!e.toLowerCase().startsWith("file://"))return null;const t=Ht,a=Wt;if(typeof URL.canParse=="function"?URL.canParse(e):!1){let r=a(new URL(e).pathname||"");return/^\/[A-Za-z]:\//.test(r)&&(r=r.slice(1)),t(r)?r:null}const i=e.replace(/^file:\/\//i,""),l=a(i);return t(l)?l:t(i)?i:null}function qt(o){return o.ok?o.text():Promise.reject(De("chat.toolOutputDialog.mermaid.readFileFailedWithStatus",{status:o.status}))}function Bt(o){return o.ok?o.text():Promise.reject(De("chat.toolOutputDialog.mermaid.loadFailedWithStatus",{status:o.status}))}function Gt(o){return o.stopPropagation()}export{rn as default};
@@ -1,8 +0,0 @@
1
- import{R as D,f as x,j as g}from"./vendor-react-BUCujlKS.js";import{P as E}from"./PatchDiff-DCjGhlYV.js";import{eE as P,eF as y,kn as F}from"./useAppFontEffects-ne84JBVL.js";import{ensurePierreThemeRegistered as S}from"./appThemeRegistry-DLicw4dH.js";import"./vendor-scheduler-7OC5HNn7.js";import"./web-components-DxX8bZ1o.js";import"./computeVirtualFileMetrics-DlWlEM3x.js";import"./vendor-vite-runtime-DD1OZmLC.js";import"./vendor-shiki-Bbf2GEcE.js";import"./vendor-shikijs-core-CGM_jqPK.js";import"./vendor-shikijs-types-CPSbSeK6.js";import"./vendor-shikijs-vscode-textmate-BgLrS_2D.js";import"./vendor-hast-util-to-html-BKBhbTDb.js";import"./vendor-html-void-elements-CkdplsNl.js";import"./vendor-property-information-rJCbAzvX.js";import"./vendor-zwitch-C2o2j-tx.js";import"./vendor-stringify-entities-CsH1VEn9.js";import"./vendor-character-entities-legacy-BpoLgcEt.js";import"./vendor-character-entities-html4-D7taRCQ7.js";import"./vendor-ccount-c2V3InAJ.js";import"./vendor-comma-separated-tokens-D8TqSuIK.js";import"./vendor-space-separated-tokens-DD3iYX1K.js";import"./vendor-hast-util-whitespace-D4Wp6AEg.js";import"./vendor-shikijs-engine-oniguruma-DPWuIF1G.js";import"./themeResolver-BmJyTmjJ.js";import"./vendor-pierre-theming-C6Z4M5_u.js";import"./vendor-shikijs-engine-javascript-Cme4830A.js";import"./vendor-oniguruma-to-es-DLBnFDCE.js";import"./vendor-oniguruma-parser-C0D4_9rT.js";import"./vendor-regex-BBWcyTkg.js";import"./vendor-regex-utilities-2BQyy0xI.js";import"./vendor-regex-recursion-JU4mF-dD.js";import"./vendor-shikijs-transformers-CZWsLLKm.js";import"./Virtualizer-CZlLSacm.js";import"./VirtualizedFileDiff-NU0FHFhT.js";import"./isDiffPlainText-CO4e5J_S.js";import"./vendor-diff-C3JhlQdm.js";import"./index-Dqc6USl3.js";import"./vendor-zod-CgAdXWZO.js";import"./vendor-zustand-BAGL70zf.js";import"./vendor-opencode-sdk-BJ73u-bH.js";import"./vendor-simplewebauthn-browser-VDA66rT_.js";import"./vendor-base-ui-CsXYnR5c.js";import"./vendor-floating-ui-utils-D6FqdtJt.js";import"./vendor-floating-ui-react-dom-DxYCWdHj.js";import"./vendor-floating-ui-dom-BTvzWks8.js";import"./vendor-floating-ui-core-PuGzNPnN.js";import"./vendor-use-sync-external-store-D6wYuSt-.js";import"./vendor-class-variance-authority-5VPnzWs2.js";import"./vendor-clsx-B-dksMZM.js";import"./vendor-dnd-kit-core-BZknOX2w.js";import"./vendor-dnd-kit-utilities-B_MdXhJC.js";import"./vendor-dnd-kit-accessibility-BHxJPORy.js";import"./vendor-dnd-kit-sortable-CsEagZ81.js";import"./vendor-framer-motion-Bq3iTZ6r.js";import"./vendor-motion-dom-DcCgeG69.js";import"./vendor-motion-utils-BGh8QBgx.js";import"./vendor-tanstack-react-virtual-ClYN8CzB.js";import"./vendor-tanstack-virtual-core-BewVQryB.js";import"./contextPanelEmbeddedChat-CirXEPJq.js";import"./vendor-sonner-DFyL3AvE.js";import"./vendor-cmdk-DgLInKvT.js";import"./vendor-radix-ui-react-dialog-B94Bt2qq.js";import"./vendor-radix-ui-primitive-Dc_FVRD7.js";import"./vendor-radix-ui-react-compose-refs-DcAh5WdT.js";import"./vendor-radix-ui-react-context-Czxm7Z62.js";import"./vendor-radix-ui-react-id-f5BLKEVw.js";import"./vendor-radix-ui-react-use-layout-effect-D_3IhJdJ.js";import"./vendor-radix-ui-react-use-controllable-state-BFT5YmkA.js";import"./vendor-radix-ui-react-dismissable-layer-D7kXcwgJ.js";import"./vendor-radix-ui-react-primitive-DhVoX9SD.js";import"./vendor-radix-ui-react-slot-BQgQOasS.js";import"./vendor-radix-ui-react-use-callback-ref-BZPnuXAC.js";import"./vendor-radix-ui-react-use-escape-keydown-oph88g-F.js";import"./vendor-radix-ui-react-focus-scope-CiaxW4dD.js";import"./vendor-radix-ui-react-portal-BMJYHWck.js";import"./vendor-radix-ui-react-presence-CNxf-uq4.js";import"./vendor-radix-ui-react-focus-guards-B6qJXYua.js";import"./vendor-react-remove-scroll-DO7dCTnK.js";import"./vendor-tslib-De9GV7Vy.js";import"./vendor-react-remove-scroll-bar-BcFYyj3E.js";import"./vendor-react-style-singleton-q6EMHnwf.js";import"./vendor-get-nonce-C-Z93AgS.js";import"./vendor-use-sidecar-zDC0RhA3.js";import"./vendor-use-callback-ref-D3RC8gqK.js";import"./vendor-aria-hidden-DvXkyWUv.js";import"./vendor-codemirror-language-BgPj_McA.js";import"./vendor-lezer-common-B3-cUCR_.js";import"./vendor-codemirror-state-C9awkmn-.js";import"./vendor-marijn-find-cluster-break-DXwl3gUT.js";import"./vendor-codemirror-view-CiLROUVV.js";import"./vendor-style-mod-NZ5MEPvj.js";import"./vendor-w3c-keyname-Vcq4gwWv.js";import"./vendor-crelt-C8TCjufn.js";import"./vendor-lezer-highlight-CDMHUZ74.js";import"./vendor-codemirror-lang-javascript-Cc2ZYbgX.js";import"./vendor-lezer-javascript-D7Tj24ot.js";import"./vendor-lezer-lr-bhwg1HMg.js";import"./vendor-codemirror-autocomplete-DzPz9Wgq.js";import"./vendor-codemirror-lang-json-CMBS2tG9.js";import"./vendor-lezer-json-Iaex0UN-.js";import"./vendor-codemirror-lang-css-O0cZX78y.js";import"./vendor-lezer-css-C5xB6jxd.js";import"./vendor-codemirror-lang-html-CfgK872x.js";import"./vendor-lezer-html-C0I1p52t.js";import"./vendor-codemirror-lang-markdown-BPGOH9ye.js";import"./vendor-lezer-markdown-C6g-d6P3.js";import"./vendor-codemirror-language-data-Bx2EHc1O.js";import"./vendor-codemirror-lang-python-HahnQaAS.js";import"./vendor-lezer-python-CvuFxeZl.js";import"./vendor-codemirror-commands-B7H_j0iU.js";import"./vendor-legendapp-list-BuBPBC3R.js";import"./vendor-tailwind-merge-CPcsbTWB.js";import"./vendor-fuse.js-Dw8P0qyA.js";import"./textMateThemeFromAppTheme-DWqRPo9A.js";const _=`
2
- [data-diff-header],
3
- [data-diff] {
4
- [data-separator] {
5
- height: 24px !important;
6
- }
7
- }
8
- `,C={hunkLineCount:50,lineHeight:24,diffHeaderHeight:44,hunkSeparatorHeight:24,spacing:0},I=()=>{const t=x.c(18),e=P();let i;t[0]===Symbol.for("react.memo_cache_sentinel")?(i=y(!1),t[0]=i):i=t[0];const h=i;let s;t[1]===Symbol.for("react.memo_cache_sentinel")?(s=y(!0),t[1]=s):s=t[1];const n=s;let o;t[2]!==e?.availableThemes?(o=()=>e?.availableThemes??[h,n],t[2]=e?.availableThemes,t[3]=o):o=t[3],e?.availableThemes;let p;t[4]!==o?(p=o(),t[4]=o,t[5]=p):p=t[5];const m=p,l=e?.lightThemeId??h.metadata.id,d=e?.darkThemeId??n.metadata.id;let r;t[6]!==m||t[7]!==l?(r=m.find(k=>k.metadata.id===l)??h,t[6]=m,t[7]=l,t[8]=r):r=t[8];const a=r;let c;t[9]!==m||t[10]!==d?(c=m.find(k=>k.metadata.id===d)??n,t[9]=m,t[10]=d,t[11]=c):c=t[11];const T=c;S(a),S(T);const v=e?.currentTheme.metadata.variant??"light";let f;t[12]!==T.metadata.id||t[13]!==a.metadata.id?(f={light:a.metadata.id,dark:T.metadata.id},t[12]=T.metadata.id,t[13]=a.metadata.id,t[14]=f):f=t[14];const b=v==="dark"?"dark":"light";let u;return t[15]!==f||t[16]!==b?(u={pierreTheme:f,pierreThemeType:b},t[15]=f,t[16]=b,t[17]=u):u=t[17],u};class w extends D.Component{state={hasError:!1};static getDerivedStateFromError(){return{hasError:!0}}componentDidUpdate(e){e.resetKey!==this.props.resetKey&&this.state.hasError&&this.setState({hasError:!1})}componentDidCatch(e){}render(){return this.state.hasError?this.props.fallback:this.props.children}}const L=D.memo(t=>{const e=x.c(13),{diff:i,diffViewMode:h}=t,{pierreTheme:s,pierreThemeType:n}=I(),o=h==="side-by-side"?"split":"unified";let p;e[0]!==s||e[1]!==n||e[2]!==o?(p={diffStyle:o,diffIndicators:"none",hunkSeparators:"line-info-basic",lineDiffType:"none",disableFileHeader:!0,maxLineDiffLength:1e3,expansionLineCount:20,overflow:"wrap",theme:s,themeType:n,unsafeCSS:_},e[0]=s,e[1]=n,e[2]=o,e[3]=p):p=e[3];const m=p;let l;e[4]!==i?(l=g.jsx(F,{diff:i}),e[4]=i,e[5]=l):l=e[5];const d=l;let r;e[6]!==i||e[7]!==m?(r=g.jsx(E,{patch:i,metrics:C,options:m,className:"block w-full"}),e[6]=i,e[7]=m,e[8]=r):r=e[8];let a;return e[9]!==i||e[10]!==d||e[11]!==r?(a=g.jsx("div",{className:"typography-code px-1 pb-1 pt-0",children:g.jsx(w,{resetKey:i,fallback:d,children:r})}),e[9]=i,e[10]=d,e[11]=r,e[12]=a):a=e[12],a});L.displayName="ToolPartDiffPreview";export{L as default};
@@ -1 +0,0 @@
1
- import{r as d,a as g}from"./textMateThemeFromAppTheme-DWqRPo9A.js";import"./themeResolver-BmJyTmjJ.js";import"./vendor-pierre-theming-C6Z4M5_u.js";import"./vendor-vite-runtime-DD1OZmLC.js";import"./vendor-shikijs-core-CGM_jqPK.js";import"./vendor-shikijs-types-CPSbSeK6.js";import"./vendor-shikijs-vscode-textmate-BgLrS_2D.js";import"./vendor-hast-util-to-html-BKBhbTDb.js";import"./vendor-html-void-elements-CkdplsNl.js";import"./vendor-property-information-rJCbAzvX.js";import"./vendor-zwitch-C2o2j-tx.js";import"./vendor-stringify-entities-CsH1VEn9.js";import"./vendor-character-entities-legacy-BpoLgcEt.js";import"./vendor-character-entities-html4-D7taRCQ7.js";import"./vendor-ccount-c2V3InAJ.js";import"./vendor-comma-separated-tokens-D8TqSuIK.js";import"./vendor-space-separated-tokens-DD3iYX1K.js";import"./vendor-hast-util-whitespace-D4Wp6AEg.js";import"./useAppFontEffects-ne84JBVL.js";import"./vendor-react-BUCujlKS.js";import"./vendor-scheduler-7OC5HNn7.js";import"./index-Dqc6USl3.js";import"./vendor-zod-CgAdXWZO.js";import"./vendor-zustand-BAGL70zf.js";import"./vendor-opencode-sdk-BJ73u-bH.js";import"./vendor-simplewebauthn-browser-VDA66rT_.js";import"./vendor-base-ui-CsXYnR5c.js";import"./vendor-floating-ui-utils-D6FqdtJt.js";import"./vendor-floating-ui-react-dom-DxYCWdHj.js";import"./vendor-floating-ui-dom-BTvzWks8.js";import"./vendor-floating-ui-core-PuGzNPnN.js";import"./vendor-use-sync-external-store-D6wYuSt-.js";import"./vendor-class-variance-authority-5VPnzWs2.js";import"./vendor-clsx-B-dksMZM.js";import"./vendor-dnd-kit-core-BZknOX2w.js";import"./vendor-dnd-kit-utilities-B_MdXhJC.js";import"./vendor-dnd-kit-accessibility-BHxJPORy.js";import"./vendor-dnd-kit-sortable-CsEagZ81.js";import"./vendor-framer-motion-Bq3iTZ6r.js";import"./vendor-motion-dom-DcCgeG69.js";import"./vendor-motion-utils-BGh8QBgx.js";import"./vendor-tanstack-react-virtual-ClYN8CzB.js";import"./vendor-tanstack-virtual-core-BewVQryB.js";import"./contextPanelEmbeddedChat-CirXEPJq.js";import"./vendor-sonner-DFyL3AvE.js";import"./vendor-cmdk-DgLInKvT.js";import"./vendor-radix-ui-react-dialog-B94Bt2qq.js";import"./vendor-radix-ui-primitive-Dc_FVRD7.js";import"./vendor-radix-ui-react-compose-refs-DcAh5WdT.js";import"./vendor-radix-ui-react-context-Czxm7Z62.js";import"./vendor-radix-ui-react-id-f5BLKEVw.js";import"./vendor-radix-ui-react-use-layout-effect-D_3IhJdJ.js";import"./vendor-radix-ui-react-use-controllable-state-BFT5YmkA.js";import"./vendor-radix-ui-react-dismissable-layer-D7kXcwgJ.js";import"./vendor-radix-ui-react-primitive-DhVoX9SD.js";import"./vendor-radix-ui-react-slot-BQgQOasS.js";import"./vendor-radix-ui-react-use-callback-ref-BZPnuXAC.js";import"./vendor-radix-ui-react-use-escape-keydown-oph88g-F.js";import"./vendor-radix-ui-react-focus-scope-CiaxW4dD.js";import"./vendor-radix-ui-react-portal-BMJYHWck.js";import"./vendor-radix-ui-react-presence-CNxf-uq4.js";import"./vendor-radix-ui-react-focus-guards-B6qJXYua.js";import"./vendor-react-remove-scroll-DO7dCTnK.js";import"./vendor-tslib-De9GV7Vy.js";import"./vendor-react-remove-scroll-bar-BcFYyj3E.js";import"./vendor-react-style-singleton-q6EMHnwf.js";import"./vendor-get-nonce-C-Z93AgS.js";import"./vendor-use-sidecar-zDC0RhA3.js";import"./vendor-use-callback-ref-D3RC8gqK.js";import"./vendor-aria-hidden-DvXkyWUv.js";import"./vendor-codemirror-language-BgPj_McA.js";import"./vendor-lezer-common-B3-cUCR_.js";import"./vendor-codemirror-state-C9awkmn-.js";import"./vendor-marijn-find-cluster-break-DXwl3gUT.js";import"./vendor-codemirror-view-CiLROUVV.js";import"./vendor-style-mod-NZ5MEPvj.js";import"./vendor-w3c-keyname-Vcq4gwWv.js";import"./vendor-crelt-C8TCjufn.js";import"./vendor-lezer-highlight-CDMHUZ74.js";import"./vendor-codemirror-lang-javascript-Cc2ZYbgX.js";import"./vendor-lezer-javascript-D7Tj24ot.js";import"./vendor-lezer-lr-bhwg1HMg.js";import"./vendor-codemirror-autocomplete-DzPz9Wgq.js";import"./vendor-codemirror-lang-json-CMBS2tG9.js";import"./vendor-lezer-json-Iaex0UN-.js";import"./vendor-codemirror-lang-css-O0cZX78y.js";import"./vendor-lezer-css-C5xB6jxd.js";import"./vendor-codemirror-lang-html-CfgK872x.js";import"./vendor-lezer-html-C0I1p52t.js";import"./vendor-codemirror-lang-markdown-BPGOH9ye.js";import"./vendor-lezer-markdown-C6g-d6P3.js";import"./vendor-codemirror-language-data-Bx2EHc1O.js";import"./vendor-codemirror-lang-python-HahnQaAS.js";import"./vendor-lezer-python-CvuFxeZl.js";import"./vendor-codemirror-commands-B7H_j0iU.js";import"./vendor-legendapp-list-BuBPBC3R.js";import"./vendor-tailwind-merge-CPcsbTWB.js";import"./vendor-fuse.js-Dw8P0qyA.js";const u=t=>/^#[0-9a-fA-F]{8}$/.test(t),n=t=>u(t)?t.slice(0,7):t;function l(t,r){return Object.defineProperty(t,"toString",{value:()=>r,enumerable:!1,configurable:!0}),Object.defineProperty(t,Symbol.toPrimitive,{value:()=>r,enumerable:!1,configurable:!0}),t}const f=40,i=new Map,s=new Map,c=t=>JSON.stringify(t),b=(t,r)=>{const o=t.colors?.["editor.background"],m=t.colors?.["editor.foreground"],e=o?n(o):void 0,p=m?n(m):void 0;if(!e||!p)throw new Error(`Theme "${r}" is missing editor.background/editor.foreground`);const a=t.tokenColors??[];return l({...t,name:r,fg:p,bg:e,settings:a},r)},T=t=>g(t),h=t=>{const r=c(t),o=i.get(r);if(o)return i.delete(r),i.set(r,o),o;const m=T(t),e=b(m,t.metadata.id);for(i.set(r,e);i.size>f;){const p=i.keys().next().value;if(p===void 0)break;i.delete(p)}return e},cr=t=>{const r=t.metadata.id,o=c(t);if(s.get(r)===o)return;const m=h(t);d(r,async()=>m),s.set(r,o)};export{cr as ensurePierreThemeRegistered,h as getResolvedShikiTheme,c as getThemeContentSignature};