farming-code 2.2.27 → 2.2.29

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 (284) hide show
  1. package/README.md +15 -30
  2. package/README.zh_cn.md +15 -30
  3. package/THIRD_PARTY_NOTICES.md +28 -6
  4. package/backend/acp/packaged-claude-acp.js +13 -0
  5. package/backend/acp/packaged-codex-acp.js +2 -2
  6. package/backend/acp-runtime.js +52 -3
  7. package/backend/acp-transcript.js +174 -9
  8. package/backend/agent-manager.js +1081 -96
  9. package/backend/atomic-json-store.js +37 -0
  10. package/backend/cli-agents.js +9 -7
  11. package/backend/config-manager.js +211 -58
  12. package/backend/control-api.js +2 -1
  13. package/backend/data/LICENSE.agent-browser +201 -0
  14. package/backend/data/runtime-dependency-manifest.json +199 -0
  15. package/backend/data/runtime-dependency-sources.json +5 -0
  16. package/backend/executable-discovery.js +7 -0
  17. package/backend/farming-agent-bootstrap.js +49 -0
  18. package/backend/farming-agent-bootstrap.zh_cn.md +7 -0
  19. package/backend/farming-app-cli.js +168 -65
  20. package/backend/farming-cli.js +57 -0
  21. package/backend/farming-session-store.js +92 -89
  22. package/backend/index-html.js +13 -0
  23. package/backend/main-agent-skills.js +13 -0
  24. package/backend/npm-update-helper.js +43 -6
  25. package/backend/preview-session-manager.js +68 -0
  26. package/backend/provider-adapters.js +54 -5
  27. package/backend/review-session-store.js +32 -25
  28. package/backend/review-state-store.js +13 -14
  29. package/backend/run-history-store.js +13 -16
  30. package/backend/runtime-dependency-manager.js +759 -0
  31. package/backend/runtime-executable-invocation.js +20 -0
  32. package/backend/server-process-identity.js +47 -0
  33. package/backend/server.js +231 -223
  34. package/backend/slash-command-discovery.js +138 -1
  35. package/backend/storage-layout.js +35 -0
  36. package/backend/update-service.js +27 -1
  37. package/backend/workspace-file-router.js +141 -0
  38. package/backend/workspace-file-service.js +19 -0
  39. package/backend/workspace-root-registry.js +6 -4
  40. package/config/farming.install.env.example +4 -0
  41. package/dist/acp/LICENSE.claude-agent-acp +191 -0
  42. package/dist/acp/LICENSE.claude-agent-sdk +1 -0
  43. package/dist/acp/claude-agent-acp-0.59.0.mjs +41606 -0
  44. package/dist/assets/App-BKNUILuL.css +1 -0
  45. package/dist/assets/App-Ex2oVVXO.js +693 -0
  46. package/dist/assets/{FileEditorMarkdownPreview-Da5jguUs.js → FileEditorMarkdownPreview-Cs9cLv8a.js} +5 -5
  47. package/dist/assets/FileEditorPane-CNtuGjQ3.js +2 -0
  48. package/dist/assets/IconGlyphs-BClgag6E.js +1 -0
  49. package/dist/assets/ProjectFilesSection-Cf2BEcAN.js +12 -0
  50. package/dist/assets/ReviewPage-BRuxFaH5.js +3 -0
  51. package/dist/assets/{abnfDiagram-VRR7QNED-nnglrXFi.js → abnfDiagram-VRR7QNED-BY1qwq8A.js} +1 -1
  52. package/dist/assets/api-w2x5QfxB.js +1 -0
  53. package/dist/assets/{arc-CWoVlxJw.js → arc-DgZRAlwj.js} +1 -1
  54. package/dist/assets/{architectureDiagram-ZJ3FMSHR-BEXMaFfY.js → architectureDiagram-ZJ3FMSHR-jFn144od.js} +1 -1
  55. package/dist/assets/{blockDiagram-677ZJIJ3-1mCezSBk.js → blockDiagram-677ZJIJ3-BmRjlV0H.js} +1 -1
  56. package/dist/assets/{c4Diagram-LMCZKHZV-DhTiI6Uv.js → c4Diagram-LMCZKHZV-DUKul6tT.js} +1 -1
  57. package/dist/assets/{workspace-editor-monaco-DLlws5Ig.js → channel-CI9j3QFD.js} +1 -1
  58. package/dist/assets/chunk-2Q5K7J3B-87UnWaoh.js +1 -0
  59. package/dist/assets/{chunk-32BRIVSS-CCdsKd73.js → chunk-32BRIVSS-rGVu23o5.js} +1 -1
  60. package/dist/assets/{chunk-52WLFC77-Gncjk4LF.js → chunk-52WLFC77-CvFDKgbB.js} +1 -1
  61. package/dist/assets/{chunk-5VM5RSS4-Dlw7AXWp.js → chunk-5VM5RSS4-CFgnRW1C.js} +1 -1
  62. package/dist/assets/{chunk-7BUUIJ7U-ZBRhjLOh.js → chunk-7BUUIJ7U-Cp7bqW6s.js} +1 -1
  63. package/dist/assets/{chunk-C7G6YPKG-CiDVUP82.js → chunk-C7G6YPKG-BIS1gjZO.js} +1 -1
  64. package/dist/assets/{chunk-EX3LRPZG-z6gXP2_N.js → chunk-EX3LRPZG-BKG-cR9j.js} +1 -1
  65. package/dist/assets/{chunk-FWX5IMBZ-DMZBccQa.js → chunk-FWX5IMBZ-B8PsTr8a.js} +2 -2
  66. package/dist/assets/{chunk-HOUHSVGY-D8tIeoPk.js → chunk-HOUHSVGY-BHFOAiXT.js} +1 -1
  67. package/dist/assets/{chunk-ICXQ74PX-b6oQ2Q17.js → chunk-ICXQ74PX-CvLE1J9X.js} +1 -1
  68. package/dist/assets/{chunk-JWPE2WC7-DSyBRaRG.js → chunk-JWPE2WC7-D8misks7.js} +1 -1
  69. package/dist/assets/{chunk-MOJQB5TN-DAVH_p2a.js → chunk-MOJQB5TN-D-oNgSNH.js} +1 -1
  70. package/dist/assets/{chunk-OGEWGWER-DxoiMCI-.js → chunk-OGEWGWER-C2N-la9e.js} +1 -1
  71. package/dist/assets/{chunk-PUDLZKDR-NsOWh7HM.js → chunk-PUDLZKDR-BwI3Jz8q.js} +1 -1
  72. package/dist/assets/{chunk-Q4XR5HBZ-Di4H7L21.js → chunk-Q4XR5HBZ-BuqGfsXA.js} +1 -1
  73. package/dist/assets/{chunk-RYQCIY6F-CZA9pvFX.js → chunk-RYQCIY6F-Bq4XZcGt.js} +1 -1
  74. package/dist/assets/{chunk-V7JOEXUC-DttpZg9Y.js → chunk-V7JOEXUC-QZLzdTTJ.js} +1 -1
  75. package/dist/assets/chunk-VAUOI2AC-Cb0-kQ9g.js +1 -0
  76. package/dist/assets/{chunk-VR4S4FIN-D-Fmtd4Z.js → chunk-VR4S4FIN-DcZTpML_.js} +1 -1
  77. package/dist/assets/{chunk-WYO6CB5R-CUxMtfK2.js → chunk-WYO6CB5R-DCU8wuny.js} +2 -2
  78. package/dist/assets/chunk-XXDRQBXY-BZAC1Krv.js +1 -0
  79. package/dist/assets/{chunk-ZGVPDNZ5-CoV2QEl0.js → chunk-ZGVPDNZ5-B7r85QbY.js} +1 -1
  80. package/dist/assets/{chunk-ZIRB5QZD-DncwlQQc.js → chunk-ZIRB5QZD-BgEnDWhQ.js} +1 -1
  81. package/dist/assets/classDiagram-OUVF2IWQ-DcvGOuvi.js +1 -0
  82. package/dist/assets/classDiagram-v2-EOCWNBFH-DDYUSofQ.js +1 -0
  83. package/dist/assets/code-dark-BEZTQwYZ.css +1 -0
  84. package/dist/assets/{cose-bilkent-JH36ORCC-BNIAz0nN.js → cose-bilkent-JH36ORCC-CThXS2qG.js} +1 -1
  85. package/dist/assets/{cssMode-DDWxTPm_.js → cssMode-Bdg5RpcJ.js} +1 -1
  86. package/dist/assets/{cynefinDiagram-TSTJHNR4-0xPI92Lg.js → cynefinDiagram-TSTJHNR4-DxBgzw25.js} +1 -1
  87. package/dist/assets/{dagre-DXlcHgr3.js → dagre-BM-GvGUZ.js} +1 -1
  88. package/dist/assets/{dagre-VKFMJZFB-DfuMG4gU.js → dagre-VKFMJZFB-B7UCRmxR.js} +1 -1
  89. package/dist/assets/{diagram-FQU43EPY-CT00bLZ6.js → diagram-FQU43EPY-CeL2DwKx.js} +1 -1
  90. package/dist/assets/{diagram-G47NLZAW-Xbh7zXUx.js → diagram-G47NLZAW-BEirglCC.js} +1 -1
  91. package/dist/assets/{diagram-NH7WQ7WH-SRDVPfn7.js → diagram-NH7WQ7WH-C6wcI-Rl.js} +1 -1
  92. package/dist/assets/{diagram-OA4YK3LP-CQRli4Np.js → diagram-OA4YK3LP-DpM-XXtJ.js} +1 -1
  93. package/dist/assets/{diagram-WEI45ONY-DMf17WQi.js → diagram-WEI45ONY-BQyaut9k.js} +1 -1
  94. package/dist/assets/{ebnfDiagram-CCIWWBDH-DhpFkgJ5.js → ebnfDiagram-CCIWWBDH-UmAXsUhr.js} +1 -1
  95. package/dist/assets/{erDiagram-Q63AITRT-1IwxWmJo.js → erDiagram-Q63AITRT-CdYLEOch.js} +1 -1
  96. package/dist/assets/file-icons-BOlcJ0ZF.js +1 -0
  97. package/dist/assets/flowDiagram-23GEKE2U-CO-z9-tq.js +1 -0
  98. package/dist/assets/{freemarker2-QBsTERH-.js → freemarker2-DfMDJfnE.js} +1 -1
  99. package/dist/assets/{ganttDiagram-NO4QXBWP-BNCdfyr1.js → ganttDiagram-NO4QXBWP-DgSUNdUB.js} +1 -1
  100. package/dist/assets/{gitGraphDiagram-IHSO6WYX-pbyWZuiX.js → gitGraphDiagram-IHSO6WYX-DjwjtRtF.js} +1 -1
  101. package/dist/assets/{handlebars-CuoxPo5A.js → handlebars-BEdPtzMT.js} +1 -1
  102. package/dist/assets/{html-gX5PEu0Q.js → html-B1fPb1QD.js} +1 -1
  103. package/dist/assets/html2canvas-DsczWxBa.js +5 -0
  104. package/dist/assets/{htmlMode-DIWUbUxd.js → htmlMode-CY2ZjHxH.js} +1 -1
  105. package/dist/assets/{index-CtwKYTiC.js → index-CQNaZc3l.js} +2 -2
  106. package/dist/assets/{infoDiagram-FWYZ7A6U-BcTOgDbe.js → infoDiagram-FWYZ7A6U-Bi9076l2.js} +1 -1
  107. package/dist/assets/{ishikawaDiagram-FXEZZL3T-DCdvGKrn.js → ishikawaDiagram-FXEZZL3T-DaMaNZN7.js} +1 -1
  108. package/dist/assets/{javascript-BYKGIUGs.js → javascript-BV2OsWA0.js} +1 -1
  109. package/dist/assets/{journeyDiagram-5HDEW3XC-BZ-1q_IT.js → journeyDiagram-5HDEW3XC-CfDy69EZ.js} +1 -1
  110. package/dist/assets/{jsonMode-AFmQQP6u.js → jsonMode-zd07aeuX.js} +1 -1
  111. package/dist/assets/{kanban-definition-HUTT4EX6-BIgejCjj.js → kanban-definition-HUTT4EX6-XFvZ722B.js} +1 -1
  112. package/dist/assets/{line-CfptFMmX.js → line-BXK9PKLn.js} +1 -1
  113. package/dist/assets/{linear-Dld3_ERu.js → linear-CULvmq2Z.js} +1 -1
  114. package/dist/assets/{liquid-DBIl-f0z.js → liquid-BParI24X.js} +1 -1
  115. package/dist/assets/{lspLanguageFeatures-DK6tqicV.js → lspLanguageFeatures-BzredkoV.js} +1 -1
  116. package/dist/assets/main-DK9Sy7-c.css +1 -0
  117. package/dist/assets/{map-LZWWoeWa.js → map-C9Qw9eWh.js} +1 -1
  118. package/dist/assets/{mdx-DS-bVtZN.js → mdx-vGzUJN98.js} +1 -1
  119. package/dist/assets/{mermaid.core-gSpX30pV.js → mermaid.core-CzazaIKr.js} +3 -3
  120. package/dist/assets/{mindmap-definition-LN4V7U3C-BKBaI4LW.js → mindmap-definition-LN4V7U3C-Uoff7hZ3.js} +1 -1
  121. package/dist/assets/{monaco.contribution-BXz-lfFB.js → monaco.contribution-BmaeBQEc.js} +2 -2
  122. package/dist/assets/{ordinal-BLrOss5K.js → ordinal-r6pIwRdZ.js} +1 -1
  123. package/dist/assets/{pegDiagram-2B236MQR-sBvDY3VX.js → pegDiagram-2B236MQR-CCBiHQjk.js} +1 -1
  124. package/dist/assets/{pieDiagram-ENE6RG2P-DWlWcu08.js → pieDiagram-ENE6RG2P-D61s7l75.js} +1 -1
  125. package/dist/assets/{python-C93q3xXz.js → python-CUwdLgsI.js} +1 -1
  126. package/dist/assets/{quadrantDiagram-ABIIQ3AL-DZutUd3J.js → quadrantDiagram-ABIIQ3AL-D_CWk2DQ.js} +1 -1
  127. package/dist/assets/{railroadDiagram-RFXS5EU6-DQb3lXGM.js → railroadDiagram-RFXS5EU6-CdlCHtxN.js} +1 -1
  128. package/dist/assets/{razor-CBifNGXO.js → razor-BScebUxU.js} +1 -1
  129. package/dist/assets/{requirementDiagram-TGXJPOKE-DqFGXu2e.js → requirementDiagram-TGXJPOKE-BLpHtkoC.js} +1 -1
  130. package/dist/assets/{sankeyDiagram-HTMAVEWB-d7ECahnO.js → sankeyDiagram-HTMAVEWB-CkhYZN2j.js} +1 -1
  131. package/dist/assets/{sequenceDiagram-DBY2YBRQ-DdsbKqct.js → sequenceDiagram-DBY2YBRQ-8bploKJl.js} +1 -1
  132. package/dist/assets/{sizeCapture-X5ZJPWSS-daTB6OcF.js → sizeCapture-X5ZJPWSS-DtSdkS0d.js} +1 -1
  133. package/dist/assets/{src-WBW1QxJt.js → src-6yeq6WBA.js} +1 -1
  134. package/dist/assets/{stateDiagram-2N3HPSRC-P6iSrgwR.js → stateDiagram-2N3HPSRC-DfmVGpfA.js} +1 -1
  135. package/dist/assets/stateDiagram-v2-6OUMAXLB-B2c9CQ-J.js +1 -0
  136. package/dist/assets/{swimlanes-5IMT3BWC-BGnZJx1M.js → swimlanes-5IMT3BWC-DRLk2zRF.js} +2 -2
  137. package/dist/assets/swimlanesDiagram-G3AALYLV-B7_APh_h.js +8 -0
  138. package/dist/assets/{timeline-definition-FHXFAJF6-rA-r3aUR.js → timeline-definition-FHXFAJF6-Cngfy588.js} +1 -1
  139. package/dist/assets/{tsMode-B0oUTcXQ.js → tsMode-DzUAibXK.js} +1 -1
  140. package/dist/assets/{typescript-KJKfYO7K.js → typescript-D9EOeM7N.js} +1 -1
  141. package/dist/assets/{vennDiagram-L72KCM5P-DiVKUjA9.js → vennDiagram-L72KCM5P-DeJn63Lq.js} +1 -1
  142. package/dist/assets/{wardleyDiagram-EHGQE667-Cfxh7UOn.js → wardleyDiagram-EHGQE667-BH1nzy77.js} +1 -1
  143. package/dist/assets/{workers-BSQRIkqa.js → workers-DAiomYZM.js} +1 -1
  144. package/dist/assets/workspace-editor-model-CSGCl21x.js +1 -0
  145. package/dist/assets/{workspace-editor-monaco-BIpqcWf1.js → workspace-editor-monaco-CJNwbpCy.js} +3 -3
  146. package/dist/assets/workspace-editor-monaco-CO9w8YV0.js +1 -0
  147. package/dist/assets/workspace-view-state-BjKPYp0E.js +7 -0
  148. package/dist/assets/{xml-C8FAcN6j.js → xml-wWl1dhkQ.js} +1 -1
  149. package/dist/assets/{xychartDiagram-FW5EYKEG--hmryQeL.js → xychartDiagram-FW5EYKEG-SkO2prCU.js} +1 -1
  150. package/dist/assets/{yaml-BQ4NrRhG.js → yaml-Dc2WDaOZ.js} +1 -1
  151. package/dist/crt-markdown-renderer.js +46 -46
  152. package/dist/index.html +32 -3
  153. package/extensions/browser/backend/agent-browser-runtime.js +1041 -0
  154. package/extensions/browser/backend/agent-capability.js +55 -0
  155. package/extensions/browser/backend/browser-mcp-server.js +621 -0
  156. package/extensions/browser/backend/browser-resource-manager.js +1309 -0
  157. package/extensions/browser/backend/browser-resource-store.js +190 -0
  158. package/extensions/browser/backend/browser-router.js +133 -0
  159. package/extensions/browser/backend/executable-discovery.js +224 -0
  160. package/extensions/browser/backend/farming-browser-client.js +83 -0
  161. package/extensions/browser/backend/index.js +7 -0
  162. package/extensions/browser/bin/farming-browser +471 -0
  163. package/extensions/browser/frontend/BrowserSidebarPortals.tsx +360 -0
  164. package/extensions/browser/frontend/BrowserViewer.tsx +500 -0
  165. package/extensions/browser/frontend/browser-resource-state.ts +60 -0
  166. package/extensions/browser/frontend/browser.css +567 -0
  167. package/extensions/browser/frontend/types.ts +31 -0
  168. package/extensions/browser/frontend/useBrowserResources.ts +158 -0
  169. package/frontend/session-bridge.js +7 -6
  170. package/frontend/skins/crt/app.js +64 -4
  171. package/index.html +31 -2
  172. package/package.json +27 -18
  173. package/shared/backend-connection-status.d.ts +12 -0
  174. package/shared/backend-connection-status.js +35 -4
  175. package/shared/browser-protocol.js +1 -1
  176. package/backend/agent-activity.js +0 -35
  177. package/dist/assets/App-BrP-ENHg.css +0 -1
  178. package/dist/assets/App-Cm8qTjsc.js +0 -210
  179. package/dist/assets/FileEditorPane-fFqHA4wW.js +0 -2
  180. package/dist/assets/IconGlyphs-C2WFcoJS.js +0 -1
  181. package/dist/assets/ProjectFilesSection-Cyy3Vcn8.js +0 -12
  182. package/dist/assets/ReviewPage-L1vh1Ggs.js +0 -3
  183. package/dist/assets/api-D8nyOEbz.js +0 -1
  184. package/dist/assets/channel-BVWNatUB.js +0 -1
  185. package/dist/assets/chunk-2Q5K7J3B-d5WWh8jo.js +0 -1
  186. package/dist/assets/chunk-VAUOI2AC-UHNr_yhX.js +0 -1
  187. package/dist/assets/chunk-XXDRQBXY-BBXwjhUx.js +0 -1
  188. package/dist/assets/classDiagram-OUVF2IWQ-Db0ib5iE.js +0 -1
  189. package/dist/assets/classDiagram-v2-EOCWNBFH-Bkf69XF9.js +0 -1
  190. package/dist/assets/code-dark-BKtvf0Xc.css +0 -1
  191. package/dist/assets/file-icons-BqiH0rDI.js +0 -1
  192. package/dist/assets/flowDiagram-23GEKE2U-DYFo2xmB.js +0 -1
  193. package/dist/assets/main-XMXgyJJt.css +0 -1
  194. package/dist/assets/stateDiagram-v2-6OUMAXLB-DIYSf_qh.js +0 -1
  195. package/dist/assets/swimlanesDiagram-G3AALYLV-BIkrlKrZ.js +0 -8
  196. package/dist/assets/workspace-editor-model-D0Im34S5.js +0 -1
  197. package/dist/assets/workspace-view-state-BiuEbmRr.js +0 -7
  198. /package/dist/acp/{codex-acp-1.1.4.js → codex-acp-1.1.4.mjs} +0 -0
  199. /package/dist/assets/{abap-Cc5D5h5i.js → abap-CtX5nWyX.js} +0 -0
  200. /package/dist/assets/{apex-BKopwLmx.js → apex-DQJRAHwc.js} +0 -0
  201. /package/dist/assets/{array-HeX70jSN.js → array-BTwzYU0x.js} +0 -0
  202. /package/dist/assets/{azcli-DI-C34WA.js → azcli-9SMrOQ4q.js} +0 -0
  203. /package/dist/assets/{bat-Cbp6u42z.js → bat-CBGLUsw1.js} +0 -0
  204. /package/dist/assets/{bicep-4QA1jTCM.js → bicep-pDx8da1v.js} +0 -0
  205. /package/dist/assets/{cameligo-Dda_adPs.js → cameligo-hZV3vQ6_.js} +0 -0
  206. /package/dist/assets/{chunk-Y2CYZVJY-Di0sYzi1.js → chunk-Y2CYZVJY-BYi0W5ea.js} +0 -0
  207. /package/dist/assets/{clojure-CvY8A83L.js → clojure-BhCwU3gq.js} +0 -0
  208. /package/dist/assets/{coffee-4LX2Sv8A.js → coffee-BVB1PsgH.js} +0 -0
  209. /package/dist/assets/{core-B9MwRjDE.js → core-vPkV8P_m.js} +0 -0
  210. /package/dist/assets/{cpp-D4AzSV28.js → cpp-eTjuiNPq.js} +0 -0
  211. /package/dist/assets/{csharp-C4nWN4Yd.js → csharp-1kP-kKZT.js} +0 -0
  212. /package/dist/assets/{csp-CiEaaS5Z.js → csp-C_iQqIes.js} +0 -0
  213. /package/dist/assets/{css-DXxBRsbk.js → css-CxOs7IfP.js} +0 -0
  214. /package/dist/assets/{cypher-DOMzqyFA.js → cypher-Cd-a9Y82.js} +0 -0
  215. /package/dist/assets/{cytoscape.esm-Cl8iC3D7.js → cytoscape.esm-OLojuicg.js} +0 -0
  216. /package/dist/assets/{dart-BWS7MXt_.js → dart-whhXpexn.js} +0 -0
  217. /package/dist/assets/{defaultLocale-GJwWH1Jr.js → defaultLocale-CPimVhfE.js} +0 -0
  218. /package/dist/assets/{dist-ClAL-Tv5.js → dist-CLPYXg1u.js} +0 -0
  219. /package/dist/assets/{dockerfile-Baf4U3xT.js → dockerfile-DibBi8b6.js} +0 -0
  220. /package/dist/assets/{ecl-CT7udlkQ.js → ecl-DlF1KdoW.js} +0 -0
  221. /package/dist/assets/{editor.api2-B9h6iFPK.js → editor.api2-D74ufkbr.js} +0 -0
  222. /package/dist/assets/{elixir-CIbAZw5l.js → elixir-CHQ8uFT3.js} +0 -0
  223. /package/dist/assets/{flow9-Dqiw45WV.js → flow9-8nUnVKk1.js} +0 -0
  224. /package/dist/assets/{fsharp-E8E2L9jU.js → fsharp-DNZNZyEE.js} +0 -0
  225. /package/dist/assets/{go-CouVSN4D.js → go-_kPJjNc_.js} +0 -0
  226. /package/dist/assets/{graphlib-CbSvZcZU.js → graphlib-CBGF9gA9.js} +0 -0
  227. /package/dist/assets/{graphql-a6h6h5-t.js → graphql-4HCNVt5g.js} +0 -0
  228. /package/dist/assets/{hcl-vso3e6N-.js → hcl-C87ymY0o.js} +0 -0
  229. /package/dist/assets/{ini-SwZZkotR.js → ini-BYrrGNTc.js} +0 -0
  230. /package/dist/assets/{init-BPLPMQ3Y.js → init-8_PCa3LO.js} +0 -0
  231. /package/dist/assets/{java-CtRLC4_3.js → java-B211rJbk.js} +0 -0
  232. /package/dist/assets/{julia-CuJWFKQH.js → julia-DVPsRtBm.js} +0 -0
  233. /package/dist/assets/{katex-C8DPyI6s.js → katex-C2iYad0m.js} +0 -0
  234. /package/dist/assets/{kotlin-B_kBhsre.js → kotlin-BYyNerjp.js} +0 -0
  235. /package/dist/assets/{less-CtrHIfz3.js → less-EC9UblGE.js} +0 -0
  236. /package/dist/assets/{lexon-yVt1pJLu.js → lexon-B1yuUdqW.js} +0 -0
  237. /package/dist/assets/{lua-prOwgJ4U.js → lua-Bo6GFzxT.js} +0 -0
  238. /package/dist/assets/{m3-DhrdTQ84.js → m3-C-Y9cBVI.js} +0 -0
  239. /package/dist/assets/{markdown-DoI5HwSM.js → markdown-BHu-wLbe.js} +0 -0
  240. /package/dist/assets/{mermaid-parser.core-BQtepoLd.js → mermaid-parser.core-IxcGtNYG.js} +0 -0
  241. /package/dist/assets/{mips-Dye5jsBU.js → mips-Dkds26rX.js} +0 -0
  242. /package/dist/assets/{msdax-TkNOyIL8.js → msdax-PU4g-8_g.js} +0 -0
  243. /package/dist/assets/{mysql-CEc-RKZF.js → mysql-fPpuGpS7.js} +0 -0
  244. /package/dist/assets/{objective-c-CqqCsQz0.js → objective-c-Wy1e5JUf.js} +0 -0
  245. /package/dist/assets/{pascal-DO_pj8yg.js → pascal-BIXwvrqU.js} +0 -0
  246. /package/dist/assets/{pascaligo-1cbdZdF3.js → pascaligo-DwR0AtL_.js} +0 -0
  247. /package/dist/assets/{path-YdFzr2W6.js → path-BxQuywGl.js} +0 -0
  248. /package/dist/assets/{perl-B_N3PYfC.js → perl-CGHAl8my.js} +0 -0
  249. /package/dist/assets/{pgsql-9iYk1FQ7.js → pgsql-B91M73E2.js} +0 -0
  250. /package/dist/assets/{php-rO2sgoUM.js → php-C70ttrCx.js} +0 -0
  251. /package/dist/assets/{pla-Cbgv60kq.js → pla-BNrXaRh0.js} +0 -0
  252. /package/dist/assets/{postiats-y6xrhy_M.js → postiats-Dv2IAZR9.js} +0 -0
  253. /package/dist/assets/{powerquery-BaD8gWNE.js → powerquery-CkY5Wq7J.js} +0 -0
  254. /package/dist/assets/{powershell-BMhG4JVe.js → powershell-uGIYLU3C.js} +0 -0
  255. /package/dist/assets/{protobuf-CdOP5kN3.js → protobuf-CavfmJu-.js} +0 -0
  256. /package/dist/assets/{pug-Ck60hNF9.js → pug-Drqnyitx.js} +0 -0
  257. /package/dist/assets/{qrcode-DV-_rjU8.js → qrcode-7uGsTEmi.js} +0 -0
  258. /package/dist/assets/{qsharp-BcaKFfP-.js → qsharp-C7yF-Dti.js} +0 -0
  259. /package/dist/assets/{r-rFNes0iK.js → r-HXLGP0_-.js} +0 -0
  260. /package/dist/assets/{redis-DkpQ3K6G.js → redis-C4y6mf2p.js} +0 -0
  261. /package/dist/assets/{redshift-Di9N5TI3.js → redshift-DdQrFPrv.js} +0 -0
  262. /package/dist/assets/{restructuredtext-By5ZzLt6.js → restructuredtext-CBrf2PNj.js} +0 -0
  263. /package/dist/assets/{rough.esm-c4PR5shF.js → rough.esm-6CnTHTkH.js} +0 -0
  264. /package/dist/assets/{ruby-fF5zGiLp.js → ruby-CVtMoX2B.js} +0 -0
  265. /package/dist/assets/{rust-C5b3AYY6.js → rust-Ckq4sbMP.js} +0 -0
  266. /package/dist/assets/{sb-CD07UNRs.js → sb-er66OpE3.js} +0 -0
  267. /package/dist/assets/{scala-jtn1ip9G.js → scala-BdWZz-hH.js} +0 -0
  268. /package/dist/assets/{scheme-C4vqMkn_.js → scheme-kTV_s2kP.js} +0 -0
  269. /package/dist/assets/{scss-I4Glxjbz.js → scss-Bymy2VJQ.js} +0 -0
  270. /package/dist/assets/{shell-DubUcuns.js → shell-bwEP1LQ1.js} +0 -0
  271. /package/dist/assets/{solidity-CNy2KSl2.js → solidity-DCddeBgL.js} +0 -0
  272. /package/dist/assets/{sophia-D9_URt84.js → sophia-BMN3AQig.js} +0 -0
  273. /package/dist/assets/{sparql-DviXpm4C.js → sparql-CSXOLjzi.js} +0 -0
  274. /package/dist/assets/{sql-vDRbAZgK.js → sql-COg8ewmK.js} +0 -0
  275. /package/dist/assets/{st-CnpnRqA7.js → st-CIaZtBS_.js} +0 -0
  276. /package/dist/assets/{swift-D_g8Ganz.js → swift-DXiOhUHu.js} +0 -0
  277. /package/dist/assets/{systemverilog-OuZa5h1M.js → systemverilog-BTDE6Dr2.js} +0 -0
  278. /package/dist/assets/{tcl-DBm9ucsV.js → tcl-B0zy9NvV.js} +0 -0
  279. /package/dist/assets/{twig-BRzEqX5Y.js → twig-D594l4Z1.js} +0 -0
  280. /package/dist/assets/{typespec-D4ZgGeX8.js → typespec-XKVjaPqo.js} +0 -0
  281. /package/dist/assets/{useWorkspaceMenuKeyboard-Brws6Ar9.js → useWorkspaceMenuKeyboard-Bpy_s69Z.js} +0 -0
  282. /package/dist/assets/{vb-DcP4s6WS.js → vb-B2wYoKRV.js} +0 -0
  283. /package/dist/assets/{wgsl-CnRJ_QUf.js → wgsl-D0Yf2LbK.js} +0 -0
  284. /package/dist/assets/{workspace-working-copy-D8-s_Sgh.js → workspace-working-copy-C3FSR3N6.js} +0 -0
