@aiworker/web 1.22.2 → 1.23.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 (217) hide show
  1. package/bin/cli.js +7 -0
  2. package/dist/assets/{CodeMirrorCommentWidgets-CSICpWQD.js → CodeMirrorCommentWidgets-teB3HmBT.js} +1 -1
  3. package/dist/assets/DiffView-DC9RX3MF.js +4 -0
  4. package/dist/assets/{DirtyBranchSwitchDialog-C22HdWj4.js → DirtyBranchSwitchDialog-DwPkzXsS.js} +1 -1
  5. package/dist/assets/FilesView-BFZkuu4O.js +13 -0
  6. package/dist/assets/{GitView-VQQkYuUw.js → GitView-B_x52MHY.js} +4 -4
  7. package/dist/assets/{JsonTreeView-6lrhwD3q.js → JsonTreeView-cmAzUTiw.js} +1 -1
  8. package/dist/assets/{LinearIssuesView-Ba6Q9569.js → LinearIssuesView-Dehh5afm.js} +1 -1
  9. package/dist/assets/MarkdownImageGallery-DgNOqqhE.js +1 -0
  10. package/dist/assets/MarkdownRendererImpl-DusmMZ_p.js +12 -0
  11. package/dist/assets/OnboardingScreen-B8fm1H4m.js +1 -0
  12. package/dist/assets/{PatchDiff-BzcZPlOq.js → PatchDiff-BVr7gJU0.js} +1 -1
  13. package/dist/assets/PierreDiffViewer-DzLt-nel.js +161 -0
  14. package/dist/assets/PlanView-BmQUYT_z.js +5 -0
  15. package/dist/assets/SettingsView-ChWmAcZT.js +28 -0
  16. package/dist/assets/{SettingsWindow-DDQYaKWQ.js → SettingsWindow-Dy3M6ZB9.js} +1 -1
  17. package/dist/assets/SymbolsNerdFontMono-Regular-aK5vsLov.woff2 +0 -0
  18. package/dist/assets/{ToolOutputDialog-iYF8Y2bz.js → ToolOutputDialog-cTl_eLIH.js} +5 -5
  19. package/dist/assets/{ToolPartDiffPreview-CdjbOVMM.js → ToolPartDiffPreview-C_3iYNJQ.js} +1 -1
  20. package/dist/assets/{VirtualizedFileDiff-fFFm2QgH.js → VirtualizedFileDiff-CAWthkoy.js} +4 -4
  21. package/dist/assets/WalkthroughView-C7AHOpCA.js +4 -0
  22. package/dist/assets/{computeVirtualFileMetrics-CzgLum_K.js → computeVirtualFileMetrics-BkiDSlTW.js} +2 -2
  23. package/dist/assets/contextPanelEmbeddedChat-BdA6bdky.js +1 -0
  24. package/dist/assets/de-DJsQr-p7.js +10 -0
  25. package/dist/assets/es-BuYMlA9g.js +16 -0
  26. package/dist/assets/fr-ePDay33C.js +14 -0
  27. package/dist/assets/ghostty-vt-DdA0Zryv.wasm +0 -0
  28. package/dist/assets/index-BD8ILbxF.js +40 -0
  29. package/dist/assets/{index-Bl3LSbjn.js → index-n6O3hklM.js} +1 -1
  30. package/dist/assets/index-zhgg-SDz.css +1 -0
  31. package/dist/assets/{isDiffPlainText-Dx-dB_8l.js → isDiffPlainText-GMdPz-71.js} +1 -1
  32. package/dist/assets/{isFilePlainText-CWFPwmnU.js → isFilePlainText-BVuH1zH9.js} +1 -1
  33. package/dist/assets/ja-BzR9xOY_.js +16 -0
  34. package/dist/assets/ko-BEjHAm14.js +16 -0
  35. package/dist/assets/main-BydQ1tr_.js +930 -0
  36. package/dist/assets/{main-DnBAoktx.js → main-D3ZDQglc.js} +2 -2
  37. package/dist/assets/markdownCore-Cb2MdZnV.js +5 -0
  38. package/dist/assets/{miniChat-BKyvLseN.js → miniChat-d01k801U.js} +2 -2
  39. package/dist/assets/{mobile-DKjeFgMN.js → mobile-D7VV-Ufz.js} +2 -2
  40. package/dist/assets/patchFileDiff-CdztVMz0.js +13 -0
  41. package/dist/assets/pl-rQmpxNIF.js +16 -0
  42. package/dist/assets/pt-BR-CorbsSW-.js +16 -0
  43. package/dist/assets/renderElectronMiniChatApp-BGG9UIlh.js +2 -0
  44. package/dist/assets/renderMobileApp-BRP3J1iv.js +25 -0
  45. package/dist/assets/runtimeEndpointReset-BhT_-c52.js +41 -0
  46. package/dist/assets/scheduledTasksApi-BEuUF_cj.js +1 -0
  47. package/dist/assets/{shikiHighlight-TEQCmzW8.js → shikiHighlight-BzXUjlby.js} +1 -1
  48. package/dist/assets/surface-COKb77Ua.js +1 -0
  49. package/dist/assets/tr-CoAMXPtI.js +7 -0
  50. package/dist/assets/uk-YlAX0rRU.js +16 -0
  51. package/dist/assets/{useAppFontEffects-D7sNpuL2.js → useAppFontEffects-Cwyhjfl5.js} +141 -140
  52. package/dist/assets/useGitComparison-BCZVefdE.js +1 -0
  53. package/dist/assets/useInlineCommentController-DDkpBEU8.js +2 -0
  54. package/dist/assets/useRootScrollLock-CwjoWuC4.js +1 -0
  55. package/dist/assets/{vendor-base-ui-BeMD8X_w.js → vendor-base-ui-BY_5qla_.js} +1 -1
  56. package/dist/assets/{vendor-codemirror-language-data-Dp3KMRQG.js → vendor-codemirror-language-data-Cb1YnICj.js} +2 -2
  57. package/dist/assets/vendor-legendapp-list-BuBPBC3R.js +1 -0
  58. package/dist/assets/vendor-zod-B6551dwG.js +39 -0
  59. package/dist/assets/{web-components-_mNEMjFY.js → web-components-LV3vjTxy.js} +1 -1
  60. package/dist/assets/zh-CN-DDYg0Jl7.js +16 -0
  61. package/dist/assets/zh-TW-CQKaCayr.js +16 -0
  62. package/dist/index.html +5 -43
  63. package/dist/mini-chat.html +4 -4
  64. package/dist/mobile.html +4 -4
  65. package/package.json +2 -3
  66. package/server/index.d.ts +15 -0
  67. package/server/index.js +48 -22
  68. package/server/lib/agent-memory/runtime.js +7 -2
  69. package/server/lib/agent-memory/runtime.test.js +22 -0
  70. package/server/lib/data-dir-migration.js +40 -0
  71. package/server/lib/data-dir-migration.test.js +59 -0
  72. package/server/lib/event-stream/DOCUMENTATION.md +3 -0
  73. package/server/lib/event-stream/global-hub.js +29 -4
  74. package/server/lib/event-stream/global-hub.test.js +22 -0
  75. package/server/lib/event-stream/global-ws-bridge.js +15 -18
  76. package/server/lib/event-stream/protocol.js +21 -7
  77. package/server/lib/event-stream/runtime.js +9 -6
  78. package/server/lib/event-stream/runtime.test.js +72 -12
  79. package/server/lib/fs/DOCUMENTATION.md +3 -0
  80. package/server/lib/fs/routes.js +31 -0
  81. package/server/lib/fs/routes.test.js +110 -1
  82. package/server/lib/git/DOCUMENTATION.md +39 -6
  83. package/server/lib/git/routes.js +45 -12
  84. package/server/lib/git/routes.test.js +78 -0
  85. package/server/lib/git/service.js +343 -202
  86. package/server/lib/git/service.test.js +496 -25
  87. package/server/lib/github/DOCUMENTATION.md +5 -0
  88. package/server/lib/github/routes.js +2 -2
  89. package/server/lib/inherited-env.js +16 -9
  90. package/server/lib/inherited-env.test.js +8 -9
  91. package/server/lib/message-queue/DOCUMENTATION.md +11 -1
  92. package/server/lib/message-queue/runtime.js +13 -0
  93. package/server/lib/message-queue/runtime.test.js +31 -1
  94. package/server/lib/network-defaults.js +23 -0
  95. package/server/lib/network-defaults.test.js +52 -0
  96. package/server/lib/notifications/DOCUMENTATION.md +1 -1
  97. package/server/lib/notifications/emitter-runtime.js +4 -3
  98. package/server/lib/opencode/DOCUMENTATION.md +35 -5
  99. package/server/lib/opencode/bootstrap-runtime.js +2 -0
  100. package/server/lib/opencode/env-runtime.js +5 -1
  101. package/server/lib/opencode/env-runtime.test.js +72 -0
  102. package/server/lib/opencode/feature-routes-runtime.js +17 -1
  103. package/server/lib/opencode/lifecycle.js +4 -3
  104. package/server/lib/opencode/lifecycle.test.js +29 -0
  105. package/server/lib/opencode/managed-plugin-config.js +1 -1
  106. package/server/lib/opencode/openchamber-routes.js +64 -4
  107. package/server/lib/opencode/openchamber-routes.test.js +128 -1
  108. package/server/lib/opencode/proxy.js +33 -0
  109. package/server/lib/opencode/routes.js +5 -3
  110. package/server/lib/opencode/settings-files.js +214 -0
  111. package/server/lib/opencode/settings-helpers.js +88 -41
  112. package/server/lib/opencode/settings-helpers.test.js +176 -1
  113. package/server/lib/opencode/settings-registry.json +750 -0
  114. package/server/lib/opencode/settings-runtime.js +175 -27
  115. package/server/lib/opencode/settings-runtime.test.js +321 -7
  116. package/server/lib/project-context/DOCUMENTATION.md +38 -4
  117. package/server/lib/project-context/routes.http.test.js +18 -0
  118. package/server/lib/project-context/routes.js +15 -0
  119. package/server/lib/project-context/runtime.js +256 -25
  120. package/server/lib/project-context/runtime.test.js +160 -3
  121. package/server/lib/projects/DOCUMENTATION.md +77 -0
  122. package/server/lib/projects/project-config.js +179 -17
  123. package/server/lib/projects/project-config.test.js +97 -0
  124. package/server/lib/projects/project-id.js +43 -0
  125. package/server/lib/projects/project-setup.js +409 -0
  126. package/server/lib/projects/project-setup.test.js +557 -0
  127. package/server/lib/projects/routes.js +59 -0
  128. package/server/lib/quota/DOCUMENTATION.md +31 -1
  129. package/server/lib/quota/providers/cline-pass.js +125 -0
  130. package/server/lib/quota/providers/cline-pass.test.js +103 -0
  131. package/server/lib/quota/providers/index.js +7 -0
  132. package/server/lib/quota/providers/neuralwatt.js +3 -6
  133. package/server/lib/quota/providers/neuralwatt.test.js +7 -7
  134. package/server/lib/quota/providers/ollama-cloud.js +31 -0
  135. package/server/lib/quota/providers/ollama-cloud.test.js +33 -1
  136. package/server/lib/quota/providers/opencode-go.js +1 -1
  137. package/server/lib/quota/providers/opencode-go.test.js +26 -1
  138. package/server/lib/quota/providers/openrouter.js +119 -24
  139. package/server/lib/quota/providers/openrouter.test.js +330 -0
  140. package/server/lib/relay/DOCUMENTATION.md +75 -0
  141. package/server/lib/relay/cross-compat.test.js +26 -0
  142. package/server/lib/relay/downstream-scheduler.js +154 -0
  143. package/server/lib/relay/downstream-scheduler.test.js +162 -0
  144. package/server/lib/relay/e2ee.js +10 -8
  145. package/server/lib/relay/flow-control.test.js +177 -0
  146. package/server/lib/relay/host-client.js +44 -8
  147. package/server/lib/relay/host-client.test.js +14 -0
  148. package/server/lib/relay/tunnel-codec.js +9 -0
  149. package/server/lib/relay/tunnel-host.js +66 -17
  150. package/server/lib/scheduled-tasks/DOCUMENTATION.md +9 -1
  151. package/server/lib/scheduled-tasks/issue-2710-double-execution.test.js +28 -0
  152. package/server/lib/scheduled-tasks/runtime.js +12 -2
  153. package/server/lib/scheduled-tasks/runtime.test.js +53 -0
  154. package/server/lib/session-assist/DOCUMENTATION.md +131 -66
  155. package/server/lib/session-assist/context.js +127 -0
  156. package/server/lib/session-assist/context.test.js +132 -0
  157. package/server/lib/session-assist/prompt.js +54 -0
  158. package/server/lib/session-assist/runtime.js +117 -267
  159. package/server/lib/session-assist/runtime.test.js +203 -0
  160. package/server/lib/session-goal/runtime.js +4 -9
  161. package/server/lib/small-model/DOCUMENTATION.md +3 -2
  162. package/server/lib/small-model/call.js +9 -4
  163. package/server/lib/small-model/call.test.js +29 -0
  164. package/server/lib/small-model/index.js +5 -10
  165. package/server/lib/small-model/runtime-providers.js +15 -7
  166. package/server/lib/small-model/runtime-providers.test.js +7 -1
  167. package/server/lib/terminal/DOCUMENTATION.md +4 -4
  168. package/server/lib/terminal/runtime.js +11 -6
  169. package/server/lib/terminal/runtime.test.js +20 -13
  170. package/server/lib/walkthrough/DOCUMENTATION.md +49 -20
  171. package/server/lib/walkthrough/model-settings.js +8 -12
  172. package/server/lib/walkthrough/pr-source.test.js +21 -0
  173. package/server/lib/walkthrough/prompt.js +3 -1
  174. package/server/lib/walkthrough/pull-request.js +7 -4
  175. package/server/lib/walkthrough/pull-request.test.js +16 -0
  176. package/server/lib/walkthrough/routes.js +19 -0
  177. package/server/lib/walkthrough/routes.test.js +26 -0
  178. package/server/lib/walkthrough/sources.js +36 -4
  179. package/server/opencode-worktree-readiness.test.js +130 -0
  180. package/dist/assets/DiffView-hDBKesA_.js +0 -4
  181. package/dist/assets/FilesView-CdWzeOp9.js +0 -17
  182. package/dist/assets/MarkdownImageGallery-Czv_mhvS.js +0 -1
  183. package/dist/assets/MarkdownRendererImpl-BrMcswiy.js +0 -12
  184. package/dist/assets/OnboardingScreen-ChxQoAkx.js +0 -1
  185. package/dist/assets/PierreDiffViewer-BchBtZlp.js +0 -157
  186. package/dist/assets/PlanView-DyDt_nZ_.js +0 -5
  187. package/dist/assets/SettingsView-BKf5xBsP.js +0 -28
  188. package/dist/assets/WalkthroughView-DOeCsMju.js +0 -4
  189. package/dist/assets/contextPanelEmbeddedChat-C0ZLAepL.js +0 -1
  190. package/dist/assets/de-B5JaA3SA.js +0 -10
  191. package/dist/assets/es-EPIH88ii.js +0 -16
  192. package/dist/assets/fr-CAMfxUdZ.js +0 -14
  193. package/dist/assets/index-DF5kMP-i.js +0 -39
  194. package/dist/assets/index-Dl3xbAB_.css +0 -1
  195. package/dist/assets/ja-CifOE1VN.js +0 -16
  196. package/dist/assets/ko-BBDyAyYQ.js +0 -16
  197. package/dist/assets/main-MhSaOZoB.js +0 -930
  198. package/dist/assets/markdownCore-BrBwOOMn.js +0 -3
  199. package/dist/assets/patchFileDiff-o8ms1me8.js +0 -10
  200. package/dist/assets/pl-DgEHYfFM.js +0 -16
  201. package/dist/assets/pt-BR-DuWHojUw.js +0 -16
  202. package/dist/assets/renderElectronMiniChatApp-CDgBwwCS.js +0 -2
  203. package/dist/assets/renderMobileApp-DJIKIK1r.js +0 -25
  204. package/dist/assets/runtimeEndpointReset-CYJ9O_xX.js +0 -17
  205. package/dist/assets/scheduledTasksApi-D8yamh1b.js +0 -1
  206. package/dist/assets/tr-D5m2yIWL.js +0 -7
  207. package/dist/assets/uk-D_q60oog.js +0 -16
  208. package/dist/assets/useInlineCommentController-Brz_cLcQ.js +0 -2
  209. package/dist/assets/useRootScrollLock-lXEnWlaU.js +0 -1
  210. package/dist/assets/vendor-ghostty-web-CrxinGGH.js +0 -13
  211. package/dist/assets/vendor-legendapp-list-gg7YLRW7.js +0 -1
  212. package/dist/assets/vendor-zod-CK21ihK-.js +0 -39
  213. package/dist/assets/zh-CN-D8QvsVeg.js +0 -16
  214. package/dist/assets/zh-TW-B9t7rQQO.js +0 -16
  215. package/server/lib/mcp-reconnect/DOCUMENTATION.md +0 -55
  216. package/server/lib/mcp-reconnect/runtime.js +0 -122
  217. package/server/lib/mcp-reconnect/runtime.test.js +0 -140
