@vantran-se/openchamber-web 1.24.3 → 2.0.1

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-BjJHrzmU.js → CodeMirrorCommentWidgets-ntXIbhV2.js} +1 -1
  5. package/dist/assets/DiffView-CjxUovbM.js +4 -0
  6. package/dist/assets/FilesView-DFWD0RQR.js +17 -0
  7. package/dist/assets/{GitView-CDOJy5Ay.js → GitView-BWa7e5vw.js} +4 -4
  8. package/dist/assets/{GuestAttachDialog-D3S0Rjic.js → GuestAttachDialog-DdOuyZzp.js} +1 -1
  9. package/dist/assets/GuestSurfacePane-DDfzid3U.js +1 -0
  10. package/dist/assets/{JsonTreeView-D0C9nU7K.js → JsonTreeView-3sGwqexh.js} +1 -1
  11. package/dist/assets/LinearIssuesView-C6dpIdjw.js +1 -0
  12. package/dist/assets/MarkdownImageGallery-Q7YR_tl4.js +1 -0
  13. package/dist/assets/MarkdownRendererImpl-DxDV56bL.js +12 -0
  14. package/dist/assets/OnboardingScreen-rK4Stg__.js +1 -0
  15. package/dist/assets/{PatchDiff-DnEhjXcC.js → PatchDiff-DS-IMU1j.js} +1 -1
  16. package/dist/assets/{PierreDiffViewer-DyxZVVVR.js → PierreDiffViewer-DW23KWKZ.js} +1 -1
  17. package/dist/assets/PlanView-BCk_VobP.js +5 -0
  18. package/dist/assets/PluginPane-BPP1dbck.js +3 -0
  19. package/dist/assets/SettingsView-kMmrpn43.js +29 -0
  20. package/dist/assets/SettingsWindow-BpvD6IYQ.js +1 -0
  21. package/dist/assets/SubmoduleDiffSummary-BLttSS1X.js +1 -0
  22. package/dist/assets/ToolOutputDialog-CtqDqbyr.js +15 -0
  23. package/dist/assets/ToolPartDiffPreview-5FcKdyRy.js +8 -0
  24. package/dist/assets/{VirtualizedFileDiff-0pyr_mHY.js → VirtualizedFileDiff-C763hNCR.js} +4 -4
  25. package/dist/assets/{WalkthroughView-yNj4nOP5.js → WalkthroughView-lap5btCF.js} +2 -2
  26. package/dist/assets/appThemeRegistry-u4zw1l0B.js +1 -0
  27. package/dist/assets/{commitAndPush-DvJKa3Ks.js → commitAndPush-CwGJfJG-.js} +1 -1
  28. package/dist/assets/{computeVirtualFileMetrics-DxTBMuu-.js → computeVirtualFileMetrics-DW5jjX4n.js} +1 -1
  29. package/dist/assets/de-CndEg67T.js +10 -0
  30. package/dist/assets/es-DglvPlaC.js +16 -0
  31. package/dist/assets/fr-DejPCpbS.js +14 -0
  32. package/dist/assets/index-C2r64QfD.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-D7FkBMP6.js → isDiffPlainText-D47a6hMP.js} +1 -1
  36. package/dist/assets/{isFilePlainText-CL2vsrIZ.js → isFilePlainText-B-mGgeKl.js} +1 -1
  37. package/dist/assets/ja-CVpQawCd.js +16 -0
  38. package/dist/assets/ko-Bw446h9j.js +16 -0
  39. package/dist/assets/main-Bz4WWXbr.js +2 -0
  40. package/dist/assets/main-oreqDsOV.js +896 -0
  41. package/dist/assets/{markdownCore-Dh7WEsdM.js → markdownCore-D2e5sp9y.js} +4 -4
  42. package/dist/assets/miniChat-D1v2gsBI.js +2 -0
  43. package/dist/assets/mobile-DBj3lCf2.js +2 -0
  44. package/dist/assets/{patchFileDiff-Bsba8KFp.js → patchFileDiff-BpeUOV91.js} +3 -3
  45. package/dist/assets/pl-BYNlPdhm.js +16 -0
  46. package/dist/assets/pt-BR-CL-Yfv9H.js +16 -0
  47. package/dist/assets/renderElectronMiniChatApp-DVtfEB2z.js +2 -0
  48. package/dist/assets/renderMobileApp-DFp9-xbG.js +25 -0
  49. package/dist/assets/runtimeEndpointReset-CsIpUep1.js +27 -0
  50. package/dist/assets/scheduledTasksApi-B5OHVpPM.js +1 -0
  51. package/dist/assets/{shikiHighlight-8_3csmr6.js → shikiHighlight-DNm2Z_Jc.js} +1 -1
  52. package/dist/assets/{textMateThemeFromAppTheme-CHo2fCgW.js → textMateThemeFromAppTheme-DGF2kG7g.js} +1 -1
  53. package/dist/assets/tr-DzmbxLy-.js +7 -0
  54. package/dist/assets/uk-C7vQnwro.js +16 -0
  55. package/dist/assets/useAppFontEffects-Ci3FEaPf.js +7337 -0
  56. package/dist/assets/{useInlineCommentController-DkQ_gqpn.js → useInlineCommentController-CuUuakrt.js} +2 -2
  57. package/dist/assets/useRootScrollLock-CQIsyERq.js +2 -0
  58. package/dist/assets/{vendor-codemirror-language-data-CdzUmUyZ.js → vendor-codemirror-language-data-CQa7_1cr.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-B8IcVQAA.js → web-components-B6tKQyJN.js} +2 -2
  64. package/dist/assets/zh-CN-Cl0srS-z.js +16 -0
  65. package/dist/assets/zh-TW-DtII5bDb.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-COVQhWGd.js +0 -4
  316. package/dist/assets/FilesView-B1V5JxFX.js +0 -13
  317. package/dist/assets/LinearIssuesView-D7FKg1XJ.js +0 -1
  318. package/dist/assets/MarkdownImageGallery-BrFjAVEf.js +0 -1
  319. package/dist/assets/MarkdownRendererImpl-DWepTafh.js +0 -12
  320. package/dist/assets/OnboardingScreen-Dyxxiqdt.js +0 -1
  321. package/dist/assets/PlanView-LW2z_EAP.js +0 -5
  322. package/dist/assets/PluginPane-B4tKno2h.js +0 -3
  323. package/dist/assets/SettingsView-DEaMulN9.js +0 -29
  324. package/dist/assets/SettingsWindow-FLDJXOgQ.js +0 -1
  325. package/dist/assets/SubmoduleDiffSummary-CvVwD-Vi.js +0 -1
  326. package/dist/assets/ToolOutputDialog-BiP0x2Rw.js +0 -15
  327. package/dist/assets/ToolPartDiffPreview-CkR4msKP.js +0 -8
  328. package/dist/assets/appThemeRegistry-BuUKhbYQ.js +0 -1
  329. package/dist/assets/de-DgxgFyGG.js +0 -10
  330. package/dist/assets/es-BFsZj5F_.js +0 -16
  331. package/dist/assets/fr-jdZ5KKQi.js +0 -14
  332. package/dist/assets/index-CKHjPKbq.js +0 -1
  333. package/dist/assets/index-Cbci4i1W.js +0 -40
  334. package/dist/assets/index-DqaMWNrC.css +0 -1
  335. package/dist/assets/ja-C5kKrhO4.js +0 -16
  336. package/dist/assets/ko-DXDTT_0O.js +0 -16
  337. package/dist/assets/main-CZALtVek.js +0 -896
  338. package/dist/assets/main-CgXMBNvG.js +0 -2
  339. package/dist/assets/miniChat-CwTmDixi.js +0 -2
  340. package/dist/assets/mobile-CLf2vCtO.js +0 -2
  341. package/dist/assets/pl-D-7x4Y8Q.js +0 -16
  342. package/dist/assets/pt-BR-CSBZrHa8.js +0 -16
  343. package/dist/assets/renderElectronMiniChatApp-C5gAFBk0.js +0 -2
  344. package/dist/assets/renderMobileApp-V4hYd32H.js +0 -25
  345. package/dist/assets/runtimeEndpointReset-DhlHCn-2.js +0 -25
  346. package/dist/assets/scheduledTasksApi-DzjbLd8P.js +0 -1
  347. package/dist/assets/tr-Dr-oJ22L.js +0 -7
  348. package/dist/assets/uk-9Nx83UcI.js +0 -16
  349. package/dist/assets/useAppFontEffects-khZXpFL_.js +0 -7333
  350. package/dist/assets/useRootScrollLock-DdvHf9Pt.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-Bxy_Hj3r.js +0 -16
  354. package/dist/assets/zh-TW-0BB4gpHM.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,5 +1,5 @@
