@rexvane/piweb 0.3.16 → 0.3.18

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 (288) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +8 -11
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/prerender-manifest.json +6 -6
  5. package/.next/react-loadable-manifest.json +4 -16
  6. package/.next/required-server-files.js +1 -3
  7. package/.next/required-server-files.json +1 -3
  8. package/.next/routes-manifest.json +0 -20
  9. package/.next/server/app/_global-error/page.js +2 -2
  10. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  11. package/.next/server/app/_global-error.html +1 -1
  12. package/.next/server/app/_global-error.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  14. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  15. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  16. package/.next/server/app/_not-found/page.js +1 -1
  17. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  18. package/.next/server/app/_not-found.html +1 -1
  19. package/.next/server/app/_not-found.rsc +4 -7
  20. package/.next/server/app/_not-found.segments/_full.segment.rsc +4 -7
  21. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -5
  22. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -5
  23. package/.next/server/app/api/agent/[id]/events/route.js +2 -2
  24. package/.next/server/app/api/agent/[id]/events/route.js.nft.json +1 -1
  25. package/.next/server/app/api/agent/[id]/route.js +1 -1
  26. package/.next/server/app/api/agent/[id]/route.js.nft.json +1 -1
  27. package/.next/server/app/api/agent/[id]/tree/route.js +1 -1
  28. package/.next/server/app/api/agent/[id]/tree/route.js.nft.json +1 -1
  29. package/.next/server/app/api/agent/new/route.js +1 -1
  30. package/.next/server/app/api/agent/new/route.js.nft.json +1 -1
  31. package/.next/server/app/api/config/route.js +1 -1
  32. package/.next/server/app/api/config/route.js.nft.json +1 -1
  33. package/.next/server/app/api/files/route.js +1 -1
  34. package/.next/server/app/api/files/route.js.nft.json +1 -1
  35. package/.next/server/app/api/git/route.js +2 -2
  36. package/.next/server/app/api/git/route.js.nft.json +1 -1
  37. package/.next/server/app/api/growth/route.js +1 -1
  38. package/.next/server/app/api/growth/route.js.nft.json +1 -1
  39. package/.next/server/app/api/health/route.js +1 -1
  40. package/.next/server/app/api/models/route.js +1 -1
  41. package/.next/server/app/api/models/route.js.nft.json +1 -1
  42. package/.next/server/app/api/pi-settings/route.js +1 -1
  43. package/.next/server/app/api/pi-settings/route.js.nft.json +1 -1
  44. package/.next/server/app/api/plugins/route.js +1 -1
  45. package/.next/server/app/api/plugins/route.js.nft.json +1 -1
  46. package/.next/server/app/api/prompts/route.js +1 -1
  47. package/.next/server/app/api/prompts/route.js.nft.json +1 -1
  48. package/.next/server/app/api/security/route.js +1 -1
  49. package/.next/server/app/api/security/route.js.nft.json +1 -1
  50. package/.next/server/app/api/sessions/[id]/export/route.js +1 -1
  51. package/.next/server/app/api/sessions/[id]/export/route.js.nft.json +1 -1
  52. package/.next/server/app/api/sessions/[id]/route.js +1 -1
  53. package/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
  54. package/.next/server/app/api/sessions/import/route.js +3 -3
  55. package/.next/server/app/api/sessions/import/route.js.nft.json +1 -1
  56. package/.next/server/app/api/sessions/route.js +1 -1
  57. package/.next/server/app/api/sessions/route.js.nft.json +1 -1
  58. package/.next/server/app/api/skills/route.js +2 -2
  59. package/.next/server/app/api/skills/route.js.nft.json +1 -1
  60. package/.next/server/app/api/update/route.js +2 -2
  61. package/.next/server/app/api/update/route.js.nft.json +1 -1
  62. package/.next/server/app/api/version/route.js +1 -1
  63. package/.next/server/app/api/version/route.js.nft.json +1 -1
  64. package/.next/server/app/api/web-auth/route.js +1 -1
  65. package/.next/server/app/api/workspaces/route.js +1 -1
  66. package/.next/server/app/api/workspaces/route.js.nft.json +1 -1
  67. package/.next/server/app/icon.svg/route.js +1 -1
  68. package/.next/server/app/index.html +1 -1
  69. package/.next/server/app/index.rsc +6 -9
  70. package/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -7
  71. package/.next/server/app/index.segments/_full.segment.rsc +6 -9
  72. package/.next/server/app/index.segments/_tree.segment.rsc +2 -5
  73. package/.next/server/app/login/page.js +1 -1
  74. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  75. package/.next/server/app/login.html +1 -1
  76. package/.next/server/app/login.rsc +5 -8
  77. package/.next/server/app/login.segments/_full.segment.rsc +5 -8
  78. package/.next/server/app/login.segments/_tree.segment.rsc +2 -5
  79. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +3 -6
  80. package/.next/server/app/page.js +1 -1
  81. package/.next/server/app/page_client-reference-manifest.js +1 -1
  82. package/.next/server/app-paths-manifest.json +8 -11
  83. package/.next/server/chunks/496.js +1 -1
  84. package/.next/server/chunks/532.js +1 -1
  85. package/.next/server/chunks/686.js +4 -8
  86. package/.next/server/middleware-build-manifest.js +1 -1
  87. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  88. package/.next/server/pages/404.html +1 -1
  89. package/.next/server/pages/500.html +1 -1
  90. package/.next/server/server-reference-manifest.json +1 -1
  91. package/.next/static/chunks/2608.ec8ff1f5767c9056.js +1 -0
  92. package/.next/static/chunks/2716.93be8ad5c970c516.js +1 -0
  93. package/.next/static/chunks/4632.112d2e893d48d188.js +1 -0
  94. package/.next/static/chunks/4673.c1fb1580efc6ace7.js +1 -0
  95. package/.next/static/chunks/4686-f4a037d609cea3f2.js +1 -0
  96. package/.next/static/chunks/app/_global-error/page-f77e9ede9808b18e.js +1 -0
  97. package/.next/static/chunks/app/api/agent/[id]/events/route-f77e9ede9808b18e.js +1 -0
  98. package/.next/static/chunks/app/api/agent/[id]/route-f77e9ede9808b18e.js +1 -0
  99. package/.next/static/chunks/app/api/agent/[id]/tree/route-f77e9ede9808b18e.js +1 -0
  100. package/.next/static/chunks/app/api/agent/new/route-f77e9ede9808b18e.js +1 -0
  101. package/.next/static/chunks/app/api/config/route-f77e9ede9808b18e.js +1 -0
  102. package/.next/static/chunks/app/api/files/route-f77e9ede9808b18e.js +1 -0
  103. package/.next/static/chunks/app/api/git/route-f77e9ede9808b18e.js +1 -0
  104. package/.next/static/chunks/app/api/growth/route-f77e9ede9808b18e.js +1 -0
  105. package/.next/static/chunks/app/api/health/route-f77e9ede9808b18e.js +1 -0
  106. package/.next/static/chunks/app/api/models/route-f77e9ede9808b18e.js +1 -0
  107. package/.next/static/chunks/app/api/pi-settings/route-f77e9ede9808b18e.js +1 -0
  108. package/.next/static/chunks/app/api/plugins/route-f77e9ede9808b18e.js +1 -0
  109. package/.next/static/chunks/app/api/prompts/route-f77e9ede9808b18e.js +1 -0
  110. package/.next/static/chunks/app/api/security/route-f77e9ede9808b18e.js +1 -0
  111. package/.next/static/chunks/app/api/sessions/[id]/export/route-f77e9ede9808b18e.js +1 -0
  112. package/.next/static/chunks/app/api/sessions/[id]/route-f77e9ede9808b18e.js +1 -0
  113. package/.next/static/chunks/app/api/sessions/import/route-f77e9ede9808b18e.js +1 -0
  114. package/.next/static/chunks/app/api/sessions/route-f77e9ede9808b18e.js +1 -0
  115. package/.next/static/chunks/app/api/skills/route-f77e9ede9808b18e.js +1 -0
  116. package/.next/static/chunks/app/api/update/route-f77e9ede9808b18e.js +1 -0
  117. package/.next/static/chunks/app/api/version/route-f77e9ede9808b18e.js +1 -0
  118. package/.next/static/chunks/app/api/web-auth/route-f77e9ede9808b18e.js +1 -0
  119. package/.next/static/chunks/app/api/workspaces/route-f77e9ede9808b18e.js +1 -0
  120. package/.next/static/chunks/app/page-b51087831582ee37.js +1 -0
  121. package/.next/static/chunks/next/dist/client/components/builtin/app-error-f77e9ede9808b18e.js +1 -0
  122. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-f77e9ede9808b18e.js +1 -0
  123. package/.next/static/chunks/next/dist/client/components/builtin/not-found-f77e9ede9808b18e.js +1 -0
  124. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-f77e9ede9808b18e.js +1 -0
  125. package/.next/static/chunks/webpack-c31263fd83d75ce6.js +1 -0
  126. package/.next/static/css/0cd968b9b62035b5.css +1 -0
  127. package/.next/static/en03hnPiuro0rnf8QkFEe/_buildManifest.js +1 -0
  128. package/.next/types/routes.d.ts +1 -4
  129. package/.next/types/validator.ts +0 -27
  130. package/README.md +17 -29
  131. package/assets/archive.jpg +0 -0
  132. package/assets/growth-1.jpg +0 -0
  133. package/assets/growth-2.jpg +0 -0
  134. package/assets/import.jpg +0 -0
  135. package/assets/main.jpg +0 -0
  136. package/assets/outline.jpg +0 -0
  137. package/assets/prompts-1.jpg +0 -0
  138. package/assets/prompts-2.jpg +0 -0
  139. package/assets/providers-1.jpg +0 -0
  140. package/assets/providers-2.jpg +0 -0
  141. package/assets/providers-3.jpg +0 -0
  142. package/assets/trace-1.jpg +0 -0
  143. package/assets/trace-2.png +0 -0
  144. package/assets/trace-3.png +0 -0
  145. package/assets/trace-4.png +0 -0
  146. package/assets/viewer-1.jpg +0 -0
  147. package/assets/viewer-2.jpg +0 -0
  148. package/bin/pi.js +50 -0
  149. package/next.config.ts +32 -7
  150. package/package.json +4 -9
  151. package/scripts/launcher.mjs +1 -1
  152. package/scripts/pick-folder.ps1 +2 -11
  153. package/scripts/release.mjs +31 -11
  154. package/scripts/verify-package.mjs +0 -53
  155. package/src/app/api/config/route.ts +1 -4
  156. package/src/app/api/growth/route.ts +14 -14
  157. package/src/app/api/models/route.ts +2 -1
  158. package/src/app/api/security/route.ts +3 -8
  159. package/src/app/api/update/route.ts +2 -8
  160. package/src/app/globals.css +92 -777
  161. package/src/app/layout.tsx +6 -13
  162. package/src/components/AppShell.tsx +229 -521
  163. package/src/components/ChatInput.tsx +26 -153
  164. package/src/components/ChatWindow.tsx +231 -51
  165. package/src/components/ContextMeter.tsx +17 -11
  166. package/src/components/FileViewer.tsx +11 -10
  167. package/src/components/GitPanel.tsx +11 -13
  168. package/src/components/ModelSelector.tsx +6 -19
  169. package/src/components/PiMark.tsx +38 -5
  170. package/src/components/ProjectPanel.tsx +111 -95
  171. package/src/components/PromptPanel.tsx +51 -132
  172. package/src/components/SessionImportSection.tsx +37 -53
  173. package/src/components/SessionSidebar.tsx +57 -159
  174. package/src/components/SettingsPanel.tsx +193 -330
  175. package/src/components/icons.tsx +0 -23
  176. package/src/hooks/useGrowth.ts +123 -156
  177. package/src/hooks/usePiWeb.ts +15 -122
  178. package/src/i18n.tsx +42 -98
  179. package/src/lib/agent-manager.ts +21 -187
  180. package/src/lib/command-validation.ts +1 -9
  181. package/src/lib/growth-service.ts +390 -166
  182. package/src/lib/growth-tracker.ts +64 -264
  183. package/src/lib/growth-turns.ts +31 -1
  184. package/src/lib/models/model-scope.ts +15 -0
  185. package/src/lib/models-service.ts +16 -0
  186. package/src/lib/pi-settings.ts +7 -0
  187. package/src/lib/pi.ts +2 -3
  188. package/src/lib/session-import/claude.ts +2 -13
  189. package/src/lib/session-import/codex.ts +8 -44
  190. package/src/lib/session-import/files.ts +0 -14
  191. package/src/lib/session-import/grok.ts +24 -54
  192. package/src/lib/session-import/index.ts +0 -5
  193. package/src/lib/session-import/types.ts +0 -12
  194. package/src/lib/session-import/writer.ts +3 -8
  195. package/src/lib/skills-service.ts +9 -16
  196. package/src/lib/theme.ts +1 -68
  197. package/src/lib/trajectory.ts +0 -1
  198. package/src/lib/types.ts +27 -36
  199. package/tsconfig.json +2 -1
  200. package/.next/server/app/api/swarm/[id]/route.js +0 -1
  201. package/.next/server/app/api/swarm/[id]/route.js.nft.json +0 -1
  202. package/.next/server/app/api/swarm/[id]/route_client-reference-manifest.js +0 -1
  203. package/.next/server/app/api/swarm/route.js +0 -1
  204. package/.next/server/app/api/swarm/route.js.nft.json +0 -1
  205. package/.next/server/app/api/swarm/route_client-reference-manifest.js +0 -1
  206. package/.next/server/app/api/tests/route.js +0 -2
  207. package/.next/server/app/api/tests/route.js.nft.json +0 -1
  208. package/.next/server/app/api/tests/route_client-reference-manifest.js +0 -1
  209. package/.next/server/chunks/757.js +0 -1
  210. package/.next/server/chunks/775.js +0 -3
  211. package/.next/static/0t1jBUAuVaTFTXxRyIo3q/_buildManifest.js +0 -1
  212. package/.next/static/chunks/2608.43c58236c9cce8e6.js +0 -1
  213. package/.next/static/chunks/2716.4ec42df1d51354c9.js +0 -1
  214. package/.next/static/chunks/4632.62139b565b657aac.js +0 -1
  215. package/.next/static/chunks/4673.7796104395deb8d7.js +0 -1
  216. package/.next/static/chunks/4686-17f21a006739a596.js +0 -1
  217. package/.next/static/chunks/7577.10af9bb661652da8.js +0 -1
  218. package/.next/static/chunks/8866.38ec4ac4ee5a1b74.js +0 -1
  219. package/.next/static/chunks/app/_global-error/page-5148173b3f55e415.js +0 -1
  220. package/.next/static/chunks/app/api/agent/[id]/events/route-5148173b3f55e415.js +0 -1
  221. package/.next/static/chunks/app/api/agent/[id]/route-5148173b3f55e415.js +0 -1
  222. package/.next/static/chunks/app/api/agent/[id]/tree/route-5148173b3f55e415.js +0 -1
  223. package/.next/static/chunks/app/api/agent/new/route-5148173b3f55e415.js +0 -1
  224. package/.next/static/chunks/app/api/config/route-5148173b3f55e415.js +0 -1
  225. package/.next/static/chunks/app/api/files/route-5148173b3f55e415.js +0 -1
  226. package/.next/static/chunks/app/api/git/route-5148173b3f55e415.js +0 -1
  227. package/.next/static/chunks/app/api/growth/route-5148173b3f55e415.js +0 -1
  228. package/.next/static/chunks/app/api/health/route-5148173b3f55e415.js +0 -1
  229. package/.next/static/chunks/app/api/models/route-5148173b3f55e415.js +0 -1
  230. package/.next/static/chunks/app/api/pi-settings/route-5148173b3f55e415.js +0 -1
  231. package/.next/static/chunks/app/api/plugins/route-5148173b3f55e415.js +0 -1
  232. package/.next/static/chunks/app/api/prompts/route-5148173b3f55e415.js +0 -1
  233. package/.next/static/chunks/app/api/security/route-5148173b3f55e415.js +0 -1
  234. package/.next/static/chunks/app/api/sessions/[id]/export/route-5148173b3f55e415.js +0 -1
  235. package/.next/static/chunks/app/api/sessions/[id]/route-5148173b3f55e415.js +0 -1
  236. package/.next/static/chunks/app/api/sessions/import/route-5148173b3f55e415.js +0 -1
  237. package/.next/static/chunks/app/api/sessions/route-5148173b3f55e415.js +0 -1
  238. package/.next/static/chunks/app/api/skills/route-5148173b3f55e415.js +0 -1
  239. package/.next/static/chunks/app/api/swarm/[id]/route-5148173b3f55e415.js +0 -1
  240. package/.next/static/chunks/app/api/swarm/route-5148173b3f55e415.js +0 -1
  241. package/.next/static/chunks/app/api/tests/route-5148173b3f55e415.js +0 -1
  242. package/.next/static/chunks/app/api/update/route-5148173b3f55e415.js +0 -1
  243. package/.next/static/chunks/app/api/version/route-5148173b3f55e415.js +0 -1
  244. package/.next/static/chunks/app/api/web-auth/route-5148173b3f55e415.js +0 -1
  245. package/.next/static/chunks/app/api/workspaces/route-5148173b3f55e415.js +0 -1
  246. package/.next/static/chunks/app/page-14379b8060d5cf07.js +0 -1
  247. package/.next/static/chunks/next/dist/client/components/builtin/app-error-5148173b3f55e415.js +0 -1
  248. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-5148173b3f55e415.js +0 -1
  249. package/.next/static/chunks/next/dist/client/components/builtin/not-found-5148173b3f55e415.js +0 -1
  250. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-5148173b3f55e415.js +0 -1
  251. package/.next/static/chunks/webpack-d1a69ad9edb38b11.js +0 -1
  252. package/.next/static/css/d0a0162cb481abe8.css +0 -1
  253. package/.next/types/app/api/swarm/[id]/route.ts +0 -353
  254. package/.next/types/app/api/swarm/route.ts +0 -353
  255. package/.next/types/app/api/tests/route.ts +0 -353
  256. package/assets/archive.png +0 -0
  257. package/assets/growth-1.png +0 -0
  258. package/assets/growth-2.png +0 -0
  259. package/assets/import.png +0 -0
  260. package/assets/main.png +0 -0
  261. package/assets/outline.png +0 -0
  262. package/assets/prompts-1.png +0 -0
  263. package/assets/prompts-2.png +0 -0
  264. package/assets/providers-1.png +0 -0
  265. package/assets/providers-2.png +0 -0
  266. package/assets/providers-3.png +0 -0
  267. package/assets/trace-1.png +0 -0
  268. package/assets/viewer-1.png +0 -0
  269. package/assets/viewer-2.png +0 -0
  270. package/scripts/managed-niubash-assets.mjs +0 -146
  271. package/scripts/prepare-niubash-packages.mjs +0 -182
  272. package/scripts/run-test-file.mjs +0 -34
  273. package/scripts/smoke-managed-niubash.mjs +0 -62
  274. package/scripts/verify-release-config.mjs +0 -24
  275. package/src/app/api/swarm/[id]/route.ts +0 -28
  276. package/src/app/api/swarm/route.ts +0 -24
  277. package/src/app/api/tests/route.ts +0 -27
  278. package/src/components/SwarmCoordinatorPod.tsx +0 -1021
  279. package/src/components/TestInspectorPod.tsx +0 -549
  280. package/src/lib/delegation.ts +0 -93
  281. package/src/lib/growth-rounds.ts +0 -84
  282. package/src/lib/managed-niubash.ts +0 -231
  283. package/src/lib/runtime-activity.ts +0 -27
  284. package/src/lib/session-import/lock.ts +0 -25
  285. package/src/lib/swarm-service.ts +0 -371
  286. package/src/lib/test-run-service.ts +0 -122
  287. package/src/lib/workflow.ts +0 -55
  288. /package/.next/static/{0t1jBUAuVaTFTXxRyIo3q → en03hnPiuro0rnf8QkFEe}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/tests/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/home/runner/work/PiWeb/PiWeb/src/app/api/tests/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=757,exports.ids=[757],exports.modules={65138:(a,b,c)=>{c.d(b,{ZUJ:()=>g});var d,e,f={};c.r(f),c.d(f,{ExtendsFalse:()=>df,ExtendsTrue:()=>dd,ExtendsUnion:()=>db,IsExtendsFalse:()=>dg,IsExtendsTrue:()=>de,IsExtendsTrueLike:()=>dh,IsExtendsUnion:()=>dc,Match:()=>di});var g={};c.r(g),c.d(g,{Any:()=>U,Array:()=>J,BigInt:()=>aK,Boolean:()=>aM,Call:()=>dV,Capitalize:()=>dZ,Codec:()=>ay,Conditional:()=>ed,Constructor:()=>M,ConstructorParameters:()=>eg,Cyclic:()=>ae,Decode:()=>az,DecodeBuilder:()=>ax,Dependent:()=>al,Encode:()=>aA,EncodeBuilder:()=>aw,Enum:()=>ao,Evaluate:()=>fo,Exclude:()=>ej,Extends:()=>dJ,ExtendsResult:()=>f,Extract:()=>em,Function:()=>O,Generic:()=>S,Identifier:()=>aO,Immutable:()=>aC,Index:()=>eq,Infer:()=>aj,InstanceType:()=>eF,Instantiate:()=>fl,Integer:()=>aR,Interface:()=>dA,Intersect:()=>aq,IsAny:()=>V,IsArray:()=>K,IsBigInt:()=>aL,IsBoolean:()=>aN,IsCall:()=>dW,IsCodec:()=>aB,IsConstructor:()=>N,IsCyclic:()=>af,IsDependent:()=>am,IsEnum:()=>ap,IsEnumValue:()=>an,IsFunction:()=>P,IsGeneric:()=>T,IsIdentifier:()=>aP,IsImmutable:()=>aD,IsInfer:()=>ak,IsInteger:()=>aS,IsIntersect:()=>ar,IsKind:()=>D,IsLiteral:()=>aW,IsNever:()=>X,IsNull:()=>aY,IsNumber:()=>a_,IsObject:()=>ab,IsOptional:()=>_,IsParameter:()=>a3,IsReadonly:()=>aH,IsRecord:()=>bD,IsRef:()=>R,IsRefine:()=>aJ,IsRest:()=>bF,IsSchema:()=>E,IsString:()=>a5,IsSymbol:()=>a1,IsTemplateLiteral:()=>da,IsThis:()=>bH,IsTuple:()=>be,IsUndefined:()=>bJ,IsUnion:()=>a7,IsUnknown:()=>ad,IsUnsafe:()=>ah,IsVoid:()=>bL,KeyOf:()=>eI,Literal:()=>aU,Lowercase:()=>d_,Mapped:()=>eL,Module:()=>fp,Never:()=>W,NonNullable:()=>eP,Null:()=>aX,Number:()=>a$,Object:()=>aa,Omit:()=>eS,Optional:()=>$,Parameter:()=>a2,Parameters:()=>eW,Partial:()=>eZ,Pick:()=>e0,Readonly:()=>aG,ReadonlyObject:()=>e3,ReadonlyType:()=>e4,Record:()=>by,RecordKey:()=>bB,RecordPattern:()=>bA,RecordValue:()=>bC,Ref:()=>Q,Refine:()=>aI,Required:()=>e7,Rest:()=>bE,ReturnType:()=>fa,Script:()=>fq,String:()=>a4,Symbol:()=>a0,TemplateLiteral:()=>c9,This:()=>bG,Tuple:()=>bd,Uncapitalize:()=>d1,Undefined:()=>bI,Union:()=>a6,Unknown:()=>ac,Unsafe:()=>ag,Uppercase:()=>d3,Void:()=>bK,With:()=>fd});let h={assign:0,create:0,clone:0,discard:0,update:0};function i(a){return Array.isArray(a)}function j(a){return"bigint"==typeof a}function k(a){return"boolean"==typeof a}function l(a){return"function"==typeof a}function m(a){return null===a}function n(a){return Number.isFinite(a)}function o(a){return p(a)&&!i(a)}function p(a){return"object"==typeof a&&!m(a)}function q(a){return"string"==typeof a}function r(a,b,c){return 0===a.length?c():b(a[0],a.slice(1))}function s(a){return"__proto__"===a||"constructor"===a||"prototype"===a}function t(a,b){return s(b)?Object.prototype.hasOwnProperty.call(a,b):b in a}function u(a){return Object.getOwnPropertyNames(a)}function v(a){return Object.values(a)}let w={immutableTypes:!1,maxErrors:8,maxInstantiationCount:128,useAcceleration:!0,exactOptionalPropertyTypes:!1,enumerableKind:!1,correctiveParse:!1,unionPrioritySort:!0};function x(a){return w.immutableTypes?Object.freeze(a):a}function y(a,b){return h.assign+=1,x({...a,...b})}function z(a){return h.clone+=1,function a(b){return globalThis.ArrayBuffer.isView(b)?b.slice():b instanceof globalThis.RegExp?new RegExp(b.source,b.flags):b instanceof globalThis.Map?new Map(a([...b.entries()])):b instanceof globalThis.Set?new Set(a([...b.values()])):i(b)?b.map(b=>a(b)):p(b)?function(b){return!function(a){if(!p(a))return!1;let b=globalThis.Object.getPrototypeOf(a);return!m(b)&&"function"==typeof b.constructor&&b.constructor!==globalThis.Object&&"Object"!==b.constructor.name}(b)?t(b,"~kind")||t(b,"~unsafe")?function(b){let c={};for(let d of u(b)){if(s(d))continue;let e=Object.getOwnPropertyDescriptor(b,d);(e.value=a(e.value),!0===e.enumerable)?c[d]=e.value:Object.defineProperty(c,d,e)}return c}(b):function(b){let c={};for(let d of u(b))s(d)||(c[d]=a(b[d]));for(let d of Object.getOwnPropertySymbols(b))c[d]=a(b[d]);return c}(b):b}(b):b}(a)}function A(a,b,c={}){h.create+=1;let d={...b,...c};return x(w.enumerableKind?{...d,...a}:function(a,b){for(let c of Object.keys(b))Object.defineProperty(a,c,{configurable:!0,writable:!0,enumerable:!1,value:b[c]});return a}(d,a))}function B(a,b){h.discard+=1;let c={};for(let d of u(a)){if(b.includes(d))continue;let e=Object.getOwnPropertyDescriptor(a,d);e.value=z(e.value),Object.defineProperty(c,d,e)}return x(c)}function C(a,b,c){h.update+=1;let d=z(a);for(let a of Object.keys(b))Object.defineProperty(d,a,{configurable:!0,writable:!0,enumerable:w.enumerableKind,value:b[a]});for(let a of Object.keys(c))Object.defineProperty(d,a,{configurable:!0,enumerable:!0,writable:!0,value:c[a]});return x(d)}function D(a,b){return p(a)&&t(a,"~kind")&&a["~kind"]===b}function E(a){return p(a)}function F(a,b,c){return A({"~kind":"Deferred"},{type:"deferred",action:a,parameters:b,options:c},{})}function G(a){return D(a,"Deferred")}function H(a,b){return C(C(a,{"~readonly":!0},{}),{},b)}function I(a,b){return C(C(a,{"~optional":!0},{}),{},b)}function J(a,b){return A({"~kind":"Array"},{type:"array",items:a},b)}function K(a){return D(a,"Array")}function L(a){return B(a,["~kind","type","items"])}function M(a,b,c={}){return A({"~kind":"Constructor"},{type:"constructor",parameters:a,instanceType:b},c)}function N(a){return D(a,"Constructor")}function O(a,b,c={}){return A({"~kind":"Function"},{type:"function",parameters:a,returnType:b},c)}function P(a){return D(a,"Function")}function Q(a,b){return A({"~kind":"Ref"},{$ref:a},b)}function R(a){return D(a,"Ref")}function S(a,b){return A({"~kind":"Generic"},{type:"generic",parameters:a,expression:b})}function T(a){return D(a,"Generic")}function U(a){return A({"~kind":"Any"},{},a)}function V(a){return D(a,"Any")}function W(a){return A({"~kind":"Never"},{not:{}},a)}function X(a){return D(a,"Never")}function Y(a,b={}){return F("AddOptional",[a],b)}function Z(a,b={}){return I(a,b)}function $(a){return Z(a)}function _(a){return p(a)&&t(a,"~optional")}function aa(a,b={}){let c=u(a).filter(b=>!_(a[b]));return A({"~kind":"Object"},{type:"object",...c.length>0?{required:c}:{},properties:a},b)}function ab(a){return D(a,"Object")}function ac(a){return A({"~kind":"Unknown"},{},a)}function ad(a){return D(a,"Unknown")}function ae(a,b,c){return A({"~kind":"Cyclic"},{$defs:u(a).reduce((b,c)=>({...b,[c]:C(a[c],{},{$id:c})}),{}),$ref:b},c)}function af(a){return D(a,"Cyclic")}function ag(a){return C(a,{"~unsafe":null},{})}function ah(a){return o(a)&&t(a,"~unsafe")&&m(a["~unsafe"])}function ai(a,b){return b[a.length]?.(...a)??(()=>{throw Error("Invalid Arguments")})()}function aj(...a){let[b,c]=ai(a,{2:(a,b)=>[a,b,b],1:a=>[a,ac(),ac()]});return A({"~kind":"Infer"},{type:"infer",name:b,extends:c},{})}function ak(a){return D(a,"Infer")}function al(a,b,c,d={}){return A({"~kind":"Dependent"},{if:a,then:b,else:c},d)}function am(a){return D(a,"Dependent")}function an(a){return q(a)||n(a)}function ao(a,b){return A({"~kind":"Enum"},{enum:o(a)?u(a).filter(a=>isNaN(a)).reduce((b,c)=>[...b,a[c]],[]):a},b)}function ap(a){return D(a,"Enum")}function aq(a,b={}){return A({"~kind":"Intersect"},{allOf:a},b)}function ar(a){return D(a,"Intersect")}(d=e||(e={}))[d.Array=0]="Array",d[d.BigInt=1]="BigInt",d[d.Boolean=2]="Boolean",d[d.Date=3]="Date",d[d.Constructor=4]="Constructor",d[d.Function=5]="Function",d[d.Null=6]="Null",d[d.Number=7]="Number",d[d.Object=8]="Object",d[d.RegExp=9]="RegExp",d[d.String=10]="String",d[d.Symbol=11]="Symbol",d[d.TypeArray=12]="TypeArray",d[d.Undefined=13]="Undefined",BigInt("14695981039346656037");let[as,at]=[BigInt("1099511628211"),BigInt("18446744073709551616")];Array.from({length:256}).map((a,b)=>BigInt(b));let au=new Float64Array(1);function av(){throw Error("Unreachable")}new DataView(au.buffer),new Uint8Array(au.buffer),new TextEncoder;class aw{constructor(a,b){this.type=a,this.decode=b}Encode(a){let b=this.type,c=aB(b)?a=>this.decode(b["~codec"].decode(a)):this.decode,d=aB(b)?c=>b["~codec"].encode(a(c)):a;return C(this.type,{"~codec":{decode:c,encode:d}},{})}}class ax{constructor(a){this.type=a}Decode(a){return new aw(this.type,a)}}function ay(a){return new ax(a)}function az(a,b){return ay(a).Decode(b).Encode(()=>{throw Error("Encode not implemented")})}function aA(a,b){return ay(a).Decode(()=>{throw Error("Decode not implemented")}).Encode(b)}function aB(a){return p(a)&&t(a,"~codec")&&p(a["~codec"])&&t(a["~codec"],"encode")&&t(a["~codec"],"decode")}function aC(a){return fn(a)}function aD(a){return p(a)&&t(a,"~immutable")}function aE(a,b={}){return F("AddReadonly",[a],b)}function aF(a,b={}){return H(a,b)}function aG(a){return aF(a)}function aH(a){return p(a)&&t(a,"~readonly")}function aI(...a){var b;let c,[d,e,f]=ai(a,{3:(a,b,c)=>[a,b,c],2:(a,b)=>[a,b,()=>"Refine Error"]});return b={check:e,error:f},c=aJ(d)?[...d["~refine"],b]:[b],C(d,{"~refine":c},{})}function aJ(a){var b,c;return p(a)&&t(a,"~refine")&&i(a["~refine"])&&(b=a["~refine"],c=a=>o(a)&&t(a,"check")&&t(a,"error")&&l(a.check)&&l(a.error),b.every((a,b)=>b<0||c(a)))}function aK(a){return A({"~kind":"BigInt"},{type:"bigint"},a)}function aL(a){return D(a,"BigInt")}function aM(a){return A({"~kind":"Boolean"},{type:"boolean"},a)}function aN(a){return D(a,"Boolean")}function aO(a){return A({"~kind":"Identifier"},{name:a})}function aP(a){return D(a,"Identifier")}let aQ="-?(?:0|[1-9][0-9]*)";function aR(a){return A({"~kind":"Integer"},{type:"integer"},a)}function aS(a){return D(a,"Integer")}class aT extends Error{constructor(a){super("Invalid Literal value"),Object.defineProperty(this,"cause",{value:{value:a},writable:!1,configurable:!1,enumerable:!1})}}function aU(a,b){return A({"~kind":"Literal"},{type:j(a)?"bigint":k(a)?"boolean":n(a)?"number":q(a)?"string":(()=>{throw new aT(a)})(),const:a},b)}function aV(a){return j(a)||k(a)||n(a)||q(a)}function aW(a){return D(a,"Literal")}function aX(a){return A({"~kind":"Null"},{type:"null"},a)}function aY(a){return D(a,"Null")}let aZ="-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?";function a$(a){return A({"~kind":"Number"},{type:"number"},a)}function a_(a){return D(a,"Number")}function a0(a){return A({"~kind":"Symbol"},{type:"symbol"},a)}function a1(a){return D(a,"Symbol")}function a2(...a){let[b,c,d]=ai(a,{3:(a,b,c)=>[a,b,c],2:(a,b)=>[a,b,b],1:a=>[a,ac(),ac()]});return A({"~kind":"Parameter"},{name:b,extends:c,equals:d},{})}function a3(a){return D(a,"Parameter")}function a4(a){return A({"~kind":"String"},{type:"string"},a)}function a5(a){return D(a,"String")}function a6(a,b={}){return A({"~kind":"Union"},{anyOf:a},b)}function a7(a){return D(a,"Union")}function a8(a){let b=c0(a);return 2===b.length?b[0]:[]}function a9(a){return 0!==a.length&&function a(b){return r(b,(b,c)=>{var d;return!!(a7(d=b)?a9(d.anyOf):!!aW(d)&&(d.const,!0))&&a(c)},()=>!0)}(a)}function ba(a){return A({"~kind":"TemplateLiteral"},{type:"string",pattern:a},{})}function bb(a){var b;let c=a8(a);return 0===c.length?a4():a9(c)?0===(b=c).length?av():1===b.length&&aW(b[0])?b[0]:a6((function a(b,c){return r(c,(c,d)=>a(function a(b,c){var d,e;return a7(c)?function b(c,d,e=[]){return r(d,(d,f)=>b(c,f,[...e,...a(c,d)]),()=>e)}(b,c.anyOf):aW(c)?(d=b,e=c.const,0===d.length?[`${e}`]:function a(b,c,d=[]){return r(b,(b,e)=>a(e,c,[...d,`${b}${c}`]),()=>d)}(d,e)):av()}(b,c),d),()=>b)})([],b).map(a=>aU(a))):ba(a)}function bc(a,b){return A({"~kind":"Record"},{type:"object",patternProperties:{[a]:b}})}function bd(a,b={}){let[c,d,e]=[a,a.length,!1];return A({"~kind":"Tuple"},{type:"array",additionalItems:e,items:c,minItems:d},b)}function be(a){return D(a,"Tuple")}function bf(a,b){return C(B(a,["~readonly"]),{},b)}function bg(a,b){return C(B(a,["~optional"]),{},b)}function bh(a,b={}){return bg(a,b)}function bi(a){return a.reduceRight((a,b,c)=>({[c]:b,...a}),{})}function bj(a){return ab(a)?a.properties:be(a)?bi(a.items):{}}function bk(a,b){let c=bq(a);return bp(function a(b,c,d=[]){return r(b,(b,e)=>a(e,c,[...d,...dh(dJ({},b,c))?[]:[b]]),()=>d)}(a7(c)?c.anyOf:[c],b))}function bl(a,b,c){return bp([bn([a,b]),bk(c,a)])}function bm(a,b=[]){return r(a,(a,c)=>bm(c,[...b,aU(a)]),()=>bp(b))}function bn(a){return bp(bs(dO(function a(b,c=[]){return r(b,(b,d)=>a7(b)?a(d,function b(c,d,e=[]){return r(c,(c,f)=>b(f,d,[...e,...a([c],d)]),()=>e)}(b.anyOf,c)):a(d,function a(b,c,d=[]){return r(c,(c,e)=>{var f,g;let h,i,j,k,l,m,n;return a(b,e,[...d,(h=bq(c),(i=bq(b),a7(h)||a7(i))?bn([h,i]):X(h)||V(h)?h:ad(h)||X(i)||V(i)?i:ad(i)?h:(j=ab(h)||be(h),k=ab(i)||be(i),j&&k?(l=bj(h),aa((m=bj(i),[...new Set([...u(l),...u(m)])].reduce((a,b)=>{var c,d;let e,f,g;return{...a,[b]:b in l?b in m?(c=l[b],d=m[b],e=!!aH(c)&&!!aH(d),f=!!_(c)&&!!_(d),g=function(a,b={}){return bf(a,b)}(bh(bn([c,d]))),e&&f?aF(Z(g)):e&&!f?aF(g):!e&&f?Z(g):g):l[b]:b in m?m[b]:W()}},{})))):j&&!k?h:!j&&k?i:(n=dN(f=h,g=i))===dL?f:n===dM||n===dK?g:W()))])},()=>0===d.length?[b]:d)}(b,c)),()=>c)}(a))))}function bo(a){let b;return bq(da(b=bb(a))?a4():b)}function bp(a){return br(bs(dO(a)))}function bq(a){return am(a)?bl(a.if,a.then,a.else):ap(a)?bm(a.enum):ar(a)?bn(a.allOf):da(a)?bo(a.pattern):a7(a)?bp(a.anyOf):a}function br(a){return 1===a.length?a[0]:0===a.length?W():a6(a)}function bs(a,b=[]){return r(a,(a,c)=>bs(c,[...b,...a7(a)?bs(a.anyOf):[a]]),()=>b)}function bt(a,b,c){return fg([a])?C(function a(b,c){var d,e,f,g,h,i;return V(b)?bc(bw,c):aN(b)?aa({true:c,false:c}):ap(b)?(d=b.enum,a(bm(d),c)):aS(b)?bc(bu,c):ar(b)?(e=b.allOf,a(bn(e),c)):aW(b)?(f=b.const,g=c,q(f)||n(f)?aa({[f]:g}):!1===f?aa({false:g}):!0===f?aa({true:g}):aa({})):a_(b)?bc(bv,c):a7(b)?function(a,b){var c,d;let e=bs(a),f=(c=e,d=b,!0===c.some(a=>a5(a)||a_(a)||aS(a))?bc(bw,d):void 0);return p(f)?f:aa(e.reduce((a,c)=>aW(c)&&(q(c.const)||n(c.const))?{...a,[c.const]:b}:a,{}))}(b.anyOf,c):a5(b)?t(b,"pattern")&&(q(b.pattern)||b.pattern instanceof RegExp)?bc(b.pattern.toString(),c):bc(bw,c):da(b)?(h=b.pattern,i=c,a9(a8(h))?a(bo(h),i):bc(h,i)):aa({})}(a,b),{},c):bx(a,b,c)}let bu=`^${aQ}$`,bv=`^${aZ}$`,bw="^.*$";function bx(a,b,c={}){return F("Record",[a,b],c)}function by(a,b,c={}){return bt(a,b,c)}function bz(a){return a===bw?a4():a===bu?aR():a===bv?a$():bb(a)}function bA(a){return u(a.patternProperties)[0]}function bB(a){return bz(bA(a))}function bC(a){return a.patternProperties[bA(a)]}function bD(a){return D(a,"Record")}function bE(a){return A({"~kind":"Rest"},{type:"rest",items:a},{})}function bF(a){return D(a,"Rest")}function bG(a){return A({"~kind":"This"},{$ref:"#"},a)}function bH(a){return D(a,"This")}function bI(a){return A({"~kind":"Undefined"},{type:"undefined"},a)}function bJ(a){return D(a,"Undefined")}function bK(a){return A({"~kind":"Void"},{type:"void"},a)}function bL(a){return D(a,"Void")}function bM(){throw Error("Unreachable")}function bN(a){return 3===a.length?[a[0],...function a(b,c=[]){return r(b,(b,d)=>a(d,[...c,b[1]]),()=>c)}(a[1])]:[]}function bO(a,b){return b.reduce((a,b)=>1===b.length?ep(a,b[0]):0===b.length?J(a):bM(),a)}function bP(a,b){return 3===b.length?ec(a,b[0],b[1],b[2]):a}function bQ(a,b){return 3===b.length?(()=>{let[c,d,e]=b,f=bQ(d,e);return"&"===c?ar(f)?aq([a,...f.allOf]):aq([a,f]):"|"===c?a7(f)?a6([a,...f.anyOf]):a6([a,f]):void bM()})():a}function bR(a){return a.reduce((a,b)=>t(b,bu)||t(b,bv)||t(b,bw)?[a[0],y(a[1],b)]:[y(a[0],b),a[1]],[{},{}])}function bS(a,b){return"remove"===a?function(a,b={}){return F("RemoveReadonly",[a],b)}(b):"add"===a?aE(b):b}function bT(a,b){return"remove"===a?function(a,b={}){return F("RemoveOptional",[a],b)}(b):"add"===a?Y(b):b}function bU(a){return 2===a.length}function bV(a,b,c){return bU(a)?b(a[0],a[1]):c()}function bW(a,b){for(let e=0;e<a.length;e++){var c,d;let f=(c=a[e],0===(d=b).indexOf(c)?[c,d.slice(c.length)]:[]);if(bU(f))return f}return[]}function bX(a,b){return Array.from({length:b-a+1},(b,c)=>String.fromCharCode(a+c))}let bY=[...bX(97,122),...bX(65,90)],bZ=bX(49,57),b$=["0",...bZ];function b_(a){let b=a.indexOf("*/");return -1===b?"":a.slice(b+2)}function b0(a){let b=a.indexOf("\n");return -1===b?"":a.slice(b)}function b1(a){let b=a.trimStart();return b.startsWith("/*")?b1(b_(b.slice(2))):b.startsWith("//")?b1(b0(b.slice(2))):b}function b2(a,b){return bV(bW([a],b),(a,b)=>[a,b],()=>["",b])}function b3(a,b,c,d=""){return bV(bW(a,c),(c,e)=>b.includes(c)?b3(a,b,e,d):b3(a,b,e,`${d}${c}`),()=>[d,c])}let b4=[...b$,"_"];function b5(a){var b;return bV(bW(["0"],b=b1(a)),(a,b)=>[a,b],()=>bV(bW(bZ,b),(a,b)=>bV(b3(b4,["_"],b),(b,c)=>[`${a}${b}`,c],()=>[]),()=>[]))}function b6(a){return bV(bV(b2("-",b1(a)),(a,b)=>bV(b5(b),(b,c)=>[`${a}${b}`,c],()=>[]),()=>[]),(a,b)=>bV(bW(["n"],b),(b,c)=>[`${a}`,c],()=>[]),()=>[])}function b7(a,b){return""===a?["",b]:a.startsWith("\n")?bW([a],function a(b){let c=b.replace(/^[ \t\r\f\v]+/,"");return c.startsWith("/*")?a(b_(c.slice(2))):c.startsWith("//")?a(b0(c.slice(2))):c}(b)):a.startsWith(" ")?bW([a],b):bW([a],b1(b))}let b8=[...bY,"_","$"],b9=[...b8,...b$];function ca(a){return bV(bW(b8,b1(a)),(a,b)=>bV(function a(b,c=""){return bV(bW(b9,b),(b,d)=>a(d,`${c}${b}`),()=>[c,b])}(b),(b,c)=>[`${a}${b}`,c],()=>[]),()=>[])}let cb=[...b$,"_"];function cc(a){return bV(b3(cb,["_"],a),(a,b)=>""===a?[]:[a,b],()=>[])}function cd(a){return bV(b2("-",b1(a)),(a,b)=>{var c;return bV(bU(bW(["."],c=b1(b)))?bV(bW(["."],c),(a,b)=>bV(cc(b),(b,c)=>[`0${a}${b}`,c],()=>[]),()=>[]):bV(b5(c),(a,b)=>bV(bW(["."],b),(b,c)=>bV(cc(c),(c,d)=>[`${a}${b}${c}`,d],()=>[`${a}`,c]),()=>[`${a}`,b]),()=>[]),(b,c)=>[`${a}${b}`,c],()=>[])},()=>[])}function ce(a,b,c=""){var d;return bV(""===(d=b)?[]:[d.slice(0,1),d.slice(1)],(d,e)=>!function a(b,c){return r(b,(b,d)=>!!c.startsWith(b)||a(d,c),()=>!1)}(a,b)?ce(a,e,`${c}${d}`):[c,b],()=>[])}function cf(a,b){return bV(bW(a,b1(b)),(a,b)=>{var c;return c=`${a}${b}`,bV(bW([a],b1(c)),(b,c)=>bV(ce(["\n",a],c),(b,c)=>bV(bW([a],c),(a,c)=>[`${b}`,c],()=>[]),()=>[]),()=>[])},()=>[])}let cg=(a,b,c=()=>[])=>2===a.length?b(a):c(),ch=a=>cg(cg(cg(cg(ca(a),([a,b])=>cg(b7("extends",b),([b,c])=>cg(cz(c),([c,d])=>cg(b7("=",d),([d,e])=>cg(cz(e),([e,f])=>[[a,b,c,d,e],f]))))),([a,b])=>[a2(a[0],a[2],a[4]),b]),([a,b])=>[a,b],()=>cg(cg(cg(ca(a),([a,b])=>cg(b7("extends",b),([b,c])=>cg(cz(c),([c,d])=>[[a,b,c],d]))),([a,b])=>[a2(a[0],a[2],a[2]),b]),([a,b])=>[a,b],()=>cg(cg(cg(ca(a),([a,b])=>cg(b7("=",b),([b,c])=>cg(cz(c),([c,d])=>[[a,b,c],d]))),([a,b])=>[a2(a[0],ac(),a[2]),b]),([a,b])=>[a,b],()=>cg(cg(ca(a),([a,b])=>[a2(a,ac(),ac()),b]),([a,b])=>[a,b],()=>[])))),([a,b])=>[a,b]),ci=(a,b=[])=>cg(cg(b7(",",a),([a,b])=>cg(ch(b),([b,c])=>[[a,b],c])),([a,c])=>ci(c,[...b,a]),()=>[b,a]),cj=a=>cg(cg(b7("<",a),([a,b])=>cg(cg(cg(cg(ch(b),([a,b])=>cg(ci(b),([b,c])=>cg(cg(b7(",",c),([a,b])=>[[a],b],()=>[[],c]),([c,d])=>[[a,b,c],d]))),([a,b])=>[a,b],()=>cg([[],b],([a,b])=>[a,b],()=>[])),([a,b])=>[bN(a),b]),([b,c])=>cg(b7(">",c),([c,d])=>[[a,b,c],d]))),([a,b])=>[a[1],b]),ck=(a,b=[])=>cg(cg(b7(",",a),([a,b])=>cg(cz(b),([b,c])=>[[a,b],c])),([a,c])=>ck(c,[...b,a]),()=>[b,a]),cl=a=>cg(cg(cg(b7(";",a),([a,b])=>[[a],b]),([a,b])=>[a,b],()=>cg([[],a],([a,b])=>[a,b],()=>[])),([a,b])=>[null,b]),cm=a=>cg(b7("string",a),([a,b])=>[a4(),b]),cn=a=>cg(b7("number",a),([a,b])=>[a$(),b]),co=a=>cg(b7("integer",a),([a,b])=>[aR(),b]),cp=a=>cg(b7("symbol",a),([a,b])=>[a0(),b]),cq=a=>cg(ce(["${","`"],a),([a,b])=>[aU(a),b]),cr=a=>cg(cg(cg(cq(a),([a,b])=>cg(cg(cg(b7("${",b),([a,b])=>cg(cz(b),([b,c])=>cg(b7("}",c),([c,d])=>[[a,b,c],d]))),([a,b])=>[a[1],b]),([b,c])=>cg(cr(c),([c,d])=>[[a,b,c],d]))),([a,b])=>[a,b],()=>cg(cg(cq(a),([a,b])=>[[a],b]),([a,b])=>[a,b],()=>cg(cg(cq(a),([a,b])=>[[a],b]),([a,b])=>[a,b],()=>[]))),([a,b])=>{var c;return[3===(c=a).length?[c[0],c[1],...c[2]]:[c[0]],b]}),cs=a=>cg(cg(b7("`",a),([a,b])=>cg(cr(b),([b,c])=>cg(b7("`",c),([c,d])=>[[a,b,c],d]))),([a,b])=>[a[1],b]),ct=(a,b=[])=>cg(cg(cg(b7("[",a),([a,b])=>cg(cz(b),([b,c])=>cg(b7("]",c),([c,d])=>[[a,b,c],d]))),([a,b])=>[a,b],()=>cg(cg(b7("[",a),([a,b])=>cg(b7("]",b),([b,c])=>[[a,b],c])),([a,b])=>[a,b],()=>[])),([a,c])=>ct(c,[...b,a]),()=>[b,a]),cu=a=>cg(cg(cg(cg(cg(b7("keyof",a),([a,b])=>[[a],b]),([a,b])=>[a,b],()=>cg([[],a],([a,b])=>[a,b],()=>[])),([a,b])=>[a.length>0,b]),([a,b])=>cg(cg(cg(cg(b7("(",b),([a,b])=>cg(cz(b),([b,c])=>cg(b7(")",c),([c,d])=>[[a,b,c],d]))),([a,b])=>[a,b],()=>cg(cm(b),([a,b])=>[a,b],()=>cg(cn(b),([a,b])=>[a,b],()=>cg(cg(b7("boolean",b),([a,b])=>[aM(),b]),([a,b])=>[a,b],()=>cg(cg(b7("undefined",b),([a,b])=>[bI(),b]),([a,b])=>[a,b],()=>cg(cg(b7("null",b),([a,b])=>[aX(),b]),([a,b])=>[a,b],()=>cg(co(b),([a,b])=>[a,b],()=>cg(cg(b7("bigint",b),([a,b])=>[aK(),b]),([a,b])=>[a,b],()=>cg(cg(b7("unknown",b),([a,b])=>[ac(),b]),([a,b])=>[a,b],()=>cg(cg(b7("any",b),([a,b])=>[U(),b]),([a,b])=>[a,b],()=>cg(cg(b7("object",b),([a,b])=>[aa({}),b]),([a,b])=>[a,b],()=>cg(cg(b7("never",b),([a,b])=>[W(),b]),([a,b])=>[a,b],()=>cg(cp(b),([a,b])=>[a,b],()=>cg(cg(b7("void",b),([a,b])=>[bK(),b]),([a,b])=>[a,b],()=>cg(cg(b7("this",b),([a,b])=>[bG(),b]),([a,b])=>[a,b],()=>cg(cg(b6(b),([a,b])=>[aU(BigInt(a)),b]),([a,b])=>[a,b],()=>cg(cg(cg(b7("true",b),([a,b])=>[a,b],()=>cg(b7("false",b),([a,b])=>[a,b],()=>[])),([a,b])=>[aU("true"===a),b]),([a,b])=>[a,b],()=>cg(cg(cd(b),([a,b])=>[aU(parseFloat(a)),b]),([a,b])=>[a,b],()=>cg(cg(cf(["'",'"'],b),([a,b])=>[aU(a),b]),([a,b])=>[a,b],()=>cg(cg(cs(b),([a,b])=>[c8(a),b]),([a,b])=>[a,b],()=>cg(cg(cg(cg(b7("if",b),([a,b])=>cg(cz(b),([b,c])=>cg(b7("then",c),([c,d])=>cg(cz(d),([d,e])=>cg(b7("else",e),([e,f])=>cg(cz(f),([f,g])=>[[a,b,c,d,e,f],g])))))),([a,b])=>[a,b],()=>cg(cg(b7("if",b),([a,b])=>cg(cz(b),([b,c])=>cg(b7("then",c),([c,d])=>cg(cz(d),([d,e])=>[[a,b,c,d],e])))),([a,b])=>[a,b],()=>[])),([a,b])=>[6===a.length?al(a[1],a[3],a[5]):al(a[1],a[3],ac()),b]),([a,b])=>[a,b],()=>cg(cH(b),([a,b])=>[a,b],()=>cg(cL(b),([a,b])=>[a,b],()=>cg(cR(b),([a,b])=>[a,b],()=>cg(cQ(b),([a,b])=>[a,b],()=>cg(cS(b),([a,b])=>[a,b],()=>cg(cg(cg(ca(b),([a,b])=>cg(cg(cg(b7("<",b),([a,b])=>cg(cg(cg(cg(cz(b),([a,b])=>cg(ck(b),([b,c])=>cg(cg(b7(",",c),([a,b])=>[[a],b],()=>[[],c]),([c,d])=>[[a,b,c],d]))),([a,b])=>[a,b],()=>cg([[],b],([a,b])=>[a,b],()=>[])),([a,b])=>[bN(a),b]),([b,c])=>cg(b7(">",c),([c,d])=>[[a,b,c],d]))),([a,b])=>[a[1],b]),([b,c])=>[[a,b],c])),([a,b])=>{var c,d;return[(c=a[0],d=a[1],"Array"===c?J(d[0]):"Capitalize"===c?dY(d[0]):"ConstructorParameters"===c?ef(d[0]):"Evaluate"===c?function(a,b={}){return F("Evaluate",[a],b)}(d[0]):"Exclude"===c?ei(d[0],d[1]):"Extract"===c?el(d[0],d[1]):"Index"===c?ep(d[0],d[1]):"InstanceType"===c?eE(d[0]):"Lowercase"===c?d$(d[0]):"NonNullable"===c?eO(d[0]):"Omit"===c?eR(d[0],d[1]):"Parameters"===c?eV(d[0]):"Partial"===c?eY(d[0]):"Pick"===c?e_(d[0],d[1]):"Readonly"===c?e2(d[0]):"KeyOf"===c?eH(d[0]):"Record"===c?bx(d[0],d[1]):"Required"===c?e6(d[0]):"ReturnType"===c?e9(d[0]):"Uncapitalize"===c?d0(d[0]):"Uppercase"===c?d2(d[0]):dU(Q(c),d)),b]}),([a,b])=>[a,b],()=>cg(cT(b),([a,b])=>[a,b],()=>[])))))))))))))))))))))))))))),([a,b])=>[i(a)&&3===a.length?a[1]:a,b]),([b,c])=>cg(cg(ct(c),([a,b])=>[a.reduce((a,b)=>3===b.length?[...a,[b[1]]]:[...a,[]],[]),b]),([c,d])=>cg(cg(cg(cg(b7("extends",d),([a,b])=>cg(cz(b),([b,c])=>cg(b7("?",c),([c,d])=>cg(cz(d),([d,e])=>cg(b7(":",e),([e,f])=>cg(cz(f),([f,g])=>[[a,b,c,d,e,f],g])))))),([a,b])=>[a,b],()=>cg([[],d],([a,b])=>[a,b],()=>[])),([a,b])=>[6===a.length?[a[1],a[3],a[5]]:[],b]),([d,e])=>cg(cg(cg(cg(b7("with",e),([a,b])=>cg(cW(b),([b,c])=>[[a,b],c])),([a,b])=>[a,b],()=>cg([[],e],([a,b])=>[a,b],()=>[])),([a,b])=>[2===a.length?a[1]:[],b]),([e,f])=>[[a,b,c,d,e],f]))))),([a,b])=>[function(a){let[b,c,d,e,f]=a;var g=b?bP(eH(bO(c,d)),e):bP(bO(c,d),e);return i(f)&&0===f.length?g:fc(g,f)}(a),b]),cv=a=>cg(cg(cg(b7("&",a),([a,b])=>cg(cu(b),([b,c])=>cg(cv(c),([c,d])=>[[a,b,c],d]))),([a,b])=>[a,b],()=>cg([[],a],([a,b])=>[a,b],()=>[])),([a,b])=>[a,b]),cw=a=>cg(cg(cu(a),([a,b])=>cg(cv(b),([b,c])=>[[a,b],c])),([a,b])=>[function(a){let[b,c]=a;return bQ(b,c)}(a),b]),cx=a=>cg(cg(cg(b7("|",a),([a,b])=>cg(cw(b),([b,c])=>cg(cx(c),([c,d])=>[[a,b,c],d]))),([a,b])=>[a,b],()=>cg([[],a],([a,b])=>[a,b],()=>[])),([a,b])=>[a,b]),cy=a=>cg(cg(cw(a),([a,b])=>cg(cx(b),([b,c])=>[[a,b],c])),([a,b])=>[function(a){let[b,c]=a;return bQ(b,c)}(a),b]),cz=a=>cg(cg(cg(cg(cg(b7("infer",a),([a,b])=>cg(ca(b),([b,c])=>cg(b7("extends",c),([c,d])=>cg(cy(d),([d,e])=>[[a,b,c,d],e])))),([a,b])=>[a,b],()=>cg(cg(b7("infer",a),([a,b])=>cg(ca(b),([b,c])=>[[a,b],c])),([a,b])=>[a,b],()=>[])),([a,b])=>[4===a.length?aj(a[1],a[3]):2===a.length?aj(a[1],ac()):bM(),b]),([a,b])=>[a,b],()=>cg(cg(cg(b7("|",a),([a,b])=>cg(cy(b),([b,c])=>[[a,b],c])),([a,b])=>[a[1],b]),([a,b])=>[a,b],()=>cg(cg(cg(b7("readonly",a),([a,b])=>cg(cy(b),([b,c])=>[[a,b],c])),([a,b])=>[function(a,b={}){return F("AddImmutable",[a],b)}(a[1]),b]),([a,b])=>[a,b],()=>cg(cy(a),([a,b])=>[a,b],()=>[])))),([a,b])=>[a,b]),cA=a=>cg(cg(cg(cd(a),([a,b])=>[`${a}`,b]),([a,b])=>[a,b],()=>cg(cg(ca(a),([a,b])=>[a,b]),([a,b])=>[a,b],()=>cg(cg(cf(["'",'"'],a),([a,b])=>[a,b]),([a,b])=>[a,b],()=>cg(cg(cg(b7("[",a),([a,b])=>cg(ca(b),([b,c])=>cg(b7(":",c),([c,d])=>cg(cg(co(d),([a,b])=>[a,b],()=>cg(cn(d),([a,b])=>[a,b],()=>cg(cm(d),([a,b])=>[a,b],()=>cg(cp(d),([a,b])=>[a,b],()=>[])))),([d,e])=>cg(b7("]",e),([e,f])=>[[a,b,c,d,e],f]))))),([a,b])=>[aS(a[3])?bu:a_(a[3])?bv:a1(a[3])||a5(a[3])?bw:bM(),b]),([a,b])=>[a,b],()=>[])))),([a,b])=>[a,b]),cB=a=>cg(cg(cg(b7("readonly",a),([a,b])=>[[a],b]),([a,b])=>[a,b],()=>cg([[],a],([a,b])=>[a,b],()=>[])),([a,b])=>[a.length>0,b]),cC=a=>cg(cg(cg(b7("?",a),([a,b])=>[[a],b]),([a,b])=>[a,b],()=>cg([[],a],([a,b])=>[a,b],()=>[])),([a,b])=>[a.length>0,b]),cD=a=>cg(cg(cB(a),([a,b])=>cg(cA(b),([b,c])=>cg(cC(c),([c,d])=>cg(b7(":",d),([d,e])=>cg(cz(e),([e,f])=>[[a,b,c,d,e],f]))))),([a,b])=>[function(a){let[b,c,d,e,f]=a;return{[c]:b&&d?aE(Y(f)):b&&!d?aE(f):!b&&d?Y(f):f}}(a),b]),cE=a=>cg(cg(cg(b7(",",a),([a,b])=>cg(b7("\n",b),([b,c])=>[[a,b],c])),([a,b])=>[a,b],()=>cg(cg(b7(";",a),([a,b])=>cg(b7("\n",b),([b,c])=>[[a,b],c])),([a,b])=>[a,b],()=>cg(cg(b7(",",a),([a,b])=>[[a],b]),([a,b])=>[a,b],()=>cg(cg(b7(";",a),([a,b])=>[[a],b]),([a,b])=>[a,b],()=>cg(cg(b7("\n",a),([a,b])=>[[a],b]),([a,b])=>[a,b],()=>[]))))),([a,b])=>[a,b]),cF=(a,b=[])=>cg(cg(cE(a),([a,b])=>cg(cD(b),([b,c])=>[[a,b],c])),([a,c])=>cF(c,[...b,a]),()=>[b,a]),cG=a=>cg(cg(b7("{",a),([a,b])=>cg(cg(cg(cg(cD(b),([a,b])=>cg(cF(b),([b,c])=>cg(cg(cE(c),([a,b])=>[[a],b],()=>[[],c]),([c,d])=>[[a,b,c],d]))),([a,b])=>[a,b],()=>cg([[],b],([a,b])=>[a,b],()=>[])),([a,b])=>[bN(a),b]),([b,c])=>cg(b7("}",c),([c,d])=>[[a,b,c],d]))),([a,b])=>[bR(a[1]),b]),cH=a=>cg(cG(a),([a,b])=>[function(a){let[b,c]=a;return aa(b,0===u(c).length?{}:{patternProperties:c})}(a),b]),cI=a=>cg(cg(cg(cg(cg(ca(a),([a,b])=>cg(b7("?",b),([b,c])=>cg(b7(":",c),([c,d])=>cg(b7("readonly",d),([d,e])=>cg(cz(e),([e,f])=>[[a,b,c,d,e],f]))))),([a,b])=>[a,b],()=>cg(cg(ca(a),([a,b])=>cg(b7(":",b),([b,c])=>cg(b7("readonly",c),([c,d])=>cg(cz(d),([d,e])=>[[a,b,c,d],e])))),([a,b])=>[a,b],()=>cg(cg(ca(a),([a,b])=>cg(b7("?",b),([b,c])=>cg(b7(":",c),([c,d])=>cg(cz(d),([d,e])=>[[a,b,c,d],e])))),([a,b])=>[a,b],()=>cg(cg(ca(a),([a,b])=>cg(b7(":",b),([b,c])=>cg(cz(c),([c,d])=>[[a,b,c],d]))),([a,b])=>[a,b],()=>[])))),([a,b])=>[5===a.length?aE(Y(a[4])):3===a.length?a[2]:4===a.length?"readonly"===a[2]?aE(a[3]):Y(a[3]):bM(),b]),([a,b])=>[a,b],()=>cg(cg(cB(a),([a,b])=>cg(cz(b),([b,c])=>cg(cC(c),([c,d])=>[[a,b,c],d]))),([a,b])=>[a,b],()=>[])),([a,b])=>[function(a){if(!i(a)||3!==a.length)return a;let[b,c,d]=a;return b&&d?aE(Y(c)):b&&!d?aE(c):!b&&d?Y(c):c}(a),b]),cJ=a=>cg(cg(cg(b7("...",a),([a,b])=>cg(cI(b),([b,c])=>[[a,b],c])),([a,b])=>[a,b],()=>cg(cg(cI(a),([a,b])=>[[a],b]),([a,b])=>[a,b],()=>[])),([a,b])=>{var c;return[2===(c=a).length?bE(c[1]):1===c.length?c[0]:bM(),b]}),cK=(a,b=[])=>cg(cg(b7(",",a),([a,b])=>cg(cJ(b),([b,c])=>[[a,b],c])),([a,c])=>cK(c,[...b,a]),()=>[b,a]),cL=a=>cg(cg(b7("[",a),([a,b])=>cg(cg(cg(cg(cJ(b),([a,b])=>cg(cK(b),([b,c])=>cg(cg(b7(",",c),([a,b])=>[[a],b],()=>[[],c]),([c,d])=>[[a,b,c],d]))),([a,b])=>[a,b],()=>cg([[],b],([a,b])=>[a,b],()=>[])),([a,b])=>[bN(a),b]),([b,c])=>cg(b7("]",c),([c,d])=>[[a,b,c],d]))),([a,b])=>[bd(a[1]),b]),cM=a=>cg(cg(cg(cg(ca(a),([a,b])=>cg(b7("?",b),([b,c])=>cg(b7(":",c),([c,d])=>cg(b7("readonly",d),([d,e])=>cg(cz(e),([e,f])=>[[a,b,c,d,e],f]))))),([a,b])=>[aE(Y(a[4])),b]),([a,b])=>[a,b],()=>cg(cg(cg(ca(a),([a,b])=>cg(b7(":",b),([b,c])=>cg(b7("readonly",c),([c,d])=>cg(cz(d),([d,e])=>[[a,b,c,d],e])))),([a,b])=>[aE(a[3]),b]),([a,b])=>[a,b],()=>cg(cg(cg(ca(a),([a,b])=>cg(b7("?",b),([b,c])=>cg(b7(":",c),([c,d])=>cg(cz(d),([d,e])=>[[a,b,c,d],e])))),([a,b])=>[Y(a[3]),b]),([a,b])=>[a,b],()=>cg(cg(cg(ca(a),([a,b])=>cg(b7(":",b),([b,c])=>cg(cz(c),([c,d])=>[[a,b,c],d]))),([a,b])=>[a[2],b]),([a,b])=>[a,b],()=>[])))),([a,b])=>[a,b]),cN=a=>cg(cg(cg(b7("...",a),([a,b])=>cg(cM(b),([b,c])=>[[a,b],c])),([a,b])=>[a,b],()=>cg(cg(cM(a),([a,b])=>[[a],b]),([a,b])=>[a,b],()=>[])),([a,b])=>{var c;return[2===(c=a).length?bE(c[1]):1===c.length?c[0]:bM(),b]}),cO=(a,b=[])=>cg(cg(b7(",",a),([a,b])=>cg(cN(b),([b,c])=>[[a,b],c])),([a,c])=>cO(c,[...b,a]),()=>[b,a]),cP=a=>cg(cg(cg(cN(a),([a,b])=>cg(cO(b),([b,c])=>cg(cg(b7(",",c),([a,b])=>[[a],b],()=>[[],c]),([c,d])=>[[a,b,c],d]))),([a,b])=>[a,b],()=>cg([[],a],([a,b])=>[a,b],()=>[])),([a,b])=>[bN(a),b]),cQ=a=>cg(cg(b7("(",a),([a,b])=>cg(cP(b),([b,c])=>cg(b7(")",c),([c,d])=>cg(b7("=>",d),([d,e])=>cg(cz(e),([e,f])=>[[a,b,c,d,e],f]))))),([a,b])=>[O(a[1],a[4]),b]),cR=a=>cg(cg(b7("new",a),([a,b])=>cg(b7("(",b),([b,c])=>cg(cP(c),([c,d])=>cg(b7(")",d),([d,e])=>cg(b7("=>",e),([e,f])=>cg(cz(f),([f,g])=>[[a,b,c,d,e,f],g])))))),([a,b])=>[M(a[2],a[5]),b]),cS=a=>cg(cg(b7("{",a),([a,b])=>cg(cg(cg(cg(b7("+",b),([a,b])=>cg(b7("readonly",b),([b,c])=>[[a,b],c])),([a,b])=>[a,b],()=>cg(cg(b7("-",b),([a,b])=>cg(b7("readonly",b),([b,c])=>[[a,b],c])),([a,b])=>[a,b],()=>cg(cg(b7("readonly",b),([a,b])=>[[a],b]),([a,b])=>[a,b],()=>cg([[],b],([a,b])=>[a,b],()=>[])))),([a,b])=>[2===a.length&&"-"===a[0]?"remove":2===a.length&&"+"===a[0]||1===a.length?"add":"none",b]),([b,c])=>cg(b7("[",c),([c,d])=>cg(ca(d),([d,e])=>cg(b7("in",e),([e,f])=>cg(cz(f),([f,g])=>cg(cg(cg(cg(b7("as",g),([a,b])=>cg(cz(b),([b,c])=>[[a,b],c])),([a,b])=>[a,b],()=>cg([[],g],([a,b])=>[a,b],()=>[])),([a,b])=>[2===a.length?[a[1]]:[],b]),([g,h])=>cg(b7("]",h),([h,i])=>cg(cg(cg(cg(b7("+",i),([a,b])=>cg(b7("?",b),([b,c])=>[[a,b],c])),([a,b])=>[a,b],()=>cg(cg(b7("-",i),([a,b])=>cg(b7("?",b),([b,c])=>[[a,b],c])),([a,b])=>[a,b],()=>cg(cg(b7("?",i),([a,b])=>[[a],b]),([a,b])=>[a,b],()=>cg([[],i],([a,b])=>[a,b],()=>[])))),([a,b])=>[2===a.length&&"-"===a[0]?"remove":2===a.length&&"+"===a[0]||1===a.length?"add":"none",b]),([i,j])=>cg(b7(":",j),([j,k])=>cg(cz(k),([k,l])=>cg(cl(l),([l,m])=>cg(b7("}",m),([m,n])=>[[a,b,c,d,e,f,g,h,i,j,k,l,m],n]))))))))))))),([a,b])=>{var c;return[i((c=a)[6])&&1===c[6].length?eK(aO(c[3]),c[5],c[6][0],bS(c[1],bT(c[8],c[10]))):eK(aO(c[3]),c[5],Q(c[3]),bS(c[1],bT(c[8],c[10]))),b]}),cT=a=>cg(ca(a),([a,b])=>[Q(a),b]),cU=a=>cg(cg(cA(a),([a,b])=>cg(b7(":",b),([b,c])=>cg(cY(c),([c,d])=>[[a,b,c],d]))),([a,b])=>[{[a[0]]:a[2]},b]),cV=(a,b=[])=>cg(cg(cE(a),([a,b])=>cg(cU(b),([b,c])=>[[a,b],c])),([a,c])=>cV(c,[...b,a]),()=>[b,a]),cW=a=>cg(cg(b7("{",a),([a,b])=>cg(cg(cg(cg(cU(b),([a,b])=>cg(cV(b),([b,c])=>cg(cg(cE(c),([a,b])=>[[a],b],()=>[[],c]),([c,d])=>[[a,b,c],d]))),([a,b])=>[a,b],()=>cg([[],b],([a,b])=>[a,b],()=>[])),([a,b])=>[bN(a),b]),([b,c])=>cg(b7("}",c),([c,d])=>[[a,b,c],d]))),([a,b])=>[a[1].reduce((a,b)=>y(a,b),{}),b]),cX=(a,b=[])=>cg(cg(b7(",",a),([a,b])=>cg(cY(b),([b,c])=>[[a,b],c])),([a,c])=>cX(c,[...b,a]),()=>[b,a]),cY=a=>cg(cg(cg(b6(a),([a,b])=>[BigInt(a),b]),([a,b])=>[a,b],()=>cg(cg(cd(a),([a,b])=>[parseFloat(a),b]),([a,b])=>[a,b],()=>cg(cg(cg(b7("true",a),([a,b])=>[a,b],()=>cg(b7("false",a),([a,b])=>[a,b],()=>[])),([a,b])=>["true"===a,b]),([a,b])=>[a,b],()=>cg(cg(cf(['"',"'"],a),([a,b])=>[a,b]),([a,b])=>[a,b],()=>cg(cg(b7("null",a),([a,b])=>[null,b]),([a,b])=>[a,b],()=>cg(cg(b7("undefined",a),([a,b])=>[void 0,b]),([a,b])=>[a,b],()=>cg(cW(a),([a,b])=>[a,b],()=>cg(cg(cg(b7("[",a),([a,b])=>cg(cg(cg(cg(cY(b),([a,b])=>cg(cX(b),([b,c])=>cg(cg(b7(",",c),([a,b])=>[[a],b],()=>[[],c]),([c,d])=>[[a,b,c],d]))),([a,b])=>[a,b],()=>cg([[],b],([a,b])=>[a,b],()=>[])),([a,b])=>[bN(a),b]),([b,c])=>cg(b7("]",c),([c,d])=>[[a,b,c],d]))),([a,b])=>[a[1],b]),([a,b])=>[a,b],()=>[])))))))),([a,b])=>[a,b]),cZ=a=>cg(cg(cg(c$(a),([a,b])=>cg(b7("|",b),([b,c])=>cg(cZ(c),([c,d])=>[[a,b,c],d]))),([a,b])=>[a,b],()=>cg(cg(c$(a),([a,b])=>[[a],b]),([a,b])=>[a,b],()=>cg([[],a],([a,b])=>[a,b],()=>[]))),([a,b])=>[3===a.length?[...a[0],...a[2]]:1===a.length?[...a[0]]:[],b]),c$=a=>{let b;return cg(cg(cg(cg(cg(b7("-?(?:0|[1-9][0-9]*)n",b=a),([a,b])=>[aK(),b]),([a,b])=>[a,b],()=>cg(cg(b7(".*",b),([a,b])=>[a4(),b]),([a,b])=>[a,b],()=>cg(cg(b7("-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?",b),([a,b])=>[a$(),b]),([a,b])=>[a,b],()=>cg(cg(b7("-?(?:0|[1-9][0-9]*)",b),([a,b])=>[aR(),b]),([a,b])=>[a,b],()=>cg(cg(b7("(?!)",b),([a,b])=>[W(),b]),([a,b])=>[a,b],()=>cg(cg(cg(b7("(",b),([a,b])=>cg(c_(b),([b,c])=>cg(b7(")",c),([c,d])=>[[a,b,c],d]))),([a,b])=>[a6(a[1]),b]),([a,b])=>[a,b],()=>cg(cg(bV(ce(["-?(?:0|[1-9][0-9]*)n",".*","-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?","-?(?:0|[1-9][0-9]*)","(?!)","(",")","$","|"],b),(a,b)=>""===a?[]:[a,b],()=>[]),([a,b])=>[aU(a),b]),([a,b])=>[a,b],()=>[]))))))),([a,b])=>[a,b]),([a,b])=>cg(c_(b),([b,c])=>[[a,b],c])),([a,b])=>[[a[0],...a[1]],b])},c_=a=>cg(cg(cZ(a),([a,b])=>[a,b],()=>cg(c$(a),([a,b])=>[a,b],()=>[])),([a,b])=>[a,b]),c0=a=>cg(cg(b7("^",a),([a,b])=>cg(c_(b),([b,c])=>cg(b7("$",c),([c,d])=>[[a,b,c],d]))),([a,b])=>[a[1],b]),c1=(a,b=[])=>cg(cg(b7(",",a),([a,b])=>cg(cz(b),([b,c])=>[[a,b],c])),([a,c])=>c1(c,[...b,a]),()=>[b,a]),c2=a=>cg(cg(cg(b7("extends",a),([a,b])=>cg(cg(cg(cg(cz(b),([a,b])=>cg(c1(b),([b,c])=>cg(cg(b7(",",c),([a,b])=>[[a],b],()=>[[],c]),([c,d])=>[[a,b,c],d]))),([a,b])=>[a,b],()=>cg([[],b],([a,b])=>[a,b],()=>[])),([a,b])=>[bN(a),b]),([b,c])=>[[a,b],c])),([a,b])=>[a,b],()=>cg([[],a],([a,b])=>[a,b],()=>[])),([a,b])=>{var c;return[2===(c=a).length?c[1]:[],b]}),c3=a=>cg(cg(cg(b7(";",a),([a,b])=>cg(b7("\n",b),([b,c])=>[[a,b],c])),([a,b])=>[a,b],()=>cg(cg(b7(";",a),([a,b])=>[[a],b]),([a,b])=>[a,b],()=>cg(cg(b7("\n",a),([a,b])=>[[a],b]),([a,b])=>[a,b],()=>[]))),([a,b])=>[a,b]),c4=(a,b=[])=>cg(cg(c3(a),([a,b])=>cg(c5(b),([b,c])=>[[a,b],c])),([a,c])=>c4(c,[...b,a]),()=>[b,a]),c5=a=>cg(cg(cg(cg(cg(b7("export",a),([a,b])=>[[a],b]),([a,b])=>[a,b],()=>cg([[],a],([a,b])=>[a,b],()=>[])),([a,b])=>[null,b]),([a,b])=>cg(cg(cg(cg(b7("interface",b),([a,b])=>cg(ca(b),([b,c])=>cg(cj(c),([c,d])=>cg(c2(d),([d,e])=>cg(cG(e),([e,f])=>[[a,b,c,d,e],f]))))),([a,b])=>[function(a){let b=a[2],c=a[3],[d,e]=a[4],f=0===u(e).length?{}:{patternProperties:e};return{[a[1]]:S(b,dy(c,d,f))}}(a),b]),([a,b])=>[a,b],()=>cg(cg(cg(b7("interface",b),([a,b])=>cg(ca(b),([b,c])=>cg(c2(c),([c,d])=>cg(cG(d),([d,e])=>[[a,b,c,d],e])))),([a,b])=>[function(a){let b=a[2],[c,d]=a[3],e=0===u(d).length?{}:{patternProperties:d};return{[a[1]]:dy(b,c,e)}}(a),b]),([a,b])=>[a,b],()=>cg(cg(cg(b7("type",b),([a,b])=>cg(ca(b),([b,c])=>cg(cj(c),([c,d])=>cg(b7("=",d),([d,e])=>cg(cz(e),([e,f])=>[[a,b,c,d,e],f]))))),([a,b])=>[{[a[1]]:S(a[2],a[4])},b]),([a,b])=>[a,b],()=>cg(cg(cg(b7("type",b),([a,b])=>cg(ca(b),([b,c])=>cg(b7("=",c),([c,d])=>cg(cz(d),([d,e])=>[[a,b,c,d],e])))),([a,b])=>[{[a[1]]:a[3]},b]),([a,b])=>[a,b],()=>[])))),([b,c])=>cg(cl(c),([c,d])=>[[a,b,c],d]))),([a,b])=>[a[1],b]);function c6(a,b){return r(a,(a,c)=>(function a(b,c,d){var e,f,g,h,i;return ap(b)?(e=b.enum,a(bm(e),c,d)):aS(b)?c6(c,`${d}${aQ}`):aW(b)?(f=b.const,c6(c,`${d}${f}`)):aL(b)?c6(c,`${d}-?(?:0|[1-9][0-9]*)n`):aN(b)?a(a6([aU("false"),aU("true")]),c,d):a_(b)?c6(c,`${d}${aZ}`):a5(b)?c6(c,`${d}.*`):da(b)?(g=b.pattern,c6(c,`${d}${g.slice(1,g.length-1)}`)):p(i=b)&&t(i,"action")&&"TemplateLiteral"===i.action?(h=b.parameters[0],a(c7(h,{}),c,d)):a7(b)?function b(c,d,e,f=[]){return r(c,(c,g)=>b(g,d,e,[...f,a(c,[],"")]),()=>c6(d,`${e}(${f.join("|")})`))}(b.anyOf,c,d):"(?!)"})(a,c,b),()=>b)}function c7(a,b){let c;return fg(a)?C(ba((c=c6(a,""),`^${c}$`)),{},b):c8(a,b)}function c8(a,b={}){return F("TemplateLiteral",[a],b)}function c9(a,b={}){var c;let d;return C(q(a)?c7((c=a,2===(d=cs(`\`${c}\``)).length?d[0]:av()),{}):c7(a,{}),{},b)}function da(a){return D(a,"TemplateLiteral")}function db(a){return A({"~kind":"ExtendsUnion"},{inferred:a})}function dc(a){return p(a)&&t(a,"~kind")&&t(a,"inferred")&&"ExtendsUnion"===a["~kind"]&&p(a.inferred)}function dd(a){return A({"~kind":"ExtendsTrue"},{inferred:a})}function de(a){return p(a)&&t(a,"~kind")&&t(a,"inferred")&&"ExtendsTrue"===a["~kind"]&&p(a.inferred)}function df(){return A({"~kind":"ExtendsFalse"},{})}function dg(a){return p(a)&&t(a,"~kind")&&"ExtendsFalse"===a["~kind"]}function dh(a){return dc(a)||de(a)}function di(a,b,c){return dh(a)?b(a.inferred):c()}function dj(a,b,c){var d,e,f,g;return V(c)?dd(a):am(c)?(d=c.if,e=c.then,f=c.else,di(dw(a,b,d),a=>di(dw(a,b,e),a=>dd(a),()=>df()),()=>di(dw(a,b,f),a=>dd(a),()=>df()))):ap(c)?dw(a,b,bm(c.enum)):ak(c)?(g=c.name,di(dw(a,b,c.extends),c=>dd(y(y(a,c),{[g]:b})),()=>df())):ar(c)?function a(b,c,d){return r(d,(d,e)=>di(dw(b,c,d),b=>a(b,c,e),()=>df()),()=>dd(b))}(a,b,c.allOf):da(c)?dw(a,b,bo(c.pattern)):a7(c)?function a(b,c,d){return r(d,(d,e)=>di(dw(b,c,d),a=>dd(a),()=>a(b,c,e)),()=>df())}(a,b,c.anyOf):ad(c)?dd(a):df()}function dk(a,b,c){return r(b,(b,d)=>r(c,(c,e)=>{let f,g,h,i;return f=ak(c)?b:c,g=ak(c)?c:b,h=_(b),i=_(c),!h&&i?df():di(dw(a,f,g),a=>dk(a,d,e),()=>df())},()=>_(b)?dd(a):df()),()=>dd(a))}function dl(a,b,c){return bL(c)?dd(a):dw(a,b,c)}function dm(a,b,c){return b===c?dd(a):df()}function dn(a,b){return A({"~kind":"Inferrable"},{name:a,type:b},{})}function dp(a){return p(a)&&t(a,"~kind")&&t(a,"name")&&t(a,"type")&&"Inferrable"===a["~kind"]&&q(a.name)&&p(a.type)}function dq(a){return bF(a)?ak(a.items)?K(a.items.extends)?dn(a.items.name,a.items.extends.items):ad(a.items.extends)?dn(a.items.name,a.items.extends):void 0:av():void 0}function dr(a){return ak(a)?dn(a.name,a.extends):void 0}function ds(a,b,c=[]){return r(a,(a,d)=>di(dw({},a,b),()=>ds(d,b,[...c,a]),()=>void 0),()=>c)}function dt(a,b,c,d){let e=ds(c,d);return i(e)?dd(y(a,{[b]:a6(e)})):df()}function du(a,b){return b?[...a].reverse():a}function dv(a,b,c){return r(b,(b,d)=>di(function a(b,c,d){return r(d,(d,e)=>di(dw(b,c,d),a=>dd(a),()=>a(b,c,e)),()=>df())}(a,b,c),a=>dv(a,d,c),()=>df()),()=>dd(a))}function dw(a,b,c){var d,e,f,g,h,l,m,o,s,w,x,z,A,B,C,D,E,F,G,H,I,J,L,M;let O,Q,R,S,T,U,W,Y,Z,$;return V(b)?ak(c)?dj(a,b,c):V(c)||ad(c)?dd(a):db(a):K(b)?(d=b.items,K(c)?(O=aD(b),Q=aD(c),O&&Q||!O&&Q||!O||Q)?dw(a,d,c.items):df():dj(a,b,c)):aL(b)?aL(c)?dd(a):dj(a,b,c):aN(b)?aN(c)?dd(a):dj(a,b,c):N(b)?(e=b.parameters,f=b.instanceType,V(c)||ad(c)?dd(a):N(c)?di(dk(a,e,c.parameters),a=>dl(a,f,c.instanceType),()=>df()):df()):am(b)?(g=b.if,h=b.then,l=b.else,di(dw(a,g,c),()=>dw(a,h,c),()=>dw(a,l,c))):ap(b)?(m=b.enum,dw(a,bm(m),c)):P(b)?(o=b.parameters,s=b.returnType,V(c)||ad(c)?dd(a):P(c)?di(dk(a,o,c.parameters),a=>dl(a,s,c.returnType),()=>df()):df()):aS(b)?aS(c)||a_(c)?dd(a):dj(a,b,c):ar(b)?(w=b.allOf,dw(a,bn(w),c)):aW(b)?j(b.const)?(x=b.const,aW(c)?dm(a,x,c.const):aL(c)?dd(a):dj(a,aU(x),c)):k(b.const)?(z=b.const,aW(c)?dm(a,z,c.const):aN(c)?dd(a):dj(a,aU(z),c)):n(b.const)?(A=b.const,aW(c)?dm(a,A,c.const):a_(c)?dd(a):dj(a,aU(A),c)):q(b.const)?(B=b.const,aW(c)?dm(a,B,c.const):a5(c)?dd(a):dj(a,aU(B),c)):av():X(b)?ak(c)?dj(a,b,c):dd(a):aY(b)?aY(c)?dd(a):dj(a,b,c):a_(b)?a_(c)?dd(a):dj(a,b,c):ab(b)?(C=b.properties,bD(c)?(bA(c),D=bC(c),R=u(C),function a(b,c,d,e){return r(c,(c,f)=>di(dw({},b[c],d),c=>a(b,f,d,u(c).reduce((a,b)=>({...a,[b]:t(e,b)?a7(a[b])?a6([...a[b].anyOf,c[b]]):a6([e[b],c[b]]):c[b]}),e)),()=>df()),()=>dd(e))}(C,R,D,a)):ab(c)?(S=function(a,b,c){var d;let e={};for(let d of u(c))e[d]=d in b?function(a,b,c){return ak(c)&&X(c.extends)?df():di(dw(a,b,c),a=>_(b)?_(c)?dd(a):df():dd(a),()=>df())}({},b[d],c[d]):_(c[d])?ak(c[d])?dd(y(a,{[c[d].name]:c[d].extends})):dd(a):df();let f=v(e).every(a=>dh(a)),g=f?(d=u(e),d.reduce((a,b)=>b in e&&dh(e[b])?{...a,...e[b].inferred}:av(),{})):{};return f?dd(g):df()}(a,C,c.properties),dh(S)?dd(y(a,S.inferred)):df()):dj(a,aa(C),c)):bD(b)?(E=bA(b),F=bC(b),bD(c)?(bz(E),bz(bA(c)),dw(a,F,bC(c))):ab(c)?(L=a,0===u(c.properties).length?dd(L):df()):V(c)||ad(c)?dd(a):df()):a5(b)?a5(c)?dd(a):dj(a,b,c):a1(b)?a1(c)?dd(a):dj(a,b,c):da(b)?(G=b.pattern,dw(a,bo(G),c)):be(b)?(H=b.items,T=fi(a,ff([],[]),H),be(c)?(I=c.items,$=p(Z=(M=U=fi(a,ff([],[]),I)).length>0?M[0]:void 0)?dq(Z):void 0,function a(b,c,d,e){return r(e,(e,f)=>{var g;let h,j;return dp(h=dq(e))?(g=h.name,i(j=ds(du(d,c),h.type))?dd(y(b,{[g]:bd(j)})):df()):r(d,(d,g)=>di(dw(b,d,e),b=>a(b,c,g,f),()=>df()),()=>df())},()=>0===d.length?dd(b):df())}(a,W=p($),du(T,W),du(U,W))):K(c)?function a(b,c,d){let e=dr(d);return dp(e)?dt(b,e.name,c,e.type):r(c,(c,e)=>di(dw(b,c,d),b=>a(b,e,d),()=>df()),()=>dd(b))}(a,T,c.items):dj(a,bd(T),c)):bJ(b)?bL(c)||bJ(c)?dd(a):dj(a,b,c):a7(b)?(J=b.anyOf,dp(Y=dr(c))?dt(a,Y.name,J,Y.type):a7(c)?dv(a,J,c.anyOf):dv(a,J,[c])):ad(b)?ak(c)?dj(a,b,c):V(c)||ad(c)?dd(a):df():bL(b)?bL(c)?dd(a):dj(a,b,c):df()}function dx(a,b,c){return fg(a)?C(bn([...a,aa(b)]),{},c):dy(a,b,c)}function dy(a,b,c={}){return F("Interface",[a,b],c)}function dz(a){return p(a)&&t(a,"action")&&"Interface"===a.action}function dA(a,b,c={}){return dx(a,b,c)}function dB(a,b,c){return r(c,(c,d)=>!!dC(a,b,c)||dB(a,b,d),()=>!1)}function dC(a,b,c){var d;return R(c)?(d=c.$ref,!!a.includes(d)||dC([...a,d],b,b[d])):K(c)?dC(a,b,c.items):N(c)?dB(a,b,[...c.parameters,c.instanceType]):P(c)?dB(a,b,[...c.parameters,c.returnType]):dz(c)?dB(a,b,v(c.parameters[1])):ar(c)?dB(a,b,c.allOf):ab(c)?dB(a,b,v(c.properties)):a7(c)?dB(a,b,c.anyOf):be(c)?dB(a,b,c.items):!!bD(c)&&dC(a,b,bC(c))}function dD(a,b,c){return b.reduce((b,c)=>dE(a,c,b),c)}function dE(a,b,c){var d,e,f,g,h,i,j;return R(b)?(d=b.$ref,c.includes(d)?c:d in a?dE(a,a[d],[...c,d]):av()):K(b)?dE(a,b.items,c):N(b)?dD(a,[...b.parameters,b.instanceType],c):P(b)?dD(a,[...b.parameters,b.returnType],c):dz(b)?(e=a,f=b.parameters[1],g=c,dD(e,v(f),g)):ar(b)?dD(a,b.allOf,c):ab(b)?(h=a,i=b.properties,j=c,dD(h,v(i),j)):a7(b)?dD(a,b.anyOf,c):be(b)?dD(a,b.items,c):bD(b)?dE(a,bC(b),c):c}function dF(a){return a.reduce((a,b)=>[...a,dG(b)],[])}function dG(a){var b;return R(a)?(a.$ref,U()):K(a)?J(dG(a.items),L(a)):N(a)?M(dF(a.parameters),dG(a.instanceType)):P(a)?O(dF(a.parameters),dG(a.returnType)):ar(a)?aq(dF(a.allOf)):ab(a)?aa(u(b=a.properties).reduce((a,c)=>({...a,[c]:dG(b[c])}),{})):bD(a)?by(bB(a),dG(bC(a))):a7(a)?a6(dF(a.anyOf)):be(a)?bd(dF(a.items)):a}function dH(a,b){return function a(b,c){return c in b?R(b[c])?a(b,b[c].$ref):b[c]:W()}(a,b)}function dI(a){var b,c;return af(a)?(b=a.$defs,(c=a.$ref)in b?dG(b[c]):ac()):ah(a)?ac():a}function dJ(a,b,c){return dw(a,dI(b),dI(c))}let dK=0,dL=2,dM=3;function dN(a,b){let c=[dJ({},a,b),dJ({},b,a)];return dh(c[0])&&dh(c[1])?dK:dh(c[0])&&dg(c[1])?dL:dg(c[0])&&dh(c[1])?dM:1}function dO(a,b=[]){return r(a,(a,c)=>{let d;return V(d=bq(a))||ad(d)?[d]:X(d)?dO(c,b):ab(d)?dO(c,[...b,d]):dO(c,function a(b,c,d=[],e=c){return r(c,(c,f)=>{let g=dN(b,c);return g===dL||g===dK?e:1===g?a(b,f,[...d,c],e):a(b,f,d,e)},()=>[...d,b])}(d,b))},()=>b)}function dP(a,b){return b.reduce((b,c)=>[...b,...a.reduce((a,b)=>[...a,[...b,c]],[])],[])}function dQ(a,b,c,d,e){let f=fk(a,b,e);return!function(a,b,c){if(!(ak(b)||dW(b)||dh(dJ({},b,c))))throw Error(`Argument for parameter ${a} does not satisfy constraint`,{cause:{parameter:a,expect:c,actual:b}})}(c,f,d),y(a,{[c]:f})}let dR=0,dS=0;function dT(a,b,c,d){var e;let f=fj(a,b,d),g=function a(b,c,d,e){var f;return T(d)?[c,S(d.parameters,d.expression)]:R(d)?(f=d.$ref,f in b?a(b,f,b[f],e):["(not-resolvable)",W()]):["(not-generic)",W()]}(a,"(anonymous)",c,d),h=g[0],i=g[1];return T(i)?((e=b).callstack.length>0?e.callstack[e.callstack.length-1]:"")===h?dU(Q(h),f):function(a,b,c,d,e,f){let g=function(a,b,c){let d=function a(b,c=[]){return G(b)&&"Conditional"===b.action?R(b.parameters[0])?a(b.parameters[2],a(b.parameters[3],[...c,b.parameters[0].$ref])):a(b.parameters[2],a(b.parameters[3],c)):G(b)&&"Mapped"===b.action&&G(b.parameters[1])&&"KeyOf"===b.parameters[1].action&&R(b.parameters[1].parameters[0])?[...c,b.parameters[1].parameters[0].$ref]:c}(c),e=function a(b,c,d=[]){return r(b,(b,e)=>r(c,(c,f)=>a(e,f,[...d,[c,b]]),()=>d),()=>d)}(b,a.reduce((a,b)=>[...a,d.includes(b.name)],[]));return G(c)&&"Conditional"===c.action||G(c)&&"Mapped"===c.action?e.reduce((a,b)=>{var c;let d;return!0===b[0]?dP(a,a7(d=da(c=b[1])?bo(c.pattern):ap(c)?bm(c.enum):c)?[...d.anyOf]:[d]):dP(a,[b[1]])},[[]]):[b]}(d,f,e),h=g.reduce((f,g)=>[...f,function(a,b,c,d,e,f){if(!(dS<w.maxInstantiationCount))throw Error("Type instantiation is excessively deep and possibly infinite");dS++,dR++;try{let g=function a(b,c,d,e){return r(d,(d,f)=>{let g,h;return g=fk(b,c,d.extends),h=fk(b,c,d.equals),r(e,(e,h)=>a(dQ(b,c,d.name,g,e),c,f,h),()=>a(dQ(b,c,d.name,g,h),c,f,[]))},()=>b)}(a,b,d,f),h=fk(g,ff([...b.callstack,c.$ref],b.visited),e);return fk(g,ff([],[]),h)}finally{0==--dR&&(dS=0)}}(a,b,c,d,e,g)],[]);return 1===h.length?h[0]:bp(h)}(a,b,Q(h),i.parameters,i.expression,f):dU(c,f)}function dU(a,b){return A({"~kind":"Call"},{type:"call",target:a,arguments:b},{})}function dV(a,b){return dT({},ff([],[]),a,b)}function dW(a){return D(a,"Call")}function dX(a,b){var c,d;return aW(b)?(c=a,q(d=b.const)?aU(c(d)):aU(d)):da(b)?dX(a,bo(b.pattern)):a7(b)?a6(b.anyOf.map(b=>dX(a,b))):b}function dY(a,b={}){return F("Capitalize",[a],b)}function dZ(a,b={}){return d8(a,b)}function d$(a,b={}){return F("Lowercase",[a],b)}function d_(a,b={}){return d9(a,b)}function d0(a,b={}){return F("Uncapitalize",[a],b)}function d1(a,b={}){return ea(a,b)}function d2(a,b={}){return F("Uppercase",[a],b)}function d3(a,b={}){return eb(a,b)}let d4=a=>a[0].toUpperCase()+a.slice(1),d5=a=>a.toLowerCase(),d6=a=>a[0].toLowerCase()+a.slice(1),d7=a=>a.toUpperCase();function d8(a,b){return fg([a])?C(dX(d4,a),{},b):dY(a,b)}function d9(a,b){return fg([a])?C(dX(d5,a),{},b):d$(a,b)}function ea(a,b){return fg([a])?C(dX(d6,a),{},b):d0(a,b)}function eb(a,b){return fg([a])?C(dX(d7,a),{},b):d2(a,b)}function ec(a,b,c,d,e={}){return F("Conditional",[a,b,c,d],e)}function ed(a,b,c,d,e={}){return ee({},ff([],[]),a,b,c,d,e)}function ee(a,b,c,d,e,f,g){let h;return fg([c,d])?C(dc(h=dJ(a,c,d))?a6([fk(h.inferred,b,e),fk(a,b,f)]):de(h)?fk(h.inferred,b,e):fk(a,b,f),{},g):ec(c,d,e,f,g)}function ef(a,b={}){return F("ConstructorParameters",[a],b)}function eg(a,b={}){return eh(a,b)}function eh(a,b){let c;return fg([a])?C((c=N(a)?a.parameters:[],bd(fi({},ff([],[]),c))),{},b):ef(a,b)}function ei(a,b,c={}){return F("Exclude",[a,b],c)}function ej(a,b,c={}){return ek(a,b,c)}function ek(a,b,c){return fg([a,b])?C(bk(a,b),{},c):ei(a,b,c)}function el(a,b,c={}){return F("Extract",[a,b],c)}function em(a,b,c={}){return en(a,b,c)}function en(a,b,c){let d;return fg([a,b])?C(bp(function a(b,c,d=[]){return r(b,(b,e)=>a(e,c,[...d,...dh(dJ({},b,c))?[b]:[]]),()=>d)}(a7(d=bq(a))?d.anyOf:[d],b)),{},c):el(a,b,c)}function eo(a){return a6(a.reduce((a,b)=>aV(b)?[...a,aU(b)]:a,[]))}function ep(a,b,c={}){return F("Index",[a,b],c)}function eq(a,b,c={}){return eD(a,i(b)?eo(b):b,c)}function er(a){var b;return af(a)?er(dH(a.$defs,a.$ref)):am(a)?(b=a.if,er(bl(b,a.then,a.else))):ar(a)?a.allOf.reduce((a,b)=>{var c;let d,e,f,g,h,i,j;return c=er(b),d=u(a).filter(a=>!t(c,a)),e=u(c).filter(b=>!t(a,b)),f=u(a).filter(a=>t(c,a)),g=d.reduce((b,c)=>({...b,[c]:a[c]}),{}),h=e.reduce((a,b)=>({...a,[b]:c[b]}),{}),i=f.reduce((b,d)=>({...b,[d]:bn([a[d],c[d]])}),{}),j=y(g,h),y(j,i)},{}):a7(a)?r(a.anyOf,(a,b)=>(function a(b,c){return r(b,(b,d)=>{var e;return a(d,(e=er(b),u(c).filter(a=>a in e).reduce((a,b)=>({...a,[b]:bp([c[b],e[b]])}),{})))},()=>c)})(b,er(a)),()=>av()):be(a)?er(aa(bi(bd(a.items).items))):ab(a)?a.properties:{}}let es=RegExp("^(?:0|[1-9][0-9]*)$");function et(a){let b=`${a}`;return es.test(b)?parseInt(b):a}function eu(a){return a.map(a=>ev(a))}function ev(a){return ar(a)?aq(eu(a.allOf)):a7(a)?a6(eu(a.anyOf)):aW(a)?aU(et(a.const)):a}function ew(a){var b,c;return af(a)?ew(dH(a.$defs,a.$ref)):am(a)?(b=a.if,ew(bl(b,a.then,a.else))):ap(a)?ew(bm(a.enum)):ar(a)?ew(bn(a.allOf)):aW(a)?(c=a.const,[`${c}`]):da(a)?ew(bo(a.pattern)):a7(a)?a.anyOf.reduce((a,b)=>[...a,...ew(b)],[]):[]}function ex(a,b){return b.map(b=>ey(a,b))}function ey(a,b){return K(b)?J(ey(a,b.items)):N(b)?M(ex(a,b.parameters),ey(a,b.instanceType)):P(b)?O(ex(a,b.parameters),ey(a,b.returnType)):be(b)?bd(ex(a,b.items)):a7(b)?a6(ex(a,b.anyOf)):ar(b)?aq(ex(a,b.allOf)):bH(b)?aa(a):b}function ez(a,b){return b.reduce((b,c)=>{var d,e;let f;return[...b,(d=a,f=(e=c)in d?d[e]:W(),ey(d,f))]},[])}let eA=new RegExp(bu);function eB(a){return a.map(a=>eC(a))}function eC(a){return ar(a)?aq(eB(a.allOf)):a7(a)?a6(eB(a.anyOf)):aW(a)?aU(et(a.const)):a}function eD(a,b,c){var d,e,f,g,h,i;let j;return fg([a,b])?C((d=af(f=a)||am(f)||ar(f)||a7(f)?aa(er(f)):f,K(d)?(g=d.items,dh(dJ({},ev(h=b),a$()))?g:aW(h)&&"length"===h.const?a$():W()):ab(d)?(e=d.properties,a_(b)?(j=u(i=e).filter(a=>eA.test(a)),bp(ez(i,j))):bp(ez(e,ew(b)))):be(d)?function(a,b){let c;return aW(b)&&"length"===b.const?aU(a.length):a_(b)||aS(b)?br(a):br((c=eC(b),a.reduceRight((a,b,d)=>dh(dJ({},aU(d),c))?[b,...a]:a,[])))}(d.items,b):W()),{},c):ep(a,b,c)}function eE(a,b={}){return F("InstanceType",[a],b)}function eF(a,b={}){return eG(a,b)}function eG(a,b){return fg([a])?C(N(a)?a.instanceType:W(),{},b):eE(a,b)}function eH(a,b={}){return F("KeyOf",[a],b)}function eI(a,b={}){return eJ(a,b)}function eJ(a,b){var c,d;return fg([a])?C(V(d=af(c=a)||am(c)||ar(c)||a7(c)?aa(er(c)):c)?a6([a$(),a4(),a0()]):K(d)?(d.items,a$()):ab(d)?br(u(d.properties).reduce((a,b)=>aV(b)?[...a,aU(et(b))]:av(),[])):bD(d)?bB(d):be(d)?br(d.items.map((a,b)=>aU(b))):W(),{},b):eH(a,b)}function eK(a,b,c,d,e={}){return F("Mapped",[a,b,c,d],e)}function eL(a,b,c,d,e={}){return eM({},ff([],[]),a,b,c,d,e)}function eM(a,b,c,d,e,f,g){return fg([d])?C(function(a,b,c,d,e,f){let g=function a(b){var c;return ap(b)?a(bm(b.enum)):aW(b)?n(c=b.const)?[aU(`${c}`)]:[aU(c)]:da(b)?a(bo(b.pattern)):a7(b)?b.anyOf.reduce((b,c)=>[...b,...a(c)],[]):[b]}(d);return bn(g.reduce((d,g)=>{var h;let i,j,k;return[...d,(j=da(h=fk(i=y(a,{[c.name]:g}),b,e))?bo(h.pattern):h,k=fk(i,b,f),aW(j)&&n(j.const)||aW(j)&&q(j.const)?{[j.const]:k}:{})]},[]).reduce((a,b)=>[...a,aa(b)],[]))}(a,b,c,d,e,f),{},g):eK(c,d,e,f,g)}function eN(a,b,c,d){let e,f,g,h,i;return e=function(a){let b=u(a);return b.reduce((b,c)=>dC([c],a,a[c])?[...b,c]:b,[])}(c),f=y(a,c),g=u(c).filter(a=>e.includes(a)).reduce((a,b)=>({...a,[b]:function(a,b,c){let d=dE(a,c,[b]);return ae(u(a).filter(a=>d.includes(a)).reduce((b,c)=>{var d,e;let f=a[c],g=dz(f)?(d=f.parameters[0],e=f.parameters[1],bn([...fj(a,ff([],[]),d),aa(fh({},ff([],[]),e))])):f;return{...b,[c]:g}},{}),b)}(f,b,c[b])}),{}),h=y(a,c),i=u(c).filter(a=>!e.includes(a)).reduce((a,b)=>({...a,[b]:fk(h,ff([],[]),c[b])}),{}),C({...g,...i},{},d)}function eO(a,b={}){return F("NonNullable",[a],b)}function eP(a,b={}){return eQ(a,b)}function eQ(a,b){return fg([a])?C(ek(a,a6([aX(),bI()]),{}),{},b):eO(a,b)}function eR(a,b,c={}){return F("Omit",[a,b],c)}function eS(a,b,c={}){return eU(a,i(b)?eo(b):b,c)}function eT(a){let b=aa(er(a));return ab(b)?b.properties:av()}function eU(a,b,c){return fg([a,b])?C(function(a,b){let c=eT(a),d=ew(b);return aa(u(c).reduce((a,b)=>d.includes(b)?a:{...a,[b]:c[b]},{}))}(a,b),{},c):eR(a,b,c)}function eV(a,b={}){return F("Parameters",[a],b)}function eW(a,b={}){return eX(a,b)}function eX(a,b){let c;return fg([a])?C((c=P(a)?a.parameters:[],bd(fi({},ff([],[]),c))),{},b):eV(a,b)}function eY(a,b={}){return F("Partial",[a],b)}function eZ(a,b={}){return e$(a,b)}function e$(a,b){return fg([a])?C(function a(b){var c,d,e,f;let g;return af(b)?(g=a(dH(c=b.$defs,d=b.$ref)),ae(y(c,{[d]:g}),d)):am(b)?(e=b.if,a(bl(e,b.then,b.else))):ar(b)?a(bn(b.allOf)):a7(b)?a6(b.anyOf.map(b=>a(b))):ab(b)?aa(u(f=b.properties).reduce((a,b)=>({...a,[b]:Z(f[b])}),{})):aa({})}(a),{},b):eY(a,b)}function e_(a,b,c={}){return F("Pick",[a,b],c)}function e0(a,b,c={}){return e1(a,i(b)?eo(b):b,c)}function e1(a,b,c){return fg([a,b])?C(function(a,b){let c=eT(a),d=ew(b);return aa(u(c).reduce((a,b)=>d.includes(b)?y(a,{[b]:c[b]}):a,{}))}(a,b),{},c):e_(a,b,c)}function e2(a,b={}){return F("ReadonlyObject",[a],b)}function e3(a,b={}){return e5(a,b)}let e4=e3;function e5(a,b){return fg([a])?C(function a(b){var c,d,e,f;let g;return K(b)?fn(J(b.items)):af(b)?(g=a(dH(c=b.$defs,d=b.$ref)),ae(y(c,{[d]:g}),d)):am(b)?(e=b.if,a(bl(e,b.then,b.else))):ar(b)?a(bn(b.allOf)):ab(b)?aa(u(f=b.properties).reduce((a,b)=>({...a,[b]:aF(f[b])}),{})):be(b)?fn(bd(b.items)):a7(b)?a6(b.anyOf.map(b=>a(b))):b}(a),{},b):e2(a)}function e6(a,b={}){return F("Required",[a],b)}function e7(a,b={}){return e8(a,b)}function e8(a,b){return fg([a])?C(function a(b){var c,d,e,f;let g;return af(b)?(g=a(dH(c=b.$defs,d=b.$ref)),ae(y(c,{[d]:g}),d)):am(b)?(e=b.if,a(bl(e,b.then,b.else))):ar(b)?a(bn(b.allOf)):a7(b)?a6(b.anyOf.map(b=>a(b))):ab(b)?aa(u(f=b.properties).reduce((a,b)=>({...a,[b]:bh(f[b])}),{})):aa({})}(a),{},b):e6(a,b)}function e9(a,b={}){return F("ReturnType",[a],b)}function fa(a,b={}){return fb(a,b)}function fb(a,b){return fg([a])?C(P(a)?a.returnType:W(),{},b):e9(a,b)}function fc(a,b){return F("With",[a,b],{})}function fd(a,b){return fe(a,b)}function fe(a,b){return fg([a])?C(a,{},b):fc(a,b)}function ff(a,b){return{callstack:a,visited:b}}function fg(a){return r(a,(a,b)=>!R(a)&&fg(b),()=>!0)}function fh(a,b,c){return u(c).reduce((d,e)=>({...d,[e]:fk(a,b,c[e])}),{})}function fi(a,b,c){return function a(b){return b.reduce((b,c)=>[...b,...bF(c)?be(c.items)?a(c.items.items):ak(c.items)||R(c.items)?[c]:[W()]:[c]],[])}(fj(a,b,c))}function fj(a,b,c){return c.map(c=>fk(a,b,c))}function fk(a,b,c){return G(c)?function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,D,E,G,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,_,aa,ab,ac,ad;let ae,af,ag;return"AddImmutable"===c?(aa=a,ab=b,ac=d[0],ad=e,fm(fk(aa,ab,ac),ad)):"RemoveImmutable"===c?(f=d[0],g=fk(a,b,f),C(B(g,["~immutable"]),{},e)):"AddReadonly"===c?(h=d[0],H(fk(a,b,h),e)):"RemoveReadonly"===c?(i=d[0],bf(fk(a,b,i),e)):"AddOptional"===c?(j=d[0],I(fk(a,b,j),e)):"RemoveOptional"===c?(k=d[0],bg(fk(a,b,k),e)):"Capitalize"===c?(l=d[0],d8(fk(a,b,l),e)):"Conditional"===c?(m=d[0],n=d[1],o=d[2],p=d[3],ae=fk(a,b,m),af=fk(a,b,n),ee(a,b,ae,af,o,p,e)):"ConstructorParameters"===c?(q=d[0],eh(fk(a,b,q),e)):"Evaluate"===c?(r=d[0],s=fk(a,b,r),C(bq(s),{},e)):"Exclude"===c?(t=d[0],u=d[1],ek(fk(a,b,t),fk(a,b,u),e)):"Extract"===c?(v=d[0],w=d[1],en(fk(a,b,v),fk(a,b,w),e)):"Index"===c?(x=d[0],y=d[1],eD(fk(a,b,x),fk(a,b,y),e)):"InstanceType"===c?function(a,b,c,d={}){return eG(fk(a,b,c),d)}(a,b,d[0],e):"Interface"===c?(z=d[0],A=d[1],dx(fj(a,b,z),fh(a,b,A),e)):"KeyOf"===c?(D=d[0],eJ(fk(a,b,D),e)):"Lowercase"===c?(E=d[0],d9(fk(a,b,E),e)):"Mapped"===c?(G=d[0],J=d[1],K=d[2],L=d[3],ag=fk(a,b,J),eM(a,b,G,ag,K,L,e)):"Module"===c?eN(a,b,d[0],e):"NonNullable"===c?(M=d[0],eQ(fk(a,b,M),e)):"Pick"===c?(N=d[0],O=d[1],e1(fk(a,b,N),fk(a,b,O),e)):"Parameters"===c?(P=d[0],eX(fk(a,b,P),e)):"Partial"===c?(Q=d[0],e$(fk(a,b,Q),e)):"Omit"===c?(R=d[0],S=d[1],eU(fk(a,b,R),fk(a,b,S),e)):"ReadonlyObject"===c?(T=d[0],e5(fk(a,b,T),e)):"Record"===c?(U=d[0],V=d[1],bt(fk(a,b,U),fk(a,b,V),e)):"Required"===c?(W=d[0],e8(fk(a,b,W),e)):"ReturnType"===c?function(a,b,c,d={}){return fb(fk(a,b,c),d)}(a,b,d[0],e):"TemplateLiteral"===c?(X=d[0],c7(fj(a,b,X),e)):"Uncapitalize"===c?(Y=d[0],ea(fk(a,b,Y),e)):"Uppercase"===c?(Z=d[0],eb(fk(a,b,Z),e)):"With"===c?($=d[0],_=d[1],fe(fk(a,b,$),_)):F(c,d,e)}(a,b,c.action,c.parameters,c.options):function(a,b,c){var d;let e,f,g=R(c)?(d=c.$ref,b.visited.includes(d)?c:d in a?fk(a,ff(b.callstack,[...b.visited,d]),a[d]):c):K(c)?J(fk(a,b,c.items),L(c)):dW(c)?dT(a,b,c.target,c.arguments):N(c)?M(fj(a,b,c.parameters),fk(a,b,c.instanceType),B(c,["~kind","type","parameters","instanceType"])):P(c)?O(fj(a,b,c.parameters),fk(a,b,c.returnType),B(c,["~kind","type","parameters","returnType"])):am(c)?al(fk(a,b,c.if),fk(a,b,c.then),fk(a,b,c.else),B(c,["~kind","if","then","else"])):ar(c)?aq(fj(a,b,c.allOf),B(c,["~kind","allOf"])):ab(c)?aa(fh(a,b,c.properties),B(c,["~kind","type","properties","required"])):bD(c)?bc(bA(c),fk(a,b,bC(c))):bF(c)?bE(fk(a,b,c.items)):be(c)?bd(fi(a,b,c.items),B(c,["~kind","type","items","minItems","additionalItems"])):a7(c)?a6(fj(a,b,c.anyOf),B(c,["~kind","anyOf"])):c;return e=_(c)?I(g,{}):g,f=aH(c)?H(e,{}):e,aD(c)?fm(f,{}):f}(a,b,c)}function fl(a,b){return fk(a,ff([],[]),b)}function fm(a,b){return C(C(a,{"~immutable":!0},{}),{},b)}function fn(a,b={}){return fm(a,b)}function fo(a,b={}){return C(bq(a),{},b)}function fp(a,b={}){return eN({},ff([],[]),a,b)}function fq(...a){let b,[c,d,e]=ai(a,{2:(a,b)=>q(a)?[{},a,b]:[a,b,{}],3:(a,b,c)=>[a,b,c],1:a=>[{},a,{}]}),f=cg(cg(cg(cg(c5(b=d),([a,b])=>cg(cg(cg(cg(c5(b),([a,b])=>cg(c4(b),([b,c])=>cg(cg(c3(c),([a,b])=>[[a],b],()=>[[],c]),([c,d])=>[[a,b,c],d]))),([a,b])=>[a,b],()=>cg([[],b],([a,b])=>[a,b],()=>[])),([a,b])=>[bN(a),b]),([b,c])=>[[a,b],c])),([a,b])=>[function(a){let[b,c]=[a[0],a[1]];return function(a,b={}){return F("Module",[a],b)}(y(b,bR(c)[0]))}(a),b]),([a,b])=>[a,b],()=>cg(cg(cg(cj(b),([a,b])=>cg(b7("=",b),([b,c])=>cg(cz(c),([c,d])=>[[a,b,c],d]))),([a,b])=>[S(a[0],a[2]),b]),([a,b])=>[a,b],()=>cg(cz(b),([a,b])=>[a,b],()=>[]))),([a,b])=>[a,b]);return C(i(f)&&2===f.length?fk(c,ff([],[]),f[0]):W(),{},e)}}};