@@ -1,3 +0,0 @@
1
- import{g as f,B as R}from"./vendor-marked-CX41MkDF.js";import{m as O}from"./vendor-marked-linkify-it-CXI_LHIE.js";import{p as B}from"./vendor-remend-BWYYytN3.js";import{k as I}from"./vendor-katex-k3Ppq1Ha.js";import{p as d}from"./vendor-dompurify-r8glNMJW.js";import{hm as w,hn as M,ho as E,hp as D,hq as v,fv as G,hr as z,hs as F}from"./useAppFontEffects-D7sNpuL2.js";import{G as K}from"./index-DF5kMP-i.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-simplewebauthn-browser-VDA66rT_.js";import"./vendor-vite-runtime-DD1OZmLC.js";import"./vendor-zustand-BAGL70zf.js";import"./vendor-base-ui-BeMD8X_w.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"./contextPanelEmbeddedChat-C0ZLAepL.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-livSKyyV.js";import"./vendor-motion-dom-D_o3BTI3.js";import"./vendor-motion-utils-BGh8QBgx.js";import"./vendor-tanstack-react-virtual-g05Cx3z9.js";import"./vendor-tanstack-virtual-core-Dubg10g5.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-Dp3KMRQG.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-gg7YLRW7.js";import"./vendor-tailwind-merge-CPcsbTWB.js";import"./vendor-fuse.js-Dw8P0qyA.js";import"./vendor-zod-CK21ihK-.js";import"./vendor-opencode-sdk-BJ73u-bH.js";const U=t=>t.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),A=["script","style"],P=t=>{try{const e=new URL(t);return e.protocol==="file:"&&(!e.hostname||e.hostname==="localhost")}catch{return!1}},p=t=>t.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),X=/\.(?:png|jpe?g|gif|webp)(?:[?#].*)?$/i,W=/^[A-Za-z]:[\\/]/,j=/^[A-Za-z][A-Za-z\d+.-]*:/,V=12,q=1024,Y=2*1024*1024,Z=64*1024,l=new Map;let g=0;const J=t=>/^\/\//.test(t)||!X.test(t)?!1:W.test(t)||/^file:\/\//i.test(t)||!j.test(t),Q=t=>/^(?:https?:)?\/\//i.test(t)||/^data:image\/(?:png|jpeg|gif|webp);base64,/i.test(t)||J(t),C=(t,e)=>{if(/^data:image\/(png|jpeg|gif|webp)/i.test(t)){const o=/^data:image\/([^;,]+)/i.exec(t)?.[1]?.replace("jpeg","jpg")??"png";return e.trim()||`image.${o}`}const n=(t.split(/[?#]/,1)[0]?.replace(/\\/g,"/")??"").split("/").filter(Boolean).at(-1)??"";if(!n)return e.trim();try{return decodeURIComponent(n)}catch{return n}},tt=(t,e)=>(t.length+e.reduce((r,n)=>r+n.source.length+n.filename.length,0))*2,et=t=>{const e=[],r=new Set,n=f.lexer(t);return f.walkTokens(n,o=>{if(o.type!=="image")return;const i=o.href??"";if(!i||!Q(i)||r.has(i))return;const s=typeof o.text=="string"?o.text:"",a=C(i,s);a&&(r.add(i),e.push({source:i,filename:a}))}),e},rt=t=>{const e=l.get(t);if(e)return l.delete(t),l.set(t,e),e.candidates;const r=et(t),n=tt(t,r);if(n>Z)return r;for(;l.size>=q||g+n>Y;){const o=l.entries().next().value;if(!o)break;l.delete(o[0]),g-=o[1].bytes}return l.set(t,{candidates:r,bytes:n}),g+=n,r},nt=({href:t,title:e,text:r})=>{const n=C(t??"",r);return`<span${e?` title="${p(e)}"`:""} class="inline-flex items-center gap-1 align-text-bottom text-muted-foreground" data-openchamber-markdown-image-label="true">${p(n)}</span>`},ar=(t,e=V)=>{if(e<=0)return[];const r=[],n=new Set;for(const o of t)if(!(!o||r.length>=e))for(const i of rt(o)){if(r.length>=e)break;n.has(i.source)||(n.add(i.source),r.push({...i}))}return r},ot=t=>/^\[[^\]]+\]:\s+\S+/m.test(t)||/^\[\^[^\]]+\]:\s+/m.test(t),it=t=>{const e=t.match(/^[ \t]{0,3}(`{3,}|~{3,})/);if(!e)return!1;const r=e[1];if(!r)return!1;const n=r[0],o=r.length,i=t.trimEnd().split(`
2
- `).at(-1)?.trim()??"";return!new RegExp(`^[\\t ]{0,3}${n}{${o},}[\\t ]*$`).test(i)},st=300,h=t=>{try{return B(t,{linkMode:"text-only"})}catch{return t}},y=(t,e)=>{if(!e)return[{raw:t,src:t,mode:"full",highlight:!0}];if(ot(t))return[{raw:t,src:h(t),mode:"live",highlight:!0}];let r;try{r=f.lexer(t)}catch{return[{raw:t,src:h(t),mode:"live",highlight:!0}]}let n=-1;for(let i=r.length-1;i>=0;i-=1)if(r[i]?.type!=="space"){n=i;break}if(n<0)return[{raw:t,src:h(t),mode:"live",highlight:!0}];const o=[];for(let i=0;i<r.length;i+=1){const s=r[i];if(!s||s.type==="space")continue;const a=s.raw??"",m=i===n,c=s.type==="code"&&it(a),u=c&&a.split(`
3
- `).length<=st;o.push({raw:a,src:c?a:h(a),mode:m?"live":"full",highlight:!c||u})}return o.length===0?[{raw:t,src:h(t),mode:"live",highlight:!0}]:o},S=(t,e,r)=>{try{return I.renderToString(t,{displayMode:r,throwOnError:!1})}catch{return e}},at={name:"inlineMath",level:"inline",start(t){const e=t.indexOf("\\(");return e<0?void 0:e},tokenizer(t){const e=/^\\\(([\s\S]+?)\\\)/.exec(t);if(e)return{type:"inlineMath",raw:e[0],text:e[1]??""}},renderer(t){const e=t;return S(e.text,e.raw,!1)}},ct=/^[ \t]*\\\[([\s\S]+?)\\\][ \t]*(?:\n|$)/,lt=/(?:^|\n)[ \t]*\\\[/,pt={name:"blockMath",level:"block",start(t){const e=lt.exec(t);return e?e.index+e[0].length-2:void 0},tokenizer(t){const e=ct.exec(t);if(e)return{type:"blockMath",raw:e[0],text:e[1]??""}},renderer(t){const e=t;return S(e.text,e.raw,!0)}},L=t=>new R().use(O({fuzzyLink:!1}),{gfm:!0,breaks:!1,extensions:[at,pt],renderer:{html({text:e}){return U(e)},link({href:e,title:r,text:n}){const o=e??"",i=D(o);if(i)return`<a href="${p(F(i))}" data-openchamber-agent-mention="true" class="text-primary hover:underline" target="_blank" rel="noopener noreferrer">${n}</a>`;const s=v(o);if(s)return`<a href="${p(o)}" data-skill-name="${p(s)}" class="text-primary hover:underline">${n}</a>`;const a=r?` title="${p(r)}"`:"";return`<a href="${p(o)}"${a} class="external-link" target="_blank" rel="noopener noreferrer">${n}</a>`},...t==="label"?{image:nt}:{}}}),T=L("inline"),x=L("label"),mt=t=>t.replace(/\$\$([\s\S]*?)\$\$/g,(e,r)=>{try{return I.renderToString(r,{displayMode:!0,throwOnError:!1})}catch{return`$$${r}$$`}}),H=t=>{if(t.indexOf("$")===-1)return t;const e=/(<(?:pre|code|kbd)[^>]*>[\s\S]*?<\/(?:pre|code|kbd)>)/gi;return t.split(e).map((r,n)=>n%2===1?r:mt(r)).join("")},ht=/<pre><code(?:\s+class="language-([^"]*)")?>([\s\S]*?)<\/code><\/pre>/g,dt=1200,ut=200,gt=(t,e)=>{let r=1;for(let n=0;n<t.length;n+=1)if(t.charCodeAt(n)===10&&++r>e)return!0;return!1},ft=t=>t.replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#39;/g,"'").replace(/&amp;/g,"&"),_t=async t=>{const e=[...t.matchAll(ht)];if(e.length===0)return t;const r=K()?ut:dt,n=await Promise.all(e.map(async i=>{const[s,a,m]=i,c=(a||"text").toLowerCase();if(c==="mermaid")return null;const u=ft(m??"");if(gt(u,r))return{full:s,next:s.replace("<pre",`<pre data-md-lang="${c}"`)};const _=await z(u,c);return _?{full:s,next:_.replace(/^<pre/,`<pre data-md-lang="${c}"`)}:null}));let o=t;for(const i of n)i&&(o=o.replace(i.full,()=>i.next));return o},Et={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:[...A],FORBID_CONTENTS:[...A]};let k=!1;const At=()=>{k||typeof window>"u"||!d.isSupported||(k=!0,d.addHook("uponSanitizeAttribute",(t,e)=>{!(t instanceof HTMLAnchorElement)||e.attrName!=="href"||(P(e.attrValue)||G(e.attrValue))&&(e.forceKeepAttr=!0)}),d.addHook("afterSanitizeAttributes",t=>{t instanceof HTMLAnchorElement&&t.target==="_blank"&&t.setAttribute("rel","noopener noreferrer")}))},$=t=>d.isSupported?(At(),d.sanitize(t,Et)):"",kt=2e3,It=24*1024*1024,wt=32,Mt=2*1024*1024,b=new M({maxEntries:kt,maxBytes:It}),Ct=new M({maxEntries:wt,maxBytes:Mt}),yt=t=>t==="live"?Ct:b,N=(t,e,r,n)=>`${t}:${e}:${r?1:0}:${n}`,cr=(t,e="inline")=>{if(!t)return[];const r=y(t,!1),n=[];for(const o of r){const i=w(o.raw),s=N(i,o.mode,o.highlight,e),a=b.get(s);if(a===void 0)return null;n.push({id:s,html:a})}return n},St=async(t,e)=>{const r=e==="label"?x:T,n=await Promise.resolve(r.parse(t.src)),o=H(n),i=t.highlight?await _t(o):o;return $(i)},lr=(t,e="inline")=>{if(!t)return"";const n=(e==="label"?x:T).parse(t),o=H(n);return $(o)},pr=async(t,e,r="inline")=>{if(!t)return[];const n=y(t,e);return Promise.all(n.map(async o=>{const i=w(o.raw),s=N(i,o.mode,o.highlight,r),a=yt(o.mode),m=a.get(s);if(m!==void 0)return{id:s,html:m};const c=await St(o,r);return a.set(s,c,E(s)+E(c)),{id:s,html:c}}))};export{V as MAX_MARKDOWN_IMAGE_COUNT,ar as extractMarkdownImageCandidates,cr as getCachedMarkdownBlocks,pr as renderMarkdownBlocks,lr as renderMarkdownSync};
@@ -1,10 +0,0 @@
1
- import{hP as p,hf as x,hM as N}from"./useAppFontEffects-D7sNpuL2.js";import{p as $}from"./VirtualizedFileDiff-fFFm2QgH.js";function F(t,e=10){const i=[];let n;for(const s of t.split(`
2
- `)){const l=s.match(p);if(l!=null){n!=null&&(n.hunkLines.length>0&&(h(n,e,"trailing"),L(n,i)),n=void 0);const r=parseInt(l[3]),u=parseInt(l[1]),a=parseInt(l[4]??"1"),o=parseInt(l[2]??"1");isNaN(r)||isNaN(u)||isNaN(a)||isNaN(o)?i.push(s):n={additionStart:r,deletionStart:u,additionCount:0,deletionCount:0,hunkLines:[],contextLines:[]};continue}if(n==null){i.push(s);continue}if(s.startsWith(" "))n.contextLines.push(s);else if(s!==""){if(n.hunkLines.length>0&&n.contextLines.length>e*2){const r=n.contextLines.length-e*2,u=n.contextLines.slice(-e);h(n,e,"trailing");const{additionCount:a,deletionCount:o}=n;L(n,i),n={additionStart:n.additionStart+a+r,deletionStart:n.deletionStart+o+r,deletionCount:0,additionCount:0,contextLines:u,hunkLines:[]}}h(n,e,n.hunkLines.length===0?"leading":"before-change"),n.hunkLines.push(s),s.startsWith("+")?n.additionCount+=1:s.startsWith("-")&&(n.deletionCount+=1)}}n!=null&&n.hunkLines.length>0&&(h(n,e,"trailing"),L(n,i));const c=i.join(`
3
- `);return t.endsWith(`
4
- `)?`${c}
5
- `:c}function h(t,e,i){if(i==="leading"&&t.contextLines.length>e){const n=t.contextLines.length-e;t.contextLines.splice(0,n),t.additionStart+=n,t.deletionStart+=n}return i==="trailing"&&t.contextLines.length>e&&(t.contextLines.length=e),t.contextLines.length>0&&(t.hunkLines.push(...t.contextLines),t.additionCount+=t.contextLines.length,t.deletionCount+=t.contextLines.length,t.contextLines.length=0),t}function L(t,e){e.push(`@@ -${g(t.deletionStart,t.deletionCount)} +${g(t.additionStart,t.additionCount)} @@`),e.push(...t.hunkLines)}function g(t,e){return e===1?`${t}`:`${t},${e}`}const w=64,W=3,d=new Map,P=(t,e,i=W)=>{const n=`${t}\0${i}\0${e}`,c=d.get(n);if(c)return d.delete(n),d.set(n,c),c;const s=H(e),l=s?x(F(e,i),{oldFile:{name:t,contents:s.before},newFile:{name:t,contents:s.after}})??m(t):N(b(t,e))[0]?.files[0]??m(t);for(d.set(n,l);d.size>w;){const r=d.keys().next().value;if(!r)break;d.delete(r)}return l},b=(t,e)=>!e.trim()||e.startsWith("diff --git ")||/^--- [^\n]*\r?\n\+\+\+ /m.test(e)?e:`Index: ${t}
6
- ===================================================================
7
- --- ${t}
8
- +++ ${t}
9
- ${e}`,H=t=>{if(!t.startsWith("diff --git ")&&!/^--- [^\n]*\t?\r?\n\+\+\+ [^\n]*\t?(?:\r?\n|$)/m.test(t))return;const e=[...t.matchAll(/^@@\s+-(\d+)(?:,\d+)?\s+\+(\d+)(?:,\d+)?\s+@@[^\n]*(?:\r?\n|$)/gm)];if(e.length!==1)return;const i=e[0],n=Number.parseInt(i[1]??"",10),c=Number.parseInt(i[2]??"",10);if(n>1||c>1||!Number.isFinite(n)||!Number.isFinite(c))return;const s=(i.index??0)+i[0].length,l=t.slice(s),r=[],u=[];let a;for(const o of l.split(/\r?\n/)){if(o.startsWith("diff --git ")||o.startsWith("@@ "))break;if(o.startsWith("\\")){if(a==="-"||a===" "){const f=r.at(-1);f&&(f.newline=!1)}if(a==="+"||a===" "){const f=u.at(-1);f&&(f.newline=!1)}continue}if(o.startsWith("-")){r.push({text:o.slice(1),newline:!0}),a="-";continue}if(o.startsWith("+")){u.push({text:o.slice(1),newline:!0}),a="+";continue}o.startsWith(" ")&&(r.push({text:o.slice(1),newline:!0}),u.push({text:o.slice(1),newline:!0}),a=" ")}return{before:C(r),after:C(u)}},C=t=>t.map(e=>e.text+(e.newline?`
10
- `:"")).join(""),m=t=>$({name:t,contents:""},{name:t,contents:""});export{P as f};