1
- import{B as v,g as A}from"./vendor-marked-CX41MkDF.js";import{m as B}from"./vendor-marked-linkify-it-CXI_LHIE.js";import{p as D}from"./vendor-remend-BWYYytN3.js";import{k as z}from"./vendor-katex-CHD9BdDO.js";import{p as g}from"./vendor-dompurify-r8glNMJW.js";import{jX as y,jY as M,jZ as I,j_ as G,j$ as F,gv as j,k0 as U,k1 as K}from"./useAppFontEffects-khZXpFL_.js";import{O as P}from"./index-Cbci4i1W.js";import"./vendor-linkify-it-DZCzzDkK.js";import"./vendor-uc.micro-BAd0H0z4.js";import"./vendor-react-BUCujlKS.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"./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-CdzUmUyZ.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"./vendor-opencode-sdk-BJ73u-bH.js";const C=e=>e.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),w=["script","style"],X=e=>{try{const t=new URL(e);return t.protocol==="file:"&&(!t.hostname||t.hostname==="localhost")}catch{return!1}},d=e=>e.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),W=/\.(?:png|jpe?g|gif|webp)(?:[?#].*)?$/i,V=/^[A-Za-z]:[\\/]/,Y=/^[A-Za-z][A-Za-z\d+.-]*:/,Z=12,q=1024,J=2*1024*1024,Q=64*1024,m=new Map;let _=0;const ee=e=>/^\/\//.test(e)||!W.test(e)?!1:V.test(e)||/^file:\/\//i.test(e)||!Y.test(e),te=e=>/^(?:https?:)?\/\//i.test(e)||/^data:image\/(?:png|jpeg|gif|webp);base64,/i.test(e)||ee(e),T=(e,t)=>{if(/^data:image\/(png|jpeg|gif|webp)/i.test(e)){const o=/^data:image\/([^;,]+)/i.exec(e)?.[1]?.replace("jpeg","jpg")??"png";return t.trim()||`image.${o}`}const r=(e.split(/[?#]/,1)[0]?.replace(/\\/g,"/")??"").split("/").filter(Boolean).at(-1)??"";if(!r)return t.trim();try{return decodeURIComponent(r)}catch{return r}},re=(e,t)=>(e.length+t.reduce((n,r)=>n+r.source.length+r.filename.length,0))*2,ne=e=>{const t=[],n=new Set,r=A.lexer(e);return A.walkTokens(r,o=>{if(o.type!=="image")return;const s=o.href??"";if(!s||!te(s)||n.has(s))return;const i=typeof o.text=="string"?o.text:"",a=T(s,i);a&&(n.add(s),t.push({source:s,filename:a}))}),t},oe=e=>{const t=m.get(e);if(t)return m.delete(e),m.set(e,t),t.candidates;let n;try{n=ne(e)}catch{return[]}const r=re(e,n);if(r>Q)return n;for(;m.size>=q||_+r>J;){const o=m.entries().next().value;if(!o)break;m.delete(o[0]),_-=o[1].bytes}return m.set(e,{candidates:n,bytes:r}),_+=r,n},se=({href:e,title:t,text:n})=>{const r=T(e??"",n);return`<span${t?` title="${d(t)}"`:""} class="inline-flex items-center gap-1 align-text-bottom text-muted-foreground" data-openchamber-markdown-image-label="true">${d(r)}</span>`},ur=(e,t=Z)=>{if(t<=0)return[];const n=[],r=new Set;for(const o of e)if(!(!o||n.length>=t))for(const s of oe(o)){if(n.length>=t)break;r.has(s.source)||(r.add(s.source),n.push({...s}))}return n},ie=e=>/^\[[^\]]+\]:\s+\S+/m.test(e)||/^\[\^[^\]]+\]:\s+/m.test(e),ae=e=>{const t=e.match(/^[ \t]{0,3}(`{3,}|~{3,})/);if(!t)return!1;const n=t[1];if(!n)return!1;const r=n[0],o=n.length,s=e.trimEnd().split(`
2
- `).at(-1)?.trim()??"";return!new RegExp(`^[\\t ]{0,3}${r}{${o},}[\\t ]*$`).test(s)},ce=300,h=e=>{try{return D(e,{linkMode:"text-only"})}catch{return e}},$=(e,t)=>{if(!t)return[{raw:e,src:e,mode:"full",highlight:!0}];if(ie(e))return[{raw:e,src:h(e),mode:"live",highlight:!0}];let n;try{n=E.lexer(e)}catch{return[{raw:e,src:h(e),mode:"live",highlight:!0}]}let r=-1;for(let s=n.length-1;s>=0;s-=1)if(n[s]?.type!=="space"){r=s;break}if(r<0)return[{raw:e,src:h(e),mode:"live",highlight:!0}];const o=[];for(let s=0;s<n.length;s+=1){const i=n[s];if(!i||i.type==="space")continue;const a=i.raw??"",l=s===r,c=i.type==="code"&&ae(a),p=c&&a.split(`
3
- `).length<=ce;o.push({raw:a,src:c?a:h(a),mode:l?"live":"full",highlight:!c||p})}return o.length===0?[{raw:e,src:h(e),mode:"live",highlight:!0}]:o},f=(e,t,n)=>{try{return z.renderToString(e,{displayMode:n,throwOnError:!1})}catch{return t}},le={name:"inlineMath",level:"inline",start(e){const t=e.indexOf("\\(");return t<0?void 0:t},tokenizer(e){const t=/^\\\(([\s\S]+?)\\\)/.exec(e);if(t)return{type:"inlineMath",raw:t[0],text:t[1]??""}},renderer(e){const t=e;return f(t.text,t.raw,!1)}},pe=/^[ \t]*\\\[([\s\S]+?)\\\][ \t]*(?:\n|$)/,me=/(?:^|\n)[ \t]*\\\[/,de={name:"blockMath",level:"block",start(e){const t=me.exec(e);return t?t.index+t[0].length-2:void 0},tokenizer(e){const t=pe.exec(e);if(t)return{type:"blockMath",raw:t[0],text:t[1]??""}},renderer(e){const t=e;return f(t.text,t.raw,!0)}},ue={name:"disclosure",level:"block",start(e){const t=/(?:^|\n) {0,3}<details(?:\s|>)/i.exec(e);return t?t.index+(t[0].startsWith(`
1
+ import{B as v,g as I}from"./vendor-marked-CX41MkDF.js";import{m as B}from"./vendor-marked-linkify-it-CXI_LHIE.js";import{p as D}from"./vendor-remend-BWYYytN3.js";import{k as z}from"./vendor-katex-CHD9BdDO.js";import{p as h}from"./vendor-dompurify-r8glNMJW.js";import{kp as M,kq as C,kr as w,ks as G,kt as F,gK as K,ku as U,kv as P}from"./useAppFontEffects-Ci3FEaPf.js";import{O as W}from"./index-CvLgnuNI.js";import"./vendor-linkify-it-DZCzzDkK.js";import"./vendor-uc.micro-BAd0H0z4.js";import"./vendor-react-BUCujlKS.js";import"./vendor-scheduler-7OC5HNn7.js";import"./vendor-zod-Gea9uBlY.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"./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-CQa7_1cr.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"./vendor-opencode-client-_BAHQo4R.js";const T=e=>e.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),x=["script","style"],X=e=>{try{const t=new URL(e);return t.protocol==="file:"&&(!t.hostname||t.hostname==="localhost")}catch{return!1}},d=e=>e.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),j=/\.(?:png|jpe?g|gif|webp)(?:[?#].*)?$/i,V=/^[A-Za-z]:[\\/]/,q=/^[A-Za-z][A-Za-z\d+.-]*:/,Y=12,Z=1024,J=2*1024*1024,Q=64*1024,m=new Map;let k=0;const ee=e=>/^\/\//.test(e)||!j.test(e)?!1:V.test(e)||/^file:\/\//i.test(e)||!q.test(e),te=e=>/^(?:https?:)?\/\//i.test(e)||/^data:image\/(?:png|jpeg|gif|webp);base64,/i.test(e)||ee(e),$=(e,t)=>{if(/^data:image\/(png|jpeg|gif|webp)/i.test(e)){const o=/^data:image\/([^;,]+)/i.exec(e)?.[1]?.replace("jpeg","jpg")??"png";return t.trim()||`image.${o}`}const r=(e.split(/[?#]/,1)[0]?.replace(/\\/g,"/")??"").split("/").filter(Boolean).at(-1)??"";if(!r)return t.trim();try{return decodeURIComponent(r)}catch{return r}},re=(e,t)=>(e.length+t.reduce((n,r)=>n+r.source.length+r.filename.length,0))*2,ne=e=>{const t=[],n=new Set,r=I.lexer(e);return I.walkTokens(r,o=>{if(o.type!=="image")return;const s=o.href??"";if(!s||!te(s)||n.has(s))return;const i=typeof o.text=="string"?o.text:"",a=$(s,i);a&&(n.add(s),t.push({source:s,filename:a}))}),t},oe=e=>{const t=m.get(e);if(t)return m.delete(e),m.set(e,t),t.candidates;let n;try{n=ne(e)}catch{return[]}const r=re(e,n);if(r>Q)return n;for(;m.size>=Z||k+r>J;){const o=m.entries().next().value;if(!o)break;m.delete(o[0]),k-=o[1].bytes}return m.set(e,{candidates:n,bytes:r}),k+=r,n},se=({href:e,title:t,text:n})=>{const r=$(e??"",n);return`<span${t?` title="${d(t)}"`:""} class="inline-flex items-center gap-1 align-text-bottom text-muted-foreground" data-openchamber-markdown-image-label="true">${d(r)}</span>`},ur=(e,t=Y)=>{if(t<=0)return[];const n=[],r=new Set;for(const o of e)if(!(!o||n.length>=t))for(const s of oe(o)){if(n.length>=t)break;r.has(s.source)||(r.add(s.source),n.push({...s}))}return n},ie=e=>/^\[[^\]]+\]:\s+\S+/m.test(e)||/^\[\^[^\]]+\]:\s+/m.test(e),ae=e=>{const t=e.match(/^[ \t]{0,3}(`{3,}|~{3,})/);if(!t)return!1;const n=t[1];if(!n)return!1;const r=n[0],o=n.length,s=e.trimEnd().split(`
2
+ `).at(-1)?.trim()??"";return!new RegExp(`^[\\t ]{0,3}${r}{${o},}[\\t ]*$`).test(s)},ce=300,g=e=>{try{return D(e,{linkMode:"text-only"})}catch{return e}},L=(e,t)=>{if(!t)return[{raw:e,src:e,mode:"full",highlight:!0}];if(ie(e))return[{raw:e,src:g(e),mode:"live",highlight:!0}];let n;try{n=A.lexer(e)}catch{return[{raw:e,src:e,mode:"live",highlight:!0,plainText:!0}]}let r=-1;for(let s=n.length-1;s>=0;s-=1)if(n[s]?.type!=="space"){r=s;break}if(r<0)return[{raw:e,src:g(e),mode:"live",highlight:!0}];const o=[];for(let s=0;s<n.length;s+=1){const i=n[s];if(!i||i.type==="space")continue;const a=i.raw??"",l=s===r,c=i.type==="code"&&ae(a),p=c&&a.split(`
3
+ `).length<=ce;o.push({raw:a,src:c?a:g(a),mode:l?"live":"full",highlight:!c||p})}return o.length===0?[{raw:e,src:g(e),mode:"live",highlight:!0}]:o},f=(e,t,n)=>{try{return z.renderToString(e,{displayMode:n,throwOnError:!1})}catch{return t}},le={name:"inlineMath",level:"inline",start(e){const t=e.indexOf("\\(");return t<0?void 0:t},tokenizer(e){const t=/^\\\(([\s\S]+?)\\\)/.exec(e);if(t)return{type:"inlineMath",raw:t[0],text:t[1]??""}},renderer(e){const t=e;return f(t.text,t.raw,!1)}},pe=/^[ \t]*\\\[([\s\S]+?)\\\][ \t]*(?:\n|$)/,me=/(?:^|\n)[ \t]*\\\[/,de={name:"blockMath",level:"block",start(e){const t=me.exec(e);return t?t.index+t[0].length-2:void 0},tokenizer(e){const t=pe.exec(e);if(t)return{type:"blockMath",raw:t[0],text:t[1]??""}},renderer(e){const t=e;return f(t.text,t.raw,!0)}},ue={name:"disclosure",level:"block",start(e){const t=/(?:^|\n) {0,3}<details(?:\s|>)/i.exec(e);return t?t.index+(t[0].startsWith(`
4
4
  `)?1:0):void 0},tokenizer(e){const t=/^ {0,3}<details(?:\s+(open(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+))?))?\s*>\s*<summary\s*>([\s\S]*?)<\/summary\s*>/i.exec(e);if(!t)return;const n=t[0].length,r=e.slice(n),o=/(^ {0,3}(`{3,}|~{3,})[^\n]*(?:\n|$))|(`+)|(<\/?details\b[^>]*>)/gim;let s=1,i=r.length,a=e.length,l;for(;l=o.exec(r);)if(l[2]){const c=l[2],p=new RegExp(`^ {0,3}${c[0]}{${c.length},}[\\t ]*(?:\\n|$)`,"gm");if(p.lastIndex=o.lastIndex,!p.exec(r))break;o.lastIndex=p.lastIndex}else if(l[3]){const c=l[3],p=/`+/g;p.lastIndex=o.lastIndex;let u;for(;u=p.exec(r);)if(u[0].length===c.length){o.lastIndex=p.lastIndex;break}}else if(l[4]){const c=r.lastIndexOf(`
5
- `,l.index-1)+1,p=r.slice(c,l.index);if(/^(?: {4}|\t| {0,3}>)/.test(p)||/(?:^|[^\\])(?:\\\\)*\\$/.test(p))continue;if(s+=/^<\//.test(l[4])?-1:1,s===0){i=l.index,a=n+o.lastIndex;break}}return{type:"disclosure",raw:e.slice(0,a),open:!!t[1],summary:this.lexer.inlineTokens(t[2]??""),tokens:this.lexer.blockTokens(r.slice(0,i))}},renderer(e){return`<details data-md-details${e.open?" open":""}><summary>${this.parser.parseInline(e.summary)}</summary>${this.parser.parse(e.tokens??[])}</details>`},childTokens:["summary","tokens"]},L=e=>new v().use(B({fuzzyLink:!1}),{gfm:!0,breaks:!1,extensions:[le,de,ue],renderer:{html({text:t}){return C(t)},link({href:t,title:n,text:r}){const o=t??"",s=G(o);if(s)return`<a href="${d(K(s))}" data-openchamber-agent-mention="true" class="text-primary hover:underline" target="_blank" rel="noopener noreferrer">${r}</a>`;const i=F(o);if(i)return`<a href="${d(o)}" data-skill-name="${d(i)}" class="text-primary hover:underline">${r}</a>`;const a=n?` title="${d(n)}"`:"";return`<a href="${d(o)}"${a} class="external-link" target="_blank" rel="noopener noreferrer">${r}</a>`},...e==="label"?{image:se}:{}}}),E=L("inline"),S=L("label"),k=e=>e.replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#39;/g,"'").replace(/&amp;/g,"&"),he=/\$\$([\s\S]*?)\$\$|\$(?![\s$])([^\s$<>"](?:[^$<>"]*?[^\s$<>"])?)\$(?!\d)/g,ge=/^[\d.,\s]+$/,fe=e=>e.replace(he,(t,n,r)=>n!==void 0?f(k(n),t,!0):r!==void 0&&!ge.test(r)?f(k(r),t,!1):t),_e=/(<[^>]*>)/,ke=e=>e.split(_e).map((t,n)=>n%2===1?t:fe(t)).join(""),b=e=>{if(e.indexOf("$")===-1)return e;const t=/(<(?:pre|code|kbd)[^>]*>[\s\S]*?<\/(?:pre|code|kbd)>)/gi;return e.split(t).map((n,r)=>r%2===1?n:ke(n)).join("")},Ee=/<pre><code(?:\s+class="language-([^"]*)")?>([\s\S]*?)<\/code><\/pre>/g,Ae=1200,Ie=200,we=(e,t)=>{let n=1;for(let r=0;r<e.length;r+=1)if(e.charCodeAt(r)===10&&++n>t)return!0;return!1},xe=async e=>{const t=[...e.matchAll(Ee)];if(t.length===0)return e;const n=P()?Ie:Ae,r=await Promise.all(t.map(async s=>{const[i,a,l]=s,c=(a||"text").toLowerCase();if(c==="mermaid")return null;const p=k(l??"");if(we(p,n))return{full:i,next:i.replace("<pre",`<pre data-md-lang="${c}"`)};const u=await U(p,c);return u?{full:i,next:u.replace(/^<pre/,`<pre data-md-lang="${c}"`)}:null}));let o=e;for(const s of r)s&&(o=o.replace(s.full,()=>s.next));return o},ye={USE_PROFILES:{html:!0,mathMl:!0,svg:!0},ADD_TAGS:["svg","path","g","rect","line","polygon","polyline","circle","ellipse","text","tspan","defs","marker"],ADD_ATTR:["d","viewBox","preserveAspectRatio","xmlns","target","fill","stroke","stroke-width","transform","points","x","y","x1","y1","x2","y2","cx","cy","r","rx","ry","style"],FORBID_TAGS:[...w],FORBID_CONTENTS:[...w]};let x=!1;const Me=()=>{x||typeof window>"u"||!g.isSupported||(x=!0,g.addHook("uponSanitizeAttribute",(e,t)=>{!(e instanceof HTMLAnchorElement)||t.attrName!=="href"||(X(t.attrValue)||j(t.attrValue))&&(t.forceKeepAttr=!0)}),g.addHook("afterSanitizeAttributes",e=>{e instanceof HTMLAnchorElement&&e.target==="_blank"&&e.setAttribute("rel","noopener noreferrer")}))},R=e=>g.isSupported?(Me(),g.sanitize(e,ye)):"",Ce=2e3,Te=24*1024*1024,$e=32,Le=2*1024*1024,H=new M({maxEntries:Ce,maxBytes:Te}),Se=new M({maxEntries:$e,maxBytes:Le}),be=e=>e==="live"?Se:H,O=(e,t,n,r)=>`${e}:${t}:${n?1:0}:${r}`,hr=(e,t="inline")=>{if(!e)return[];const n=$(e,!1),r=[];for(const o of n){const s=y(o.raw),i=O(s,o.mode,o.highlight,t),a=H.get(i);if(a===void 0)return null;r.push({id:i,html:a})}return r},N=e=>`<div class="whitespace-pre-wrap break-words">${C(e)}</div>`,Re=async(e,t)=>{const n=t==="label"?S:E;let r;try{r=await n.parse(e.src)}catch{return N(e.raw)}const o=b(r),s=e.highlight?await xe(o):o;return R(s)},gr=(e,t="inline")=>{if(!e)return"";const n=t==="label"?S:E;let r;try{r=n.parse(e,{async:!1})}catch{return N(e)}const o=b(r);return R(o)},fr=async(e,t,n="inline")=>{if(!e)return[];const r=$(e,t);return Promise.all(r.map(async o=>{const s=y(o.raw),i=O(s,o.mode,o.highlight,n),a=be(o.mode),l=a.get(i);if(l!==void 0)return{id:i,html:l};const c=await Re(o,n);return a.set(i,c,I(i)+I(c)),{id:i,html:c}}))};export{Z as MAX_MARKDOWN_IMAGE_COUNT,ur as extractMarkdownImageCandidates,hr as getCachedMarkdownBlocks,fr as renderMarkdownBlocks,gr as renderMarkdownSync};
5
+ `,l.index-1)+1,p=r.slice(c,l.index);if(/^(?: {4}|\t| {0,3}>)/.test(p)||/(?:^|[^\\])(?:\\\\)*\\$/.test(p))continue;if(s+=/^<\//.test(l[4])?-1:1,s===0){i=l.index,a=n+o.lastIndex;break}}return{type:"disclosure",raw:e.slice(0,a),open:!!t[1],summary:this.lexer.inlineTokens(t[2]??""),tokens:this.lexer.blockTokens(r.slice(0,i))}},renderer(e){return`<details data-md-details${e.open?" open":""}><summary>${this.parser.parseInline(e.summary)}</summary>${this.parser.parse(e.tokens??[])}</details>`},childTokens:["summary","tokens"]},S=e=>new v().use(B({fuzzyLink:!1}),{gfm:!0,breaks:!1,extensions:[le,de,ue],renderer:{html({text:t}){return T(t)},link({href:t,title:n,text:r}){const o=t??"",s=G(o);if(s)return`<a href="${d(P(s))}" data-openchamber-agent-mention="true" class="text-primary hover:underline" target="_blank" rel="noopener noreferrer">${r}</a>`;const i=F(o);if(i)return`<a href="${d(o)}" data-skill-name="${d(i)}" class="text-primary hover:underline">${r}</a>`;const a=n?` title="${d(n)}"`:"";return`<a href="${d(o)}"${a} class="external-link" target="_blank" rel="noopener noreferrer">${r}</a>`},...e==="label"?{image:se}:{}}}),A=S("inline"),b=S("label"),_=e=>e.replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#39;/g,"'").replace(/&amp;/g,"&"),he=/\$\$([\s\S]*?)\$\$|\$(?![\s$])([^\s$<>"](?:[^$<>"]*?[^\s$<>"])?)\$(?!\d)/g,ge=/^[\d.,\s]+$/,fe=e=>e.replace(he,(t,n,r)=>n!==void 0?f(_(n),t,!0):r!==void 0&&!ge.test(r)?f(_(r),t,!1):t),ke=/(<[^>]*>)/,_e=e=>e.split(ke).map((t,n)=>n%2===1?t:fe(t)).join(""),R=e=>{if(e.indexOf("$")===-1)return e;const t=/(<(?:pre|code|kbd)[^>]*>[\s\S]*?<\/(?:pre|code|kbd)>)/gi;return e.split(t).map((n,r)=>r%2===1?n:_e(n)).join("")},Ee=/<pre><code(?:\s+class="language-([^"]*)")?>([\s\S]*?)<\/code><\/pre>/g,Ae=1200,Ie=200,we=(e,t)=>{let n=1;for(let r=0;r<e.length;r+=1)if(e.charCodeAt(r)===10&&++n>t)return!0;return!1},xe=async e=>{const t=[...e.matchAll(Ee)];if(t.length===0)return e;const n=W()?Ie:Ae,r=await Promise.all(t.map(async s=>{const[i,a,l]=s,c=(a||"text").toLowerCase();if(c==="mermaid")return null;const p=_(l??"");if(we(p,n))return{full:i,next:i.replace("<pre",`<pre data-md-lang="${c}"`)};const u=await U(p,c);return u?{full:i,next:u.replace(/^<pre/,`<pre data-md-lang="${c}"`)}:null}));let o=e;for(const s of r)s&&(o=o.replace(s.full,()=>s.next));return o},ye={USE_PROFILES:{html:!0,mathMl:!0,svg:!0},ADD_TAGS:["svg","path","g","rect","line","polygon","polyline","circle","ellipse","text","tspan","defs","marker"],ADD_ATTR:["d","viewBox","preserveAspectRatio","xmlns","target","fill","stroke","stroke-width","transform","points","x","y","x1","y1","x2","y2","cx","cy","r","rx","ry","style"],FORBID_TAGS:[...x],FORBID_CONTENTS:[...x]};let y=!1;const Me=()=>{y||typeof window>"u"||!h.isSupported||(y=!0,h.addHook("uponSanitizeAttribute",(e,t)=>{!(e instanceof HTMLAnchorElement)||t.attrName!=="href"||(X(t.attrValue)||K(t.attrValue))&&(t.forceKeepAttr=!0)}),h.addHook("afterSanitizeAttributes",e=>{e instanceof HTMLAnchorElement&&e.target==="_blank"&&e.setAttribute("rel","noopener noreferrer")}))},H=e=>h.isSupported?(Me(),h.sanitize(e,ye)):"",Ce=2e3,Te=24*1024*1024,$e=32,Le=2*1024*1024,O=new C({maxEntries:Ce,maxBytes:Te}),Se=new C({maxEntries:$e,maxBytes:Le}),be=e=>e==="live"?Se:O,N=(e,t,n,r)=>`${e}:${t}:${n?1:0}:${r}`,hr=(e,t="inline")=>{if(!e)return[];const n=L(e,!1),r=[];for(const o of n){const s=M(o.raw),i=N(s,o.mode,o.highlight,t),a=O.get(i);if(a===void 0)return null;r.push({id:i,html:a})}return r},E=e=>`<div class="whitespace-pre-wrap break-words">${T(e)}</div>`,Re=async(e,t)=>{if(e.plainText)return E(e.raw);const n=t==="label"?b:A;let r;try{r=await n.parse(e.src)}catch{return E(e.raw)}const o=R(r),s=e.highlight?await xe(o):o;return H(s)},gr=(e,t="inline")=>{if(!e)return"";const n=t==="label"?b:A;let r;try{r=n.parse(e,{async:!1})}catch{return E(e)}const o=R(r);return H(o)},fr=async(e,t,n="inline")=>{if(!e)return[];const r=L(e,t);return Promise.all(r.map(async o=>{const s=M(o.raw),i=N(s,o.mode,o.highlight,n),a=be(o.mode),l=a.get(i);if(l!==void 0)return{id:i,html:l};const c=await Re(o,n);return a.set(i,c,w(i)+w(c)),{id:i,html:c}}))};export{Y as MAX_MARKDOWN_IMAGE_COUNT,ur as extractMarkdownImageCandidates,hr as getCachedMarkdownBlocks,fr as renderMarkdownBlocks,gr as renderMarkdownSync};
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/renderElectronMiniChatApp-DVtfEB2z.js","assets/vendor-react-BUCujlKS.js","assets/vendor-scheduler-7OC5HNn7.js","assets/vendor-katex-CHD9BdDO.js","assets/vendor-katex-Cp579UoJ.css","assets/index-CvLgnuNI.js","assets/vendor-zod-Gea9uBlY.js","assets/vendor-vite-runtime-DD1OZmLC.js","assets/vendor-zustand-BAGL70zf.js","assets/vendor-opencode-client-_BAHQo4R.js","assets/index-CLcM8HKx.css","assets/useAppFontEffects-Ci3FEaPf.js","assets/vendor-simplewebauthn-browser-VDA66rT_.js","assets/vendor-base-ui-CsXYnR5c.js","assets/vendor-floating-ui-utils-D6FqdtJt.js","assets/vendor-floating-ui-react-dom-DxYCWdHj.js","assets/vendor-floating-ui-dom-BTvzWks8.js","assets/vendor-floating-ui-core-PuGzNPnN.js","assets/vendor-use-sync-external-store-D6wYuSt-.js","assets/vendor-class-variance-authority-5VPnzWs2.js","assets/vendor-clsx-B-dksMZM.js","assets/vendor-dnd-kit-core-BZknOX2w.js","assets/vendor-dnd-kit-utilities-B_MdXhJC.js","assets/vendor-dnd-kit-accessibility-BHxJPORy.js","assets/vendor-dnd-kit-sortable-CsEagZ81.js","assets/vendor-framer-motion-Bq3iTZ6r.js","assets/vendor-motion-dom-DcCgeG69.js","assets/vendor-motion-utils-BGh8QBgx.js","assets/vendor-tanstack-react-virtual-ClYN8CzB.js","assets/vendor-tanstack-virtual-core-BewVQryB.js","assets/contextPanelEmbeddedChat-CirXEPJq.js","assets/vendor-sonner-DFyL3AvE.js","assets/vendor-cmdk-DgLInKvT.js","assets/vendor-radix-ui-react-dialog-B94Bt2qq.js","assets/vendor-radix-ui-primitive-Dc_FVRD7.js","assets/vendor-radix-ui-react-compose-refs-DcAh5WdT.js","assets/vendor-radix-ui-react-context-Czxm7Z62.js","assets/vendor-radix-ui-react-id-f5BLKEVw.js","assets/vendor-radix-ui-react-use-layout-effect-D_3IhJdJ.js","assets/vendor-radix-ui-react-use-controllable-state-BFT5YmkA.js","assets/vendor-radix-ui-react-dismissable-layer-D7kXcwgJ.js","assets/vendor-radix-ui-react-primitive-DhVoX9SD.js","assets/vendor-radix-ui-react-slot-BQgQOasS.js","assets/vendor-radix-ui-react-use-callback-ref-BZPnuXAC.js","assets/vendor-radix-ui-react-use-escape-keydown-oph88g-F.js","assets/vendor-radix-ui-react-focus-scope-CiaxW4dD.js","assets/vendor-radix-ui-react-portal-BMJYHWck.js","assets/vendor-radix-ui-react-presence-CNxf-uq4.js","assets/vendor-radix-ui-react-focus-guards-B6qJXYua.js","assets/vendor-react-remove-scroll-DO7dCTnK.js","assets/vendor-tslib-De9GV7Vy.js","assets/vendor-react-remove-scroll-bar-BcFYyj3E.js","assets/vendor-react-style-singleton-q6EMHnwf.js","assets/vendor-get-nonce-C-Z93AgS.js","assets/vendor-use-sidecar-zDC0RhA3.js","assets/vendor-use-callback-ref-D3RC8gqK.js","assets/vendor-aria-hidden-DvXkyWUv.js","assets/vendor-codemirror-language-BgPj_McA.js","assets/vendor-lezer-common-B3-cUCR_.js","assets/vendor-codemirror-state-C9awkmn-.js","assets/vendor-marijn-find-cluster-break-DXwl3gUT.js","assets/vendor-codemirror-view-CiLROUVV.js","assets/vendor-style-mod-NZ5MEPvj.js","assets/vendor-w3c-keyname-Vcq4gwWv.js","assets/vendor-crelt-C8TCjufn.js","assets/vendor-lezer-highlight-CDMHUZ74.js","assets/vendor-codemirror-lang-javascript-Cc2ZYbgX.js","assets/vendor-lezer-javascript-D7Tj24ot.js","assets/vendor-lezer-lr-bhwg1HMg.js","assets/vendor-codemirror-autocomplete-DzPz9Wgq.js","assets/vendor-codemirror-lang-json-CMBS2tG9.js","assets/vendor-lezer-json-Iaex0UN-.js","assets/vendor-codemirror-lang-css-O0cZX78y.js","assets/vendor-lezer-css-C5xB6jxd.js","assets/vendor-codemirror-lang-html-CfgK872x.js","assets/vendor-lezer-html-C0I1p52t.js","assets/vendor-codemirror-lang-markdown-BPGOH9ye.js","assets/vendor-lezer-markdown-C6g-d6P3.js","assets/vendor-codemirror-language-data-CQa7_1cr.js","assets/vendor-codemirror-lang-python-HahnQaAS.js","assets/vendor-lezer-python-CvuFxeZl.js","assets/vendor-codemirror-commands-B7H_j0iU.js","assets/vendor-legendapp-list-BuBPBC3R.js","assets/vendor-tailwind-merge-CPcsbTWB.js","assets/vendor-fuse.js-Dw8P0qyA.js","assets/useRootScrollLock-CQIsyERq.js"])))=>i.map(i=>d[i]);
2
+ import{_ as o}from"./vendor-vite-runtime-DD1OZmLC.js";import{c as _}from"./index-CvLgnuNI.js";import"./vendor-katex-CHD9BdDO.js";import"./vendor-zod-Gea9uBlY.js";import"./vendor-zustand-BAGL70zf.js";import"./vendor-react-BUCujlKS.js";import"./vendor-scheduler-7OC5HNn7.js";import"./vendor-opencode-client-_BAHQo4R.js";window.__OPENCHAMBER_RUNTIME_APIS__=_();o(async()=>{const{renderElectronMiniChatApp:r}=await import("./renderElectronMiniChatApp-DVtfEB2z.js");return{renderElectronMiniChatApp:r}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85])).then(({renderElectronMiniChatApp:r})=>{r(window.__OPENCHAMBER_RUNTIME_APIS__??_())});
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/renderMobileApp-DFp9-xbG.js","assets/vendor-react-BUCujlKS.js","assets/vendor-scheduler-7OC5HNn7.js","assets/vendor-katex-CHD9BdDO.js","assets/vendor-katex-Cp579UoJ.css","assets/index-CvLgnuNI.js","assets/vendor-zod-Gea9uBlY.js","assets/vendor-vite-runtime-DD1OZmLC.js","assets/vendor-zustand-BAGL70zf.js","assets/vendor-opencode-client-_BAHQo4R.js","assets/index-CLcM8HKx.css","assets/useAppFontEffects-Ci3FEaPf.js","assets/vendor-simplewebauthn-browser-VDA66rT_.js","assets/vendor-base-ui-CsXYnR5c.js","assets/vendor-floating-ui-utils-D6FqdtJt.js","assets/vendor-floating-ui-react-dom-DxYCWdHj.js","assets/vendor-floating-ui-dom-BTvzWks8.js","assets/vendor-floating-ui-core-PuGzNPnN.js","assets/vendor-use-sync-external-store-D6wYuSt-.js","assets/vendor-class-variance-authority-5VPnzWs2.js","assets/vendor-clsx-B-dksMZM.js","assets/vendor-dnd-kit-core-BZknOX2w.js","assets/vendor-dnd-kit-utilities-B_MdXhJC.js","assets/vendor-dnd-kit-accessibility-BHxJPORy.js","assets/vendor-dnd-kit-sortable-CsEagZ81.js","assets/vendor-framer-motion-Bq3iTZ6r.js","assets/vendor-motion-dom-DcCgeG69.js","assets/vendor-motion-utils-BGh8QBgx.js","assets/vendor-tanstack-react-virtual-ClYN8CzB.js","assets/vendor-tanstack-virtual-core-BewVQryB.js","assets/contextPanelEmbeddedChat-CirXEPJq.js","assets/vendor-sonner-DFyL3AvE.js","assets/vendor-cmdk-DgLInKvT.js","assets/vendor-radix-ui-react-dialog-B94Bt2qq.js","assets/vendor-radix-ui-primitive-Dc_FVRD7.js","assets/vendor-radix-ui-react-compose-refs-DcAh5WdT.js","assets/vendor-radix-ui-react-context-Czxm7Z62.js","assets/vendor-radix-ui-react-id-f5BLKEVw.js","assets/vendor-radix-ui-react-use-layout-effect-D_3IhJdJ.js","assets/vendor-radix-ui-react-use-controllable-state-BFT5YmkA.js","assets/vendor-radix-ui-react-dismissable-layer-D7kXcwgJ.js","assets/vendor-radix-ui-react-primitive-DhVoX9SD.js","assets/vendor-radix-ui-react-slot-BQgQOasS.js","assets/vendor-radix-ui-react-use-callback-ref-BZPnuXAC.js","assets/vendor-radix-ui-react-use-escape-keydown-oph88g-F.js","assets/vendor-radix-ui-react-focus-scope-CiaxW4dD.js","assets/vendor-radix-ui-react-portal-BMJYHWck.js","assets/vendor-radix-ui-react-presence-CNxf-uq4.js","assets/vendor-radix-ui-react-focus-guards-B6qJXYua.js","assets/vendor-react-remove-scroll-DO7dCTnK.js","assets/vendor-tslib-De9GV7Vy.js","assets/vendor-react-remove-scroll-bar-BcFYyj3E.js","assets/vendor-react-style-singleton-q6EMHnwf.js","assets/vendor-get-nonce-C-Z93AgS.js","assets/vendor-use-sidecar-zDC0RhA3.js","assets/vendor-use-callback-ref-D3RC8gqK.js","assets/vendor-aria-hidden-DvXkyWUv.js","assets/vendor-codemirror-language-BgPj_McA.js","assets/vendor-lezer-common-B3-cUCR_.js","assets/vendor-codemirror-state-C9awkmn-.js","assets/vendor-marijn-find-cluster-break-DXwl3gUT.js","assets/vendor-codemirror-view-CiLROUVV.js","assets/vendor-style-mod-NZ5MEPvj.js","assets/vendor-w3c-keyname-Vcq4gwWv.js","assets/vendor-crelt-C8TCjufn.js","assets/vendor-lezer-highlight-CDMHUZ74.js","assets/vendor-codemirror-lang-javascript-Cc2ZYbgX.js","assets/vendor-lezer-javascript-D7Tj24ot.js","assets/vendor-lezer-lr-bhwg1HMg.js","assets/vendor-codemirror-autocomplete-DzPz9Wgq.js","assets/vendor-codemirror-lang-json-CMBS2tG9.js","assets/vendor-lezer-json-Iaex0UN-.js","assets/vendor-codemirror-lang-css-O0cZX78y.js","assets/vendor-lezer-css-C5xB6jxd.js","assets/vendor-codemirror-lang-html-CfgK872x.js","assets/vendor-lezer-html-C0I1p52t.js","assets/vendor-codemirror-lang-markdown-BPGOH9ye.js","assets/vendor-lezer-markdown-C6g-d6P3.js","assets/vendor-codemirror-language-data-CQa7_1cr.js","assets/vendor-codemirror-lang-python-HahnQaAS.js","assets/vendor-lezer-python-CvuFxeZl.js","assets/vendor-codemirror-commands-B7H_j0iU.js","assets/vendor-legendapp-list-BuBPBC3R.js","assets/vendor-tailwind-merge-CPcsbTWB.js","assets/vendor-fuse.js-Dw8P0qyA.js","assets/runtimeEndpointReset-CsIpUep1.js","assets/GuestAttachDialog-DdOuyZzp.js","assets/PluginPane-BPP1dbck.js","assets/SettingsView-kMmrpn43.js","assets/vendor-yaml-3778uTud.js","assets/shikiHighlight-DNm2Z_Jc.js","assets/vendor-codemirror-search-BmS-GmcX.js","assets/vendor-replit-codemirror-vim-B2DJlAhT.js","assets/vendor-replit-codemirror-vim-core-FHzKdNUS.js","assets/appThemeRegistry-u4zw1l0B.js","assets/textMateThemeFromAppTheme-DGF2kG7g.js","assets/themeResolver-BmJyTmjJ.js","assets/vendor-pierre-theming-C6Z4M5_u.js","assets/vendor-shikijs-core-CGM_jqPK.js","assets/vendor-shikijs-types-CPSbSeK6.js","assets/vendor-shikijs-vscode-textmate-BgLrS_2D.js","assets/vendor-hast-util-to-html-BKBhbTDb.js","assets/vendor-html-void-elements-CkdplsNl.js","assets/vendor-property-information-rJCbAzvX.js","assets/vendor-zwitch-C2o2j-tx.js","assets/vendor-stringify-entities-CsH1VEn9.js","assets/vendor-character-entities-legacy-BpoLgcEt.js","assets/vendor-character-entities-html4-D7taRCQ7.js","assets/vendor-ccount-c2V3InAJ.js","assets/vendor-comma-separated-tokens-D8TqSuIK.js","assets/vendor-space-separated-tokens-DD3iYX1K.js","assets/vendor-hast-util-whitespace-D4Wp6AEg.js","assets/vendor-qrcode-DTJ12-WC.js","assets/vendor-dijkstrajs-COg3n3zL.js","assets/vendor-strip-json-comments-5dJlOkP1.js","assets/PlanView-BCk_VobP.js","assets/useInlineCommentController-CuUuakrt.js","assets/CodeMirrorCommentWidgets-ntXIbhV2.js","assets/vendor-aparajita-capacitor-secure-storage-5IShChL0.js","assets/vendor-capacitor-core-B4EWRrHz.js","assets/vendor-remixicon-react-D6dZ0UwF.js","assets/commitAndPush-CwGJfJG-.js","assets/patchFileDiff-BpeUOV91.js","assets/VirtualizedFileDiff-C763hNCR.js","assets/web-components-B6tKQyJN.js","assets/computeVirtualFileMetrics-DW5jjX4n.js","assets/vendor-shiki-Bbf2GEcE.js","assets/vendor-shikijs-engine-oniguruma-DPWuIF1G.js","assets/vendor-shikijs-engine-javascript-Cme4830A.js","assets/vendor-oniguruma-to-es-DLBnFDCE.js","assets/vendor-oniguruma-parser-C0D4_9rT.js","assets/vendor-regex-BBWcyTkg.js","assets/vendor-regex-utilities-2BQyy0xI.js","assets/vendor-regex-recursion-JU4mF-dD.js","assets/vendor-shikijs-transformers-CZWsLLKm.js","assets/isDiffPlainText-D47a6hMP.js","assets/vendor-diff-C3JhlQdm.js","assets/SubmoduleDiffSummary-BLttSS1X.js","assets/PierreDiffViewer-DW23KWKZ.js","assets/Virtualizer-D_a8gKmg.js"])))=>i.map(i=>d[i]);
2
+ import{_ as r}from"./vendor-vite-runtime-DD1OZmLC.js";import{c as o}from"./index-CvLgnuNI.js";import"./vendor-katex-CHD9BdDO.js";import"./vendor-zod-Gea9uBlY.js";import"./vendor-zustand-BAGL70zf.js";import"./vendor-react-BUCujlKS.js";import"./vendor-scheduler-7OC5HNn7.js";import"./vendor-opencode-client-_BAHQo4R.js";window.__OPENCHAMBER_RUNTIME_APIS__=o();r(async()=>{const{renderMobileApp:_}=await import("./renderMobileApp-DFp9-xbG.js");return{renderMobileApp:_}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139])).then(({renderMobileApp:_})=>{_(window.__OPENCHAMBER_RUNTIME_APIS__??o())});
@@ -1,8 +1,8 @@
1
- import{f as ce,r as F,j as r}from"./vendor-react-BUCujlKS.js";import{jy as Ie,f as se,w as me,h as de,ar as he,a4 as Me,cZ as pe,I as Y,B as te,d2 as ge,d4 as xe,cY as we,d3 as Ce,d1 as ye,R as Ne,aq as ve,as as je,ap as be,cc as De,K as le,jz as Ae,Z as He,cy as Ke,aD as Pe,ca as ke,jA as Te,cb as Ve,jB as We,jC as _e}from"./useAppFontEffects-khZXpFL_.js";import{d as Be}from"./runtimeEndpointReset-DhlHCn-2.js";import{u as qe,a1 as ze,a as X}from"./index-Cbci4i1W.js";import{c as Se,p as Ge}from"./vendor-zustand-BAGL70zf.js";import{p as Je}from"./VirtualizedFileDiff-0pyr_mHY.js";function Qe(s,e=10){const n=[];let t;for(const a of s.split(`
1
+ import{f as ce,r as F,j as r}from"./vendor-react-BUCujlKS.js";import{k0 as Ie,f as se,w as me,h as de,au as he,a7 as He,d0 as pe,I as Y,B as te,d5 as ge,d7 as xe,c$ as we,d6 as Ce,d4 as ve,R as ye,at as Ne,av as je,as as be,ce as Ae,K as le,k1 as De,_ as Me,cA as Ke,aH as ke,cc as Pe,k2 as Te,cd as _e,k3 as Ve,k4 as We}from"./useAppFontEffects-Ci3FEaPf.js";import{f as Be}from"./runtimeEndpointReset-CsIpUep1.js";import{u as qe,a0 as ze,a as X}from"./index-CvLgnuNI.js";import{c as Se,p as Ge}from"./vendor-zustand-BAGL70zf.js";import{p as Je}from"./VirtualizedFileDiff-C763hNCR.js";function Qe(s,e=10){const n=[];let t;for(const a of s.split(`
2
2
  `)){const h=a.match(Ie);if(h!=null){t!=null&&(t.hunkLines.length>0&&(oe(t,e,"trailing"),ue(t,n)),t=void 0);const o=parseInt(h[3]),c=parseInt(h[1]),m=parseInt(h[4]??"1"),l=parseInt(h[2]??"1");isNaN(o)||isNaN(c)||isNaN(m)||isNaN(l)?n.push(a):t={additionStart:o,deletionStart:c,additionCount:0,deletionCount:0,hunkLines:[],contextLines:[]};continue}if(t==null){n.push(a);continue}if(a.startsWith(" "))t.contextLines.push(a);else if(a!==""){if(t.hunkLines.length>0&&t.contextLines.length>e*2){const o=t.contextLines.length-e*2,c=t.contextLines.slice(-e);oe(t,e,"trailing");const{additionCount:m,deletionCount:l}=t;ue(t,n),t={additionStart:t.additionStart+m+o,deletionStart:t.deletionStart+l+o,deletionCount:0,additionCount:0,contextLines:c,hunkLines:[]}}oe(t,e,t.hunkLines.length===0?"leading":"before-change"),t.hunkLines.push(a),a.startsWith("+")?t.additionCount+=1:a.startsWith("-")&&(t.deletionCount+=1)}}t!=null&&t.hunkLines.length>0&&(oe(t,e,"trailing"),ue(t,n));const i=n.join(`
3
3
  `);return s.endsWith(`
4
4
  `)?`${i}
5
- `:i}function oe(s,e,n){if(n==="leading"&&s.contextLines.length>e){const t=s.contextLines.length-e;s.contextLines.splice(0,t),s.additionStart+=t,s.deletionStart+=t}return n==="trailing"&&s.contextLines.length>e&&(s.contextLines.length=e),s.contextLines.length>0&&(s.hunkLines.push(...s.contextLines),s.additionCount+=s.contextLines.length,s.deletionCount+=s.contextLines.length,s.contextLines.length=0),s}function ue(s,e){e.push(`@@ -${Re(s.deletionStart,s.deletionCount)} +${Re(s.additionStart,s.additionCount)} @@`),e.push(...s.hunkLines)}function Re(s,e){return e===1?`${s}`:`${s},${e}`}function yt(s){const e=ce.c(74),{branches:n,currentBranch:t,base:i,onSelect:a,mobile:h}=s,o=h===void 0?!1:h,{t:c}=se(),m=me(),l=o&&!m.enabled,[x,C]=F.useState(!1),[w,j]=F.useState("");let g;e[0]!==i||e[1]!==c?(g=i?Be(i):c("gitView.pr.field.baseBranch"),e[0]=i,e[1]=c,e[2]=g):g=e[2];const u=g;let b;e[3]===Symbol.for("react.memo_cache_sentinel")?(b=E=>{C(E),E||j("")},e[3]=b):b=e[3];const S=b;let d;e[4]!==o?(d=de(he({size:o?"default":"sm"}),"min-w-0 max-w-48"),e[4]=o,e[5]=d):d=e[5];const k=o||void 0;let N;e[6]!==c?(N=c("gitView.pr.field.baseBranch"),e[6]=c,e[7]=N):N=e[7];const M=l?"dialog":void 0,L=l?x:void 0,H=!t;let P;e[8]!==l?(P=l?()=>S(!0):void 0,e[8]=l,e[9]=P):P=e[9];let B;e[10]===Symbol.for("react.memo_cache_sentinel")?(B=r.jsx(Y,{name:"git-branch",className:"size-3.5"}),e[10]=B):B=e[10];let O;e[11]!==u?(O=r.jsx("span",{className:"truncate",children:u}),e[11]=u,e[12]=O):O=e[12];let y;e[13]===Symbol.for("react.memo_cache_sentinel")?(y=r.jsx(Y,{name:"arrow-down-s",className:"size-3.5"}),e[13]=y):y=e[13];let f;e[14]!==u||e[15]!==P||e[16]!==O||e[17]!==d||e[18]!==k||e[19]!==N||e[20]!==M||e[21]!==L||e[22]!==H?(f=r.jsxs(te,{variant:"outline",className:d,"data-mobile-comparison-trigger":k,"aria-label":N,"aria-haspopup":M,"aria-expanded":L,title:u,disabled:H,onClick:P,children:[B,O,y]}),e[14]=u,e[15]=P,e[16]=O,e[17]=d,e[18]=k,e[19]=N,e[20]=M,e[21]=L,e[22]=H,e[23]=f):f=e[23];const K=f,W=o?"[&_[data-slot=command-input-wrapper]]:h-11":void 0,I=!l,$=o?"h-11":void 0;let T;e[24]!==c?(T=c("gitView.branch.searchPlaceholder"),e[24]=c,e[25]=T):T=e[25];let z;e[26]!==c?(z=c("gitView.branch.searchPlaceholder"),e[26]=c,e[27]=z):z=e[27];let A;e[28]!==w||e[29]!==I||e[30]!==$||e[31]!==T||e[32]!==z?(A=r.jsx(ge,{autoFocus:I,className:$,value:w,onValueChange:j,placeholder:T,"aria-label":z}),e[28]=w,e[29]=I,e[30]=$,e[31]=T,e[32]=z,e[33]=A):A=e[33];const R=o?"max-h-[min(45dvh,24rem)]":void 0;let V;e[34]!==c?(V=c("gitView.branch.empty"),e[34]=c,e[35]=V):V=e[35];let _;e[36]!==V?(_=r.jsx(xe,{children:V}),e[36]=V,e[37]=_):_=e[37];let p;e[38]!==i||e[39]!==n||e[40]!==t||e[41]!==o||e[42]!==a||e[43]!==x||e[44]!==w?(p=x&&Me([...new Set(n)].filter(E=>E!==t).sort().map(Xe),w,Ue).map(E=>r.jsxs(pe,{value:E.ref,className:o?"min-h-11":void 0,onSelect:()=>{a(E.ref),S(!1)},children:[r.jsx("span",{className:"min-w-0 flex-1 truncate",title:E.ref,children:E.label}),(E.ref===i||E.label===i)&&r.jsx(Y,{name:"check",className:"size-3.5"})]},E.ref)),e[38]=i,e[39]=n,e[40]=t,e[41]=o,e[42]=a,e[43]=x,e[44]=w,e[45]=p):p=e[45];let D;e[46]!==p?(D=r.jsx(we,{children:p}),e[46]=p,e[47]=D):D=e[47];let q;e[48]!==R||e[49]!==_||e[50]!==D?(q=r.jsxs(Ce,{className:R,children:[_,D]}),e[48]=R,e[49]=_,e[50]=D,e[51]=q):q=e[51];let J;e[52]!==W||e[53]!==A||e[54]!==q?(J=r.jsxs(ye,{shouldFilter:!1,className:W,onKeyDown:Ye,children:[A,q]}),e[52]=W,e[53]=A,e[54]=q,e[55]=J):J=e[55];const Q=J;if(l){let E;e[56]!==c?(E=c("gitView.pr.field.baseBranch"),e[56]=c,e[57]=E):E=e[57];let ne;e[58]===Symbol.for("react.memo_cache_sentinel")?(ne=()=>S(!1),e[58]=ne):ne=e[58];let ee;e[59]!==x||e[60]!==Q||e[61]!==E?(ee=r.jsx(Ne,{open:x,title:E,onClose:ne,children:Q}),e[59]=x,e[60]=Q,e[61]=E,e[62]=ee):ee=e[62];let ie;return e[63]!==ee||e[64]!==K?(ie=r.jsxs(r.Fragment,{children:[K,ee]}),e[63]=ee,e[64]=K,e[65]=ie):ie=e[65],ie}let v;e[66]!==K?(v=r.jsx(ve,{asChild:!0,children:K}),e[66]=K,e[67]=v):v=e[67];let G;e[68]!==Q?(G=r.jsx(je,{align:"start",className:"w-72 max-w-[calc(100vw-2rem)] p-0",children:Q}),e[68]=Q,e[69]=G):G=e[69];let U;return e[70]!==x||e[71]!==v||e[72]!==G?(U=r.jsxs(be,{open:x,onOpenChange:S,children:[v,G]}),e[70]=x,e[71]=v,e[72]=G,e[73]=U):U=e[73],U}function Ue(s){return[s.label]}function Xe(s){return{ref:s.startsWith("remotes/")?`refs/${s}`:`refs/heads/${s}`,label:Be(s)}}function Ye(s){s.key!=="Escape"&&s.stopPropagation()}function Nt(s){const e=ce.c(77),{commits:n,selectedHash:t,loading:i,error:a,onSelect:h,onRefresh:o,mobile:c}=s,m=c===void 0?!1:c,{t:l}=se(),x=me(),C=m&&!x.enabled,w=qe(tt),[j,g]=F.useState(!1),[u,b]=F.useState("");let S;e[0]!==i||e[1]!==o?(S=v=>{g(v),v?i||o():b("")},e[0]=i,e[1]=o,e[2]=S):S=e[2];const d=S;let k;e[3]!==m?(k=de(he({size:m?"default":"sm"}),"min-w-0 max-w-48"),e[3]=m,e[4]=k):k=e[4];const N=m||void 0;let M;e[5]!==d||e[6]!==C?(M=C?()=>d(!0):void 0,e[5]=d,e[6]=C,e[7]=M):M=e[7];const L=C?"dialog":void 0,H=C?j:void 0;let P;e[8]!==l?(P=l("commitComparison.select"),e[8]=l,e[9]=P):P=e[9];let B;e[10]!==t||e[11]!==l?(B=t??l("commitComparison.select"),e[10]=t,e[11]=l,e[12]=B):B=e[12];let O;e[13]===Symbol.for("react.memo_cache_sentinel")?(O=r.jsx(Y,{name:"git-commit",className:"size-3.5"}),e[13]=O):O=e[13];let y;e[14]!==t||e[15]!==l?(y=t?.slice(0,8)??l("commitComparison.select"),e[14]=t,e[15]=l,e[16]=y):y=e[16];let f;e[17]!==y?(f=r.jsx("span",{className:"truncate",children:y}),e[17]=y,e[18]=f):f=e[18];let K;e[19]===Symbol.for("react.memo_cache_sentinel")?(K=r.jsx(Y,{name:"arrow-down-s",className:"size-3.5"}),e[19]=K):K=e[19];let W;e[20]!==f||e[21]!==k||e[22]!==N||e[23]!==M||e[24]!==L||e[25]!==H||e[26]!==P||e[27]!==B?(W=r.jsxs(te,{variant:"outline",className:k,"data-mobile-comparison-trigger":N,onClick:M,"aria-haspopup":L,"aria-expanded":H,"aria-label":P,title:B,children:[O,f,K]}),e[20]=f,e[21]=k,e[22]=N,e[23]=M,e[24]=L,e[25]=H,e[26]=P,e[27]=B,e[28]=W):W=e[28];const I=W,$=m?"[&_[data-slot=command-input-wrapper]]:h-11":void 0,T=!C,z=m?"h-11":void 0;let A;e[29]!==l?(A=l("commitComparison.search"),e[29]=l,e[30]=A):A=e[30];let R;e[31]!==l?(R=l("commitComparison.search"),e[31]=l,e[32]=R):R=e[32];let V;e[33]!==u||e[34]!==T||e[35]!==z||e[36]!==A||e[37]!==R?(V=r.jsx(ge,{autoFocus:T,className:z,value:u,onValueChange:b,placeholder:A,"aria-label":R}),e[33]=u,e[34]=T,e[35]=z,e[36]=A,e[37]=R,e[38]=V):V=e[38];let _;e[39]!==d||e[40]!==n||e[41]!==a||e[42]!==i||e[43]!==m||e[44]!==o||e[45]!==h||e[46]!==j||e[47]!==u||e[48]!==t||e[49]!==l||e[50]!==w?(_=i?r.jsxs("div",{className:"flex items-center justify-center gap-2 p-4 typography-meta text-muted-foreground",children:[r.jsx(Y,{name:"loader-4",className:"size-4 animate-spin"}),l("diffView.state.loadingChanges")]}):a?r.jsxs("div",{className:"flex flex-col items-center gap-2 p-4 typography-meta text-muted-foreground",children:[r.jsx("span",{children:l("commitComparison.loadError")}),r.jsx("span",{className:"max-w-full break-words",children:a}),r.jsx(te,{variant:"outline",size:m?"lg":"sm",onClick:o,children:l("diffView.actions.retry")})]}):r.jsxs(Ce,{className:m?"max-h-[min(45dvh,24rem)]":void 0,children:[r.jsx(xe,{children:l("commitComparison.noCommits")}),r.jsx(we,{children:j&&Me(n,u,Ze).map(v=>r.jsxs(pe,{value:v.hash,className:m?"min-h-11":void 0,onSelect:()=>{h(v),d(!1)},children:[r.jsxs("div",{className:"min-w-0 flex-1",children:[r.jsx("div",{className:"truncate typography-ui-label font-semibold",title:v.message,children:v.message}),r.jsxs("div",{className:"flex min-w-0 gap-1 typography-meta text-muted-foreground",children:[r.jsxs("span",{className:"min-w-0 truncate",children:[v.author_name," · ",Number.isNaN(new Date(v.date).getTime())?v.date:De(new Date(v.date),w,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})]}),r.jsxs("span",{className:"shrink-0",children:["· ",v.hash.slice(0,8)]})]})]}),v.hash===t&&r.jsx(Y,{name:"check",className:"size-3.5"})]},v.hash))})]}),e[39]=d,e[40]=n,e[41]=a,e[42]=i,e[43]=m,e[44]=o,e[45]=h,e[46]=j,e[47]=u,e[48]=t,e[49]=l,e[50]=w,e[51]=_):_=e[51];let p;e[52]!==$||e[53]!==V||e[54]!==_?(p=r.jsxs(ye,{shouldFilter:!1,className:$,onKeyDown:et,children:[V,_]}),e[52]=$,e[53]=V,e[54]=_,e[55]=p):p=e[55];const D=p;if(C){let v;e[56]!==l?(v=l("commitComparison.select"),e[56]=l,e[57]=v):v=e[57];let G;e[58]!==d?(G=()=>d(!1),e[58]=d,e[59]=G):G=e[59];let U;e[60]!==j||e[61]!==D||e[62]!==v||e[63]!==G?(U=r.jsx(Ne,{open:j,title:v,onClose:G,children:D}),e[60]=j,e[61]=D,e[62]=v,e[63]=G,e[64]=U):U=e[64];let E;return e[65]!==U||e[66]!==I?(E=r.jsxs(r.Fragment,{children:[I,U]}),e[65]=U,e[66]=I,e[67]=E):E=e[67],E}let q;e[68]!==I?(q=r.jsx(ve,{asChild:!0,children:I}),e[68]=I,e[69]=q):q=e[69];let J;e[70]!==D?(J=r.jsx(je,{align:"start",className:"w-[32rem] max-w-[calc(100vw-2rem)] p-0",children:D}),e[70]=D,e[71]=J):J=e[71];let Q;return e[72]!==d||e[73]!==j||e[74]!==q||e[75]!==J?(Q=r.jsxs(be,{open:j,onOpenChange:d,children:[q,J]}),e[72]=d,e[73]=j,e[74]=q,e[75]=J,e[76]=Q):Q=e[76],Q}function Ze(s){return[s.message,s.author_name,s.hash]}function et(s){s.key!=="Escape"&&s.stopPropagation()}function tt(s){return s.timeFormatPreference}const st="openchamber.git-base-branch",nt=100,ae=(s,e)=>JSON.stringify([X(),s,e]),it=Se()(Ge((s,e)=>({overrides:{},getOverride:(n,t)=>!n||!t?null:e().overrides[ae(n,t)]??null,setOverride:(n,t,i)=>{!n||!t||!i||s(a=>{const h=ae(n,t),o=Object.entries({...a.overrides,[h]:i});for(;o.length>nt;)o.shift();return{overrides:Object.fromEntries(o)}})},clearOverride:(n,t)=>{!n||!t||s(i=>{const a=ae(n,t);if(!(a in i.overrides))return i;const h={...i.overrides};return delete h[a],{overrides:h}})}}),{name:st,storage:ze(),partialize:s=>({overrides:s.overrides})}));function vt(s,e,n){const t=ce.c(32),i=le(ot);let a;t[0]!==s||t[1]!==n?(a=N=>n&&s?N.directories.get(s)?.lastStatusFetch??0:0,t[0]=s,t[1]=n,t[2]=a):a=t[2];const h=le(a);let o;t[3]!==e||t[4]!==s||t[5]!==i?(o=JSON.stringify([i,s,e]),t[3]=e,t[4]=s,t[5]=i,t[6]=o):o=t[6];const c=o;let m;t[7]!==e||t[8]!==s?(m=s&&e?ae(s,e):null,t[7]=e,t[8]=s,t[9]=m):m=t[9];const l=m;let x;t[10]!==l?(x=N=>l?N.overrides[l]??null:null,t[10]=l,t[11]=x):x=t[11];const C=it(x),[w,j]=F.useState(null);let g;t[12]!==e||t[13]!==s||t[14]!==n||t[15]!==c||t[16]!==C?(g=()=>{if(!n||!s||!e||C)return;let N=!1;const M=X();return Ae(s,e).then(L=>{const{base:H}=L;N||X()!==M||j(P=>P?.key===c&&P.base===H?P:{key:c,base:H})}).catch(()=>{N||X()!==M||j(L=>L?.key===c?L:{key:c,base:null})}),()=>{N=!0}},t[12]=e,t[13]=s,t[14]=n,t[15]=c,t[16]=C,t[17]=g):g=t[17];let u;t[18]!==e||t[19]!==s||t[20]!==n||t[21]!==c||t[22]!==C||t[23]!==h?(u=[e,s,n,c,C,h],t[18]=e,t[19]=s,t[20]=n,t[21]=c,t[22]=C,t[23]=h,t[24]=u):u=t[24],F.useEffect(g,u);const b=C??(w?.key===c?w.base:null),S=!!C||w?.key===c;let d;t[25]!==i||t[26]!==h?(d=JSON.stringify([i,h]),t[25]=i,t[26]=h,t[27]=d):d=t[27];let k;return t[28]!==b||t[29]!==S||t[30]!==d?(k={base:b,resolved:S,revision:d},t[28]=b,t[29]=S,t[30]=d,t[31]=k):k=t[31],k}function ot(s){return s.runtimeKey}const rt=(s,e,n=X())=>JSON.stringify([n,s,e]),fe=Se(s=>({selections:new Map,select:(e,n)=>s(t=>{const i=new Map(t.selections);if(i.delete(e),i.set(e,n),i.size>100){const a=i.keys().next().value;a!==void 0&&i.delete(a)}return{selections:i}})})),at=[];function jt(s,e,n,t){const{git:i}=He(),{t:a}=se(),h=le(u=>u.runtimeKey),o=rt(s??"",e,h),c=fe(u=>u.selections.get(o)??null),m=fe(u=>u.select),[l,x]=F.useState(null),C=F.useRef(0),w=F.useRef(t);w.current=t;const j=F.useCallback(async()=>{if(!s||!n)return;const u=++C.current,b=X();x({key:o,status:"loading"});try{const S=await i.getGitLog(s,{maxCount:50,to:e?`refs/heads/${e}`:"HEAD"});if(C.current!==u||X()!==b)return;const d=S.all.slice(0,50);if(x({key:o,status:"ready",commits:d}),!fe.getState().selections.has(o)){const k=w.current?d.find(N=>N.hash===w.current):d[0];k&&m(o,k)}}catch(S){if(C.current!==u||X()!==b)return;x({key:o,status:"error",message:S instanceof Error?S.message:a("commitComparison.loadError")})}},[e,s,n,i,o,m,a]);F.useEffect(()=>(j(),()=>{C.current+=1}),[j]);const g=l?.key===o?l:null;return{selectedCommit:c,commits:g?.status==="ready"?g.commits:at,loading:n&&(!g||g.status==="loading"),error:g?.status==="error"?g.message:null,refresh:j,select:u=>m(o,u)}}const Le=(s,e,n)=>{const t=new Map(s.selections);if(t.delete(e),t.set(e,n),t.size>100){const i=t.keys().next().value;i!==void 0&&t.delete(i)}return{selections:t}},re=Se(s=>({selections:new Map,select:(e,n)=>s(t=>Le(t,e,{source:n,handoff:t.selections.get(e)?.handoff??null})),acceptHandoff:(e,n)=>s(t=>t.selections.get(e)?.handoff===n?t:Le(t,e,{source:n,handoff:n}))})),lt=[];function bt(s,e,n,t){const{github:i}=He(),{t:a}=se(),h=le(f=>f.runtimeKey),o=JSON.stringify([h,s,e]),c=re(f=>f.selections.get(o)??null),m=c?.source??null,l=re(f=>f.select),x=re(f=>f.acceptHandoff),C=t&&c?.handoff!==t?t:null,[w,j]=F.useState(""),g=Ke(w,350).trim(),u=JSON.stringify([o,g]),[b,S]=F.useState(null),d=F.useRef(b);d.current=b;const[k,N]=F.useState(!1),M=F.useRef(0),L=F.useRef({key:u,enabled:n});L.current={key:u,enabled:n};const H=Pe(f=>f.status?.connected??!1),P=Pe(f=>f.hasChecked),B=ke(f=>s&&e?Te(f.entries,s,e):null);F.useEffect(()=>{if(!n||!s||!e||m||!P||!H)return;const f=ke.getState(),K=Ve(s,e);f.ensureEntry(K),f.setParams(K,{directory:s,branch:e,remoteName:null,canShow:!0,github:i,githubAuthChecked:P,githubConnected:H}),f.refreshTargets([{directory:s,branch:e,remoteName:null}])},[e,s,n,i,P,H,m]),F.useEffect(()=>{!n||!H||!B?.pr||!B.repo||re.getState().selections.has(o)||l(o,{kind:"pr",number:B.pr.number,sourceRepo:{owner:B.repo.owner,repo:B.repo.repo}})},[B,n,H,l,o]),F.useEffect(()=>{t&&x(o,t)},[x,t,o]);const O=F.useCallback(async f=>{if(!s||!n||L.current.key!==u||!L.current.enabled)return;const K=++M.current,W=X();f?N(!0):(N(!1),S({key:u,status:"loading"}));try{if(!i)throw new Error(a("session.githubPrPicker.error.runtimeUnavailable"));const I=f?f.page+1:1,$=await i.prsList(s,{page:I,query:g||void 0});if(!$.connected)throw new Error(a("session.githubPrPicker.empty.notConnected"));if(!$.prs||!$.repo)throw new Error(a("session.githubPrPicker.error.repoNotResolvable"));if(M.current!==K||X()!==W||L.current.key!==u||!L.current.enabled)return;const T=$.repo,z=$.prs.map(R=>({...R,sourceRepo:R.sourceRepo??{owner:T.owner,repo:T.repo,source:"repository"}})),A=new Map([...f?.prs??[],...z].map(R=>[`${R.sourceRepo?.owner}/${R.sourceRepo?.repo}#${R.number}`,R]));S({key:u,status:"ready",prs:[...A.values()],page:I,hasMore:!!$.hasMore,error:null})}catch(I){if(M.current===K&&X()===W&&L.current.key===u&&L.current.enabled){const $=I instanceof Error?I.message:a("session.githubPrPicker.toast.loadMoreFailed");S(f?{...f,error:$}:{key:u,status:"error",message:$})}}finally{M.current===K&&N(!1)}},[s,n,i,u,g,a]);F.useEffect(()=>((d.current?.key!==u||d.current.status!=="ready")&&O(),()=>{M.current+=1}),[u,O]);const y=b?.key===u?b:null;return{enabled:n,selectedSource:C??m,prs:y?.status==="ready"?y.prs:lt,query:w,setQuery:j,loading:n&&(!y||y.status==="loading"||g!==w.trim()),loadingMore:k,hasMore:y?.status==="ready"&&y.hasMore,error:y?.status==="error"?y.message:y?.status==="ready"?y.error:null,refresh:()=>O(),loadMore:()=>y?.status==="ready"&&y.hasMore&&!k?O(y):Promise.resolve(),select:f=>{f.sourceRepo&&l(o,{kind:"pr",number:f.number,sourceRepo:{owner:f.sourceRepo.owner,repo:f.sourceRepo.repo}})}}}function St(s){const e=ce.c(63),{comparison:n,mobile:t}=s,i=t===void 0?!1:t,{t:a}=se(),h=me(),o=i&&!h.enabled,[c,m]=F.useState(!1);let l,x;e[0]!==n.enabled?(l=()=>{n.enabled||m(!1)},x=[n.enabled],e[0]=n.enabled,e[1]=l,e[2]=x):(l=e[1],x=e[2]),F.useEffect(l,x);let C;e[3]!==a?(C=a("pullRequestComparison.select"),e[3]=a,e[4]=C):C=e[4];const w=C;let j;e[5]!==n?(j=p=>{m(p),p&&!n.loading&&n.refresh(),p||n.setQuery("")},e[5]=n,e[6]=j):j=e[6];const g=j,u=n.selectedSource;let b;e[7]!==i?(b=de(he({size:i?"default":"sm"}),"min-w-0 max-w-48"),e[7]=i,e[8]=b):b=e[8];const S=i||void 0;let d;e[9]!==g||e[10]!==o?(d=o?()=>g(!0):void 0,e[9]=g,e[10]=o,e[11]=d):d=e[11];const k=o?"dialog":void 0,N=o?c:void 0,M=u?.sourceRepo?`${u.sourceRepo.owner}/${u.sourceRepo.repo} #${u.number}`:w,L=u?`#${u.number}`:w;let H;e[12]!==L?(H=r.jsx("span",{className:"truncate",children:L}),e[12]=L,e[13]=H):H=e[13];let P;e[14]===Symbol.for("react.memo_cache_sentinel")?(P=r.jsx(Y,{name:"arrow-down-s",className:"size-3.5"}),e[14]=P):P=e[14];let B;e[15]!==w||e[16]!==N||e[17]!==M||e[18]!==H||e[19]!==b||e[20]!==S||e[21]!==d||e[22]!==k?(B=r.jsxs(te,{variant:"outline",className:b,"data-mobile-comparison-trigger":S,onClick:d,"aria-haspopup":k,"aria-expanded":N,"aria-label":w,title:M,children:[H,P]}),e[15]=w,e[16]=N,e[17]=M,e[18]=H,e[19]=b,e[20]=S,e[21]=d,e[22]=k,e[23]=B):B=e[23];const O=B,y=!o,f=n.query,K=n.setQuery;let W;e[24]!==a?(W=a("session.githubPrPicker.searchPlaceholder"),e[24]=a,e[25]=W):W=e[25];let I;e[26]!==a?(I=a("session.githubPrPicker.searchPlaceholder"),e[26]=a,e[27]=I):I=e[27];let $;e[28]!==n.query||e[29]!==n.setQuery||e[30]!==y||e[31]!==W||e[32]!==I?($=r.jsx(ge,{autoFocus:y,value:f,onValueChange:K,placeholder:W,"aria-label":I}),e[28]=n.query,e[29]=n.setQuery,e[30]=y,e[31]=W,e[32]=I,e[33]=$):$=e[33];let T;e[34]!==g||e[35]!==n||e[36]!==i||e[37]!==c||e[38]!==u||e[39]!==a?(T=n.loading?r.jsxs("div",{className:"flex items-center gap-2 p-4 typography-meta text-muted-foreground",children:[r.jsx(Y,{name:"loader-4",className:"size-4 animate-spin"}),a("session.githubPrPicker.loading.pullRequests")]}):n.error&&n.prs.length===0?r.jsxs("div",{className:"flex flex-col items-center gap-2 p-4 typography-meta text-muted-foreground",children:[r.jsx("span",{children:n.error}),r.jsx(te,{variant:"outline",size:"sm",onClick:()=>{n.refresh()},children:a("diffView.actions.retry")})]}):r.jsxs(Ce,{className:i?"max-h-[min(45dvh,24rem)]":void 0,children:[r.jsx(xe,{children:a("session.githubPrPicker.empty.noPullRequestsFound")}),r.jsx(we,{children:c&&n.prs.map(p=>{const D=`${p.sourceRepo?.owner}/${p.sourceRepo?.repo}#${p.number}`;return r.jsxs(pe,{value:D,className:i?"min-h-11":void 0,onSelect:()=>{n.select(p),g(!1)},children:[r.jsxs("div",{className:"min-w-0 flex-1",children:[r.jsxs("div",{className:"truncate typography-ui-label",title:p.title,children:["#",p.number," ",p.title]}),r.jsxs("div",{className:"truncate typography-meta text-muted-foreground",children:[p.sourceRepo?.owner,"/",p.sourceRepo?.repo," · ",p.head," → ",p.base]})]}),u?.number===p.number&&u.sourceRepo?.owner===p.sourceRepo?.owner&&u.sourceRepo?.repo===p.sourceRepo?.repo&&r.jsx(Y,{name:"check",className:"size-3.5"})]},D)})}),n.error&&r.jsx("p",{className:"px-3 py-2 typography-meta text-muted-foreground",children:n.error}),n.hasMore&&r.jsx(te,{variant:"ghost",size:"sm",disabled:n.loadingMore,onClick:()=>{n.loadMore()},children:n.error?a("diffView.actions.retry"):a("session.githubPrPicker.actions.loadMore")})]}),e[34]=g,e[35]=n,e[36]=i,e[37]=c,e[38]=u,e[39]=a,e[40]=T):T=e[40];let z;e[41]!==$||e[42]!==T?(z=r.jsxs(ye,{shouldFilter:!1,onKeyDown:ct,children:[$,T]}),e[41]=$,e[42]=T,e[43]=z):z=e[43];const A=z;if(o){let p;e[44]!==g?(p=()=>g(!1),e[44]=g,e[45]=p):p=e[45];let D;e[46]!==w||e[47]!==c||e[48]!==A||e[49]!==p?(D=r.jsx(Ne,{open:c,title:w,onClose:p,children:A}),e[46]=w,e[47]=c,e[48]=A,e[49]=p,e[50]=D):D=e[50];let q;return e[51]!==D||e[52]!==O?(q=r.jsxs(r.Fragment,{children:[O,D]}),e[51]=D,e[52]=O,e[53]=q):q=e[53],q}let R;e[54]!==O?(R=r.jsx(ve,{asChild:!0,children:O}),e[54]=O,e[55]=R):R=e[55];let V;e[56]!==A?(V=r.jsx(je,{align:"start",className:"w-[32rem] max-w-[calc(100vw-2rem)] p-0",children:A}),e[56]=A,e[57]=V):V=e[57];let _;return e[58]!==g||e[59]!==c||e[60]!==R||e[61]!==V?(_=r.jsxs(be,{open:c,onOpenChange:g,children:[R,V]}),e[58]=g,e[59]=c,e[60]=R,e[61]=V,e[62]=_):_=e[62],_}function ct(s){s.key!=="Escape"&&s.stopPropagation()}const ut=64,ft=3,Z=new Map,Pt=s=>/^Binary files .+ differ$/m.test(s)||/^GIT binary patch$/m.test(s),$e=s=>{const e=s.search(/^@@\s/m);if(e<0)return null;const n=s.slice(0,e);return/^index (?:[a-f0-9]{40}|[a-f0-9]{64})\.\.(?:[a-f0-9]{40}|[a-f0-9]{64})(?: [0-7]+)?$/m.test(n)?n:null},kt=(s,e)=>{const n=$e(s);return n!==null&&n===$e(e)},Rt=(s,e,n=ft)=>{const t=`${s}\0${n}\0${e}`,i=Z.get(t);if(i)return Z.delete(t),Z.set(t,i),i;const a=dt(e),h=a?We(Qe(e,n),{oldFile:{name:s,contents:a.before},newFile:{name:s,contents:a.after}})??Fe(s):_e(mt(s,e))[0]?.files[0]??Fe(s);for(Z.set(t,h);Z.size>ut;){const o=Z.keys().next().value;if(!o)break;Z.delete(o)}return h},mt=(s,e)=>!e.trim()||e.startsWith("diff --git ")||/^--- [^\n]*\r?\n\+\+\+ /m.test(e)?e:`Index: ${s}
5
+ `:i}function oe(s,e,n){if(n==="leading"&&s.contextLines.length>e){const t=s.contextLines.length-e;s.contextLines.splice(0,t),s.additionStart+=t,s.deletionStart+=t}return n==="trailing"&&s.contextLines.length>e&&(s.contextLines.length=e),s.contextLines.length>0&&(s.hunkLines.push(...s.contextLines),s.additionCount+=s.contextLines.length,s.deletionCount+=s.contextLines.length,s.contextLines.length=0),s}function ue(s,e){e.push(`@@ -${Re(s.deletionStart,s.deletionCount)} +${Re(s.additionStart,s.additionCount)} @@`),e.push(...s.hunkLines)}function Re(s,e){return e===1?`${s}`:`${s},${e}`}function vt(s){const e=ce.c(74),{branches:n,currentBranch:t,base:i,onSelect:a,mobile:h}=s,o=h===void 0?!1:h,{t:c}=se(),m=me(),l=o&&!m.enabled,[x,C]=F.useState(!1),[w,j]=F.useState("");let g;e[0]!==i||e[1]!==c?(g=i?Be(i):c("gitView.pr.field.baseBranch"),e[0]=i,e[1]=c,e[2]=g):g=e[2];const u=g;let b;e[3]===Symbol.for("react.memo_cache_sentinel")?(b=E=>{C(E),E||j("")},e[3]=b):b=e[3];const S=b;let d;e[4]!==o?(d=de(he({size:o?"default":"sm"}),"min-w-0 max-w-48"),e[4]=o,e[5]=d):d=e[5];const P=o||void 0;let y;e[6]!==c?(y=c("gitView.pr.field.baseBranch"),e[6]=c,e[7]=y):y=e[7];const H=l?"dialog":void 0,L=l?x:void 0,M=!t;let k;e[8]!==l?(k=l?()=>S(!0):void 0,e[8]=l,e[9]=k):k=e[9];let B;e[10]===Symbol.for("react.memo_cache_sentinel")?(B=r.jsx(Y,{name:"git-branch",className:"size-3.5"}),e[10]=B):B=e[10];let O;e[11]!==u?(O=r.jsx("span",{className:"truncate",children:u}),e[11]=u,e[12]=O):O=e[12];let v;e[13]===Symbol.for("react.memo_cache_sentinel")?(v=r.jsx(Y,{name:"arrow-down-s",className:"size-3.5"}),e[13]=v):v=e[13];let f;e[14]!==u||e[15]!==k||e[16]!==O||e[17]!==d||e[18]!==P||e[19]!==y||e[20]!==H||e[21]!==L||e[22]!==M?(f=r.jsxs(te,{variant:"outline",className:d,"data-mobile-comparison-trigger":P,"aria-label":y,"aria-haspopup":H,"aria-expanded":L,title:u,disabled:M,onClick:k,children:[B,O,v]}),e[14]=u,e[15]=k,e[16]=O,e[17]=d,e[18]=P,e[19]=y,e[20]=H,e[21]=L,e[22]=M,e[23]=f):f=e[23];const K=f,V=o?"[&_[data-slot=command-input-wrapper]]:h-11":void 0,I=!l,$=o?"h-11":void 0;let T;e[24]!==c?(T=c("gitView.branch.searchPlaceholder"),e[24]=c,e[25]=T):T=e[25];let z;e[26]!==c?(z=c("gitView.branch.searchPlaceholder"),e[26]=c,e[27]=z):z=e[27];let D;e[28]!==w||e[29]!==I||e[30]!==$||e[31]!==T||e[32]!==z?(D=r.jsx(ge,{autoFocus:I,className:$,value:w,onValueChange:j,placeholder:T,"aria-label":z}),e[28]=w,e[29]=I,e[30]=$,e[31]=T,e[32]=z,e[33]=D):D=e[33];const R=o?"max-h-[min(45dvh,24rem)]":void 0;let _;e[34]!==c?(_=c("gitView.branch.empty"),e[34]=c,e[35]=_):_=e[35];let W;e[36]!==_?(W=r.jsx(xe,{children:_}),e[36]=_,e[37]=W):W=e[37];let p;e[38]!==i||e[39]!==n||e[40]!==t||e[41]!==o||e[42]!==a||e[43]!==x||e[44]!==w?(p=x&&He([...new Set(n)].filter(E=>E!==t).sort().map(Xe),w,Ue).map(E=>r.jsxs(pe,{value:E.ref,className:o?"min-h-11":void 0,onSelect:()=>{a(E.ref),S(!1)},children:[r.jsx("span",{className:"min-w-0 flex-1 truncate",title:E.ref,children:E.label}),(E.ref===i||E.label===i)&&r.jsx(Y,{name:"check",className:"size-3.5"})]},E.ref)),e[38]=i,e[39]=n,e[40]=t,e[41]=o,e[42]=a,e[43]=x,e[44]=w,e[45]=p):p=e[45];let A;e[46]!==p?(A=r.jsx(we,{children:p}),e[46]=p,e[47]=A):A=e[47];let q;e[48]!==R||e[49]!==W||e[50]!==A?(q=r.jsxs(Ce,{className:R,children:[W,A]}),e[48]=R,e[49]=W,e[50]=A,e[51]=q):q=e[51];let J;e[52]!==V||e[53]!==D||e[54]!==q?(J=r.jsxs(ve,{shouldFilter:!1,className:V,onKeyDown:Ye,children:[D,q]}),e[52]=V,e[53]=D,e[54]=q,e[55]=J):J=e[55];const Q=J;if(l){let E;e[56]!==c?(E=c("gitView.pr.field.baseBranch"),e[56]=c,e[57]=E):E=e[57];let ne;e[58]===Symbol.for("react.memo_cache_sentinel")?(ne=()=>S(!1),e[58]=ne):ne=e[58];let ee;e[59]!==x||e[60]!==Q||e[61]!==E?(ee=r.jsx(ye,{open:x,title:E,onClose:ne,children:Q}),e[59]=x,e[60]=Q,e[61]=E,e[62]=ee):ee=e[62];let ie;return e[63]!==ee||e[64]!==K?(ie=r.jsxs(r.Fragment,{children:[K,ee]}),e[63]=ee,e[64]=K,e[65]=ie):ie=e[65],ie}let N;e[66]!==K?(N=r.jsx(Ne,{asChild:!0,children:K}),e[66]=K,e[67]=N):N=e[67];let G;e[68]!==Q?(G=r.jsx(je,{align:"start",className:"w-72 max-w-[calc(100vw-2rem)] p-0",children:Q}),e[68]=Q,e[69]=G):G=e[69];let U;return e[70]!==x||e[71]!==N||e[72]!==G?(U=r.jsxs(be,{open:x,onOpenChange:S,children:[N,G]}),e[70]=x,e[71]=N,e[72]=G,e[73]=U):U=e[73],U}function Ue(s){return[s.label]}function Xe(s){return{ref:s.startsWith("remotes/")?`refs/${s}`:`refs/heads/${s}`,label:Be(s)}}function Ye(s){s.key!=="Escape"&&s.stopPropagation()}function yt(s){const e=ce.c(77),{commits:n,selectedHash:t,loading:i,error:a,onSelect:h,onRefresh:o,mobile:c}=s,m=c===void 0?!1:c,{t:l}=se(),x=me(),C=m&&!x.enabled,w=qe(tt),[j,g]=F.useState(!1),[u,b]=F.useState("");let S;e[0]!==i||e[1]!==o?(S=N=>{g(N),N?i||o():b("")},e[0]=i,e[1]=o,e[2]=S):S=e[2];const d=S;let P;e[3]!==m?(P=de(he({size:m?"default":"sm"}),"min-w-0 max-w-48"),e[3]=m,e[4]=P):P=e[4];const y=m||void 0;let H;e[5]!==d||e[6]!==C?(H=C?()=>d(!0):void 0,e[5]=d,e[6]=C,e[7]=H):H=e[7];const L=C?"dialog":void 0,M=C?j:void 0;let k;e[8]!==l?(k=l("commitComparison.select"),e[8]=l,e[9]=k):k=e[9];let B;e[10]!==t||e[11]!==l?(B=t??l("commitComparison.select"),e[10]=t,e[11]=l,e[12]=B):B=e[12];let O;e[13]===Symbol.for("react.memo_cache_sentinel")?(O=r.jsx(Y,{name:"git-commit",className:"size-3.5"}),e[13]=O):O=e[13];let v;e[14]!==t||e[15]!==l?(v=t?.slice(0,8)??l("commitComparison.select"),e[14]=t,e[15]=l,e[16]=v):v=e[16];let f;e[17]!==v?(f=r.jsx("span",{className:"truncate",children:v}),e[17]=v,e[18]=f):f=e[18];let K;e[19]===Symbol.for("react.memo_cache_sentinel")?(K=r.jsx(Y,{name:"arrow-down-s",className:"size-3.5"}),e[19]=K):K=e[19];let V;e[20]!==f||e[21]!==P||e[22]!==y||e[23]!==H||e[24]!==L||e[25]!==M||e[26]!==k||e[27]!==B?(V=r.jsxs(te,{variant:"outline",className:P,"data-mobile-comparison-trigger":y,onClick:H,"aria-haspopup":L,"aria-expanded":M,"aria-label":k,title:B,children:[O,f,K]}),e[20]=f,e[21]=P,e[22]=y,e[23]=H,e[24]=L,e[25]=M,e[26]=k,e[27]=B,e[28]=V):V=e[28];const I=V,$=m?"[&_[data-slot=command-input-wrapper]]:h-11":void 0,T=!C,z=m?"h-11":void 0;let D;e[29]!==l?(D=l("commitComparison.search"),e[29]=l,e[30]=D):D=e[30];let R;e[31]!==l?(R=l("commitComparison.search"),e[31]=l,e[32]=R):R=e[32];let _;e[33]!==u||e[34]!==T||e[35]!==z||e[36]!==D||e[37]!==R?(_=r.jsx(ge,{autoFocus:T,className:z,value:u,onValueChange:b,placeholder:D,"aria-label":R}),e[33]=u,e[34]=T,e[35]=z,e[36]=D,e[37]=R,e[38]=_):_=e[38];let W;e[39]!==d||e[40]!==n||e[41]!==a||e[42]!==i||e[43]!==m||e[44]!==o||e[45]!==h||e[46]!==j||e[47]!==u||e[48]!==t||e[49]!==l||e[50]!==w?(W=i?r.jsxs("div",{className:"flex items-center justify-center gap-2 p-4 typography-meta text-muted-foreground",children:[r.jsx(Y,{name:"loader-4",className:"size-4 animate-spin"}),l("diffView.state.loadingChanges")]}):a?r.jsxs("div",{className:"flex flex-col items-center gap-2 p-4 typography-meta text-muted-foreground",children:[r.jsx("span",{children:l("commitComparison.loadError")}),r.jsx("span",{className:"max-w-full break-words",children:a}),r.jsx(te,{variant:"outline",size:m?"lg":"sm",onClick:o,children:l("diffView.actions.retry")})]}):r.jsxs(Ce,{className:m?"max-h-[min(45dvh,24rem)]":void 0,children:[r.jsx(xe,{children:l("commitComparison.noCommits")}),r.jsx(we,{children:j&&He(n,u,Ze).map(N=>r.jsxs(pe,{value:N.hash,className:m?"min-h-11":void 0,onSelect:()=>{h(N),d(!1)},children:[r.jsxs("div",{className:"min-w-0 flex-1",children:[r.jsx("div",{className:"truncate typography-ui-label font-semibold",title:N.message,children:N.message}),r.jsxs("div",{className:"flex min-w-0 gap-1 typography-meta text-muted-foreground",children:[r.jsxs("span",{className:"min-w-0 truncate",children:[N.author_name," · ",Number.isNaN(new Date(N.date).getTime())?N.date:Ae(new Date(N.date),w,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})]}),r.jsxs("span",{className:"shrink-0",children:["· ",N.hash.slice(0,8)]})]})]}),N.hash===t&&r.jsx(Y,{name:"check",className:"size-3.5"})]},N.hash))})]}),e[39]=d,e[40]=n,e[41]=a,e[42]=i,e[43]=m,e[44]=o,e[45]=h,e[46]=j,e[47]=u,e[48]=t,e[49]=l,e[50]=w,e[51]=W):W=e[51];let p;e[52]!==$||e[53]!==_||e[54]!==W?(p=r.jsxs(ve,{shouldFilter:!1,className:$,onKeyDown:et,children:[_,W]}),e[52]=$,e[53]=_,e[54]=W,e[55]=p):p=e[55];const A=p;if(C){let N;e[56]!==l?(N=l("commitComparison.select"),e[56]=l,e[57]=N):N=e[57];let G;e[58]!==d?(G=()=>d(!1),e[58]=d,e[59]=G):G=e[59];let U;e[60]!==j||e[61]!==A||e[62]!==N||e[63]!==G?(U=r.jsx(ye,{open:j,title:N,onClose:G,children:A}),e[60]=j,e[61]=A,e[62]=N,e[63]=G,e[64]=U):U=e[64];let E;return e[65]!==U||e[66]!==I?(E=r.jsxs(r.Fragment,{children:[I,U]}),e[65]=U,e[66]=I,e[67]=E):E=e[67],E}let q;e[68]!==I?(q=r.jsx(Ne,{asChild:!0,children:I}),e[68]=I,e[69]=q):q=e[69];let J;e[70]!==A?(J=r.jsx(je,{align:"start",className:"w-[32rem] max-w-[calc(100vw-2rem)] p-0",children:A}),e[70]=A,e[71]=J):J=e[71];let Q;return e[72]!==d||e[73]!==j||e[74]!==q||e[75]!==J?(Q=r.jsxs(be,{open:j,onOpenChange:d,children:[q,J]}),e[72]=d,e[73]=j,e[74]=q,e[75]=J,e[76]=Q):Q=e[76],Q}function Ze(s){return[s.message,s.author_name,s.hash]}function et(s){s.key!=="Escape"&&s.stopPropagation()}function tt(s){return s.timeFormatPreference}const st="openchamber.git-base-branch",nt=100,ae=(s,e)=>JSON.stringify([X(),s,e]),it=Se()(Ge((s,e)=>({overrides:{},getOverride:(n,t)=>!n||!t?null:e().overrides[ae(n,t)]??null,setOverride:(n,t,i)=>{!n||!t||!i||s(a=>{const h=ae(n,t),o=Object.entries({...a.overrides,[h]:i});for(;o.length>nt;)o.shift();return{overrides:Object.fromEntries(o)}})},clearOverride:(n,t)=>{!n||!t||s(i=>{const a=ae(n,t);if(!(a in i.overrides))return i;const h={...i.overrides};return delete h[a],{overrides:h}})}}),{name:st,storage:ze(),partialize:s=>({overrides:s.overrides})}));function Nt(s,e,n){const t=ce.c(32),i=le(ot);let a;t[0]!==s||t[1]!==n?(a=y=>n&&s?y.directories.get(s)?.lastStatusFetch??0:0,t[0]=s,t[1]=n,t[2]=a):a=t[2];const h=le(a);let o;t[3]!==e||t[4]!==s||t[5]!==i?(o=JSON.stringify([i,s,e]),t[3]=e,t[4]=s,t[5]=i,t[6]=o):o=t[6];const c=o;let m;t[7]!==e||t[8]!==s?(m=s&&e?ae(s,e):null,t[7]=e,t[8]=s,t[9]=m):m=t[9];const l=m;let x;t[10]!==l?(x=y=>l?y.overrides[l]??null:null,t[10]=l,t[11]=x):x=t[11];const C=it(x),[w,j]=F.useState(null);let g;t[12]!==e||t[13]!==s||t[14]!==n||t[15]!==c||t[16]!==C?(g=()=>{if(!n||!s||!e||C)return;let y=!1;const H=X();return De(s,e).then(L=>{const{base:M}=L;y||X()!==H||j(k=>k?.key===c&&k.base===M?k:{key:c,base:M})}).catch(()=>{y||X()!==H||j(L=>L?.key===c?L:{key:c,base:null})}),()=>{y=!0}},t[12]=e,t[13]=s,t[14]=n,t[15]=c,t[16]=C,t[17]=g):g=t[17];let u;t[18]!==e||t[19]!==s||t[20]!==n||t[21]!==c||t[22]!==C||t[23]!==h?(u=[e,s,n,c,C,h],t[18]=e,t[19]=s,t[20]=n,t[21]=c,t[22]=C,t[23]=h,t[24]=u):u=t[24],F.useEffect(g,u);const b=C??(w?.key===c?w.base:null),S=!!C||w?.key===c;let d;t[25]!==i||t[26]!==h?(d=JSON.stringify([i,h]),t[25]=i,t[26]=h,t[27]=d):d=t[27];let P;return t[28]!==b||t[29]!==S||t[30]!==d?(P={base:b,resolved:S,revision:d},t[28]=b,t[29]=S,t[30]=d,t[31]=P):P=t[31],P}function ot(s){return s.runtimeKey}const rt=(s,e,n=X())=>JSON.stringify([n,s,e]),fe=Se(s=>({selections:new Map,select:(e,n)=>s(t=>{const i=new Map(t.selections);if(i.delete(e),i.set(e,n),i.size>100){const a=i.keys().next().value;a!==void 0&&i.delete(a)}return{selections:i}})})),at=[];function jt(s,e,n,t){const{git:i}=Me(),{t:a}=se(),h=le(u=>u.runtimeKey),o=rt(s??"",e,h),c=fe(u=>u.selections.get(o)??null),m=fe(u=>u.select),[l,x]=F.useState(null),C=F.useRef(0),w=F.useRef(t);w.current=t;const j=F.useCallback(async()=>{if(!s||!n)return;const u=++C.current,b=X();x({key:o,status:"loading"});try{const S=await i.getGitLog(s,{maxCount:50,to:e?`refs/heads/${e}`:"HEAD"});if(C.current!==u||X()!==b)return;const d=S.all.slice(0,50);if(x({key:o,status:"ready",commits:d}),!fe.getState().selections.has(o)){const P=w.current?d.find(y=>y.hash===w.current):d[0];P&&m(o,P)}}catch(S){if(C.current!==u||X()!==b)return;x({key:o,status:"error",message:S instanceof Error?S.message:a("commitComparison.loadError")})}},[e,s,n,i,o,m,a]);F.useEffect(()=>(j(),()=>{C.current+=1}),[j]);const g=l?.key===o?l:null;return{selectedCommit:c,commits:g?.status==="ready"?g.commits:at,loading:n&&(!g||g.status==="loading"),error:g?.status==="error"?g.message:null,refresh:j,select:u=>m(o,u)}}const Le=(s,e,n)=>{const t=new Map(s.selections);if(t.delete(e),t.set(e,n),t.size>100){const i=t.keys().next().value;i!==void 0&&t.delete(i)}return{selections:t}},re=Se(s=>({selections:new Map,select:(e,n)=>s(t=>Le(t,e,{source:n,handoff:t.selections.get(e)?.handoff??null})),acceptHandoff:(e,n)=>s(t=>t.selections.get(e)?.handoff===n?t:Le(t,e,{source:n,handoff:n}))})),lt=[];function bt(s,e,n,t){const{github:i}=Me(),{t:a}=se(),h=le(f=>f.runtimeKey),o=JSON.stringify([h,s,e]),c=re(f=>f.selections.get(o)??null),m=c?.source??null,l=re(f=>f.select),x=re(f=>f.acceptHandoff),C=t&&c?.handoff!==t?t:null,[w,j]=F.useState(""),g=Ke(w,350).trim(),u=JSON.stringify([o,g]),[b,S]=F.useState(null),d=F.useRef(b);d.current=b;const[P,y]=F.useState(!1),H=F.useRef(0),L=F.useRef({key:u,enabled:n});L.current={key:u,enabled:n};const M=ke(f=>f.status?.connected??!1),k=ke(f=>f.hasChecked),B=Pe(f=>s&&e?Te(f.entries,s,e):null);F.useEffect(()=>{if(!n||!s||!e||m||!k||!M)return;const f=Pe.getState(),K=_e(s,e);f.ensureEntry(K),f.setParams(K,{directory:s,branch:e,remoteName:null,canShow:!0,github:i,githubAuthChecked:k,githubConnected:M}),f.refreshTargets([{directory:s,branch:e,remoteName:null}])},[e,s,n,i,k,M,m]),F.useEffect(()=>{!n||!M||!B?.pr||!B.repo||re.getState().selections.has(o)||l(o,{kind:"pr",number:B.pr.number,sourceRepo:{owner:B.repo.owner,repo:B.repo.repo}})},[B,n,M,l,o]),F.useEffect(()=>{t&&x(o,t)},[x,t,o]);const O=F.useCallback(async f=>{if(!s||!n||L.current.key!==u||!L.current.enabled)return;const K=++H.current,V=X();f?y(!0):(y(!1),S({key:u,status:"loading"}));try{if(!i)throw new Error(a("session.githubPrPicker.error.runtimeUnavailable"));const I=f?f.page+1:1,$=await i.prsList(s,{page:I,query:g||void 0});if(!$.connected)throw new Error(a("session.githubPrPicker.empty.notConnected"));if(!$.prs||!$.repo)throw new Error(a("session.githubPrPicker.error.repoNotResolvable"));if(H.current!==K||X()!==V||L.current.key!==u||!L.current.enabled)return;const T=$.repo,z=$.prs.map(R=>({...R,sourceRepo:R.sourceRepo??{owner:T.owner,repo:T.repo,source:"repository"}})),D=new Map([...f?.prs??[],...z].map(R=>[`${R.sourceRepo?.owner}/${R.sourceRepo?.repo}#${R.number}`,R]));S({key:u,status:"ready",prs:[...D.values()],page:I,hasMore:!!$.hasMore,error:null})}catch(I){if(H.current===K&&X()===V&&L.current.key===u&&L.current.enabled){const $=I instanceof Error?I.message:a("session.githubPrPicker.toast.loadMoreFailed");S(f?{...f,error:$}:{key:u,status:"error",message:$})}}finally{H.current===K&&y(!1)}},[s,n,i,u,g,a]);F.useEffect(()=>((d.current?.key!==u||d.current.status!=="ready")&&O(),()=>{H.current+=1}),[u,O]);const v=b?.key===u?b:null;return{enabled:n,selectedSource:C??m,prs:v?.status==="ready"?v.prs:lt,query:w,setQuery:j,loading:n&&(!v||v.status==="loading"||g!==w.trim()),loadingMore:P,hasMore:v?.status==="ready"&&v.hasMore,error:v?.status==="error"?v.message:v?.status==="ready"?v.error:null,refresh:()=>O(),loadMore:()=>v?.status==="ready"&&v.hasMore&&!P?O(v):Promise.resolve(),select:f=>{f.sourceRepo&&l(o,{kind:"pr",number:f.number,sourceRepo:{owner:f.sourceRepo.owner,repo:f.sourceRepo.repo}})}}}function St(s){const e=ce.c(63),{comparison:n,mobile:t}=s,i=t===void 0?!1:t,{t:a}=se(),h=me(),o=i&&!h.enabled,[c,m]=F.useState(!1);let l,x;e[0]!==n.enabled?(l=()=>{n.enabled||m(!1)},x=[n.enabled],e[0]=n.enabled,e[1]=l,e[2]=x):(l=e[1],x=e[2]),F.useEffect(l,x);let C;e[3]!==a?(C=a("pullRequestComparison.select"),e[3]=a,e[4]=C):C=e[4];const w=C;let j;e[5]!==n?(j=p=>{m(p),p&&!n.loading&&n.refresh(),p||n.setQuery("")},e[5]=n,e[6]=j):j=e[6];const g=j,u=n.selectedSource;let b;e[7]!==i?(b=de(he({size:i?"default":"sm"}),"min-w-0 max-w-48"),e[7]=i,e[8]=b):b=e[8];const S=i||void 0;let d;e[9]!==g||e[10]!==o?(d=o?()=>g(!0):void 0,e[9]=g,e[10]=o,e[11]=d):d=e[11];const P=o?"dialog":void 0,y=o?c:void 0,H=u?.sourceRepo?`${u.sourceRepo.owner}/${u.sourceRepo.repo} #${u.number}`:w,L=u?`#${u.number}`:w;let M;e[12]!==L?(M=r.jsx("span",{className:"truncate",children:L}),e[12]=L,e[13]=M):M=e[13];let k;e[14]===Symbol.for("react.memo_cache_sentinel")?(k=r.jsx(Y,{name:"arrow-down-s",className:"size-3.5"}),e[14]=k):k=e[14];let B;e[15]!==w||e[16]!==y||e[17]!==H||e[18]!==M||e[19]!==b||e[20]!==S||e[21]!==d||e[22]!==P?(B=r.jsxs(te,{variant:"outline",className:b,"data-mobile-comparison-trigger":S,onClick:d,"aria-haspopup":P,"aria-expanded":y,"aria-label":w,title:H,children:[M,k]}),e[15]=w,e[16]=y,e[17]=H,e[18]=M,e[19]=b,e[20]=S,e[21]=d,e[22]=P,e[23]=B):B=e[23];const O=B,v=!o,f=n.query,K=n.setQuery;let V;e[24]!==a?(V=a("session.githubPrPicker.searchPlaceholder"),e[24]=a,e[25]=V):V=e[25];let I;e[26]!==a?(I=a("session.githubPrPicker.searchPlaceholder"),e[26]=a,e[27]=I):I=e[27];let $;e[28]!==n.query||e[29]!==n.setQuery||e[30]!==v||e[31]!==V||e[32]!==I?($=r.jsx(ge,{autoFocus:v,value:f,onValueChange:K,placeholder:V,"aria-label":I}),e[28]=n.query,e[29]=n.setQuery,e[30]=v,e[31]=V,e[32]=I,e[33]=$):$=e[33];let T;e[34]!==g||e[35]!==n||e[36]!==i||e[37]!==c||e[38]!==u||e[39]!==a?(T=n.loading?r.jsxs("div",{className:"flex items-center gap-2 p-4 typography-meta text-muted-foreground",children:[r.jsx(Y,{name:"loader-4",className:"size-4 animate-spin"}),a("session.githubPrPicker.loading.pullRequests")]}):n.error&&n.prs.length===0?r.jsxs("div",{className:"flex flex-col items-center gap-2 p-4 typography-meta text-muted-foreground",children:[r.jsx("span",{children:n.error}),r.jsx(te,{variant:"outline",size:"sm",onClick:()=>{n.refresh()},children:a("diffView.actions.retry")})]}):r.jsxs(Ce,{className:i?"max-h-[min(45dvh,24rem)]":void 0,children:[r.jsx(xe,{children:a("session.githubPrPicker.empty.noPullRequestsFound")}),r.jsx(we,{children:c&&n.prs.map(p=>{const A=`${p.sourceRepo?.owner}/${p.sourceRepo?.repo}#${p.number}`;return r.jsxs(pe,{value:A,className:i?"min-h-11":void 0,onSelect:()=>{n.select(p),g(!1)},children:[r.jsxs("div",{className:"min-w-0 flex-1",children:[r.jsxs("div",{className:"truncate typography-ui-label",title:p.title,children:["#",p.number," ",p.title]}),r.jsxs("div",{className:"truncate typography-meta text-muted-foreground",children:[p.sourceRepo?.owner,"/",p.sourceRepo?.repo," · ",p.head," → ",p.base]})]}),u?.number===p.number&&u.sourceRepo?.owner===p.sourceRepo?.owner&&u.sourceRepo?.repo===p.sourceRepo?.repo&&r.jsx(Y,{name:"check",className:"size-3.5"})]},A)})}),n.error&&r.jsx("p",{className:"px-3 py-2 typography-meta text-muted-foreground",children:n.error}),n.hasMore&&r.jsx(te,{variant:"ghost",size:"sm",disabled:n.loadingMore,onClick:()=>{n.loadMore()},children:n.error?a("diffView.actions.retry"):a("session.githubPrPicker.actions.loadMore")})]}),e[34]=g,e[35]=n,e[36]=i,e[37]=c,e[38]=u,e[39]=a,e[40]=T):T=e[40];let z;e[41]!==$||e[42]!==T?(z=r.jsxs(ve,{shouldFilter:!1,onKeyDown:ct,children:[$,T]}),e[41]=$,e[42]=T,e[43]=z):z=e[43];const D=z;if(o){let p;e[44]!==g?(p=()=>g(!1),e[44]=g,e[45]=p):p=e[45];let A;e[46]!==w||e[47]!==c||e[48]!==D||e[49]!==p?(A=r.jsx(ye,{open:c,title:w,onClose:p,children:D}),e[46]=w,e[47]=c,e[48]=D,e[49]=p,e[50]=A):A=e[50];let q;return e[51]!==A||e[52]!==O?(q=r.jsxs(r.Fragment,{children:[O,A]}),e[51]=A,e[52]=O,e[53]=q):q=e[53],q}let R;e[54]!==O?(R=r.jsx(Ne,{asChild:!0,children:O}),e[54]=O,e[55]=R):R=e[55];let _;e[56]!==D?(_=r.jsx(je,{align:"start",className:"w-[32rem] max-w-[calc(100vw-2rem)] p-0",children:D}),e[56]=D,e[57]=_):_=e[57];let W;return e[58]!==g||e[59]!==c||e[60]!==R||e[61]!==_?(W=r.jsxs(be,{open:c,onOpenChange:g,children:[R,_]}),e[58]=g,e[59]=c,e[60]=R,e[61]=_,e[62]=W):W=e[62],W}function ct(s){s.key!=="Escape"&&s.stopPropagation()}const ut=64,ft=3,Z=new Map,kt=s=>/^Binary files .+ differ$/m.test(s)||/^GIT binary patch$/m.test(s),$e=s=>{const e=s.search(/^@@\s/m);if(e<0)return null;const n=s.slice(0,e);return/^index (?:[a-f0-9]{40}|[a-f0-9]{64})\.\.(?:[a-f0-9]{40}|[a-f0-9]{64})(?: [0-7]+)?$/m.test(n)?n:null},Pt=(s,e)=>{const n=$e(s);return n!==null&&n===$e(e)},Rt=(s,e,n=ft)=>{const t=`${s}\0${n}\0${e}`,i=Z.get(t);if(i)return Z.delete(t),Z.set(t,i),i;const a=dt(e),h=a?Ve(Qe(e,n),{oldFile:{name:s,contents:a.before},newFile:{name:s,contents:a.after}})??Fe(s):We(mt(s,e))[0]?.files[0]??Fe(s);for(Z.set(t,h);Z.size>ut;){const o=Z.keys().next().value;if(!o)break;Z.delete(o)}return h},mt=(s,e)=>!e.trim()||e.startsWith("diff --git ")||/^--- [^\n]*\r?\n\+\+\+ /m.test(e)?e:`Index: ${s}
6
6
  ===================================================================
7
7
  --- ${s}
8
8
  +++ ${s}
@@ -10,4 +10,4 @@ ${e}`,dt=s=>{if(!s.startsWith("diff --git ")&&!/^--- [^\n]*\t?\r?\n\+\+\+ [^\n]*
10
10
  `:"")).join(""),Fe=s=>Je({name:s,contents:""},{name:s,contents:""}),Oe=s=>{if(!s)return[];const e=[...s.matchAll(/^@@\s/gm)].map(t=>t.index);if(e.length===0)return[];const n=s.slice(0,e[0]);return e.map((t,i)=>{const a=n+s.slice(t,e[i+1]??s.length);return a.endsWith(`
11
11
  `)?a:`${a}
12
12
  `})},Lt=(s,e)=>!Number.isInteger(e)||e<0?null:Oe(s)[e]??null,$t=s=>{const e=[];for(const[n,t]of Oe(s).entries()){const i=/^@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@[^\n]*(?:\n|$)/m.exec(t);if(!i)continue;let a=Number(i[1]),h=Number(i[3]),o;for(const c of t.slice(i.index+i[0].length).split(`
13
- `))c.startsWith("-")?o={index:n,side:"deletions",lineNumber:a++}:c.startsWith("+")?o={index:n,side:"additions",lineNumber:h++}:c.startsWith(" ")&&(a+=1,h+=1);o&&Number.isSafeInteger(o.lineNumber)&&o.lineNumber>0&&e.push(o)}return e};export{yt as B,Nt as C,St as P,vt as a,jt as b,bt as c,Lt as e,Rt as f,$t as g,kt as h,Pt as i,it as u};
13
+ `))c.startsWith("-")?o={index:n,side:"deletions",lineNumber:a++}:c.startsWith("+")?o={index:n,side:"additions",lineNumber:h++}:c.startsWith(" ")&&(a+=1,h+=1);o&&Number.isSafeInteger(o.lineNumber)&&o.lineNumber>0&&e.push(o)}return e};export{vt as B,yt as C,St as P,Nt as a,jt as b,bt as c,Lt as e,Rt as f,$t as g,Pt as h,kt as i,it as u};