@@ -1,3 +0,0 @@
1
- exports.id=775,exports.ids=[775],exports.modules={4411:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{C7:()=>H,Om:()=>F,ZO:()=>E,d2:()=>G,zJ:()=>C});var e=c(31421),f=c(51455),g=c.n(f),h=c(76760),i=c.n(h),j=c(57975),k=c(77598),l=c(75430),m=c(65138),n=c(62433),o=c(87982),p=c(99951),q=a([l,n,o]);[l,n,o]=q.then?(await q)():q;let I=(0,j.promisify)(e.execFile),J=i().join((0,o.$M)(),"piweb-swarms"),K=new Map,L=new Map,M=new Map,N=new Set,O=new Map;function r(a){return structuredClone(a)}function s(a){if(!/^[0-9a-f-]{36}$/.test(a))throw new n.BV("invalid swarm id");return i().join(J,"jobs",`${a}.json`)}function t(a){let b=(M.get(a.id)??Promise.resolve()).catch(()=>void 0).then(async()=>{let b=s(a.id);await g().mkdir(i().dirname(b),{recursive:!0});let c=`${b}.${(0,k.randomUUID)()}.tmp`;await g().writeFile(c,JSON.stringify(a),"utf8"),await g().rename(c,b)});return M.set(a.id,b),b}async function u(a,b,c=4e6){return(await I("git",b,{cwd:a,timeout:3e4,maxBuffer:c,windowsHide:!0,env:{...process.env,GIT_OPTIONAL_LOCKS:"0",GIT_TERMINAL_PROMPT:"0"}})).stdout}function v(a,b){let c=(O.get(a)??Promise.resolve()).catch(()=>void 0).then(()=>u(a,b));return O.set(a,c.then(()=>void 0,()=>void 0)),c}async function w(a){let b=await (0,n.XI)(a),c=i().resolve((await u(b,["rev-parse","--show-toplevel"]).catch(()=>{throw new n.BV("workspace is not a Git repository")})).trim());if(!(0,n.CN)(c,b))throw new n.BV("invalid repository root");if(!(0,o.af)(c).trusted)throw new n.BV("trust this project before running swarm tasks");if(await u(c,["status","--porcelain","-z"]))throw new n.BV("commit or stash workspace changes before starting a swarm");return{cwd:b,root:c,base:(await u(c,["rev-parse","HEAD"])).trim()}}function x(a){let b="win32"===process.platform?a.toLowerCase().split(":")[0].replace(/[. ]+$/,""):a;return".git"===b||"node_modules"===b}function y(a,b){if(!(0,n.CN)(a,b))throw new n.BV("path escapes isolated worktree");if(i().relative(a,b).split(i().sep).some(x))throw new n.BV("protected worktree path")}async function z(a,b){if("string"!=typeof b||!b.trim()||b.length>4096)throw new n.BV("invalid file path");let c=i().resolve(a,b);y(a,c);let d=await g().realpath(a),e=c;for(;;){let a=await g().realpath(e).catch(a=>{if("ENOENT"===a.code)return null;throw a});if(a){y(d,a);break}let b=i().dirname(e);if(b===e)throw new n.BV("invalid worktree path");e=b}return c}function A(a){return{content:[{type:"text",text:a}],details:void 0}}async function B(a,b,c){let d,e,f=a.tasks[b],h=i().join(J,"worktrees",a.id,String(b)),j=!1,k=!1;try{if(c.aborted||(f.status="running",await t(a),await g().mkdir(i().dirname(h),{recursive:!0}),await v(a.root,["worktree","add","--detach",h,a.base]),j=!0,c.aborted))throw Error("cancelled");let b=new l.DefaultResourceLoader({cwd:h,agentDir:(0,o.$M)(),settingsManager:(0,o.vT)(h),noExtensions:!0,noPromptTemplates:!0,noThemes:!0,appendSystemPrompt:["You are a PiWeb swarm worker in an isolated Git worktree. Use only swarm_* tools. Never access other directories. Make only the assigned changes, then report what changed and what you could not verify. Do not claim tests ran; no command execution is available."]});try{if(await (0,o.YW)(()=>b.reload()),c.aborted||(d=(await (0,l.createAgentSession)({cwd:h,agentDir:(0,o.$M)(),sessionManager:l.SessionManager.inMemory(h),modelRuntime:await (0,o.uU)(),settingsManager:(0,o.vT)(h),resourceLoader:b,tools:["swarm_read","swarm_list","swarm_search","swarm_edit","swarm_write"],customTools:[(0,l.defineTool)({name:"swarm_read",label:"Read isolated file",description:"Read a UTF-8 file inside this isolated worktree.",parameters:m.ZUJ.Object({path:m.ZUJ.String()}),async execute(a,b){let c=await z(h,b.path),d=await g().stat(c);if(!d.isFile()||d.size>2e5)throw new n.BV("file is not readable or is too large");return A(await g().readFile(c,"utf8"))}}),(0,l.defineTool)({name:"swarm_list",label:"List isolated directory",description:"List files and directories inside this isolated worktree.",parameters:m.ZUJ.Object({path:m.ZUJ.String()}),async execute(a,b){let c=await z(h,b.path),d=(await g().readdir(c,{withFileTypes:!0})).filter(a=>!x(a.name)).slice(0,200).map(a=>`${a.isDirectory()?"dir ":"file"} ${a.name}`);return A(d.join("\n")||"(empty)")}}),(0,l.defineTool)({name:"swarm_search",label:"Search isolated files",description:"Find a literal text string in tracked source files inside this isolated worktree.",parameters:m.ZUJ.Object({query:m.ZUJ.String(),path:m.ZUJ.Optional(m.ZUJ.String())}),async execute(a,b){if(!b.query||b.query.length>200)throw new n.BV("invalid search query");let c=await z(h,b.path||"."),d=[],e=0;async function f(a){if(!(e>=1e3)&&!(d.length>=100))for(let c of(await g().readdir(a,{withFileTypes:!0}))){if(x(c.name)||c.isSymbolicLink())continue;let j=await z(h,i().join(a,c.name));if(c.isDirectory())await f(j);else if(c.isFile()){if(e+=1,(await g().stat(j)).size>2e5)continue;(await g().readFile(j,"utf8")).split("\n").forEach((a,c)=>{d.length<100&&a.includes(b.query)&&d.push(`${i().relative(h,j)}:${c+1}: ${a.slice(0,300)}`)})}if(e>=1e3||d.length>=100)break}}let j=await g().stat(c);return j.isDirectory()?await f(c):j.isFile()&&(await g().readFile(c,"utf8")).split("\n").forEach((a,e)=>{d.length<100&&a.includes(b.query)&&d.push(`${i().relative(h,c)}:${e+1}: ${a.slice(0,300)}`)}),A(d.join("\n")||"No matches")}}),(0,l.defineTool)({name:"swarm_edit",label:"Edit isolated file",description:"Replace one exact, unique text occurrence in an isolated file.",executionMode:"sequential",parameters:m.ZUJ.Object({path:m.ZUJ.String(),oldText:m.ZUJ.String(),newText:m.ZUJ.String()}),async execute(a,b){let c=await z(h,b.path);if(!b.oldText||b.newText.length>2e5)throw new n.BV("invalid edit");let d=await g().stat(c);if(!d.isFile()||d.size>2e5)throw new n.BV("file is not editable or is too large");let e=await g().readFile(c,"utf8"),f=e.indexOf(b.oldText);if(f<0||e.indexOf(b.oldText,f+1)>=0)throw new n.BV("oldText must match exactly once");let j=e.slice(0,f)+b.newText+e.slice(f+b.oldText.length);if(Buffer.byteLength(j)>2e5)throw new n.BV("edited file is too large");return await g().writeFile(c,j,"utf8"),A(`Updated ${i().relative(h,c)}`)}}),(0,l.defineTool)({name:"swarm_write",label:"Write isolated file",description:"Create or replace a UTF-8 file inside this isolated worktree.",executionMode:"sequential",parameters:m.ZUJ.Object({path:m.ZUJ.String(),content:m.ZUJ.String()}),async execute(a,b){if(Buffer.byteLength(b.content)>2e5)throw new n.BV("file is too large");let c=await z(h,b.path);return await g().mkdir(i().dirname(c),{recursive:!0}),await g().writeFile(c,b.content,"utf8"),A(`Wrote ${i().relative(h,c)}`)}})]})).session,c.aborted))throw Error("cancelled");let a=()=>{d?.abort().catch(()=>void 0)};c.addEventListener("abort",a,{once:!0}),e=setTimeout(()=>{k=!0,a()},6e5);try{await d.prompt(`${f.title}
2
-
3
- ${f.instruction}`,{source:"rpc",expandPromptTemplates:!1})}finally{c.removeEventListener("abort",a)}if(k)throw Error("task timed out after ten minutes");if(c.aborted)throw Error("cancelled");f.report=function(a){let b=[...a.messages].reverse().find(a=>"assistant"===a.role);if(!b||"assistant"!==b.role)throw Error("agent returned no assistant response");if("stop"!==b.stopReason)throw Error(b.errorMessage||`agent stopped: ${b.stopReason}`);return b.content.filter(a=>"text"===a.type).map(a=>a.text).join("\n").slice(0,2e4)}(d),await u(h,["add","-N","--","."]);let j=await u(h,["diff","--binary","HEAD","--","."],2001024);if(Buffer.byteLength(j)>2e6)throw Error("patch exceeds 2 MB limit");f.patch=j,f.status="completed"}finally{d?.dispose(),b.getExtensions().runtime.invalidate()}}catch(a){f.status=c.aborted?"cancelled":"failed",f.error=String(a?.stderr||a?.message||a).trim().slice(0,1e3)}finally{e&&clearTimeout(e),j&&await v(a.root,["worktree","remove","--force",h]).catch(()=>void 0),(0,n.CN)(i().join(J,"worktrees"),h)&&await g().rm(h,{recursive:!0,force:!0}).catch(()=>void 0),await t(a)}}async function C(a,b){let c=(0,p.Nd)("swarm");try{return await D(a,b,c)}catch(a){throw c(),a}}async function D(a,b,c){let d=function(a){if(!Array.isArray(a)||a.length<1||a.length>3)throw new n.BV("provide one to three tasks");return a.map(a=>{let b=a?.title,c=a?.instruction;if("string"!=typeof b||!b.trim()||b.length>80||"string"!=typeof c||!c.trim()||c.length>4e3)throw new n.BV("invalid swarm task");return{title:b.trim(),instruction:c.trim()}})}(b),{cwd:e,root:f,base:g}=await w(a);if([...K.values()].some(a=>(0,n.Eb)(a.root,f)&&"running"===a.status))throw new n.BV("a swarm is already running for this repository");let h={id:(0,k.randomUUID)(),cwd:e,root:f,base:g,status:"running",createdAt:Date.now(),tasks:d.map(a=>({...a,status:"pending"}))};K.set(h.id,h);let i=new AbortController;L.set(h.id,i);try{await t(h)}catch(a){throw L.delete(h.id),K.delete(h.id),a}return Promise.all(h.tasks.map((a,b)=>B(h,b,i.signal))).then(async()=>{h.status=i.signal.aborted?"cancelled":h.tasks.every(a=>"completed"===a.status)?"completed":"failed",h.finishedAt=Date.now(),L.delete(h.id),await t(h)}).catch(async()=>{h.status="failed",h.finishedAt=Date.now(),L.delete(h.id),await t(h).catch(()=>void 0)}).finally(c),r(h)}async function E(a){let b=K.get(a);if(b)return r(b);let c=await g().readFile(s(a),"utf8").catch(()=>{throw new n.BV("swarm not found")}),d=JSON.parse(c);return"running"===d.status&&(d.status="interrupted"),r(d)}async function F(a){let b=await (0,n.XI)(a),c=await g().readdir(i().join(J,"jobs")).catch(()=>[]);return(await Promise.all(c.filter(a=>/^[0-9a-f-]{36}\.json$/.test(a)).map(a=>E(a.slice(0,-5)).catch(()=>null)))).filter(a=>!!a&&(0,n.Eb)(a.cwd,b)).sort((a,b)=>b.createdAt-a.createdAt).slice(0,20)}async function G(a,b){let c=await E(a),d=await (0,n.XI)(b);if(!(0,n.Eb)(c.cwd,d))throw new n.BV("swarm belongs to another workspace");let e=L.get(a);if(!e||"running"!==c.status)throw new n.BV("swarm is not running");return e.abort(),E(a)}async function H(a,b,c){let d=K.get(a)??await E(a),e=await (0,n.XI)(c);if(!(0,n.Eb)(d.cwd,e))throw new n.BV("swarm belongs to another workspace");if("running"===d.status)throw new n.BV("wait for all swarm tasks to finish before accepting changes");if(!(0,o.af)(d.root).trusted)throw new n.BV("trust this project before accepting changes");if(!Number.isInteger(b)||b<0||b>=d.tasks.length)throw new n.BV("invalid task index");let f=d.tasks[b];if("completed"!==f.status||!f.patch||f.accepted)throw new n.BV("task has no unapplied patch");if(N.has(d.root))throw new n.BV("another patch is being accepted");N.add(d.root);let h=i().join(J,`accept-${(0,k.randomUUID)()}.patch`);try{if((await u(d.root,["rev-parse","HEAD"])).trim()!==d.base)throw new n.BV("repository HEAD changed; review the patch again before applying");return await g().mkdir(J,{recursive:!0}),await g().writeFile(h,f.patch,"utf8"),await u(d.root,["apply","--check","--binary",h]),await u(d.root,["apply","--binary",h]),f.accepted=!0,K.set(a,d),await t(d),r(d)}finally{N.delete(d.root),(0,n.CN)(J,h)&&await g().rm(h,{force:!0}).catch(()=>void 0)}}d()}catch(a){d(a)}})},62433:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{BV:()=>q,CN:()=>l,Eb:()=>o,XI:()=>n,gS:()=>p,os:()=>m});var e=c(51455),f=c.n(e),g=c(76760),h=c.n(g),i=c(87982),j=a([i]);i=(j.then?(await j)():j)[0];class q extends Error{constructor(a){super(a),this.name="BoundaryError"}}function k(a){let b=h().resolve(a);return"win32"===process.platform?b.toLowerCase():b}function l(a,b){let c=h().relative(k(a),k(b));return""===c||!c.startsWith("..")&&!h().isAbsolute(c)}async function m(a,b){if(!(0,i.Sd)(a))throw new q("invalid session id");let c=(0,i.Gg)(a);if(!h().isAbsolute(c)||".jsonl"!==h().extname(c).toLowerCase())throw new q("invalid session path");let d=h().join((0,i.$M)(),"sessions"),e=await f().realpath(d).catch(()=>h().resolve(d));if(!l(e,h().resolve(c)))throw new q("session path is outside the Pi session store");if(b?.allowPending){let a=await f().realpath(c).catch(a=>{if("ENOENT"===a.code)return null;throw a});if(!a){let a=h().dirname(c);for(;l(d,a);){let b=await f().realpath(a).catch(a=>{if("ENOENT"===a.code)return null;throw a});if(b){if(!l(e,b))throw new q("session path escapes the Pi session store");return c}if(o(a,d))break;a=h().dirname(a)}throw new q("session store not found")}if(!l(e,a))throw new q("session path escapes the Pi session store");return c}let g=await f().realpath(c).catch(()=>{throw new q("session not found")});if(!l(e,g))throw new q("session path escapes the Pi session store");if(!(await f().stat(g)).isFile())throw new q("session is not a file");return g}async function n(a){if("string"!=typeof a||0===a.trim().length||a.length>4096)throw new q("invalid workspace path");let b=await f().realpath(h().resolve(a.trim())).catch(()=>{throw new q("workspace not found")});if(!(await f().stat(b)).isDirectory())throw new q("workspace is not a directory");return b}function o(a,b){return k(a)===k(b)}async function p(a,b){if("string"!=typeof a||!h().isAbsolute(a)||a.length>4096)throw new q("invalid resource path");let c=await f().realpath(a).catch(()=>{throw new q("resource not found")});for(let a of b){if(!a)continue;let b=await f().realpath(a).catch(()=>null);if(b&&o(c,b))return c}throw new q("resource is not part of the discovered Pi configuration")}d()}catch(a){d(a)}})},78335:()=>{},87982:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{$M:()=>i.getAgentDir,Ax:()=>Q,BW:()=>D,Cv:()=>i.SessionManager,Dc:()=>z,Df:()=>x,Ec:()=>w,G1:()=>J,Gg:()=>H,QR:()=>F,Sd:()=>I,X1:()=>E,YW:()=>r,Yb:()=>t,af:()=>n,az:()=>i.createAgentSession,fm:()=>p,jz:()=>A,rC:()=>l,uU:()=>k,v9:()=>B,vT:()=>q,wK:()=>o,wj:()=>G,xD:()=>C,ye:()=>u});var e=c(76760),f=c.n(e),g=c(73024),h=c.n(g),i=c(75430),j=a([i]);i=(j.then?(await j)():j)[0],process.env.PYTHONUTF8??="1",process.env.PYTHONIOENCODING??="utf-8";let K=null;function k(){return K||(K=i.ModelRuntime.create().catch(a=>{throw K=null,a})),K}function l(){K=null}let L=new Map,M=null;function m(){return M||(M=new i.ProjectTrustStore((0,i.getAgentDir)())),M}function n(a){let b=f().resolve(a),c=!1;try{c=(0,i.hasTrustRequiringProjectResources)(b)}catch{c=!1}if(!c)return{required:!1,trusted:!0,source:"not-required"};let d=m().get(b);if(null!==d)return{required:!0,trusted:d,source:"remembered"};let e=function(){try{let a=JSON.parse(h().readFileSync(f().join((0,i.getAgentDir)(),"settings.json"),"utf8"));return"always"===a.defaultProjectTrust||"never"===a.defaultProjectTrust?a.defaultProjectTrust:"ask"}catch{return"ask"}}();return"always"===e?{required:!0,trusted:!0,source:"default-always"}:"never"===e?{required:!0,trusted:!1,source:"default-never"}:{required:!0,trusted:!1,source:"undecided"}}function o(a,b){let c=f().resolve(a);m().set(c,b);let d=n(c),e="win32"===process.platform?c.toLowerCase():c,g=L.get(e);return g&&g.setProjectTrusted(d.trusted),d}function p(){for(let[a,b]of(M=null,L))try{b.setProjectTrusted(n(a).trusted)}catch{}}function q(a){let b=f().resolve(a),c="win32"===process.platform?b.toLowerCase():b,d=L.get(c);return d||(d=i.SettingsManager.create(b,(0,i.getAgentDir)(),{projectTrusted:n(b).trusted}),L.set(c,d)),d}let N=new Map,O=Promise.resolve();function r(a){let b=O.then(a,a);return O=b.then(()=>void 0,()=>void 0),b}function s(a){let b=f().resolve(a);return"win32"===process.platform?b.toLowerCase():b}async function t(a,b=[]){let c=q(a);c.setProjectTrusted(n(a).trusted);let d=new i.DefaultResourceLoader({cwd:f().resolve(a),agentDir:(0,i.getAgentDir)(),settingsManager:c,extensionFactories:b}),e=d.reload.bind(d);d.reload=async b=>{c.setProjectTrusted(n(a).trusted),await e(b)};try{return await r(()=>d.reload()),d}catch(a){throw d.getExtensions().runtime.invalidate(),a}}function u(a){let b=s(a),c=N.get(b);return c||(c={loader:new i.DefaultResourceLoader({cwd:f().resolve(a),agentDir:(0,i.getAgentDir)(),settingsManager:q(a)}),ready:Promise.resolve(),version:0,fingerprint:""},N.set(b,c),v(a,c)),c.loader}function v(a,b){let c=r(async()=>{q(a).setProjectTrusted(n(a).trusted),b.loader.getExtensions().runtime.invalidate();let c=y(a);await b.loader.reload(),b.fingerprint=c,b.version+=1});return b.ready=c,c.catch(()=>void 0),c}function w(a){return N.get(s(a))?.version??0}async function x(a){u(a),await N.get(s(a)).ready}function y(a){let b,c,d=[String(n(a).trusted)],e=(a,b)=>{try{let c=h().statSync(a);if(d.push(`${a}:${c.mtimeMs}:${c.ctimeMs}:${c.size}`),c.isDirectory()&&b<2)for(let c of h().readdirSync(a,{withFileTypes:!0}).sort((a,b)=>a.name.localeCompare(b.name)))"node_modules"!==c.name&&e(f().join(a,c.name),b+1)}catch{d.push(`${a}:missing`)}};for(let d of(b=(0,i.getAgentDir)(),c=f().join(f().resolve(a),".pi"),[f().join(b,"prompts"),f().join(b,"skills"),f().join(b,"extensions"),f().join(c,"prompts"),f().join(c,"skills"),f().join(c,"extensions")]))e(d,0);for(let b of[f().join((0,i.getAgentDir)(),"settings.json"),f().join(a,".pi","settings.json")])e(b,2);return d.join("\n")}function z(a){let b=N.get(s(a));return!b||y(a)!==b.fingerprint}async function A(a){await x(a);let b=N.get(s(a));return!!b&&y(a)!==b.fingerprint&&(await C(a),!0)}function B(a){return N.get(s(a))?.loader}async function C(a){let b=N.get(s(a));b?await v(a,b):await x(a)}async function D(){for(let a of L.values())try{await a.reload()}catch{}}async function E(){for(let a of L.values())try{await a.reload()}catch{}P.clear();let a=[];for(let[b,c]of N)try{await v(b,c),a.push(b)}catch{}return a}let P=new Map;function F(a){let b=f().resolve(a),c="win32"===process.platform?b.toLowerCase():b,d=P.get(c);return d||(d=new i.DefaultPackageManager({cwd:b,agentDir:(0,i.getAgentDir)(),settingsManager:q(b)}),P.set(c,d)),d}function G(a){return Buffer.from(a,"utf8").toString("base64url")}function H(a){return Buffer.from(a,"base64url").toString("utf8")}function I(a){return/^[A-Za-z0-9_-]+$/.test(a)&&a.length>8}function J(a){return i.SessionManager.open(a)}let Q={readonly:["read","grep","find","ls"],standard:["read","grep","find","ls","bash","edit","write"],full:[]};d()}catch(a){d(a)}})},96487:()=>{},99951:(a,b,c)=>{"use strict";c.d(b,{Fw:()=>h,Nd:()=>g,iC:()=>f});let d=globalThis,e=d.__piwebRuntimeActivity??={active:new Map,maintenance:!1};class f extends Error{}function g(a){if(e.maintenance)throw new f("update maintenance is active; wait for the release to finish");let b=Symbol(a);return e.active.set(b,a),()=>{e.active.delete(b)}}function h(){if(e.maintenance||e.active.size)throw new f("work is active; wait for sessions, swarms and tests to finish before entering the maintenance window");e.maintenance=!0;let a=!1;return()=>{a||(e.maintenance=!1),a=!0}}}};
@@ -1 +0,0 @@
1
- self.__BUILD_MANIFEST={__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:25,errorRate:1e-4,numBits:480,numHashes:14,bitArray:[1,0,1,1,1,1,0,0,1,1,1,0,0,1,0,0,1,1,1,1,0,1,1,0,1,1,0,1,1,0,0,1,0,0,0,1,1,1,1,1,1,0,1,0,0,0,0,1,0,0,0,1,0,1,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,1,0,1,1,1,0,1,0,0,1,0,1,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,1,0,1,1,1,0,1,1,0,1,0,1,1,1,0,0,1,0,0,0,0,1,0,0,1,1,1,0,1,0,0,1,0,0,1,1,0,0,1,1,1,0,1,1,0,0,1,1,1,0,0,0,1,0,0,1,1,0,0,1,0,0,0,0,1,1,1,1,1,0,1,0,0,0,1,0,1,1,0,1,0,0,1,0,1,0,1,0,0,0,1,0,1,0,0,1,0,1,0,0,1,1,1,1,0,1,0,1,0,1,1,1,1,0,1,1,0,0,0,1,0,0,0,1,0,0,1,1,0,1,1,1,0,0,0,0,0,1,0,0,1,1,1,1,1,1,1,0,0,0,0,1,0,0,1,1,1,0,0,1,0,1,1,1,1,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,1,1,0,1,0,0,1,1,1,1,0,1,0,1,1,0,0,0,1,1,0,1,1,1,1,1,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,1,0,1,1,1,0,1,0,1,0,1,1,1,0,1,0,0,1,1,0,1,1,0,1,0,0,1,1,0,1,0,0,1,0,1,1,1,0,0,1,0,0,1,1,0,1,0,0,1,1,0,1,0,1,1,1,0,0,1,1,1,0,0,1,1,0,1,0,1,0,0,1,0,1,0,0,0,1,1,1,0,0,0,1,0,1,0,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,1,0,0,0,0,1,1,1,1,0,0,1,1,0,1,0,1,1,0,0,1,0,1,1,0,1,1,1,0,1,1,0,1,0,1,1,1,1,0,0,0,1,1,1]},__routerFilterDynamic:{numItems:3,errorRate:1e-4,numBits:58,numHashes:14,bitArray:[1,1,1,0,0,1,0,1,1,1,1,0,1,1,0,0,1,1,1,1,1,0,1,0,1,1,0,1,0,1,1,0,0,1,1,0,1,1,0,0,1,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1]},sortedPages:["/_app"]},self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2608],{2608:(e,t,l)=>{l.r(t),l.d(t,{GitPanel:()=>d});var s=l(5155),a=l(2115),n=l(8476),r=l(9665),i=l(9992),o=l(1859);let c={modified:"var(--dsw-warn)",added:"var(--dsw-success)",deleted:"var(--dsw-danger)",renamed:"var(--dsw-accent)",untracked:"var(--dsw-label-caption)",conflict:"var(--dsw-danger)"};function d({cwd:e,onClose:t,refreshKey:l=0,onAskCommit:f,onOpenFile:u}){let{t:p}=(0,o.s)(),[x,h]=(0,a.useState)(null),[m,v]=(0,a.useState)(!1),[g,b]=(0,a.useState)(""),[w,y]=(0,a.useState)(""),[j,k]=(0,a.useState)(null),[N,S]=(0,a.useState)(null),[C,z]=(0,a.useState)(!1),E=(0,a.useRef)({version:0}),R=(0,a.useRef)({version:0}),U=(0,a.useCallback)(async()=>{E.current.controller?.abort();let t=new AbortController,l=++E.current.version;E.current.controller=t;let s=()=>!t.signal.aborted&&E.current.version===l;if(e){v(!0),b("");try{let l=await fetch(`/api/git?cwd=${encodeURIComponent(e)}`,{signal:t.signal}),a=await l.json();if(!l.ok||!a.success)throw Error(a.error||"failed to load git status");s()&&h(a.data)}catch(e){s()&&b(e instanceof Error?e.message:"failed to load git status")}finally{s()&&v(!1)}}},[e]);(0,a.useEffect)(()=>(h(null),k(null),S(null),y(""),b(""),v(!1),()=>{E.current.controller?.abort(),E.current.version+=1,R.current.controller?.abort(),R.current.version+=1}),[e]),(0,a.useEffect)(()=>{U()},[U,l]);let $=(0,a.useCallback)(async t=>{R.current.controller?.abort();let l=new AbortController,s=++R.current.version;R.current.controller=l;let a=()=>!l.signal.aborted&&R.current.version===s;z(!0),S(null),y("");try{let s="file"===t.kind?`/api/git?cwd=${encodeURIComponent(e)}&diff=${encodeURIComponent(t.path)}&mode=${t.mode}`:`/api/git?cwd=${encodeURIComponent(e)}&show=${encodeURIComponent(t.hash)}`,n=await fetch(s,{signal:l.signal}),r=await n.json();if(!n.ok||!r.success)throw Error(r.error||"failed to load diff");a()&&S(r.data)}catch(e){a()&&y(e instanceof Error?e.message:"failed to load diff")}finally{a()&&z(!1)}},[e]);(0,a.useEffect)(()=>(S(null),y(""),z(!1),j&&$(j),()=>{R.current.controller?.abort(),R.current.version+=1}),[j,$,l]);let M=e=>{R.current.controller?.abort(),R.current.version+=1,S(null),y(""),k(e)},W=j?w:g||x?.statusError||"",A=(0,a.useMemo)(()=>N?.patch?(0,n.rj)(N.patch):null,[N]),D=A?(0,n.hM)(A):null,I=x?.files.filter(e=>"conflict"===e.kind)??[],L=x?.files.filter(e=>"conflict"!==e.kind&&"untracked"!==e.kind&&" "!==e.indexStatus)??[],T=x?.files.filter(e=>"conflict"!==e.kind&&"untracked"!==e.kind&&" "!==e.workStatus)??[],B=x?.files.filter(e=>"untracked"===e.kind)??[],F=j?"file"===j.kind?j.path.split("/").pop()??j.path:N?.title?.split("\n")[0]??j.hash:p.gitPanel;return(0,s.jsxs)("div",{className:"flex h-full min-h-0 flex-col p-4 select-none",children:[(0,s.jsxs)("div",{className:"mb-3 flex items-center gap-2 pb-2 border-b border-slate-200/60 dark:border-slate-800/60",children:[j?(0,s.jsx)("button",{className:"w-7 h-7 rounded-full clay-btn-soft flex items-center justify-center text-slate-600 hover:text-slate-900 transition-transform active:scale-95",title:p.gitBack,onClick:()=>M(null),children:(0,s.jsx)(i.bQ,{size:13})}):(0,s.jsx)("div",{className:"w-7 h-7 rounded-full clay-inset flex items-center justify-center text-emerald-600",children:(0,s.jsx)(i.Je,{size:15})}),(0,s.jsx)("span",{className:"min-w-0 flex-1 truncate font-bold text-sm text-slate-800 dark:text-slate-100",title:j?.kind==="file"?j.path:void 0,children:F}),j?.kind==="file"&&u&&x?.root&&(0,s.jsx)("button",{className:"w-7 h-7 rounded-full clay-btn-soft flex items-center justify-center text-slate-600 hover:text-slate-900 transition-transform active:scale-95",title:p.fileOpenEditor,onClick:()=>u(`${x.root}/${j.path}`),children:(0,s.jsx)(i.lx,{size:13})}),(0,s.jsx)("button",{className:"w-7 h-7 rounded-full clay-btn-soft flex items-center justify-center text-slate-600 hover:text-slate-900 transition-transform active:scale-95",title:p.panelRefresh,onClick:()=>j?void $(j):void U(),children:(0,s.jsx)(i.Ct,{size:13,className:m||C?"piweb-spin":void 0})}),(0,s.jsx)("button",{className:"w-7 h-7 rounded-full clay-btn-soft flex items-center justify-center text-slate-600 hover:text-rose-600 transition-colors",title:p.close,onClick:t,children:(0,s.jsx)(i.Bh,{size:13})})]}),W&&(0,s.jsxs)("div",{className:"mb-2 rounded-xl px-3 py-2",style:{fontSize:12.5,background:"var(--dsw-danger)",color:"white"},role:"alert",children:[!j&&(0,s.jsx)("div",{children:p.gitStatusUnknown}),W]}),(0,s.jsxs)("div",{className:"min-h-0 flex-1 overflow-y-auto",children:[!e&&(0,s.jsx)("div",{className:"rounded-xl px-3 py-4 text-sm",style:{color:"var(--dsw-label-caption)",background:"var(--dsw-hover)"},children:"请先在工作台选择工作区,再查看 Git 差异。"}),j&&(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{className:"mb-2 flex flex-wrap items-center gap-2",style:{fontSize:11.5,color:"var(--dsw-label-caption)"},children:["file"===j.kind?(0,s.jsx)("span",{children:j.label}):N?.title?.split("\n")[1]?(0,s.jsx)("span",{children:N.title.split("\n")[1]}):null,D&&(0,s.jsxs)("span",{style:{fontFamily:"var(--font-mono)"},children:[(0,s.jsxs)("span",{style:{color:"var(--dsw-success)"},children:["+",D.add]})," ",(0,s.jsxs)("span",{style:{color:"var(--dsw-danger)"},children:["−",D.del]})]}),N?.truncated&&(0,s.jsx)("span",{style:{color:"var(--dsw-warn)"},children:p.gitDiffTruncated})]}),C&&!N&&(0,s.jsx)("div",{style:{fontSize:12.5,color:"var(--dsw-label-caption)",padding:"4px 2px"},children:p.panelLoading}),N?.binary&&(0,s.jsx)("div",{style:{fontSize:12.5,color:"var(--dsw-label-caption)",padding:"4px 2px"},children:p.gitBinary}),N&&!N.binary&&!A&&(0,s.jsx)("div",{style:{fontSize:12.5,color:"var(--dsw-label-caption)",padding:"4px 2px"},children:p.gitDiffEmpty}),A&&(0,s.jsx)("div",{className:"overflow-x-auto rounded-xl px-2 py-1.5",style:{background:"var(--dsw-hover)"},children:(0,s.jsx)(n.xZ,{lines:A,language:j?.kind==="file"?(0,r.f3)(j.path):void 0})})]}),!j&&m&&!x&&(0,s.jsx)("div",{style:{fontSize:12.5,color:"var(--dsw-label-caption)",padding:"4px 2px"},children:p.panelLoading}),!j&&!m&&x&&!x.available&&(0,s.jsx)("div",{style:{fontSize:12.5,color:"var(--dsw-danger)",padding:"8px 2px",lineHeight:1.6},children:p.gitUnavailable}),!j&&!m&&x&&x.available&&!x.isRepo&&(0,s.jsx)("div",{style:{fontSize:12.5,color:"var(--dsw-label-caption)",padding:"8px 2px",lineHeight:1.6},children:p.gitNotRepo}),!j&&x?.isRepo&&(0,s.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,s.jsxs)("div",{className:"flex flex-wrap items-center gap-2",style:{fontSize:12.5},children:[(0,s.jsxs)("span",{className:"flex items-center gap-1.5 rounded-full px-2.5 py-1",style:{background:"var(--dsw-accent-soft)",color:"var(--dsw-accent)",fontWeight:500},children:[(0,s.jsx)(i.Je,{size:12}),x.detached?p.gitDetached:x.branch??"—"]}),x.ahead>0&&(0,s.jsxs)("span",{style:{color:"var(--dsw-label-secondary)"},children:["↑ ",p.gitAhead.replace("{n}",String(x.ahead))]}),x.behind>0&&(0,s.jsxs)("span",{style:{color:"var(--dsw-label-secondary)"},children:["↓ ",p.gitBehind.replace("{n}",String(x.behind))]}),(0,s.jsx)("span",{className:"min-w-0 truncate",style:{fontSize:11.5,color:"var(--dsw-label-caption)"},title:x.upstream??void 0,children:x.upstream?p.gitUpstream.replace("{name}",x.upstream):x.detached?"":p.gitNoUpstream})]}),!W&&x.files.length>0&&f&&(0,s.jsx)("button",{type:"button",className:"clay-btn clay-btn-mint text-white font-semibold px-3.5 py-1.5 rounded-full text-xs self-start shadow-sm active:scale-95",onClick:f,title:p.gitAskCommitPrompt,children:p.gitAskCommit}),W?null:0===x.files.length?(0,s.jsx)("div",{style:{fontSize:12.5,color:"var(--dsw-label-caption)"},children:p.gitNoChanges}):[{label:p.gitConflict,list:I,mode:"worktree"},{label:p.gitStaged,list:L,mode:"staged"},{label:p.gitUnstaged,list:T,mode:"worktree"},{label:p.gitUntracked,list:B,mode:"untracked"}].map(e=>e.list.length>0&&(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{className:"mb-1 flex items-center gap-2",style:{fontSize:11.5,color:"worktree"===e.mode&&e.label===p.gitConflict?"var(--dsw-danger)":"var(--dsw-label-caption)"},children:[(0,s.jsx)("span",{style:{fontWeight:600},children:e.label}),(0,s.jsx)("span",{children:e.list.length})]}),(0,s.jsx)("div",{className:"flex flex-col",children:e.list.map(t=>(0,s.jsxs)("button",{type:"button",className:"flex w-full items-center gap-2 rounded-lg px-2 py-1 text-left transition-colors",title:t.path,onMouseEnter:e=>e.currentTarget.style.background="var(--dsw-hover)",onMouseLeave:e=>e.currentTarget.style.background="transparent",onClick:()=>{let l,s;return l=e.mode,s="staged"===e.mode?p.gitStagedDiff:"untracked"===e.mode?p.gitUntracked:p.gitWorktreeDiff,M({kind:"file",path:t.path,mode:l,label:s})},children:[(0,s.jsx)("span",{className:"flex-none rounded px-1 text-center",style:{minWidth:16,fontSize:10.5,fontFamily:"var(--font-mono)",fontWeight:600,color:c[t.kind],background:"var(--dsw-hover)"},children:"untracked"===t.kind?"?":"conflict"===t.kind?"!":"staged"===e.mode?t.indexStatus:" "!==t.workStatus?t.workStatus:t.indexStatus}),(0,s.jsx)("span",{className:"min-w-0 flex-1 truncate",style:{fontSize:12,fontFamily:"var(--font-mono)",color:"var(--dsw-label-secondary)"},children:t.path})]},`${e.label}:${t.path}`))})]},e.label)),(0,s.jsxs)("div",{className:"hairline-t pt-3",children:[(0,s.jsx)("div",{className:"mb-1",style:{fontSize:11.5,fontWeight:600,color:"var(--dsw-label-caption)"},children:p.gitRecentCommits}),0===x.commits.length?(0,s.jsx)("div",{style:{fontSize:12.5,color:"var(--dsw-label-caption)",padding:"4px 2px"},children:p.gitNoCommits}):(0,s.jsx)("div",{className:"flex flex-col",children:x.commits.map(e=>(0,s.jsxs)("button",{type:"button",className:"flex w-full flex-col items-stretch rounded-lg px-2 py-1 text-left transition-colors",onMouseEnter:e=>e.currentTarget.style.background="var(--dsw-hover)",onMouseLeave:e=>e.currentTarget.style.background="transparent",onClick:()=>M({kind:"commit",hash:e.hash}),children:[(0,s.jsxs)("span",{className:"flex items-baseline gap-2",children:[(0,s.jsx)("span",{className:"flex-none",style:{fontSize:11,fontFamily:"var(--font-mono)",color:"var(--dsw-accent)"},children:e.hash}),(0,s.jsx)("span",{className:"min-w-0 flex-1 truncate",style:{fontSize:12,color:"var(--dsw-label-secondary)"},title:e.subject,children:e.subject})]}),(0,s.jsxs)("span",{className:"truncate",style:{fontSize:11,color:"var(--dsw-label-caption)",paddingLeft:0},children:[e.author," \xb7 ",e.relative]})]},e.hash))})]})]})]})]})}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2716],{2716:(e,t,n)=>{n.r(t),n.d(t,{FileViewer:()=>y});var i=n(5155),l=n(2115),a=n(8426),r=n(3437),s=n(7890),o=n(8476),c=n(1859),d=n(9665);let h=(0,l.memo)(function({lines:e,language:t,folded:n,handle:a,initialChange:r}){let{t:s}=(0,c.s)(),[o,h]=(0,l.useState)(()=>new Set),u=(0,l.useRef)(null),[p,f]=(0,l.useState)({top:0,height:800}),[m,w]=(0,l.useState)(-1),x=(0,l.useRef)(new Map);(0,l.useEffect)(()=>h(new Set),[e]);let{rows:v,blocks:g}=(0,l.useMemo)(()=>(function(e,t,n){let i=[],l=[],a=e=>"add"===e.kind||"del"===e.kind,r=-1,s=-1;for(let t=0;t<e.length;t+=1)a(e[t])&&(r<0&&(r=t),s=t);let o=0,c=!1;for(;o<e.length;){let d=e[o];if("hunk"===d.kind||"file"===d.kind){o+=1;continue}if(a(d)){c||l.push(i.length),i.push({kind:"line",line:d,index:o}),c=!0,o+=1;continue}c=!1;let h=o;for(;h<e.length&&"ctx"===e[h].kind;)h+=1;let u=h-o,p=r<0||r>=o?0:3,f=s<h?0:3;if(!t||n.has(o)||u<=p+f+2)for(let t=o;t<h;t+=1)i.push({kind:"line",line:e[t],index:t});else{for(let t=o;t<o+p;t+=1)i.push({kind:"line",line:e[t],index:t});i.push({kind:"fold",from:o,count:u-p-f});for(let t=h-f;t<h;t+=1)i.push({kind:"line",line:e[t],index:t})}o=h}return{rows:i,blocks:l}})(e,n,o),[e,n,o]),y=(0,l.useMemo)(()=>String(function(e){let t=1;for(let n of e){let e=n.new??n.old??0;e>t&&(t=e)}return t}(e)).length,[e]),j=!!t&&v.length<=6e3;(0,l.useEffect)(()=>{let e=u.current;if(!e)return;let t=()=>f({top:e.scrollTop,height:e.clientHeight});t(),e.addEventListener("scroll",t,{passive:!0});let n=new ResizeObserver(t);return n.observe(e),()=>{e.removeEventListener("scroll",t),n.disconnect()}},[]);let b=(0,l.useCallback)(e=>{let t=u.current,n=g[e];t&&void 0!==n&&(w(e),t.scrollTo({top:Math.max(0,20*n-t.clientHeight/3),behavior:"smooth"}))},[g]);(0,l.useImperativeHandle)(a,()=>({nextChange:()=>b(Math.min(g.length-1,m+1)),prevChange:()=>b(Math.max(0,m-1))}),[g.length,m,b]);let k=(0,l.useRef)(!1);(0,l.useEffect)(()=>{k.current=!1},[e]),(0,l.useEffect)(()=>{if(k.current||!r||!g.length)return;k.current=!0;let e=u.current;e&&(e.scrollTop=Math.max(0,20*g[0]-e.clientHeight/3),w(0))},[g,r,v]);let N=Math.max(0,Math.floor(p.top/20)-20),C=Math.min(v.length,Math.ceil((p.top+p.height)/20)+20);return(0,i.jsxs)("div",{className:"pw-fdiff relative min-h-0 flex-1",children:[(0,i.jsx)("div",{ref:u,className:"pw-fdiff-scroll h-full overflow-auto",children:(0,i.jsx)("div",{style:{height:20*v.length,position:"relative",minWidth:"100%"},children:v.slice(N,C).map((e,n)=>{let l=(N+n)*20;if("fold"===e.kind)return(0,i.jsx)("button",{type:"button",className:"pw-fdiff-fold",style:{top:l},onClick:()=>h(t=>new Set(t).add(e.from)),children:s.viewerFoldedLines.replace("{n}",String(e.count))},`f${e.from}`);let a=e.line,r=(e=>{if(!j||!e.trim())return null;let n=x.current.get(e);if(void 0!==n)return n;let i=(0,d.NK)(e,t);return x.current.size>5e3&&x.current.clear(),x.current.set(e,i),i})(a.text);return(0,i.jsxs)("div",{className:"pw-fdiff-row","data-kind":a.kind,style:{top:l},children:[(0,i.jsxs)("span",{className:"pw-fdiff-gutter",style:{width:`${2*y+3}ch`},children:[(0,i.jsx)("span",{children:"add"===a.kind?"":String(a.old??"").padStart(y)}),(0,i.jsx)("span",{children:"del"===a.kind?"":String(a.new??"").padStart(y)})]}),(0,i.jsx)("span",{className:"pw-fdiff-sign",children:"add"===a.kind?"+":"del"===a.kind?"−":" "}),(0,i.jsx)("span",{className:"pw-fdiff-text hljs",children:r?(0,i.jsx)("span",{dangerouslySetInnerHTML:{__html:r}}):a.text})]},e.index)})})}),v.length>0&&g.length>0&&(0,i.jsx)("div",{className:"pw-fdiff-ticks","aria-hidden":!0,children:g.map((e,t)=>{let n=v[e],l=n?.kind==="line"?n.line.kind:"add";return(0,i.jsx)("span",{className:"pw-fdiff-tick","data-kind":l,"data-current":t===m||void 0,style:{top:`${e/v.length*100}%`},onClick:()=>b(t)},t)})})]})});var u=n(2155),p=n(9992),f=n(2253),m=n(1135);let w=new Map;async function x(e){let t=await fetch(e),n=await t.json();if(!t.ok||!n.success){let e=Error(n.error||`request failed (${t.status})`);throw e.status=t.status,e}return n.data}function v(e){let t=w.get(e);return!t&&((t=x(e)).catch(()=>w.delete(e)),w.set(e,t),w.size>200&&w.delete(w.keys().next().value)),t}function g({content:e,name:t}){let n=(0,l.useMemo)(()=>(0,d.wY)(e,(0,d.f3)(t)),[e,t]),a=e.split("\n").length,r=`${String(a).length+1}ch`;return(0,i.jsxs)("div",{className:"flex min-h-0 flex-1 overflow-auto",style:{fontFamily:"var(--font-mono)",fontSize:12,lineHeight:"20px"},children:[(0,i.jsx)("pre",{"aria-hidden":!0,className:"flex-none select-none py-2 pl-3 pr-2 text-right",style:{width:r,minWidth:r,color:"var(--dsw-label-caption)",margin:0,position:"sticky",left:0,background:"var(--dsw-glass-modal)"},children:Array.from({length:a},(e,t)=>t+1).join("\n")}),null!==n?(0,i.jsx)("pre",{className:"hljs min-w-0 flex-1 py-2 pl-3 pr-4",style:{margin:0,background:"transparent",color:"var(--dsw-label-secondary)"},children:(0,i.jsx)("code",{dangerouslySetInnerHTML:{__html:n}})}):(0,i.jsx)("pre",{className:"min-w-0 flex-1 py-2 pl-3 pr-4",style:{margin:0,color:"var(--dsw-label-secondary)"},children:e})]})}function y({state:e,growth:t,cwd:n,onClose:w,onSelectTab:j,onCloseTab:b,onOpen:k,onReference:N,onOpenEditor:C}){let{t:$}=(0,c.s)(),[S,M]=(0,l.useState)(!1),[z,E]=(0,l.useState)("diff"),[R,L]=(0,l.useState)(!1),[T,D]=(0,l.useState)(!0),[F,P]=(0,l.useState)(!1),[A,I]=(0,l.useState)(""),[H,U]=(0,l.useState)(0),[_,q]=(0,l.useState)(""),[O,W]=(0,l.useState)(null),[K,B]=(0,l.useState)(null),Q=(0,l.useRef)(null),V=(0,l.useRef)(null),G=(0,l.useRef)(null),X=e.tabs.find(t=>t.path===e.active)??null,Y=(0,l.useMemo)(()=>X?t.changes.find(e=>e.path===X.path)??null:null,[X,t.changes]),J=!!(X&&/\.(md|mdx|markdown)$/i.test(X.path)),Z=t.range;(0,l.useEffect)(()=>{L(!1)},[e.active]),(0,l.useEffect)(()=>{!R&&X&&E(Y&&!X.lazy?"diff":J?"render":"content")},[X,Y,J,R]),(0,l.useEffect)(()=>{if(!X)return void B(null);let e=`${X.path}|${z}|${Z?.from??""}|${Z?.to??""}|${Y?.status??""}`,i=!0,l=t=>{i&&B({key:e,diff:null,content:null,binary:!1,truncated:!1,notice:null,error:null,...t})};if(void 0!==X.staticContent)return l({content:X.staticContent}),()=>{i=!1};if(!n)return void B(null);let a=`cwd=${encodeURIComponent(n)}`,r=async e=>{try{let t=await x(`/api/files?read=1&${a}&path=${encodeURIComponent(X.path)}`);l({content:t.content,binary:t.binary,truncated:t.truncated,notice:e})}catch(e){if(400!==e.status)throw e;l({notice:"missing"})}},s=async(e,n)=>{try{let t=await v(`/api/growth?${a}&tree=${e}&path=${encodeURIComponent(X.path)}&content=1`);l({content:t.content,binary:t.binary,truncated:t.truncated,notice:n})}catch(n){if(404===n.status){let n=[...t.steps].reverse().find(e=>e.seq<=(t.selected?.seq??1/0)&&e.changes.some(e=>e.path===X.path||e.from===X.path)),i=n?.changes.some(e=>"D"===e.status&&e.path===X.path||"R"===e.status&&e.from===X.path)?n.parent:n?.tree;if(i&&i!==e)try{let e=await v(`/api/growth?${a}&tree=${i}&path=${encodeURIComponent(X.path)}&content=1`);l({content:e.content,binary:e.binary,truncated:e.truncated,notice:"historical"});return}catch(e){if(404!==e.status)throw e}await r("disk");return}throw n}};return(async()=>{try{if(X.lazy||!Z)return void await r(X.lazy&&t.steps.length>0?"disk":null);if("diff"===z){if(!Y)return void await s(Z.to,"nochange");let e=await v(`/api/growth?${a}&from=${Z.from}&to=${Z.to}&path=${encodeURIComponent(X.path)}${X.from??Y.from?`&renamedFrom=${encodeURIComponent(X.from??Y.from??"")}`:""}`);if(e.binary)return void l({binary:!0});let t=(0,o.rj)(e.patch);if(!t)return void await s(Z.to,"nochange");l({diff:t,truncated:e.truncated,notice:"D"===Y.status?"deleted":null});return}await s(Z.to,null)}catch(e){l({error:e instanceof Error?e.message:$.viewerLoadFailed})}})(),()=>{i=!1}},[X,n,z,Z,Y,t.steps,t.selected,t.pending,$.viewerLoadFailed]),(0,l.useEffect)(()=>{if(!e.open)return;let t=t=>{let n=t.target,i=n&&("INPUT"===n.tagName||"TEXTAREA"===n.tagName||n.isContentEditable);if("Escape"===t.key){t.preventDefault(),F?P(!1):w();return}let l=t.ctrlKey||t.metaKey;if(l&&"w"===t.key.toLowerCase()){t.preventDefault(),e.active?b(e.active):w();return}if(l&&"p"===t.key.toLowerCase()){t.preventDefault(),P(!0);return}i||l||"diff"!==z||("]"===t.key?Q.current?.nextChange():"["===t.key&&Q.current?.prevChange())};return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)},[e.open,e.active,F,z,w,b]),(0,l.useEffect)(()=>{F&&(I(""),U(0),setTimeout(()=>G.current?.focus(),0))},[F]),(0,l.useEffect)(()=>{e.open&&setTimeout(()=>V.current?.focus(),0)},[e.open]);let ee=(0,l.useMemo)(()=>{if(!F)return[];let e=A.trim();return t.filePaths.map(t=>({p:t,s:(0,m.dt)(e,t)})).filter(e=>e.s>=0).sort((e,t)=>t.s-e.s||e.p.length-t.p.length).slice(0,50).map(e=>e.p)},[F,A,t.filePaths]);if(!e.open)return null;let et=X?X.path.split("/"):[],en=t.selectedRound?.id??0,ei=en?`${$.growthRoundLabel.replace("{n}",String(en))}${Y?` \xb7 +${Y.add??0} −${Y.del??0}`:""}`:"",el="diff"===z&&!!K?.diff,ea=K?.notice==="deleted"?$.viewerDeleted:K?.notice==="historical"?$.viewerHistorical:K?.notice==="missing"?$.viewerMissing:K?.notice==="disk"?$.viewerNotInSnapshot:K?.notice==="nochange"?$.viewerNoChanges:"";return(0,i.jsx)("div",{className:"pw-viewer-mask modal-mask fixed inset-0 z-[105] flex items-center justify-center",onMouseDown:e=>e.target===e.currentTarget&&w(),children:(0,i.jsxs)("div",{ref:V,className:"pw-viewer glass-modal flex flex-col overflow-hidden outline-none","data-fullscreen":S||void 0,role:"dialog","aria-modal":"true",tabIndex:-1,"data-testid":"file-viewer",children:[(0,i.jsxs)("div",{className:"pw-viewer-tabs hairline-b",onDoubleClick:e=>e.target===e.currentTarget&&M(e=>!e),children:[(0,i.jsxs)("button",{type:"button",className:"pw-viewer-tab","data-active":null===e.active,onClick:()=>j(null),children:[(0,i.jsx)("img",{className:"pw-tree-icon",src:"/file-icons/folder-open.svg",alt:""}),(0,i.jsx)("span",{children:$.projectPanel})]}),(0,i.jsx)("div",{className:"pw-viewer-tabstrip",children:e.tabs.map(t=>(0,i.jsxs)("div",{className:"pw-viewer-tab","data-active":e.active===t.path,onAuxClick:e=>{1===e.button&&b(t.path)},children:[(0,i.jsxs)("button",{type:"button",className:"pw-viewer-tab-main",title:t.path,onClick:()=>j(t.path),children:[(0,i.jsx)("img",{className:"pw-tree-icon",src:(0,f.s)(t.path.split("/").pop()??t.path),alt:""}),(0,i.jsx)("span",{className:"truncate",children:t.path.split("/").pop()})]}),(0,i.jsx)("button",{type:"button",className:"pw-viewer-tab-close",title:$.viewerCloseTab,"aria-label":`${$.viewerCloseTab}: ${t.path}`,onClick:()=>b(t.path),children:(0,i.jsx)(p.Bh,{size:10})})]},t.path))}),(0,i.jsx)("button",{type:"button",className:"icon-btn",style:{width:26,height:26},title:`${$.viewerQuickOpen} (Ctrl/⌘+P)`,onClick:()=>P(!0),children:(0,i.jsx)(p.Xh,{size:13})}),(0,i.jsx)("div",{className:"flex-1"}),(0,i.jsx)("button",{type:"button",className:"icon-btn",style:{width:26,height:26},title:S?$.viewerExitFullscreen:$.viewerFullscreen,onClick:()=>M(e=>!e),"data-testid":"viewer-fullscreen",children:(0,i.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none","aria-hidden":!0,children:S?(0,i.jsx)("path",{d:"M6 1v5H1M10 1v5h5M6 15v-5H1M10 15v-5h5",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"}):(0,i.jsx)("path",{d:"M1 6V1h5M15 6V1h-5M1 10v5h5M15 10v5h-5",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})})}),(0,i.jsx)("button",{type:"button",className:"icon-btn",style:{width:26,height:26},title:`${$.close} (Esc)`,onClick:w,"data-testid":"viewer-close",children:(0,i.jsx)(p.Bh,{size:13})})]}),X?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("div",{className:"pw-viewer-toolbar hairline-b",children:[(0,i.jsx)("div",{className:"pw-crumb min-w-0 flex-1",children:et.map((e,n)=>(0,i.jsxs)("span",{className:"flex items-center",children:[n>0&&(0,i.jsx)("span",{className:"pw-crumb-sep",children:"/"}),n<et.length-1?(0,i.jsx)("button",{type:"button",onClick:()=>{let e;return e=et.slice(0,n+1).join("/"),void(t.revealPath(e),W({path:e,key:Date.now()}),j(null))},children:e}):(0,i.jsx)("span",{style:{color:"var(--dsw-label-primary)",fontWeight:500},children:e})]},n))}),ei&&!X.lazy&&(0,i.jsx)("span",{className:"flex-none truncate",style:{fontSize:11.5,color:"var(--dsw-label-caption)",maxWidth:220},children:ei}),!X.lazy&&(0,i.jsx)("span",{className:"pw-seg",role:"radiogroup",children:["diff","content",...J?["render"]:[]].map(e=>(0,i.jsx)("button",{type:"button",role:"radio","aria-checked":z===e,"data-active":z===e,onClick:()=>{L(!0),E(e)},children:"diff"===e?$.viewerModeDiff:"content"===e?$.viewerModeContent:$.viewerModeRender},e))}),X.lazy&&J&&(0,i.jsx)("span",{className:"pw-seg",role:"radiogroup",children:["content","render"].map(e=>(0,i.jsx)("button",{type:"button",role:"radio","aria-checked":z===e,"data-active":z===e,onClick:()=>{L(!0),E(e)},children:"content"===e?$.viewerModeContent:$.viewerModeRender},e))}),el&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("button",{type:"button",className:"pw-chip","data-active":T,onClick:()=>D(e=>!e),children:T?$.viewerFold:$.viewerUnfold}),(0,i.jsx)("button",{type:"button",className:"icon-btn",style:{width:24,height:24},title:`${$.viewerPrevChange} ([)`,onClick:()=>Q.current?.prevChange(),children:(0,i.jsx)(p.tr,{size:12})}),(0,i.jsx)("button",{type:"button",className:"icon-btn",style:{width:24,height:24},title:`${$.viewerNextChange} (])`,onClick:()=>Q.current?.nextChange(),children:(0,i.jsx)(p.Cd,{size:12})})]}),N&&(0,i.jsx)("button",{type:"button",className:"icon-btn",style:{width:24,height:24},title:$.fileReference,onClick:()=>N(X.path),children:(0,i.jsx)(p.PT,{size:13})}),C&&(0,i.jsx)("button",{type:"button",className:"icon-btn",style:{width:24,height:24},title:$.fileOpenEditor,onClick:()=>C(X.path),children:(0,i.jsx)(p.lx,{size:13})})]}),ea&&(0,i.jsx)("div",{className:"pw-viewer-notice","data-kind":K?.notice,children:ea}),K?.truncated&&(0,i.jsx)("div",{className:"pw-viewer-notice","data-kind":"warn",children:"diff"===z?$.viewerPatchTruncated:$.filePreviewTruncated}),K&&K.key===`${X.path}|${z}|${Z?.from??""}|${Z?.to??""}|${Y?.status??""}`?K.error?(0,i.jsx)("div",{className:"flex min-h-0 flex-1 items-center justify-center",style:{fontSize:12.5,color:"var(--dsw-danger)"},children:K.error}):"missing"===K.notice?(0,i.jsx)("div",{className:"flex min-h-0 flex-1 items-center justify-center",style:{fontSize:12.5,color:"var(--dsw-label-caption)"},children:$.viewerMissing}):K.binary?(0,i.jsx)("div",{className:"flex min-h-0 flex-1 items-center justify-center",style:{fontSize:12.5,color:"var(--dsw-label-caption)"},children:$.fileBinary}):K.diff?(0,i.jsx)(h,{lines:K.diff,language:(0,d.f3)(X.path),folded:T,handle:Q,initialChange:!0}):"render"===z&&null!==K.content?(0,i.jsx)("div",{className:"md min-h-0 flex-1 overflow-auto px-6 py-4",style:{fontSize:14},children:(0,i.jsx)(a.oz,{remarkPlugins:[s.A],rehypePlugins:[[r.A,{detect:!1,ignoreMissing:!0}]],children:K.content})}):null!==K.content?(0,i.jsx)(g,{content:K.content,name:X.path}):null:(0,i.jsx)("div",{className:"flex min-h-0 flex-1 items-center justify-center",style:{fontSize:12.5,color:"var(--dsw-label-caption)"},children:$.panelLoading})]}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("div",{className:"pw-viewer-toolbar hairline-b",children:[(0,i.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-1.5 rounded-lg px-2",style:{background:"var(--dsw-hover)",height:26,maxWidth:360},children:[(0,i.jsx)(p.FG,{size:12,style:{flex:"none",color:"var(--dsw-label-caption)"}}),(0,i.jsx)("input",{value:_,onChange:e=>q(e.target.value),"aria-label":$.growthFilter,placeholder:$.growthFilter,className:"min-w-0 flex-1 bg-transparent",style:{fontSize:12}})]}),(0,i.jsx)("span",{style:{fontSize:11.5,color:"var(--dsw-label-caption)"},children:en?$.growthRoundLabel.replace("{n}",String(en)):""}),(0,i.jsx)("button",{type:"button",className:"pw-chip",onClick:t.expandAll,children:$.growthExpandAll}),(0,i.jsx)("button",{type:"button",className:"pw-chip",onClick:t.collapseAll,children:$.growthCollapseAll})]}),(0,i.jsx)(u.Q,{tree:t.tree,expanded:t.expanded,fresh:t.fresh,filter:_,selectedPath:null,onToggleDir:t.toggleDir,onExpandLazy:t.expandLazy,onOpenFile:e=>k(e.path,{from:e.from,lazy:e.lazy}),onReference:N,onOpenEditor:C,revealPath:O?.path??null,revealKey:O?.key,emptyText:$.viewerEmpty})]}),F&&(0,i.jsx)("div",{className:"pw-quick",onMouseDown:e=>e.target===e.currentTarget&&P(!1),children:(0,i.jsxs)("div",{className:"pw-quick-box popover",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2 px-2",style:{height:34},children:[(0,i.jsx)(p.FG,{size:14,style:{flex:"none",color:"var(--dsw-label-caption)"}}),(0,i.jsx)("input",{ref:G,value:A,onChange:e=>{I(e.target.value),U(0)},placeholder:$.viewerQuickOpen,className:"min-w-0 flex-1 bg-transparent",style:{fontSize:13},onKeyDown:e=>{if("ArrowDown"===e.key)e.preventDefault(),U(e=>Math.min(ee.length-1,e+1));else if("ArrowUp"===e.key)e.preventDefault(),U(e=>Math.max(0,e-1));else if("Enter"===e.key){e.preventDefault();let t=ee[H];t&&(k(t),P(!1))}}})]}),(0,i.jsx)("div",{className:"pw-quick-list",children:0===ee.length?(0,i.jsx)("div",{style:{fontSize:12.5,color:"var(--dsw-label-caption)",padding:"8px 10px"},children:$.viewerQuickOpenEmpty}):ee.map((e,t)=>(0,i.jsxs)("button",{type:"button",className:"pw-quick-item","data-active":t===H,onMouseEnter:()=>U(t),onClick:()=>{k(e),P(!1)},children:[(0,i.jsx)("img",{className:"pw-tree-icon",src:(0,f.s)(e.split("/").pop()??e),alt:""}),(0,i.jsx)("span",{className:"truncate",children:e.split("/").pop()}),(0,i.jsx)("span",{className:"min-w-0 truncate",style:{color:"var(--dsw-label-caption)",fontSize:11.5},children:e})]},e))})]})})]})})}}}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4632],{901:e=>{e.exports={mask:"ProviderSetupModal_mask__wwU3u",dialog:"ProviderSetupModal_dialog__BxSeI",builtinDialog:"ProviderSetupModal_builtinDialog__vA7_B",header:"ProviderSetupModal_header__Nvgmb",title:"ProviderSetupModal_title__ZIIXp",body:"ProviderSetupModal_body__QAlNu",builtinBody:"ProviderSetupModal_builtinBody___4EFo",field:"ProviderSetupModal_field__ZMO8M",label:"ProviderSetupModal_label__4_BYS",hint:"ProviderSetupModal_hint__yCwPV",input:"ProviderSetupModal_input__YZYV5",select:"ProviderSetupModal_select___PTpP",providerTrigger:"ProviderSetupModal_providerTrigger__TXtau",picker:"ProviderSetupModal_picker__VQdQc",providerText:"ProviderSetupModal_providerText__l9bwJ",providerName:"ProviderSetupModal_providerName__Hwwfg",providerMeta:"ProviderSetupModal_providerMeta____3za",menu:"ProviderSetupModal_menu__zO5CU",searchWrap:"ProviderSetupModal_searchWrap__5yw1r",searchIcon:"ProviderSetupModal_searchIcon__BZeD1",search:"ProviderSetupModal_search__j_n_8",providerList:"ProviderSetupModal_providerList__bMnFj",providerRow:"ProviderSetupModal_providerRow__Zf7fg",selectedMark:"ProviderSetupModal_selectedMark___8UDb",empty:"ProviderSetupModal_empty__4V1WK",advanced:"ProviderSetupModal_advanced__kWaTH",advancedButton:"ProviderSetupModal_advancedButton__efHwl",catalog:"ProviderSetupModal_catalog__mXakU",catalogHeader:"ProviderSetupModal_catalogHeader__0MDA4",catalogStatus:"ProviderSetupModal_catalogStatus__JRz0P",discoverButton:"ProviderSetupModal_discoverButton__GGuZX",discoverControls:"ProviderSetupModal_discoverControls___0_l8",allowPrivate:"ProviderSetupModal_allowPrivate__zZyZi",modelEmpty:"ProviderSetupModal_modelEmpty__h1N_8",modelList:"ProviderSetupModal_modelList__jkYVz",modelRow:"ProviderSetupModal_modelRow__mHfRv",removeModel:"ProviderSetupModal_removeModel___LjE1",addModel:"ProviderSetupModal_addModel__Q3KOU",error:"ProviderSetupModal_error__EAOK6",footer:"ProviderSetupModal_footer__zVp_c",footerButton:"ProviderSetupModal_footerButton__FL58k",primary:"ProviderSetupModal_primary__ArzeF",modelEntry:"ProviderSetupModal_modelEntry__G067u",rowToggle:"ProviderSetupModal_rowToggle__kc_Za",capacityRow:"ProviderSetupModal_capacityRow__0miDX",capacityField:"ProviderSetupModal_capacityField___TX70",capacityHint:"ProviderSetupModal_capacityHint__z_5re",rowError:"ProviderSetupModal_rowError__2vHrG",catalogError:"ProviderSetupModal_catalogError__ZL5D7",candidateMask:"ProviderSetupModal_candidateMask__YUZn7",candidateDialog:"ProviderSetupModal_candidateDialog__upECk",candidateHeader:"ProviderSetupModal_candidateHeader__bUvHV",candidateList:"ProviderSetupModal_candidateList__JRufC",candidateRow:"ProviderSetupModal_candidateRow__Omm_o",candidateId:"ProviderSetupModal_candidateId__7Hy7u",candidateName:"ProviderSetupModal_candidateName__D4rXE",candidateActions:"ProviderSetupModal_candidateActions__iptOe",candidateAll:"ProviderSetupModal_candidateAll__yhD_R",candidatePicked:"ProviderSetupModal_candidatePicked__cJ78H"}},4632:(e,t,a)=>{"use strict";a.r(t),a.d(t,{SettingsPanel:()=>z});var s=a(5155),l=a(2115),r=a(7650),i=a(560),n=a(9992);let o=[[/^amazon-bedrock$/,"bedrock-color"],[/^ant-ling$/,"antgroup-color"],[/^anthropic$/,"anthropic"],[/^azure-/,"azure-color"],[/^baseten$/,"baseten"],[/^cerebras$/,"cerebras-color"],[/^cloudflare-/,"cloudflare-color"],[/^deepseek$/,"deepseek-color"],[/^fireworks$/,"fireworks-color"],[/^github-copilot$/,"githubcopilot"],[/^google-vertex(?:-|$)/,"googlecloud-color"],[/^google$/,"google-color"],[/^groq$/,"groq"],[/^huggingface$/,"huggingface-color"],[/^kimi(?:-|$)/,"kimi-color"],[/^minimax/,"minimax-color"],[/^mistral$/,"mistral-color"],[/^moonshot(?:ai)?(?:-|$)/,"moonshot"],[/^nvidia$/,"nvidia-color"],[/^openai/,"openai"],[/^opencode(?:-|$)/,"opencode"],[/^openrouter$/,"openrouter-color"],[/^qwen(?:-|$)/,"qwen-color"],[/^together$/,"together-color"],[/^vercel(?:-|$)/,"vercel"],[/^xai$/,"xai"],[/^xiaomi(?:-|$)/,"xiaomimimo"],[/^zai(?:-|$)/,"zai"]];[...new Set(o.map(([,e])=>e))];let d=/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/,c=["openai-completions","openai-responses","anthropic-messages","google-generative-ai"];function u(e){let t=new Set(c);return[...c,...[...new Set(e.filter(e=>e&&!t.has(e)))].sort()]}function p({id:e,name:t,size:a=36}){let l,r=o.find(([t])=>t.test(e))?.[1]??null;return(0,s.jsx)("span",{"aria-hidden":"true",className:"inline-flex flex-none items-center justify-center overflow-hidden",style:{width:a,height:a,borderRadius:Math.max(10,Math.round(.3*a)),background:"#f7f7f5",border:"0.5px solid rgba(0,0,0,.09)",color:"#18191b",fontSize:Math.max(10,Math.round(.32*a)),fontWeight:750,letterSpacing:"-0.03em"},children:r?(0,s.jsx)("img",{src:`/provider-icons/${r}.svg`,alt:"",width:Math.round(.66*a),height:Math.round(.66*a)}):(l=t.trim().split(/[\s_-]+/).filter(Boolean)).length>=2?(l[0][0]+l[1][0]).toUpperCase():(l[0]??e).slice(0,2).toUpperCase()})}var m=a(1859);function x(e){let t=e&&"object"==typeof e&&!Array.isArray(e)?e:{id:"string"==typeof e?e:""};return{id:String(t.id??""),name:"string"==typeof t.name?t.name:"",contextWindow:"number"==typeof t.contextWindow?t.contextWindow:void 0,maxTokens:"number"==typeof t.maxTokens?t.maxTokens:void 0,source:t}}function h(e){let t=new Set;for(let a=0;a<e.length;a+=1){let s=e[a],l=s.id.trim();if(!l||t.has(l))return{index:a,reason:"id"};if(t.add(l),[s.contextWindow,s.maxTokens].some(e=>void 0!==e&&(!Number.isSafeInteger(e)||e<=0)))return{index:a,reason:"capacity"}}}function v(e){let t={...e.source},a=e.source?x(e.source):void 0;for(let s of["id","name","contextWindow","maxTokens"]){if(a&&Object.is(e[s],a[s]))continue;let l=e[s];if("id"===s||"name"===s){let e="string"==typeof l?l.trim():"";"id"===s||e?t[s]=e:delete t[s]}else"number"==typeof l&&Number.isSafeInteger(l)&&l>0?t[s]=l:delete t[s]}return t}function f(e,t,a){let s={...e};for(let a of["baseUrl","name","api"]){let l=t[a];void 0!==l&&l!==("string"==typeof e[a]?e[a]:"")&&(l.trim()?s[a]=l.trim():delete s[a])}return t.apiKey?.trim()&&(s.apiKey=t.apiKey.trim()),(t.models.length||Object.prototype.hasOwnProperty.call(e,"models"))&&(s.models=t.models.map(v)),t.models.length&&void 0===e.models&&void 0===s.api&&a&&(s.api=a),s}var g=a(901),b=a.n(g);function y({mode:e,providers:t,existingIds:a,onClose:r,onSaveBuiltin:i,onSaveCustom:o,onOAuthLogin:c}){let{t:x}=(0,m.s)(),[f,g]=(0,l.useState)(t[0]?.id??""),[w,S]=(0,l.useState)(!1),[N,k]=(0,l.useState)(""),[C,_]=(0,l.useState)("api_key"),[z,P]=(0,l.useState)(""),[E,M]=(0,l.useState)(!1),[T,$]=(0,l.useState)(""),[R,D]=(0,l.useState)(""),[L,W]=(0,l.useState)(""),F=u(t.flatMap(e=>e.apis)),[I,A]=(0,l.useState)(F.includes("openai-completions")?"openai-completions":F[0]??"openai-completions"),[O,U]=(0,l.useState)([]),[K,B]=(0,l.useState)(!1),[H,J]=(0,l.useState)(""),Z=(0,l.useRef)(null),q=t.find(e=>e.id===f),G=t.filter(e=>{let t=N.trim().toLocaleLowerCase();return!t||e.name.toLocaleLowerCase().includes(t)||e.id.toLocaleLowerCase().includes(t)});(0,l.useEffect)(()=>{let e=e=>{"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),w?S(!1):r())};return document.addEventListener("keydown",e,!0),()=>document.removeEventListener("keydown",e,!0)},[r,w]),(0,l.useEffect)(()=>{if(!w)return;let e=e=>{Z.current?.contains(e.target)||S(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[w]);let Q=(e,t)=>{U(a=>a.map((a,s)=>s===e?{...a,...t}:a))},V=h(O),X=R.trim(),Y=d.test(X),ee=Y&&!a.includes(X)&&!!T.trim()&&O.length>0&&!V,et=!!q&&("oauth"===C||!V),ea=(0,l.useRef)(!1),es=async()=>{if(!ea.current&&("builtin"===e?et:ee)){ea.current=!0,B(!0),J("");try{let t;if("builtin"===e&&q)if("oauth"===C&&c)t=await c(q.id);else{let e={};T.trim()&&(e.baseUrl=T.trim()),O.length&&(e.api=q.apis[0]??"openai-completions",e.models=O.map(v)),t=await i({providerId:q.id,apiKey:z.trim(),config:e})}else t=await o({providerId:X,config:{name:L.trim()||X,baseUrl:T.trim(),api:I,...z.trim()?{apiKey:z.trim()}:{},models:O.map(v)}});t.success?r():J(t.error||x.toastError)}catch(e){J(e instanceof Error?e.message:x.toastError)}finally{ea.current=!1,B(!1)}}},el=async t=>{if(!T.trim())throw Error(x.apiAddress);let a=await fetch("/api/models",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"discoverModels",baseUrl:T.trim(),api:"builtin"===e?q?.apis[0]:I,apiKey:z.trim(),providerId:"builtin"===e?q?.id:void 0,allowPrivate:t})}),s=await a.json();if(!a.ok||!s.success)throw Error(s.error||x.toastError);return(s.data.models??[]).map(e=>({id:e.id,name:e.name??""}))};return(0,s.jsx)("div",{className:b().mask,"data-provider-modal":"true",onMouseDown:e=>{e.target===e.currentTarget&&r()},children:(0,s.jsxs)("section",{className:`${b().dialog} ${"builtin"===e?b().builtinDialog:""}`,role:"dialog","aria-modal":"true","aria-labelledby":"provider-setup-title",children:[(0,s.jsxs)("header",{className:b().header,children:[(0,s.jsx)("h2",{id:"provider-setup-title",className:b().title,children:"builtin"===e?x.addProvider:x.customProviderTitle}),(0,s.jsx)("button",{className:"icon-btn",title:x.close,"aria-label":x.close,onClick:r,children:(0,s.jsx)(n.Bh,{size:17})})]}),(0,s.jsxs)("div",{className:`${b().body} ${"builtin"===e?b().builtinBody:""}`,children:["builtin"===e?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:b().field,children:[(0,s.jsx)("label",{className:b().label,children:x.providerLabel}),(0,s.jsxs)("div",{className:b().picker,ref:Z,children:[(0,s.jsxs)("button",{className:b().providerTrigger,"data-open":w,onClick:()=>S(e=>!e),children:[q?(0,s.jsx)(p,{id:q.id,name:q.name,size:34}):null,(0,s.jsxs)("span",{className:b().providerText,children:[(0,s.jsx)("span",{className:b().providerName,children:q?.name??x.selectProvider}),q?(0,s.jsx)("span",{className:b().providerMeta,children:q.id}):null]}),(0,s.jsx)(n.Cd,{size:15})]}),w?(0,s.jsxs)("div",{className:b().menu,children:[(0,s.jsxs)("div",{className:b().searchWrap,children:[(0,s.jsx)("span",{className:b().searchIcon,children:(0,s.jsx)(n.FG,{size:15})}),(0,s.jsx)("input",{autoFocus:!0,className:b().search,value:N,onChange:e=>k(e.target.value),placeholder:x.searchProviders})]}),(0,s.jsxs)("div",{className:b().providerList,children:[G.map(e=>(0,s.jsxs)("button",{className:b().providerRow,"data-selected":e.id===f,onClick:()=>{g(e.id),_("api_key"),P(""),A(e.apis[0]??"openai-completions"),$(""),U([]),S(!1)},children:[(0,s.jsx)(p,{id:e.id,name:e.name,size:38}),(0,s.jsxs)("span",{className:b().providerText,children:[(0,s.jsx)("span",{className:b().providerName,children:e.name}),(0,s.jsxs)("span",{className:b().providerMeta,children:[e.id," \xb7 ",x.modelCount.replace("{count}",String(e.modelCount))]})]}),e.id===f?(0,s.jsx)("span",{className:b().selectedMark,children:(0,s.jsx)(n.df,{size:16})}):null]},e.id)),0===G.length?(0,s.jsx)("div",{className:b().empty,children:x.noProviderMatches}):null]})]}):null]})]}),q?.authTypes.includes("oauth")&&c?(0,s.jsxs)("div",{className:b().field,children:[(0,s.jsx)("label",{className:b().label,children:x.authMethod}),(0,s.jsxs)("select",{className:b().select,value:C,onChange:e=>_(e.target.value),children:[(0,s.jsx)("option",{value:"api_key",children:x.authMethodApiKey}),(0,s.jsx)("option",{value:"oauth",children:x.oauthLogin})]})]}):null,"api_key"===C?(0,s.jsxs)("div",{className:b().field,children:[(0,s.jsx)("label",{className:b().label,children:q?.apiKeyLabel??x.apiKey}),(0,s.jsx)("input",{className:b().input,type:"password",value:z,onChange:e=>P(e.target.value),placeholder:x.apiKeyOptional})]}):null,(0,s.jsxs)("div",{className:b().advanced,children:[(0,s.jsxs)("button",{className:b().advancedButton,"data-open":E,onClick:()=>M(e=>!e),children:[(0,s.jsx)(n.Cd,{size:15}),x.customSettings]}),E?(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{className:b().field,children:[(0,s.jsx)("label",{className:b().label,children:x.apiAddress}),(0,s.jsx)("input",{className:b().input,value:T,onChange:e=>$(e.target.value),placeholder:q?.baseUrl||x.providerDefault})]}),(0,s.jsx)(j,{models:O,setModels:U,updateModel:Q,inheritedCount:q?.modelCount??0,discover:el,discoverDisabled:!T.trim()})]}):null]})]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:b().field,children:[(0,s.jsx)("label",{className:b().label,children:x.providerId}),(0,s.jsx)("input",{className:b().input,autoFocus:!0,value:R,onChange:e=>D(e.target.value.toLocaleLowerCase()),placeholder:"acme-gateway"}),(0,s.jsx)("div",{className:b().hint,children:x.providerIdHint}),X&&!Y?(0,s.jsx)("div",{className:b().hint,style:{color:"var(--dsw-danger)"},children:x.providerIdInvalid}):null,X&&a.includes(X)?(0,s.jsx)("div",{className:b().hint,style:{color:"var(--dsw-danger)"},children:x.providerIdTaken}):null]}),(0,s.jsxs)("div",{className:b().field,children:[(0,s.jsx)("label",{className:b().label,children:x.displayName}),(0,s.jsx)("input",{className:b().input,value:L,onChange:e=>W(e.target.value),placeholder:x.displayName})]}),(0,s.jsxs)("div",{className:b().field,children:[(0,s.jsx)("label",{className:b().label,children:x.apiAddress}),(0,s.jsx)("input",{className:b().input,value:T,onChange:e=>$(e.target.value),placeholder:"https://gateway.example/v1"})]}),(0,s.jsxs)("div",{className:b().field,children:[(0,s.jsx)("label",{className:b().label,children:x.apiProtocol}),(0,s.jsx)("select",{className:b().select,value:I,onChange:e=>A(e.target.value),children:F.map(e=>(0,s.jsx)("option",{value:e,children:e},e))})]}),(0,s.jsxs)("div",{className:b().field,children:[(0,s.jsx)("label",{className:b().label,children:x.apiKey}),(0,s.jsx)("input",{className:b().input,type:"password",value:z,onChange:e=>P(e.target.value),placeholder:x.apiKeyOptional}),(0,s.jsx)("div",{className:b().hint,children:x.customApiKeyHint})]}),(0,s.jsx)(j,{models:O,setModels:U,updateModel:Q,discover:el,discoverDisabled:!T.trim()})]}),H?(0,s.jsx)("div",{className:b().error,children:H}):null]}),(0,s.jsxs)("footer",{className:b().footer,children:[(0,s.jsx)("button",{className:b().footerButton,onClick:r,children:x.cancel}),(0,s.jsx)("button",{className:`${b().footerButton} ${b().primary}`,disabled:K||("builtin"===e?!et:!ee),onClick:es,children:K?x.saving:"builtin"===e?x.save:x.createProvider})]})]})})}function j({models:e,setModels:t,updateModel:a,inheritedCount:r,discover:i,discoverDisabled:o}){let{t:d}=(0,m.s)(),[c,u]=(0,l.useState)(new Set),[p,x]=(0,l.useState)(!1),[v,f]=(0,l.useState)(""),[g,y]=(0,l.useState)(!1),[w,S]=(0,l.useState)(null),[N,k]=(0,l.useState)(new Set),[C,_]=(0,l.useState)({}),z=(e,t,a)=>{var s;return C[`${t}:${a}`]??(void 0===(s=e[a])||!Number.isFinite(s)||s<=0?"":s>=1e6&&s%1e6==0?`${s/1e6}M`:s>=1e3&&s%1e3==0?`${s/1e3}K`:String(s))},P=(e,t,s)=>{_(a=>({...a,[`${e}:${t}`]:s})),a(e,{[t]:function(e){let t=e.trim().toLowerCase();if(!t)return;let a=/^(\d+(?:\.\d+)?)\s*([km]?)$/.exec(t);if(!a)return NaN;let s=Math.round(Number(a[1])*("k"===a[2]?1e3:"m"===a[2]?1e6:1));return Number.isSafeInteger(s)&&s>0?s:NaN}(s)})},E=async()=>{if(i&&!p){x(!0),f("");try{let t=await i(g);if(!t.length)return void f(d.discoverEmpty);let a=new Set(e.map(e=>e.id.trim()).filter(Boolean));S(t),k(new Set(t.filter(e=>!a.has(e.id.trim())).map(e=>e.id)))}catch(e){f(e instanceof Error?e.message:d.toastError)}finally{x(!1)}}},M=()=>{S(null),k(new Set)},T=w??[],$=T.length>0&&T.every(e=>N.has(e.id)),R=h(e);return(0,s.jsxs)("div",{className:b().catalog,children:[(0,s.jsxs)("div",{className:b().catalogHeader,children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{className:b().label,children:d.modelCatalog}),(0,s.jsx)("div",{className:b().catalogStatus,children:r?d.usingDefaultModels.replace("{count}",String(r)):d.customModelsRequired})]}),i?(0,s.jsxs)("div",{className:b().discoverControls,children:[(0,s.jsxs)("label",{className:b().allowPrivate,title:d.allowPrivateHint,children:[(0,s.jsx)("input",{type:"checkbox",checked:g,onChange:e=>y(e.target.checked)}),d.allowPrivateDiscovery]}),(0,s.jsx)("button",{className:b().discoverButton,disabled:o||p,onClick:()=>void E(),children:p?d.discoveringModels:d.discoverModels})]}):null]}),v?(0,s.jsx)("div",{className:b().catalogError,children:v}):null,e.length?(0,s.jsx)("div",{className:b().modelList,children:e.map((e,l)=>{let r=c.has(l),i=Number.isNaN(e.contextWindow)||Number.isNaN(e.maxTokens);return(0,s.jsxs)("div",{className:b().modelEntry,children:[(0,s.jsxs)("div",{className:b().modelRow,children:[(0,s.jsx)("button",{type:"button",className:b().rowToggle,title:d.capacityFields,onClick:()=>u(e=>{let t=new Set(e);return t.delete(l)||t.add(l),t}),children:(0,s.jsx)(n.Cd,{size:13,style:{transform:r?"rotate(0deg)":"rotate(-90deg)",transition:"transform 120ms ease"}})}),(0,s.jsx)("input",{className:b().input,style:{borderColor:e.id.trim()||R?.index!==l?void 0:"var(--dsw-danger)"},value:e.id,onChange:e=>a(l,{id:e.target.value}),placeholder:d.modelId}),(0,s.jsx)("input",{className:b().input,value:e.name,onChange:e=>a(l,{name:e.target.value}),placeholder:d.displayNameOptional}),(0,s.jsx)("button",{className:b().removeModel,title:d.delete,onClick:()=>{t(e=>e.filter((e,t)=>t!==l)),u(e=>{let t=new Set;for(let a of e)a!==l&&t.add(a>l?a-1:a);return t}),_(e=>{let t={};for(let[a,s]of Object.entries(e)){let e=Number(a.slice(0,a.indexOf(":")));e!==l&&(t[e>l?`${e-1}${a.slice(a.indexOf(":"))}`:a]=s)}return t})},children:(0,s.jsx)(n.Vd,{size:15})})]}),r?(0,s.jsxs)("div",{className:b().capacityRow,children:[(0,s.jsxs)("label",{className:b().capacityField,children:[(0,s.jsx)("span",{children:d.contextWindowLabel}),(0,s.jsx)("input",{className:b().input,style:{borderColor:Number.isNaN(e.contextWindow)?"var(--dsw-danger)":void 0},value:z(e,l,"contextWindow"),onChange:e=>P(l,"contextWindow",e.target.value),placeholder:"128K"})]}),(0,s.jsxs)("label",{className:b().capacityField,children:[(0,s.jsx)("span",{children:d.maxTokensLabel}),(0,s.jsx)("input",{className:b().input,style:{borderColor:Number.isNaN(e.maxTokens)?"var(--dsw-danger)":void 0},value:z(e,l,"maxTokens"),onChange:e=>P(l,"maxTokens",e.target.value),placeholder:"16K"})]}),(0,s.jsx)("span",{className:b().capacityHint,children:d.capacityHint})]}):null,i?(0,s.jsx)("div",{className:b().rowError,children:d.capacityInvalid.replace("{n}",String(l+1))}):null]},l)})}):(0,s.jsx)("div",{className:b().modelEmpty,children:r?d.modelCatalogEmptyBuiltin:d.modelCatalogEmptyCustom}),(0,s.jsxs)("button",{className:b().addModel,onClick:()=>t(e=>[...e,{id:"",name:""}]),children:[(0,s.jsx)(n.Xh,{size:14}),d.addModel]}),w?(0,s.jsx)("div",{className:b().candidateMask,children:(0,s.jsxs)("div",{className:b().candidateDialog,role:"dialog","aria-modal":"true","aria-label":d.discoverModels,children:[(0,s.jsx)("div",{className:b().candidateHeader,children:(0,s.jsx)("span",{children:d.candidateTitle.replace("{count}",String(w.length))})}),(0,s.jsxs)("div",{className:b().candidateList,children:[T.map(e=>(0,s.jsxs)("label",{className:b().candidateRow,children:[(0,s.jsx)("input",{type:"checkbox",checked:N.has(e.id),onChange:()=>{let t;return t=e.id,k(e=>{let a=new Set(e);return a.delete(t)||a.add(t),a})}}),(0,s.jsx)("span",{className:b().candidateId,children:e.id}),e.name?(0,s.jsx)("span",{className:b().candidateName,children:e.name}):null]},e.id)),0===T.length?(0,s.jsx)("div",{className:b().modelEmpty,children:"—"}):null]}),(0,s.jsxs)("div",{className:b().candidateActions,children:[(0,s.jsxs)("label",{className:b().candidateAll,children:[(0,s.jsx)("input",{type:"checkbox",checked:$,onChange:()=>k(e=>{let t=new Set(e);return T.every(e=>t.has(e.id))?T.forEach(e=>t.delete(e.id)):T.forEach(e=>t.add(e.id)),t})}),d.candidateAll]}),(0,s.jsx)("span",{className:b().candidatePicked,children:d.candidatePicked.replace("{n}",String(N.size))}),(0,s.jsx)("button",{className:b().footerButton,onClick:M,children:d.cancel}),(0,s.jsx)("button",{className:`${b().footerButton} ${b().primary}`,disabled:0===N.size,onClick:()=>{w&&(t(e=>{let t=new Map(e.map(e=>[e.id.trim(),e]));for(let e of w){let a=e.id.trim();!a||!N.has(a)||t.has(a)||t.set(a,{id:a,name:e.name??""})}return[...t.values()]}),M())},children:d.candidateAdopt.replace("{n}",String(N.size))})]})]})}):null]})}let w=["claude","codex","grok","zcode","dsh","opencode"],S=e=>`${e.source}:${e.externalId}`;function N({cwd:e}){let{t}=(0,m.s)(),[a,r]=(0,l.useState)([]),[i,o]=(0,l.useState)([]),[d,c]=(0,l.useState)(new Set),[u,p]=(0,l.useState)(new Set),[x,h]=(0,l.useState)(!1),[v,f]=(0,l.useState)(!1),[g,b]=(0,l.useState)(null),[y,j]=(0,l.useState)(null),[k,C]=(0,l.useState)([]),[_,z]=(0,l.useState)(e),P=(0,l.useCallback)(async()=>{h(!0),j(null);try{let e=await fetch("/api/sessions/import"),a=await e.json();if(!a.success)return void j(a.error||t.toastError);let s=a.data.sessions??[],l=new Set(a.data.imported??[]),i=new Set(s.map(S));r(s),o(a.data.errors??[]),c(l),p(e=>new Set([...e].filter(e=>i.has(e)&&!l.has(e))))}catch(e){j(e instanceof Error?e.message:String(e))}finally{h(!1)}},[t]);(0,l.useEffect)(()=>{(async()=>{try{let e=await (await fetch("/api/workspaces")).json();e.success&&C(e.data.workspaces??[])}catch{}})()},[]),(0,l.useEffect)(()=>{P()},[P]);let E=(0,l.useMemo)(()=>{let e=new Map;for(let t of a){let a=e.get(t.source);a?a.push(t):e.set(t.source,[t])}return w.filter(t=>e.has(t)).map(t=>{let a=[...e.get(t)].sort((e,t)=>(t.updatedAt??t.createdAt??0)-(e.updatedAt??e.createdAt??0));return{source:t,rows:a,imported:a.filter(e=>d.has(S(e))).length}})},[a,d]),[M,T]=(0,l.useState)(""),$=E.reduce((e,t)=>{let a=t.rows[0],s=a?.updatedAt??a?.createdAt??0;return!e||s>e.at?{source:t.source,at:s}:e},null)?.source??"",R=M&&E.some(e=>e.source===M)?M:$,D=E.find(e=>e.source===R),L=(e,t)=>{p(a=>{let s=new Set(a);for(let a of e)d.has(S(a))||(t?s.add(S(a)):s.delete(S(a)));return s})},W=async()=>{if(!u.size)return;let e=a.filter(e=>u.has(S(e))).map(e=>({source:e.source,externalId:e.externalId}));f(!0),j(null),b(null);try{let a=await fetch("/api/sessions/import",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessions:e,fallbackCwd:_||void 0})}),s=await a.json();if(!s.success)return void j(s.error||t.toastError);b(s.data),p(new Set),await P()}catch(e){j(e instanceof Error?e.message:String(e))}finally{f(!1)}},F=e=>({claude:t.importSourceClaude,codex:t.importSourceCodex,grok:t.importSourceGrok,zcode:t.importSourceZcode,dsh:t.importSourceDsh,opencode:t.importSourceOpencode})[e]??e,I=g?.results.filter(e=>"failed"===e.status)??[],A=g?.results.filter(e=>"skipped"===e.status)??[],O=g?.results.filter(e=>"imported"===e.status&&e.skipped?.length)??[];return(0,s.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"session-import",children:[(0,s.jsx)("div",{style:{fontSize:12,color:"var(--dsw-label-caption)"},children:t.importDesc}),(0,s.jsx)("div",{style:{fontSize:11.5,color:"var(--dsw-label-caption)"},title:t.importLimitHintTooltip,"data-testid":"import-limit-hint",children:t.importLimitHint.replace("{n}",String(15))}),(0,s.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,s.jsxs)("button",{className:"flex items-center gap-1.5 rounded-lg px-2.5 py-1.5",style:{fontSize:12,border:"0.5px solid var(--dsw-border-l2)"},onClick:()=>void P(),disabled:x,"data-testid":"import-rescan",children:[(0,s.jsx)(n.Ct,{size:13})," ",x?t.importScanning:t.importRescan]}),(0,s.jsx)("span",{style:{fontSize:12,color:"var(--dsw-label-caption)"},children:t.importFallbackWorkspace}),(0,s.jsx)("select",{className:"rounded-lg px-2 py-1",style:{fontSize:12,border:"0.5px solid var(--dsw-border-l2)",background:"transparent",maxWidth:260},value:_,onChange:e=>z(e.target.value),"aria-label":t.importFallbackWorkspace,"data-testid":"import-fallback",children:(k.includes(_)||!_?k:[_,...k]).map(e=>(0,s.jsx)("option",{value:e,children:e},e))}),(0,s.jsx)("div",{className:"flex-1"}),(0,s.jsx)("button",{className:"rounded-lg px-2.5 py-1.5",style:{fontSize:12,color:"var(--dsw-label-tertiary)"},onClick:()=>p(new Set),disabled:!u.size,children:t.importClearSelection}),(0,s.jsxs)("button",{className:"flex items-center gap-1.5 rounded-lg px-3 py-1.5",style:{fontSize:12,background:u.size&&!v?"var(--dsw-accent)":"var(--dsw-hover)",color:u.size&&!v?"#fff":"var(--dsw-label-caption)"},onClick:()=>void W(),disabled:!u.size||v,"data-testid":"import-run",children:[(0,s.jsx)(n.FQ,{size:13})," ",v?t.importRunning:t.importRun.replace("{n}",String(u.size))]})]}),y&&(0,s.jsx)("div",{role:"alert",className:"rounded-lg px-3 py-2",style:{fontSize:12.5,background:"var(--dsw-hover)",color:"var(--dsw-danger)"},children:y}),i.map(e=>(0,s.jsx)("div",{className:"rounded-lg px-3 py-2",style:{fontSize:12,background:"var(--dsw-hover)",color:"var(--dsw-label-tertiary)"},children:t.importSourceError.replace("{source}",F(e.source)).replace("{message}",e.message)},e.source)),g&&(0,s.jsxs)("div",{className:"rounded-2xl px-4 py-3",style:{border:"0.5px solid var(--dsw-border-l2)"},"data-testid":"import-report",children:[(0,s.jsx)("div",{style:{fontSize:13},children:t.importReportSummary.replace("{imported}",String(g.imported)).replace("{skipped}",String(g.skipped)).replace("{failed}",String(g.failed))}),A.map(e=>(0,s.jsxs)("div",{className:"mt-1",style:{fontSize:11.5,color:"var(--dsw-label-caption)"},children:[F(e.source)," \xb7 ",e.title||e.externalId," — ",e.reason]},`skip-${e.source}-${e.externalId}`)),O.map(e=>(0,s.jsxs)("div",{className:"mt-1",style:{fontSize:11.5,color:"var(--dsw-label-caption)"},children:[F(e.source)," \xb7 ",e.title||e.externalId," — ",e.skipped?.join(";")]},`note-${e.source}-${e.externalId}`)),I.map(e=>(0,s.jsxs)("div",{className:"mt-1",style:{fontSize:11.5,color:"var(--dsw-danger)"},children:[F(e.source)," \xb7 ",e.title||e.externalId," — ",e.reason]},`fail-${e.source}-${e.externalId}`))]}),!x&&!a.length&&!i.length&&(0,s.jsx)("div",{style:{fontSize:13,color:"var(--dsw-label-caption)"},children:t.importEmpty}),E.length>0&&(0,s.jsx)("div",{className:"flex flex-wrap items-center gap-2 p-1.5 rounded-2xl bg-slate-100/80 dark:bg-slate-900/60",role:"tablist","aria-label":t.importPickSource,"data-testid":"import-source-tabs",children:E.map(e=>{let t=e.source===R;return(0,s.jsxs)("button",{type:"button",role:"tab","aria-selected":t,className:`clay-btn rounded-xl px-3.5 py-1.5 transition-all text-xs font-medium flex items-center gap-1.5 ${t?"clay-btn-peach text-white shadow-sm font-semibold":"clay-btn-soft text-slate-600 dark:text-slate-300"}`,onClick:()=>T(e.source),"data-testid":`import-source-${e.source}`,children:[(0,s.jsx)("span",{children:F(e.source)}),(0,s.jsx)("span",{className:`text-[10px] px-1.5 py-0.2 rounded-full ${t?"bg-white/30 text-white":"bg-slate-200 dark:bg-slate-700 text-slate-500"}`,children:e.rows.length})]},e.source)})}),D&&(0,s.jsxs)("div",{className:"flex flex-col gap-2","data-testid":`import-group-${D.source}`,children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{style:{fontSize:11.5,color:"var(--dsw-label-caption)"},children:t.importGroupCount.replace("{n}",String(D.rows.length)).replace("{imported}",String(D.imported))}),(0,s.jsx)("div",{className:"flex-1"}),(0,s.jsx)("button",{className:"clay-btn clay-btn-soft rounded-lg px-2.5 py-1 text-xs",onClick:()=>L(D.rows,!0),children:t.importSelectAll}),(0,s.jsx)("button",{className:"clay-btn clay-btn-soft rounded-lg px-2.5 py-1 text-xs text-slate-400",onClick:()=>L(D.rows,!1),children:t.importSelectNone})]}),(0,s.jsx)("div",{className:"flex flex-col gap-1.5",children:D.rows.map(e=>{let a=S(e),l=d.has(a),r=u.has(a);return(0,s.jsxs)("label",{className:`clay-card flex cursor-pointer items-center gap-3 rounded-2xl px-3.5 py-2.5 transition-all hover:translate-x-0.5 ${r?"ring-2 ring-emerald-500 bg-white dark:bg-slate-800":"bg-white/70 dark:bg-slate-900/60"}`,style:{opacity:l?.55:1},children:[(0,s.jsx)("input",{type:"checkbox",checked:r,disabled:l,onChange:()=>{!d.has(S(e))&&p(t=>{let a=new Set(t);return a.has(S(e))?a.delete(S(e)):a.add(S(e)),a})}}),(0,s.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,s.jsx)("div",{className:"truncate text-xs font-medium text-slate-800 dark:text-slate-100",title:e.title,children:e.title||t.importUntitled}),(0,s.jsx)("div",{className:"truncate text-[11px] text-slate-400",title:e.projectPath,children:e.projectPath||t.importNoProject})]}),l&&(0,s.jsx)("span",{className:"clay-badge rounded-full px-2 py-0.5 text-[10px] bg-slate-100 text-slate-400",children:t.importAlready}),(0,s.jsx)("span",{style:{fontSize:11,color:"var(--dsw-label-caption)",whiteSpace:"nowrap"},children:"number"==typeof e.messageCount?t.importMessages.replace("{n}",String(e.messageCount)):"—"}),(0,s.jsx)("span",{style:{fontSize:11,color:"var(--dsw-label-caption)",whiteSpace:"nowrap"},children:function(e){if(!e)return"";let t=new Date(e);if(Number.isNaN(t.getTime()))return"";let a=e=>String(e).padStart(2,"0");return`${t.getFullYear()}-${a(t.getMonth()+1)}-${a(t.getDate())}`}(e.updatedAt??e.createdAt)})]},a)})})]})]})}var k=a(6540);let C=["xai","openai-codex","anthropic","deepseek","openrouter","moonshotai","moonshotai-cn","kimi-coding","github-copilot","vercel-ai-gateway","opencode-go"];function _(e){return C.includes(e)}function z({open:e,onClose:t,cwd:a,toolPreset:r,onToolPresetChange:i,tools:o,onSetTools:d,onOpenFileContent:c}){let{t:u,lang:p,setLang:x}=(0,m.s)(),[h,v]=(0,l.useState)("general");if((0,l.useEffect)(()=>{if(!e)return;let a=e=>{"Escape"!==e.key||document.querySelector('[data-provider-modal="true"]')||t()};return document.addEventListener("keydown",a),()=>document.removeEventListener("keydown",a)},[e,t]),!e)return null;let f=[{id:"general",label:u.setGeneral,icon:(0,s.jsx)(n.Ec,{size:15})},{id:"models",label:u.setModels,icon:(0,s.jsx)(n.se,{size:15})},{id:"tools",label:u.toolsSection,icon:(0,s.jsx)(n.DI,{size:15})},{id:"plugins",label:u.setPlugins,icon:(0,s.jsx)(n.q2,{size:15})},{id:"skills",label:u.setSkills,icon:(0,s.jsx)(n.i7,{size:15})},{id:"import",label:u.importSessions,icon:(0,s.jsx)(n.FQ,{size:15})}];return(0,s.jsx)("div",{className:"modal-mask fixed inset-0 z-[100] flex items-center justify-center",onMouseDown:e=>{e.target===e.currentTarget&&t()},children:(0,s.jsxs)("div",{className:"settings-dialog clay-card relative flex flex-col gap-4 overflow-hidden bg-white/95 dark:bg-slate-900/95 p-6 shadow-2xl backdrop-blur-md",style:{width:960,maxWidth:"calc(100vw - 32px)",height:"min(840px, calc(100vh - 48px))",borderRadius:36},children:[(0,s.jsxs)("div",{className:"flex items-center justify-between pb-3 border-b border-slate-200/60 dark:border-slate-800/60 shrink-0",children:[(0,s.jsxs)("div",{className:"flex items-center gap-3",children:[(0,s.jsx)("div",{className:"w-10 h-10 rounded-2xl clay-inset flex items-center justify-center text-emerald-600 dark:text-emerald-400 flex-none",children:(0,s.jsx)(n.Ec,{size:20})}),(0,s.jsxs)("div",{className:"flex flex-col",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("h1",{className:"text-base sm:text-lg font-extrabold text-slate-800 dark:text-slate-100 tracking-tight",children:"全局设置中心"}),(0,s.jsx)("span",{className:"px-2.5 py-0.5 rounded-full clay-inset text-emerald-600 dark:text-emerald-400 font-mono text-[11px] font-semibold",children:"config.json"})]}),(0,s.jsx)("p",{className:"text-xs text-slate-400 hidden sm:block",children:"管理工作台外观基调、语言偏好、模型调度与集成插件环境"})]})]}),(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsxs)("button",{type:"button",className:"clay-btn clay-btn-soft px-3 py-1.5 text-xs text-slate-700 dark:text-slate-200 flex items-center gap-1.5",onClick:()=>window.open("/api/config","_blank"),children:[(0,s.jsx)(n.FQ,{size:14,className:"text-sky-500"}),(0,s.jsx)("span",{children:u.openConfigFile})]}),(0,s.jsx)("button",{type:"button",className:"clay-btn clay-btn-soft w-8 h-8 rounded-full text-slate-500 hover:text-rose-500 transition-colors","aria-label":u.close,onClick:t,children:(0,s.jsx)(n.Bh,{size:15})})]})]}),(0,s.jsxs)("div",{className:"grid grid-cols-12 gap-5 min-h-0 flex-1 overflow-hidden",children:[(0,s.jsx)("div",{className:"col-span-12 md:col-span-3 flex flex-col gap-3 min-h-0 overflow-y-auto",children:(0,s.jsx)("div",{className:"clay-inset p-2 rounded-2xl flex flex-col gap-1.5 shrink-0",children:f.map(e=>{let t=h===e.id;return(0,s.jsxs)("button",{type:"button",className:`flex items-center justify-between px-3.5 py-2.5 rounded-xl text-xs font-semibold transition-all ${t?"clay-card text-emerald-700 dark:text-emerald-300 font-bold bg-white dark:bg-slate-800 shadow-sm":"text-slate-600 dark:text-slate-300 hover:bg-white/60 dark:hover:bg-slate-800/60"}`,onClick:()=>v(e.id),children:[(0,s.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,s.jsx)("span",{className:t?"text-emerald-500":"text-slate-400",children:e.icon}),(0,s.jsx)("span",{children:e.label})]}),t&&(0,s.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-emerald-500"})]},e.id)})})}),(0,s.jsxs)("div",{className:"col-span-12 md:col-span-9 min-h-0 flex-1 overflow-y-auto pr-2",children:["general"===h&&(0,s.jsx)(E,{lang:p,setLang:x}),"models"===h&&(0,s.jsx)(W,{}),"skills"===h&&(0,s.jsx)(B,{cwd:a,onOpenFileContent:c}),"tools"===h&&(0,s.jsx)(K,{toolPreset:r,onToolPresetChange:i,tools:o,onSetTools:d}),"plugins"===h&&(0,s.jsx)(H,{cwd:a}),"import"===h&&(0,s.jsx)(N,{cwd:a})]})]})]})})}let P=[{id:"piweb",labelKey:"themePiWeb",nameZh:"PiWeb \xb7 工作台",nameEn:"PiWeb \xb7 Workbench",light:"#34D399",dark:"#A7F3D0",accent:"#34D399"},{id:"ocean-ink",labelKey:"themeOceanInk",nameZh:"海与墨",nameEn:"Ocean Ink",light:"#38BDF8",dark:"#0284C7",accent:"#38BDF8"},{id:"silver-steel",labelKey:"themeSilverSteel",nameZh:"银钢",nameEn:"Silver Steel",light:"#E2E8F0",dark:"#475569",accent:"#94A3B8"},{id:"limestone-coal",labelKey:"themeLimestoneCoal",nameZh:"石灰与煤炭",nameEn:"Limestone & Coal",light:"#FB923C",dark:"#1E293B",accent:"#FB923C"},{id:"linen-moss",labelKey:"themeLinenMoss",nameZh:"亚麻与苔绿",nameEn:"Linen & Moss",light:"#FFDCC5",dark:"#006C4B",accent:"#006C4B"},{id:"nord-paper",labelKey:"themeNordPaper",nameZh:"北欧纸墨",nameEn:"Nordic Paper",light:"#F6FAFE",dark:"#00668A",accent:"#00668A"},{id:"pebrel",labelKey:"themePebrel",nameZh:"Pebrel",nameEn:"Pebrel",light:"#818CF8",dark:"#EEF2FF",accent:"#818CF8"}];function E({lang:e,setLang:t}){let{t:a}=(0,m.s)(),[r,n]=(0,l.useState)("piweb"),[o,d]=(0,l.useState)("system"),[c,u]=(0,l.useState)(14),[p,x]=(0,l.useState)(14),[h,v]=(0,l.useState)("steer"),[f,g]=(0,l.useState)("ask"),[b,y]=(0,l.useState)(!1),[j,w]=(0,l.useState)(null),[S,N]=(0,l.useState)(null),[C,_]=(0,l.useState)(null),[z,W]=(0,l.useState)(!1),[F,I]=(0,l.useState)(!1),[A,O]=(0,l.useState)(!0),[U,K]=(0,l.useState)(!1),[B,H]=(0,l.useState)(null),[J,Z]=(0,l.useState)({reserveTokens:"",keepRecentTokens:"",maxRetries:"",baseDelayMs:""}),q=async()=>{O(!0),H(null),y(!1);let e=async e=>{let t=await fetch(e),a=await t.json();if(!t.ok||!a.success)throw Error(a.error||`request failed (${t.status})`);return a.data},[t,a,s,l]=await Promise.allSettled([e("/api/security"),e("/api/pi-settings"),e("/api/version"),e("/api/web-auth")]);"fulfilled"===t.status&&(g(t.value.defaultProjectTrust),y(!0)),"fulfilled"===a.status?(w(a.value),Z({reserveTokens:String(a.value.compaction.reserveTokens),keepRecentTokens:String(a.value.compaction.keepRecentTokens),maxRetries:String(a.value.retry.maxRetries),baseDelayMs:String(a.value.retry.baseDelayMs)})):w(null),"fulfilled"===s.status&&s.value?.piWeb?N({piWeb:s.value.piWeb,piEngine:s.value.piEngine}):N(null),"fulfilled"===l.status&&"boolean"==typeof l.value?.enabled?_({enabled:l.value.enabled,authenticated:!0===l.value.authenticated}):_(null),[t,a,s].some(e=>"rejected"===e.status)&&H("load"),O(!1)};(0,l.useEffect)(()=>{n((0,k.m6)()),d((0,k.Xf)());let e=parseInt(localStorage.getItem("piweb.fontSize")??"14",10);Number.isNaN(e)||u(e);let t=parseInt(localStorage.getItem("piweb.chatFontSize")??"14",10);Number.isNaN(t)||x(t),v((0,i.$h)()),q()},[]);let G=async e=>{if(!j||U)return!1;K(!0),H(null);try{let t=await fetch("/api/pi-settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),a=await t.json();if(!t.ok||!a.success)throw Error(a.error||"save failed");return w(a.data),!0}catch{return H("save"),!1}finally{K(!1)}},Q=async(e,t)=>{if(!j)return;let a=J[t].trim(),s=Number(a);!a||!Number.isSafeInteger(s)||s<0||s>1e9?H("save"):s!==j[e][t]&&await G({[e]:{[t]:s}})},V=(e,t,a)=>(0,s.jsx)("input",{type:"number",min:0,value:J[t],disabled:!j||A||U,onChange:e=>Z(a=>({...a,[t]:e.target.value})),onBlur:()=>void Q(e,t),onKeyDown:e=>{"Enter"===e.key&&e.currentTarget.blur()},className:"rounded-lg px-2 py-1",title:a,style:{width:90,textAlign:"right",background:"var(--dsw-hover)"}}),X=async e=>{if(b&&!U){K(!0),H(null);try{let t=await fetch("/api/security",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({defaultProjectTrust:e})}),a=await t.json();if(!t.ok||!a.success)throw Error(a.error||"save failed");g(e)}catch{H("save")}finally{K(!1)}}},Y=(0,l.useMemo)(()=>P.map(t=>({id:t.id,label:a[t.labelKey]||("zh"===e?t.nameZh:t.nameEn),light:t.light,dark:t.dark,accent:t.accent})),[e,a]);return(0,s.jsxs)("div",{className:"flex flex-col gap-6",children:[(A||B)&&(0,s.jsxs)("div",{role:B?"alert":"status",className:"flex items-center gap-3 rounded-lg px-3 py-2",style:{background:"var(--dsw-hover)",color:B?"var(--dsw-danger)":"var(--dsw-label-secondary)"},children:[(0,s.jsx)("span",{className:"flex-1",children:"load"===B?a.settingsLoadFailed:"save"===B?a.settingsSaveFailed:a.settingsLoading}),"load"===B&&(0,s.jsx)("button",{type:"button",className:"pw-chip",onClick:()=>void q(),children:a.settingsRetry})]}),(0,s.jsx)(R,{title:a.language,children:(0,s.jsx)($,{value:e,options:[{value:"zh",label:"中文"},{value:"en",label:"English"}],onChange:e=>t(e)})}),(0,s.jsx)(D,{title:a.appearance,children:(0,s.jsx)("div",{className:"settings-theme-grid grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 gap-2.5 w-full",children:Y.map(e=>{let t=r===e.id;return(0,s.jsxs)("button",{type:"button",className:`clay-card flex flex-col items-center justify-center p-3.5 rounded-2xl transition-all hover:-translate-y-0.5 ${t?"ring-2 ring-emerald-500 shadow-md bg-white dark:bg-slate-800":"bg-white/70 dark:bg-slate-900/60 opacity-80 hover:opacity-100"}`,"aria-pressed":t,onClick:()=>{var t;n(t=e.id),(0,k.kK)(t,o)},children:[(0,s.jsxs)("div",{className:"flex items-center overflow-hidden rounded-lg mb-2 shadow-inner border border-slate-200/50 dark:border-slate-700/50",style:{width:48,height:22},children:[(0,s.jsx)("span",{style:{background:e.light,flex:1,height:"100%"}}),(0,s.jsx)("span",{style:{background:e.dark,flex:1,height:"100%"}})]}),(0,s.jsxs)("div",{className:"flex items-center gap-1.5 text-xs font-medium text-slate-800 dark:text-slate-100",children:[(0,s.jsx)("span",{className:"w-2 h-2 rounded-full inline-block flex-none",style:{background:e.accent}}),(0,s.jsx)("span",{className:"truncate",children:e.label})]})]},e.id)})})}),(0,s.jsx)(D,{title:a.appearanceMode,children:(0,s.jsx)("div",{className:"clay-inset flex p-1 rounded-2xl bg-slate-100/90 dark:bg-slate-900/80 gap-1 w-full max-w-sm",children:[{id:"light",label:a.themeLight},{id:"dark",label:a.themeDark},{id:"system",label:a.themeSystem}].map(e=>(0,s.jsx)("button",{type:"button",className:`flex-1 py-1.5 px-3 rounded-xl text-xs font-semibold transition-all ${o===e.id?"clay-btn-soft text-slate-800 dark:text-slate-100 shadow-sm":"text-slate-500 hover:text-slate-800 dark:hover:text-slate-200"}`,"aria-pressed":o===e.id,onClick:()=>{var t;d(t=e.id),(0,k.kK)(r,t)},children:e.label},e.id))})}),(0,s.jsx)(R,{title:a.fontUiSize,desc:a.fontUiSizeDesc,children:(0,s.jsx)(L,{value:c,onChange:e=>{let t=Math.max(12,Math.min(18,e));u(t),localStorage.setItem("piweb.fontSize",String(t)),document.documentElement.style.setProperty("--dsh-content-font-size",`${t}px`),document.documentElement.style.setProperty("--dsh-content-font-delta",`${t-14}px`)},max:18})}),(0,s.jsx)(R,{title:a.fontChatSize,desc:a.fontChatSizeDesc,children:(0,s.jsx)(L,{value:p,onChange:e=>{let t=Math.max(12,Math.min(20,e));x(t),localStorage.setItem("piweb.chatFontSize",String(t)),document.documentElement.style.setProperty("--piweb-chat-font-size",`${t}px`)},max:20})}),(0,s.jsx)(R,{title:a.enterBehavior,desc:a.enterBehaviorDesc,children:(0,s.jsx)($,{value:h,options:[{value:"steer",label:a.enterSteer},{value:"queue",label:a.enterQueue}],onChange:e=>{v(e),(0,i.vf)(e)}})}),(0,s.jsx)(R,{title:a.autoCompact,desc:a.autoCompactDesc,children:(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("button",{disabled:!j||U,className:"relative h-5 w-9 flex-none rounded-full transition-colors",style:{background:j?.compaction.enabled?"var(--dsw-accent)":"var(--dsw-border-l3)"},role:"switch","aria-label":a.autoCompact,"aria-checked":j?.compaction.enabled??!1,onClick:()=>void G({compaction:{enabled:!j?.compaction.enabled}}),children:(0,s.jsx)("span",{className:"absolute top-0.5 h-4 w-4 rounded-full bg-white transition-all",style:{left:j?.compaction.enabled?18:2}})}),V("compaction","reserveTokens",a.reserveTokens),V("compaction","keepRecentTokens",a.keepRecentTokens)]})}),(0,s.jsx)(R,{title:a.autoRetry,desc:a.autoRetryDesc,children:(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("button",{disabled:!j||U,className:"relative h-5 w-9 flex-none rounded-full transition-colors",style:{background:j?.retry.enabled?"var(--dsw-accent)":"var(--dsw-border-l3)"},role:"switch","aria-label":a.autoRetry,"aria-checked":j?.retry.enabled??!1,onClick:()=>void G({retry:{enabled:!j?.retry.enabled}}),children:(0,s.jsx)("span",{className:"absolute top-0.5 h-4 w-4 rounded-full bg-white transition-all",style:{left:j?.retry.enabled?18:2}})}),V("retry","maxRetries",a.maxRetries),V("retry","baseDelayMs",a.baseDelayMs)]})}),(0,s.jsx)(R,{title:a.securityTrust,desc:a.securityTrustDesc,children:(0,s.jsx)($,{value:f,disabled:!b||A||U,options:[{value:"ask",label:a.trustAsk},{value:"always",label:a.trustAlways},{value:"never",label:a.trustNever}],onChange:e=>X(e)})}),(0,s.jsx)(R,{title:a.versionPiweb,desc:a.versionPiwebDesc,children:(0,s.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,s.jsx)(M,{href:"https://github.com/RexVane/PiWeb",value:S?.piWeb}),(0,s.jsx)(T,{target:"piweb"})]})}),(0,s.jsx)(R,{title:a.versionPi,desc:a.versionPiDesc,children:(0,s.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,s.jsx)(M,{href:"https://github.com/earendil-works/pi",value:S?.piEngine}),(0,s.jsx)(T,{target:"pi"})]})}),C?.enabled?(0,s.jsxs)(R,{title:a.webAuth,desc:a.webAuthOn,children:[F&&(0,s.jsx)("span",{role:"alert",style:{color:"var(--dsw-danger)",fontSize:12},children:a.logoutFailed}),(0,s.jsx)("button",{className:"btn-outline",style:{height:30,padding:"0 14px",fontSize:12.5},disabled:z,onClick:async()=>{if(!z){W(!0),I(!1);try{let e=await fetch("/api/web-auth",{method:"DELETE"}),t=await e.json();if(!e.ok||!t.success)throw Error("logout failed");window.location.href="/login"}catch{I(!0),W(!1)}}},children:a.logout})]}):null]})}function M({href:e,value:t}){return(0,s.jsx)("a",{href:e,target:"_blank",rel:"noreferrer",style:{fontFamily:"var(--font-mono)",fontSize:13,color:"var(--dsw-label-secondary)",textDecoration:"none"},onMouseEnter:e=>e.currentTarget.style.color="var(--dsw-accent)",onMouseLeave:e=>e.currentTarget.style.color="var(--dsw-label-secondary)",children:t??"—"})}function T({target:e}){let{t}=(0,m.s)(),[a,r]=(0,l.useState)("idle"),[i,n]=(0,l.useState)(""),[o,d]=(0,l.useState)(""),[c,u]=(0,l.useState)(""),p=async t=>(await fetch("/api/update",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({target:e,action:t})})).json(),x=async()=>{r("checking"),u("");try{let e=await p("check");if(!e.success)throw Error(e.error);e.data.canUpdate?(n(e.data.latest),d(e.data.command??""),r("available")):r("latest")}catch(e){u(String(e?.message??e)),r("error")}},h=async()=>{r("updating");try{let e=await p("update");if(!e.success)throw Error(e.error);n(e.data.version??i),r("updated")}catch(e){u(String(e?.message??e)),r("error")}};if("idle"===a||"latest"===a||"error"===a){let e="latest"===a?t.upToDate:"error"===a?t.updateFailed:t.checkUpdate;return(0,s.jsx)("button",{type:"button",className:"btn-outline",style:{height:26,padding:"0 10px",fontSize:12,color:"latest"===a?"var(--dsw-label-tertiary)":"error"===a?"var(--dsw-danger)":"var(--dsw-label-primary)"},title:c||void 0,disabled:"checking"===a||"updating"===a,onClick:()=>void x(),children:e})}return"available"===a?o?(0,s.jsxs)("span",{className:"flex flex-col items-end gap-0.5",style:{maxWidth:300},children:[(0,s.jsx)("code",{style:{fontSize:11,color:"var(--dsw-label-primary)",whiteSpace:"nowrap",overflowX:"auto",maxWidth:"100%"},children:o}),(0,s.jsx)("span",{style:{fontSize:11,color:"var(--dsw-label-tertiary)",textAlign:"right"},children:t.updateManualHint})]}):(0,s.jsx)("button",{type:"button",className:"btn-primary-white",style:{height:26,padding:"0 12px",fontSize:12},onClick:()=>void h(),children:t.updateTo.replace("{v}",i)}):"updated"===a?(0,s.jsx)("span",{style:{fontSize:12,color:"var(--dsw-success)",maxWidth:260,textAlign:"right"},children:t.updatedTo.replace("{v}",i)}):(0,s.jsxs)("span",{className:"flex items-center gap-1.5",style:{fontSize:12,color:"var(--dsw-label-tertiary)"},children:[(0,s.jsx)("span",{className:"h-3 w-3 flex-none animate-spin rounded-full border-2 border-current border-t-transparent"}),"updating"===a?t.updatingNow:t.checkingUpdate]})}function $({value:e,options:t,onChange:a,width:i,disabled:o}){let[d,c]=(0,l.useState)(!1),[u,p]=(0,l.useState)(null),m=(0,l.useRef)(null),x=(0,l.useRef)(null);(0,l.useEffect)(()=>{if(!d)return;let e=m.current?.getBoundingClientRect();e&&p({left:e.left,top:e.bottom+6,bottom:e.top-6});let t=e=>{m.current?.contains(e.target)||x.current?.contains(e.target)||c(!1)};return document.addEventListener("mousedown",t),()=>document.removeEventListener("mousedown",t)},[d]),(0,l.useEffect)(()=>{o&&c(!1)},[o]);let h=t.find(t=>t.value===e);return(0,s.jsxs)("div",{className:"relative",children:[(0,s.jsxs)("button",{ref:m,className:"select-chip","data-open":d,disabled:o,onClick:()=>c(e=>!e),children:[h?.label??e,(0,s.jsx)("span",{className:"chevron",children:(0,s.jsx)(n.Cd,{size:14})})]}),d&&!o&&u&&(0,r.createPortal)((0,s.jsx)("div",{ref:x,className:"popover fixed z-[130] p-1.5 shadow-xl",style:{left:u.left,top:Math.min(u.top,window.innerHeight-40),minWidth:i??140,width:"max-content",maxHeight:280,overflowY:"auto"},children:t.map(t=>{let l=t.value===e;return(0,s.jsxs)("button",{className:"flex w-full items-center justify-between gap-3 rounded-xl px-3.5 py-2 text-left transition-colors",style:{background:l?"var(--dsw-accent-soft)":"transparent"},onMouseEnter:e=>{l||(e.currentTarget.style.background="var(--dsw-hover)")},onMouseLeave:e=>{l||(e.currentTarget.style.background="transparent")},onClick:()=>{a(t.value),c(!1)},children:[(0,s.jsx)("span",{style:{fontSize:13.5,color:l?"var(--dsw-accent)":"var(--dsw-label-primary)",whiteSpace:"nowrap"},children:t.label}),l&&(0,s.jsx)("span",{style:{display:"inline-flex",color:"var(--dsw-accent)",flex:"none"},children:(0,s.jsx)(n.df,{size:14})})]},t.value)})}),document.body)]})}function R({title:e,desc:t,children:a}){return(0,s.jsxs)("div",{className:"settings-row hairline-b flex items-center justify-between gap-6 pb-5",children:[(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsx)("div",{style:{fontSize:14,fontWeight:400},children:e}),t&&(0,s.jsx)("div",{className:"mt-0.5",style:{fontSize:12,color:"var(--dsw-label-caption)"},children:t})]}),(0,s.jsx)("div",{className:"settings-row-control flex-none",children:a})]})}function D({title:e,desc:t,children:a}){return(0,s.jsxs)("div",{className:"hairline-b flex flex-col gap-3 pb-5",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{style:{fontSize:14,fontWeight:400},children:e}),t&&(0,s.jsx)("div",{className:"mt-0.5",style:{fontSize:12,color:"var(--dsw-label-caption)"},children:t})]}),a]})}function L({value:e,onChange:t,max:a}){return(0,s.jsxs)("div",{className:"clay-inset flex items-center gap-1.5 p-1 rounded-2xl bg-slate-100 dark:bg-slate-900",children:[(0,s.jsx)("button",{type:"button",className:"clay-btn clay-btn-soft w-7 h-7 rounded-xl text-xs font-bold text-slate-700 dark:text-slate-200 disabled:opacity-40",disabled:e<=12,onClick:()=>t(e-1),"aria-label":"decrease font size",children:"−"}),(0,s.jsxs)("button",{type:"button",className:"px-2 text-center text-xs font-semibold text-slate-700 dark:text-slate-200 hover:text-emerald-500 transition-colors",title:"reset to 14px",onClick:()=>t(14),children:[e," px"]}),(0,s.jsx)("button",{type:"button",className:"clay-btn clay-btn-soft w-7 h-7 rounded-xl text-xs font-bold text-slate-700 dark:text-slate-200 disabled:opacity-40",disabled:e>=a,onClick:()=>t(e+1),"aria-label":"increase font size",children:"+"})]})}function W(){let{t:e}=(0,m.s)(),[t,a]=(0,l.useState)([]),[r,i]=(0,l.useState)({providers:{}}),[o,d]=(0,l.useState)(null),[c,v]=(0,l.useState)(new Set),[g,b]=(0,l.useState)(null),[w,S]=(0,l.useState)(""),[N,k]=(0,l.useState)(null),[C,z]=(0,l.useState)(""),[P,E]=(0,l.useState)(""),[M,T]=(0,l.useState)("openai-completions"),[R,D]=(0,l.useState)(""),[L,W]=(0,l.useState)([]),[U,K]=(0,l.useState)(""),[B,H]=(0,l.useState)(""),[J,Z]=(0,l.useState)([]),[q,G]=(0,l.useState)(!1),[Q,V]=(0,l.useState)(!1),[X,Y]=(0,l.useState)(null),[ee,et]=(0,l.useState)(null),[ea,es]=(0,l.useState)(null),[el,er]=(0,l.useState)([]),[ei,en]=(0,l.useState)(""),[eo,ed]=(0,l.useState)(null),[ec,eu]=(0,l.useState)(!1),ep=(0,l.useMemo)(()=>{for(let e=el.length-1;e>=0;e--){let t=el[e];if(t.startsWith("{"))try{let e=JSON.parse(t);if("device_code"===e.type&&"string"==typeof e.verificationUri)return{userCode:"string"==typeof e.userCode?e.userCode:"",verificationUri:e.verificationUri,instructions:""};if("auth_url"===e.type&&"string"==typeof e.url)return{userCode:"",verificationUri:e.url,instructions:"string"==typeof e.instructions?e.instructions:""}}catch{}}return null},[el]),em=(0,l.useRef)(null);(0,l.useEffect)(()=>{ep?.verificationUri&&em.current!==ep.verificationUri&&(em.current=ep.verificationUri,window.open(ep.verificationUri,"_blank","noopener"))},[ep]);let ex=(0,l.useCallback)(async()=>{try{let e=await fetch("/api/models?custom=1"),t=await e.json();if(!e.ok||!t.success)throw Error(t.error||"failed to load model configuration");let s=JSON.parse(t.data.customProviders?.content??"{}");if(!s||"object"!=typeof s||Array.isArray(s)||void 0!==s.providers&&(!s.providers||"object"!=typeof s.providers||Array.isArray(s.providers)))throw Error("invalid model configuration");a(t.data.providers),v(new Set(t.data.customProviders?.secretProviderIds??[])),i({...s,providers:s.providers??{}}),d("string"==typeof t.data.customProviders?.revision?t.data.customProviders.revision:null)}catch(e){d(null),Y({ok:!1,msg:e instanceof Error?e.message:"failed to load model configuration"})}},[]);(0,l.useEffect)(()=>{ex()},[ex]),(0,l.useEffect)(()=>{let e;if(!ee)return;let t=!0,a=!1,s=async()=>{try{let e=await fetch("/api/models",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"loginState",providerId:ee})}),s=await e.json();if(!t||!s.success)return;es(s.data.prompt),er(s.data.notifyLog??[]),s.data.done&&(a=!0,ed({ok:!s.data.error,msg:s.data.error??ee+" ✓"}),s.data.error||ex())}catch{}finally{t&&!a&&(e=setTimeout(s,1500))}};return s(),()=>{t=!1,e&&clearTimeout(e)}},[ee,ex]);let[eh,ev]=(0,l.useState)(null),[ef,eg]=(0,l.useState)(!1),[eb,ey]=(0,l.useState)(!1),ej=(0,l.useCallback)(async e=>{eg(!0),ey(!1);try{let t=await fetch("/api/models",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"providerUsage",providerId:"xai",force:e})}),a=await t.json();if(!t.ok||!a.success)throw Error(a.error||"usage probe failed");ev(a.data.usage??null)}catch{ey(!0)}finally{eg(!1)}},[]),[ew,eS]=(0,l.useState)({}),[eN,ek]=(0,l.useState)(null),[eC,e_]=(0,l.useState)({}),ez=(0,l.useCallback)(async(e,t)=>{ek(e),e_(t=>({...t,[e]:!1}));try{let a=await fetch("/api/models",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"providerUsage",providerId:e,force:t})}),s=await a.json();if(!a.ok||!s.success)throw Error(s.error||"usage probe failed");eS(t=>({...t,[e]:s.data.usage??null}))}catch{e_(t=>({...t,[e]:!0}))}finally{ek(t=>t===e?null:t)}},[]),eP=(0,l.useRef)(new Set);(0,l.useEffect)(()=>{for(let e of t)!e.authReady||!_(e.id)||"xai"===e.id||eP.current.has(e.id)||(eP.current.add(e.id),ez(e.id,!1))},[t,ez]);let eE=e=>`${"USD"===e.currency?"$":"CNY"===e.currency?"\xa5":""}${e.amount}${e.currency&&"USD"!==e.currency&&"CNY"!==e.currency?` ${e.currency}`:""}`,eM=(t,a)=>{Y({ok:t,msg:a??(t?e.toastSaved:e.toastError)}),setTimeout(()=>Y(null),2400)},eT=async t=>{try{let e=await fetch("/api/models",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),a=await e.json();return e.ok?a:{...a,success:!1,error:a.error||`request failed (${e.status})`}}catch(t){return{success:!1,error:t instanceof Error?t.message:e.toastError}}},e$=async t=>{let a=await eT(t);return eM(a.success,a.success&&a.data?.requiresSessionReopen?e.modelConfigReopen:a.error),a.success&&await ex(),a},eR=async t=>{if(ee)try{let a=await eT({action:"loginAnswer",providerId:ee,text:t});if(!a.success||a.data?.delivered!==!0)throw Error(a.error||e.toastError);en("")}catch(t){eM(!1,t instanceof Error?t.message:e.toastError)}},eD=async()=>{if(ee)try{let t=await eT({action:"loginCancel",providerId:ee});if(!t.success)throw Error(t.error||e.toastError);et(null)}catch(t){eM(!1,t instanceof Error?t.message:e.toastError)}},eL=new Set(Object.keys(r.providers??{})),eW=t.filter(e=>e.authReady||e.authConfigured||e.keyManaged||eL.has(e.id)),eF=t.filter(e=>e.builtIn&&!eW.some(t=>t.id===e.id)),eI=async e=>{if(null===o){let e={success:!1,error:"Reload model configuration before saving."};return eM(!1,e.error),e}return e$({action:"saveCustomProviders",revision:o,content:JSON.stringify({...r,providers:e},null,2)})},eA=e=>t.find(t=>t.id===e)?.name??e,eO=async()=>{if(!q&&!h(L)&&P.trim()){G(!0);try{let e={...r.providers},t=g??C.trim(),a=e[t]??{};t!==C.trim()&&delete e[t],e[C.trim()]=f(a,{name:U,baseUrl:P,api:M,apiKey:R,models:L}),(await eI(e)).success&&b(null)}finally{G(!1)}}},eU=async e=>{if(!q&&!h(J)){G(!0);try{let t={...r.providers};t[e.id]=f(t[e.id]??{},{baseUrl:B,models:J},e.apis[0]??"openai-completions");let a=await eI(t);a.success&&w.trim()&&(e$({action:"setKey",providerId:e.id,apiKey:w.trim()}),ed(null),et(e.id)),a.success&&b(null)}finally{G(!1)}}},eK=async a=>{if(!window.confirm(e.confirmRemoveProvider.replace("{name}",eA(a))))return;let s={...r.providers};delete s[a];let l=t.find(e=>e.id===a);if(l?.builtIn)try{await e$({action:"removeKey",providerId:a})}catch{}(await eI(s)).success&&b(null)},eB=async({providerId:e,apiKey:t,config:a})=>{let s={...r.providers,[e]:{...r.providers[e],...a}},l=await eI(s);return l.success&&t&&(eT({action:"setKey",providerId:e,apiKey:t}),ed(null),et(e)),l},eH=async({providerId:e,config:t})=>eI({...r.providers,[e]:t}),eJ=async e=>{let t=await eT({action:"loginStart",providerId:e});return t.success?(ed(null),et(e),{success:!0}):{success:!1,error:t.error}};return(0,s.jsxs)("div",{className:"flex flex-col gap-5",children:[(0,s.jsxs)("div",{className:"p-4 rounded-2xl bg-emerald-50/80 dark:bg-emerald-950/30 border border-emerald-200/50 dark:border-emerald-800/40 flex items-start gap-3",children:[(0,s.jsx)("div",{className:"w-8 h-8 rounded-full bg-white dark:bg-slate-800 text-emerald-600 clay-card flex-shrink-0 flex items-center justify-center mt-0.5 shadow-sm",children:(0,s.jsx)(n.se,{size:16})}),(0,s.jsxs)("div",{className:"flex flex-col gap-1 min-w-0",children:[(0,s.jsx)("span",{className:"font-bold text-slate-800 dark:text-slate-100 text-sm",children:e.modelsTitle}),(0,s.jsx)("p",{className:"text-xs text-slate-600 dark:text-slate-300 leading-relaxed",children:e.modelsDesc}),(0,s.jsx)("p",{className:"text-[11px] text-slate-400 dark:text-slate-400",children:e.customModelIdentityNotice})]})]}),X&&(0,s.jsx)("div",{className:"rounded-xl px-3 py-2",style:{fontSize:12.5,background:X.ok?"rgba(34,197,94,.1)":"rgba(236,19,19,.1)",color:X.ok?"var(--dsw-success)":"var(--dsw-danger)"},children:X.msg}),(0,s.jsx)("div",{className:"flex flex-col gap-2.5",children:eW.map(a=>{var l;let i,d,m,v,f=eL.has(a.id)&&!a.builtIn,y=g===a.id;return(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{className:"clay-card flex flex-col rounded-2xl px-4 py-3 bg-white/80 dark:bg-slate-900/80 shadow-sm transition-all hover:shadow-md",style:{border:"0.5px solid var(--dsw-border-l2)"},children:[(0,s.jsxs)("div",{className:"flex items-center gap-3",children:[(0,s.jsx)(p,{id:a.id,name:eA(a.id),size:34}),(0,s.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,s.jsx)("div",{className:"truncate",style:{fontSize:14,fontWeight:500},children:eA(a.id)}),(0,s.jsxs)("div",{className:"truncate",style:{fontSize:11.5,color:"var(--dsw-label-caption)"},children:[a.id,a.baseUrl?` \xb7 ${a.baseUrl}`:""]})]}),f&&(0,s.jsx)("span",{className:"rounded-md px-1.5 py-0.5",style:{fontSize:10.5,border:"0.5px solid var(--dsw-border-l3)",color:"var(--dsw-label-tertiary)"},children:e.customBadge}),(0,s.jsx)("span",{className:"inline-block h-2 w-2 rounded-full",style:{background:a.authReady?"var(--dsw-success)":"var(--dsw-danger)"},title:a.authError||(a.authReady?e.providerReady:e.authUnavailable)}),(0,s.jsx)("span",{className:"rounded-md px-1.5 py-0.5",style:{fontSize:10.5,border:"0.5px solid var(--dsw-border-l3)",color:"var(--dsw-label-tertiary)"},children:e.credentialSource.replace("{source}","stored"===(i=a.authSource)?"auth.json":"runtime"===i?e.authSourceRuntime:"environment"===i?e.authSourceEnvironment:"models_json_key"===i?"models.json":"models_json_command"===i?e.authSourceCommand:"fallback"===i?e.authSourceProvider:a.resolvedAuthSource||e.authUnavailable)}),(0,s.jsx)("button",{className:"btn-outline",style:{height:28,padding:"0 12px",fontSize:12},onClick:()=>{var e;let s;return b(g===(e=a.id)?null:e),S(""),G(!1),V(!1),s=r.providers[e],void(eL.has(e)&&!t.find(t=>t.id===e)?.builtIn?(z(e),E(s?.baseUrl??""),T(s?.api??"openai-completions"),D(""),K("string"==typeof s?.name?s.name:""),W((s?.models??[]).map(x))):(H("string"==typeof s?.baseUrl?s.baseUrl:""),Z((s?.models??[]).map(x))))},children:e.edit}),"oauth"===a.storedAuthType&&(0,s.jsx)("button",{style:{height:28,padding:"0 12px",fontSize:12,color:"var(--dsw-danger)"},onClick:async()=>{window.confirm(e.confirmRemoveOAuth.replace("{name}",eA(a.id)))&&await e$({action:"removeKey",providerId:a.id})},children:e.removeOAuth}),a.authTypes?.includes("oauth")&&(0,s.jsx)("button",{className:"btn-outline",style:{height:28,padding:"0 12px",fontSize:12},onClick:()=>{ed(null),e$({action:"loginStart",providerId:a.id}),et(a.id)},children:e.oauthLogin}),eL.has(a.id)&&(0,s.jsx)("button",{style:{fontSize:12.5,color:"var(--dsw-danger)"},onClick:()=>eK(a.id),children:e.delete})]}),"xai"===a.id&&a.authReady&&(0,s.jsxs)("div",{className:"mt-3 flex items-center gap-2 pt-3",style:{borderTop:"0.5px solid var(--dsw-border-l2)",fontSize:11.5,color:"var(--dsw-label-tertiary)"},children:[eh?(0,s.jsxs)("span",{children:[e.usageQuotaLabel," \xb7 ",eh.model," \xb7 ",e.usageRequests," ",eh.requestRemaining.toLocaleString(),"/",eh.requestLimit.toLocaleString()," \xb7 Tokens ",I(eh.tokenRemaining),"/",I(eh.tokenLimit)]}):(0,s.jsx)("span",{children:eb?e.usageProbeFailed:e.usageProbeDisclosure}),(0,s.jsx)("button",{type:"button",className:"pw-chip",disabled:ef,title:e.usageProbeDisclosure,onClick:()=>void ej(!0),children:ef?e.usageProbing:eh?e.usageRefresh:e.usageProbe})]}),_(a.id)&&"xai"!==a.id&&a.authReady&&(0,s.jsx)("div",{className:"mt-3 flex flex-col gap-1.5 pt-3",style:{borderTop:"0.5px solid var(--dsw-border-l2)",fontSize:11.5,color:"var(--dsw-label-tertiary)"},children:(d=ew[l=a.id],m=eN===l,v=eC[l],(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[!d&&(0,s.jsx)("span",{children:v?e.usageProbeFailed:m?e.queryingQuota:e.usageReadOnlyDisclosure}),d?.kind==="quota"&&d.planType&&(0,s.jsxs)("span",{children:[e.usagePlan," ",A(d.planType)]}),d?.kind==="balance"&&d.primary&&(0,s.jsxs)("span",{children:["used"===d.primaryKey?e.usageBalanceUsed:e.usageQuotaRemaining," ",(0,s.jsx)("span",{style:{color:"var(--dsw-label-secondary)"},children:eE(d.primary)})]}),(0,s.jsx)("button",{type:"button",className:"pw-chip",disabled:m,title:e.usageReadOnlyDisclosure,onClick:()=>void ez(l,!0),children:m?e.usageProbing:d?e.usageRefresh:e.usageProbe})]}),d?.kind==="balance"&&d.details.length>0&&(0,s.jsx)("span",{children:d.details.map(t=>{var a;return`${"granted"===(a=t.key)?e.usageBalanceGranted:"toppedUp"===a?e.usageBalanceToppedUp:"voucher"===a?e.usageBalanceVoucher:"cash"===a?e.usageBalanceCash:"used"===a?e.usageBalanceUsed:e.usageBalanceLimit} ${eE(t)}`}).join(" \xb7 ")}),d?.kind==="quota"&&0===d.windows.length&&(0,s.jsxs)("span",{children:[e.usageQuotaRemaining," —"]}),d?.kind==="quota"&&d.windows.map((t,a)=>{var l;return(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{style:{width:84,flex:"none"},children:(t=>{var a,s,l,r;if(void 0!==t.limitWindowSeconds){let r;return`${"weekly"==(r=604800===(s=a=t.limitWindowSeconds)?"weekly":2592e3===s?"monthly":s<86400?"hours":"days")?e.usageWindowWeekly:"monthly"===r?e.usageWindowMonthly:("hours"===r?e.usageWindowHours:e.usageWindowDays).replace("{n}",String(Math.round(a/("hours"===r?3600:86400))))}${t.variant?` (${"opus"===(l=t.variant)?e.usageVariantOpus:"code"===l?e.usageVariantCode:A(l)})`:""}`}return t.name?"premium"===(r=t.name)?e.usageWindowPremium:"chat"===r?e.usageWindowChat:"completions"===r?e.usageWindowCompletions:"rolling"===r?e.usageWindowRolling:A(r):""})(t)}),(0,s.jsxs)("span",{style:{width:92,flex:"none"},children:[e.usageQuotaRemaining," ",t.remainingPercent,"%"]}),(0,s.jsxs)("span",{children:[e.usageReset," ",function(e){if(!e)return"—";let t=new Date(e);return Number.isNaN(t.getTime())?"—":t.toLocaleString()}(t.resetAt)]}),(0,s.jsx)("div",{className:"h-1 overflow-hidden rounded-full",style:{width:120,flex:"none",background:"var(--dsw-border-l2)"},children:(0,s.jsx)("div",{className:"h-full rounded-full",style:{width:`${t.remainingPercent}%`,background:(l=t.remainingPercent)<30?"var(--dsw-danger)":l<=60?"var(--dsw-warning)":"var(--dsw-success)"}})})]},`${t.limitWindowSeconds??t.name??"window"}-${t.variant??""}-${a}`)})]}))})]}),y&&(0,s.jsx)("div",{className:"mt-2 rounded-2xl p-4",style:{border:"0.5px solid var(--dsw-border-l2)"},children:f?(0,s.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,s.jsx)(O,{label:e.apiKey,children:(0,s.jsx)("input",{type:"password",value:R,onChange:e=>D(e.target.value),className:F,placeholder:c.has(a.id)?e.apiKeyStored:e.apiKeyOptional})}),(0,s.jsx)(O,{label:e.displayName,children:(0,s.jsx)("input",{value:U,onChange:e=>K(e.target.value),className:F,placeholder:a.id})}),(0,s.jsx)(O,{label:e.baseUrl,children:(0,s.jsx)("input",{value:P,onChange:e=>E(e.target.value),className:F,placeholder:"https://api.example.com/v1"})}),(0,s.jsx)(O,{label:e.apiType,children:(0,s.jsx)($,{value:M,options:u([M,...a.apis]).map(e=>({value:e,label:e})),onChange:T})}),(0,s.jsx)(j,{models:L,setModels:W,updateModel:(e,t)=>W(a=>a.map((a,s)=>s===e?{...a,...t}:a)),discover:async t=>{let s=await fetch("/api/models",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"discoverModels",providerId:a.id,baseUrl:P.trim(),api:M,apiKey:R.trim(),allowPrivate:t})}),l=await s.json();if(!l.success)throw Error(l.error||e.toastError);return(l.data.models??[]).map(e=>({id:e.id,name:e.name??""}))},discoverDisabled:!P.trim()}),(0,s.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,s.jsx)("button",{className:"btn-outline",style:{height:32},disabled:q,onClick:()=>b(null),children:e.cancel}),(0,s.jsx)("button",{className:"btn-primary-white",disabled:q||!P.trim()||!!h(L)||!L.some(e=>e.id.trim()),onClick:()=>void eO(),children:q?e.saving:e.save})]})]}):(0,s.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,s.jsx)(O,{label:e.apiKey,children:(0,s.jsx)("input",{type:"password",value:w,onChange:e=>S(e.target.value),className:F,placeholder:a.keyManaged?e.apiKeyStored:a.apiKeyLabel??e.apiKey})}),(0,s.jsxs)("div",{children:[(0,s.jsxs)("button",{className:"flex w-full items-center gap-2 rounded-xl px-2 py-2 text-left transition-colors",style:{fontSize:13,color:"var(--dsw-label-secondary)",background:Q?"var(--dsw-hover)":"transparent"},onClick:()=>V(e=>!e),children:[(0,s.jsx)("span",{style:{display:"inline-flex",transform:Q?"none":"rotate(-90deg)",transition:"transform 120ms ease"},children:(0,s.jsx)(n.Cd,{size:13})}),e.customSettings]}),Q?(0,s.jsxs)("div",{className:"flex flex-col gap-3 pl-1 pt-2",children:[(0,s.jsx)(O,{label:e.baseUrl,children:(0,s.jsx)("input",{value:B,onChange:e=>H(e.target.value),className:F,placeholder:a.baseUrl??e.providerDefault})}),(0,s.jsx)(j,{models:J,setModels:Z,updateModel:(e,t)=>Z(a=>a.map((a,s)=>s===e?{...a,...t}:a)),inheritedCount:a.modelCount,discover:async t=>{let s=await fetch("/api/models",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"discoverModels",providerId:a.id,baseUrl:B.trim()||a.baseUrl||"",api:a.apis[0],apiKey:w.trim(),allowPrivate:t})}),l=await s.json();if(!l.success)throw Error(l.error||e.toastError);return(l.data.models??[]).map(e=>({id:e.id,name:e.name??""}))},discoverDisabled:!(B.trim()||a.baseUrl)})]}):null]}),(0,s.jsxs)("div",{className:"flex items-center justify-end gap-2",children:[a.keyManaged&&(0,s.jsx)("button",{style:{fontSize:12.5,color:"var(--dsw-danger)"},disabled:q,onClick:async()=>{if("oauth"===a.storedAuthType){if(!window.confirm(e.confirmRemoveOAuth.replace("{name}",a.name)))return}else if(!window.confirm(e.confirmRemoveKey.replace("{name}",a.name)))return;(await e$({action:"removeKey",providerId:a.id})).success&&b(null)},children:"oauth"===a.storedAuthType?e.removeOAuth:e.removeKey}),(0,s.jsx)("button",{className:"btn-outline",style:{height:32},disabled:q,onClick:()=>b(null),children:e.cancel}),(0,s.jsx)("button",{className:"btn-primary-white",disabled:q||null===o||!!h(J),onClick:()=>void eU({id:a.id,apis:a.apis}),children:q?e.saving:e.save})]})]})})]},a.id)})}),(0,s.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-3 pt-1",children:[(0,s.jsxs)("button",{type:"button",className:"py-3.5 px-5 rounded-2xl clay-card text-slate-800 dark:text-slate-100 font-bold flex items-center justify-center gap-2 hover:-translate-y-0.5 active:translate-y-0.5 transition-all cursor-pointer group shadow-sm hover:shadow",onClick:()=>k("builtin"),children:[(0,s.jsx)("div",{className:"w-7 h-7 rounded-full clay-inset flex items-center justify-center text-emerald-600 group-hover:scale-110 transition-transform",children:(0,s.jsx)(n.Xh,{size:15})}),(0,s.jsx)("span",{children:e.addProvider})]}),(0,s.jsxs)("button",{type:"button",className:"py-3.5 px-5 rounded-2xl clay-card text-slate-800 dark:text-slate-100 font-bold flex items-center justify-center gap-2 hover:-translate-y-0.5 active:translate-y-0.5 transition-all cursor-pointer group shadow-sm hover:shadow",onClick:()=>k("custom"),children:[(0,s.jsx)("div",{className:"w-7 h-7 rounded-full clay-inset flex items-center justify-center text-orange-600 group-hover:scale-110 transition-transform",children:(0,s.jsx)(n.Xh,{size:15})}),(0,s.jsx)("span",{children:e.addCustomProvider})]})]}),(0,s.jsxs)("div",{className:"clay-card p-4 rounded-2xl flex items-center gap-3 bg-gradient-to-r from-emerald-50/50 to-sky-50/50 dark:from-emerald-950/20 dark:to-sky-950/20 text-xs text-slate-600 dark:text-slate-300 border border-emerald-100/60 dark:border-emerald-950/40",children:[(0,s.jsxs)("span",{className:"text-emerald-500 font-bold flex items-center gap-1.5 flex-none",children:[(0,s.jsx)("span",{className:"w-2 h-2 rounded-full bg-emerald-500 inline-block"}),"路由提示:"]}),(0,s.jsx)("span",{children:"请求使用当前选定的模型与供应商;此处未配置自动故障转移。"})]}),N?(0,s.jsx)(y,{mode:N,providers:eF,existingIds:t.map(e=>e.id),onClose:()=>k(null),onSaveBuiltin:eB,onSaveCustom:eH,onOAuthLogin:eJ}):null,ee&&(0,s.jsx)("div",{className:"modal-mask fixed inset-0 z-[120] flex items-center justify-center",onMouseDown:e=>{e.target===e.currentTarget&&eD()},children:(0,s.jsxs)("div",{className:"glass-modal flex flex-col gap-4 p-6",style:{width:460,maxWidth:"92vw",borderRadius:24,boxShadow:"var(--dsw-elevation-prominent)"},children:[(0,s.jsxs)("div",{style:{fontSize:15,fontWeight:600},children:[e.oauthLogin," \xb7 ",ee]}),ep&&!eo?(0,s.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,s.jsx)("div",{style:{fontSize:13,color:"var(--dsw-label-primary)"},children:e.oauthDevicePrompt}),ep.instructions?(0,s.jsx)("div",{style:{fontSize:12,color:"var(--dsw-label-tertiary)"},children:ep.instructions}):null,(0,s.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,s.jsx)("a",{href:ep.verificationUri,target:"_blank",rel:"noreferrer",className:"btn-primary-white",style:{fontSize:12.5,textDecoration:"none"},children:e.oauthOpenAuth}),ep.userCode?(0,s.jsx)("button",{className:"btn-outline",style:{height:32},onClick:()=>{if(!ep?.userCode)return;let e=ep.userCode,t=()=>{eu(!0),setTimeout(()=>eu(!1),2e3)};navigator.clipboard.writeText(e).then(t).catch(()=>{let a=document.createElement("textarea");a.value=e,document.body.appendChild(a),a.select(),document.execCommand("copy"),a.remove(),t()})},children:ec?e.oauthCodeCopied:`${e.oauthDeviceCode}: ${ep.userCode}`}):null]})]}):el.length>0?(0,s.jsx)("div",{className:"flex flex-col gap-0.5",style:{fontSize:12,color:"var(--dsw-label-tertiary)"},children:el.slice(-3).map((e,t)=>(0,s.jsx)("div",{className:"truncate",children:e},t))}):null,eo?(0,s.jsx)("div",{style:{fontSize:13,color:eo.ok?"var(--dsw-success)":"var(--dsw-danger)"},children:eo.ok?ee+" ✓":eo.msg}):ea?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{style:{fontSize:13.5,color:"var(--dsw-label-primary)"},children:ea.message}),ea.message.match(/https?:\/\/[^\s)]+/)&&(0,s.jsx)("a",{href:ea.message.match(/https?:\/\/[^\s)]+/)[0],target:"_blank",rel:"noreferrer",className:"break-all",style:{fontSize:12.5,color:"var(--dsw-accent)"},children:ea.message.match(/https?:\/\/[^\s)]+/)[0]}),ea.options?.length?(0,s.jsx)("div",{className:"flex flex-col gap-1.5",children:ea.options.map(e=>(0,s.jsx)("button",{className:"btn-outline",style:{height:34,justifyContent:"flex-start",textAlign:"left"},onClick:()=>{eR(e.value)},children:e.label},e.value))}):(0,s.jsx)("input",{autoFocus:!0,type:"secret"===ea.type?"password":"text",value:ei,onChange:e=>en(e.target.value),placeholder:ea.placeholder??"",className:"w-full rounded-xl px-3 py-2",style:{fontSize:13,background:"var(--dsw-hover)"},onKeyDown:e=>{"Enter"===e.key&&!e.nativeEvent.isComposing&&ei.trim()&&eR(ei.trim())}}),(0,s.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,s.jsx)("span",{style:{fontSize:12,color:"var(--dsw-label-caption)"},children:e.oauthWait}),(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)("button",{className:"btn-outline",style:{height:32},onClick:()=>{eD()},children:e.oauthCancel}),!ea.options?.length&&(0,s.jsx)("button",{className:"btn-primary-white",disabled:!ei.trim(),style:{opacity:ei.trim()?1:.5},onClick:()=>{eR(ei.trim())},children:e.confirm})]})]})]}):(0,s.jsx)("div",{style:{fontSize:13,color:"var(--dsw-label-tertiary)"},children:e.oauthWait}),eo&&(0,s.jsx)("div",{className:"flex justify-end",children:(0,s.jsx)("button",{className:"btn-primary-white",onClick:()=>et(null),children:e.close})})]})})]})}let F="w-full rounded-xl px-3 py-2";function I(e){return e>=1e6?`${Math.round(e/1e5)/10}M`:e.toLocaleString()}function A(e){return 0===e.length?e:e[0].toUpperCase()+e.slice(1)}function O({label:e,children:t}){return(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{className:"mb-1",style:{fontSize:12,color:"var(--dsw-label-caption)"},children:e}),t]})}let U={read:{zh:"读取文件",en:"Read files"},bash:{zh:"执行 Shell 命令",en:"Run shell commands"},powershell:{zh:"执行 PowerShell",en:"Run PowerShell"},edit:{zh:"编辑文件",en:"Edit files"},write:{zh:"写入文件",en:"Write files"},grep:{zh:"搜索文件内容",en:"Search file contents"},find:{zh:"按名称查找文件",en:"Find files by name"},ls:{zh:"列出目录内容",en:"List directories"}};function K({toolPreset:e,onToolPresetChange:t,tools:a,onSetTools:l}){let{t:r,lang:i}=(0,m.s)(),o=new Set(a?.active??[]),d=a?.all??[];return(0,s.jsxs)("div",{className:"flex flex-col gap-5",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{style:{fontSize:16,fontWeight:600,color:"var(--dsw-label-primary)"},children:r.toolsSection}),(0,s.jsx)("div",{className:"mt-0.5",style:{fontSize:12.5,color:"var(--dsw-label-caption)"},children:"当前会话生效的工具与权限预设;主会话不提供系统级沙盒隔离"})]}),(0,s.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,s.jsx)("div",{className:"text-xs font-medium text-slate-500",children:"运行权限预设"}),(0,s.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-2.5",children:[(0,s.jsxs)("button",{type:"button",className:`clay-card p-3 rounded-2xl text-left transition-all ${"readonly"===e?"ring-2 ring-emerald-500 bg-white dark:bg-slate-800 shadow-md":"bg-white/70 dark:bg-slate-900/60 opacity-85 hover:opacity-100"}`,onClick:()=>t("readonly"),children:[(0,s.jsxs)("div",{className:"font-semibold text-xs text-slate-800 dark:text-slate-100 flex items-center justify-between",children:[(0,s.jsx)("span",{children:r.toolReadonly}),"readonly"===e&&(0,s.jsx)(n.df,{className:"text-emerald-500",size:13})]}),(0,s.jsx)("div",{className:"text-[11px] text-slate-500 mt-1 leading-relaxed",children:"仅读取文件与搜索,禁止修改系统或执行命令"})]}),(0,s.jsxs)("button",{type:"button",className:`clay-card p-3 rounded-2xl text-left transition-all ${"standard"===e?"ring-2 ring-emerald-500 bg-white dark:bg-slate-800 shadow-md":"bg-white/70 dark:bg-slate-900/60 opacity-85 hover:opacity-100"}`,onClick:()=>t("standard"),children:[(0,s.jsxs)("div",{className:"font-semibold text-xs text-slate-800 dark:text-slate-100 flex items-center justify-between",children:[(0,s.jsx)("span",{children:r.toolStandard}),"standard"===e&&(0,s.jsx)(n.df,{className:"text-emerald-500",size:13})]}),(0,s.jsx)("div",{className:"text-[11px] text-slate-500 mt-1 leading-relaxed",children:"常规开发工具集,终端执行与高危修改需确认"})]}),(0,s.jsxs)("button",{type:"button",className:`clay-card p-3 rounded-2xl text-left transition-all ${"full"===e?"ring-2 ring-emerald-500 bg-white dark:bg-slate-800 shadow-md":"bg-white/70 dark:bg-slate-900/60 opacity-85 hover:opacity-100"}`,onClick:()=>t("full"),children:[(0,s.jsxs)("div",{className:"font-semibold text-xs text-slate-800 dark:text-slate-100 flex items-center justify-between",children:[(0,s.jsx)("span",{children:r.toolFull}),"full"===e&&(0,s.jsx)(n.df,{className:"text-emerald-500",size:13})]}),(0,s.jsx)("div",{className:"text-[11px] text-slate-500 mt-1 leading-relaxed",children:"允许所有内置与扩展工具无障碍全自动调用"})]})]})]}),(0,s.jsxs)("div",{className:"clay-card p-3 rounded-2xl bg-emerald-50/40 dark:bg-emerald-950/20 border border-emerald-200/50 dark:border-emerald-900/40 flex items-center justify-between text-xs",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{className:"w-2 h-2 rounded-full bg-emerald-500 animate-pulse"}),(0,s.jsx)("span",{className:"font-medium text-slate-700 dark:text-slate-200",children:"会话工具:"}),(0,s.jsxs)("span",{className:"text-emerald-600 dark:text-emerald-400 font-semibold",children:[o.size,"/",d.length," 已启用"]})]}),(0,s.jsx)("div",{className:"text-slate-400 text-[11px] font-mono",children:"按当前会话工具清单统计"})]}),0===d.length?(0,s.jsx)("div",{className:"clay-card rounded-2xl p-6 text-center text-xs text-slate-400",children:r.toolsNoSession}):(0,s.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between text-xs text-slate-500 px-1",children:[(0,s.jsx)("span",{className:"font-medium",children:r.toolsCurrentSession}),(0,s.jsx)("span",{children:r.toolsActiveCount.replace("{n}",String(o.size)).replace("{total}",String(d.length))})]}),d.map(e=>{let t,a=o.has(e.name),r=e.description||((t=U[e.name])?"zh"===i?t.zh:t.en:"");return(0,s.jsxs)("div",{className:"clay-card flex items-center justify-between p-3 rounded-2xl transition-all hover:translate-x-0.5",children:[(0,s.jsxs)("div",{className:"min-w-0 flex-1 pr-3",children:[(0,s.jsx)("div",{className:"flex items-center gap-2",children:(0,s.jsx)("span",{className:"clay-code-pill px-2.5 py-0.5 text-xs font-mono font-bold text-slate-800 dark:text-slate-200",children:e.name})}),r&&(0,s.jsx)("div",{className:"truncate text-xs text-slate-500 mt-1",children:r})]}),(0,s.jsx)("button",{type:"button",className:`clay-btn w-12 h-6 rounded-full transition-all duration-200 p-0.5 flex items-center ${a?"clay-btn-mint justify-end":"bg-slate-200 dark:bg-slate-700 text-slate-400 justify-start"}`,role:"switch","aria-checked":a,"aria-label":e.name,disabled:!l||a&&o.size<=1,onClick:()=>{var t;return t=e.name,void(!l||l(o.has(t)?[...o].filter(e=>e!==t):[...o,t]))},children:(0,s.jsx)("span",{className:"w-5 h-5 rounded-full bg-white shadow-md flex items-center justify-center text-[10px] font-bold text-emerald-600",children:a?"✓":"−"})})]},e.name)})]})]})}function B({cwd:e,onOpenFileContent:t}){let{t:a}=(0,m.s)(),[r,i]=(0,l.useState)([]),[n,o]=(0,l.useState)(null),[d,c]=(0,l.useState)(!0),[u,p]=(0,l.useState)(null),x=(0,l.useCallback)(async()=>{c(!0);try{let t=await fetch(`/api/skills${e?`?cwd=${encodeURIComponent(e)}`:""}`),s=await t.json();if(!t.ok||!s.success)throw Error(s.error||a.toastError);i(s.data.skills),o(null)}catch(e){o(e instanceof Error?e.message:a.toastError)}finally{c(!1)}},[e,a.toastError]);(0,l.useEffect)(()=>{x()},[x]);let h=async(s,l)=>{if(!u){p(s.filePath),o(null);try{let r=await fetch("/api/skills",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:l,filePath:s.filePath,..."toggle"===l?{disabled:!s.disabled}:{},cwd:e})}),i=await r.json();if(!r.ok||!i.success)throw Error(i.error||a.toastError);"read"===l?t?.(s.filePath,i.data.content):await x()}catch(e){o(e instanceof Error?e.message:a.toastError)}finally{p(null)}}},v=async e=>{window.confirm(a.confirmDeleteSkill.replace("{name}",e.name))&&await h(e,"delete")};return(0,s.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,s.jsx)("div",{style:{fontSize:12,color:"var(--dsw-label-caption)"},children:a.skillsDesc}),n&&(0,s.jsxs)("div",{role:"alert",className:"rounded-lg px-3 py-2",style:{fontSize:12.5,background:"var(--dsw-hover)",color:"var(--dsw-danger)"},children:[n," ",(0,s.jsx)("button",{type:"button",className:"underline",onClick:()=>void x(),children:a.settingsRetry})]}),!n&&0===r.length&&(0,s.jsx)("div",{role:"status",style:{fontSize:13,color:"var(--dsw-label-caption)"},children:d?a.skillsLoading:a.skillsEmpty}),(0,s.jsx)("div",{className:"flex flex-col gap-2",children:r.map(e=>{let t;return(0,s.jsx)("div",{className:"rounded-2xl px-4 py-3",style:{border:"0.5px solid var(--dsw-border-l2)"},children:(0,s.jsxs)("div",{className:"flex items-center gap-3",children:[(0,s.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{style:{fontSize:13.5,fontWeight:500},children:e.name}),(0,s.jsx)("span",{className:"rounded-full px-2 py-0.5",style:{fontSize:10,background:"var(--dsw-hover)",color:"var(--dsw-label-tertiary)"},children:"global"===(t=e.scope)?a.scopeGlobal:"project"===t?a.scopeProject:a.scopePackage})]}),(0,s.jsx)("div",{className:"mt-0.5 truncate",style:{fontSize:12,color:"var(--dsw-label-caption)"},title:e.description,children:e.description})]}),(0,s.jsx)("button",{className:"rounded-lg px-2.5 py-1",style:{fontSize:11.5,color:"var(--dsw-label-tertiary)"},disabled:null!==u,onClick:()=>void h(e,"read"),children:a.viewSkillFile}),"package"!==e.scope&&(0,s.jsx)("button",{className:"rounded-lg px-2.5 py-1",style:{fontSize:11.5,color:"var(--dsw-danger)"},title:a.deleteSkillHint,disabled:null!==u,onClick:()=>void v(e),children:a.delete}),"package"===e.scope&&(0,s.jsx)("span",{style:{fontSize:10.5,color:"var(--dsw-label-caption)"},title:a.skillDeletePackageHint,children:a.skillDeletePackageHint}),(0,s.jsx)("button",{className:"relative h-5 w-9 flex-none rounded-full transition-colors",style:{background:e.disabled?"var(--dsw-border-l3)":"var(--dsw-accent)"},role:"switch","aria-label":e.name,"aria-checked":!e.disabled,disabled:null!==u,onClick:()=>void h(e,"toggle"),children:(0,s.jsx)("span",{className:"absolute top-0.5 h-4 w-4 rounded-full bg-white transition-all",style:{left:e.disabled?2:18}})})]})},e.filePath)})})]})}function H({cwd:e}){let{t,lang:a}=(0,m.s)(),r=e=>window.confirm(t.confirmUninstallPackage.replace("{source}",e)),[i,o]=(0,l.useState)("config"),[d,c]=(0,l.useState)([]),[u,p]=(0,l.useState)([]),[x,h]=(0,l.useState)(""),[v,f]=(0,l.useState)(new Set),[g,b]=(0,l.useState)(""),[y,j]=(0,l.useState)(!1),[w,S]=(0,l.useState)(!1),[N,k]=(0,l.useState)(null),[C,_]=(0,l.useState)(null),[z,P]=(0,l.useState)(null),[E,M]=(0,l.useState)(null),T=(0,l.useRef)(null);(0,l.useEffect)(()=>{let e=e=>{e.target instanceof Node&&T.current?.contains(e.target)||M(null)};return window.addEventListener("pointerdown",e),()=>window.removeEventListener("pointerdown",e)},[]);let $=(0,l.useCallback)(async()=>{try{let a=await fetch(`/api/plugins${e?`?cwd=${encodeURIComponent(e)}`:""}`),s=await a.json();if(!a.ok||!s.success)throw Error(s.error||t.toastError);c(s.data.packages),p(s.data.extensions),P(null)}catch(e){P(e instanceof Error?e.message:t.toastError)}},[e,t.toastError]);(0,l.useEffect)(()=>{$()},[$]);let R=(e,a)=>{_({ok:e,msg:a??(e?t.toastSaved:t.toastError),loading:!1}),setTimeout(()=>_(null),2600)},D=async(a,s={},l,r,i)=>{S(!0),l&&k(l),r&&_({ok:!0,msg:r,loading:!0});try{let l=await fetch("/api/plugins",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:a,cwd:e,...s})}),r=await l.json();if(r.success)return R(!0,i??("toggle"===a?s.disabled?t.disabled:t.enabled:t.toastSaved)),await $(),!0;return R(!1,r.error??t.toastError),!1}catch(e){return R(!1,e?.message??t.toastError),!1}finally{S(!1),k(null)}},L=e=>f(t=>{let a=new Set(t);return a.has(e)?a.delete(e):a.add(e),a}),W=e=>{let t=e.replace(/\\/g,"/");return t.includes("/.pi/agent/npm/")||t.includes("/.pi/agent/git/")?"package":t.includes("/.pi/agent/")?"global":(t.includes("/.pi/"),"project")},F=u.filter(e=>"package"!==W(e.path)),I=x.trim().toLowerCase(),A=[...d.map(e=>({key:`pkg:${e.scope}:${e.source}`,kind:"package",name:e.source.replace(/^npm:/,"").replace(/^git[^:]*:/,""),p:e})),...F.map(e=>({key:`ext:${e.path}`,kind:"extension",name:e.name,e}))].filter(e=>!I||e.name.toLowerCase().includes(I)),O=(0,s.jsxs)("span",{className:"flex flex-none items-center gap-1.5 rounded-md px-1.5 py-0.5",style:{fontSize:10.5,background:"rgba(34,197,94,.12)",color:"var(--dsw-success)"},children:[(0,s.jsx)("span",{className:"h-1.5 w-1.5 rounded-full",style:{background:"var(--dsw-success)"}}),t.enabled]});return(0,s.jsxs)("div",{className:"flex flex-col gap-5",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{style:{fontSize:20,fontWeight:600,color:"var(--dsw-label-primary)"},children:t.setPlugins}),(0,s.jsx)("div",{className:"mt-1",style:{fontSize:13,color:"var(--dsw-label-tertiary)"},children:t.pluginPageDesc}),z&&(0,s.jsxs)("div",{role:"alert",className:"mt-3 rounded-xl px-3 py-2",style:{fontSize:12.5,color:"var(--dsw-danger)",background:"var(--dsw-hover)"},children:[z," ",(0,s.jsx)("button",{type:"button",className:"underline",onClick:()=>void $(),children:t.settingsRetry})]})]}),C&&(0,s.jsxs)("div",{className:"fixed top-6 left-1/2 -translate-x-1/2 z-[9999] flex items-center gap-2.5 px-4 py-2 rounded-xl shadow-2xl transition-all pointer-events-none",style:{fontSize:13,fontWeight:500,background:"var(--dsw-surface-l1, #1e2025)",border:C.loading?"1px solid var(--dsw-border-l3)":C.ok?"1px solid rgba(34,197,94,.4)":"1px solid rgba(236,19,19,.4)",color:C.loading?"var(--dsw-label-primary)":C.ok?"var(--dsw-success)":"var(--dsw-danger)",backdropFilter:"blur(12px)",boxShadow:"0 10px 30px rgba(0,0,0,0.5)"},children:[C.loading&&(0,s.jsx)("span",{className:"h-3.5 w-3.5 flex-none animate-spin rounded-full border-2 border-current border-t-transparent"}),(0,s.jsx)("span",{children:C.msg})]}),(0,s.jsxs)("div",{className:"hairline-b flex items-center gap-6",children:[(0,s.jsx)("button",{className:"settings-tab-underline","data-active":"config"===i,onClick:()=>o("config"),children:t.pluginConfig}),(0,s.jsx)("button",{className:"settings-tab-underline","data-active":"list"===i,onClick:()=>o("list"),children:t.pluginList})]}),"config"===i&&(0,s.jsxs)("div",{className:"flex flex-col gap-2.5",children:[(0,s.jsxs)("div",{className:"flex flex-col gap-2 rounded-2xl px-4 py-3",style:{border:"0.5px solid var(--dsw-border-l2)"},children:[(0,s.jsx)("div",{style:{fontSize:13.5,fontWeight:500},children:t.addPackage}),(0,s.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,s.jsx)("input",{value:g,onChange:e=>b(e.target.value),placeholder:t.addPackagePlaceholder,className:"min-w-0 flex-1 rounded-xl px-3 py-2",style:{fontSize:13,background:"var(--dsw-hover)",border:"0.5px solid var(--dsw-border-l2)",fontFamily:"var(--font-mono)"},onKeyDown:e=>{"Enter"===e.key&&g.trim()&&!w&&D("install",{source:g.trim(),local:y},void 0,t.installing,t.installSuccess).then(e=>{e&&b("")})}}),(0,s.jsxs)("label",{className:"flex items-center gap-1.5",style:{fontSize:12.5,color:"var(--dsw-label-secondary)"},children:[(0,s.jsx)("input",{type:"checkbox",checked:y,onChange:e=>j(e.target.checked),disabled:!e}),t.installLocal]}),(0,s.jsx)("button",{className:"btn-primary-white",style:{height:32,padding:"0 14px"},disabled:!g.trim()||w,onClick:()=>void D("install",{source:g.trim(),local:y},void 0,t.installing,t.installSuccess).then(e=>{e&&b("")}),children:t.install})]})]}),(0,s.jsx)("div",{className:"flex justify-end",children:(0,s.jsxs)("button",{className:"btn-outline",style:{height:30,fontSize:12.5},disabled:w,onClick:async()=>{S(!0);try{let a=await fetch("/api/plugins",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"reload",cwd:e})}),s=await a.json();if(!a.ok||!s.success)throw Error(s.error||t.toastError);R(!0,t.reloadedSessions.replace("{loaders}",String(s.data?.loaders??0)).replace("{sessions}",String(s.data?.sessions??0))),await $()}catch(e){R(!1,e instanceof Error?e.message:t.toastError)}finally{S(!1)}},children:[(0,s.jsx)(n.Ct,{size:13})," ",t.reloadExtensions]})}),0===F.length&&(0,s.jsx)("div",{style:{fontSize:12.5,color:"var(--dsw-label-caption)"},children:t.extensionsEmpty}),F.map(e=>{let a=`ext:${e.path}`,l=v.has(a),r=W(e.path);return(0,s.jsxs)("div",{className:"rounded-2xl",style:{border:"0.5px solid var(--dsw-border-l2)"},children:[(0,s.jsxs)("button",{className:"flex w-full items-center gap-3 px-4 py-3.5 text-left",onClick:()=>L(a),children:[(0,s.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",style:{fontSize:14,fontWeight:500},children:[(0,s.jsx)("span",{children:e.name}),e.error&&(0,s.jsx)("span",{className:"rounded px-1.5 py-0.5",style:{fontSize:10.5,color:"var(--dsw-danger)",background:"var(--pw-danger-soft, rgba(236,19,19,.12))"},children:t.extensionLoadError}),e.disabled&&!e.error&&(0,s.jsx)("span",{className:"rounded px-1.5 py-0.5",style:{fontSize:10.5,color:"var(--dsw-label-tertiary)",background:"var(--dsw-selector)"},children:t.disabled})]}),(0,s.jsx)("div",{className:"truncate",style:{fontSize:12,color:e.error?"var(--dsw-danger)":"var(--dsw-label-caption)"},title:e.error??e.path,children:e.error??e.path})]}),(0,s.jsx)("span",{className:"chevron",style:{color:"var(--dsw-label-tertiary)",display:"inline-flex",transform:l?"rotate(180deg)":"none",transition:"transform 120ms var(--ds-ease-in-out)"},children:(0,s.jsx)(n.Cd,{size:14})})]}),l&&(0,s.jsxs)("div",{className:"hairline-t flex flex-col gap-1.5 px-4 py-3",style:{fontSize:12,color:"var(--dsw-label-secondary)"},children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{className:"rounded-md px-1.5 py-0.5",style:{fontSize:10.5,border:"0.5px solid var(--dsw-border-l3)",color:"var(--dsw-label-tertiary)"},children:"global"===r?t.scopeGlobal:"project"===r?t.scopeProject:t.scopePackage}),O]}),(0,s.jsx)("div",{className:"break-all",style:{fontFamily:"var(--font-mono)",fontSize:11.5,color:"var(--dsw-label-caption)"},children:e.path})]})]},a)})]}),"list"===i&&(0,s.jsxs)("div",{className:"flex flex-col gap-3.5",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2.5 rounded-xl px-3.5 py-2.5 transition-colors",style:{background:"var(--dsw-hover)",border:"0.5px solid var(--dsw-border-l2)"},children:[(0,s.jsx)(n.FG,{size:15,style:{color:"var(--dsw-label-caption)"}}),(0,s.jsx)("input",{value:x,onChange:e=>h(e.target.value),placeholder:t.searchPlugins,className:"w-full bg-transparent outline-none",style:{fontSize:13,color:"var(--dsw-label-primary)"}})]}),(0,s.jsxs)("div",{className:"flex items-baseline gap-2",children:[(0,s.jsx)("span",{style:{fontSize:13.5,fontWeight:600,color:"var(--dsw-label-primary)"},children:t.pluginList}),(0,s.jsx)("span",{style:{fontSize:12,color:"var(--dsw-label-caption)"},children:A.length})]}),0===A.length?(0,s.jsx)("div",{style:{fontSize:12.5,color:"var(--dsw-label-caption)"},children:t.packagesEmpty}):(0,s.jsx)("div",{className:"grid grid-cols-1 items-start sm:grid-cols-2 gap-2.5",children:A.map(e=>{let l=v.has(e.key),i="package"===e.kind?!0===e.p.disabled:!0===e.e.disabled,o=E===e.key,d=N===e.key;return(0,s.jsxs)("div",{className:"flex flex-col rounded-xl transition-colors",style:{background:"var(--dsw-hover)",border:"0.5px solid var(--dsw-border-l2)"},children:[(0,s.jsxs)("div",{className:"flex h-11 items-center justify-between px-3.5 gap-2",children:[(0,s.jsx)("span",{className:"min-w-0 flex-1 truncate font-medium text-[var(--dsw-label-primary)] cursor-pointer select-none",style:{fontSize:13.5},onClick:()=>L(e.key),title:e.name,children:e.name}),(0,s.jsxs)("div",{ref:o?T:void 0,className:"relative flex-none",children:[(0,s.jsxs)("button",{type:"button",className:"flex min-w-[86px] items-center justify-center rounded-lg px-3 transition-colors cursor-pointer select-none disabled:cursor-wait",style:{gap:7,height:30,background:"rgba(255, 255, 255, 0.04)",border:"1px solid rgba(255, 255, 255, 0.08)"},"aria-haspopup":"menu","aria-expanded":o,disabled:d,onClick:t=>{t.stopPropagation(),M(t=>t===e.key?null:e.key)},children:[d?(0,s.jsx)("span",{className:"h-3 w-3 flex-none animate-spin rounded-full border border-[var(--dsw-label-tertiary)] border-t-transparent"}):i?null:(0,s.jsx)("span",{className:"h-2 w-2 flex-none rounded-full",style:{background:"#22c55e",boxShadow:"0 0 5px rgba(34, 197, 94, 0.4)"}}),(0,s.jsx)("span",{style:{fontSize:12,fontWeight:500,color:i?"var(--dsw-label-tertiary)":"var(--dsw-success)",lineHeight:1},children:i?t.disabled:t.enabled}),(0,s.jsx)(n.Cd,{size:13,style:{color:"var(--dsw-label-tertiary)",transform:o?"rotate(180deg)":"none",transition:"transform 140ms ease"}})]}),o&&(0,s.jsxs)("div",{className:"popover absolute right-0 top-full mt-1.5 z-50 w-36 py-1 rounded-xl shadow-xl",role:"menu",style:{background:"var(--dsw-surface-l1, #1e2025)",border:"0.5px solid var(--dsw-border-l3)",boxShadow:"0 10px 25px -5px rgba(0, 0, 0, 0.5), 0 8px 10px -6px rgba(0, 0, 0, 0.5)"},children:[(0,s.jsx)("button",{type:"button",role:"menuitem",className:"flex w-full items-center gap-2 px-3 py-1.5 text-left text-xs transition-colors hover:bg-[var(--dsw-hover)] cursor-pointer",style:{color:i?"var(--dsw-success)":"var(--dsw-label-primary)"},disabled:w,onClick:()=>{M(null),D("toggle","package"===e.kind?{kind:"package",source:e.p.source,scope:e.p.scope,disabled:!i}:{kind:"extension",path:e.e.path,disabled:!i},e.key,i?"zh"===a?"正在启用...":"Enabling...":"zh"===a?"正在停用...":"Disabling...",i?t.enabled:t.disabled)},children:i?t.enablePlugin:t.disablePlugin}),"package"===e.kind&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("button",{type:"button",role:"menuitem",className:"flex w-full items-center gap-2 px-3 py-1.5 text-left text-xs transition-colors hover:bg-[var(--dsw-hover)] cursor-pointer disabled:opacity-50",style:{color:"var(--dsw-label-secondary)"},disabled:w,onClick:()=>{M(null),D("update",{source:e.p.source},e.key,t.updating,t.updateSuccess)},children:t.update}),(0,s.jsx)("button",{type:"button",role:"menuitem",className:"flex w-full items-center gap-2 px-3 py-1.5 text-left text-xs transition-colors hover:bg-[var(--dsw-hover)] cursor-pointer disabled:opacity-50",style:{color:"var(--dsw-danger)"},disabled:w,onClick:()=>{M(null),r(e.p.source)&&D("remove",{source:e.p.source,local:"project"===e.p.scope},e.key,t.uninstalling,t.uninstallSuccess)},children:t.uninstall})]}),(0,s.jsx)("div",{className:"my-1 border-t border-[var(--dsw-border-l1)]"}),(0,s.jsx)("button",{type:"button",role:"menuitem",className:"flex w-full items-center gap-2 px-3 py-1.5 text-left text-xs transition-colors hover:bg-[var(--dsw-hover)] cursor-pointer",style:{color:"var(--dsw-label-tertiary)"},onClick:()=>{L(e.key),M(null)},children:l?"zh"===a?"收起详情":"Hide details":"zh"===a?"查看详情":"View details"})]})]})]}),l&&(0,s.jsx)("div",{className:"hairline-t flex flex-col gap-2 px-3.5 py-3",style:{fontSize:12},children:"package"===e.kind?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:"break-all",style:{color:"var(--dsw-label-tertiary)",fontSize:11.5},children:e.p.source}),(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{className:"rounded-md px-1.5 py-0.5",style:{fontSize:10.5,border:"0.5px solid var(--dsw-border-l3)",color:"var(--dsw-label-tertiary)"},children:"user"===e.p.scope?t.scopeGlobal:t.scopeProject}),(0,s.jsxs)("span",{style:{color:"var(--dsw-label-caption)",fontSize:11.5},children:[t.resources,": ",e.p.resources.extensions," ext \xb7 ",e.p.resources.skills," skills \xb7 ",e.p.resources.prompts," prompts"]})]}),(0,s.jsxs)("div",{className:"flex items-center justify-end gap-3 pt-1",children:[(0,s.jsx)("button",{disabled:w,style:{fontSize:12,color:"var(--dsw-label-secondary)"},className:"hover:underline cursor-pointer disabled:opacity-50",onClick:()=>void D("update",{source:e.p.source},e.key,t.updating,t.updateSuccess),children:t.update}),(0,s.jsx)("button",{disabled:w,style:{fontSize:12,color:"var(--dsw-danger)"},className:"hover:underline cursor-pointer disabled:opacity-50",onClick:()=>{r(e.p.source)&&D("remove",{source:e.p.source,local:"project"===e.p.scope},e.key,t.uninstalling,t.uninstallSuccess)},children:t.uninstall})]})]}):(0,s.jsx)("div",{className:"break-all",style:{fontFamily:"var(--font-mono)",fontSize:11.5,color:"var(--dsw-label-caption)"},children:e.e.path})})]},e.key)})})]})]})}}}]);