@@ -1,3 +0,0 @@
1
- import{r as e}from"./chunk-DECur_0Z.js";import{i as t,t as n}from"./jsx-runtime-BthL93pI.js";import{M as r,_ as i,c as a,d as o,g as s,h as c,l,p as u}from"./IconGlyphs-C2WFcoJS.js";import{a as d,c as f,d as p,i as m,l as h,n as g,o as _,r as v,s as y,t as b,u as x}from"./core-B9MwRjDE.js";import{A as S,C as ee,D as te,E as ne,F as re,M as ie,N as C,O as ae,P as oe,S as se,T as ce,_ as le,a as ue,b as w,c as de,d as fe,f as pe,g as me,h as he,i as ge,j as T,k as _e,l as ve,m as ye,n as be,p as xe,r as Se,s as Ce,t as we,u as Te,v as Ee,w as De,x as Oe,y as ke}from"./api-D8nyOEbz.js";var E=e(t());function D(e){let t=[`package`,`import`,`option`,`optional`,`required`,`repeated`,`group`,`oneof`],n=[`double`,`float`,`int32`,`int64`,`uint32`,`uint64`,`sint32`,`sint64`,`fixed32`,`fixed64`,`sfixed32`,`sfixed64`,`bool`,`string`,`bytes`],r={match:[/(message|enum|service)\s+/,e.IDENT_RE],scope:{1:`keyword`,2:`title.class`}};return{name:`Protocol Buffers`,aliases:[`proto`],keywords:{keyword:t,type:n,literal:[`true`,`false`]},contains:[e.QUOTE_STRING_MODE,e.NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,r,{className:`function`,beginKeywords:`rpc`,end:/[{;]/,excludeEnd:!0,keywords:`rpc returns`},{begin:/^\s*[A-Z_]+(?=\s*=[^\n]+;$)/}]}}function Ae(e){return e instanceof Error&&e.message.trim()?e.message.trim():typeof e==`string`&&e.trim()?e.trim():`review file diff request failed`}function O(e){return e.diffLoaded===!1&&!ie(e)}function je(e,t,n,r={}){if(t.reviewId!==void 0&&r.reviewId!==t.reviewId)throw Error(`loaded review file belongs to a stale review`);if(n.path!==t.path)throw Error(`loaded review file path does not match requested path`);if(O(n))throw Error(`loaded review file is still a metadata-only row`);if(!e[t.patchset]?.some(e=>e.path===t.path))throw Error(`loaded review file path is no longer in the review catalog`);return{action:{patchset:t.patchset,path:t.path,...t.reviewId?{reviewId:t.reviewId}:{},type:`commit-file-diff-load`},catalog:se(e,t.patchset,{...n,diffLoaded:!0})}}function Me(e,t){return{error:Ae(t),patchset:e.patchset,path:e.path,...e.reviewId?{reviewId:e.reviewId}:{},type:`fail-file-diff-load`}}function k(e){return e===`added`?`A`:e===`copied`?`C`:e===`deleted`?`D`:e===`renamed`?`R`:e===`rewritten`?`W`:e===`unmodified`?`U`:e===`reverted`?`X`:`M`}function A(e){return e.status?e.status:k(e.kind)}function j(e){return _e(e)}function Ne(e){return e.binary?`binary`:ie(e)?`too-expensive`:e.diffLoaded===!1?`not-loaded`:`loaded`}function Pe(e,t,n={}){let r=n.patchset??e.patchRange.patchset,i=C(e,t.path,r),a=oe(e,r),o=i.loaded?i.status===`reviewed`:null;return{action:o===null?null:{ariaLabel:o?`Mark as unreviewed`:`Mark as reviewed`,disabled:!!n.mutationPending,label:o?`MARK UNREVIEWED`:`MARK REVIEWED`,nextReviewed:!o,visibility:`on-row-interaction`},added:t.added,binary:t.binary===!0,changeLabel:A(t),commentPaths:j(t),deleted:t.removed,...T(e,t.path,r)?{diffLoadError:T(e,t.path,r)}:{},diffLoadPending:a.pendingDiffPaths.includes(t.path),diffStatus:Ne(t),diffTooExpensive:t.diffTooExpensive===!0||t.diff.truncated===!0,expanded:a.expandedPaths.includes(t.path),...t.newMode?{newMode:t.newMode}:{},...t.newSha?{newSha:t.newSha}:{},...t.oldMode?{oldMode:t.oldMode}:{},...t.oldSha?{oldSha:t.oldSha}:{},path:t.path,pending:i.pending,...t.previousPath?{previousPath:t.previousPath}:{},reviewed:o,reviewedLabel:o===!0?`Reviewed`:null,reviewStatusLoaded:i.loaded,...Number.isInteger(t.size)?{size:t.size}:{},...Number.isInteger(t.sizeDelta)?{sizeDelta:t.sizeDelta}:{}}}function Fe(e){let t=typeof e==`string`?new URLSearchParams(e):e,n=t.get(`agentId`)?.trim()||``,r=[...new Set(t.getAll(`acpItem`).map(e=>e.trim()).filter(Boolean))];return!n||r.length===0||r.length>256?null:{agentId:n,itemIds:r}}function M(e,t,n){let r=e.get(t);if(r===null||r.trim()===``||!/^\d+$/.test(r.trim()))return;let i=Number(r.trim());return Number.isSafeInteger(i)&&i>=n?i:void 0}function Ie(e){let t=e.get(`ignoreWhitespace`);if(t===`ALL`||t===`IGNORE_ALL`)return`ALL`;if(t===`TRAILING`||t===`IGNORE_TRAILING`)return`TRAILING`;if(t===`LEADING_AND_TRAILING`||t===`IGNORE_LEADING_AND_TRAILING`)return`LEADING_AND_TRAILING`}function Le(e){let t=e.get(`metadataOnly`);return t===`1`||t===`true`?!0:void 0}function Re(e){let t=e.get(`scope`);return t===`tracked`||t===`untracked`?t:void 0}function ze(e){let t=M(e,`context`,0),n=Ie(e),r=M(e,`limit`,1),i=Le(e),a=M(e,`modifiedWithinDays`,1),o=Re(e),s=e.getAll(`path`).map(e=>e.trim()).filter(Boolean);return{...t===void 0?{}:{context:t},...n?{ignoreWhitespace:n}:{},...r===void 0?{}:{limit:r},...i===!0?{metadataOnly:i}:{},...o?{scope:o}:{},...s.length>0?{paths:s}:{},...o===`untracked`&&a!==void 0?{modifiedWithinDays:a}:{}}}function Be(e){let t=typeof e==`string`?new URLSearchParams(e):e,n=t.get(`agentId`)?.trim()||``,r=t.get(`root`)?.trim()||``;if(n&&r)return{error:`only one review workspace target is allowed`,request:null};if(!n&&!r)return{request:null};let i=n?{agentId:n}:{root:r},a=ze(t),o=t.get(`reviewId`)?.trim()||``,s=t.get(`base`),c=t.get(`head`);if(!(s!==null||c!==null))return{request:{...i,...a,source:`working-copy`}};let l=w(s||``),u=w(c||``);return!l||!u?{error:`base and head revisions are invalid`,request:null}:{request:{...i,base:l,head:u,...a,...o?{reviewId:o}:{},source:`git-range`}}}function Ve(e){return Be(e?.search??``)}var N=n();async function He(e,t){let n=[],r=[],i=0;return await Promise.all(Array.from({length:Math.min(4,t.length)},async()=>{for(;i<t.length;){let a=t[i++];if(a)try{n.push(await fe(e,a))}catch(e){r.push(e instanceof Error?e:Error(`review file diff request failed`))}}})),{errors:r,files:n}}function Ue(e){let t=L(e.path),n=t===`python`,r=tt(e.path).replace(/\W/g,`_`),i=(e,t)=>({kind:`context`,left:{line:e,text:t},right:{line:e,text:t}}),a=Array.from({length:128},(e,n)=>{let r=n+1,a=t===`python`?`#`:t===`markdown`?`<!--`:`//`,o=t===`markdown`?` -->`:``,s=r>=29?`unchanged review context ${r-28}`:`unchanged review prelude ${r}`;return i(r,`${r===29||r===128?` `:``}${a} ${s}${o}`)});if(e.kind===`added`){let t=n?`${r} = create_review_snapshot()`:`export const ${r} = createReviewSnapshot()`,i=n?`__all__ = ["${r}"]`:`export default ${r}`;return{hunks:[{header:`@@ -0,0 +1,2 @@ ${e.path}`,oldStart:0,oldLines:0,newStart:1,newLines:2,rows:[{kind:`added`,right:{line:1,text:t}},{kind:`added`,right:{line:2,text:i}}]}]}}if(e.kind===`deleted`){let t=n?`def summarize_changes():`:`export function summarizeChanges() {`,r=n?` return "legacy summary"`:` return 'legacy summary'`;return{hunks:[{header:`@@ -1,2 +0,0 @@ ${e.path}`,oldStart:1,oldLines:2,newStart:0,newLines:0,rows:[{kind:`deleted`,left:{line:1,text:t}},{kind:`deleted`,left:{line:2,text:r}}]}]}}let o=n?`def create_change_set(input: ChangeInput) -> list[ReviewEntry]:`:`export function createChangeSet(input: ChangeInput) {`,s=n?` return normalize_changes(input.files)`:` return normalizeChanges(input.files)`,c=n?` return create_review_entries(input.files, input.base)`:` return createReviewEntries(input.files, input.base)`,l=n?`def mark_reviewed(path: str) -> ReviewState:`:`export function markReviewed(path: string) {`,u=n?` return {"path": path, "reviewed_at": time.time()}`:` return { path, reviewedAt: Date.now() }`,d=n?`if not path:`:` if (!path) return null`,f=n?` return None`:` const snapshot = readSnapshot(input.base)`,p=n?`return {**snapshot, "files": input.files}`:` return { ...snapshot, files: input.files }`,m=n?``:`}`,h=n?` return finalize_change_set(input) `:` return finalizeChangeSet(input) `;return{hunks:[{commonContext:a,header:`@@ -129,7 +129,10 @@ ${e.path}`,oldStart:129,oldLines:7,newStart:129,newLines:10,rows:[i(129,o),{kind:`deleted`,left:{line:130,text:s}},{kind:`added`,right:{line:130,text:c}},i(131,m),{kind:`added`,right:{line:133,text:l}},{kind:`added`,right:{line:134,text:u}},i(135,d),i(136,f),{kind:`added`,right:{line:137,text:p}},i(138,m),{kind:`deleted`,left:{line:139,text:h},whitespaceOnly:!0},{kind:`added`,right:{line:139,text:h.trimEnd()},whitespaceOnly:!0}]}]}}function We(e){return{...e,diff:Ue(e)}}var Ge=Object.fromEntries(Object.entries({"Patchset 20":[{path:`clis/dataflow.py`,kind:`modified`,added:2,removed:85},{path:`clis/diagnose.py`,kind:`modified`,added:8,removed:11},{path:`clis/fetch_instance_log.py`,kind:`deleted`,added:0,removed:573},{path:`clis/fetch_logview.py`,kind:`modified`,added:2,removed:2},{path:`clis/fetch_meta_timeline.py`,kind:`modified`,added:0,removed:2},{path:`clis/fetch_quota_snapshot.py`,kind:`deleted`,added:0,removed:290},{path:`clis/hbo_plan_diagnose.py`,kind:`deleted`,added:0,removed:119},{path:`clis/parse_logview.py`,kind:`modified`,added:6,removed:2},{path:`clis/query_sls.py`,kind:`modified`,added:14,removed:2},{path:`devclis/README.md`,kind:`added`,added:15,removed:0},{path:`docs/cli/studio.md`,kind:`modified`,added:1,removed:2},{path:`tests/review/change-set.spec.ts`,kind:`renamed`,previousPath:`tests/changes/change-summary.spec.ts`,added:28,removed:6}],"Patchset 19":[{path:`clis/dataflow.py`,kind:`modified`,added:1,removed:52},{path:`clis/diagnose.py`,kind:`modified`,added:5,removed:6},{path:`clis/fetch_instance_log.py`,kind:`deleted`,added:0,removed:573},{path:`clis/fetch_logview.py`,kind:`modified`,added:1,removed:2},{path:`clis/fetch_meta_timeline.py`,kind:`modified`,added:0,removed:2},{path:`clis/hbo_plan_diagnose.py`,kind:`deleted`,added:0,removed:119},{path:`clis/parse_logview.py`,kind:`modified`,added:4,removed:2},{path:`clis/query_sls.py`,kind:`modified`,added:7,removed:1},{path:`docs/cli/studio.md`,kind:`modified`,added:1,removed:1}]}).map(([e,t])=>[e,t.map(We)])),Ke=`Working copy`,qe=`Review`,P={"Patchset 20":[`clis/dataflow.py`,`clis/fetch_instance_log.py`],"Patchset 19":[`clis/fetch_instance_log.py`]},Je=De,Ye=`farming.review.diff-preferences`;b.registerLanguage(`typescript`,m),b.registerLanguage(`python`,_),b.registerLanguage(`sql`,d),b.registerLanguage(`markdown`,y),b.registerLanguage(`cpp`,x),b.registerLanguage(`java`,h),b.registerLanguage(`protobuf`,D),b.registerLanguage(`json`,f),b.registerLanguage(`yaml`,g),b.registerLanguage(`bash`,p),b.registerLanguage(`xml`,v);function Xe(){if(typeof window>`u`)return Je;try{return te(JSON.parse(window.localStorage.getItem(Ye)||`{}`))}catch{return Je}}function Ze(e,t=!0){return e?e.source===`git-range`?e.head:Ke:t?`Patchset 20`:qe}function Qe(e,t=!0){return e?e.source===`git-range`?e.base:`HEAD`:`Base`}function $e(e,t=!0){return e?{[Ze(e,t)]:[]}:t?Ge:{[qe]:[]}}function et({catalog:e,comments:t,initialPatchset:n,basePatchset:r,initiallyExpand:i,reviewId:a}){let o=ne({catalog:e,comments:t,patchRange:{basePatchset:r,patchset:n},preferences:Xe(),reviewId:a,reviewedPathsByPatchset:n===`Patchset 20`||n===`Patchset 19`?P:{}});return i?{...o,patchsets:Object.fromEntries(Object.keys(e).map(t=>{let n=e[t]??[],r=n[1]?.path??n[0]?.path;return[t,{...oe(o,t),expandedPaths:r?[r]:[]}]}))}:o}function tt(e){let t=e.split(`/`);return t[t.length-1]||e}function F(e){let t=Math.abs(e);return t<1024?`${e} B`:t<1024*1024?`${(e/1024).toFixed(1)} KiB`:`${(e/(1024*1024)).toFixed(1)} MiB`}function I(e){return e.replace(/[&<>"']/g,e=>({"&":`&amp;`,"<":`&lt;`,">":`&gt;`,'"':`&quot;`,"'":`&#39;`})[e]??e)}function nt(e,t,n){return Array.from(e).slice(t,n).join(``)}function rt({action:e,pending:t,reviewed:n,reviewedLabel:r,onToggle:i}){return(0,N.jsxs)(`div`,{className:`review-review-status ${n?`reviewed`:``} ${t?`pending`:``}`,children:[r?(0,N.jsx)(`span`,{className:`review-reviewed-label`,children:r}):null,e?(0,N.jsx)(`button`,{type:`button`,"aria-checked":n===!0,"aria-label":`Reviewed`,"data-action-visibility":e.visibility,disabled:e.disabled,role:`switch`,title:t?`Saving review status`:e.ariaLabel,onClick:i,children:t?`SAVING…`:e.label}):(0,N.jsx)(`span`,{className:`review-review-loading`,children:`Reviewed status loading`})]})}function it({file:e,maxChangeSize:t}){if(e.binary)return(0,N.jsx)(`span`,{className:`review-change-bar binary`,"aria-label":`Binary file`});let n=e=>e===0?0:Math.max(2,Math.round(e/t*72));return(0,N.jsxs)(`span`,{className:`review-change-bar`,"aria-label":`+${e.added} −${e.removed}`,children:[(0,N.jsx)(`i`,{className:`added`,style:{width:`${n(e.added)}px`}}),(0,N.jsx)(`i`,{className:`deleted`,style:{width:`${n(e.removed)}px`}})]})}function at({file:e}){if(e.binary){let t=typeof e.sizeDelta==`number`&&Number.isInteger(e.sizeDelta)?e.sizeDelta:null;return(0,N.jsx)(`span`,{className:`review-file-stats binary`,children:t===null?`Binary`:F(t)})}return(0,N.jsxs)(`span`,{className:`review-file-stats`,children:[e.added?(0,N.jsxs)(`span`,{className:`added`,children:[`+`,e.added]}):null,e.removed?(0,N.jsxs)(`span`,{className:`removed`,children:[`−`,e.removed]}):null]})}function L(e){let t=e.toLowerCase();return t.endsWith(`.osql`)||t.endsWith(`.odpsql`)?`sql`:t.endsWith(`.py`)?`python`:t.endsWith(`.md`)||t.endsWith(`.mdx`)?`markdown`:/\.(c|cc|cpp|cxx|h|hh|hpp|hxx)$/.test(t)?`cpp`:t.endsWith(`.java`)?`java`:t.endsWith(`.proto`)?`protobuf`:t.endsWith(`.json`)?`json`:t.endsWith(`.yaml`)||t.endsWith(`.yml`)?`yaml`:/\.(bash|sh|zsh)$/.test(t)?`bash`:/\.(html|htm|xml)$/.test(t)?`xml`:`typescript`}function R({intraline:e,language:t,line:n,side:r,text:i,preferences:a}){let o=n&&r?{"data-review-line":n,"data-review-side":r}:{},s=a.showTrailingWhitespace?i.match(/[ \t]+$/)?.[0]:void 0,c=s?i.slice(0,-s.length):i,l=a.intralineDifference?e:void 0,u=l?.length?ot(c,l,t,a):z(c,t,a);return a.showTabs&&(u=u.replace(/\t/g,`<span class="review-tab-marker">⇥</span>`)),s&&(u+=`<span class="review-trailing-whitespace">${s.replace(/[ \t]/g,`·`)}</span>`),(0,N.jsx)(`code`,{...o,dangerouslySetInnerHTML:{__html:u}})}function z(e,t,n){return n.syntaxHighlighting&&e?b.highlight(e,{language:t,ignoreIllegals:!0}).value:I(e)}function ot(e,t,n,r){let i=``,a=0,o=Array.from(e).length;for(let s of t){let t=Math.max(a,Math.min(s.start,o)),c=Math.max(t,Math.min(s.end,o));i+=z(nt(e,a,t),n,r),c>t&&(i+=`<span class="review-intraline">${z(nt(e,t,c),n,r)}</span>`),a=c}return i+=z(nt(e,a),n,r),i}function B({kind:e,intraline:t,language:n,line:r,side:i,text:a,preferences:o,renderAttachment:s}){return(0,N.jsxs)(N.Fragment,{children:[(0,N.jsxs)(`div`,{className:`review-diff-row unified ${e}`,children:[(0,N.jsx)(`span`,{children:r??``}),(0,N.jsx)(R,{intraline:t,language:n,line:r,side:i,text:a,preferences:o})]}),r?s?.(r,[i]):null]})}function V({kind:e,language:t,leftLine:n,leftIntraline:r,leftText:i,rightLine:a,rightIntraline:o,rightText:s,preferences:c,renderAttachment:l}){let u=a??n,d=[...n?[`left`]:[],...a?[`right`]:[]];return(0,N.jsxs)(N.Fragment,{children:[(0,N.jsxs)(`div`,{className:`review-diff-row ${e}`,children:[(0,N.jsx)(`span`,{children:n??``}),(0,N.jsx)(R,{intraline:r,language:t,line:n,side:`left`,text:i??``,preferences:c}),(0,N.jsx)(`span`,{children:a??``}),(0,N.jsx)(R,{intraline:o,language:t,line:a,side:`right`,text:s??``,preferences:c})]}),u?l?.(u,d):null]})}function H(e){let t=e.findIndex(e=>e.kind!==`context`);if(t<0)return{body:e,leading:[],trailing:[]};let n=e.length-1;for(;n>t&&e[n]?.kind===`context`;)--n;return{body:e.slice(t,n+1),leading:e.slice(0,t),trailing:e.slice(n+1)}}function U(e,t,n){let r=e.filter(e=>e.kind!==`context`&&e.kind!==`skipped`);return(t===`first`?r:[...r].reverse()).find(e=>e[n]?.line)?.[n]?.line}function st(e,t){let n=e[t]?.rows??[],r=e[t-1]?.rows??[],i=[`left`,`right`].flatMap(e=>{let t=U(n,`first`,e);if(!t)return[];let i=U(r,`last`,e);return[Math.max(0,t-(i??0)-1)]});return i.length?Math.min(...i):0}function W(e,t){let n=e[t];if(!n)return 0;let r=e[t-1],i=r?r.oldStart+r.oldLines-1:0,a=r?r.newStart+r.newLines-1:0;return Math.max(0,Math.min(n.oldStart-i-1,n.newStart-a-1))}function G(e){let t=e.diff.hunks[e.diff.hunks.length-1],n=e.diff.leftMeta?.lines,r=e.diff.rightMeta?.lines;if(!t||!Number.isInteger(n)||!Number.isInteger(r))return 0;let i=t.oldStart+t.oldLines-1,a=t.newStart+t.newLines-1;return Math.max(0,Math.min((n??0)-i,(r??0)-a))}function ct(e,t,n,r){let i=n[r-1],a=n[r];return`${e}:${t}:${i?`${i.oldStart+i.oldLines-1}:${i.newStart+i.newLines-1}`:`0:0`}>${a?`${a.oldStart}:${a.newStart}`:`0:0`}`}function K(e,t){let n=t.diff.hunks[t.diff.hunks.length-1],r=n?`${n.oldStart+n.oldLines-1}:${n.newStart+n.newLines-1}`:`0:0`;return`${e}:${t.path}:${r}>eof:${t.diff.leftMeta?.lines??0}:${t.diff.rightMeta?.lines??0}`}function lt(){return{aboveRows:[],belowRows:[]}}function ut(e,t,n,r,i){let a=n.diff.hunks[r],o=n.diff.hunks[r-1],s=H(a?.rows??[]),c=o?H(o.rows):null,l=[...a?.commonContext??[],...s.leading],u=!!a?.commonContext?.length,d=u?st(n.diff.hunks,r):W(n.diff.hunks,r),f=ct(e,n.path,n.diff.hunks,r),p=t[f]??lt(),m=c?.trailing.slice(0,r>0?Math.min(d,i):0)??[],h=Math.min(Math.max(0,d-m.length),i),g=h>0?l.slice(-h):[],_=Math.max(0,d-(u?m.length+g.length:0)-p.aboveRows.length-p.belowRows.length),v=u?U(o?.rows??[],`last`,`left`)??0:o?o.oldStart+o.oldLines-1:0,y=u?U(o?.rows??[],`last`,`right`)??0:o?o.newStart+o.newLines-1:0,b=v+(u?m.length:0)+p.aboveRows.length+1,x=y+(u?m.length:0)+p.aboveRows.length+1;return{availableRows:[...c?.trailing??[],...a?.commonContext??[],...s.leading].filter(e=>{let t=e.left?.line,n=e.right?.line;return t!==void 0&&n!==void 0&&t>=b&&t<b+_&&n>=x&&n<x+_}),baseAboveRows:m,baseBelowRows:g,expansion:p,header:a?.header??``,hiddenLines:_,key:f,location:r===0?`top`:`middle`,newHiddenStart:x,oldHiddenStart:b}}function dt(e,t,n,r){let i=n.diff.hunks[n.diff.hunks.length-1];if(!i)return null;let a=G(n),o=K(e,n),s=t[o]??lt(),c=H(i.rows).trailing,l=c.slice(0,Math.min(a,r)),u=Math.max(0,a-s.aboveRows.length),d=i.oldStart+i.oldLines-1,f=i.newStart+i.newLines-1,p=d+s.aboveRows.length+1,m=f+s.aboveRows.length+1;return{availableRows:c.filter(e=>{let t=e.left?.line,n=e.right?.line;return t!==void 0&&n!==void 0&&t>=p&&n>=m}),baseAboveRows:l,baseBelowRows:[],expansion:s,header:``,hiddenLines:u,key:o,location:`bottom`,newHiddenStart:m,oldHiddenStart:p}}function q({gap:e,onExpand:t}){let n=e.hiddenLines>10,r=!!e.expansion.pending;return(0,N.jsxs)(`div`,{className:`review-diff-hunk interactive`,role:`group`,"aria-label":`${e.hiddenLines} hidden common lines`,children:[(0,N.jsx)(`span`,{children:e.header}),(0,N.jsxs)(`span`,{className:`review-context-controls`,children:[n&&e.location!==`top`?(0,N.jsx)(`button`,{type:`button`,disabled:r,"aria-label":`Show 10 lines above`,onClick:()=>t(`above`),children:`+10↑`}):null,n&&e.location!==`top`?(0,N.jsx)(`span`,{"aria-hidden":`true`,children:`−`}):null,(0,N.jsxs)(`button`,{type:`button`,disabled:r,"aria-label":`Show all ${e.hiddenLines} common lines`,onClick:()=>t(`all`),children:[`+`,e.hiddenLines,` common `,e.hiddenLines===1?`line`:`lines`]}),n&&e.location!==`bottom`?(0,N.jsx)(`span`,{"aria-hidden":`true`,children:`−`}):null,n&&e.location!==`bottom`?(0,N.jsx)(`button`,{type:`button`,disabled:r,"aria-label":`Show 10 lines below`,onClick:()=>t(`below`),children:`+10↓`}):null]}),e.expansion.error?(0,N.jsx)(`span`,{className:`review-context-error`,role:`alert`,children:e.expansion.error}):null]})}function ft({contextKeyPrefix:e,contextGapExpansions:t,file:n,mode:r,preferences:i,renderAttachment:a,onExpandContext:o,onExpandSkippedContext:s}){let c=L(n.path),l=n.diff.hunks.reduce((e,t)=>{for(let n of[...t.commonContext??[],...t.rows])n.left?.missingNewlineAtEnd&&(e.left=!0),n.right?.missingNewlineAtEnd&&(e.right=!0);return e},{left:!1,right:!1}),u=(t,r,a)=>{let o=Math.max(t.leftLines??0,t.rightLines??0),c=ct(e,n.path,n.diff.hunks,a),l=i.context,u=Math.min(10,o);return(0,N.jsxs)(`button`,{type:`button`,className:`review-skipped-row`,onClick:()=>s(c,a,Math.min(1e4,l+u)),children:[`Show `,u,` more common lines (`,o,` hidden)`]},r)},d=(e,t,n)=>(0,N.jsx)(N.Fragment,{children:(i.ignoreWhitespace===`NONE`?e:e.filter(e=>!e.whitespaceOnly)).map((e,o)=>{let s=`${n}:${t}:${e.left?.line??``}:${e.right?.line??``}:${o}`;if(r===`unified`){if(e.kind===`skipped`)return u(e,s,t);if(e.kind===`context`){let t=e.right??e.left;return(0,N.jsx)(B,{intraline:t?.intraline,kind:`context`,language:c,line:t?.line,side:S(`context`,!!e.right),text:t?.text??``,preferences:i,renderAttachment:a},s)}return e.kind===`changed`?(0,N.jsxs)(E.Fragment,{children:[(0,N.jsx)(B,{intraline:e.left?.intraline,kind:`deleted`,language:c,line:e.left?.line,side:S(`deleted`,!1),text:e.left?.text??``,preferences:i,renderAttachment:a}),(0,N.jsx)(B,{intraline:e.right?.intraline,kind:`added`,language:c,line:e.right?.line,side:S(`added`,!0),text:e.right?.text??``,preferences:i,renderAttachment:a})]},s):e.left?(0,N.jsx)(B,{intraline:e.left.intraline,kind:`deleted`,language:c,line:e.left.line,side:S(`deleted`,!1),text:e.left.text,preferences:i,renderAttachment:a},s):(0,N.jsx)(B,{intraline:e.right?.intraline,kind:`added`,language:c,line:e.right?.line,side:S(`added`,!!e.right),text:e.right?.text??``,preferences:i,renderAttachment:a},s)}return e.kind===`skipped`?u(e,s,t):(0,N.jsx)(V,{kind:e.kind,language:c,leftIntraline:e.left?.intraline,leftLine:e.left?.line,leftText:e.left?.text,rightIntraline:e.right?.intraline,rightLine:e.right?.line,rightText:e.right?.text,preferences:i,renderAttachment:a},s)})}),f=n.diff.hunks.map((r,a)=>ut(e,t,n,a,i.context)),p=dt(e,t,n,i.context),m=[...f,...p?[p]:[]].filter(e=>e.hiddenLines>0&&e.hiddenLines<=3&&!e.expansion.pending&&!e.expansion.error),h=m.map(e=>`${e.key}:${e.hiddenLines}:${e.oldHiddenStart}:${e.newHiddenStart}`).join(`|`),g=(0,E.useRef)(o);g.current=o,(0,E.useEffect)(()=>{for(let e of m)g.current(e,`all`,{lines:e.hiddenLines,newStart:e.newHiddenStart,oldStart:e.oldHiddenStart})},[h]);let _=(e,t)=>{let n=t===`all`?e.hiddenLines:Math.min(10,e.hiddenLines),r=t===`below`?e.hiddenLines-n:0;o(e,t,{lines:n,newStart:e.newHiddenStart+r,oldStart:e.oldHiddenStart+r})},v=(e,t)=>{let n=e.expansion.aboveRows.length>0||e.expansion.belowRows.length>0,r=e.hiddenLines>3||!!e.expansion.error;return(0,N.jsxs)(N.Fragment,{children:[d(e.baseAboveRows,t,`context`),d(e.expansion.aboveRows,t,`context`),r?(0,N.jsx)(q,{gap:e,onExpand:t=>_(e,t)}):null,!r&&e.hiddenLines>0?(0,N.jsxs)(`div`,{className:`review-diff-hunk interactive loading`,role:`status`,children:[(0,N.jsx)(`span`,{children:e.header}),(0,N.jsxs)(`span`,{children:[`Loading `,e.hiddenLines,` common `,e.hiddenLines===1?`line`:`lines`,`…`]})]}):null,!r&&e.hiddenLines===0&&!n&&e.location!==`bottom`?(0,N.jsx)(`div`,{className:`review-diff-hunk ${t>0?`secondary`:``}`,children:(0,N.jsx)(`span`,{children:e.header})}):null,d(e.expansion.belowRows,t,`context`),d(e.baseBelowRows,t,`context`)]})};return(0,N.jsxs)(N.Fragment,{children:[n.diff.hunks.map((e,t)=>(0,N.jsxs)(E.Fragment,{children:[v(f[t],t),d(H(e.rows).body,t,`change`)]},`${e.header}:${t}`)),p?v(p,n.diff.hunks.length):null,l.left||l.right?(0,N.jsx)(`div`,{className:`review-newline-warning`,role:`note`,children:[l.left?`No newline at end of left file.`:``,l.right?`No newline at end of right file.`:``].filter(Boolean).join(` — `)}):null]})}function pt({row:e}){return e.diffLoadError?(0,N.jsxs)(`div`,{className:`review-diff-message error`,role:`alert`,children:[`Could not load diff: `,e.diffLoadError]}):e.diffLoadPending?(0,N.jsx)(`div`,{className:`review-diff-message`,role:`status`,children:`Loading diff…`}):e.diffStatus===`binary`?(0,N.jsx)(`div`,{className:`review-diff-message`,children:`Binary file changed`}):e.diffStatus===`too-expensive`?(0,N.jsx)(`div`,{className:`review-diff-message`,children:`Diff too large to render`}):e.diffStatus===`not-loaded`?(0,N.jsx)(`div`,{className:`review-diff-message`,children:`Diff not loaded yet`}):null}function mt({disabled:e,draft:t,target:n,onCancel:r,onDraftChange:i,onSave:a}){let o=n.side===`right`?`Patchset`:n.side===`left`?`Base`:`file`;return(0,N.jsxs)(`form`,{className:`review-comment-editor`,onSubmit:e=>{e.preventDefault(),a()},children:[(0,N.jsxs)(`header`,{children:[`Comment on `,n.range?n.range.start_line===n.range.end_line?`${o} line ${n.range.start_line}, columns ${n.range.start_character+1}–${n.range.end_character}`:`${o} lines ${n.range.start_line}–${n.range.end_line}`:`${o} line ${n.line}`]}),(0,N.jsx)(`textarea`,{"aria-label":`Review comment`,name:`farming-review-comment`,inputMode:`text`,autoComplete:`off`,autoCorrect:`off`,autoCapitalize:`none`,spellCheck:!1,enterKeyHint:`done`,"data-lpignore":`true`,"data-1p-ignore":`true`,"data-bwignore":`true`,"data-form-type":`other`,autoFocus:!0,placeholder:`Leave a review comment…`,value:t,onChange:e=>i(e.target.value)}),(0,N.jsxs)(`footer`,{children:[(0,N.jsx)(`button`,{type:`button`,onClick:r,children:`CANCEL`}),(0,N.jsx)(`button`,{type:`submit`,disabled:e||!t.trim(),children:e?`SAVING…`:`SAVE COMMENT`})]})]})}function ht({comment:e,disabled:t,onDelete:n,onStatusChange:r}){let i=e.side===`right`?`Patchset`:e.side===`left`?`Base`:`File`,a=e.status||`open`,o=e.range?e.range.start_line===e.range.end_line?`${i} line ${e.range.start_line}, columns ${e.range.start_character+1}–${e.range.end_character}`:`${i} lines ${e.range.start_line}–${e.range.end_line}`:`${i} line ${e.line}`;return(0,N.jsxs)(`article`,{className:`review-comment-thread ${a}`,children:[(0,N.jsxs)(`header`,{children:[(0,N.jsx)(`span`,{children:a===`outdated`?`Outdated · ${o}`:o}),(0,N.jsxs)(`span`,{className:`review-comment-actions`,children:[(0,N.jsx)(`button`,{type:`button`,disabled:t,onClick:()=>r(a===`resolved`?`open`:`resolved`),children:a===`resolved`?`REOPEN`:`RESOLVE`}),(0,N.jsx)(`button`,{type:`button`,"aria-label":`Delete comment on line ${e.line}`,disabled:t,onClick:n,children:(0,N.jsx)(u,{})})]})]}),(0,N.jsx)(`p`,{children:e.body})]})}function J(e,t){let n=(e instanceof Element?e:e?.parentElement)?.closest(`code[data-review-line][data-review-side]`)??null;return n&&t.contains(n)?n:null}function gt(e,t,n){let r=document.createRange();r.selectNodeContents(e);try{r.setEnd(t,n)}catch{return 0}return r.toString().length}function _t(e){let t=window.getSelection();if(!t||t.isCollapsed||!t.anchorNode||!t.focusNode)return null;let n=J(t.anchorNode,e),r=J(t.focusNode,e);if(!n||!r)return null;let i=n.dataset.reviewSide;if(i!==r.dataset.reviewSide||i!==`left`&&i!==`right`&&i!==`unified`)return null;let a=Number(n.dataset.reviewLine),o=Number(r.dataset.reviewLine);if(!Number.isInteger(a)||!Number.isInteger(o))return null;let s={character:gt(n,t.anchorNode,t.anchorOffset),line:a},c={character:gt(r,t.focusNode,t.focusOffset),line:o},l=s.line<c.line||s.line===c.line&&s.character<=c.character,u=l?s:c,d=l?c:s;return u.line===d.line&&u.character===d.character?null:{line:d.line,range:{end_character:d.character,end_line:d.line,start_character:u.character,start_line:u.line},side:i}}function Y(){let e=typeof window<`u`&&new URLSearchParams(window.location.search).get(`fixture`)===`1`,[t]=(0,E.useState)(()=>{let e=typeof window>`u`?``:window.location.search;return{requested:new URLSearchParams(e).has(`acpItem`),route:Fe(e)}}),n=t.route,[u]=(0,E.useState)(()=>Ve(typeof window>`u`?null:window.location)),d=!e&&!t.requested&&u.request&&(u.request.source===`working-copy`||u.request.head===`now`)?u.request:null,[f,p]=(0,E.useState)(()=>d||t.requested?null:u.request),[m,h]=(0,E.useState)(null),[g,_]=(0,E.useState)(`final`),[v,y]=(0,E.useState)(!!(d||n)),b=t.requested?!n:!!u.error,x=!e,S=f?.source===`working-copy`,ne=f?.source===`git-range`,[ie,C]=(0,E.useState)(()=>b?{[qe]:[]}:$e(f,e)),[w,T]=(0,E.useState)(t.requested?n?``:`ACP review target is invalid`:u.error??``),[_e,De]=(0,E.useState)(null),[D,Ae]=(0,E.useState)(()=>{let t=b?{[qe]:[]}:$e(f,e);return et({basePatchset:b?`Base`:Qe(f,e),catalog:t,comments:[],initialPatchset:b?qe:Ze(f,e),initiallyExpand:!x,reviewId:x?void 0:we})}),O=(0,E.useRef)(D),k=(0,E.useRef)(ie);k.current=ie;let[A,j]=(0,E.useState)(Je),[Ne,M]=(0,E.useState)(!1),[Ie,Le]=(0,E.useState)(!1),[Re,ze]=(0,E.useState)(``),[Be,Ue]=(0,E.useState)(``),[We,Ge]=(0,E.useState)(``),[Ke,P]=(0,E.useState)([]),[tt,F]=(0,E.useState)({}),[I,nt]=(0,E.useState)(null),[L,R]=(0,E.useState)(``),[z,ot]=(0,E.useState)(!1),[B,V]=(0,E.useState)(()=>new URLSearchParams(window.location.search).get(`comparison`)||``),[H,U]=(0,E.useState)(!1),st=(0,E.useRef)(null),W=x?D.reviewId??``:we,G=D.patchRange.patchset,ct=D.patchRange.basePatchset,K=oe(D,G),ut=new Set(K.expandedPaths),dt=D.diffMode,q=!!(m&&f?.source===`git-range`&&f.reviewId===m.reviewId&&f.head===m.head),J=q?m?.scope:f?.source===`working-copy`?f.scope:void 0,gt=J===`untracked`?`unified`:dt,Y=D.preferences,vt=f?{...f,context:Y.context,ignoreWhitespace:Y.ignoreWhitespace}:null,yt=(0,E.useRef)(vt);yt.current=vt;let X=q?{..._e??{workingTree:!0},head:void 0,workingTree:!0}:_e,Z=D.commentDraft,bt=D.commentDraft?.body??``,Q=ie[G]??[],xt=Q.reduce((e,t)=>e+t.added,0),St=Q.reduce((e,t)=>e+t.removed,0),Ct=Math.max(1,...Q.map(e=>e.added+e.removed)),$=e=>{let t=re(O.current,e,k.current);if(t.state!==O.current){O.current=t.state,Ae(t.state);for(let e of t.effects){if(e.type===`load-file-diff`){let t=yt.current;if(!t){$(Me(e,`review file diff source is unavailable`));continue}fe(t,e.path).then(t=>{let n=je(k.current,e,t,{reviewId:O.current.reviewId});k.current=n.catalog,C(n.catalog),$(n.action)}).catch(t=>$(Me(e,t)))}if(e.type===`save-reviewed-status`){let t=e.reviewId??W;le({...e,reviewId:t}).then(t=>$({patchset:e.patchset,paths:e.changes.map(e=>e.path),reviewedPaths:t.reviewedPaths,...e.reviewId?{reviewId:e.reviewId}:{},revision:t.revision,type:`commit-reviewed-status`})).catch(async n=>{let r=n instanceof be&&n.state?n.state:await xe(t,e.patchset).catch(()=>null);if(!r){let t=oe(O.current,e.patchset),n=new Set(t.reviewedPaths);for(let t of e.changes)t.reviewed?n.delete(t.path):n.add(t.path);r={reviewedPaths:[...n],revision:e.revision}}$({patchset:e.patchset,reviewedPaths:r.reviewedPaths,...e.reviewId?{reviewId:e.reviewId}:{},revision:r.revision,type:`restore-reviewed-status`}),ze(n instanceof Error?`Could not save Reviewed: ${n.message}`:`Could not save Reviewed status`)})}if(e.type===`save-comment`){let t=e.reviewId??W;me(t,e.comment).then(()=>$({id:e.comment.id,patchset:e.comment.patchset,pendingType:`save`,...e.reviewId?{reviewId:e.reviewId}:{},type:`commit-comment`})).catch(async n=>{$({comments:await Ce(t,e.comment.patchset).catch(()=>O.current.comments.filter(t=>t.id!==e.comment.id)),id:e.comment.id,patchset:e.comment.patchset,pendingType:`save`,...e.reviewId?{reviewId:e.reviewId}:{},type:`restore-comments`}),Ue(n instanceof Error?`Could not save comment: ${n.message}`:`Could not save comment`)})}if(e.type===`delete-comment`){let t=e.reviewId??W;ue(t,e.comment.patchset,e.comment.id).then(()=>$({id:e.comment.id,patchset:e.comment.patchset,pendingType:`delete`,...e.reviewId?{reviewId:e.reviewId}:{},type:`commit-comment`})).catch(async n=>{$({comments:await Ce(t,e.comment.patchset).catch(()=>[...O.current.comments,e.comment]),id:e.comment.id,patchset:e.comment.patchset,pendingType:`delete`,...e.reviewId?{reviewId:e.reviewId}:{},type:`restore-comments`}),Ue(n instanceof Error?`Could not delete comment: ${n.message}`:`Could not delete comment`)})}}}};(0,E.useEffect)(()=>(document.body.classList.add(`review-body`),()=>document.body.classList.remove(`review-body`)),[]),(0,E.useEffect)(()=>{if(!H)return;let e=e=>{st.current?.contains(e.target)||U(!1)};return document.addEventListener(`pointerdown`,e),()=>document.removeEventListener(`pointerdown`,e)},[H]),(0,E.useEffect)(()=>{if(!d&&!n)return;let e=!0;return y(!0),(n?Se(n.agentId,n.itemIds):(()=>{let e=d;return ge(`root`in e&&typeof e.root==`string`?{root:e.root}:{agentId:e.agentId},e.source===`git-range`?e.base:`HEAD`,e.source===`working-copy`?{modifiedWithinDays:e.modifiedWithinDays,paths:e.paths,scope:e.scope}:void 0)})()).then(t=>{if(!e)return;let n=he(t,`final`),r=new URLSearchParams(window.location.search);r.delete(`agentId`),r.delete(`acpItem`),r.set(`root`,t.root),r.set(`base`,n.base),r.set(`head`,n.head),r.set(`reviewId`,t.reviewId),r.set(`comparison`,`last-turn`),window.history.replaceState(null,``,`${window.location.pathname}?${r.toString()}`),h(t),_(`final`),V(`last-turn`),p(n),T(``)}).catch(t=>{e&&T(t instanceof Error?t.message:`review capture failed`)}).finally(()=>{e&&y(!1)}),()=>{e=!1}},[n,d]),(0,E.useEffect)(()=>{if(d||n||f?.source!==`git-range`||!f.reviewId)return;let e=!0;return pe(f.reviewId).then(t=>{if(!e)return;let n=t.revisions.find(e=>e.head===f.head)??t;h(n),V(e=>e||`last-turn`),_(f.base===n.fixesBase&&n.fixesBase!==n.base?`fixes`:`final`)}).catch(()=>{}),()=>{e=!1}},[n,d,f]),(0,E.useEffect)(()=>{if(!f)return;let e=!0,t=Xe();return ve({...f,context:t.context,ignoreWhitespace:t.ignoreWhitespace,metadataOnly:!0}).then(async n=>{let[r,i]=await Promise.all([xe(n.reviewId,n.patchset).catch(()=>null),Ce(n.reviewId,n.patchset).catch(()=>[])]);if(!e)return;let a=ee(Oe(n),n.patchset,i.map(e=>e.path)),o=ke({comments:i,preferences:t,...r?{reviewedPaths:r.reviewedPaths}:{},snapshot:n});r&&(o=re(o,{patchset:n.patchset,reviewedPaths:r.reviewedPaths,reviewId:n.reviewId,revision:r.revision,type:`hydrate-reviewed-status`},a).state),O.current=o,k.current=a,De(n.comparison??null),C(a),Ae(o),T(``)}).catch(t=>{e&&T(t instanceof Error?t.message:`review diff request failed`)}),()=>{e=!1}},[f]),(0,E.useEffect)(()=>{if(!Re)return;let e=window.setTimeout(()=>ze(``),4e3);return()=>window.clearTimeout(e)},[Re]),(0,E.useEffect)(()=>{if(!Be)return;let e=window.setTimeout(()=>Ue(``),4e3);return()=>window.clearTimeout(e)},[Be]),(0,E.useEffect)(()=>{try{window.localStorage.setItem(Ye,JSON.stringify(Y))}catch{}},[D.preferences]),(0,E.useEffect)(()=>{if(x||!W||!k.current[G])return;let e=!0;return xe(W,G).then(t=>{e&&$({patchset:G,reviewedPaths:t.reviewedPaths,reviewId:W,revision:t.revision,type:`hydrate-reviewed-status`})}).catch(()=>{}),Ce(W,G).then(t=>{if(!e)return;let n=ee(k.current,G,t.map(e=>e.path));n!==k.current&&(k.current=n,C(n)),$({comments:t,patchset:G,reviewId:W,type:`hydrate-comments`})}).catch(()=>{}),()=>{e=!1}},[x,G,W]),(0,E.useEffect)(()=>{let e=()=>{let e=``;for(let t of document.querySelectorAll(`.review-file-change.expanded[data-file-path]`)){let n=t.querySelector(`.review-file-change-header`);if(!n)continue;let r=t.getBoundingClientRect(),i=n.getBoundingClientRect();i.top<=1&&r.bottom>i.bottom&&(e=t.dataset.filePath??``)}Ge(t=>t===e?t:e)};return e(),window.addEventListener(`scroll`,e,{passive:!0}),document.body.addEventListener(`scroll`,e,{passive:!0}),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`scroll`,e),document.body.removeEventListener(`scroll`,e),window.removeEventListener(`resize`,e)}},[G,K.expandedPaths.join(`\0`)]);let wt=!!K.pendingReview,Tt=!!K.pendingComment,Et=(e,t)=>{$({path:e,reviewed:t,type:`set-file-reviewed`})},Dt=e=>{$({patchset:e,type:`select-patchset`})},Ot=Q.length>0&&Q.every(e=>ut.has(e.path)),kt=e=>{$({path:e,type:`toggle-file-expanded`})},At=()=>{j(Y),M(!0)},jt=()=>{let e=Y,t=te(A),n=e.context!==t.context||e.ignoreWhitespace!==t.ignoreWhitespace;if($({preferences:t,type:`set-preferences`}),M(!1),n&&F({}),!x||!f||!n)return;let r=G,i=new Map(Q.map(e=>[e.path,e])),a=K.expandedPaths.filter(e=>{let t=i.get(e);return!!(t&&t.kind!==`unmodified`&&!t.binary&&!t.diffTooExpensive)});a.length&&(P(e=>[...new Set([...e,...a])]),He({...f,context:t.context,ignoreWhitespace:t.ignoreWhitespace},a).then(e=>{if(O.current.patchRange.patchset!==r)return;let t=k.current;for(let n of e.files)t=se(t,r,n);k.current=t,C(t);let n=e.errors[0];n&&T(n.message)}).finally(()=>P(e=>e.filter(e=>!a.includes(e)))))},Mt=()=>{navigator.clipboard&&navigator.clipboard.writeText(`34a15ae`).catch(()=>{}),Le(!0),window.setTimeout(()=>Le(!1),1200)},Nt=(e,t)=>{let n=yt.current;if(!n||Ke.includes(e))return;let r=G;P(t=>[...t,e]),fe({...n,context:t},e).then(e=>{let t=se(k.current,r,e);k.current=t,C(t)}).catch(e=>T(e instanceof Error?e.message:`review context request failed`)).finally(()=>P(t=>t.filter(t=>t!==e)))},Pt=(e,t,n,r)=>{let i=yt.current;if(t.expansion.pending||r.lines<1)return;let a=e=>{F(r=>{let i=r[t.key]??lt();return{...r,[t.key]:n===`below`?{...i,belowRows:[...e,...i.belowRows],error:void 0,pending:void 0}:{...i,aboveRows:[...i.aboveRows,...e],error:void 0,pending:void 0}}})},o=e=>{let n=e instanceof Error?e.message:`review context request failed`;F(e=>{let r=e[t.key]??lt();return{...e,[t.key]:{...r,error:n,pending:void 0}}})};if(F(e=>{let r=e[t.key]??lt();return{...e,[t.key]:{...r,error:void 0,pending:n}}}),!i){let e=t.availableRows.filter(e=>{let t=e.left?.line,n=e.right?.line;return t!==void 0&&n!==void 0&&t>=r.oldStart&&t<r.oldStart+r.lines&&n>=r.newStart&&n<r.newStart+r.lines});e.length===r.lines?a(e):o(Error(`review context is unavailable`));return}Te(i,e.path,r).then(e=>a(e.rows)).catch(o)},Ft=(e,t,n,r)=>{$({line:t,path:e,range:r,side:n,type:`start-comment`})},It=()=>{!Z||!bt.trim()||$({id:typeof crypto?.randomUUID==`function`?crypto.randomUUID():`comment-${Date.now()}-${Math.random().toString(36).slice(2)}`,type:`save-comment`})},Lt=(e,t)=>{W&&Ee(W,e.patchset,e.id,t).then(()=>Ce(W,e.patchset)).then(t=>$({comments:t,patchset:e.patchset,reviewId:W,type:`hydrate-comments`})).catch(e=>Ue(e instanceof Error?e.message:`review comment status failed`))},Rt=(e,t)=>{let n=he(e,t),r=new URLSearchParams(window.location.search);r.delete(`agentId`),r.set(`root`,e.root),r.set(`base`,n.base),r.set(`head`,n.head),r.set(`reviewId`,e.reviewId),r.set(`comparison`,`last-turn`),window.history.replaceState(null,``,`${window.location.pathname}?${r.toString()}`),h(e),_(t),V(`last-turn`),U(!1),p(n)},zt=f&&`root`in f&&f.root?{root:f.root}:f&&`agentId`in f&&f.agentId?{agentId:f.agentId}:m?{root:m.root}:null,Bt=()=>{let e=!H;U(e),!(!e||I||z||!zt)&&(ot(!0),R(``),de(zt).then(nt).catch(e=>R(e instanceof Error?e.message:`Comparison sources could not be loaded`)).finally(()=>ot(!1)))},Vt=e=>{if(!I)return;let t={base:e.base,head:e.head,metadataOnly:!0,root:I.root,source:`git-range`},n=new URLSearchParams(window.location.search);n.delete(`agentId`),n.delete(`reviewId`),n.delete(`path`),n.delete(`scope`),n.delete(`modifiedWithinDays`),n.set(`root`,I.root),n.set(`base`,e.base),n.set(`head`,e.head),n.set(`comparison`,e.id),window.history.replaceState(null,``,`${window.location.pathname}?${n.toString()}`),V(e.id),U(!1),_(`final`),p(t)},Ht=()=>{!m||v||(y(!0),ye(m.reviewId).then(e=>{Rt(e,e.number>1?`fixes`:`final`),T(``)}).catch(e=>T(e instanceof Error?e.message:`review refresh failed`)).finally(()=>y(!1)))},Ut=e=>{!m||e===g||Rt(m,e)},Wt=J,Gt=Wt===`tracked`?`Changes`:Wt===`untracked`?`Untracked`:`Files`,Kt=I?[I.unstaged,I.staged,...I.commits,...I.branches].find(e=>e.id===B):null,qt=q?`Last Turn`:Kt?.id.startsWith(`commit:`)?`Commit · ${Kt.label}`:Kt?.id.startsWith(`branch:`)?`Branch · ${Kt.label}`:Kt?.label??(S?`Working copy`:ne?`Changes`:Gt),Jt=B===`staged`?`Staged changes`:X?.workingTree?`Workspace changes`:X?.head?.message.split(`
2
- `)[0]||`Commit details`,Yt=X?.head?`Commit message`:B===`staged`?`Index summary`:`Change summary`,Xt=B===`staged`?`Staged changes are stored in the Git index and do not have a commit author or commit message yet.`:`Uncommitted workspace changes do not have a commit author or commit message yet.`,Zt=v?`Capturing an immutable workspace revision…`:f?S?Wt===`tracked`?`No tracked changes in this workspace.`:Wt===`untracked`?`No untracked files modified in the last ${f.modifiedWithinDays??3} days.`:`No uncommitted files in this workspace.`:`No changed files in this range.`:`Open a real review with: farming review <git-dir> <base> <head|now>`,Qt=b?`Could not load review target`:ne?`Could not load git range`:`Could not load working copy`;return(0,N.jsxs)(`main`,{className:`review-root`,"data-testid":`review-page`,children:[(0,N.jsxs)(`section`,{className:`review-files`,"aria-label":`Changed files`,children:[(0,N.jsxs)(`header`,{className:`review-files-toolbar`,children:[(0,N.jsxs)(`div`,{className:`review-patch-info`,children:[(0,N.jsxs)(`div`,{className:`review-source-control`,ref:st,children:[(0,N.jsxs)(`button`,{type:`button`,className:`review-source-trigger`,"aria-expanded":H,onClick:Bt,children:[(0,N.jsx)(`strong`,{children:qt}),(0,N.jsx)(l,{})]}),H?(0,N.jsxs)(`div`,{className:`review-source-menu`,role:`menu`,"aria-label":`Compare changes from`,children:[z?(0,N.jsx)(`p`,{children:`Loading comparisons…`}):null,L?(0,N.jsx)(`p`,{className:`error`,children:L}):null,I?(0,N.jsxs)(N.Fragment,{children:[(0,N.jsxs)(`button`,{type:`button`,role:`menuitemradio`,"aria-checked":B===`unstaged`,disabled:!I.unstaged.available,onClick:()=>Vt(I.unstaged),children:[(0,N.jsx)(`span`,{children:`Unstaged`}),B===`unstaged`?(0,N.jsx)(a,{}):null]}),(0,N.jsxs)(`button`,{type:`button`,role:`menuitemradio`,"aria-checked":B===`staged`,disabled:!I.staged.available,onClick:()=>Vt(I.staged),children:[(0,N.jsx)(`span`,{children:`Staged`}),B===`staged`?(0,N.jsx)(a,{}):null]}),(0,N.jsxs)(`details`,{className:`review-source-submenu`,children:[(0,N.jsxs)(`summary`,{children:[`Commit `,(0,N.jsx)(o,{})]}),(0,N.jsx)(`div`,{children:I.commits.length?I.commits.map(e=>(0,N.jsxs)(`button`,{type:`button`,role:`menuitemradio`,"aria-checked":B===e.id,onClick:()=>Vt(e),children:[(0,N.jsx)(`span`,{children:e.label}),B===e.id?(0,N.jsx)(a,{}):null]},e.id)):(0,N.jsx)(`p`,{children:`No commits available`})})]}),(0,N.jsxs)(`details`,{className:`review-source-submenu`,children:[(0,N.jsxs)(`summary`,{children:[`Branch `,(0,N.jsx)(o,{})]}),(0,N.jsx)(`div`,{children:I.branches.length?I.branches.map(e=>(0,N.jsxs)(`button`,{type:`button`,role:`menuitemradio`,"aria-checked":B===e.id,onClick:()=>Vt(e),children:[(0,N.jsx)(`span`,{children:e.label}),B===e.id?(0,N.jsx)(a,{}):null]},e.id)):(0,N.jsx)(`p`,{children:`No other branches`})})]}),m?(0,N.jsxs)(`button`,{type:`button`,role:`menuitemradio`,"aria-checked":q,onClick:()=>Rt(m,g),children:[(0,N.jsx)(`span`,{children:`Last Turn`}),q?(0,N.jsx)(a,{}):null]}):null]}):null]}):null]}),(0,N.jsxs)(`span`,{className:`review-total-stats`,children:[(0,N.jsxs)(`b`,{children:[`+`,xt]}),(0,N.jsxs)(`i`,{children:[`−`,St]})]}),x?null:(0,N.jsxs)(N.Fragment,{children:[(0,N.jsxs)(`select`,{"aria-label":`Patch set`,value:G,onChange:e=>Dt(e.target.value),children:[(0,N.jsx)(`option`,{value:`Patchset 20`,children:`Patchset 20`}),(0,N.jsx)(`option`,{value:`Patchset 19`,children:`Patchset 19`})]}),(0,N.jsxs)(`button`,{type:`button`,className:`review-commit`,onClick:Mt,title:`Copy commit`,children:[Ie?`Copied`:`34a15ae`,(0,N.jsx)(c,{})]})]}),q?(0,N.jsxs)(`span`,{className:`review-revision-label`,children:[`Revision `,m?.number]}):null]}),(0,N.jsxs)(`div`,{className:`review-files-actions`,children:[q&&m?(0,N.jsxs)(N.Fragment,{children:[m.number>1?(0,N.jsx)(`button`,{type:`button`,className:g===`fixes`?`active`:``,onClick:()=>Ut(`fixes`),children:`FIXES SINCE REVIEW`}):null,(0,N.jsx)(`button`,{type:`button`,disabled:v,onClick:Ht,children:v?`CAPTURING…`:`REFRESH`}),(0,N.jsx)(`span`,{className:`review-toolbar-separator`})]}):null,(0,N.jsx)(`button`,{type:`button`,onClick:()=>$({expanded:!Ot,paths:Q.map(e=>e.path),type:`set-all-files-expanded`}),children:Ot?`COLLAPSE ALL`:`EXPAND ALL`}),(0,N.jsx)(`span`,{className:`review-toolbar-separator`}),J===`untracked`?null:(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(`span`,{children:`Diff view:`}),(0,N.jsx)(`button`,{type:`button`,className:`review-icon-action ${dt===`split`?`active`:``}`,"aria-label":`Side-by-side diff`,title:`Side-by-side diff`,onClick:()=>$({mode:`split`,type:`set-diff-mode`}),children:(0,N.jsx)(s,{})}),(0,N.jsx)(`button`,{type:`button`,className:`review-icon-action ${dt===`unified`?`active`:``}`,"aria-label":`Unified diff`,title:`Unified diff`,onClick:()=>$({mode:`unified`,type:`set-diff-mode`}),children:(0,N.jsx)(i,{})})]}),(0,N.jsx)(`button`,{type:`button`,className:`review-icon-action`,"aria-label":`Diff preferences`,title:`Diff preferences`,onClick:At,children:(0,N.jsx)(r,{})})]}),Re||Be?(0,N.jsx)(`span`,{className:`review-review-error`,role:`status`,children:Re||Be}):null]}),x&&X?(0,N.jsxs)(`details`,{className:`review-commit-message`,children:[(0,N.jsxs)(`summary`,{children:[(0,N.jsx)(`span`,{children:Yt}),(0,N.jsx)(`strong`,{children:Jt}),(0,N.jsx)(o,{})]}),(0,N.jsx)(`div`,{children:X.head?(0,N.jsxs)(N.Fragment,{children:[(0,N.jsxs)(`p`,{children:[(0,N.jsx)(`span`,{children:`Author`}),(0,N.jsx)(`strong`,{children:X.head.authorName}),X.head.authorEmail?` <${X.head.authorEmail}>`:``]}),X.head.authoredAt?(0,N.jsxs)(`p`,{children:[(0,N.jsx)(`span`,{children:`Date`}),new Date(X.head.authoredAt).toLocaleString()]}):null,(0,N.jsx)(`pre`,{children:X.head.message})]}):(0,N.jsxs)(N.Fragment,{children:[(0,N.jsxs)(`p`,{children:[(0,N.jsx)(`span`,{children:`Based on`}),(0,N.jsx)(`strong`,{children:X.base?.message.split(`
3
- `)[0]||ct})]}),X.base?(0,N.jsxs)(`p`,{children:[(0,N.jsx)(`span`,{children:`Base author`}),X.base.authorName,X.base.authorEmail?` <${X.base.authorEmail}>`:``]}):null,(0,N.jsx)(`pre`,{children:Xt})]})})]}):null,(0,N.jsxs)(`div`,{className:`review-files-list`,children:[w?(0,N.jsxs)(`p`,{className:`review-working-copy-message`,role:`alert`,children:[Qt,`: `,w]}):null,x&&!w&&Q.length===0?(0,N.jsx)(`p`,{className:`review-working-copy-message`,role:`status`,children:Zt}):null,Q.map(e=>{let t=Pe(D,e,{mutationPending:wt}),n=ce(D,t.commentPaths),r=n.filter(e=>e.status===`outdated`),i=t=>ae(e,t);return(0,N.jsxs)(`article`,{className:`review-file-change ${t.expanded?`expanded`:``} ${We===e.path?`reviewing`:``}`,"data-testid":`review-file-row`,"data-change-kind":e.kind,"data-file-path":e.path,children:[(0,N.jsxs)(`header`,{className:`review-file-change-header`,children:[(0,N.jsxs)(`button`,{type:`button`,className:`review-file-select`,onClick:()=>kt(e.path),children:[(0,N.jsx)(`span`,{className:`review-file-status`,children:t.changeLabel}),(0,N.jsxs)(`span`,{className:`review-file-paths`,children:[(0,N.jsx)(`span`,{className:`review-file-name`,children:e.path}),e.previousPath?(0,N.jsx)(`span`,{className:`review-file-previous-path`,title:`Previous path: ${e.previousPath}`,children:e.previousPath}):null]}),(0,N.jsx)(it,{file:e,maxChangeSize:Ct}),(0,N.jsx)(at,{file:e})]}),(0,N.jsx)(rt,{action:t.action,pending:t.pending,reviewed:t.reviewed,reviewedLabel:t.reviewedLabel,onToggle:()=>{t.action&&Et(e.path,t.action.nextReviewed)}}),(0,N.jsx)(`button`,{type:`button`,className:`review-file-expand`,"aria-label":t.expanded?`Collapse file diff`:`Expand file diff`,onClick:()=>kt(e.path),children:t.expanded?(0,N.jsx)(l,{}):(0,N.jsx)(o,{})})]}),t.expanded?(0,N.jsxs)(`section`,{className:`review-inline-diff ${gt} ${Y.fitToScreen?`fit-to-screen`:``}`,"aria-label":`Diff for ${e.path}`,children:[r.length?(0,N.jsx)(`div`,{className:`review-outdated-comments`,children:r.map(e=>(0,N.jsx)(ht,{comment:e,disabled:Tt,onDelete:()=>$({id:e.id,type:`delete-comment`}),onStatusChange:t=>Lt(e,t)},e.id))}):null,(0,N.jsxs)(`div`,{className:`review-diff-columns`,children:[(0,N.jsx)(`span`,{children:`File`}),gt===`split`?(0,N.jsx)(`span`,{children:`File`}):null]}),t.diffStatus!==`loaded`||t.diffLoadPending||t.diffLoadError?(0,N.jsx)(pt,{row:t}):(0,N.jsx)(N.Fragment,{children:(0,N.jsx)(`div`,{className:`review-diff-code`,style:{fontSize:`${Y.fontSize}px`,tabSize:Y.tabSize,minWidth:Y.fitToScreen?void 0:`${Math.round(Y.lineLength*Y.fontSize*.62)}px`},onClick:e=>{let t=window.getSelection();if(t&&!t.isCollapsed||!(e.target instanceof Element))return;let n=e.target.closest(`code[data-review-line][data-review-side]`);if(!n)return;let r=Number(n.dataset.reviewLine),a=n.dataset.reviewSide;!Number.isFinite(r)||a!==`left`&&a!==`right`&&a!==`unified`||Ft(i(a),r,a)},onMouseUp:e=>{let t=_t(e.currentTarget);t&&Ft(i(t.side),t.line,t.side,t.range)},children:(0,N.jsx)(ft,{contextKeyPrefix:`${W}:${G}`,contextGapExpansions:tt,file:e,mode:gt,preferences:Y,renderAttachment:(e,t)=>{let r=Z&&Z.path===i(Z.side)&&Z.line===e&&t.includes(Z.side)?Z:null,a=n.filter(n=>n.status!==`outdated`&&n.line===e&&t.includes(n.side)&&n.path===i(n.side));return!r&&a.length===0?null:(0,N.jsxs)(`div`,{className:`review-line-attachment`,"data-review-comment-line":e,children:[r?(0,N.jsx)(mt,{disabled:Tt,draft:bt,target:r,onCancel:()=>$({type:`cancel-comment`}),onDraftChange:e=>$({body:e,type:`update-comment-draft`}),onSave:It}):null,a.map(e=>(0,N.jsx)(ht,{comment:e,disabled:Tt,onDelete:()=>$({id:e.id,type:`delete-comment`}),onStatusChange:t=>Lt(e,t)},e.id))]})},onExpandContext:(t,n,r)=>Pt(e,t,n,r),onExpandSkippedContext:(t,n,r)=>Nt(e.path,r)})})})]}):null]},e.path)})]})]}),Ne?(0,N.jsx)(`div`,{className:`review-preferences-backdrop`,role:`presentation`,onMouseDown:()=>M(!1),children:(0,N.jsxs)(`section`,{className:`review-preferences`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`review-preferences-title`,onMouseDown:e=>e.stopPropagation(),children:[(0,N.jsx)(`header`,{children:(0,N.jsx)(`h2`,{id:`review-preferences-title`,children:`Diff Preferences`})}),(0,N.jsxs)(`div`,{className:`review-preferences-form`,children:[(0,N.jsxs)(`label`,{children:[`Context`,(0,N.jsxs)(`select`,{"aria-label":`Context`,value:A.context,onChange:e=>j(t=>({...t,context:Number(e.target.value)})),children:[(0,N.jsx)(`option`,{value:3,children:`3 lines`}),(0,N.jsx)(`option`,{value:10,children:`10 lines`}),(0,N.jsx)(`option`,{value:25,children:`25 lines`}),(0,N.jsx)(`option`,{value:100,children:`100 lines`})]})]}),(0,N.jsxs)(`label`,{className:`checkbox-row`,children:[`Fit to screen`,(0,N.jsx)(`input`,{"aria-label":`Fit to screen`,type:`checkbox`,checked:A.fitToScreen,onChange:e=>j(t=>({...t,fitToScreen:e.target.checked}))})]}),(0,N.jsxs)(`label`,{children:[`Diff width`,(0,N.jsx)(`input`,{"aria-label":`Diff width`,type:`number`,autoComplete:`off`,"data-form-type":`other`,min:40,max:240,value:A.lineLength,onChange:e=>j(t=>({...t,lineLength:Number(e.target.value)||t.lineLength}))})]}),(0,N.jsxs)(`label`,{children:[`Tab width`,(0,N.jsx)(`input`,{"aria-label":`Tab width`,type:`number`,autoComplete:`off`,"data-form-type":`other`,min:2,max:16,value:A.tabSize,onChange:e=>j(t=>({...t,tabSize:Number(e.target.value)||t.tabSize}))})]}),(0,N.jsxs)(`label`,{children:[`Font size`,(0,N.jsx)(`input`,{"aria-label":`Font size`,type:`number`,autoComplete:`off`,"data-form-type":`other`,min:10,max:20,value:A.fontSize,onChange:e=>j(t=>({...t,fontSize:Number(e.target.value)||t.fontSize}))})]}),(0,N.jsxs)(`label`,{className:`checkbox-row`,children:[`Intraline differences`,(0,N.jsx)(`input`,{"aria-label":`Intraline differences`,type:`checkbox`,checked:A.intralineDifference,onChange:e=>j(t=>({...t,intralineDifference:e.target.checked}))})]}),(0,N.jsxs)(`label`,{className:`checkbox-row`,children:[`Show tabs`,(0,N.jsx)(`input`,{"aria-label":`Show tabs`,type:`checkbox`,checked:A.showTabs,onChange:e=>j(t=>({...t,showTabs:e.target.checked}))})]}),(0,N.jsxs)(`label`,{className:`checkbox-row`,children:[`Show trailing whitespace`,(0,N.jsx)(`input`,{"aria-label":`Show trailing whitespace`,type:`checkbox`,checked:A.showTrailingWhitespace,onChange:e=>j(t=>({...t,showTrailingWhitespace:e.target.checked}))})]}),(0,N.jsxs)(`label`,{className:`checkbox-row`,children:[`Syntax highlighting`,(0,N.jsx)(`input`,{"aria-label":`Syntax highlighting`,type:`checkbox`,checked:A.syntaxHighlighting,onChange:e=>j(t=>({...t,syntaxHighlighting:e.target.checked}))})]}),(0,N.jsxs)(`label`,{children:[`Ignore Whitespace`,(0,N.jsxs)(`select`,{"aria-label":`Ignore Whitespace`,value:A.ignoreWhitespace,onChange:e=>j(t=>({...t,ignoreWhitespace:e.target.value})),children:[(0,N.jsx)(`option`,{value:`NONE`,children:`None`}),(0,N.jsx)(`option`,{value:`TRAILING`,children:`Trailing`}),(0,N.jsx)(`option`,{value:`LEADING_AND_TRAILING`,children:`Leading + trailing`}),(0,N.jsx)(`option`,{value:`ALL`,children:`All`})]})]})]}),(0,N.jsxs)(`footer`,{children:[(0,N.jsx)(`button`,{type:`button`,onClick:()=>M(!1),children:`CANCEL`}),(0,N.jsx)(`button`,{type:`button`,onClick:jt,children:`SAVE`})]})]})}):null]})}export{Y as ReviewPage,L as diffLanguageForPath};
@@ -1 +0,0 @@
1
- import{n as e}from"./jsx-runtime-BthL93pI.js";function t(e){return e.binary===!0||e.diffTooExpensive===!0||e.diff.truncated===!0}var n={autoMarkReviewed:!1,context:10,fitToScreen:!0,fontSize:12,ignoreWhitespace:`NONE`,intralineDifference:!0,lineLength:120,showTabs:!0,showTrailingWhitespace:!0,syntaxHighlighting:!0,tabSize:8};function r(e){return e===`unified`?`unified`:`split`}function i(e){return[...new Set(e)]}function a(e){return e===`/COMMIT_MSG`||e===`/MERGE_LIST`}function o(e){return e===`left`||e===`right`||e===`unified`}function s(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return!Number.isInteger(t.start_line)||(t.start_line??0)<1||!Number.isInteger(t.end_line)||(t.end_line??0)<1||!Number.isInteger(t.start_character)||(t.start_character??-1)<0||!Number.isInteger(t.end_character)||(t.end_character??-1)<0?!1:t.start_line<t.end_line||t.start_line===t.end_line&&t.start_character<t.end_character}function c(e){return a(e)?!0:typeof e==`string`&&e.length>0&&e.length<=4096&&!e.includes(`\0`)&&!e.startsWith(`/`)&&!e.startsWith(`\\`)&&e.split(/[\\/]/).every(e=>e&&e!==`.`&&e!==`..`)}function l(e){let t=[e.path];return e.previousPath&&e.previousPath!==e.path&&c(e.previousPath)&&t.push(e.previousPath),t}function u(e,t){return t===`left`&&e.previousPath&&e.previousPath!==e.path&&c(e.previousPath)?e.previousPath:e.path}function d(e,t){return e===`deleted`||e===`context`&&!t?`left`:`right`}function ee(e,t){return new Set(v(e,t).flatMap(l))}function f(e,t,n){return ee(e,t).has(n)}function te(e,t){if(!e||typeof e!=`object`||Array.isArray(e))return;let n=e,r=typeof n.body==`string`?n.body.trim():``,i=typeof n.line==`number`&&Number.isInteger(n.line)?n.line:null;if(!(typeof n.id!=`string`||!/^[A-Za-z0-9][A-Za-z0-9._:-]*$/.test(n.id)||typeof n.patchset!=`string`||!n.patchset.trim()||t!==void 0&&n.patchset!==t||!c(n.path)||i===null||i<1||i>1e8||!o(n.side)||!r||r.length>2e4))return{body:r,id:n.id,line:i,patchset:n.patchset,path:n.path,...s(n.range)?{range:n.range}:{},side:n.side,...typeof n.sourcePatchset==`string`&&n.sourcePatchset.trim()?{sourcePatchset:n.sourcePatchset}:{},...n.status===`open`||n.status===`resolved`||n.status===`outdated`?{status:n.status}:{}}}function p(e,t,n){if(!Array.isArray(e))return[];let r=new Set,i=[];for(let a of e){let e=te(a,n),o=e?`${e.patchset}\0${e.id}`:``;!e||!f(t,e.patchset,e.path)||r.has(o)||(r.add(o),i.push(e))}return i}function m(e,t,n,r){return typeof e!=`number`||!Number.isFinite(e)?t:Math.max(n,Math.min(r,Math.round(e)))}function h(e,t){return typeof e==`boolean`?e:t}function g(e){let t=e&&typeof e==`object`&&!Array.isArray(e)?e:{},r=m(t.context,n.context,3,100);return{autoMarkReviewed:h(t.autoMarkReviewed,n.autoMarkReviewed),context:[3,10,25,100].includes(r)?r:n.context,fitToScreen:h(t.fitToScreen,n.fitToScreen),fontSize:m(t.fontSize,n.fontSize,10,20),ignoreWhitespace:t.ignoreWhitespace===`TRAILING`||t.ignoreWhitespace===`LEADING_AND_TRAILING`||t.ignoreWhitespace===`ALL`||t.ignoreWhitespace===`NONE`?t.ignoreWhitespace:n.ignoreWhitespace,intralineDifference:h(t.intralineDifference,n.intralineDifference),lineLength:m(t.lineLength,n.lineLength,40,240),showTabs:h(t.showTabs,n.showTabs),showTrailingWhitespace:h(t.showTrailingWhitespace,n.showTrailingWhitespace),syntaxHighlighting:h(t.syntaxHighlighting,n.syntaxHighlighting),tabSize:m(t.tabSize,n.tabSize,2,16)}}function _(){return{autoReviewPaths:[],diffLoadErrors:{},expandedPaths:[],pendingDiffPaths:[],revealedContextHunks:[],reviewedLoaded:!1,reviewedRevision:0,reviewedPaths:[]}}function v(e,t){return e[t]??[]}function ne(e){for(let[t,n]of Object.entries(e)){let e=new Set;for(let r of n){if(e.has(r.path))throw TypeError(`duplicate review file path in ${t}: ${r.path}`);e.add(r.path)}}}function y(e,t,n){return v(e,t).some(e=>e.path===n)}function b(e){return e.patchsets[e.patchRange.patchset]??_()}function x(e,t){let n=e.patchRange.patchset;return{...e,patchsets:{...e.patchsets,[n]:t(b(e))}}}function S(e,t,n){return{...e,patchsets:{...e.patchsets,[t]:n(D(e,t))}}}function C(e,t,n){let r=new Set(e);return n?r.add(t):r.delete(t),[...r]}function w(e,t){if(!(t in e))return e;let n={...e};return delete n[t],n}function re(e){return!!e&&e?.diffLoaded===!1&&!t(e)}function ie(e,t,n,r){let a=new Map(v(e,t).map(e=>[e.path,e]));return i(r).filter(e=>re(a.get(e))&&!n.pendingDiffPaths.includes(e))}function ae(e,t,n){return{patchset:t,path:n,...e.reviewId?{reviewId:e.reviewId}:{},type:`load-file-diff`}}function oe(e,t,n,r){return{changes:r,patchset:t,...e.reviewId?{reviewId:e.reviewId}:{},revision:n,type:`save-reviewed-status`}}function se(e,t,n){return{comment:n,...e.reviewId?{reviewId:e.reviewId}:{},type:t}}function T(e,t){return t===void 0||t===e.reviewId}function ce(e,t){return!!(e&&e.id===t.id&&e.type===t.pendingType)}function le(e,t,n,r){if(!Array.isArray(r))return[];let i=new Set(v(e,t).map(e=>e.path)),a=new Set(n),o=new Map;for(let e of r)!e||!i.has(e.path)||typeof e.reviewed!=`boolean`||o.set(e.path,e.reviewed);return[...o.entries()].filter(([e,t])=>a.has(e)!==t).map(([e,t])=>({path:e,reviewed:t}))}function ue(e,t){return t.reduce((e,t)=>C(e,t.path,t.reviewed),e)}function de(e,t){return`${e}:${t}`}function E(e){return{effects:[],state:e}}function fe({catalog:e,comments:t=[],diffMode:n=`split`,patchRange:a,preferences:o,reviewId:s,reviewedPathsByPatchset:c={}}){if(ne(e),!e[a.patchset])throw TypeError(`review patchset is not present in catalog: ${a.patchset}`);let l=Object.fromEntries(Object.keys(e).map(t=>{let n=new Set(v(e,t).map(e=>e.path)),r=Object.prototype.hasOwnProperty.call(c,t),a=r?c[t]??[]:[];return[t,{..._(),reviewedLoaded:r,reviewedPaths:i(a.filter(e=>n.has(e)))}]}));return{comments:p(t,e),diffMode:r(n),patchRange:a,patchsets:l,preferences:g(o),...typeof s==`string`&&s?{reviewId:s}:{}}}function D(e,t){return e.patchsets[t]??_()}function O(e,t,n=e.patchRange.patchset){let r=D(e,n),i=r.reviewedLoaded;return{loaded:i,pending:r.pendingReview?.changes.some(e=>e.path===t)??!1,status:i?r.reviewedPaths.includes(t)?`reviewed`:`unreviewed`:`unknown`}}function pe(e,t,n=e.patchRange.patchset){return D(e,n).diffLoadErrors[t]}function me(e,t,n=e.patchRange.patchset){let r=new Set(t);return e.comments.filter(e=>e.patchset===n&&r.has(e.path))}function k(e,t,n){let a=e.patchRange.patchset,c=b(e);switch(t.type){case`select-patchset`:return!n[t.patchset]||t.patchset===a?E(e):{effects:[],state:{...e,commentDraft:void 0,patchRange:{...e.patchRange,patchset:t.patchset}}};case`set-diff-mode`:{let n=r(t.mode);return n===e.diffMode?E(e):{effects:[],state:{...e,diffMode:n}}}case`set-preferences`:return{effects:[],state:{...e,preferences:g(t.preferences)}};case`toggle-file-expanded`:{if(!y(n,a,t.path))return E(e);let r=!c.expandedPaths.includes(t.path),o=r?ie(n,a,c,[t.path]):[],s=O(e,t.path),l=x(e,e=>({...e,autoReviewPaths:r&&!s.loaded?C(e.autoReviewPaths,t.path,!0):C(e.autoReviewPaths,t.path,!1),diffLoadErrors:r?w(e.diffLoadErrors,t.path):e.diffLoadErrors,expandedPaths:C(e.expandedPaths,t.path,r),pendingDiffPaths:i([...e.pendingDiffPaths,...o])})),u=o.map(t=>ae(e,a,t));if(!r||!s.loaded||s.status===`reviewed`)return{effects:u,state:l};let d=k(l,{path:t.path,reviewed:!0,type:`set-file-reviewed`},n);return{effects:[...u,...d.effects],state:d.state}}case`set-all-files-expanded`:{if(typeof t.expanded!=`boolean`||!Array.isArray(t.paths))return E(e);let r=i(t.paths.filter(e=>y(n,a,e))),o=t.expanded?ie(n,a,c,r):[];return{effects:o.map(t=>ae(e,a,t)),state:x(e,e=>({...e,diffLoadErrors:t.expanded?r.reduce((e,t)=>w(e,t),e.diffLoadErrors):e.diffLoadErrors,expandedPaths:t.expanded?r:[],autoReviewPaths:t.expanded?e.autoReviewPaths:[],pendingDiffPaths:i([...e.pendingDiffPaths,...o])}))}}case`commit-file-diff-load`:return!n[t.patchset]||!y(n,t.patchset,t.path)||!T(e,t.reviewId)||!D(e,t.patchset).pendingDiffPaths.includes(t.path)?E(e):{effects:[],state:S(e,t.patchset,e=>({...e,diffLoadErrors:w(e.diffLoadErrors,t.path),pendingDiffPaths:C(e.pendingDiffPaths,t.path,!1)}))};case`fail-file-diff-load`:{if(!n[t.patchset]||!y(n,t.patchset,t.path)||!T(e,t.reviewId)||!D(e,t.patchset).pendingDiffPaths.includes(t.path))return E(e);let r=t.error.trim()||`review file diff request failed`;return{effects:[],state:S(e,t.patchset,e=>({...e,diffLoadErrors:{...e.diffLoadErrors,[t.path]:r},pendingDiffPaths:C(e.pendingDiffPaths,t.path,!1)}))}}case`toggle-common-context`:{let r=v(n,a).find(e=>e.path===t.path),i=r?.diff.hunks[t.hunkIndex]?.commonContext;if(!r||!Number.isInteger(t.hunkIndex)||t.hunkIndex<0||!i?.length)return E(e);let o=de(t.path,t.hunkIndex);return{effects:[],state:x(e,e=>({...e,revealedContextHunks:C(e.revealedContextHunks,o,!e.revealedContextHunks.includes(o))}))}}case`set-file-reviewed`:return k(e,{changes:[{path:t.path,reviewed:t.reviewed}],type:`set-files-reviewed`},n);case`set-files-reviewed`:{if(!c.reviewedLoaded||c.pendingReview)return E(e);let r=le(n,a,c.reviewedPaths,t.changes);return r.length?{effects:[oe(e,a,c.reviewedRevision,r)],state:x(e,e=>({...e,autoReviewPaths:r.reduce((e,t)=>C(e,t.path,!1),e.autoReviewPaths),pendingReview:{changes:r},reviewedPaths:ue(e.reviewedPaths,r)}))}:E(e)}case`hydrate-reviewed-status`:{if(!n[t.patchset]||!Array.isArray(t.reviewedPaths)||!Number.isInteger(t.revision)||t.revision<0||!T(e,t.reviewId))return E(e);let r=D(e,t.patchset);if(r.pendingReview||t.revision<r.reviewedRevision)return E(e);let a=new Set(v(n,t.patchset).map(e=>e.path)),o=i(t.reviewedPaths.filter(e=>a.has(e))),s=le(n,t.patchset,o,r.autoReviewPaths.map(e=>({path:e,reviewed:!0}))),c={...r,autoReviewPaths:[],...s.length?{pendingReview:{changes:s}}:{},reviewedLoaded:!0,reviewedPaths:s.length?ue(o,s):o,reviewedRevision:t.revision};return{effects:s.length?[oe(e,t.patchset,t.revision,s)]:[],state:{...e,patchsets:{...e.patchsets,[t.patchset]:c}}}}case`commit-reviewed-status`:{if(!n[t.patchset]||!Number.isInteger(t.revision)||t.revision<0||!T(e,t.reviewId))return E(e);let r=D(e,t.patchset),a=r.pendingReview,o=t.paths??(t.path?[t.path]:[]),s=a?.changes.map(e=>e.path)??[];if(!a||o.length!==s.length||o.some(e=>!s.includes(e))||t.revision<r.reviewedRevision)return E(e);let c=Array.isArray(t.reviewedPaths)?i(t.reviewedPaths.filter(e=>y(n,t.patchset,e))):r.reviewedPaths;return{effects:[],state:{...e,patchsets:{...e.patchsets,[t.patchset]:{...r,autoReviewPaths:s.reduce((e,t)=>C(e,t,!1),r.autoReviewPaths),pendingReview:void 0,reviewedLoaded:!0,reviewedPaths:c,reviewedRevision:t.revision}}}}}case`restore-reviewed-status`:{if(!n[t.patchset]||!Array.isArray(t.reviewedPaths)||!Number.isInteger(t.revision)||t.revision<0||!T(e,t.reviewId))return E(e);let r=D(e,t.patchset);if(!r.pendingReview||t.revision<r.reviewedRevision)return E(e);let a=new Set(v(n,t.patchset).map(e=>e.path)),o=i(t.reviewedPaths.filter(e=>a.has(e)));return{effects:[],state:{...e,patchsets:{...e.patchsets,[t.patchset]:{...r,autoReviewPaths:[],pendingReview:void 0,reviewedLoaded:!0,reviewedPaths:o,reviewedRevision:t.revision}}}}}case`start-comment`:return!f(n,a,t.path)||!Number.isInteger(t.line)||t.line<1||!o(t.side)||t.range!==void 0&&!s(t.range)?E(e):{effects:[],state:{...e,commentDraft:{body:``,line:t.line,patchset:a,path:t.path,...t.range?{range:t.range}:{},side:t.side}}};case`update-comment-draft`:return e.commentDraft?{effects:[],state:{...e,commentDraft:{...e.commentDraft,body:t.body}}}:E(e);case`cancel-comment`:return e.commentDraft?{effects:[],state:{...e,commentDraft:void 0}}:E(e);case`save-comment`:{let n=e.commentDraft,r=n?.body.trim();if(!n||!r||c.pendingComment||typeof t.id!=`string`||!t.id.trim()||e.comments.some(e=>e.patchset===a&&e.id===t.id))return E(e);let i={...n,body:r,id:t.id};return{effects:[se(e,`save-comment`,i)],state:x({...e,commentDraft:void 0,comments:[...e.comments,i]},e=>({...e,pendingComment:{id:i.id,type:`save`}}))}}case`delete-comment`:{let n=e.comments.find(e=>e.patchset===a&&e.id===t.id);return!n||c.pendingComment?E(e):{effects:[se(e,`delete-comment`,n)],state:x({...e,comments:e.comments.filter(e=>e.patchset!==a||e.id!==t.id)},e=>({...e,pendingComment:{id:n.id,type:`delete`}}))}}case`hydrate-comments`:{if(!n[t.patchset]||D(e,t.patchset).pendingComment||!T(e,t.reviewId))return E(e);let r=p(t.comments,n,t.patchset);return{effects:[],state:{...e,comments:[...e.comments.filter(e=>e.patchset!==t.patchset),...r]}}}case`commit-comment`:return!n[t.patchset]||!T(e,t.reviewId)||!ce(D(e,t.patchset).pendingComment,t)?E(e):{effects:[],state:S(e,t.patchset,e=>({...e,pendingComment:void 0}))};case`restore-comments`:{if(!n[t.patchset]||!T(e,t.reviewId)||!ce(D(e,t.patchset).pendingComment,t))return E(e);let r=p(t.comments,n,t.patchset);return{effects:[],state:S({...e,comments:[...e.comments.filter(e=>e.patchset!==t.patchset),...r]},t.patchset,e=>({...e,pendingComment:void 0}))}}}}var he=new Map([[`/COMMIT_MSG`,0],[`/MERGE_LIST`,1]]);function ge(e,t){let n=he.get(e),r=he.get(t);return n!==void 0||r!==void 0?(n??2**53-1)-(r??2**53-1):e.localeCompare(t)}function _e(e){return e.basePatchset??(e.source===`working-copy`?`HEAD`:`Base`)}function ve(e){return{basePatchset:_e(e),patchset:e.patchset}}function ye(e){let t=Object.create(null);for(let n of e){if(Object.prototype.hasOwnProperty.call(t,n.path))throw TypeError(`duplicate review file path: ${n.path}`);t[n.path]=n}return t}function be(e){return ye(e.files),{[e.patchset]:e.files}}function xe(e){return a(e)?!0:typeof e==`string`&&e.length>0&&e.length<=4096&&!e.includes(`\0`)&&!e.startsWith(`/`)&&!e.startsWith(`\\`)&&e.split(/[\\/]/).every(e=>e&&e!==`.`&&e!==`..`)}function Se(e){return{added:0,diff:{hunks:[]},diffLoaded:!1,kind:`unmodified`,path:e,removed:0,status:`U`}}function Ce(e,t){let n=[...e];for(let e of t)xe(e)&&(n.some(t=>t.path===e)||n.some(t=>t.kind===`renamed`&&t.previousPath===e)||n.push(Se(e)));return n.sort((e,t)=>ge(e.path,t.path))}function we(e,t,n){let r=e[t];if(!r)return e;let i=Ce(r,n);return i.length===r.length&&i.every((e,t)=>e===r[t])?e:{...e,[t]:i}}function Te(e,t){let n={...t,...e,diff:t.diff,diffLoaded:!0};return(e.binary===!0||t.binary===!0)&&(n.binary=!0),(e.diffTooExpensive===!0||t.diffTooExpensive===!0)&&(n.diffTooExpensive=!0),(e.truncated===!0||t.truncated===!0)&&(n.truncated=!0),(e.diff.truncated===!0||t.diff.truncated===!0)&&(n.diff={...n.diff,truncated:!0}),n}function Ee(e,t,n){let r=e[t];if(!r)return e;let i=!1,a=r.map(e=>e.path===n.path?(i=!0,Te(e,n)):e);return i?{...e,[t]:a}:e}function De({comments:e=[],preferences:t,reviewedPaths:n,snapshot:r}){return fe({catalog:be(r),comments:e,patchRange:ve(r),preferences:t,reviewId:r.reviewId,reviewedPathsByPatchset:n===void 0?{}:{[r.patchset]:n}})}function A(e){if(typeof e!=`string`)return;let t=e.trim();if(!(!t||t.length>200||t.startsWith(`-`)||/[\\\0\r\n\t ]/.test(t)))return t}var j=class extends Error{state;constructor(e,t){super(e),this.name=`ReviewApiError`,this.state=t}},Oe=`review-fixture-553987`,ke=200;function Ae(t,n){return e(`/api/reviews/${encodeURIComponent(t)}/revisions/${encodeURIComponent(n)}/files`)}function je(t,n,r){return e(`/api/reviews/${encodeURIComponent(t)}/revisions/${encodeURIComponent(n)}/files/${encodeURIComponent(r)}/reviewed`)}function Me(t){return e(`/api/reviews/working-copy/files/${encodeURIComponent(t)}/diff`)}function Ne(t){return e(`/api/reviews/working-copy/files/${encodeURIComponent(t)}/context`)}function Pe(t){return e(`/api/reviews/git-range/files/${encodeURIComponent(t)}/diff`)}function Fe(t){return e(`/api/reviews/git-range/files/${encodeURIComponent(t)}/context`)}function M(t,n){return e(`/api/reviews/${encodeURIComponent(t)}/patchsets/${encodeURIComponent(n)}/comments`)}function N(e){return a(e)?!0:typeof e==`string`&&e.length>0&&e.length<=4096&&!e.includes(`\0`)&&!e.startsWith(`/`)&&!e.startsWith(`\\`)&&e.split(/[\\/]/).every(e=>e&&e!==`.`&&e!==`..`)}function Ie(e){return e===`A`||e===`C`||e===`D`||e===`M`||e===`R`||e===`U`||e===`W`||e===`X`}function P(e){return e===void 0||typeof e==`string`}function F(e){return typeof e==`string`&&e.length>0}function I(e){if(!e||typeof e!=`object`)return!1;let t=e;return F(t.id)&&F(t.label)&&!!A(t.base)&&!!A(t.head)&&(t.available===void 0||typeof t.available==`boolean`)}function L(e){return typeof e==`string`&&e.length>0&&e.length<=ke&&/^[A-Za-z0-9]/.test(e)&&!/[\\\0\r\n\t]/.test(e)}function R(e){return Number.isInteger(e)&&e>=0}function Le(e){let t=Number(e.headers.get(`X-Farming-Review-Revision`));return Number.isInteger(t)&&t>=0?t:0}function z(e,t){return e&&typeof e==`object`&&typeof e.error==`string`?e.error:t}function Re(e,t){(t===`ALL`||t===`LEADING_AND_TRAILING`||t===`TRAILING`)&&e.set(`ignoreWhitespace`,t)}function ze(e,t){typeof t==`number`&&Number.isInteger(t)&&t>=0&&e.set(`context`,String(t))}function Be(e,t){typeof t==`number`&&Number.isInteger(t)&&t>0&&e.set(`limit`,String(t))}function B(e,t){`root`in t&&typeof t.root==`string`?e.set(`root`,t.root):e.set(`agentId`,t.agentId)}function V(e,t){t.source===`git-range`&&t.reviewId&&e.set(`reviewId`,t.reviewId)}function Ve(e){return new Set(e).size===e.length}function H(e,t){if(!L(e)||!L(t))throw new j(`review identity is invalid`)}function U(e){if(!N(e))throw new j(`review file path is invalid`)}function He(e){let t=e.map(e=>e.path);if(!t.every(N)||!Ve(t))throw new j(`review status changes are invalid`)}function W(e,t){let n=A(e),r=A(t);if(!n||!r)throw new j(`base and head revisions are invalid`);return{base:n,head:r}}async function Ue(e,t){return z(await e.json().catch(()=>null),t)}function G(e){return typeof e==`string`&&/^[a-f0-9]{40,64}$/.test(e)}function K(e){if(!e||typeof e!=`object`)return!1;let t=e;return L(t.reviewId)&&F(t.root)&&G(t.base)&&G(t.fixesBase)&&G(t.head)&&Number.isInteger(t.number)&&t.number>0&&F(t.createdAt)&&(t.changedPaths===void 0||Array.isArray(t.changedPaths)&&t.changedPaths.every(N))&&(t.unchanged===void 0||typeof t.unchanged==`boolean`)&&(t.scope===void 0||t.scope===`tracked`||t.scope===`untracked`)&&(t.modifiedWithinDays===void 0||Number.isInteger(t.modifiedWithinDays)&&t.modifiedWithinDays>=1)&&(t.paths===void 0||Array.isArray(t.paths)&&t.paths.every(N))}async function q(e,t){let n=await e.json().catch(()=>null);if(!e.ok||!K(n))throw new j(z(n,t));return n}async function We(t,n,r={}){let i=A(n);if(!(`root`in t?t.root:t.agentId).trim()||!i)throw new j(`review capture target is invalid`);return q(await fetch(e(`/api/review-sessions`),{body:JSON.stringify({base:i,...t,...r}),headers:{"Content-Type":`application/json`},method:`POST`}),`review capture failed`)}async function Ge(t,n){if(!t.trim()||n.length===0||n.some(e=>!e.trim()))throw new j(`ACP review capture target is invalid`);return q(await fetch(e(`/api/review-sessions/acp`),{body:JSON.stringify({agentId:t,itemIds:n}),headers:{"Content-Type":`application/json`},method:`POST`}),`ACP review capture failed`)}async function Ke(t,n){if(!t.trim()||n.length===0||n.some(e=>!e.trim()))throw new j(`ACP review preview target is invalid`);let r=await fetch(e(`/api/review-sessions/acp/preview`),{body:JSON.stringify({agentId:t,itemIds:n}),headers:{"Content-Type":`application/json`},method:`POST`}),i=await r.json().catch(()=>null),a=i&&typeof i==`object`?i.changes:null;if(!r.ok||!Array.isArray(a)||!a.every(e=>e&&typeof e==`object`&&Number.isInteger(e.added)&&e.added>=0&&typeof e.diff==`string`&&typeof e.kind==`string`&&N(e.path)&&Number.isInteger(e.removed)&&e.removed>=0))throw new j(z(i,`ACP review preview failed`));return a}async function qe(t){if(!L(t))throw new j(`review session id is invalid`);return q(await fetch(e(`/api/review-sessions/${encodeURIComponent(t)}/revisions`),{method:`POST`}),`review refresh failed`)}async function Je(t){if(!L(t))throw new j(`review session id is invalid`);let n=await fetch(e(`/api/review-sessions/${encodeURIComponent(t)}`)),r=await n.json().catch(()=>null);if(!n.ok||!K(r)||!Array.isArray(r.revisions)||!r.revisions.every(K))throw new j(z(r,`review session request failed`));return r}async function Ye(t){if(!(`root`in t?t.root:t.agentId).trim())throw new j(`review comparison target is invalid`);let n=new URLSearchParams;`root`in t?n.set(`root`,t.root):n.set(`agentId`,t.agentId);let r=await fetch(`${e(`/api/reviews/comparison-sources`)}?${n.toString()}`),i=await r.json().catch(()=>null);if(!r.ok||!i||typeof i!=`object`)throw new j(z(i,`review comparison sources could not be loaded`));let a=i;if(!F(a.currentBranch)||!F(a.root)||!I(a.staged)||typeof a.staged.available!=`boolean`||!I(a.unstaged)||typeof a.unstaged.available!=`boolean`||!Array.isArray(a.commits)||!a.commits.every(I)||!Array.isArray(a.branches)||!a.branches.every(I))throw new j(`review comparison source response is invalid`);return a}function Xe(e,t=`final`){return{base:t===`fixes`?e.fixesBase:e.base,head:e.head,metadataOnly:!0,reviewId:e.reviewId,root:e.root,source:`git-range`}}async function Ze(e,t){H(e,t);let n=await fetch(`${Ae(e,t)}?reviewed`),r=await n.json().catch(()=>null);if(!n.ok||!Array.isArray(r)||!r.every(N)||!Ve(r))throw new j(z(r,`reviewed files request failed`));return{reviewedPaths:r,revision:Le(n)}}async function J(e,t){return Ze(e,t)}async function Qe({patchset:e,path:t,reviewId:n,reviewed:r}){H(n,e),U(t);let i=await fetch(je(n,e,t),{method:r?`PUT`:`DELETE`});if(!i.ok)throw new j(await Ue(i,`review status request failed`))}async function $e(e,t,n){let r=await J(t,n).catch(()=>void 0);return new j(e instanceof Error?e.message:`review status request failed`,r)}async function et({changes:e,patchset:t,reviewId:n}){H(n,t),He(e);try{for(let r of e)await Qe({patchset:t,path:r.path,reviewId:n,reviewed:r.reviewed});return J(n,t)}catch(e){throw await $e(e,n,t)}}function Y(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.id==`string`&&/^[A-Za-z0-9][A-Za-z0-9._:-]*$/.test(t.id)&&typeof t.body==`string`&&t.body.trim().length>0&&t.body.length<=2e4&&L(t.patchset)&&N(t.path)&&Number.isInteger(t.line)&&t.line>0&&t.line<=1e8&&(t.side===`left`||t.side===`right`||t.side===`unified`)&&(t.range===void 0||s(t.range))&&(t.status===void 0||t.status===`open`||t.status===`resolved`||t.status===`outdated`)&&(t.sourcePatchset===void 0||L(t.sourcePatchset))}function tt(e){if(typeof e!=`string`||!/^[A-Za-z0-9][A-Za-z0-9._:-]*$/.test(e))throw new j(`review comment id is invalid`)}function nt(e){return!!e&&typeof e==`object`&&Array.isArray(e.comments)&&e.comments.every(Y)}async function X(e){let t=await e.json().catch(()=>null);if(nt(t))return t.comments;if(Y(t))return t;throw new j(t&&typeof t==`object`&&typeof t.error==`string`?t.error:`review comment request failed`)}async function rt(e,t){H(e,t);let n=await fetch(M(e,t)),r=await X(n);if(!n.ok||!Array.isArray(r))throw new j(`review comment request failed`);return r}async function it(e,t){if(H(e,t.patchset),!Y(t))throw new j(`review comment is invalid`);let n=await fetch(M(e,t.patchset),{body:JSON.stringify(t),headers:{"Content-Type":`application/json`},method:`POST`}),r=await X(n);if(!n.ok||Array.isArray(r))throw new j(`review comment request failed`);return r}async function at(e,t,n){H(e,t),tt(n);let r=await fetch(`${M(e,t)}/${encodeURIComponent(n)}`,{method:`DELETE`}),i=await X(r);if(!r.ok||!Array.isArray(i))throw new j(`review comment request failed`);return i}async function ot(e,t,n,r){H(e,t),tt(n);let i=await fetch(`${M(e,t)}/${encodeURIComponent(n)}`,{body:JSON.stringify({status:r}),headers:{"Content-Type":`application/json`},method:`PATCH`}),a=await X(i);if(!i.ok||Array.isArray(a))throw new j(`review comment status request failed`);return a}function Z(e){let t=e,n=t?.intraline;return!!e&&typeof e==`object`&&Number.isInteger(t.line)&&t.line>0&&t.line<=1e8&&typeof t.text==`string`&&(t.missingNewlineAtEnd===void 0||t.missingNewlineAtEnd===!0)&&(n===void 0||Array.isArray(n)&&n.every(e=>Number.isInteger(e.start)&&Number.isInteger(e.end)&&e.start>=0&&e.end>e.start))}function Q(e){if(!e||typeof e!=`object`)return!1;let t=e,n=t.moveDetails;return t.whitespaceOnly!==void 0&&typeof t.whitespaceOnly!=`boolean`||t.dueToRebase!==void 0&&typeof t.dueToRebase!=`boolean`||n!==void 0&&(!n||typeof n!=`object`||typeof n.changed!=`boolean`||n.range!==void 0&&(!n.range||typeof n.range!=`object`||!Number.isInteger(n.range.start)||!Number.isInteger(n.range.end)||n.range.start<1||n.range.end<n.range.start))||!Z(t.left)&&t.left!==void 0||!Z(t.right)&&t.right!==void 0?!1:t.kind===`added`?t.left===void 0&&Z(t.right):t.kind===`changed`?Z(t.left)&&Z(t.right):t.kind===`deleted`?Z(t.left)&&t.right===void 0:t.kind===`context`?Z(t.left)&&Z(t.right):t.kind===`skipped`?t.left===void 0&&t.right===void 0&&Number.isInteger(t.leftLines)&&Number.isInteger(t.rightLines)&&(t.leftLines??0)>=0&&(t.rightLines??0)>=0&&((t.leftLines??0)>0||(t.rightLines??0)>0):!1}function st(e){return e.reduce((e,t)=>({left:e.left+ +!!t.left+(t.kind===`skipped`?t.leftLines??0:0),right:e.right+ +!!t.right+(t.kind===`skipped`?t.rightLines??0:0)}),{left:0,right:0})}function ct(e,t,n){if(n===0)return 0;let r=0;for(let n of e){let e=t===`left`?n.left:n.right;if(e)return Math.max(0,e.line-r);n.kind===`skipped`&&(r+=t===`left`?n.leftLines??0:n.rightLines??0)}return 1}function lt(e){let t=st(e.rows);return e.oldLines===t.left&&e.newLines===t.right&&e.oldStart===ct(e.rows,`left`,t.left)&&e.newStart===ct(e.rows,`right`,t.right)}function ut(e){if(!e||typeof e!=`object`)return!1;let t=e,n=[`oldStart`,`oldLines`,`newStart`,`newLines`].every(e=>{let n=t[e];return Number.isInteger(n)&&n>=0});return typeof t.header==`string`&&t.header.length>0&&n&&Array.isArray(t.rows)&&t.rows.every(Q)&&lt(t)&&(!t.commonContext||t.commonContext.every(Q))}function dt(e){let t=e;return!!e&&typeof e==`object`&&Number.isInteger(t.startLine)&&Number.isInteger(t.startColumn)&&Number.isInteger(t.endLine)&&Number.isInteger(t.endColumn)&&t.startLine>=1&&t.startColumn>=1&&t.endLine>=t.startLine&&t.endColumn>=1}function ft(e){let t=e;return!!e&&typeof e==`object`&&typeof t.name==`string`&&t.name.length>0&&(t.range===void 0||dt(t.range))&&(t.children===void 0||Array.isArray(t.children)&&t.children.every(ft))}function pt(e){let t=e;return!!e&&typeof e==`object`&&typeof t.name==`string`&&t.name.length>0&&typeof t.url==`string`&&t.url.length>0}function mt(e){let t=e;return!!e&&typeof e==`object`&&typeof t.name==`string`&&t.name.length>0&&typeof t.contentType==`string`&&t.contentType.length>0&&R(t.lines)&&(t.language===void 0||typeof t.language==`string`)&&(t.syntaxTree===void 0||Array.isArray(t.syntaxTree)&&t.syntaxTree.every(ft))&&(t.webLinks===void 0||Array.isArray(t.webLinks)&&t.webLinks.every(pt))}function $(e){if(!e||typeof e!=`object`)return!1;let t=e;return N(t.path)&&R(t.added)&&R(t.removed)&&(t.kind===`added`||t.kind===`copied`||t.kind===`deleted`||t.kind===`modified`||t.kind===`renamed`||t.kind===`rewritten`||t.kind===`unmodified`||t.kind===`reverted`)&&(t.binary===void 0||t.binary===!0)&&(t.diffLoaded===void 0||typeof t.diffLoaded==`boolean`)&&(t.diffTooExpensive===void 0||typeof t.diffTooExpensive==`boolean`)&&P(t.newMode)&&P(t.newSha)&&P(t.oldMode)&&P(t.oldSha)&&(t.previousPath===void 0||N(t.previousPath))&&(t.size===void 0||R(t.size))&&(t.sizeDelta===void 0||Number.isInteger(t.sizeDelta))&&(t.status===void 0||Ie(t.status))&&(t.truncated===void 0||typeof t.truncated==`boolean`)&&!!t.diff&&Array.isArray(t.diff.hunks)&&(t.diff.diffHeader===void 0||Array.isArray(t.diff.diffHeader)&&t.diff.diffHeader.every(e=>typeof e==`string`))&&(t.diff.intralineStatus===void 0||t.diff.intralineStatus===`ERROR`||t.diff.intralineStatus===`OK`||t.diff.intralineStatus===`TIMEOUT`)&&(t.diff.leftMeta===void 0||mt(t.diff.leftMeta))&&(t.diff.rightMeta===void 0||mt(t.diff.rightMeta))&&(t.diff.truncated===void 0||typeof t.diff.truncated==`boolean`)&&(t.diffLoaded!==!1||t.diff.hunks.length===0)&&t.diff.hunks.every(ut)}function ht(e){return!(!$(e)||e.diffLoaded===!1&&!t(e))}function gt(e,t){return ht(e)&&e.path===t}function _t(e){return new Set(e.map(e=>e.path)).size===e.length}function vt(e,t){return e===void 0||e===t?t:void 0}function yt(e,t){if(t.source===`working-copy`&&(t.scope&&e.set(`scope`,t.scope),t.scope===`untracked`&&t.modifiedWithinDays&&e.set(`modifiedWithinDays`,String(t.modifiedWithinDays))),Be(e,t.limit),t.metadataOnly===!0){e.set(`metadataOnly`,`1`);return}ze(e,t.context),Re(e,t.ignoreWhitespace)}function bt(t){let n=new URLSearchParams;B(n,t);let r=`/api/reviews/working-copy`;if(t.source===`git-range`){let e=W(t.base,t.head);n.set(`base`,e.base),n.set(`head`,e.head),r=`/api/reviews/git-range`}return yt(n,t),V(n,t),e(`${r}?${n.toString()}`)}async function xt(e){let t=await fetch(bt(e)),n=await t.json().catch(()=>null),r=e.source===`git-range`?`git range request failed`:`working copy request failed`;if(!t.ok||!n||typeof n!=`object`||!Array.isArray(n.files))throw new j(z(n,r));let i=n;if(!(i.files.every($)&&_t(i.files)&&F(i.root)&&F(i.reviewId)&&F(i.patchset)&&typeof i.isGitRepo==`boolean`&&typeof i.truncated==`boolean`&&vt(i.source,e.source)&&(e.source!==`git-range`||!e.reviewId||i.reviewId===e.reviewId)&&(e.source===`working-copy`||i.basePatchset===void 0||F(i.basePatchset))))throw new j(`${e.source===`git-range`?`git range review`:`working copy`} response is invalid`);return e.source===`working-copy`?{...i,basePatchset:typeof i.basePatchset==`string`?i.basePatchset:`HEAD`,source:`working-copy`}:{...i,source:`git-range`}}function St(e,t){U(t);let n=new URLSearchParams;B(n,e),ze(n,e.context),Re(n,e.ignoreWhitespace),V(n,e),e.source===`working-copy`&&(e.scope&&n.set(`scope`,e.scope),e.scope===`untracked`&&e.modifiedWithinDays&&n.set(`modifiedWithinDays`,String(e.modifiedWithinDays)));let r=Me(t);if(e.source===`git-range`){let i=W(e.base,e.head);n.set(`base`,i.base),n.set(`head`,i.head),r=Pe(t)}return`${r}?${n.toString()}`}async function Ct(e,t){let n=await fetch(St(e,t)),r=await n.json().catch(()=>null);if(!n.ok||!gt(r,t))throw new j(z(r,e.source===`git-range`?`review git range file diff request failed`:`review file diff request failed`));return r}function wt(e,t){for(let[n,r]of Object.entries(t)){if(!Number.isInteger(r)||r<1)throw new j(`review context ${n} is invalid`);e.set(n,String(r))}}function Tt(e){if(!e||typeof e!=`object`)return!1;let t=e;return Number.isInteger(t.leftLines)&&t.leftLines>=0&&Number.isInteger(t.rightLines)&&t.rightLines>=0&&Array.isArray(t.rows)&&t.rows.length>0&&t.rows.every(e=>Q(e)&&e.kind===`context`)}function Et(e,t,n){U(t);let r=new URLSearchParams;if(B(r,e),V(r,e),wt(r,n),e.source===`working-copy`)return e.scope&&r.set(`scope`,e.scope),e.scope===`untracked`&&e.modifiedWithinDays&&r.set(`modifiedWithinDays`,String(e.modifiedWithinDays)),`${Ne(t)}?${r.toString()}`;let i=W(e.base,e.head);return r.set(`base`,i.base),r.set(`head`,i.head),`${Fe(t)}?${r.toString()}`}async function Dt(e,t,n){let r=await fetch(Et(e,t,n)),i=await r.json().catch(()=>null);if(!r.ok||!Tt(i)||i.rows.length!==n.lines)throw new j(z(i,`review context request failed`));return i}export{d as A,we as C,g as D,fe as E,k as F,t as M,O as N,u as O,D as P,Ee as S,me as T,et as _,at as a,A as b,Ye as c,Ct as d,Je as f,it as g,Xe as h,We as i,pe as j,l as k,xt as l,qe as m,j as n,Ke as o,J as p,Ge as r,rt as s,Oe as t,Dt as u,ot as v,n as w,be as x,De as y};
@@ -1 +0,0 @@
1
- import{at as e,ot as t}from"./chunk-WYO6CB5R-CUxMtfK2.js";var n=(n,r)=>t.lang.round(e.parse(n)[r]);export{n as t};
@@ -1 +0,0 @@
1
- import{n as e}from"./chunk-Y2CYZVJY-Di0sYzi1.js";var t=class{constructor(e){this.init=e,this.records=this.init()}static{e(this,`ImperativeState`)}reset(){this.records=this.init()}};export{t};
@@ -1 +0,0 @@
1
- import{n as e}from"./chunk-Y2CYZVJY-Di0sYzi1.js";import{p as t}from"./src-WBW1QxJt.js";import{x as n}from"./chunk-WYO6CB5R-CUxMtfK2.js";var r=e(e=>{let{securityLevel:r}=n(),i=t(`body`);return r===`sandbox`&&(i=t((t(`#i${e}`).node()?.contentDocument??document).body)),i.select(`#${e}`)},`selectSvgElement`);export{r as t};
@@ -1 +0,0 @@
1
- import{n as e}from"./chunk-Y2CYZVJY-Di0sYzi1.js";import{p as t}from"./src-WBW1QxJt.js";var n=e((e,n)=>{let r;return n===`sandbox`&&(r=t(`#i`+e)),t(n===`sandbox`?r.nodes()[0].contentDocument.body:`body`).select(`[id="${e}"]`)},`getDiagramElement`);export{n as t};
@@ -1 +0,0 @@
1
- import{n as e}from"./chunk-Y2CYZVJY-Di0sYzi1.js";import"./src-WBW1QxJt.js";import"./chunk-WYO6CB5R-CUxMtfK2.js";import"./chunk-ICXQ74PX-b6oQ2Q17.js";import"./chunk-HOUHSVGY-D8tIeoPk.js";import"./chunk-Q4XR5HBZ-Di4H7L21.js";import"./chunk-7BUUIJ7U-ZBRhjLOh.js";import"./chunk-OGEWGWER-DxoiMCI-.js";import"./chunk-32BRIVSS-CCdsKd73.js";import"./chunk-XXDRQBXY-BBXwjhUx.js";import"./chunk-VR4S4FIN-D-Fmtd4Z.js";import"./chunk-C7G6YPKG-CiDVUP82.js";import"./chunk-ZGVPDNZ5-CoV2QEl0.js";import"./chunk-52WLFC77-Gncjk4LF.js";import"./chunk-FWX5IMBZ-DMZBccQa.js";import{i as t,n,r,t as i}from"./chunk-V7JOEXUC-DttpZg9Y.js";var a={parser:n,get db(){return new i},renderer:r,styles:t,init:e(e=>{e.class||={},e.class.arrowMarkerAbsolute=e.arrowMarkerAbsolute},`init`)};export{a as diagram};
@@ -1 +0,0 @@
1
- import{n as e}from"./chunk-Y2CYZVJY-Di0sYzi1.js";import"./src-WBW1QxJt.js";import"./chunk-WYO6CB5R-CUxMtfK2.js";import"./chunk-ICXQ74PX-b6oQ2Q17.js";import"./chunk-HOUHSVGY-D8tIeoPk.js";import"./chunk-Q4XR5HBZ-Di4H7L21.js";import"./chunk-7BUUIJ7U-ZBRhjLOh.js";import"./chunk-OGEWGWER-DxoiMCI-.js";import"./chunk-32BRIVSS-CCdsKd73.js";import"./chunk-XXDRQBXY-BBXwjhUx.js";import"./chunk-VR4S4FIN-D-Fmtd4Z.js";import"./chunk-C7G6YPKG-CiDVUP82.js";import"./chunk-ZGVPDNZ5-CoV2QEl0.js";import"./chunk-52WLFC77-Gncjk4LF.js";import"./chunk-FWX5IMBZ-DMZBccQa.js";import{i as t,n,r,t as i}from"./chunk-V7JOEXUC-DttpZg9Y.js";var a={parser:n,get db(){return new i},renderer:r,styles:t,init:e(e=>{e.class||={},e.class.arrowMarkerAbsolute=e.arrowMarkerAbsolute},`init`)};export{a as diagram};
@@ -1 +0,0 @@
1
- body.code-mode[data-appearance=dark]{--code-dark-bg:#0d1117;--code-dark-bg-soft:#11161d;--code-dark-bg-panel:#161b22;--code-dark-bg-elevated:#1c2129;--code-dark-bg-hover:#252b35;--code-dark-bg-active:#2b323d;--code-dark-border:#30363d;--code-dark-border-soft:#242b33;--code-dark-text:#e6edf3;--code-dark-text-soft:#c9d1d9;--code-dark-text-muted:#8b949e;--code-dark-accent:#58a6ff;--code-dark-accent-soft:#58a6ff2e;--code-dark-success:#3fb950;--code-dark-warning:#d29922;--code-dark-danger:#f85149;--code-dark-shadow:#01040975;background:var(--code-dark-bg);color:var(--code-dark-text);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body.code-mode[data-appearance=dark] #root,body.code-mode[data-appearance=dark] .code-app-shell,body.code-mode[data-appearance=dark] .code-workspace,body.code-mode[data-appearance=dark] .code-main,body.code-mode[data-appearance=dark] .code-terminal-grid{background:var(--code-dark-bg);color:var(--code-dark-text)}body.code-mode[data-appearance=dark] ::selection{color:#fff;background:#58a6ff57}body.code-mode[data-appearance=dark] .code-sidebar{background:var(--code-dark-bg-soft);color:var(--code-dark-text);border-right-color:var(--code-dark-border)}body.code-mode[data-appearance=dark] .code-project-row,body.code-mode[data-appearance=dark] .code-pinned-section,body.code-mode[data-appearance=dark] .code-pinned-title{background:var(--code-dark-bg-soft);color:var(--code-dark-text-soft)}body.code-mode[data-appearance=dark] .code-sidebar-resizer{background:var(--code-dark-border-soft)}body.code-mode[data-appearance=dark] .code-sidebar-resizer:hover,body.code-resizing-sidebar[data-appearance=dark] .code-sidebar-resizer{background:var(--code-dark-accent)}body.code-mode[data-appearance=dark] .code-sidebar-toggle,body.code-mode[data-appearance=dark] .code-sidebar-focus-toggle,body.code-mode[data-appearance=dark] .code-sidebar-search-toggle,body.code-mode[data-appearance=dark] .code-sidebar-options,body.code-mode[data-appearance=dark] .code-nav-item,body.code-mode[data-appearance=dark] .code-agent-rail-button,body.code-mode[data-appearance=dark] .code-project-agent-compact,body.code-mode[data-appearance=dark] .code-project-title,body.code-mode[data-appearance=dark] .code-project-title-action,body.code-mode[data-appearance=dark] .code-agent-row,body.code-mode[data-appearance=dark] .code-session-show-more,body.code-mode[data-appearance=dark] .code-open-editor-main,body.code-mode[data-appearance=dark] .code-file-row,body.code-mode[data-appearance=dark] .code-file-editor-action,body.code-mode[data-appearance=dark] .code-file-editor-breadcrumb,body.code-mode[data-appearance=dark] .code-composer-add,body.code-mode[data-appearance=dark] .code-composer-mic,body.code-mode[data-appearance=dark] .code-composer-approval,body.code-mode[data-appearance=dark] .code-composer-context-window,body.code-mode[data-appearance=dark] .code-composer-model-picker,body.code-mode[data-appearance=dark] .code-composer-mode-chip,body.code-mode[data-appearance=dark] .code-nav-icon{color:var(--code-dark-text-soft)}body.code-mode[data-appearance=dark] .code-sidebar-toggle,body.code-mode[data-appearance=dark] .code-sidebar-focus-toggle,body.code-mode[data-appearance=dark] .code-sidebar-search-toggle,body.code-mode[data-appearance=dark] .code-sidebar-history-toggle,body.code-mode[data-appearance=dark] .code-sidebar-options{color:var(--code-dark-text-muted);background:#161b22a8}body.code-mode[data-appearance=dark] .code-nav-item:hover,body.code-mode[data-appearance=dark] .code-nav-item.active,body.code-mode[data-appearance=dark] .code-agent-rail-button:hover,body.code-mode[data-appearance=dark] .code-agent-rail-button:focus-visible,body.code-mode[data-appearance=dark] .code-agent-rail-button.active,body.code-mode[data-appearance=dark] .code-project-agent-compact:hover,body.code-mode[data-appearance=dark] .code-project-agent-compact:focus-visible,body.code-mode[data-appearance=dark] .code-project-agent-compact.active,body.code-mode[data-appearance=dark] .code-agent-row:hover,body.code-mode[data-appearance=dark] .code-agent-row.active,body.code-mode[data-appearance=dark] .code-agent-row.search-selected,body.code-mode[data-appearance=dark] .code-project-row:hover .code-project-title,body.code-mode[data-appearance=dark] .code-project-title:hover,body.code-mode[data-appearance=dark] .code-pinned-title:hover,body.code-mode[data-appearance=dark] .code-pinned-title:focus-visible,body.code-mode[data-appearance=dark] .code-open-editor-main:hover,body.code-mode[data-appearance=dark] .code-open-editor-main:focus-visible,body.code-mode[data-appearance=dark] .code-file-row:hover,body.code-mode[data-appearance=dark] .code-file-row.focused,body.code-mode[data-appearance=dark] .code-file-row.selected,body.code-mode[data-appearance=dark] .code-file-row.active,body.code-mode[data-appearance=dark] .code-sidebar-toggle:hover,body.code-mode[data-appearance=dark] .code-sidebar-toggle:focus-visible,body.code-mode[data-appearance=dark] .code-sidebar-focus-toggle:hover,body.code-mode[data-appearance=dark] .code-sidebar-focus-toggle:focus-visible,body.code-mode[data-appearance=dark] .code-sidebar-focus-toggle.active,body.code-mode[data-appearance=dark] .code-sidebar-search-toggle:hover,body.code-mode[data-appearance=dark] .code-sidebar-search-toggle:focus-visible,body.code-mode[data-appearance=dark] .code-sidebar-search-toggle.active,body.code-mode[data-appearance=dark] .code-sidebar-history-toggle:hover,body.code-mode[data-appearance=dark] .code-sidebar-history-toggle:focus-visible,body.code-mode[data-appearance=dark] .code-sidebar-history-toggle.active,body.code-mode[data-appearance=dark] .code-sidebar-options:hover,body.code-mode[data-appearance=dark] .code-sidebar-options:focus-visible,body.code-mode[data-appearance=dark] .code-file-editor-action:hover:not(:disabled),body.code-mode[data-appearance=dark] .code-file-editor-action.active,body.code-mode[data-appearance=dark] .code-file-editor-breadcrumb:hover,body.code-mode[data-appearance=dark] .code-file-editor-breadcrumb:focus-visible,body.code-mode[data-appearance=dark] .code-composer-add:hover,body.code-mode[data-appearance=dark] .code-composer-mic:hover,body.code-mode[data-appearance=dark] .code-composer-approval:hover,body.code-mode[data-appearance=dark] .code-composer-context-window:hover,body.code-mode[data-appearance=dark] .code-composer-model-picker:hover,body.code-mode[data-appearance=dark] .code-composer-mode-chip:hover{background:var(--code-dark-bg-hover);color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-agent-row-action{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-agent-row-action:hover,body.code-mode[data-appearance=dark] .code-agent-row-action:focus-visible{color:var(--code-dark-text);background:#ffffff1a}body.code-mode[data-appearance=dark] .code-composer-dictation-hint{border-color:var(--code-dark-border);color:var(--code-dark-text-soft);background:#1c1f22e6;box-shadow:0 10px 24px #00000042}body.code-mode[data-appearance=dark] .code-agent-row-action.pin.active{color:#d7c66f}body.code-mode[data-appearance=dark] .code-agent-row-actions{--code-agent-row-action-surface:var(--code-dark-bg-soft)}body.code-mode[data-appearance=dark] .code-agent-row:hover .code-agent-row-actions,body.code-mode[data-appearance=dark] .code-agent-row.active .code-agent-row-actions,body.code-mode[data-appearance=dark] .code-agent-row.search-selected .code-agent-row-actions{--code-agent-row-action-surface:var(--code-dark-bg-hover)}body.code-mode[data-appearance=dark] .code-project-title-action{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-project-title-action:hover,body.code-mode[data-appearance=dark] .code-project-title-action:focus-visible{color:var(--code-dark-text);background:#ffffff1a}body.code-mode[data-appearance=dark] .code-file-search-box,body.code-mode[data-appearance=dark] .workspace-input input,body.code-mode[data-appearance=dark] .workspace-directory-picker,body.code-mode[data-appearance=dark] .workspace-input select.workflow-select,body.code-mode[data-appearance=dark] .workspace-input textarea.task-input,body.code-mode[data-appearance=dark] .settings-input,body.code-mode[data-appearance=dark] .settings-select,body.code-mode[data-appearance=dark] .code-file-operation-dialog input{background:var(--code-dark-bg-panel);border-color:var(--code-dark-border);color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .workspace-directory-picker:hover:not(:disabled){background:var(--code-dark-bg-hover);color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .workspace-directory-browser-heading h4,body.code-mode[data-appearance=dark] .workspace-directory-browser-row{color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .workspace-directory-browser-heading p,body.code-mode[data-appearance=dark] .workspace-directory-browser-status,body.code-mode[data-appearance=dark] .workspace-directory-browser-actions>span,body.code-mode[data-appearance=dark] .workspace-directory-browser-inline-status{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .workspace-directory-browser-close,body.code-mode[data-appearance=dark] .workspace-directory-browser-parent,body.code-mode[data-appearance=dark] .workspace-directory-browser-go,body.code-mode[data-appearance=dark] .workspace-directory-browser-location input,body.code-mode[data-appearance=dark] .workspace-directory-browser-actions button.secondary{border-color:var(--code-dark-border);background:var(--code-dark-bg-panel);color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .workspace-directory-browser-close:hover:not(:disabled),body.code-mode[data-appearance=dark] .workspace-directory-browser-parent:hover:not(:disabled),body.code-mode[data-appearance=dark] .workspace-directory-browser-go:hover:not(:disabled),body.code-mode[data-appearance=dark] .workspace-directory-browser-row:hover,body.code-mode[data-appearance=dark] .workspace-directory-browser-row:focus-visible,body.code-mode[data-appearance=dark] .workspace-directory-browser-actions button.secondary:hover{background:var(--code-dark-bg-hover);color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .workspace-directory-browser-row.selected{color:var(--code-dark-text);background:#79baff24}body.code-mode[data-appearance=dark] .workspace-directory-browser-list{border-color:var(--code-dark-border);background:var(--code-dark-bg-soft)}body.code-mode[data-appearance=dark] .workspace-directory-browser-row>svg:first-child,body.code-mode[data-appearance=dark] .workspace-directory-browser-row>svg:nth-child(2){color:var(--code-dark-text-soft)}body.code-mode[data-appearance=dark] .workspace-directory-browser-actions button:not(.secondary){background:var(--code-dark-accent);color:#fff}body.code-mode[data-appearance=dark] .workspace-directory-browser-status.error,body.code-mode[data-appearance=dark] .workspace-directory-browser-truncated,body.code-mode[data-appearance=dark] .workspace-directory-browser-inline-status.error,body.code-mode[data-appearance=dark] .workspace-directory-browser-inline-status.truncated{color:var(--code-dark-danger)}body.code-mode[data-appearance=dark] .code-file-search-box input,body.code-mode[data-appearance=dark] .code-composer textarea{color:var(--code-dark-text);caret-color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-file-search-box input::placeholder,body.code-mode[data-appearance=dark] .code-composer textarea::placeholder,body.code-mode[data-appearance=dark] .workspace-input input::placeholder,body.code-mode[data-appearance=dark] .workspace-input textarea.task-input::placeholder{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-project-list::-webkit-scrollbar-thumb{background:#8b949e52}body.code-mode[data-appearance=dark] .code-file-tree::-webkit-scrollbar-thumb{background:#8b949e52}body.code-mode[data-appearance=dark] .code-terminal-grid::-webkit-scrollbar-thumb{background:#8b949e52}body.code-mode[data-appearance=dark] .code-file-search-results::-webkit-scrollbar-thumb{background:#8b949e52}body.code-mode[data-appearance=dark] .code-file-editor-tabs::-webkit-scrollbar-thumb{background:#8b949e52}body.code-mode[data-appearance=dark] .code-project-list::-webkit-scrollbar-track{background:var(--code-dark-bg-soft)}body.code-mode[data-appearance=dark] .code-file-tree::-webkit-scrollbar-track{background:var(--code-dark-bg-soft)}body.code-mode[data-appearance=dark] .code-terminal-grid::-webkit-scrollbar-track{background:var(--code-dark-bg-soft)}body.code-mode[data-appearance=dark] .code-file-search-results::-webkit-scrollbar-track{background:var(--code-dark-bg-soft)}body.code-mode[data-appearance=dark] .code-file-editor-tabs::-webkit-scrollbar-track{background:var(--code-dark-bg-soft)}body.code-mode[data-appearance=dark] .code-file-search-results{border-color:var(--code-dark-border);background:#161b22fa;box-shadow:0 16px 36px #0000006b}body.code-mode[data-appearance=dark] .code-agent-hover-preview{border-color:var(--code-dark-border);color:var(--code-dark-text);background:#161b22fa;box-shadow:0 16px 36px #0000005c}body.code-mode[data-appearance=dark] .code-agent-hover-preview-header span,body.code-mode[data-appearance=dark] .code-agent-hover-preview-icon{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-agent-hover-preview-line,body.code-mode[data-appearance=dark] .code-file-search-result{color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-file-search-result.active,body.code-mode[data-appearance=dark] .code-file-search-result:hover,body.code-mode[data-appearance=dark] .code-file-search-result:focus-visible{background:#8b949e29}body.code-mode[data-appearance=dark] .code-file-search-ignored-action{color:#79c0ff;background:#58a6ff29}body.code-mode[data-appearance=dark] .code-file-search-ignored-action:hover,body.code-mode[data-appearance=dark] .code-file-search-ignored-action:focus-visible{background:#58a6ff42}body.code-mode[data-appearance=dark] .code-file-search-name{color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-file-search-directory,body.code-mode[data-appearance=dark] .code-file-search-kind,body.code-mode[data-appearance=dark] .code-file-search-line{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-side-view-panel{background:var(--code-dark-bg);color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-agent-dot.running{background:var(--code-dark-success)}body.code-mode[data-appearance=dark] .code-agent-dot.turn-active{border-color:#3fb9503d;border-top-color:var(--code-dark-success);background:0 0}@media (prefers-reduced-motion:reduce){body.code-mode[data-appearance=dark] .code-agent-dot.turn-active{background:var(--code-dark-success);border:0}}body.code-mode[data-appearance=dark] .code-agent-dot.pending:not(.turn-active){background:var(--code-dark-warning)}body.code-mode[data-appearance=dark] .code-agent-dot.stopped{background:#6e7681}body.code-mode[data-appearance=dark] .code-agent-dot.dead{background:var(--code-dark-danger)}body.code-mode[data-appearance=dark] .code-agent-unread{background:#58a6ff}body.code-mode[data-appearance=dark] .code-project-agent-compact-unread{border-color:var(--code-dark-bg-soft);background:#58a6ff}body.code-mode[data-appearance=dark] .code-project-worktree{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-project-worktree:hover,body.code-mode[data-appearance=dark] .code-project-worktree:focus-visible{color:var(--code-dark-text);background:#8b949e1f}body.code-mode[data-appearance=dark] .code-worktree-popover{border-color:var(--code-dark-border);color:var(--code-dark-text);background:#161b22fa}body.code-mode[data-appearance=dark] .code-worktree-popover-header{border-color:var(--code-dark-border)}body.code-mode[data-appearance=dark] .code-worktree-row-heading strong{color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-worktree-row:hover,body.code-mode[data-appearance=dark] .code-worktree-row:focus-visible,body.code-mode[data-appearance=dark] .code-worktree-row.current{background:#58a6ff1f}body.code-mode[data-appearance=dark] .code-agent-name,body.code-mode[data-appearance=dark] .code-file-name,body.code-mode[data-appearance=dark] .code-open-editor-name,body.code-mode[data-appearance=dark] .code-project-title-name,body.code-mode[data-appearance=dark] .code-product-mark-main,body.code-mode[data-appearance=dark] .code-usage-row strong,body.code-mode[data-appearance=dark] .code-terminal-title,body.code-mode[data-appearance=dark] .code-empty-workspace h2,body.code-mode[data-appearance=dark] .code-search-panel-header h2,body.code-mode[data-appearance=dark] .code-search-result-copy strong,body.code-mode[data-appearance=dark] .code-history-panel-header h2,body.code-mode[data-appearance=dark] .code-history-card-title{color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-agent-meta,body.code-mode[data-appearance=dark] .code-agent-age,body.code-mode[data-appearance=dark] .code-agent-fork-new-worktree,body.code-mode[data-appearance=dark] .code-open-editor-path,body.code-mode[data-appearance=dark] .code-file-search-preview,body.code-mode[data-appearance=dark] .code-file-status,body.code-mode[data-appearance=dark] .code-product-mark-meta,body.code-mode[data-appearance=dark] .code-product-mark-badge,body.code-mode[data-appearance=dark] .code-usage-panel,body.code-mode[data-appearance=dark] .code-usage-header,body.code-mode[data-appearance=dark] .code-usage-subrow,body.code-mode[data-appearance=dark] .code-composer-model-picker-muted,body.code-mode[data-appearance=dark] .code-slash-menu-header,body.code-mode[data-appearance=dark] .code-approval-menu-header,body.code-mode[data-appearance=dark] .code-model-menu-header,body.code-mode[data-appearance=dark] .code-empty-workspace,body.code-mode[data-appearance=dark] .code-search-panel-header span,body.code-mode[data-appearance=dark] .code-search-result-group h3,body.code-mode[data-appearance=dark] .code-search-result-copy span,body.code-mode[data-appearance=dark] .code-history-meta,body.code-mode[data-appearance=dark] .code-history-actions span,body.code-mode[data-appearance=dark] .code-search-panel .code-empty-workspace h2{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-empty-workspace .code-empty-home-card{color:var(--code-dark-text);background:0 0}body.code-mode[data-appearance=dark] .code-empty-workspace .code-empty-home-card.primary,body.code-mode[data-appearance=dark] .code-empty-workspace .code-empty-home-card.utility,body.code-mode[data-appearance=dark] .code-empty-workspace .code-empty-home-card.compact-primary{background:#161b22ad}body.code-mode[data-appearance=dark] .code-empty-workspace .code-empty-home-card:hover{background:var(--code-dark-bg-hover)}body.code-mode[data-appearance=dark] .code-empty-home-card-icon,body.code-mode[data-appearance=dark] .code-empty-home-card strong,body.code-mode[data-appearance=dark] .code-empty-workspace .code-empty-home-header h2{color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-empty-home-header p,body.code-mode[data-appearance=dark] .code-empty-home-card>span:not(.code-empty-home-card-icon,.code-empty-home-card-copy),body.code-mode[data-appearance=dark] .code-empty-home-card-copy>span{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-empty-home-origin,body.code-mode[data-appearance=dark] .code-empty-home-target-path{color:#8b949e47}body.code-mode[data-appearance=dark] .code-empty-home-brace{color:#8b949e80;filter:drop-shadow(0 0 2px var(--code-dark-bg))}body.code-mode[data-appearance=dark] .code-empty-home-target-brace{color:#8b949e9e;filter:drop-shadow(0 0 2px var(--code-dark-bg))}body.code-mode[data-appearance=dark] .code-side-view-back{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-side-view-back:hover{background:var(--code-dark-bg-hover);color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-usage-heatmap-cell{background:#58a6ff14}body.code-mode[data-appearance=dark] .code-usage-heatmap-cell[data-level="1"]{background:#58a6ff3d}body.code-mode[data-appearance=dark] .code-usage-heatmap-cell[data-level="2"]{background:#58a6ff6b}body.code-mode[data-appearance=dark] .code-usage-heatmap-cell[data-level="3"]{background:#58a6ffa3}body.code-mode[data-appearance=dark] .code-usage-heatmap-cell[data-level="4"]{background:#58a6ffb8}body.code-mode[data-appearance=dark] .code-usage-heatmap-cell[data-level="5"]{background:#58a6fff0}body.code-mode[data-appearance=dark] .code-usage-heatmap-cell:hover{outline-color:#79baffb3}body.code-mode[data-appearance=dark] .code-usage-daily-heatmap-cell[data-recent=true]{box-shadow:inset 0 0 0 1px #79baff6b}body.code-mode[data-appearance=dark] .code-usage-activity-heading,body.code-mode[data-appearance=dark] .code-usage-time-axis,body.code-mode[data-appearance=dark] .code-usage-activity-readout{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-usage-detail-backdrop{background:#02060a94}body.code-mode[data-appearance=dark] .code-usage-detail-dialog{border-color:var(--code-dark-border);color:var(--code-dark-text);background:#161b22fa;box-shadow:0 24px 80px #00000080}body.code-mode[data-appearance=dark] .code-usage-detail-eyebrow,body.code-mode[data-appearance=dark] .code-usage-detail-chart-heading,body.code-mode[data-appearance=dark] .code-usage-detail-stat span,body.code-mode[data-appearance=dark] .code-usage-detail-stat small,body.code-mode[data-appearance=dark] .code-usage-detail-close{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-usage-detail-close:hover,body.code-mode[data-appearance=dark] .code-usage-detail-close:focus-visible{color:var(--code-dark-text);background:#ffffff14}body.code-mode[data-appearance=dark] .code-usage-detail-tabs{background:#ffffff12}body.code-mode[data-appearance=dark] .code-usage-detail-tabs button{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-usage-detail-tabs button[aria-selected=true]{box-shadow:none;color:var(--code-dark-text);background:#ffffff1a}body.code-mode[data-appearance=dark] .code-usage-detail-chart{border-color:var(--code-dark-border);background:#0d11178c}body.code-mode[data-appearance=dark] .code-usage-detail-chart-heading strong,body.code-mode[data-appearance=dark] .code-usage-detail-day-highlight>strong,body.code-mode[data-appearance=dark] .code-usage-detail-readout,body.code-mode[data-appearance=dark] .code-usage-detail-stat strong{color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-usage-detail-day-highlight,body.code-mode[data-appearance=dark] .code-usage-detail-day-highlight>small{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-usage-detail-day-highlight[data-state=selected]>strong{color:#79baff}body.code-mode[data-appearance=dark] .code-usage-detail-chart .code-usage-daily-heatmap-cell[data-shape=crown]{filter:drop-shadow(0 0 1px #0d1117f5)drop-shadow(0 0 1px #79baffe0)}body.code-mode[data-appearance=dark] .code-usage-detail-chart .code-usage-daily-heatmap-cell[data-selected=true]{outline-color:#79baffe6}body.code-mode[data-appearance=dark] .code-usage-detail-chart .code-usage-daily-heatmap-cell[data-selected=true][data-shape]{filter:drop-shadow(0 0 1px #0d1117f5)drop-shadow(0 0 2px #79baffeb)}body.code-mode[data-appearance=dark] .code-usage-detail-stat{background:#ffffff0e}body.code-mode[data-appearance=dark] .code-usage-mobile-open,body.code-mode[data-appearance=dark] .code-usage-mobile-date-picker{color:var(--code-dark-text);background:#fff1}body.code-mode[data-appearance=dark] .code-usage-mobile-open>span:last-child{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-usage-mobile-date-picker input{color:var(--code-dark-text);background:#ffffff14}body.code-mode[data-appearance=dark].code-compact-layout .code-usage-detail-header{border-bottom-color:var(--code-dark-border);background:#161b22fa}body.code-mode[data-appearance=dark] .code-usage-day-breakdown{border-top-color:var(--code-dark-border)}body.code-mode[data-appearance=dark] .code-usage-day-breakdown-heading,body.code-mode[data-appearance=dark] .code-usage-day-histogram-scale,body.code-mode[data-appearance=dark] .code-usage-day-histogram-axis,body.code-mode[data-appearance=dark] .code-usage-day-agent-legend,body.code-mode[data-appearance=dark] .code-usage-day-agent-legend small,body.code-mode[data-appearance=dark] .code-usage-day-agent-legend em,body.code-mode[data-appearance=dark] .code-usage-day-breakdown-status{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-usage-day-breakdown-heading strong{color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-usage-day-histogram-bars{border-bottom-color:var(--code-dark-border);background:repeating-linear-gradient(#8b949e17 0 1px,#0000 1px 34px)}body.code-mode[data-appearance=dark] .code-usage-day-histogram-segment{box-shadow:inset 0 1px #0d11176b}body.code-mode[data-appearance=dark] .code-search-result{background:var(--code-dark-bg-panel);border-color:var(--code-dark-border);color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-search-panel-input{border-color:var(--code-dark-border);color:var(--code-dark-text-muted);background:#161b22c7}body.code-mode[data-appearance=dark] .code-search-panel-input input{color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-search-panel-input input::placeholder{color:#6e7681}body.code-mode[data-appearance=dark] .code-search-panel-input button{color:var(--code-dark-text-muted);background:#8b949e1f}body.code-mode[data-appearance=dark] .code-search-result:hover,body.code-mode[data-appearance=dark] .code-search-result.active{background:var(--code-dark-bg-hover);border-color:#58a6ff6b}body.code-mode[data-appearance=dark] .code-history-card{color:var(--code-dark-text);background:0 0;border-color:#0000}body.code-mode[data-appearance=dark] .code-history-card:hover,body.code-mode[data-appearance=dark] .code-history-card.archived:hover{background:var(--code-dark-bg-hover)}body.code-mode[data-appearance=dark] .code-history-card-primary:focus-visible{outline-color:#58a6ff57}body.code-mode[data-appearance=dark] .code-history-actions button{color:var(--code-dark-text-muted);background:0 0;border-color:#0000}body.code-mode[data-appearance=dark] .code-history-actions button:hover{background:var(--code-dark-bg-hover)}body.code-mode[data-appearance=dark] .code-history-pagination{border-top-color:var(--code-dark-border);color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-history-pagination button{border-color:var(--code-dark-border);color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-history-pagination button:hover:not(:disabled){background:var(--code-dark-bg-hover);color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-agents-section,body.code-mode[data-appearance=dark] .code-open-editors,body.code-mode[data-appearance=dark] .code-files-section,body.code-mode[data-appearance=dark] .code-open-editors-header,body.code-mode[data-appearance=dark] .code-files-header,body.code-mode[data-appearance=dark] .code-file-sticky-shell,body.code-mode[data-appearance=dark] .code-file-sticky-stack,body.code-mode[data-appearance=dark] .code-file-row.code-file-sticky-row{background:var(--code-dark-bg-soft);color:var(--code-dark-text-soft)}body.code-mode[data-appearance=dark] .code-open-editors-header,body.code-mode[data-appearance=dark] .code-files-header,body.code-mode[data-appearance=dark] .code-usage-panel,body.code-mode[data-appearance=dark] .code-usage-provider{border-color:var(--code-dark-border-soft)}body.code-mode[data-appearance=dark] .code-files-title,body.code-mode[data-appearance=dark] .code-open-editors-title{color:var(--code-dark-text-soft)}body.code-mode[data-appearance=dark] .code-files-refresh{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-files-refresh:hover,body.code-mode[data-appearance=dark] .code-files-refresh:focus-visible{background:var(--code-dark-bg-hover);color:var(--code-dark-text-soft)}body.code-mode[data-appearance=dark] .code-files-refresh[data-refresh-status=success]{color:var(--code-dark-success);background:#3fb95024}body.code-mode[data-appearance=dark] .code-files-refresh[data-refresh-status=error]{color:var(--code-dark-danger);background:#f851491f}body.code-mode[data-appearance=dark] .code-file-type-icon,body.code-mode[data-appearance=dark] .code-file-chevron,body.code-mode[data-appearance=dark] .code-file-section-chevron,body.code-mode[data-appearance=dark] .code-folder-icon,body.code-mode[data-appearance=dark] .code-file-search-icon{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-file-row.ignored,body.code-mode[data-appearance=dark] .code-file-row.ignored .code-file-name,body.code-mode[data-appearance=dark] .code-file-row.ignored .code-file-chevron{color:#6e7681}body.code-mode[data-appearance=dark] .code-file-row.editor-dirty .code-file-name{color:var(--code-dark-warning)}body.code-mode[data-appearance=dark] .code-file-row.editor-external-changed .code-file-name{color:var(--code-dark-accent)}body.code-mode[data-appearance=dark] .code-file-row.git-status .code-file-name{color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-file-row.git-deleted .code-file-name,body.code-mode[data-appearance=dark] .code-file-row.git-conflicted .code-file-name,body.code-mode[data-appearance=dark] .code-file-row.git-conflicted .code-file-name{color:#ff7b72}body.code-mode[data-appearance=dark] .code-file-row.selected:not(.active){background:var(--code-dark-accent-soft)}body.code-mode[data-appearance=dark] .code-file-tree-viewport:focus-within .code-file-row.located.selected{color:#ffd8cc;background:#d977573d;box-shadow:inset 3px 0 #e58a6be0}body.code-mode[data-appearance=dark] .code-file-row.active{background:var(--code-dark-bg-active)}body.code-mode[data-appearance=dark] .code-file-row.active:after{background:var(--code-dark-accent)}body.code-mode[data-appearance=dark] .code-file-changed{background:var(--code-dark-warning)}body.code-mode[data-appearance=dark] .code-file-changed.external{background:var(--code-dark-accent)}body.code-mode[data-appearance=dark] .code-file-descendant-status.dirty,body.code-mode[data-appearance=dark] .code-file-descendant-status.modified{background:var(--code-dark-warning)}body.code-mode[data-appearance=dark] .code-file-descendant-status.external{background:var(--code-dark-accent)}body.code-mode[data-appearance=dark] .code-file-descendant-status.added{background:var(--code-dark-success)}body.code-mode[data-appearance=dark] .code-file-descendant-status.renamed{background:#a371f7}body.code-mode[data-appearance=dark] .code-file-descendant-status.deleted,body.code-mode[data-appearance=dark] .code-file-descendant-status.conflicted{background:var(--code-dark-danger)}body.code-mode[data-appearance=dark] .code-file-git-status.modified,body.code-mode[data-appearance=dark] .code-file-change-status.modified{color:var(--code-dark-warning)}body.code-mode[data-appearance=dark] .code-file-git-status.added,body.code-mode[data-appearance=dark] .code-file-change-status.added{color:var(--code-dark-success)}body.code-mode[data-appearance=dark] .code-file-git-status.renamed,body.code-mode[data-appearance=dark] .code-file-change-status.renamed{color:#a371f7}body.code-mode[data-appearance=dark] .code-file-git-status.deleted,body.code-mode[data-appearance=dark] .code-file-git-status.conflicted,body.code-mode[data-appearance=dark] .code-file-change-status.deleted,body.code-mode[data-appearance=dark] .code-file-change-status.conflicted{color:var(--code-dark-danger)}body.code-mode[data-appearance=dark] .code-file-change-row.active{background:var(--code-dark-bg-active)}body.code-mode[data-appearance=dark] .code-file-open-spinner{border-color:#8b949e47;border-top-color:var(--code-dark-text-soft)}body.code-mode[data-appearance=dark] .code-file-change-main,body.code-mode[data-appearance=dark] .code-file-change-status,body.code-mode[data-appearance=dark] .code-file-change-status.modified,body.code-mode[data-appearance=dark] .code-file-change-group-toggle{color:var(--code-dark-text-soft)}body.code-mode[data-appearance=dark] .code-git-history-section{--code-git-history-node-bg:var(--code-dark-bg);color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-git-history-header,body.code-mode[data-appearance=dark] .code-git-history-subject,body.code-mode[data-appearance=dark] .code-git-history-change,body.code-mode[data-appearance=dark] .code-git-history-parent-select select{color:var(--code-dark-text-soft)}body.code-mode[data-appearance=dark] .code-git-history-header{background:var(--code-dark-bg)}body.code-mode[data-appearance=dark] .code-git-history-entry.selected,body.code-mode[data-appearance=dark] .code-git-history-commit:hover,body.code-mode[data-appearance=dark] .code-git-history-commit:focus-visible,body.code-mode[data-appearance=dark] button.code-git-history-change:hover,body.code-mode[data-appearance=dark] button.code-git-history-change:focus-visible,body.code-mode[data-appearance=dark] .code-git-history-refresh:hover,body.code-mode[data-appearance=dark] .code-git-history-refresh:focus-visible{background:var(--code-dark-bg-hover)}body.code-mode[data-appearance=dark] .code-git-history-meta,body.code-mode[data-appearance=dark] .code-git-history-change-previous,body.code-mode[data-appearance=dark] .code-git-history-change-summary,body.code-mode[data-appearance=dark] .code-git-history-root-label,body.code-mode[data-appearance=dark] .code-git-history-status,body.code-mode[data-appearance=dark] .code-git-history-reference-more{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-git-history-parent-select select{border-color:var(--code-dark-border);background:var(--code-dark-bg-soft)}body.code-mode[data-appearance=dark] .code-git-history-scope:hover,body.code-mode[data-appearance=dark] .code-git-history-scope:focus-visible,body.code-mode[data-appearance=dark] .code-git-history-scope[aria-expanded=true]{background:var(--code-dark-bg-hover);color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-git-history-scope-menu{border-color:var(--code-dark-border);color:var(--code-dark-text-soft);background:#161b22fa}body.code-mode[data-appearance=dark] .code-git-history-scope-menu button:hover,body.code-mode[data-appearance=dark] .code-git-history-scope-menu button:focus-visible{background:var(--code-dark-bg-hover)}body.code-mode[data-appearance=dark] .code-git-history-message{border-left-color:var(--code-dark-border-strong);background:var(--code-dark-bg-soft)}body.code-mode[data-appearance=dark] .code-git-history-message-label{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-git-history-message-body{color:var(--code-dark-text-soft)}body.code-mode[data-appearance=dark] .code-git-history-reference,body.code-mode[data-appearance=dark] .code-git-history-branch,body.code-mode[data-appearance=dark] .code-git-history-scope{color:#8faed8}body.code-mode[data-appearance=dark] .code-git-history-reference.tag{color:#d2b47c}body.code-mode[data-appearance=dark] .code-git-history-reference.remote-branch{color:#69c5bd}body.code-mode[data-appearance=dark] .code-git-history-review,body.code-mode[data-appearance=dark] .code-git-history-load-more{color:#8faed8}body.code-mode[data-appearance=dark] .code-git-history-review:hover,body.code-mode[data-appearance=dark] .code-git-history-review:focus-visible{background:var(--code-dark-bg-hover);color:#b7cff0}body.code-mode[data-appearance=dark] .code-git-history-status.error{color:var(--code-dark-danger)}body.code-mode[data-appearance=dark] .code-file-change-review{color:#8faed8}body.code-mode[data-appearance=dark] .code-file-change-review:hover,body.code-mode[data-appearance=dark] .code-file-change-review:focus-visible{color:#b7cff0}body.code-mode[data-appearance=dark] .code-file-change-path,body.code-mode[data-appearance=dark] .code-file-change-group-toggle>span:last-child,body.code-mode[data-appearance=dark] .code-file-changes-count{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-file-change-main:hover,body.code-mode[data-appearance=dark] .code-file-change-main:focus-visible,body.code-mode[data-appearance=dark] .code-file-change-group-toggle:hover,body.code-mode[data-appearance=dark] .code-file-change-group-toggle:focus-visible{background:var(--code-dark-bg-hover)}body.code-mode[data-appearance=dark] .code-product-mark{color:var(--code-dark-text-soft);background:0 0}body.code-mode[data-appearance=dark] .code-product-mark:hover,body.code-mode[data-appearance=dark] .code-product-mark:focus-visible{background:0 0}body.code-mode[data-appearance=dark] .code-instance-name:hover{background:var(--code-dark-bg-hover);color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-instance-name-dialog input,body.code-mode[data-appearance=dark] .code-instance-name-actions button{border-color:var(--code-dark-border);background:var(--code-dark-bg);color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-instance-name-actions button.primary{color:#fff;background:#1f6feb;border-color:#58a6ff}body.code-mode[data-appearance=dark] .code-product-mark-badge{color:var(--code-dark-text-muted);background:0 0;border-color:#0000}body.code-mode[data-appearance=dark] .code-product-mark:hover .code-product-mark-badge,body.code-mode[data-appearance=dark] .code-product-mark:focus-visible .code-product-mark-badge{color:var(--code-dark-text-soft);background:0 0;border-color:#0000}body.code-mode[data-appearance=dark] .code-share-button{color:var(--code-dark-text-muted);background:#161b22a8}:is(body.code-mode[data-appearance=dark] .code-share-button:hover,body.code-mode[data-appearance=dark] .code-share-button:focus-visible,body.code-mode[data-appearance=dark] .code-share-root:has(.code-share-popover) .code-share-button){background:var(--code-dark-bg-hover);color:var(--code-dark-text);box-shadow:inset 0 0 0 1px var(--code-dark-border)}body.code-mode[data-appearance=dark] .code-share-popover{border-color:var(--code-dark-border);color:var(--code-dark-text);box-shadow:0 18px 54px var(--code-dark-shadow);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:#1c2129fa}body.code-mode[data-appearance=dark] .code-share-qr-frame{border-color:var(--code-dark-border);background:linear-gradient(#fffffff2,#fbfaf2f2),#fbfaf2}body.code-mode[data-appearance=dark] .code-share-copy-action{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-share-countdown{color:#9b7a35}body.code-mode[data-appearance=dark] .code-share-copy-token{border-color:var(--code-dark-border);color:var(--code-dark-text);background:#161b22b8}body.code-mode[data-appearance=dark] .code-share-copy-token:hover,body.code-mode[data-appearance=dark] .code-share-copy-token:focus-visible{background:var(--code-dark-bg-hover);border-color:#58a6ff3d}body.code-mode[data-appearance=dark] .code-share-token{color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-share-qr-loading,body.code-mode[data-appearance=dark] .code-share-copy-action{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-share-refresh{border-color:var(--code-dark-border);color:var(--code-dark-text);background:#161b22e6}body.code-mode[data-appearance=dark] .code-share-error{color:var(--code-dark-danger)}body.code-mode[data-appearance=dark] .code-mobile-share-backdrop{background:#0104098a}body.code-mode[data-appearance=dark] .code-mobile-share-sheet{border-color:var(--code-dark-border);color:var(--code-dark-text);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:#161b22f7;box-shadow:0 20px 56px #0104097a}body.code-mode[data-appearance=dark] .code-mobile-share-header button,body.code-mode[data-appearance=dark] .code-mobile-share-choice-copy p,body.code-mode[data-appearance=dark] .code-mobile-share-link,body.code-mode[data-appearance=dark] .code-mobile-share-status,body.code-mode[data-appearance=dark] .code-mobile-install-hint,body.code-mode[data-appearance=dark] .code-mobile-install-complete,body.code-mode[data-appearance=dark] .code-mobile-install-step small{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-mobile-share-choice+.code-mobile-share-choice{border-color:var(--code-dark-border-soft)}body.code-mode[data-appearance=dark] .code-mobile-share-link-row{background:#f0f6fc0e}body.code-mode[data-appearance=dark] .code-mobile-share-link-row button{color:var(--code-dark-text);background:#f0f6fc17}body.code-mode[data-appearance=dark] .code-mobile-install-step{color:var(--code-dark-text);background:#f0f6fc0e}body.code-mode[data-appearance=dark] .code-mobile-install-control{color:var(--code-dark-text);background:#f0f6fc17}body.code-mode[data-appearance=dark] .code-app-mode-backdrop{background:#01040994}body.code-mode[data-appearance=dark] .code-app-mode-dialog{border-color:var(--code-dark-border);color:var(--code-dark-text);background:#161b22fa;box-shadow:0 24px 68px #01040985}body.code-mode[data-appearance=dark] .code-app-mode-close,body.code-mode[data-appearance=dark] .code-app-mode-heading p,body.code-mode[data-appearance=dark] .code-app-mode-choice p,body.code-mode[data-appearance=dark] .code-app-mode-install-steps{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-app-mode-close:hover,body.code-mode[data-appearance=dark] .code-app-mode-close:focus-visible{background:var(--code-dark-bg-hover);color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-app-mode-choice{border-color:var(--code-dark-border);background:#0d1117b8}body.code-mode[data-appearance=dark] .code-app-mode-choice.recommended{background:#38609e21;border-color:#8cbcff40}body.code-mode[data-appearance=dark] .code-app-mode-recommended{color:#8cbcff}body.code-mode[data-appearance=dark] .code-app-mode-choice.temporary button{border-color:var(--code-dark-border);color:var(--code-dark-text-soft);background:#f0f6fc0f}body.code-mode[data-appearance=dark] .code-app-mode-choice.temporary button:hover,body.code-mode[data-appearance=dark] .code-app-mode-choice.temporary button:focus-visible{background:var(--code-dark-bg-hover)}body.code-mode[data-appearance=dark] .code-brand-backdrop{background:#01040994}body.code-mode[data-appearance=dark] .code-brand-dialog{border-color:var(--code-dark-border);color:var(--code-dark-text);background:#161b22fa;box-shadow:0 24px 68px #01040985}body.code-mode[data-appearance=dark] .code-brand-close,body.code-mode[data-appearance=dark] .code-brand-heading span,body.code-mode[data-appearance=dark] .code-brand-story{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-brand-close:hover,body.code-mode[data-appearance=dark] .code-brand-close:focus-visible{background:var(--code-dark-bg-hover);color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-brand-github{color:#8cbcff}body.code-mode[data-appearance=dark].code-compact-layout .code-options-menu,body.code-mode[data-appearance=dark].code-compact-layout .code-options-menu button,body.code-mode[data-appearance=dark].code-compact-layout .code-options-menu button:focus,body.code-mode[data-appearance=dark].code-compact-layout .code-options-menu button:focus-visible{color:var(--code-dark-text)}body.code-mode[data-appearance=dark].code-compact-layout .code-options-menu{background:#161b22f0}body.code-mode[data-appearance=dark] .code-terminal-pane,body.code-mode[data-appearance=dark] .code-terminal-container,body.code-mode[data-appearance=dark] .terminal-session-host,body.code-mode[data-appearance=dark] .terminal-session-host .xterm,body.code-mode[data-appearance=dark] .terminal-session-host .xterm-screen,body.code-mode[data-appearance=dark] .terminal-session-host .xterm-viewport{color:var(--code-dark-text);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:var(--code-dark-bg)!important}body.code-mode[data-appearance=dark] .code-terminal-pane{border-color:#0000}body.code-mode[data-appearance=dark] .terminal-session-host .xterm .xterm-selection div{background-color:#58a6ff52!important}body.code-mode[data-appearance=dark] .terminal-session-host .xterm .xterm-rows ::selection{background:#58a6ff52}body.code-mode[data-appearance=dark] .terminal-session-host .xterm-viewport{scrollbar-color:#8b949e2e transparent}body.code-mode[data-appearance=dark] .terminal-session-host .xterm-viewport::-webkit-scrollbar{width:6px;background:0 0!important}body.code-mode[data-appearance=dark] .terminal-session-host .xterm-viewport::-webkit-scrollbar-thumb{background-color:#8b949e2e!important;border-color:#0000!important}body.code-mode[data-appearance=dark] .terminal-session-host .xterm-viewport::-webkit-scrollbar-track{background:0 0!important}body.code-mode[data-appearance=dark] .terminal-session-host .xterm-viewport::-webkit-scrollbar-thumb:hover{background-color:#8b949e4d!important}body.code-mode[data-appearance=dark] .code-terminal-jump-bottom{color:#ffffffeb;box-shadow:none;-webkit-backdrop-filter:blur(12px);background:#ffffff0e;border-color:#f0f6fc21}body.code-mode[data-appearance=dark] .code-terminal-jump-bottom:hover{color:#fff;background:#ffffff16;border-color:#f0f6fc33}body.code-mode[data-appearance=dark] .code-terminal-search{border-color:var(--code-dark-border);color:var(--code-dark-text);box-shadow:0 12px 32px var(--code-dark-shadow);background:#161b22f5}body.code-mode[data-appearance=dark] .code-terminal-search input:focus{background:#21262df2;box-shadow:inset 0 0 0 1px #58a6ff80}body.code-mode[data-appearance=dark] .code-terminal-search-status{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-terminal-search-status.empty{color:#ff7b72}body.code-mode[data-appearance=dark] .code-terminal-search-button{color:var(--code-dark-text-soft)}body.code-mode[data-appearance=dark] .code-terminal-search-button:hover,body.code-mode[data-appearance=dark] .code-terminal-search-button:focus-visible{color:var(--code-dark-text);background:#8b949e29}body.code-mode[data-appearance=dark] .code-terminal-search-button.option.active{color:var(--code-dark-accent);background:#58a6ff29}body.code-mode[data-appearance=dark] .code-terminal-recovery{border-color:var(--code-dark-border);color:var(--code-dark-text-soft);box-shadow:0 12px 32px var(--code-dark-shadow);background:#161b22f0}body.code-mode[data-appearance=dark] .code-terminal-recovery-copy strong{color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-terminal-recovery-copy>span{color:var(--code-dark-text-soft)}body.code-mode[data-appearance=dark] .code-terminal-status-card{border-color:var(--code-dark-border);color:var(--code-dark-text-soft);box-shadow:0 12px 32px var(--code-dark-shadow);background:#161b22f5}body.code-mode[data-appearance=dark] .code-terminal-status-card button{border-color:var(--code-dark-border);color:var(--code-dark-text);background:#21262df2}body.code-mode[data-appearance=dark] .code-terminal-status-card button:hover,body.code-mode[data-appearance=dark] .code-terminal-status-card button:focus-visible{background:#30363df2}body.code-mode[data-appearance=dark] .code-terminal-mode-toggle{background:#161b2266;border-color:#8b949e14;box-shadow:0 8px 22px #01040933}body.code-mode[data-appearance=dark] .code-terminal-mode-toggle:hover,body.code-mode[data-appearance=dark] .code-terminal-mode-toggle:focus-within{background:#161b22d1;border-color:#8b949e33;box-shadow:0 10px 26px #01040952}body.code-mode[data-appearance=dark] .code-terminal-mode-toggle button{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-terminal-mode-toggle button:hover,body.code-mode[data-appearance=dark] .code-terminal-mode-toggle button:focus-visible{color:var(--code-dark-text);background:#8b949e29}body.code-mode[data-appearance=dark] .code-terminal-mode-toggle button.active{color:var(--code-dark-text);background:#8b949e24}body.code-mode[data-appearance=dark] .code-permission-switching{color:var(--code-dark-text-soft);background:#0d1117b8}body.code-mode[data-appearance=dark] .code-permission-switching-spinner{border-color:#c9d1d93d;border-top-color:var(--code-dark-text-soft)}body.code-mode[data-appearance=dark] .code-agent-transcript,body.code-mode[data-appearance=dark] .code-acp-transcript{background:var(--code-dark-bg);color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-acp-user-text{color:var(--code-dark-text);background:#8b949e29;border:1px solid #8b949e1f}body.code-mode[data-appearance=dark] .code-acp-message.assistant{color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-acp-message.assistant.notification,body.code-mode[data-appearance=dark] .code-acp-activity,body.code-mode[data-appearance=dark] .code-acp-working,body.code-mode[data-appearance=dark] .code-acp-load-earlier{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-acp-activity>summary:hover,body.code-mode[data-appearance=dark] .code-acp-activity>summary:focus-visible,body.code-mode[data-appearance=dark] .code-acp-activity-group>summary:hover,body.code-mode[data-appearance=dark] .code-acp-activity-group>summary:focus-visible{background:#8b949e1a}body.code-mode[data-appearance=dark] .code-acp-activity-group{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-acp-activity-count{color:var(--code-dark-text-muted);background:#8b949e1f}body.code-mode[data-appearance=dark] .code-acp-activity-detail{border-color:var(--code-dark-border);color:var(--code-dark-text-soft);background:#161b22cc}body.code-mode[data-appearance=dark] .code-acp-jump-bottom{border-color:var(--code-dark-border);color:var(--code-dark-text-soft);background:#161b22f0}body.code-mode[data-appearance=dark] .code-agent-transcript-scroll{scrollbar-color:#8b949e2e transparent}body.code-mode[data-appearance=dark] .code-agent-transcript-scroll::-webkit-scrollbar-thumb{background:#8b949e2e}body.code-mode[data-appearance=dark] .code-agent-transcript-fork-origin{color:#58a6ff}body.code-mode[data-appearance=dark] .code-agent-transcript-fork-origin>span[aria-hidden=true]{background:#30363deb}body.code-mode[data-appearance=dark] .code-codex-goal-bar{box-shadow:0 10px 30px var(--code-dark-shadow);background:#161b22c2;border-color:#8b949e3d}body.code-mode[data-appearance=dark] .code-codex-goal-input{color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-codex-goal-input::placeholder,body.code-mode[data-appearance=dark] .code-codex-goal-icon-button{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-codex-goal-icon-button:hover,body.code-mode[data-appearance=dark] .code-codex-goal-icon-button:focus-visible{color:var(--code-dark-text);background:#8b949e29}body.code-mode[data-appearance=dark] .code-codex-goal-icon-button.danger,body.code-mode[data-appearance=dark] .code-codex-goal-error{color:#ff7b72}body.code-mode[data-appearance=dark] .code-agent-transcript-user{color:var(--code-dark-text);background:#8b949e29;border:1px solid #8b949e1f}body.code-mode[data-appearance=dark] .code-agent-transcript-user-images img,body.code-mode[data-appearance=dark] .code-agent-transcript-process-images img,body.code-mode[data-appearance=dark] .code-agent-transcript-result-images img{border-color:var(--code-dark-border);background:var(--code-dark-bg-panel)}body.code-mode[data-appearance=dark] .code-agent-transcript-user-file{border-color:var(--code-dark-border);background:#8b949e1f}body.code-mode[data-appearance=dark] .code-agent-transcript-resource-link>a,body.code-mode[data-appearance=dark] .code-agent-transcript-resource-link>span:not(.code-agent-transcript-user-file-meta),body.code-mode[data-appearance=dark] .code-agent-transcript-subagent-turn .user{color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-agent-transcript-terminal,body.code-mode[data-appearance=dark] .code-agent-transcript-subagent,body.code-mode[data-appearance=dark] .code-agent-transcript-subagent-dialog{border-color:var(--code-dark-border);background:var(--code-dark-bg-panel)}body.code-mode[data-appearance=dark] .code-agent-transcript-terminal>header,body.code-mode[data-appearance=dark] .code-agent-transcript-terminal-meta,body.code-mode[data-appearance=dark] .code-agent-transcript-subagent>header,body.code-mode[data-appearance=dark] .code-agent-transcript-subagent-dialog>header,body.code-mode[data-appearance=dark] .code-agent-transcript-subagent-turn{border-color:var(--code-dark-border)}body.code-mode[data-appearance=dark] .code-agent-transcript-terminal-copy:hover,body.code-mode[data-appearance=dark] .code-agent-transcript-terminal-copy:focus-visible,body.code-mode[data-appearance=dark] .code-agent-transcript-subagent-control:hover,body.code-mode[data-appearance=dark] .code-agent-transcript-subagent-control:focus-visible{background:#8b949e29}body.code-mode[data-appearance=dark] .code-agent-transcript-subagent-error{color:#ff7b72;background:#f851491a;border-color:#f8514957}body.code-mode[data-appearance=dark] .code-agent-transcript-user-file-name{color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-agent-transcript-user-file-meta{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-agent-transcript-user-file pre,body.code-mode[data-appearance=dark] .code-agent-transcript-user-file-error{border-top-color:var(--code-dark-border);background:var(--code-dark-bg-panel)}body.code-mode[data-appearance=dark] .code-agent-transcript-process{border-bottom-color:var(--code-dark-border);color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-agent-transcript-collaboration-event{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-agent-transcript-collaboration-event:hover,body.code-mode[data-appearance=dark] .code-agent-transcript-collaboration-event:focus-visible{color:var(--code-dark-text-soft)}body.code-mode[data-appearance=dark] .code-agent-transcript-collaboration-agent{border-color:var(--code-dark-border);color:var(--code-dark-text-soft);background:#8b949e1a}body.code-mode[data-appearance=dark] .code-agent-transcript-collaboration-action.failed,body.code-mode[data-appearance=dark] .code-agent-transcript-collaboration-action.interrupted{color:#ff7b72}body.code-mode[data-appearance=dark] .code-acp-progress-update{color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-agent-transcript-process-earlier{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-agent-transcript-process-earlier:hover,body.code-mode[data-appearance=dark] .code-agent-transcript-process-earlier:focus-visible,body.code-mode[data-appearance=dark] .code-agent-transcript-process-title,body.code-mode[data-appearance=dark] .code-agent-transcript-process-group{color:var(--code-dark-text-soft)}body.code-mode[data-appearance=dark] .code-agent-transcript-process-group-summary:hover,body.code-mode[data-appearance=dark] .code-agent-transcript-process-group-summary:focus-visible,body.code-mode[data-appearance=dark] .code-agent-transcript-process-title-toggle:hover,body.code-mode[data-appearance=dark] .code-agent-transcript-process-title-toggle:focus-visible{color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-agent-transcript-process-item{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-agent-transcript-process-dot{background:#8b949eb8}body.code-mode[data-appearance=dark] .code-agent-transcript-process-status{color:var(--code-dark-text-muted);background:#8b949e24}body.code-mode[data-appearance=dark] .code-agent-transcript-copy{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-agent-transcript-copy:hover,body.code-mode[data-appearance=dark] .code-agent-transcript-copy.copied,body.code-mode[data-appearance=dark] .code-agent-transcript-copy:focus-visible{color:var(--code-dark-text);background:#8b949e29}body.code-mode[data-appearance=dark] .code-agent-transcript-copy:after,body.code-mode[data-appearance=dark] .code-agent-transcript-answer-action:after{border-color:var(--code-dark-border-soft);color:var(--code-dark-text);background:#161b22fa;box-shadow:0 8px 24px #01040973}body.code-mode[data-appearance=dark] .code-agent-transcript-process-item pre{border:1px solid var(--code-dark-border-soft);color:var(--code-dark-text-muted);background:#0d1117d1}body.code-mode[data-appearance=dark] .code-agent-transcript-process-detail,body.code-mode[data-appearance=dark] .code-agent-transcript-answer-action{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-agent-transcript-answer-action:hover,body.code-mode[data-appearance=dark] .code-agent-transcript-answer-action.copied,body.code-mode[data-appearance=dark] .code-agent-transcript-answer-action:focus-visible{color:var(--code-dark-text);background:#8b949e29}body.code-mode[data-appearance=dark] .code-agent-transcript-assistant.code-markdown-preview,body.code-mode[data-appearance=dark] .code-agent-transcript-assistant.code-markdown-preview strong{color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-agent-transcript-assistant.code-markdown-preview code,body.code-mode[data-appearance=dark] .code-agent-transcript-file-link{color:var(--code-dark-accent);background:#58a6ff24}body.code-mode[data-appearance=dark] .code-agent-transcript-file-link:hover,body.code-mode[data-appearance=dark] .code-agent-transcript-file-link:focus-visible{color:var(--code-dark-accent);background:#58a6ff2e}body.code-mode[data-appearance=dark] .code-agent-transcript-markdown-file-link{color:var(--code-dark-accent)}body.code-mode[data-appearance=dark] .code-agent-transcript-assistant.code-markdown-preview blockquote{color:var(--code-dark-text-soft)}body.code-mode[data-appearance=dark] .code-agent-transcript-assistant.code-markdown-preview blockquote:after{background:var(--code-dark-border)}body.code-mode[data-appearance=dark] .code-agent-transcript-assistant.code-markdown-preview pre{border-color:var(--code-dark-border);background:#0d1117d1}body.code-mode[data-appearance=dark] .code-agent-transcript-assistant.code-markdown-preview hr{border-top-color:var(--code-dark-border)}body.code-mode[data-appearance=dark] .code-agent-transcript-assistant.code-markdown-preview th{color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-agent-transcript-assistant.code-markdown-preview th,body.code-mode[data-appearance=dark] .code-agent-transcript-assistant.code-markdown-preview td{border-bottom-color:var(--code-dark-border-soft)}body.code-mode[data-appearance=dark] .code-agent-transcript-plan-list li{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-agent-transcript-plan-marker{border-color:#8b949e80}body.code-mode[data-appearance=dark] .code-agent-transcript-plan-list li.completed .code-agent-transcript-plan-marker{background:#3fb950;border-color:#3fb950}body.code-mode[data-appearance=dark] .code-agent-transcript-plan-list li.running .code-agent-transcript-plan-marker{border-color:var(--code-dark-text-muted);border-top-color:#0000}body.code-mode[data-appearance=dark] .code-agent-transcript-result-summary{border-color:var(--code-dark-border);color:var(--code-dark-text-muted);background:#161b22b8;box-shadow:0 1px #ffffff08}body.code-mode[data-appearance=dark] .code-agent-transcript-result-summary .added{color:#3fb950}body.code-mode[data-appearance=dark] .code-agent-transcript-result-summary .removed{color:#ff7b72}body.code-mode[data-appearance=dark] button.code-agent-transcript-result-summary:hover,body.code-mode[data-appearance=dark] button.code-agent-transcript-result-summary:focus-visible{color:var(--code-dark-text);background:#8b949e2e}body.code-mode[data-appearance=dark] .code-agent-transcript-result-details{border-color:var(--code-dark-border);background:#161b22f5;box-shadow:0 8px 28px #00000047}body.code-mode[data-appearance=dark] .code-agent-transcript-result-file+.code-agent-transcript-result-file,body.code-mode[data-appearance=dark] .code-agent-transcript-result-diff,body.code-mode[data-appearance=dark] .code-agent-transcript-result-loading,body.code-mode[data-appearance=dark] .code-agent-transcript-result-error{border-color:var(--code-dark-border-soft)}body.code-mode[data-appearance=dark] .code-agent-transcript-result-file>summary{color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-agent-transcript-result-file>summary:hover,body.code-mode[data-appearance=dark] .code-agent-transcript-result-review:hover,body.code-mode[data-appearance=dark] .code-agent-transcript-result-review:focus-visible{background:#8b949e24}body.code-mode[data-appearance=dark] .code-agent-transcript-result-diff{color:var(--code-dark-text-muted);background:#0d1117}body.code-mode[data-appearance=dark] .code-agent-transcript-result-review{border-color:var(--code-dark-border);color:var(--code-dark-text);background:#161b22e6}body.code-mode[data-appearance=dark] .code-agent-transcript-process-item.command .code-agent-transcript-process-dot{background:#3fb950}body.code-mode[data-appearance=dark] .code-agent-transcript-process-item.patch .code-agent-transcript-process-dot{background:#a371f7}body.code-mode[data-appearance=dark] .code-agent-transcript-process-item.mcp .code-agent-transcript-process-dot,body.code-mode[data-appearance=dark] .code-agent-transcript-process-item.tool .code-agent-transcript-process-dot,body.code-mode[data-appearance=dark] .code-agent-transcript-process-item.tool-output .code-agent-transcript-process-dot{background:#58a6ff}body.code-mode[data-appearance=dark] .code-agent-transcript-process-item.reasoning .code-agent-transcript-process-dot,body.code-mode[data-appearance=dark] .code-agent-transcript-process-item.plan .code-agent-transcript-process-dot{background:#d29922}body.code-mode[data-appearance=dark] .code-agent-transcript-process-item.web-search .code-agent-transcript-process-dot{background:#39c5cf}body.code-mode[data-appearance=dark] .code-agent-transcript-process-item.status-running .code-agent-transcript-process-dot,body.code-mode[data-appearance=dark] .code-agent-transcript-process-group.running>.code-agent-transcript-process-group-summary>.code-agent-transcript-process-dot{border-color:var(--code-dark-text-muted);background:0 0;border-top-color:#0000}body.code-mode[data-appearance=dark] .code-agent-transcript-process-item.status-failed .code-agent-transcript-process-dot,body.code-mode[data-appearance=dark] .code-agent-transcript-process-item.error .code-agent-transcript-process-dot{background:#ff7b72}body.code-mode[data-appearance=dark] .code-agent-transcript-process-item.status-warning .code-agent-transcript-process-dot,body.code-mode[data-appearance=dark] .code-agent-transcript-process-item.warning .code-agent-transcript-process-dot{background:#d29922}body.code-mode[data-appearance=dark] .code-agent-transcript-state,body.code-mode[data-appearance=dark] .code-agent-transcript-blank,body.code-mode[data-appearance=dark] .code-agent-transcript-placeholder,body.code-mode[data-appearance=dark] .code-agent-transcript-state.error{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-agent-transcript-jump-bottom{color:#ffffffeb;box-shadow:none;-webkit-backdrop-filter:blur(12px);background:#ffffff0e;border-color:#f0f6fc21}body.code-mode[data-appearance=dark] .code-agent-transcript-jump-bottom:hover{color:#fff;background:#ffffff16;border-color:#f0f6fc33}body.code-mode[data-appearance=dark] .code-file-editor{background:var(--code-dark-bg);color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-file-editor-header,body.code-mode[data-appearance=dark] .code-file-editor-statusbar{background:var(--code-dark-bg-panel);border-color:var(--code-dark-border);color:var(--code-dark-text-soft)}body.code-mode[data-appearance=dark] .code-file-editor-bar{background:var(--code-dark-bg);color:var(--code-dark-text-soft);border-color:#0000}body.code-mode[data-appearance=dark] .code-file-editor-tab-strip{background:var(--code-dark-bg-soft);border-color:var(--code-dark-border)}body.code-mode[data-appearance=dark] .code-file-editor-navigation{border-color:var(--code-dark-border-soft)}body.code-mode[data-appearance=dark] .code-file-editor-navigation-divider{background:var(--code-dark-border-soft)}body.code-mode[data-appearance=dark] .code-file-editor-tab{border-color:var(--code-dark-border-soft);color:var(--code-dark-text-soft);background:0 0}body.code-mode[data-appearance=dark] .code-file-editor-tab.active{background:var(--code-dark-bg);color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-file-editor-tab:hover:not(.active){background:var(--code-dark-bg-hover)}body.code-mode[data-appearance=dark] .code-file-editor-close,body.code-mode[data-appearance=dark] .code-open-editor-close{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-file-editor-close:hover,body.code-mode[data-appearance=dark] .code-open-editor-close:hover{background:var(--code-dark-bg-hover);color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-file-editor-fallback-textarea,body.code-mode[data-appearance=dark] .code-file-monaco,body.code-mode[data-appearance=dark] .code-file-editor-split,body.code-mode[data-appearance=dark] .code-file-editor-source-region,body.code-mode[data-appearance=dark] .code-file-diff-view,body.code-mode[data-appearance=dark] .code-file-diff-monaco,body.code-mode[data-appearance=dark] .code-file-preview-panel{background:var(--code-dark-bg);color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-file-editor-split.markdown .code-file-monaco,body.code-mode[data-appearance=dark] .code-file-editor-source-region.markdown-split .code-file-monaco{border-color:var(--code-dark-border)}body.code-mode[data-appearance=dark] .code-file-diff-header,body.code-mode[data-appearance=dark] .code-file-diff-state{background:var(--code-dark-bg-panel);border-color:var(--code-dark-border);color:var(--code-dark-text-soft)}body.code-mode[data-appearance=dark] .code-file-diff-title{color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-file-diff-title span,body.code-mode[data-appearance=dark] .code-file-diff-close{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-file-diff-close:hover,body.code-mode[data-appearance=dark] .code-file-diff-close:focus-visible{background:var(--code-dark-bg-hover);color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-file-diff-state.error{color:#ff7b72}body.code-mode[data-appearance=dark] .code-file-preview-panel.metadata{background:linear-gradient(#161b22e0,#0d1117f5)}body.code-mode[data-appearance=dark] .code-markdown-preview,body.code-mode[data-appearance=dark] .code-markdown-preview h1,body.code-mode[data-appearance=dark] .code-markdown-preview h2,body.code-mode[data-appearance=dark] .code-markdown-preview h3,body.code-mode[data-appearance=dark] .code-markdown-preview h4,body.code-mode[data-appearance=dark] .code-markdown-preview h5,body.code-mode[data-appearance=dark] .code-markdown-preview h6{color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-markdown-preview h1,body.code-mode[data-appearance=dark] .code-markdown-preview h2{border-color:var(--code-dark-border)}body.code-mode[data-appearance=dark] .code-markdown-preview a{color:#79c0ff}body.code-mode[data-appearance=dark] .code-markdown-heading-anchor{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-markdown-preview blockquote{color:var(--code-dark-text-muted);border-color:#30363d}body.code-mode[data-appearance=dark] .code-markdown-preview code{color:var(--code-dark-text);background:#6e768152}body.code-mode[data-appearance=dark] .code-markdown-preview pre,body.code-mode[data-appearance=dark] .code-markdown-preview th{background:#161b22}body.code-mode[data-appearance=dark] .code-markdown-preview pre[data-language]:before{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-markdown-preview .katex{color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-markdown-preview .hljs-comment,body.code-mode[data-appearance=dark] .code-markdown-preview .hljs-quote{color:#8b949e}body.code-mode[data-appearance=dark] .code-markdown-preview .hljs-keyword,body.code-mode[data-appearance=dark] .code-markdown-preview .hljs-selector-tag,body.code-mode[data-appearance=dark] .code-markdown-preview .hljs-subst{color:#ff7b72}body.code-mode[data-appearance=dark] .code-markdown-preview .hljs-literal,body.code-mode[data-appearance=dark] .code-markdown-preview .hljs-number,body.code-mode[data-appearance=dark] .code-markdown-preview .hljs-tag .hljs-attr,body.code-mode[data-appearance=dark] .code-markdown-preview .hljs-template-variable,body.code-mode[data-appearance=dark] .code-markdown-preview .hljs-variable{color:#79c0ff}body.code-mode[data-appearance=dark] .code-markdown-preview .hljs-doctag,body.code-mode[data-appearance=dark] .code-markdown-preview .hljs-string{color:#a5d6ff}body.code-mode[data-appearance=dark] .code-markdown-preview .hljs-section,body.code-mode[data-appearance=dark] .code-markdown-preview .hljs-selector-id,body.code-mode[data-appearance=dark] .code-markdown-preview .hljs-title{color:#d2a8ff}body.code-mode[data-appearance=dark] .code-markdown-preview .hljs-attr,body.code-mode[data-appearance=dark] .code-markdown-preview .hljs-attribute,body.code-mode[data-appearance=dark] .code-markdown-preview .hljs-name,body.code-mode[data-appearance=dark] .code-markdown-preview .hljs-selector-class,body.code-mode[data-appearance=dark] .code-markdown-preview .hljs-selector-pseudo,body.code-mode[data-appearance=dark] .code-markdown-preview .hljs-tag{color:#7ee787}body.code-mode[data-appearance=dark] .code-markdown-preview .hljs-built_in,body.code-mode[data-appearance=dark] .code-markdown-preview .hljs-symbol{color:#ffa657}body.code-mode[data-appearance=dark] .code-markdown-preview .code-markdown-frontmatter,body.code-mode[data-appearance=dark] .code-markdown-preview .code-markdown-frontmatter th,body.code-mode[data-appearance=dark] .code-markdown-preview .code-markdown-frontmatter td{border-color:#30363d}body.code-mode[data-appearance=dark] .code-markdown-preview .code-markdown-frontmatter th{color:var(--code-dark-text-muted);background:#161b22}body.code-mode[data-appearance=dark] .code-markdown-preview .code-markdown-frontmatter.error{color:#ff7b72;background:#161b22e6;border-color:#f851496b}body.code-mode[data-appearance=dark] .code-markdown-mermaid{background:#0d1117;border-color:#30363d}body.code-mode[data-appearance=dark] .code-markdown-mermaid-toolbar{background:#161b22eb;border-color:#30363d;box-shadow:0 8px 24px #01040952}body.code-mode[data-appearance=dark] .code-markdown-mermaid-toolbar button{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-markdown-mermaid-toolbar button:hover:not(:disabled),body.code-mode[data-appearance=dark] .code-markdown-mermaid-toolbar button:focus-visible{color:var(--code-dark-text);background:#6e76813d}body.code-mode[data-appearance=dark] .code-markdown-mermaid-toolbar button[aria-pressed=true]{color:#58a6ff;background:#388bfd33}body.code-mode[data-appearance=dark] .code-markdown-mermaid-loading{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-markdown-mermaid.error{background:#161b22e6;border-color:#f851496b}body.code-mode[data-appearance=dark] .code-markdown-mermaid-error-title{color:#ff7b72}body.code-mode[data-appearance=dark] .code-markdown-mermaid-error-message{color:var(--code-dark-text-muted);background:#0d1117c2;border-color:#f8514947}body.code-mode[data-appearance=dark] .code-markdown-preview th,body.code-mode[data-appearance=dark] .code-markdown-preview td{border-color:#30363d}body.code-mode[data-appearance=dark] .code-markdown-preview tr:nth-child(2n){background:#161b22c2}body.code-mode[data-appearance=dark] .code-markdown-preview hr{background:var(--code-dark-border)}body.code-mode[data-appearance=dark] .code-file-inline-blame{color:var(--code-dark-text-soft);background:#58a6ff38}body.code-mode[data-appearance=dark] .code-file-inline-blame:hover,body.code-mode[data-appearance=dark] .code-file-inline-blame:focus-visible{color:var(--code-dark-text);background:#58a6ff52}body.code-mode[data-appearance=dark] .code-file-inline-blame.uncommitted{color:#f0c674;background:#d2992238}body.code-mode[data-appearance=dark] .code-file-blame-toast{border-color:var(--code-dark-border);color:var(--code-dark-text-soft);box-shadow:0 12px 32px var(--code-dark-shadow);background:#1c2129f5}body.code-mode[data-appearance=dark] .code-file-blame-toast.error{color:#ff7b72;border-color:#f851495c}body.code-mode[data-appearance=dark] .code-file-blame-detail{border-color:var(--code-dark-border);color:var(--code-dark-text);background:#161b22f5;box-shadow:inset 0 1px #ffffff0a}body.code-mode[data-appearance=dark] .code-file-blame-detail-title code,body.code-mode[data-appearance=dark] .code-file-blame-detail-subtitle,body.code-mode[data-appearance=dark] .code-file-blame-detail-row span{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-file-blame-detail-row strong,body.code-mode[data-appearance=dark] .code-file-blame-detail-row a{color:var(--code-dark-accent)}body.code-mode[data-appearance=dark] .code-file-blame-detail-close{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-file-blame-detail-close:hover,body.code-mode[data-appearance=dark] .code-file-blame-detail-close:focus-visible{background:var(--code-dark-bg-hover);color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-file-line-changes-panel{border-color:var(--code-dark-border);color:var(--code-dark-text);background:#161b22f5;box-shadow:inset 0 1px #ffffff0a}body.code-mode[data-appearance=dark] .code-file-line-changes-title code,body.code-mode[data-appearance=dark] .code-file-line-changes-subtitle,body.code-mode[data-appearance=dark] .code-file-line-changes-state{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-file-line-changes-state.error{color:#ff7b72}body.code-mode[data-appearance=dark] .code-file-line-changes-patch{border-color:var(--code-dark-border);background:#0d1117ad}body.code-mode[data-appearance=dark] .code-file-line-changes-line.meta{color:#8b949e;background:#7986cb24}body.code-mode[data-appearance=dark] .code-file-line-changes-line.added{color:#7ee787;background:#2ea0432e}body.code-mode[data-appearance=dark] .code-file-line-changes-line.deleted{color:#ff7b72;background:#f8514929}body.code-mode[data-appearance=dark] .code-file-line-changes-close{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-file-line-changes-close:hover,body.code-mode[data-appearance=dark] .code-file-line-changes-close:focus-visible{background:var(--code-dark-bg-hover);color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-composer{color:var(--code-dark-text);-webkit-backdrop-filter:blur(20px)saturate(1.12);background:#161b22d1;border-color:#f0f6fc1a;box-shadow:0 12px 30px #01040933,inset 0 0 0 1px #f0f6fc0f}body.code-mode[data-appearance=dark] .code-composer-collapse,body.code-mode[data-appearance=dark] .code-composer-restore{border-color:var(--code-dark-border);color:var(--code-dark-text-muted);background:#161b22db;box-shadow:0 12px 30px #01040947}body.code-mode[data-appearance=dark] .code-composer-collapse:hover,body.code-mode[data-appearance=dark] .code-composer-collapse:focus-visible,body.code-mode[data-appearance=dark] .code-composer-restore:hover,body.code-mode[data-appearance=dark] .code-composer-restore:focus-visible{background:var(--code-dark-bg-hover);color:var(--code-dark-text);border-color:#8b949e57}body.code-mode[data-appearance=dark] .code-composer.menu-open{border-color:#58a6ff6b}body.code-mode[data-appearance=dark] .code-composer-send{background:var(--code-dark-text-soft);color:var(--code-dark-bg)}body.code-mode[data-appearance=dark] .code-composer-send:disabled{color:#f0f6fc61;background:#f0f6fc1f}body.code-mode[data-appearance=dark] .code-composer-send:not(:disabled):hover{background:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-composer-send.interrupt{background:var(--code-dark-danger);color:#fff}body.code-mode[data-appearance=dark] .code-context-window-ring{background:conic-gradient(var(--code-dark-text-soft) calc(var(--context-percent) * 1%), #8b949e57 0)}body.code-mode[data-appearance=dark] .code-context-window-ring:after{background:var(--code-dark-bg-panel)}body.code-mode[data-appearance=dark] .code-composer-context-window[data-level=warning] .code-context-window-ring{background:conic-gradient(#d29922 calc(var(--context-percent) * 1%), #d2992240 0)}body.code-mode[data-appearance=dark] .code-composer-context-window[data-level=critical] .code-context-window-ring{background:conic-gradient(#f85149 calc(var(--context-percent) * 1%), #f8514940 0)}body.code-mode[data-appearance=dark] .code-context-window-popover{background:var(--code-dark-bg-elevated);border-color:var(--code-dark-border);color:var(--code-dark-text);box-shadow:0 16px 36px #0104096b}body.code-mode[data-appearance=dark] .code-context-window-popover span{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-composer-attachment,body.code-mode[data-appearance=dark] .code-composer-mode-chip{background:var(--code-dark-bg-elevated);border-color:var(--code-dark-border);color:var(--code-dark-text-soft)}body.code-mode[data-appearance=dark] .code-composer-attachment-preview{background:var(--code-dark-bg);border-color:var(--code-dark-border)}body.code-mode[data-appearance=dark] .code-composer-attachment-name,body.code-mode[data-appearance=dark] .code-composer-attachment-fallback{color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-composer-attachment-status{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-composer-attachment.image .code-composer-attachment-status{background:#161b22db}body.code-mode[data-appearance=dark] .code-composer-attachment.image .code-composer-attachment-remove{border-color:var(--code-dark-bg);color:#111;background:#f0f3f6}body.code-mode[data-appearance=dark] .code-composer-attachment.image .code-composer-attachment-remove:hover,body.code-mode[data-appearance=dark] .code-composer-attachment.image .code-composer-attachment-remove:focus-visible{color:#111;background:#fff}body.code-mode[data-appearance=dark].code-compact-layout .code-composer-attachment.image .code-composer-attachment-remove,body.code-mode[data-appearance=dark].code-compact-layout .code-composer-attachment.image .code-composer-attachment-remove:hover,body.code-mode[data-appearance=dark].code-compact-layout .code-composer-attachment.image .code-composer-attachment-remove:focus-visible{box-shadow:none;color:#111;background:0 0;border:0}body.code-mode[data-appearance=dark].code-compact-layout .code-composer-attachment.image .code-composer-attachment-remove:before{border-color:var(--code-dark-bg);background:#f0f3f6}body.code-mode[data-appearance=dark] .code-pending-followup{background:var(--code-dark-bg-elevated);border-color:var(--code-dark-border);color:var(--code-dark-text-soft)}body.code-mode[data-appearance=dark] .code-pending-followup-icon,body.code-mode[data-appearance=dark] .code-pending-followup-actions button{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-pending-followup-row p{color:var(--code-dark-text-soft)}body.code-mode[data-appearance=dark] .code-pending-followup-actions button:hover,body.code-mode[data-appearance=dark] .code-pending-followup-actions button:focus-visible{background:var(--code-dark-bg-hover);color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-acp-request{border-color:var(--code-dark-border);background:var(--code-dark-bg-elevated);color:var(--code-dark-text-soft)}body.code-mode[data-appearance=dark] .code-acp-notice{background:#4b3d1ad1;border-color:#806c2f}body.code-mode[data-appearance=dark] .code-acp-request header strong,body.code-mode[data-appearance=dark] .code-acp-request-questions label>span,body.code-mode[data-appearance=dark] .code-acp-request input{color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-acp-request p,body.code-mode[data-appearance=dark] .code-acp-request small,body.code-mode[data-appearance=dark] .code-acp-request header span{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-acp-request-command code,body.code-mode[data-appearance=dark] .code-acp-request input,body.code-mode[data-appearance=dark] .code-acp-request-options button,body.code-mode[data-appearance=dark] .code-acp-request-actions button{border-color:var(--code-dark-border);background:var(--code-dark-bg);color:var(--code-dark-text-soft)}body.code-mode[data-appearance=dark] .code-acp-request-options button.active,body.code-mode[data-appearance=dark] .code-acp-request-actions button.approve{color:#fff;background:#6f816b;border-color:#6f816b}body.code-mode[data-appearance=dark] .code-copy-toast,body.code-mode[data-appearance=dark] .app-toast{border-color:var(--code-dark-border);color:var(--code-dark-text);box-shadow:0 12px 32px var(--code-dark-shadow);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:#1c2129fa}body.code-mode[data-appearance=dark] .code-copy-toast.error,body.code-mode[data-appearance=dark] .app-toast.error{color:#ff7b72;border-color:#f851495c}body.code-mode[data-appearance=dark] .code-context-menu,body.code-mode[data-appearance=dark] .code-options-menu,body.code-mode[data-appearance=dark] .code-composer-menu,body.code-mode[data-appearance=dark] .code-model-submenu,body.code-mode[data-appearance=dark] .code-speed-submenu,body.code-mode[data-appearance=dark] .code-agent-launch-submenu-panel,body.code-mode[data-appearance=dark] .code-editor-context-menu,body.code-mode[data-appearance=dark] .terminal-context-menu,body.code-mode[data-appearance=dark] .terminal-context-menu-pooled,body.code-mode[data-appearance=dark] .code-file-context-menu{background:var(--code-dark-bg-elevated);border-color:var(--code-dark-border);color:var(--code-dark-text);box-shadow:0 18px 48px var(--code-dark-shadow)}body.code-mode[data-appearance=dark] .code-project-context-menu,body.code-mode[data-appearance=dark] .code-project-launch-menu{-webkit-backdrop-filter:blur(18px)saturate(1.06);background:#161b22eb;border-color:#8b949e2e;box-shadow:0 18px 48px #0104096b,inset 0 1px #f0f6fc0d}body.code-mode[data-appearance=dark] .code-project-context-menu button,body.code-mode[data-appearance=dark] .code-project-launch-menu button{color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-context-menu button,body.code-mode[data-appearance=dark] .code-options-menu button,body.code-mode[data-appearance=dark] .code-composer-menu button,body.code-mode[data-appearance=dark] .code-editor-context-menu button,body.code-mode[data-appearance=dark] .terminal-context-menu-item,body.code-mode[data-appearance=dark] .terminal-context-menu-pooled .terminal-context-menu-item,body.code-mode[data-appearance=dark] .code-file-context-menu button,body.code-mode[data-appearance=dark] .code-approval-option,body.code-mode[data-appearance=dark] .code-model-option,body.code-mode[data-appearance=dark] .code-model-nested-trigger,body.code-mode[data-appearance=dark] .code-plus-menu button,body.code-mode[data-appearance=dark] .code-slash-command{color:var(--code-dark-text);background:0 0}body.code-mode[data-appearance=dark] .code-context-menu button:hover,body.code-mode[data-appearance=dark] .code-context-menu button:focus-visible,body.code-mode[data-appearance=dark] .code-options-menu button:hover,body.code-mode[data-appearance=dark] .code-options-menu button:focus-visible,body.code-mode[data-appearance=dark] .code-composer-menu button:hover,body.code-mode[data-appearance=dark] .code-composer-menu button:focus-visible,body.code-mode[data-appearance=dark] .code-editor-context-menu button:hover:not(:disabled),body.code-mode[data-appearance=dark] .code-editor-context-menu button:focus-visible,body.code-mode[data-appearance=dark] .terminal-context-menu-item:hover:not(:disabled),body.code-mode[data-appearance=dark] .terminal-context-menu-item:focus-visible,body.code-mode[data-appearance=dark] .code-file-context-menu button:hover,body.code-mode[data-appearance=dark] .code-file-context-menu button:focus-visible,body.code-mode[data-appearance=dark] .code-approval-option:hover,body.code-mode[data-appearance=dark] .code-approval-option:focus-visible,body.code-mode[data-appearance=dark] .code-model-option:hover,body.code-mode[data-appearance=dark] .code-model-option:focus-visible,body.code-mode[data-appearance=dark] .code-model-nested-trigger:hover,body.code-mode[data-appearance=dark] .code-model-nested-trigger:focus-visible,body.code-mode[data-appearance=dark] .code-model-nested-trigger.selected,body.code-mode[data-appearance=dark] .code-plus-menu button:hover,body.code-mode[data-appearance=dark] .code-plus-menu button:focus-visible,body.code-mode[data-appearance=dark] .code-slash-command:hover,body.code-mode[data-appearance=dark] .code-slash-command:focus-visible,body.code-mode[data-appearance=dark] .code-slash-command.active{background:var(--code-dark-bg-hover);color:var(--code-dark-text);outline:0}body.code-mode[data-appearance=dark] .code-editor-context-menu button:disabled{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-editor-context-separator,body.code-mode[data-appearance=dark] .code-context-menu-separator{background:var(--code-dark-border-soft)}body.code-mode[data-appearance=dark] .code-context-menu-icon,body.code-mode[data-appearance=dark] .code-agent-launch-submenu-arrow{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-options-menu button.checked,body.code-mode[data-appearance=dark] .code-model-option.selected,body.code-mode[data-appearance=dark] .code-approval-option.selected{background:var(--code-dark-accent-soft)}body.code-mode[data-appearance=dark] .code-options-menu-check,body.code-mode[data-appearance=dark] .code-menu-check,body.code-mode[data-appearance=dark] .code-file-search-highlight,body.code-mode[data-appearance=dark] .code-model-option-copy span,body.code-mode[data-appearance=dark] .code-approval-option-copy span,body.code-mode[data-appearance=dark] .code-slash-command-copy code,body.code-mode[data-appearance=dark] .code-slash-command-copy strong,body.code-mode[data-appearance=dark] .code-speed-option-icon{color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-model-matrix-stage{box-shadow:none;background:0 0;border-color:#0000}body.code-mode[data-appearance=dark] .code-model-matrix-shell[data-advanced=open] .code-model-matrix-stage{background:0 0;border-color:#0000}body.code-mode[data-appearance=dark] .code-model-matrix-head,body.code-mode[data-appearance=dark] .code-model-matrix-labels span,body.code-mode[data-appearance=dark] .code-model-matrix-current,body.code-mode[data-appearance=dark] .code-model-matrix-rocker{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-model-matrix-surface{background:radial-gradient(circle at 2px 2px,#ffffff0b 0 .7px,#0000 .9px) 0 0/7px 7px,linear-gradient(145deg,#ffffff09,#0000 42%),#34373a;border-color:#ffffff0a;box-shadow:inset 0 1px 2px #0000006b,inset 0 -1px #ffffff0a}body.code-mode[data-appearance=dark] .code-model-matrix-cells button:before{background:#70757a}body.code-mode[data-appearance=dark] .code-model-matrix-rocker-control{background:radial-gradient(circle at 2px 2px,#ffffff14 0 1px,#0000 1.2px) 0 0/6px 6px,#242628;border-color:#ffffff14;box-shadow:inset 0 0 0 1px #ffffff14}body.code-mode[data-appearance=dark] .code-model-matrix-rocker-button:focus-visible .code-model-matrix-rocker-control{box-shadow:inset 0 0 0 1px #282a2c, 0 0 0 2px #111315, 0 0 0 4px var(--rocker-accent)}body.code-mode[data-appearance=dark] .code-model-matrix-fast:not(.is-active){color:var(--code-dark-text-muted);background:#ffffff0e;border-color:#ffffff17;box-shadow:inset 0 1px #ffffff0d}body.code-mode[data-appearance=dark] .code-model-matrix-fast.is-active{color:#674400;background:linear-gradient(145deg,#ffe783,#ffc126);border-color:#ffc72d7a;box-shadow:inset 0 1px #ffffff8a,0 0 10px #ffbe1940}body.code-mode[data-appearance=dark] .code-model-matrix-fast.is-active small{color:#744d00}body.code-mode[data-appearance=dark] .code-model-matrix-fast.is-disabled{background:#ffffff0a}body.code-mode[data-appearance=dark] .code-model-matrix-advanced-toggle{color:var(--code-dark-text-muted);background:#ffffff0f}body.code-mode[data-appearance=dark] .code-model-matrix-advanced-toggle:hover,body.code-mode[data-appearance=dark] .code-model-matrix-advanced-toggle:focus-visible{color:var(--code-dark-text);background:#ffffff1a}body.code-mode[data-appearance=dark] .code-model-option-copy small,body.code-mode[data-appearance=dark] .code-approval-option-copy small,body.code-mode[data-appearance=dark] .code-plus-menu small,body.code-mode[data-appearance=dark] .code-slash-command-copy small,body.code-mode[data-appearance=dark] .code-slash-command-source,body.code-mode[data-appearance=dark] .code-model-nested-trigger span:last-child{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .dialog-overlay{background:#010409b8}body.code-mode[data-appearance=dark] .code-rename-backdrop,body.code-mode[data-appearance=dark] .code-file-save-confirm-backdrop{background:#010409a3}body.code-mode[data-appearance=dark] .input-dialog,body.code-mode[data-appearance=dark] .settings-dialog,body.code-mode[data-appearance=dark] .code-rename-dialog,body.code-mode[data-appearance=dark] .code-file-save-confirm-dialog,body.code-mode[data-appearance=dark] .workspace-history,body.code-mode[data-appearance=dark] .workspace-path-suggestions,body.code-mode[data-appearance=dark] .agent-list,body.code-mode[data-appearance=dark] .agent-item,body.code-mode[data-appearance=dark] .agent-list-status,body.code-mode[data-appearance=dark] .main-agent-resume-option,body.code-mode[data-appearance=dark] .theme-option,body.code-mode[data-appearance=dark] .settings-field,body.code-mode[data-appearance=dark] .settings-checkbox,body.code-mode[data-appearance=dark] .code-file-operation-dialog{background:var(--code-dark-bg-elevated);border-color:var(--code-dark-border);color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .dialog-header,body.code-mode[data-appearance=dark] .input-dialog .dialog-header{background:var(--code-dark-bg-panel);border-color:var(--code-dark-border)}body.code-mode[data-appearance=dark] .dialog-header-title,body.code-mode[data-appearance=dark] .group-label,body.code-mode[data-appearance=dark] .workspace-field-copy,body.code-mode[data-appearance=dark] .workspace-selected-agent strong,body.code-mode[data-appearance=dark] .section-title,body.code-mode[data-appearance=dark] .settings-field label,body.code-mode[data-appearance=dark] .settings-checkbox span,body.code-mode[data-appearance=dark] .agent-item-name,body.code-mode[data-appearance=dark] .theme-name,body.code-mode[data-appearance=dark] .main-agent-resume-title,body.code-mode[data-appearance=dark] .code-rename-dialog label,body.code-mode[data-appearance=dark] .code-kill-dialog h2,body.code-mode[data-appearance=dark] .code-file-save-confirm-dialog h2{color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .agent-item-desc,body.code-mode[data-appearance=dark] .theme-desc,body.code-mode[data-appearance=dark] .settings-hint,body.code-mode[data-appearance=dark] .settings-field .settings-hint,body.code-mode[data-appearance=dark] .settings-checkbox .settings-checkbox-hint,body.code-mode[data-appearance=dark] .main-agent-resume-detail,body.code-mode[data-appearance=dark] .workspace-selected-agent,body.code-mode[data-appearance=dark] .workspace-history-header .hint,body.code-mode[data-appearance=dark] .workspace-history-index,body.code-mode[data-appearance=dark] .workspace-path-suggestion-path,body.code-mode[data-appearance=dark] .code-kill-dialog p,body.code-mode[data-appearance=dark] .code-file-save-confirm-dialog p{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .agent-launch-icon,body.code-mode[data-appearance=dark] .code-project-launch-menu .agent-launch-icon,body.code-mode[data-appearance=dark] .code-agent-launch-submenu-panel .agent-launch-icon{color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .agent-launch-icon-monochrome image{filter:grayscale()invert()brightness(1.25)}body.code-mode[data-appearance=dark] .agent-launch-icon-theme-light{display:none}body.code-mode[data-appearance=dark] .agent-launch-icon-theme-dark{display:block}body.code-mode[data-appearance=dark] .workspace-input select.workflow-select:focus,body.code-mode[data-appearance=dark] .workspace-input textarea.task-input:focus,body.code-mode[data-appearance=dark] .workspace-input input:focus,body.code-mode[data-appearance=dark] .settings-input:focus,body.code-mode[data-appearance=dark] .settings-select:focus{border-color:#58a6ff94;box-shadow:0 0 0 3px #58a6ff29}body.code-mode[data-appearance=dark] .code-rename-dialog input{background:var(--code-dark-bg-panel);border-color:var(--code-dark-border);color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .code-rename-dialog input:focus{border-color:#58a6ff94;box-shadow:0 0 0 3px #58a6ff29}body.code-mode[data-appearance=dark] .workspace-input select.workflow-select option{background:var(--code-dark-bg-panel);color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .workspace-home-trigger,body.code-mode[data-appearance=dark] .workspace-home-menu,body.code-mode[data-appearance=dark] .workspace-runtime-options{border-color:var(--code-dark-border);background:var(--code-dark-bg-panel);color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .workspace-home-trigger:focus-visible{border-color:#58a6ff94;box-shadow:0 0 0 3px #58a6ff29}body.code-mode[data-appearance=dark] .workspace-home-trigger-copy strong,body.code-mode[data-appearance=dark] .workspace-home-option-copy strong{color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .workspace-home-trigger-copy span,body.code-mode[data-appearance=dark] .workspace-home-option-copy span,body.code-mode[data-appearance=dark] .workspace-home-trigger svg{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .workspace-home-menu{box-shadow:0 12px 28px #0104096b}body.code-mode[data-appearance=dark] .workspace-home-option{color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .workspace-home-option:hover,body.code-mode[data-appearance=dark] .workspace-home-option:focus-visible,body.code-mode[data-appearance=dark] .workspace-home-option.selected{background:var(--code-dark-bg-hover)}body.code-mode[data-appearance=dark] .workspace-home-option.selected .workspace-home-option-check{color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .workspace-runtime-options button{border-left-color:var(--code-dark-border);color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .workspace-runtime-options button:hover,body.code-mode[data-appearance=dark] .workspace-runtime-options button:focus-visible,body.code-mode[data-appearance=dark] .workspace-runtime-options button.active{background:var(--code-dark-bg-hover);color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .workspace-runtime-options button span{color:var(--code-dark-warning)}body.code-mode[data-appearance=dark] .workspace-history-header{border-bottom-color:var(--code-dark-border-soft);color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .input-dialog .workspace-actions{background:var(--code-dark-bg-elevated);border-top-color:var(--code-dark-border)}body.code-mode[data-appearance=dark] .workspace-history-list::-webkit-scrollbar-thumb{background:#8b949e52}body.code-mode[data-appearance=dark] .workspace-history-list::-webkit-scrollbar-track{background:var(--code-dark-bg-elevated)}body.code-mode[data-appearance=dark] .workspace-history-item,body.code-mode[data-appearance=dark] .workspace-path-suggestion{color:var(--code-dark-text-soft);box-shadow:none;background:0 0;border-color:#0000}body.code-mode[data-appearance=dark] .workspace-history-item{border-top-color:var(--code-dark-border-soft)}body.code-mode[data-appearance=dark] .workspace-history-item:first-child{border-top-color:#0000}body.code-mode[data-appearance=dark] .workspace-history-path,body.code-mode[data-appearance=dark] .workspace-path-suggestion-name{color:var(--code-dark-text-soft)}body.code-mode[data-appearance=dark] .agent-item:hover,body.code-mode[data-appearance=dark] .agent-item:focus-visible,body.code-mode[data-appearance=dark] .theme-option:hover,body.code-mode[data-appearance=dark] .theme-option.active,body.code-mode[data-appearance=dark] .workspace-history-item:hover,body.code-mode[data-appearance=dark] .workspace-history-item.active,body.code-mode[data-appearance=dark] .workspace-path-suggestion:hover,body.code-mode[data-appearance=dark] .workspace-path-suggestion.active{background:var(--code-dark-bg-hover);border-color:var(--code-dark-border);color:var(--code-dark-text);box-shadow:none}body.code-mode[data-appearance=dark] .workspace-history-item:hover .workspace-history-path,body.code-mode[data-appearance=dark] .workspace-history-item.active .workspace-history-path,body.code-mode[data-appearance=dark] .workspace-path-suggestion:hover .workspace-path-suggestion-name,body.code-mode[data-appearance=dark] .workspace-path-suggestion.active .workspace-path-suggestion-name{color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .workspace-history-badge{background:var(--code-dark-accent-soft);color:var(--code-dark-text-soft)}body.code-mode[data-appearance=dark] .workspace-directory-prompt{border-color:var(--code-dark-border);background:var(--code-dark-bg-panel);color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .workspace-directory-prompt.error{background:#f8514914;border-color:#f851496b}body.code-mode[data-appearance=dark] .workspace-directory-prompt-icon{background:var(--code-dark-bg-hover);color:var(--code-dark-text-soft)}body.code-mode[data-appearance=dark] .workspace-directory-prompt.error .workspace-directory-prompt-icon{color:var(--code-dark-danger);background:#f8514926}body.code-mode[data-appearance=dark] .workspace-directory-prompt-copy h4{color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .workspace-directory-prompt-copy p{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .workspace-directory-prompt-copy code{border-color:var(--code-dark-border);background:var(--code-dark-bg-elevated);color:var(--code-dark-text-soft)}body.code-mode[data-appearance=dark] .workspace-directory-prompt-actions button{border-color:var(--code-dark-accent);background:var(--code-dark-accent);color:#fff}body.code-mode[data-appearance=dark] .workspace-directory-prompt-actions button:hover:not(:disabled){background:#79b8ff;border-color:#79b8ff}body.code-mode[data-appearance=dark] .workspace-directory-prompt-actions button.secondary{border-color:var(--code-dark-border);background:var(--code-dark-bg-elevated);color:var(--code-dark-text-soft)}body.code-mode[data-appearance=dark] .workspace-directory-prompt-actions button.secondary:hover:not(:disabled){background:var(--code-dark-bg-hover)}body.code-mode[data-appearance=dark] .workspace-input input:disabled{border-color:var(--code-dark-border);background:var(--code-dark-bg-panel);color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .workspace-directory-prompt-actions button:focus-visible{box-shadow:0 0 0 3px #58a6ff38}body.code-mode[data-appearance=dark] .workspace-actions button,body.code-mode[data-appearance=dark] .close-btn,body.code-mode[data-appearance=dark] .kill-btn,body.code-mode[data-appearance=dark] .code-rename-actions button,body.code-mode[data-appearance=dark] .code-file-save-confirm-actions button,body.code-mode[data-appearance=dark] .code-file-operation-dialog .code-rename-actions button{background:var(--code-dark-bg-panel);border-color:var(--code-dark-border);color:var(--code-dark-text)}body.code-mode[data-appearance=dark] .workspace-actions button:hover,body.code-mode[data-appearance=dark] .close-btn:hover,body.code-mode[data-appearance=dark] .code-rename-actions button:hover:not(:disabled),body.code-mode[data-appearance=dark] .code-file-save-confirm-actions button:hover:not(:disabled),body.code-mode[data-appearance=dark] .code-file-operation-dialog .code-rename-actions button:hover{background:var(--code-dark-bg-hover)}body.code-mode[data-appearance=dark] .kill-btn,body.code-mode[data-appearance=dark] .code-rename-actions button.primary,body.code-mode[data-appearance=dark] .code-file-save-confirm-actions button.primary,body.code-mode[data-appearance=dark] .code-file-operation-dialog .code-rename-actions button.primary{background:var(--code-dark-accent);border-color:var(--code-dark-accent);color:#fff}body.code-mode[data-appearance=dark] .kill-btn,body.code-mode[data-appearance=dark] .code-rename-actions button.danger{background:var(--code-dark-danger);border-color:var(--code-dark-danger);color:#fff}body.code-mode[data-appearance=dark] .code-mobile-topbar{background:var(--code-dark-bg-soft);border-color:var(--code-dark-border);color:var(--code-dark-text)}body.code-mode[data-appearance=dark].code-mobile-markdown-reading .code-mobile-topbar{background:0 0;border-color:#0000}body.code-mode[data-appearance=dark].code-compact-layout{background:var(--code-dark-bg)}body.code-mode[data-appearance=dark].code-compact-layout #root,body.code-mode[data-appearance=dark].code-compact-layout .app-container,body.code-mode[data-appearance=dark].code-compact-layout .code-app-shell,body.code-mode[data-appearance=dark].code-compact-layout .code-workspace,body.code-mode[data-appearance=dark].code-compact-layout .code-main,body.code-mode[data-appearance=dark].code-compact-layout .code-terminal-grid,body.code-mode[data-appearance=dark].code-compact-layout .code-agent-work-pane,body.code-mode[data-appearance=dark].code-compact-layout .code-terminal-pane,body.code-mode[data-appearance=dark].code-compact-layout .code-terminal-container,body.code-mode[data-appearance=dark].code-compact-layout .terminal-session-host,body.code-mode[data-appearance=dark].code-compact-layout .terminal-session-host .xterm,body.code-mode[data-appearance=dark].code-compact-layout .terminal-session-host .xterm-screen,body.code-mode[data-appearance=dark].code-compact-layout .terminal-session-host .xterm-viewport,body.code-mode[data-appearance=dark].code-compact-layout .code-agent-transcript-scroll{color:var(--code-dark-text);background:var(--code-dark-bg)!important}body.code-mode[data-appearance=dark].code-compact-layout .code-mobile-topbar-title,body.code-mode[data-appearance=dark].code-compact-layout .code-mobile-topbar-title strong{color:var(--code-dark-text)}body.code-mode[data-appearance=dark].code-compact-layout .code-mobile-topbar-title span{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark].code-compact-layout .code-composer{color:var(--code-dark-text);background:#161b22c7!important;border-color:#f0f6fc14!important;box-shadow:0 16px 42px #01040938,inset 0 0 0 1px #f0f6fc0b!important}body.code-mode[data-appearance=dark].code-compact-layout .code-composer:focus-within,body.code-mode[data-appearance=dark].code-compact-layout .code-composer.menu-open{background:#161b22db!important;border-color:#f0f6fc1a!important;box-shadow:0 14px 38px #0104093d,inset 0 0 0 1px #f0f6fc0e!important}body.code-mode[data-appearance=dark].code-compact-layout .code-composer textarea{color:#f0f6fceb;caret-color:#f0f6fcf5}body.code-mode[data-appearance=dark].code-compact-layout .code-composer textarea::placeholder{color:#f0f6fc75}body.code-mode[data-appearance=dark].code-compact-layout .code-composer-add,body.code-mode[data-appearance=dark].code-compact-layout .code-composer-mic,body.code-mode[data-appearance=dark].code-compact-layout .code-composer-approval,body.code-mode[data-appearance=dark].code-compact-layout .code-composer-context-window,body.code-mode[data-appearance=dark].code-compact-layout .code-composer-model-picker,body.code-mode[data-appearance=dark].code-compact-layout .code-composer-mode-chip{color:#f0f6fcbd}body.code-mode[data-appearance=dark].code-compact-layout .code-composer-send{color:#0d1117;background:#f0f6fceb}body.code-mode[data-appearance=dark].code-compact-layout .code-composer-send:disabled{color:#f0f6fc61;background:#f0f6fc1f}body.code-mode[data-appearance=dark].code-mobile-markdown-reading .code-mobile-topbar-button,body.code-mode[data-appearance=dark].code-compact-layout .code-mobile-topbar-button,body.code-mode[data-appearance=dark].code-compact-layout .code-file-editor.markdown-reading .code-file-editor-action.source-preview{color:#f0f6fcd6;-webkit-backdrop-filter:blur(18px)saturate(1.12);background:#161b22bd;box-shadow:0 10px 24px #01040947}body.code-mode[data-appearance=dark].code-compact-layout .code-file-editor.markdown-reading .code-file-editor-action.source-preview,body.code-mode[data-appearance=dark].code-compact-layout .code-file-editor.markdown-reading .code-file-editor-action.source-preview.active{color:#f0f6fcd1;box-shadow:none;background:0 0}body.code-mode[data-appearance=dark].code-compact-layout .code-file-editor.markdown-reading .code-file-editor-action.source-preview:hover:not(:disabled),body.code-mode[data-appearance=dark].code-compact-layout .code-file-editor.markdown-reading .code-file-editor-action.source-preview:focus-visible{background:#f0f6fc17}body.code-mode[data-appearance=dark] .code-mobile-sidebar-backdrop{background:#010409a3}body.code-mode[data-appearance=dark] .connection-status{background:var(--code-dark-bg-elevated);border-color:var(--code-dark-border);color:var(--code-dark-warning);box-shadow:0 12px 34px var(--code-dark-shadow)}body.code-mode[data-appearance=dark] .connection-status.lost,body.code-mode[data-appearance=dark] .connection-status.stale{color:#ff7b72;border-color:#f8514975}body.code-mode[data-appearance=dark] .code-settings-panel{color:#d8dee9;background:#171a1f;border-left-color:#30363d}body.code-mode[data-appearance=dark] .code-settings-panel-header,body.code-mode[data-appearance=dark] .code-agent-home-provider-header{border-color:#30363d}body.code-mode[data-appearance=dark] .code-settings-panel-header h2,body.code-mode[data-appearance=dark] .code-settings-section h3,body.code-mode[data-appearance=dark] .code-agent-home-id,body.code-mode[data-appearance=dark] .code-agent-home-provider-header strong{color:#f0f3f6}body.code-mode[data-appearance=dark] .code-settings-panel-header p,body.code-mode[data-appearance=dark] .code-settings-section-heading p,body.code-mode[data-appearance=dark] .code-settings-status,body.code-mode[data-appearance=dark] .code-agent-home-path,body.code-mode[data-appearance=dark] .code-agent-home-form p,body.code-mode[data-appearance=dark] .code-agent-home-empty{color:#8b949e}body.code-mode[data-appearance=dark] .code-settings-row-copy strong,body.code-mode[data-appearance=dark] .code-settings-update-url>span{color:var(--code-dark-text-soft)}body.code-mode[data-appearance=dark] .code-settings-row-copy small,body.code-mode[data-appearance=dark] .code-settings-search-timeout-row output,body.code-mode[data-appearance=dark] .code-settings-update-status dt,body.code-mode[data-appearance=dark] .code-settings-update-summary,body.code-mode[data-appearance=dark] .code-agent-home-provider-title span,body.code-mode[data-appearance=dark] .code-settings-inline-choice>svg,body.code-mode[data-appearance=dark] .code-settings-segmented button{color:var(--code-dark-text-muted)}body.code-mode[data-appearance=dark] .code-settings-section+.code-settings-section,body.code-mode[data-appearance=dark] .code-settings-language-choice,body.code-mode[data-appearance=dark] .code-settings-card>.code-settings-choice-row+.code-settings-choice-row{border-color:var(--code-dark-border)}body.code-mode[data-appearance=dark] .code-settings-choice-row,body.code-mode[data-appearance=dark] .code-agent-home-provider,body.code-mode[data-appearance=dark] .code-agent-home-form{background:#1d2229;border-color:#30363d}body.code-mode[data-appearance=dark] .code-settings-segmented,body.code-mode[data-appearance=dark] .code-agent-home-provider-header button,body.code-mode[data-appearance=dark] .code-agent-home-actions button,body.code-mode[data-appearance=dark] .code-agent-home-form-actions button,body.code-mode[data-appearance=dark] .code-agent-home-form input,body.code-mode[data-appearance=dark] .code-settings-panel-close{border-color:#30363d}body.code-mode[data-appearance=dark] .code-agent-home-form input,body.code-mode[data-appearance=dark] .code-settings-search-timeout-card input[type=range]{color:#d8dee9;background:#11151a}body.code-mode[data-appearance=dark] .code-settings-segmented button.active,body.code-mode[data-appearance=dark] .code-settings-segmented button:hover,body.code-mode[data-appearance=dark] .code-settings-segmented button:focus-visible,body.code-mode[data-appearance=dark] .code-agent-home-provider-header button:hover,body.code-mode[data-appearance=dark] .code-agent-home-provider-header button:focus-visible,body.code-mode[data-appearance=dark] .code-agent-home-actions button:hover,body.code-mode[data-appearance=dark] .code-agent-home-actions button:focus-visible,body.code-mode[data-appearance=dark] .code-agent-home-form-actions button:hover,body.code-mode[data-appearance=dark] .code-agent-home-form-actions button:focus-visible,body.code-mode[data-appearance=dark] .code-settings-panel-close:hover,body.code-mode[data-appearance=dark] .code-settings-panel-close:focus-visible{color:#f0f3f6;background:#30363d}body.code-mode[data-appearance=dark] .code-agent-home-form-actions .primary{color:#171a1f;background:#f0f3f6}body.code-mode[data-appearance=dark] .code-settings-panel-overlay{background:#0104096b}body.code-mode[data-appearance=dark] .code-settings-panel-header{background:#171a1f}body.code-mode[data-appearance=dark] .code-settings-segmented{background:#11151a}body.code-mode[data-appearance=dark] .code-settings-segmented button.active{color:#f0f3f6;box-shadow:none;background:#30363d}body.code-mode[data-appearance=dark] .code-settings-error{color:#ff7b72;background:#f8514914;border-color:#f8514952}