stageflow 0.40.0 → 0.42.0

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 (326) hide show
  1. package/README.md +3 -1
  2. package/dist/agents/authorChat.d.ts +4 -0
  3. package/dist/agents/authorChat.js +113 -12
  4. package/dist/agents/authorSessionStore.d.ts +35 -0
  5. package/dist/agents/authorSessionStore.js +152 -0
  6. package/dist/agents/chatTurn.d.ts +2 -0
  7. package/dist/agents/chatTurn.js +17 -1
  8. package/dist/agents/errors.d.ts +1 -1
  9. package/dist/agents/errors.js +1 -0
  10. package/dist/agents/evalGate.d.ts +61 -0
  11. package/dist/agents/evalGate.js +103 -0
  12. package/dist/agents/evalSession.d.ts +26 -0
  13. package/dist/agents/evalSession.js +29 -0
  14. package/dist/agents/hostContext.d.ts +3 -0
  15. package/dist/agents/hostContext.js +4 -1
  16. package/dist/agents/runtime/piRuntime.d.ts +1 -1
  17. package/dist/agents/runtime/piRuntime.js +4 -4
  18. package/dist/agents/runtime/types.d.ts +3 -1
  19. package/dist/agents/service.d.ts +27 -2
  20. package/dist/agents/service.js +88 -13
  21. package/dist/agents/sessions.d.ts +8 -0
  22. package/dist/agents/sessions.js +50 -10
  23. package/dist/agents/store.d.ts +14 -3
  24. package/dist/agents/store.js +45 -7
  25. package/dist/agents/toolRisk.d.ts +21 -0
  26. package/dist/agents/toolRisk.js +50 -0
  27. package/dist/cli/doctorCommand.js +26 -0
  28. package/dist/cli/evalCommand.d.ts +20 -0
  29. package/dist/cli/evalCommand.js +720 -0
  30. package/dist/cli/exportAllCommand.js +1 -1
  31. package/dist/cli/hostClient.d.ts +60 -0
  32. package/dist/cli/hostClient.js +71 -0
  33. package/dist/cli/validateOutput.d.ts +2 -2
  34. package/dist/cli/validateOutput.js +2 -2
  35. package/dist/cli.js +10 -0
  36. package/dist/config/atomicWrite.d.ts +15 -0
  37. package/dist/config/atomicWrite.js +43 -0
  38. package/dist/config/browseCatalog.d.ts +2 -0
  39. package/dist/config/browseCatalog.js +4 -2
  40. package/dist/config/csv.d.ts +9 -0
  41. package/dist/config/csv.js +81 -0
  42. package/dist/config/datasetAgentCheck.d.ts +18 -0
  43. package/dist/config/datasetAgentCheck.js +109 -0
  44. package/dist/config/datasetCandidates.d.ts +22 -0
  45. package/dist/config/datasetCandidates.js +86 -0
  46. package/dist/config/datasetFromSessions.d.ts +34 -0
  47. package/dist/config/datasetFromSessions.js +105 -0
  48. package/dist/config/datasetHash.d.ts +1 -0
  49. package/dist/config/datasetHash.js +4 -0
  50. package/dist/config/datasetImport.d.ts +21 -0
  51. package/dist/config/datasetImport.js +120 -0
  52. package/dist/config/datasetStageCheck.d.ts +9 -0
  53. package/dist/config/datasetStageCheck.js +17 -0
  54. package/dist/config/datasetTypes.d.ts +27 -0
  55. package/dist/config/datasetTypes.js +1 -0
  56. package/dist/config/ensureCatalogScanRoot.d.ts +2 -1
  57. package/dist/config/ensureCatalogScanRoot.js +2 -6
  58. package/dist/config/evalCatalog.d.ts +22 -0
  59. package/dist/config/evalCatalog.js +67 -0
  60. package/dist/config/evalWriteRoots.d.ts +17 -0
  61. package/dist/config/evalWriteRoots.js +109 -0
  62. package/dist/config/hostConfig.js +1 -0
  63. package/dist/config/installEvalSample.d.ts +34 -0
  64. package/dist/config/installEvalSample.js +182 -0
  65. package/dist/config/loadDataset.d.ts +16 -0
  66. package/dist/config/loadDataset.js +318 -0
  67. package/dist/config/loadEval.d.ts +32 -0
  68. package/dist/config/loadEval.js +1085 -0
  69. package/dist/config/loadOutcome.d.ts +5 -0
  70. package/dist/config/loadStageflowManifest.js +64 -0
  71. package/dist/config/resolveAgentTarget.d.ts +32 -0
  72. package/dist/config/resolveAgentTarget.js +118 -0
  73. package/dist/config/resolveEvalTarget.d.ts +21 -0
  74. package/dist/config/resolveEvalTarget.js +89 -0
  75. package/dist/config/scanCatalogPaths.d.ts +1 -1
  76. package/dist/config/scanCatalogPaths.js +17 -5
  77. package/dist/config/validateCatalog.d.ts +1 -1
  78. package/dist/config/validateCatalog.js +9 -1
  79. package/dist/config/validateEval.d.ts +36 -0
  80. package/dist/config/validateEval.js +405 -0
  81. package/dist/config/writeDataset.d.ts +54 -0
  82. package/dist/config/writeDataset.js +186 -0
  83. package/dist/config/writeEval.d.ts +25 -0
  84. package/dist/config/writeEval.js +398 -0
  85. package/dist/diagnostics/checks.js +1 -1
  86. package/dist/evals/agentDiff.d.ts +13 -0
  87. package/dist/evals/agentDiff.js +11 -0
  88. package/dist/evals/canonical.d.ts +3 -0
  89. package/dist/evals/canonical.js +24 -0
  90. package/dist/evals/caseTask.d.ts +3 -0
  91. package/dist/evals/caseTask.js +9 -0
  92. package/dist/evals/compare.d.ts +94 -0
  93. package/dist/evals/compare.js +201 -0
  94. package/dist/evals/constants.d.ts +60 -0
  95. package/dist/evals/constants.js +95 -0
  96. package/dist/evals/engine/FakeEngine.d.ts +33 -0
  97. package/dist/evals/engine/FakeEngine.js +176 -0
  98. package/dist/evals/engine/index.d.ts +9 -0
  99. package/dist/evals/engine/index.js +19 -0
  100. package/dist/evals/engine/promptfoo/PromptfooEngine.d.ts +52 -0
  101. package/dist/evals/engine/promptfoo/PromptfooEngine.js +311 -0
  102. package/dist/evals/engine/promptfoo/errors.d.ts +5 -0
  103. package/dist/evals/engine/promptfoo/errors.js +8 -0
  104. package/dist/evals/engine/promptfoo/generate.d.ts +30 -0
  105. package/dist/evals/engine/promptfoo/generate.js +342 -0
  106. package/dist/evals/engine/promptfoo/guard.d.ts +10 -0
  107. package/dist/evals/engine/promptfoo/guard.js +116 -0
  108. package/dist/evals/engine/promptfoo/install.d.ts +17 -0
  109. package/dist/evals/engine/promptfoo/install.js +73 -0
  110. package/dist/evals/engine/promptfoo/judgeProviders.d.ts +2 -0
  111. package/dist/evals/engine/promptfoo/judgeProviders.js +9 -0
  112. package/dist/evals/engine/promptfoo/judgeServices.d.ts +6 -0
  113. package/dist/evals/engine/promptfoo/judgeServices.js +41 -0
  114. package/dist/evals/engine/promptfoo/locate.d.ts +21 -0
  115. package/dist/evals/engine/promptfoo/locate.js +68 -0
  116. package/dist/evals/engine/promptfoo/nodeVersion.d.ts +7 -0
  117. package/dist/evals/engine/promptfoo/nodeVersion.js +14 -0
  118. package/dist/evals/engine/promptfoo/normalize.d.ts +66 -0
  119. package/dist/evals/engine/promptfoo/normalize.js +261 -0
  120. package/dist/evals/engine/promptfoo/pinned.d.ts +5 -0
  121. package/dist/evals/engine/promptfoo/pinned.js +5 -0
  122. package/dist/evals/engine/promptfoo/rubricPrompt.d.ts +14 -0
  123. package/dist/evals/engine/promptfoo/rubricPrompt.js +103 -0
  124. package/dist/evals/engine/promptfoo/runTokens.d.ts +18 -0
  125. package/dist/evals/engine/promptfoo/runTokens.js +31 -0
  126. package/dist/evals/engine/promptfoo/status.d.ts +13 -0
  127. package/dist/evals/engine/promptfoo/status.js +16 -0
  128. package/dist/evals/estimate.d.ts +56 -0
  129. package/dist/evals/estimate.js +66 -0
  130. package/dist/evals/graders/codeGrader.d.ts +6 -0
  131. package/dist/evals/graders/codeGrader.js +85 -0
  132. package/dist/evals/graders/conversationCheckGrader.d.ts +6 -0
  133. package/dist/evals/graders/conversationCheckGrader.js +62 -0
  134. package/dist/evals/graders/fieldGrader.d.ts +11 -0
  135. package/dist/evals/graders/fieldGrader.js +117 -0
  136. package/dist/evals/graders/goal.d.ts +3 -0
  137. package/dist/evals/graders/goal.js +14 -0
  138. package/dist/evals/graders/index.d.ts +18 -0
  139. package/dist/evals/graders/index.js +34 -0
  140. package/dist/evals/graders/notApplicable.d.ts +5 -0
  141. package/dist/evals/graders/notApplicable.js +9 -0
  142. package/dist/evals/graders/path.d.ts +26 -0
  143. package/dist/evals/graders/path.js +75 -0
  144. package/dist/evals/graders/referenceGrader.d.ts +5 -0
  145. package/dist/evals/graders/referenceGrader.js +59 -0
  146. package/dist/evals/graders/schemaGrader.d.ts +5 -0
  147. package/dist/evals/graders/schemaGrader.js +29 -0
  148. package/dist/evals/graders/subject.d.ts +6 -0
  149. package/dist/evals/graders/subject.js +33 -0
  150. package/dist/evals/graders/toolCallsGrader.d.ts +6 -0
  151. package/dist/evals/graders/toolCallsGrader.js +100 -0
  152. package/dist/evals/graders/transcript.d.ts +12 -0
  153. package/dist/evals/graders/transcript.js +57 -0
  154. package/dist/evals/graders/types.d.ts +20 -0
  155. package/dist/evals/graders/types.js +1 -0
  156. package/dist/evals/judgeProviders.d.ts +16 -0
  157. package/dist/evals/judgeProviders.js +27 -0
  158. package/dist/evals/lineDiff.d.ts +5 -0
  159. package/dist/evals/lineDiff.js +34 -0
  160. package/dist/evals/listStatus.d.ts +31 -0
  161. package/dist/evals/listStatus.js +48 -0
  162. package/dist/evals/manager.d.ts +174 -0
  163. package/dist/evals/manager.js +787 -0
  164. package/dist/evals/plan.d.ts +58 -0
  165. package/dist/evals/plan.js +602 -0
  166. package/dist/evals/providerKeys.d.ts +1 -0
  167. package/dist/evals/providerKeys.js +21 -0
  168. package/dist/evals/read/agentTargets.d.ts +37 -0
  169. package/dist/evals/read/agentTargets.js +101 -0
  170. package/dist/evals/read/api.d.ts +196 -0
  171. package/dist/evals/read/api.js +358 -0
  172. package/dist/evals/read/compare.d.ts +4 -0
  173. package/dist/evals/read/compare.js +39 -0
  174. package/dist/evals/read/datasets.d.ts +105 -0
  175. package/dist/evals/read/datasets.js +318 -0
  176. package/dist/evals/read/list.d.ts +66 -0
  177. package/dist/evals/read/list.js +173 -0
  178. package/dist/evals/read/results.d.ts +46 -0
  179. package/dist/evals/read/results.js +107 -0
  180. package/dist/evals/read/runs.d.ts +149 -0
  181. package/dist/evals/read/runs.js +289 -0
  182. package/dist/evals/read/suggestions.d.ts +43 -0
  183. package/dist/evals/read/suggestions.js +73 -0
  184. package/dist/evals/runner/FakeAgentBackend.d.ts +40 -0
  185. package/dist/evals/runner/FakeAgentBackend.js +82 -0
  186. package/dist/evals/runner/agentCaseRunner.d.ts +24 -0
  187. package/dist/evals/runner/agentCaseRunner.js +388 -0
  188. package/dist/evals/runner/caseRunner.d.ts +7 -0
  189. package/dist/evals/runner/caseRunner.js +17 -0
  190. package/dist/evals/runner/conversationSubject.d.ts +18 -0
  191. package/dist/evals/runner/conversationSubject.js +123 -0
  192. package/dist/evals/runner/simulatorModel.d.ts +51 -0
  193. package/dist/evals/runner/simulatorModel.js +58 -0
  194. package/dist/evals/runner/simulatorPrompt.d.ts +29 -0
  195. package/dist/evals/runner/simulatorPrompt.js +59 -0
  196. package/dist/evals/runner/stageCaseRunner.d.ts +30 -0
  197. package/dist/evals/runner/stageCaseRunner.js +279 -0
  198. package/dist/evals/runner/userDriver.d.ts +71 -0
  199. package/dist/evals/runner/userDriver.js +104 -0
  200. package/dist/evals/scoring.d.ts +34 -0
  201. package/dist/evals/scoring.js +67 -0
  202. package/dist/evals/snapshot.d.ts +183 -0
  203. package/dist/evals/snapshot.js +65 -0
  204. package/dist/evals/stageDiff.d.ts +8 -0
  205. package/dist/evals/stageDiff.js +48 -0
  206. package/dist/evals/stats.d.ts +95 -0
  207. package/dist/evals/stats.js +220 -0
  208. package/dist/evals/statsAdapter.d.ts +4 -0
  209. package/dist/evals/statsAdapter.js +30 -0
  210. package/dist/evals/statsTypes.d.ts +51 -0
  211. package/dist/evals/statsTypes.js +18 -0
  212. package/dist/evals/storeError.d.ts +5 -0
  213. package/dist/evals/storeError.js +8 -0
  214. package/dist/evals/storeTypes.d.ts +207 -0
  215. package/dist/evals/storeTypes.js +1 -0
  216. package/dist/evals/tTable.d.ts +3 -0
  217. package/dist/evals/tTable.js +15 -0
  218. package/dist/evals/triage/constants.d.ts +26 -0
  219. package/dist/evals/triage/constants.js +33 -0
  220. package/dist/evals/triage/credentials.d.ts +13 -0
  221. package/dist/evals/triage/credentials.js +20 -0
  222. package/dist/evals/triage/jevClassifier.d.ts +14 -0
  223. package/dist/evals/triage/jevClassifier.js +124 -0
  224. package/dist/evals/triage/judgeClassifier.d.ts +10 -0
  225. package/dist/evals/triage/judgeClassifier.js +76 -0
  226. package/dist/evals/triage/prompts.d.ts +16 -0
  227. package/dist/evals/triage/prompts.js +64 -0
  228. package/dist/evals/triage/service.d.ts +79 -0
  229. package/dist/evals/triage/service.js +217 -0
  230. package/dist/evals/triage/stateBuilder.d.ts +19 -0
  231. package/dist/evals/triage/stateBuilder.js +125 -0
  232. package/dist/evals/triage/types.d.ts +60 -0
  233. package/dist/evals/triage/types.js +8 -0
  234. package/dist/evals/types.d.ts +347 -0
  235. package/dist/evals/types.js +1 -0
  236. package/dist/mcp/deps.d.ts +7 -0
  237. package/dist/mcp/evalTools.d.ts +3 -0
  238. package/dist/mcp/evalTools.js +280 -0
  239. package/dist/mcp/server.js +1 -0
  240. package/dist/mcp/tools.js +2 -0
  241. package/dist/models/response.d.ts +7 -2
  242. package/dist/models/response.js +6 -1
  243. package/dist/operatorAgent/agentAuthorContext.d.ts +1 -1
  244. package/dist/operatorAgent/agentAuthorContext.js +1 -1
  245. package/dist/operatorAgent/piModel.js +17 -4
  246. package/dist/operatorAgent/profiles/agentAuthor.d.ts +3 -1
  247. package/dist/operatorAgent/profiles/agentAuthor.js +145 -20
  248. package/dist/operatorAgent/profiles/agentAuthorPlaybook.d.ts +1 -1
  249. package/dist/operatorAgent/profiles/agentAuthorPlaybook.js +48 -15
  250. package/dist/operatorAgent/profiles/authorReadable.d.ts +2 -0
  251. package/dist/operatorAgent/profiles/authorReadable.js +26 -0
  252. package/dist/package-meta.d.ts +1 -1
  253. package/dist/package-meta.js +1 -1
  254. package/dist/runstore/port.d.ts +43 -0
  255. package/dist/runstore/sqlite/SqliteRunStore.d.ts +28 -0
  256. package/dist/runstore/sqlite/SqliteRunStore.js +99 -5
  257. package/dist/runstore/sqlite/evalStore.d.ts +20 -0
  258. package/dist/runstore/sqlite/evalStore.js +541 -0
  259. package/dist/runstore/sqlite/migrations/015-evals.d.ts +12 -0
  260. package/dist/runstore/sqlite/migrations/015-evals.js +157 -0
  261. package/dist/runstore/sqlite/migrations/016-eval-subject-ref.d.ts +12 -0
  262. package/dist/runstore/sqlite/migrations/016-eval-subject-ref.js +20 -0
  263. package/dist/runstore/sqlite/migrations/017-eval-result-suggestions.d.ts +11 -0
  264. package/dist/runstore/sqlite/migrations/017-eval-result-suggestions.js +36 -0
  265. package/dist/runstore/sqlite/migrations/index.js +6 -0
  266. package/dist/runstore/sqlite/suggestionStore.d.ts +14 -0
  267. package/dist/runstore/sqlite/suggestionStore.js +132 -0
  268. package/dist/runtime/pipelineRunner.d.ts +2 -1
  269. package/dist/runtime/pipelineRunner.js +2 -0
  270. package/dist/runtime/runManager.d.ts +2 -1
  271. package/dist/runtime/runManager.js +8 -6
  272. package/dist/runtime/runRetentionSweep.js +2 -2
  273. package/dist/server/agentAuthorRoutes.js +50 -1
  274. package/dist/server/bootstrap.d.ts +8 -0
  275. package/dist/server/bootstrap.js +56 -0
  276. package/dist/server/controlToken.js +3 -0
  277. package/dist/server/evalInternalRoutes.d.ts +14 -0
  278. package/dist/server/evalInternalRoutes.js +87 -0
  279. package/dist/server/evalRouteContext.d.ts +46 -0
  280. package/dist/server/evalRouteContext.js +43 -0
  281. package/dist/server/evalRoutes.d.ts +5 -0
  282. package/dist/server/evalRoutes.js +1427 -0
  283. package/dist/server/evalTriageRoutes.d.ts +2 -0
  284. package/dist/server/evalTriageRoutes.js +95 -0
  285. package/dist/server/http.d.ts +5 -0
  286. package/dist/server/http.js +32 -2
  287. package/dist/server/mcpHost.js +3 -0
  288. package/dist/toolkit/meta.d.ts +1 -1
  289. package/dist/toolkit/meta.js +15 -0
  290. package/dist/toolkit/profiles.js +1 -1
  291. package/dist/types/stageflowManifest.d.ts +6 -0
  292. package/dist/ui/assets/AssistantRuntimeProvider-qIX1xNoH.js +9 -0
  293. package/dist/ui/assets/{MarkdownText-D7tYaIFO.js → MarkdownText-BTrOqu5J.js} +1 -1
  294. package/dist/ui/assets/chat-Df_wCpak.js +5 -0
  295. package/dist/ui/assets/chat-P7KQznHm.css +2 -0
  296. package/dist/ui/assets/{main-BFo79krC.css → main-CHlmTNJe.css} +1 -1
  297. package/dist/ui/assets/main-CvVfxmMd.js +271 -0
  298. package/dist/ui/chat.html +3 -3
  299. package/dist/ui/index.html +3 -3
  300. package/examples/README.md +2 -0
  301. package/examples/document-policy-review/README.md +35 -0
  302. package/examples/document-policy-review/agents/compliance.agent.yaml +42 -0
  303. package/examples/document-policy-review/documents/acme-vendor-sow.md +15 -0
  304. package/examples/document-policy-review/documents/support-runbook.md +13 -0
  305. package/examples/document-policy-review/policies/acceptable-use.md +13 -0
  306. package/examples/document-policy-review/policies/data-handling.md +17 -0
  307. package/examples/document-policy-review/policies/vendor-security.md +17 -0
  308. package/examples/evals/README.md +123 -0
  309. package/examples/evals/critique-sample.dataset.jsonl +8 -0
  310. package/examples/evals/critique-sample.eval.yaml +34 -0
  311. package/examples/evals/critique-sample.task.yaml +4 -0
  312. package/examples/evals/eval-sample.pipeline.yaml +35 -0
  313. package/examples/evals/support-sample.agent.yaml +20 -0
  314. package/examples/evals/support-sample.dataset.jsonl +6 -0
  315. package/examples/evals/support-sample.eval.yaml +38 -0
  316. package/examples/stageflow.yaml +6 -0
  317. package/package.json +1 -1
  318. package/skills/stageflow/SKILL.md +5 -2
  319. package/skills/stageflow/references/control-surface.md +4 -2
  320. package/skills/stageflow/references/evals.md +68 -0
  321. package/skills/stageflow-author/SKILL.md +4 -0
  322. package/skills/stageflow-run/SKILL.md +4 -0
  323. package/dist/ui/assets/AssistantRuntimeProvider-CsiPFhCT.js +0 -9
  324. package/dist/ui/assets/chat-BbLukq9W.js +0 -5
  325. package/dist/ui/assets/chat-zIZU_bP1.css +0 -2
  326. package/dist/ui/assets/main-CijYMeM0.js +0 -259
@@ -1,259 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/Tooltip-DrpoRRNi.js","assets/jsx-runtime-iVoFAvQ_.js"])))=>i.map(i=>d[i]);
2
- import{n as e,o as t,t as n}from"./jsx-runtime-iVoFAvQ_.js";import{$ as r,$t as i,A as a,At as o,B as s,Bt as c,C as l,Ct as u,D as d,Dt as f,E as p,F as m,Ft as h,G as g,Gt as _,H as v,Ht as y,I as b,It as x,J as S,Jt as C,K as w,Kt as T,L as E,Lt as D,M as O,Mt as k,N as A,Nt as j,O as M,Ot as N,P,Pt as F,Q as I,Qt as L,R,Rt as z,S as B,Sn as V,St as H,T as ee,Tt as te,U as ne,Ut as re,V as ie,Vt as ae,W as oe,Wt as se,X as ce,Xt as le,Y as ue,Yt as de,Z as fe,Zt as pe,_ as me,_n as he,_t as ge,an as _e,at as ve,b as ye,bn as be,bt as xe,c as Se,cn as Ce,ct as we,d as Te,dn as Ee,dt as De,en as Oe,et as ke,f as Ae,fn as je,ft as Me,g as U,gn as Ne,gt as Pe,h as Fe,hn as W,ht as Ie,in as Le,it as Re,j as ze,jt as Be,k as Ve,l as He,ln as Ue,lt as We,m as Ge,mn as Ke,mt as qe,nn as Je,nt as Ye,on as Xe,ot as Ze,p as Qe,pn as $e,pt as et,q as tt,qt as nt,rn as rt,rt as it,s as at,sn as ot,st,t as ct,tn as lt,tt as ut,u as dt,un as ft,ut as pt,v as mt,vn as ht,vt as gt,w as _t,wt as vt,x as G,xn as yt,xt as bt,y as xt,yn as St,yt as Ct,z as wt,zt as Tt}from"./AssistantRuntimeProvider-CsiPFhCT.js";import{C as Et,E as Dt,S as Ot,T as K,_ as kt,a as At,b as jt,c as Mt,d as Nt,f as Pt,g as Ft,h as It,i as Lt,l as Rt,m as zt,o as q,p as Bt,r as Vt,s as Ht,t as Ut,u as Wt,v as Gt,w as Kt,x as qt,y as Jt}from"./Tooltip-DrpoRRNi.js";import{A as Yt,a as Xt,j as Zt}from"./ReadonlyStore-BfXqHykm.js";var Qt={transparent:{r:0,g:0,b:0,a:0},black:{r:0,g:0,b:0,a:1},white:{r:255,g:255,b:255,a:1}},$t=(e,t,n)=>Math.max(t,Math.min(n,e));function en(e){return e.split(``).map(e=>e+e).join(``)}function tn(e){if(typeof e!=`string`)return null;let t=e.trim().replace(/^#/,``),n=t.length===3||t.length===4?en(t):t;return n.length!==6&&n.length!==8||!/^[0-9a-fA-F]+$/.test(n)?null:{r:parseInt(n.slice(0,2),16),g:parseInt(n.slice(2,4),16),b:parseInt(n.slice(4,6),16),a:n.length===8?parseInt(n.slice(6,8),16)/255:1}}function nn(e){let t=e.indexOf(`(`);if(t===-1||!e.trim().endsWith(`)`))return null;let n=e.slice(t+1,e.lastIndexOf(`)`)).replace(/\//g,` `).split(/[\s,]+/).map(e=>e.trim()).filter(Boolean);if(n.length<3)return null;let r=e=>$t(e.endsWith(`%`)?parseFloat(e)/100*255:parseFloat(e),0,255),i=r(n[0]),a=r(n[1]),o=r(n[2]);if([i,a,o].some(Number.isNaN))return null;let s=1;if(n.length>=4){let e=n[3];if(s=e.endsWith(`%`)?parseFloat(e)/100:parseFloat(e),Number.isNaN(s))return null;s=$t(s,0,1)}return{r:i,g:a,b:o,a:s}}function rn(e){let t=e.trim(),n=Qt[t.toLowerCase()];return n?{...n}:t.startsWith(`#`)?tn(t):/^rgba?\(/i.test(t)?nn(t):null}function an(e,t,n){let r=e=>$t(Math.round(e),0,255).toString(16).padStart(2,`0`).toUpperCase();return`#${r(e)}${r(t)}${r(n)}`}function on({r:e,g:t,b:n,a:r}){if(r>=1)return an(e,t,n);let i=e=>$t(Math.round(e),0,255);return`rgba(${i(e)}, ${i(t)}, ${i(n)}, ${parseFloat(r.toFixed(4))})`}var sn={"--color-syntax-keyword":`var(--color-text-accent)`,"--color-syntax-string":`var(--color-text-green)`,"--color-syntax-comment":`var(--color-text-secondary)`,"--color-syntax-number":`var(--color-text-orange)`,"--color-syntax-function":`var(--color-text-blue)`,"--color-syntax-type":`var(--color-text-purple)`,"--color-syntax-variable":`var(--color-text-primary)`,"--color-syntax-operator":`var(--color-text-cyan)`,"--color-syntax-constant":`var(--color-text-orange)`,"--color-syntax-tag":`var(--color-text-red)`,"--color-syntax-attribute":`var(--color-text-teal)`,"--color-syntax-property":`var(--color-text-cyan)`,"--color-syntax-punctuation":`var(--color-text-disabled)`,"--color-syntax-background":`var(--color-background-muted)`},cn={"--color-data-categorical-blue":`light-dark(#0171E3, #0171E3)`,"--color-data-categorical-orange":`light-dark(#EB6E00, #EB6E00)`,"--color-data-categorical-purple":`light-dark(#6B1EFD, #6B1EFD)`,"--color-data-categorical-green":`light-dark(#0B991F, #0B991F)`,"--color-data-categorical-pink":`light-dark(#F351C0, #F351C0)`,"--color-data-categorical-cyan":`light-dark(#0171A4, #0171A4)`,"--color-data-categorical-red":`light-dark(#F5394F, #F5394F)`,"--color-data-categorical-teal":`light-dark(#08A3A3, #08A3A3)`,"--color-data-categorical-brown":`light-dark(#965E03, #965E03)`,"--color-data-categorical-indigo":`light-dark(#6F8AFF, #6F8AFF)`,"--color-data-neutral":`light-dark(#8494A3, #8C939B)`,"--color-data-blue-5":`light-dark(#02165E, #02165E)`,"--color-data-blue-4":`light-dark(#004CBC, #004CBC)`,"--color-data-blue-3":`light-dark(#2694FE, #2694FE)`,"--color-data-blue-2":`light-dark(#78BEFF, #78BEFF)`,"--color-data-blue-1":`light-dark(#DBECFF, #DBECFF)`,"--color-data-shamrock-5":`light-dark(#0B603D, #0B603D)`,"--color-data-shamrock-4":`light-dark(#138546, #138546)`,"--color-data-shamrock-3":`light-dark(#24BB5E, #24BB5E)`,"--color-data-shamrock-2":`light-dark(#8EF7AA, #8EF7AA)`,"--color-data-shamrock-1":`light-dark(#D6FEE4, #D6FEE4)`,"--color-data-orange-5":`light-dark(#A13F04, #A13F04)`,"--color-data-orange-4":`light-dark(#D66100, #D66100)`,"--color-data-orange-3":`light-dark(#FD9537, #FD9537)`,"--color-data-orange-2":`light-dark(#FDB876, #FDB876)`,"--color-data-orange-1":`light-dark(#FFE6CF, #FFE6CF)`,"--color-data-pink-5":`light-dark(#8E1073, #8E1073)`,"--color-data-pink-4":`light-dark(#D123A1, #D123A1)`,"--color-data-pink-3":`light-dark(#F989D3, #F989D3)`,"--color-data-pink-2":`light-dark(#FEADE3, #FEADE3)`,"--color-data-pink-1":`light-dark(#FCE3F4, #FCE3F4)`,"--color-data-purple-5":`light-dark(#3E0697, #3E0697)`,"--color-data-purple-4":`light-dark(#6B1EFD, #6B1EFD)`,"--color-data-purple-3":`light-dark(#9081FF, #9081FF)`,"--color-data-purple-2":`light-dark(#B3B0FE, #B3B0FE)`,"--color-data-purple-1":`light-dark(#E8E8FB, #E8E8FB)`,"--color-data-red-5":`light-dark(#9D0519, #9D0519)`,"--color-data-red-4":`light-dark(#D31130, #D31130)`,"--color-data-red-3":`light-dark(#FB7D87, #FB7D87)`,"--color-data-red-2":`light-dark(#FFB2B8, #FFB2B8)`,"--color-data-red-1":`light-dark(#FEE4E6, #FEE4E6)`,"--color-data-teal-5":`light-dark(#08767D, #08767D)`,"--color-data-teal-4":`light-dark(#0C9293, #0C9293)`,"--color-data-teal-3":`light-dark(#0DB7AF, #0DB7AF)`,"--color-data-teal-2":`light-dark(#6CE6D8, #6CE6D8)`,"--color-data-teal-1":`light-dark(#D7FCF8, #D7FCF8)`,"--color-data-yellow-5":`light-dark(#8A5001, #8A5001)`,"--color-data-yellow-4":`light-dark(#D69804, #D69804)`,"--color-data-yellow-3":`light-dark(#FBCE03, #FBCE03)`,"--color-data-yellow-2":`light-dark(#FCEC85, #FCEC85)`,"--color-data-yellow-1":`light-dark(#FDF6BA, #FDF6BA)`,"--color-data-gray-5":`light-dark(#25363F, #333338)`,"--color-data-gray-4":`light-dark(#5D6C7B, #666A72)`,"--color-data-gray-3":`light-dark(#AFB9C4, #B2B8BE)`,"--color-data-gray-2":`light-dark(#CCD3DB, #D0D3D6)`,"--color-data-gray-1":`light-dark(#F1F4F7, #F2F4F6)`},ln={...sn,...cn},un=new Map;function dn(e){un.set(e.name,e)}function fn(e){return e==null||e===``?null:un.get(e)??null}function pn(e){return e===`base`?``:e.split(`+`).map(e=>{let[t,n]=e.split(`:`);return n===void 0?`.${t}`:/^\d/.test(n)?`.${t}-${n}`:`.${n}`}).join(``)}var mn={banner:[{property:`borderRadius`,vars:[`--_banner-radius`]}],button:[{property:`borderRadius`,vars:[`--_button-radius`]}],card:[{property:`borderRadius`,vars:[`--_card-radius`]},{property:`padding`,expand:`container`}],chat:[{property:`borderRadius`,vars:[`--_chat-composer-radius`]},{property:`padding`,vars:[`--_chat-composer-padding`]}],dialog:[{property:`borderRadius`,vars:[`--_dialog-radius`]},{property:`padding`,expand:`container`}],"dropdown-menu":[{property:`borderRadius`,vars:[`--_dropdown-menu-radius`]},{property:`padding`,vars:[`--_dropdown-menu-padding`]}],field:[{property:`borderRadius`,vars:[`--_field-radius`]}],hovercard:[{property:`borderRadius`,vars:[`--_hovercard-radius`]}],popover:[{property:`borderRadius`,vars:[`--_popover-radius`]}],"progressbar-mark":[{property:`width`,vars:[`--_progressbar-mark-width`],replaces:!0},{property:`height`,vars:[`--_progressbar-mark-height`],replaces:!0}],section:[{property:`padding`,expand:`container`}],"segmented-control":[{property:`borderRadius`,vars:[`--_segmented-control-radius`]},{property:`padding`,vars:[`--_segmented-control-padding`]}],textarea:[{property:`paddingInline`,vars:[`--_textarea-inline-padding`],replaces:!0}]};function hn(e,t){let n=mn[e];return n?n.filter(e=>e.property===t):[]}function gn(e){return`[data-${Wt}-theme="${e}"]`}var _n=`[data-${Wt}-theme]`;function vn(e){return`[data-${Wt}-media="${e}"]`}function yn(e,t){return`.${Ht}-${e}${t}`}function bn(e,t){let n=[],r=0,i=0;for(let t=0;t<e.length;t++){let a=e[t];a===`(`?r++:a===`)`?r=Math.max(0,r-1):a===`,`&&r===0&&(n.push(e.slice(i,t).trim()),i=t+1)}return n.push(e.slice(i).trim()),n.map(e=>`${e}${t}`).join(`, `)}function xn(e){return e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}var Sn=new Set([`padding`,`paddingBlock`,`paddingInline`,`paddingBlockStart`,`paddingBlockEnd`,`paddingInlineStart`,`paddingInlineEnd`]);function Cn(e){let t={};for(let[n,r]of e)switch(n){case`padding`:{let e=r.trim().split(/\s+/);e.length===1?(t.blockStart=e[0],t.blockEnd=e[0],t.inline=e[0]):e.length===2?(t.blockStart=e[0],t.blockEnd=e[0],t.inline=e[1]):e.length>=3&&(t.blockStart=e[0],t.inline=e[1],t.blockEnd=e[2]);break}case`paddingBlock`:{let e=r.trim().split(/\s+/);t.blockStart=e[0],t.blockEnd=e[1]??e[0];break}case`paddingInline`:{let e=r.trim().split(/\s+/);e.length===1?t.inline=e[0]:(t.inlineStart=e[0],t.inlineEnd=e[1]);break}case`paddingBlockStart`:t.blockStart=r;break;case`paddingBlockEnd`:t.blockEnd=r;break;case`paddingInlineStart`:t.inlineStart=r;break;case`paddingInlineEnd`:t.inlineEnd=r}return t}function wn(e,t){let n=Mt(`${e}-padding`),r=[],i=t.inlineStart??t.inline,a=t.inlineEnd??t.inline;return i!=null&&a!=null&&i===a&&t.blockStart!=null&&t.blockEnd!=null&&i===t.blockStart&&t.blockStart===t.blockEnd?(r.push([n,i??``]),r):(t.inlineStart!=null||t.inlineEnd!=null?(i!=null&&r.push([`${n}-inline-start`,i]),a!=null&&r.push([`${n}-inline-end`,a])):t.inline!=null&&r.push([`${n}-inline`,t.inline]),t.blockStart!=null&&r.push([`${n}-block-start`,t.blockStart]),t.blockEnd!=null&&r.push([`${n}-block-end`,t.blockEnd]),r)}function Tn(e){let t=[],n=e.tokens,r=e=>n[e]||`var(${e})`,i=Object.entries(n);if(i.length>0){let e=i.map(([e,t])=>` ${e}: ${t};`).join(`
3
- `);t.push(` :scope {\n${e}\n }`)}return e.components&&En(e.components,t),Dn(r,t),On(e.components||{},t),An(e.components||{},t),t}function En(e,t){for(let[n,r]of Object.entries(e))for(let[e,i]of Object.entries(r)){let r=Object.entries(i);if(r.length===0)continue;let a=yn(n,pn(e)),o=[],s=[];for(let[e,t]of r)e.startsWith(`:`)&&typeof t==`object`?s.push([e,t]):o.push([e,t]);let c=o,l=[],u=!1,d=new Set;for(let[e,t]of o){let r=hn(n,e),i=Sn.has(e)&&e!==`padding`?hn(n,`padding`):[];for(let n of[...r,...i])if(n.expand===`container`&&Sn.has(e)&&(u=!0),n.replaces&&d.add(e),n.vars)for(let e of n.vars)l.push([e,t])}if(u){let e=o.filter(([e])=>Sn.has(e)),t=o.filter(([e])=>!Sn.has(e)),r=wn(n,Cn(e));c=[...t,...r]}if(d.size>0&&(c=c.filter(([e])=>!d.has(e))),l.length>0&&(c=[...c,...l]),c.length>0){let e=c.map(([e,t])=>` ${xn(e)}: ${t};`).join(`
4
- `);t.push(` ${a} {\n${e}\n }`)}for(let[e,n]of s){let r=Object.entries(n);if(r.length>0){let n=r.map(([e,t])=>` ${xn(e)}: ${t};`).join(`
5
- `);t.push(` ${bn(a,e)} {\n${n}\n }`)}}}}function Dn(e,t){t.push(` :where(h1, h2, h3, h4, h5, h6) {
6
- font-family: var(--font-family-heading);
7
- color: var(--color-text-primary);
8
- }`);for(let n=1;n<=6;n++)t.push(` :where(h${n}) {
9
- font-size: ${e(`--text-heading-${n}-size`)};
10
- font-weight: ${e(`--text-heading-${n}-weight`)};
11
- line-height: ${e(`--text-heading-${n}-leading`)};
12
- }`);t.push(` :where(p) {
13
- font-family: var(--font-family-body);
14
- font-size: ${e(`--text-body-size`)};
15
- font-weight: ${e(`--text-body-weight`)};
16
- line-height: ${e(`--text-body-leading`)};
17
- color: var(--color-text-primary);
18
- }`),t.push(` :where(small) {
19
- font-size: ${e(`--text-supporting-size`)};
20
- font-weight: ${e(`--text-supporting-weight`)};
21
- line-height: ${e(`--text-supporting-leading`)};
22
- color: var(--color-text-secondary);
23
- }`),t.push(` :where(code, pre) {
24
- font-family: var(--font-family-code);
25
- font-size: ${e(`--text-code-size`)};
26
- line-height: ${e(`--text-code-leading`)};
27
- }`),t.push(` :where(hr) {
28
- border: none;
29
- border-top: 1px solid var(--color-border);
30
- }`)}function On(e,t){let n={primary:`var(--color-text-primary)`,secondary:`var(--color-text-secondary)`,disabled:`var(--color-text-disabled)`,placeholder:`var(--color-text-secondary)`,accent:`var(--color-text-accent)`},r=`text`in e,i=`heading`in e,a=`link`in e;if(r||i||a)for(let[e,o]of Object.entries(n))r&&t.push(` ${yn(`text`,`.${e}`)} { color: ${o}; }`),i&&t.push(` ${yn(`heading`,`.${e}`)} { color: ${o}; }`),a&&t.push(` ${yn(`link`,`.${e}`)} { color: ${o}; }`)}var kn={"4xs":`var(--font-size-4xs)`,"3xs":`var(--font-size-3xs)`,"2xs":`var(--font-size-2xs)`,xsm:`var(--font-size-xs)`,sm:`var(--font-size-sm)`,base:`var(--font-size-base)`,lg:`var(--font-size-lg)`,xl:`var(--font-size-xl)`,"2xl":`var(--font-size-2xl)`,"3xl":`var(--font-size-3xl)`,"4xl":`var(--font-size-4xl)`};function An(e,t){if(`text`in e)for(let[e,n]of Object.entries(kn)){let r=pn(`size:${e}`);t.push(` ${yn(`text`,r)} { font-size: ${n}; }`)}}function jn(e){let t=Tn(e),n=[],r=[];for(let e of t)e.trimStart().startsWith(`:where(`)?n.push(e):r.push(e);return{component:r,prose:n}}function Mn(e){let t=[],n=gn(e.name);for(let n of[`dark`,`light`]){let r=n===`dark`?e.__onDark:e.__onLight;if(!r)continue;let i=Object.entries(r.tokens);if(i.length>0){let e=i.map(([e,t])=>` ${e}: ${t};`).join(`
31
- `);t.push(` ${vn(n)} {\n${e}\n }`)}if(r.components)for(let[e,i]of Object.entries(r.components))for(let[r,a]of Object.entries(i)){let i=Object.entries(a);if(i.length===0)continue;let o=pn(r),s=`:is(${vn(n)}) :is(${yn(e,o)})`,c=[],l=[];for(let[e,t]of i)e.startsWith(`:`)&&typeof t==`object`?l.push([e,t]):c.push([e,t]);if(c.length>0){let e=c.map(([e,t])=>` ${xn(e)}: ${t};`).join(`
32
- `);t.push(` ${s} {\n${e}\n }`)}for(let[e,n]of l){let r=Object.entries(n);if(r.length>0){let n=r.map(([e,t])=>` ${xn(e)}: ${t};`).join(`
33
- `);t.push(` ${bn(s,e)} {\n${n}\n }`)}}}}return t.length===0?``:`@scope (${n}) to (${_n}) {\n${t.join(`
34
-
35
- `)}\n}`}function Nn(e){let{component:t,prose:n}=jn(e),r=gn(e.name),i=_n,a=``;n.length>0&&(a=`@scope (${r}) to (${i}) {\n${n.join(`
36
-
37
- `)}\n}`);let o=``;t.length>0&&(o=`@scope (${r}) to (${i}) {\n${t.join(`
38
-
39
- `)}\n}`);let s=Mn(e);return s&&(o=o?`${o}\n\n${s}`:s),{prose:a,component:o}}var Pn={...Nt,...jt,...Jt,...kt,...Gt,...Bt,...It,...Kt,...Ot,...Ft,...Et,...ln};function Fn(e){return`var(${e})`}Object.fromEntries(Object.keys(Pn).map(e=>[e,Fn(e)]));function In(e){let t=0,n=null,r=!1;for(let i=0;i<e.length;i++){let a=e[i];if(n!==null){r?r=!1:a===`\\`?r=!0:a===n&&(n=null);continue}if(a===`"`||a===`'`){n=a;continue}if(a===`(`){t++;continue}if(a===`)`){t=Math.max(0,t-1);continue}if(a===`,`&&t===0)return[e.slice(0,i).trim(),e.slice(i+1).trim()]}return null}function Ln(e){let t=e.trim();return!t.startsWith(`light-dark(`)||!t.endsWith(`)`)?null:In(t.slice(11,-1))}function Rn(e,t){if(Array.isArray(e))return t===`dark`?e[1]:e[0];let n=Ln(e);return n===null?e:t===`dark`?n[1]:n[0]}function zn(e,t){let n=0;for(let r=t;r<e.length;r++){let t=e[r];if(t===`(`)n++;else if(t===`)`&&(n--,n===0))return r}return-1}function Bn(e){let t=e.trim(),n=t.match(/\s+([\d.]+)%$/);return n?{color:t.slice(0,n.index).trim(),percentage:parseFloat(n[1])}:{color:t,percentage:null}}function Vn(e){let t=e.match(/^in\s+([\w-]+)\s*,\s*(.+)$/s);if(!t)return null;let[,n,r]=t;if(n.toLowerCase()!==`srgb`)return null;let i=In(r);if(i===null)return null;let a=Bn(i[0]),o=Bn(i[1]);if(a===null||o===null)return null;let s=rn(a.color),c=rn(o.color);if(s===null||c===null)return null;let l,u;a.percentage!==null&&o.percentage!==null?(l=a.percentage,u=o.percentage):a.percentage===null?o.percentage===null?(l=50,u=50):(u=o.percentage,l=100-u):(l=a.percentage,u=100-l);let d=l+u;if(d<=0)return null;let f=l/d,p=u/d,m=d<100?d/100:1,h=f*s.a+p*c.a,g=(e,t)=>f*e*s.a+p*t*c.a,_=g(s.r,c.r),v=g(s.g,c.g),y=g(s.b,c.b);return on({...h===0?{r:0,g:0,b:0}:{r:_/h,g:v/h,b:y/h},a:h*m})}function Hn(e){let t=e.indexOf(`color-mix(`);if(t===-1)return e;let n=t+9,r=zn(e,n);if(r===-1)return e;let i=Hn(e.slice(n+1,r)),a=Vn(i)??`color-mix(${i})`;return e.slice(0,t)+a+Hn(e.slice(r+1))}function Un(e,t,n,r){let i=e.indexOf(`var(`);if(i===-1)return e;let a=i+3,o=zn(e,a);if(o===-1)return e;let s=e.slice(a+1,o),c=In(s),l=(c?c[0]:s).trim(),u=c?c[1]:null,d;r.has(l)?d=e.slice(i,o+1):l in t?(r.add(l),d=Gn(l,t,n,r),r.delete(l)):d=u===null?e.slice(i,o+1):Un(u.trim(),t,n,r);let f=Un(e.slice(o+1),t,n,r);return e.slice(0,i)+d+f}function Wn(e,t,n,r){return!e.includes(`var(`)&&!e.includes(`color-mix(`)?e:Hn(Un(e,t,n,r))}function Gn(e,t,n,r){if(e in n)return n[e];let i=t[e];if(i===void 0)return``;let a=Wn(i,t,n,r);return n[e]=a,a}function Kn(e){let t={};for(let n of Object.keys(e))Gn(n,e,t,new Set);return t}function qn(e,t){let{mode:n}=t,r={};for(let[e,t]of Object.entries(Pn))r[e]=Rn(t,n);if(e==null)return Kn(r);for(let[t,i]of Object.entries(e.tokens))r[t]=Rn(i,n);if(e.__inputTokens)for(let[t,i]of Object.entries(e.__inputTokens))i!==void 0&&(r[t]=Rn(i,n));return Kn(r)}var J=t(e(),1);function Jn(e,t=!1){let n=(0,J.useCallback)(t=>{let n=window.matchMedia(e);return n.addEventListener(`change`,t),()=>n.removeEventListener(`change`,t)},[e]),r=(0,J.useCallback)(()=>window.matchMedia(e).matches,[e]),i=(0,J.useCallback)(()=>t,[t]);return(0,J.useSyncExternalStore)(n,r,i)}var Yn=(0,J.createContext)(null);Yn.displayName=`ThemeContext`;function Xn(){if(typeof document>`u`)return null;let e=document.documentElement.getAttribute(`data-theme`);return e===`light`||e===`dark`?e:null}function Zn(){return null}function Qn(){return typeof document>`u`?null:document.documentElement.getAttribute(Rt(`theme`))}function $n(){return null}function er(){return null}var tr=new Set,nr=null,rr=new Set,ir=null;function ar(){for(let e of tr)e()}function or(e){return tr.add(e),tr.size===1&&typeof MutationObserver<`u`&&(nr=new MutationObserver(ar),nr.observe(document.documentElement,{attributes:!0,attributeFilter:[`data-theme`]})),()=>{tr.delete(e),tr.size===0&&nr&&(nr.disconnect(),nr=null)}}function sr(){for(let e of rr)e()}function cr(e){return rr.add(e),rr.size===1&&typeof MutationObserver<`u`&&(ir=new MutationObserver(sr),ir.observe(document.documentElement,{attributes:!0,attributeFilter:[Rt(`theme`)]})),()=>{rr.delete(e),rr.size===0&&ir&&(ir.disconnect(),ir=null)}}function lr(){return()=>{}}function ur(e){return(0,J.useSyncExternalStore)(e?lr:or,e?er:Xn,Zn)}function dr(e){return(0,J.useSyncExternalStore)(e?lr:cr,e?er:Qn,$n)}function fr(){let e=(0,J.use)(Yn),t=dr(e!=null);return e?.theme.name??t}function pr(){let e=(0,J.use)(Yn),t=e!=null,n=ur(t),r=dr(t),i=Jn(`(prefers-color-scheme: dark)`),a=e?.mode??n??`system`,o=e?.theme??fn(r),s=a===`system`?i?`dark`:`light`:a,c=(0,J.useMemo)(()=>qn(o,{mode:s}),[o,s]);return{name:o?.name??`default`,mode:s,token:e=>c[e]??``,tokens:c}}function mr(e,t){return`${e}: ${t}`}function hr(e,t,...n){console.error(mr(e,t),...n)}var Y=n(),gr={base:{k1xSpc:`xjp7ctv`,kMwMTN:`x1tgivj0`,kMv6JI:`x9ynric`,$$css:!0},light:{kQNsl9:`x19aimcq`,$$css:!0},dark:{kQNsl9:`xntwwlm`,$$css:!0},system:{kQNsl9:`x108lcm5`,$$css:!0}},_r=J.createContext(!1);_r.displayName=`ThemeNestingContext`;var vr=new Set;function yr(e){let t=(0,J.useId)();(0,J.useInsertionEffect)(()=>{if(e.__built)return;let n=`astryx-theme-${e.name}`;if(vr.has(n))return;`${e.name}`,`${e.name}${e.name}${e.name}${e.name}`;let{prose:r,component:i}=Nn(e);if(!(!r&&!i)){if(r){let n=document.createElement(`style`);n.setAttribute(Rt(`theme-prose`),e.name),n.setAttribute(Rt(`id`),t),n.textContent=`@layer reset {\n${r}\n}`,document.head.appendChild(n)}if(i){let n=document.createElement(`style`);n.setAttribute(Rt(`theme`),e.name),n.setAttribute(Rt(`id`),t),n.textContent=`@layer astryx-theme {\n${i}\n}`,document.head.appendChild(n)}return vr.add(n),()=>{let r=document.querySelector(`style[${Rt(`theme-prose`)}="${e.name}"][${Rt(`id`)}="${t}"]`),i=document.querySelector(`style[${Rt(`theme`)}="${e.name}"][${Rt(`id`)}="${t}"]`);r?.remove(),i?.remove(),vr.delete(n)}}},[e,t])}function br(e,t,n){Dt(()=>{if(!e&&!(typeof document>`u`))return t===`light`||t===`dark`?document.documentElement.setAttribute(`data-theme`,t):document.documentElement.removeAttribute(`data-theme`),document.documentElement.setAttribute(Rt(`theme`),n),()=>{document.documentElement.removeAttribute(`data-theme`),document.documentElement.removeAttribute(Rt(`theme`))}},[e,t,n])}function xr({theme:e,mode:t=`system`,children:n}){let r=(0,J.use)(_r);dn(e),yr(e),br(r,t,e.name);let i=t===`dark`?gr.dark:t===`light`?gr.light:gr.system,a=(0,J.useMemo)(()=>({theme:e,mode:t}),[e,t]);return(0,Y.jsx)(Yn,{value:a,children:(0,Y.jsx)(_r,{value:!0,children:(0,Y.jsx)(`div`,{...K(gr.base,i),"data-astryx-theme":e.name,"data-theme":t===`system`?void 0:t,children:n})})})}xr.displayName=`Theme`;var Sr=`--color-syntax-`;function Cr(e){return Sr+e}var wr=Object.keys(sn).map(e=>e.replace(Sr,``));function Tr(e){let t={};for(let n of wr)t[Cr(n)]=e.tokens[n];return t}var Er=(0,J.createContext)(null);Er.displayName=`SyntaxThemeContext`;function Dr({theme:e,children:t}){let n=(0,J.useMemo)(()=>Tr(e),[e]),r=(0,J.useMemo)(()=>({theme:e}),[e]);return(0,Y.jsx)(Er,{value:r,children:(0,Y.jsx)(`div`,{style:n,"data-astryx-syntax-theme":e.name,children:t})})}Dr.displayName=`SyntaxTheme`;var Or=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),kr=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase(),Ar=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,n)=>n?n.toUpperCase():t.toLowerCase()),jr=e=>{let t=Ar(e);return t.charAt(0).toUpperCase()+t.slice(1)},Mr={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`},Nr=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},Pr=(0,J.createContext)({}),Fr=()=>(0,J.useContext)(Pr),Ir=(0,J.forwardRef)(({color:e,size:t,strokeWidth:n,absoluteStrokeWidth:r,className:i=``,children:a,iconNode:o,...s},c)=>{let{size:l=24,strokeWidth:u=2,absoluteStrokeWidth:d=!1,color:f=`currentColor`,className:p=``}=Fr()??{},m=r??d?Number(n??u)*24/Number(t??l):n??u;return(0,J.createElement)(`svg`,{ref:c,...Mr,width:t??l??Mr.width,height:t??l??Mr.height,stroke:e??f,strokeWidth:m,className:Or(`lucide`,p,i),...!a&&!Nr(s)&&{"aria-hidden":`true`},...s},[...o.map(([e,t])=>(0,J.createElement)(e,t)),...Array.isArray(a)?a:[a]])}),Lr=(e,t)=>{let n=(0,J.forwardRef)(({className:n,...r},i)=>(0,J.createElement)(Ir,{ref:i,iconNode:t,className:Or(`lucide-${kr(jr(e))}`,`lucide-${e}`,n),...r}));return n.displayName=jr(e),n},Rr=Lr(`arrow-down`,[[`path`,{d:`M12 5v14`,key:`s699le`}],[`path`,{d:`m19 12-7 7-7-7`,key:`1idqje`}]]),zr=Lr(`arrow-up-down`,[[`path`,{d:`m21 16-4 4-4-4`,key:`f6ql7i`}],[`path`,{d:`M17 20V4`,key:`1ejh1v`}],[`path`,{d:`m3 8 4-4 4 4`,key:`11wl7u`}],[`path`,{d:`M7 4v16`,key:`1glfcx`}]]),Br=Lr(`arrow-up`,[[`path`,{d:`m5 12 7-7 7 7`,key:`hav0vg`}],[`path`,{d:`M12 19V5`,key:`x0mq9r`}]]),Vr=Lr(`calendar`,[[`path`,{d:`M8 2v3`,key:`1ioesn`}],[`path`,{d:`M16 2v3`,key:`otl347`}],[`rect`,{x:`3`,y:`3`,width:`18`,height:`18`,rx:`2`,key:`h1oib`}],[`path`,{d:`M3 9h18`,key:`1pudct`}]]),Hr=Lr(`check-check`,[[`path`,{d:`M18 6 7 17l-5-5`,key:`116fxf`}],[`path`,{d:`m22 10-7.5 7.5L13 16`,key:`ke71qq`}]]),Ur=Lr(`check`,[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]),Wr=Lr(`chevron-down`,[[`path`,{d:`m6 9 6 6 6-6`,key:`qrunsl`}]]),Gr=Lr(`chevron-left`,[[`path`,{d:`m15 18-6-6 6-6`,key:`1wnfg3`}]]),Kr=Lr(`chevron-right`,[[`path`,{d:`m9 18 6-6-6-6`,key:`mthhwq`}]]),qr=Lr(`chevrons-left`,[[`path`,{d:`m11 17-5-5 5-5`,key:`13zhaf`}],[`path`,{d:`m18 17-5-5 5-5`,key:`h8a8et`}]]),Jr=Lr(`chevrons-right`,[[`path`,{d:`m6 17 5-5-5-5`,key:`xnjwq`}],[`path`,{d:`m13 17 5-5-5-5`,key:`17xmmf`}]]),Yr=Lr(`circle-check-big`,[[`path`,{d:`M21.801 10A10 10 0 1 1 17 3.335`,key:`yps3ct`}],[`path`,{d:`m9 11 3 3L22 4`,key:`1pflzl`}]]),Xr=Lr(`circle-x`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m15 9-6 6`,key:`1uzhvr`}],[`path`,{d:`m9 9 6 6`,key:`z0biqf`}]]),Zr=Lr(`clock`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 6v6l4 2`,key:`mmk7yg`}]]),Qr=Lr(`columns-2`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M12 3v18`,key:`108xh3`}]]),$r=Lr(`copy`,[[`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`,key:`17jyea`}],[`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`,key:`zix9uf`}]]),ei=Lr(`ellipsis`,[[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}],[`circle`,{cx:`19`,cy:`12`,r:`1`,key:`1wjl8i`}],[`circle`,{cx:`5`,cy:`12`,r:`1`,key:`1pcz8c`}]]),ti=Lr(`external-link`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`M10 14 21 3`,key:`gplh6r`}],[`path`,{d:`M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6`,key:`a6xqqp`}]]),ni=Lr(`eye-off`,[[`path`,{d:`M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49`,key:`ct8e1f`}],[`path`,{d:`M14.084 14.158a3 3 0 0 1-4.242-4.242`,key:`151rxh`}],[`path`,{d:`M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143`,key:`13bj9a`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}]]),ri=Lr(`funnel`,[[`path`,{d:`M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z`,key:`sc7q7i`}]]),ii=Lr(`info`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 16v-4`,key:`1dtifu`}],[`path`,{d:`M12 8h.01`,key:`e9boi3`}]]),ai=Lr(`menu`,[[`path`,{d:`M4 5h16`,key:`1tepv9`}],[`path`,{d:`M4 12h16`,key:`1lakjw`}],[`path`,{d:`M4 19h16`,key:`1djgab`}]]),oi=Lr(`mic`,[[`path`,{d:`M12 19v3`,key:`npa21l`}],[`path`,{d:`M19 10v2a7 7 0 0 1-14 0v-2`,key:`1vc78b`}],[`rect`,{x:`9`,y:`2`,width:`6`,height:`13`,rx:`3`,key:`s6n7sd`}]]),si=Lr(`search`,[[`path`,{d:`m21 21-4.34-4.34`,key:`14j7rj`}],[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}]]),ci=Lr(`square`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}]]),li=Lr(`triangle-alert`,[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),ui=Lr(`wrench`,[[`path`,{d:`M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z`,key:`1ngwbx`}]]),di=Lr(`x`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]),fi={size:`1em`,"aria-hidden":!0},pi={close:(0,Y.jsx)(di,{...fi}),chevronDown:(0,Y.jsx)(Wr,{...fi}),chevronLeft:(0,Y.jsx)(Gr,{...fi}),chevronRight:(0,Y.jsx)(Kr,{...fi}),chevronsLeft:(0,Y.jsx)(qr,{...fi}),chevronsRight:(0,Y.jsx)(Jr,{...fi}),check:(0,Y.jsx)(Ur,{...fi}),success:(0,Y.jsx)(Yr,{...fi}),error:(0,Y.jsx)(Xr,{...fi}),warning:(0,Y.jsx)(li,{...fi}),info:(0,Y.jsx)(ii,{...fi}),calendar:(0,Y.jsx)(Vr,{...fi}),clock:(0,Y.jsx)(Zr,{...fi}),externalLink:(0,Y.jsx)(ti,{...fi}),menu:(0,Y.jsx)(ai,{...fi}),moreHorizontal:(0,Y.jsx)(ei,{...fi}),search:(0,Y.jsx)(si,{...fi}),arrowUp:(0,Y.jsx)(Br,{...fi}),arrowDown:(0,Y.jsx)(Rr,{...fi}),arrowsUpDown:(0,Y.jsx)(zr,{...fi}),funnel:(0,Y.jsx)(ri,{...fi}),eyeSlash:(0,Y.jsx)(ni,{...fi}),viewColumns:(0,Y.jsx)(Qr,{...fi}),copy:(0,Y.jsx)($r,{...fi}),checkDouble:(0,Y.jsx)(Hr,{...fi}),wrench:(0,Y.jsx)(ui,{...fi}),stop:(0,Y.jsx)(ci,{...fi}),microphone:(0,Y.jsx)(oi,{...fi})},mi=yt(),hi={name:`neutral`,__built:!0,tokens:{"--font-size-4xs":`0.375rem`,"--font-size-3xs":`0.4375rem`,"--font-size-2xs":`0.5rem`,"--font-size-xs":`0.625rem`,"--font-size-sm":`0.75rem`,"--font-size-base":`0.875rem`,"--font-size-lg":`1.0625rem`,"--font-size-xl":`1.25rem`,"--font-size-2xl":`1.5rem`,"--font-size-3xl":`1.8125rem`,"--font-size-4xl":`2.1875rem`,"--font-size-5xl":`2.625rem`,"--text-heading-1-size":`var(--font-size-2xl)`,"--text-heading-1-weight":`var(--font-weight-semibold)`,"--text-heading-1-leading":`1.3333`,"--text-heading-2-size":`var(--font-size-xl)`,"--text-heading-2-weight":`var(--font-weight-semibold)`,"--text-heading-2-leading":`1.4`,"--text-heading-3-size":`var(--font-size-lg)`,"--text-heading-3-weight":`var(--font-weight-bold)`,"--text-heading-3-leading":`1.4118`,"--text-heading-4-size":`var(--font-size-base)`,"--text-heading-4-weight":`var(--font-weight-bold)`,"--text-heading-4-leading":`1.4286`,"--text-heading-5-size":`var(--font-size-sm)`,"--text-heading-5-weight":`var(--font-weight-semibold)`,"--text-heading-5-leading":`1.6667`,"--text-heading-6-size":`var(--font-size-xs)`,"--text-heading-6-weight":`var(--font-weight-semibold)`,"--text-heading-6-leading":`1.6`,"--text-body-size":`var(--font-size-base)`,"--text-body-weight":`var(--font-weight-normal)`,"--text-body-leading":`1.4286`,"--text-large-size":`var(--font-size-lg)`,"--text-large-weight":`var(--font-weight-semibold)`,"--text-large-leading":`1.4118`,"--text-label-size":`var(--font-size-base)`,"--text-label-weight":`var(--font-weight-medium)`,"--text-label-leading":`1.4286`,"--text-code-size":`var(--font-size-base)`,"--text-code-weight":`var(--font-weight-normal)`,"--text-code-leading":`1.4286`,"--text-supporting-size":`var(--font-size-sm)`,"--text-supporting-weight":`var(--font-weight-normal)`,"--text-supporting-leading":`1.6667`,"--text-display-1-size":`var(--font-size-5xl)`,"--text-display-1-weight":`var(--font-weight-normal)`,"--text-display-1-leading":`1.2381`,"--text-display-2-size":`var(--font-size-4xl)`,"--text-display-2-weight":`var(--font-weight-normal)`,"--text-display-2-leading":`1.2571`,"--text-display-3-size":`var(--font-size-3xl)`,"--text-display-3-weight":`var(--font-weight-normal)`,"--text-display-3-leading":`1.3793`,"--duration-fast-min":`95ms`,"--duration-fast":`125ms`,"--duration-fast-max":`165ms`,"--duration-medium-min":`225ms`,"--duration-medium":`300ms`,"--duration-medium-max":`400ms`,"--duration-slow-min":`525ms`,"--duration-slow":`700ms`,"--duration-slow-max":`935ms`,"--font-family-body":`Figtree, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif`,"--font-family-heading":`Figtree, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif`,"--font-family-code":`ui-monospace, "SF Mono", Monaco, Consolas, "Liberation Mono", "Courier New", monospace`,"--color-syntax-keyword":`light-dark(#700084, #efa8ff)`,"--color-syntax-string":`light-dark(#005600, #a6d2a2)`,"--color-syntax-comment":`light-dark(#737373, #a3a3a3)`,"--color-syntax-number":`light-dark(#6e3500, #ffb37f)`,"--color-syntax-function":`light-dark(#00458c, #a0caff)`,"--color-syntax-type":`light-dark(#700084, #efa8ff)`,"--color-syntax-variable":`light-dark(#171717, #e5e5e5)`,"--color-syntax-operator":`light-dark(#737373, #a3a3a3)`,"--color-syntax-constant":`light-dark(#6e3500, #ffb37f)`,"--color-syntax-tag":`light-dark(#89001a, #ffaeaa)`,"--color-syntax-attribute":`light-dark(#584400, #eec12f)`,"--color-syntax-property":`light-dark(#005348, #83dac9)`,"--color-syntax-punctuation":`light-dark(#a3a3a3, #525252)`,"--color-syntax-background":`light-dark(#fafafa, #0a0a0a)`,"--color-background-surface":`light-dark(#ffffff, #262626)`,"--color-background-body":`light-dark(#f1f1f1, #1b1b1b)`,"--color-background-card":`light-dark(#ffffff, #1b1b1b)`,"--color-background-popover":`light-dark(#ffffff, #1b1b1b)`,"--color-background-muted":`light-dark(#f1f1f1, #1b1b1b)`,"--color-accent":`light-dark(#262626, #ebebeb)`,"--color-accent-muted":`light-dark(#f1f1f1, #262626)`,"--color-neutral":`light-dark(#0000000F, #FFFFFF1A)`,"--color-overlay":`light-dark(#00000080, #000000CC)`,"--color-overlay-hover":`light-dark(#0000000D, #FFFFFF0D)`,"--color-overlay-pressed":`light-dark(#0000001A, #FFFFFF1A)`,"--color-text-primary":`light-dark(#171717, #fafafa)`,"--color-text-secondary":`light-dark(#525252, #a3a3a3)`,"--color-text-disabled":`light-dark(#a3a3a3, #525252)`,"--color-text-accent":`light-dark(#262626, #ebebeb)`,"--color-on-dark":`#ffffff`,"--color-on-light":`#171717`,"--color-on-accent":`light-dark(#ffffff, #171717)`,"--color-on-success":`light-dark(#ffffff, #171717)`,"--color-on-error":`light-dark(#ffffff, #171717)`,"--color-on-warning":`#171717`,"--color-icon-accent":`light-dark(#262626, #ebebeb)`,"--color-icon-primary":`light-dark(#171717, #fafafa)`,"--color-icon-secondary":`light-dark(#737373, #a3a3a3)`,"--color-icon-disabled":`light-dark(#a3a3a3, #525252)`,"--color-success":`light-dark(#007004, #9fe59b)`,"--color-error":`light-dark(#a50c25, #ffc6c1)`,"--color-warning":`light-dark(#745b00, #fdcf4f)`,"--color-success-muted":`light-dark(#c5e5c0, #84c9803D)`,"--color-error-muted":`light-dark(#facecb, #ff9e973D)`,"--color-warning-muted":`light-dark(#f8da9d, #deb4333D)`,"--color-border":`light-dark(#00000014, #FFFFFF1A)`,"--color-border-emphasized":`light-dark(#d4d4d4, #525252)`,"--color-skeleton":`light-dark(#ebebeb, #525252)`,"--color-shadow":`light-dark(#0000001A, #0000004D)`,"--color-tint-hover":`light-dark(black, white)`,"--color-background-red":`light-dark(#facecb, #ff9e973D)`,"--color-border-red":`light-dark(#e6bab8, #ff6f6c)`,"--color-icon-red":`light-dark(#89001a, #ff9e97)`,"--color-text-red":`light-dark(#89001a, #ffc6c1)`,"--color-background-orange":`light-dark(#fad0b5, #ffa2583D)`,"--color-border-orange":`light-dark(#e6bda2, #e2883e)`,"--color-icon-orange":`light-dark(#6e3500, #ffa258)`,"--color-text-orange":`light-dark(#6e3500, #ffc9a2)`,"--color-background-yellow":`light-dark(#f8da9d, #deb4333D)`,"--color-border-yellow":`light-dark(#e4c279, #c0990e)`,"--color-icon-yellow":`light-dark(#584400, #deb433)`,"--color-text-yellow":`light-dark(#584400, #fdcf4f)`,"--color-background-green":`light-dark(#c5e5c0, #84c9803D)`,"--color-border-green":`light-dark(#b2d1ac, #69ad67)`,"--color-icon-green":`light-dark(#0c5700, #84c980)`,"--color-text-green":`light-dark(#0c5700, #9fe59b)`,"--color-background-teal":`light-dark(#a5e3d6, #7ec6b83D)`,"--color-border-teal":`light-dark(#94d6c8, #63ab9d)`,"--color-icon-teal":`light-dark(#005348, #7ec6b8)`,"--color-text-teal":`light-dark(#005348, #99e2d3)`,"--color-background-cyan":`light-dark(#a3e0ef, #83c2d43D)`,"--color-border-cyan":`light-dark(#91d3e3, #67a7b8)`,"--color-icon-cyan":`light-dark(#00505f, #83c2d4)`,"--color-text-cyan":`light-dark(#00505f, #9edef0)`,"--color-background-blue":`light-dark(#c4ddfb, #9eb7ff3D)`,"--color-border-blue":`light-dark(#b1c9e7, #6d9cfe)`,"--color-icon-blue":`light-dark(#00458c, #9eb7ff)`,"--color-text-blue":`light-dark(#00458c, #c7d3ff)`,"--color-background-purple":`light-dark(#eccef3, #f297ff3D)`,"--color-border-purple":`light-dark(#d8bbdf, #dd74f0)`,"--color-icon-purple":`light-dark(#700084, #f297ff)`,"--color-text-purple":`light-dark(#700084, #fac1ff)`,"--color-background-pink":`light-dark(#fccadc, #ff99c33D)`,"--color-border-pink":`light-dark(#e7b7c8, #f273aa)`,"--color-icon-pink":`light-dark(#83004b, #ff99c3)`,"--color-text-pink":`light-dark(#83004b, #ffc3da)`,"--color-background-gray":`light-dark(#e5e5e5, var(--color-neutral))`,"--color-border-gray":`light-dark(#d4d4d4, #262626)`,"--color-icon-gray":`light-dark(#525252, #a3a3a3)`,"--color-text-gray":`light-dark(#262626, #e5e5e5)`,"--radius-none":`0px`,"--radius-inner":`0.375rem`,"--radius-element":`0.625rem`,"--radius-container":`0.75rem`,"--radius-page":`1.75rem`,"--radius-full":`9999px`,"--shadow-low":`0 2px 4px light-dark(oklch(0 0 0 / 5%), oklch(0 0 0 / 25%)), 0 4px 8px light-dark(oklch(0 0 0 / 10%), oklch(0 0 0 / 40%)), inset 0 0 0 1px light-dark(transparent, oklch(1 0 0 / 8%))`,"--shadow-med":`0 2px 4px light-dark(oklch(0 0 0 / 5%), oklch(0 0 0 / 35%)), 0 4px 12px light-dark(oklch(0 0 0 / 10%), oklch(0 0 0 / 50%)), inset 0 0 0 1px light-dark(transparent, oklch(1 0 0 / 12%))`,"--shadow-high":`0 4px 6px light-dark(oklch(0 0 0 / 10%), oklch(0 0 0 / 50%)), 0 12px 24px light-dark(oklch(0 0 0 / 15%), oklch(0 0 0 / 70%)), inset 0 0 0 1px light-dark(transparent, oklch(1 0 0 / 15%))`,"--shadow-inset-hover":`inset 0px 0px 0px 2px #0074e24D`,"--shadow-inset-selected":`inset 0px 0px 0px 2px #0074e280`,"--shadow-inset-success":`inset 0px 0px 0px 2px #1981004D`,"--shadow-inset-warning":`inset 0px 0px 0px 2px #ffce2f4D`,"--shadow-inset-error":`inset 0px 0px 0px 2px #e33f4a4D`},icons:pi},gi=`stageflow.controlToken`,_i=`sf-control-token-required`,vi=!1,yi=new Set;function bi(){return vi}function xi(e){return yi.add(e),()=>yi.delete(e)}function Si(){vi=!0;for(let e of yi)e();typeof window>`u`||window.dispatchEvent(new Event(_i))}function Ci(){if(typeof localStorage>`u`)return``;try{return localStorage.getItem(gi)??``}catch{return``}}function wi(e){if(!(typeof localStorage>`u`))try{let t=e.trim();t.length===0?localStorage.removeItem(gi):localStorage.setItem(gi,t)}catch{}}function Ti(){let e=Ci();return e?{Authorization:`Bearer ${e}`}:{}}async function X(e,t){let n=await fetch(e,{...t,headers:{"Content-Type":`application/json`,...Ti(),...t?.headers??{}}}),r=await n.json().catch(()=>({}));if(n.status===401&&Si(),!n.ok)throw Error(r.error??`Request failed (${n.status})`);return r}function Ei(){return X(`/api/runs`)}function Di(e){return X(`/api/runs/${encodeURIComponent(e)}`)}function Oi(e,t){return X(`/api/runs/${encodeURIComponent(e)}/stages/${encodeURIComponent(t)}/verification`)}function ki(){return X(`/api/tasks`)}function Ai(e){return X(`/api/tasks/${encodeURIComponent(e)}`)}async function ji(e,t,n){try{let r=await fetch(e,{method:t,headers:{"Content-Type":`application/json`,...Ti()},body:JSON.stringify(n)}),i=await r.json().catch(()=>({}));return r.ok&&i.task&&typeof i.task.id==`string`?{ok:!0,task:i.task}:{ok:!1,status:r.status,error:i.error??`Request failed (${r.status})`}}catch(e){return{ok:!1,status:0,error:e instanceof Error?e.message:String(e)}}}function Mi(e){return ji(`/api/tasks`,`POST`,e)}function Ni(e,t){return ji(`/api/tasks/${encodeURIComponent(e)}`,`PUT`,t)}function Pi(e){return ji(`/api/tasks/import`,`POST`,e)}function Fi(){return X(`/api/pipelines`)}function Ii(){return X(`/api/triggers`)}function Li(){return X(`/api/email/triggers`)}async function Ri(){return(await X(`/api/email/accounts`)).accounts.map(e=>({id:e.accountId,channel:`Email`,displayName:e.displayName,address:e.address,enabled:e.enabled,folders:e.folders}))}async function zi(){let e=await X(`/api/connections`);return{connections:e.connections.map(({id:e,provider:t,displayName:n,enabled:r,identity:i,credential:a,secrets:o,health:s})=>({id:e,provider:t,displayName:n,enabled:r,...o?{secrets:Object.fromEntries(Object.entries(o).map(([e,t])=>[e,t===`store`?`store`:`env`]))}:{},...i===void 0?{}:{identity:i},...a===void 0?{}:{credential:a},...s?{health:{state:s.state,checkedAt:s.checkedAt,...s.error?{error:{code:s.error.code,retryable:s.error.retryable}}:{}}}:{}})),...e.error?{error:e.error}:{},limits:{channelsPerStage:Number.isInteger(e.limits?.channelsPerStage)&&e.limits.channelsPerStage>0?e.limits.channelsPerStage:1}}}var Bi=class extends Error{code;constructor(e){super(e),this.code=e,this.name=`ChannelApiError`}};async function Vi(e,t,n){let r=await fetch(e,{method:t,headers:{"Content-Type":`application/json`,...Ti()},...n===void 0?{}:{body:JSON.stringify(n)}}),i=await r.json().catch(()=>({}));if(r.status===401&&Si(),!r.ok)throw new Bi(typeof i.code==`string`?i.code:`HTTP_${r.status}`);return i}function Hi(e){return Vi(`/api/connections/test`,`POST`,e)}function Ui(e){return Vi(`/api/connections`,`POST`,e)}function Wi(e,t){return Vi(`/api/connections/${encodeURIComponent(e)}`,`PATCH`,t)}async function Gi(e){await Vi(`/api/connections/${encodeURIComponent(e)}`,`DELETE`)}function Ki(){return X(`/api/connections/meta`)}function qi(e,t){return Vi(`/api/connections/${encodeURIComponent(e)}/validate-target`,`POST`,t)}function Ji(e){return X(`/api/connections/${encodeURIComponent(e)}/check`,{method:`POST`})}function Yi(e){return X(`/api/email/triggers/${encodeURIComponent(e)}`)}function Xi(e){return e?`?${new URLSearchParams({project_root:e})}`:``}function Zi(e,t){return X(`/api/triggers/${encodeURIComponent(e)}${Xi(t)}`)}function Qi(e,t){return X(`/api/triggers/${encodeURIComponent(e)}/fires${Xi(t)}`)}function $i(e,t,n){return X(`/api/triggers/${encodeURIComponent(e)}${Xi(n)}`,{method:`PATCH`,body:JSON.stringify(t)})}function ea(e,t,n){return X(`/api/triggers/${encodeURIComponent(e)}${Xi(n)}`,{method:`PUT`,body:JSON.stringify(t)})}function ta(e,t){return X(`/api/triggers/${encodeURIComponent(e)}/fire${Xi(t)}`,{method:`POST`})}async function na(e){try{let t=await fetch(`/api/triggers`,{method:`POST`,headers:{"Content-Type":`application/json`,...Ti()},body:JSON.stringify(e)}),n=await t.json().catch(()=>({}));return t.ok&&typeof n.id==`string`?{ok:!0,trigger:n}:{ok:!1,status:t.status,error:n.error??`Request failed (${t.status})`}}catch(e){return{ok:!1,status:0,error:e instanceof Error?e.message:String(e)}}}function ra(){return X(`/api/models`)}function ia(){return X(`/api/models/refresh`,{method:`POST`})}async function aa(e){try{let t=await fetch(`/api/stages`,{method:`POST`,headers:{"Content-Type":`application/json`,...Ti()},body:JSON.stringify(e)}),n=await t.json().catch(()=>({}));return t.ok&&typeof n.id==`string`?{ok:!0,stage:n}:{ok:!1,status:t.status,error:n.error??`Request failed (${t.status})`}}catch(e){return{ok:!1,status:0,error:e instanceof Error?e.message:String(e)}}}function oa(e){return e?`?${new URLSearchParams({project_root:e})}`:``}function sa(e){return X(`/api/skills${oa(e)}`)}function ca(e){return X(`/api/skills/usage${oa(e)}`)}async function la(e){try{let t=await fetch(`/api/skills/install`,{method:`POST`,headers:{"Content-Type":`application/json`,...Ti()},body:JSON.stringify({command:e.command})}),n=await t.json().catch(()=>({})),r=typeof n.skill_name==`string`?n.skill_name:typeof n.skillName==`string`?n.skillName:void 0,i=typeof n.dest_path==`string`?n.dest_path:typeof n.destPath==`string`?n.destPath:void 0;return t.ok&&r!==void 0&&i!==void 0?{ok:!0,skillName:r,destPath:i,message:typeof n.message==`string`?n.message:`Installed ${r}`}:{ok:!1,status:t.status,error:n.error??`Request failed (${t.status})`}}catch(e){return{ok:!1,status:0,error:e instanceof Error?e.message:String(e)}}}function ua(){return X(`/api/extensions`)}function da(){return X(`/api/health`)}function fa(e){return X(`/api/overview?range=${e}`)}function pa(e){return X(`/api/settings`,{method:`POST`,body:JSON.stringify({maxConcurrent:e})})}function ma(){return X(`/api/providers`)}function ha(){return X(`/api/providers/detect`)}function ga(e){return X(`/api/providers/${encodeURIComponent(e)}/auth`)}async function _a(e,t){try{let n=await fetch(`/api/providers/${encodeURIComponent(e)}/login`,{method:`POST`,headers:{"Content-Type":`application/json`,...Ti()},body:JSON.stringify({authType:`api_key`,apiKey:t})}),r=await n.json().catch(()=>({}));return n.ok&&r.provider?{ok:!0,provider:r.provider}:{ok:!1,status:n.status,error:r.error??`Request failed (${n.status})`}}catch(e){return{ok:!1,status:0,error:e instanceof Error?e.message:String(e)}}}async function va(e){try{let t=await fetch(`/api/providers/${encodeURIComponent(e)}/logout`,{method:`POST`,headers:{"Content-Type":`application/json`,...Ti()},body:JSON.stringify({})}),n=await t.json().catch(()=>({}));return t.ok&&n.provider?{ok:!0,provider:n.provider}:{ok:!1,status:t.status,error:n.error??`Request failed (${t.status})`}}catch(e){return{ok:!1,status:0,error:e instanceof Error?e.message:String(e)}}}async function ya(e){try{let t=await fetch(`/api/providers/${encodeURIComponent(e)}/login`,{method:`POST`,headers:{"Content-Type":`application/json`,...Ti()},body:JSON.stringify({authType:`oauth`})}),n=await t.json().catch(()=>({}));return t.ok&&n.session?{ok:!0,session:n.session}:{ok:!1,status:t.status,error:n.error??`Request failed (${t.status})`}}catch(e){return{ok:!1,status:0,error:e instanceof Error?e.message:String(e)}}}function ba(e,t){return X(`/api/providers/${encodeURIComponent(e)}/login/${encodeURIComponent(t)}`)}async function xa(e,t,n){try{let r=await fetch(`/api/providers/${encodeURIComponent(e)}/login/${encodeURIComponent(t)}/answer`,{method:`POST`,headers:{"Content-Type":`application/json`,...Ti()},body:JSON.stringify({value:n})}),i=await r.json().catch(()=>({}));return r.ok&&i.session?{ok:!0,session:i.session}:{ok:!1,status:r.status,error:i.error??`Request failed (${r.status})`}}catch(e){return{ok:!1,status:0,error:e instanceof Error?e.message:String(e)}}}async function Sa(e,t){try{let n=await fetch(`/api/providers/${encodeURIComponent(e)}/login/${encodeURIComponent(t)}/cancel`,{method:`POST`,headers:{"Content-Type":`application/json`,...Ti()},body:JSON.stringify({})}),r=await n.json().catch(()=>({}));return n.ok&&r.session?{ok:!0,session:r.session}:{ok:!1,status:n.status,error:r.error??`Request failed (${n.status})`}}catch(e){return{ok:!1,status:0,error:e instanceof Error?e.message:String(e)}}}function Ca(){return X(`/api/settings`)}function wa(e){return X(`/api/settings`,{method:`POST`,body:JSON.stringify({credentialSource:e})})}function Ta(e){return X(`/api/settings`,{method:`POST`,body:JSON.stringify({workshopModel:e})})}async function Ea(e,t,n){try{let r=await fetch(`/api/runs`,{method:`POST`,headers:{"Content-Type":`application/json`,...Ti()},body:JSON.stringify({task:e,pipeline:t,...n?{project_root:n}:{}})}),i=await r.json().catch(()=>({}));return r.ok&&typeof i.runId==`string`?{ok:!0,runId:i.runId}:{ok:!1,error:i.error??`Request failed (${r.status})`,...i.code?{code:i.code}:{},...i.activeRunIds?{activeRunIds:i.activeRunIds}:{},...i.conflictingRunId?{conflictingRunId:i.conflictingRunId}:{}}}catch(e){return{ok:!1,error:e instanceof Error?e.message:String(e)}}}function Da(e){return X(`/api/runs/${encodeURIComponent(e)}/rerun`,{method:`POST`})}function Oa(e,t){return X(`/api/runs/${encodeURIComponent(e)}/stages/${encodeURIComponent(t)}/retry`,{method:`POST`})}function ka(e,t){return X(`/api/runs/${encodeURIComponent(e)}/stages/${encodeURIComponent(t)}/resume`,{method:`POST`})}function Aa(e,t,n){return X(`/api/runs/${encodeURIComponent(e)}/stages/${encodeURIComponent(t)}/recovery`,{method:`POST`,body:JSON.stringify(n?.trim()?{guidance:n.trim()}:{})})}function ja(e,t){return X(`/api/runs/${encodeURIComponent(e)}/stages/${encodeURIComponent(t)}/recovery/stop`,{method:`POST`,body:JSON.stringify({})})}function Ma(e,t){return X(`/api/runs/${encodeURIComponent(e)}/stages/${encodeURIComponent(t)}/abandon`,{method:`POST`})}function Na(e,t){return X(`/api/runs/${encodeURIComponent(e)}/cancel`,{method:`POST`,body:JSON.stringify({reason:t})})}function Pa(e,t){let n=t?.force===!0?`?force=true`:``;return X(`/api/runs/${encodeURIComponent(e)}${n}`,{method:`DELETE`})}async function Fa(e,t){try{let n=await fetch(`/api/runs/${encodeURIComponent(e)}/stages/${encodeURIComponent(t)}/retry`,{method:`POST`,headers:{"Content-Type":`application/json`,...Ti()}}),r=await n.json().catch(()=>({}));return n.ok&&typeof r.runId==`string`&&typeof r.stageId==`string`&&typeof r.attemptIndex==`number`?{ok:!0,runId:r.runId,stageId:r.stageId,attemptIndex:r.attemptIndex}:{ok:!1,error:r.error??`Request failed (${n.status})`,...r.code?{code:r.code}:{},...r.activeCount===void 0?{}:{activeCount:r.activeCount},...r.maxConcurrent===void 0?{}:{maxConcurrent:r.maxConcurrent},...r.activeRunIds?{activeRunIds:r.activeRunIds}:{},...r.conflictingRunId?{conflictingRunId:r.conflictingRunId}:{},...r.conflictingCheckout?{conflictingCheckout:r.conflictingCheckout}:{}}}catch(e){return{ok:!1,error:e instanceof Error?e.message:String(e)}}}function Ia(e,t,n){return X(`/api/runs/${encodeURIComponent(e)}/stages/${encodeURIComponent(t)}/answer`,{method:`POST`,body:JSON.stringify(n)})}function La(e,t,n){return X(`/api/runs/${encodeURIComponent(e)}/stages/${encodeURIComponent(t)}/feedback-decision`,{method:`POST`,body:JSON.stringify(n)})}function Ra(){return X(`/api/project-mcp`)}function za(e){return X(`/api/project-mcp/${encodeURIComponent(e)}`)}function Ba(e,t){return X(`/api/project-mcp/${encodeURIComponent(e)}`,{method:`PUT`,body:JSON.stringify({config:t})})}function Va(e){return X(`/api/project-mcp/${encodeURIComponent(e)}`,{method:`DELETE`})}function Ha(e){return X(`/api/project-mcp/import`,{method:`POST`,body:JSON.stringify({json:e})})}function Ua(e){return X(`/api/project-mcp/${encodeURIComponent(e)}/tools`)}function Wa(e){return X(`/api/project-mcp/${encodeURIComponent(e)}/oauth`)}function Ga(e){return X(`/api/project-mcp/${encodeURIComponent(e)}/oauth/start`,{method:`POST`})}function Ka(e,t){return X(`/api/project-mcp/${encodeURIComponent(e)}/oauth/complete`,{method:`POST`,body:JSON.stringify({input:t})})}function qa(e){return X(`/api/project-mcp/${encodeURIComponent(e)}/oauth`,{method:`DELETE`})}function Ja(){return X(`/api/mcp-secrets`)}function Ya(e,t){return X(`/api/mcp-secrets/${encodeURIComponent(e)}`,{method:`PUT`,body:JSON.stringify({value:t})})}function Xa(e){return X(`/api/mcp-secrets/${encodeURIComponent(e)}`,{method:`DELETE`})}function Za(e,t){return X(`/api/project-mcp/${encodeURIComponent(e)}/probe`,{method:`POST`,signal:t?.signal})}async function Qa(e,t){let n=await fetch(`/api/runs/${encodeURIComponent(e)}/artifact?path=${encodeURIComponent(t)}`,{headers:{...Ti()}});if(!n.ok){let e=await n.json().catch(()=>({}));throw Error(e.error??`Request failed (${n.status})`)}return n.text()}async function $a(e,t){return X(`/api/drafts/validate`,{method:`POST`,body:JSON.stringify({draft:e,...t?{project_root:t}:{}})})}async function eo(e){try{let t=await fetch(`/api/drafts/create`,{method:`POST`,headers:{"Content-Type":`application/json`,...Ti()},body:JSON.stringify(e)}),n=await t.json().catch(()=>({}));return t.ok&&n.pipeline&&typeof n.pipelinePath==`string`&&Array.isArray(n.stagePaths)?{ok:!0,pipeline:n.pipeline,pipelinePath:n.pipelinePath,stagePaths:n.stagePaths,...typeof n.project_root==`string`?{project_root:n.project_root}:{},...typeof n.catalog_root_path==`string`?{catalog_root_path:n.catalog_root_path}:{},...n.taskPath===void 0?{}:{taskPath:n.taskPath}}:{ok:!1,status:t.status,error:n.error??`Request failed (${t.status})`,...n.findings?{findings:n.findings}:{}}}catch(e){return{ok:!1,status:0,error:e instanceof Error?e.message:String(e)}}}async function to(e){try{let t=await fetch(`/api/drafts/overwrite`,{method:`POST`,headers:{"Content-Type":`application/json`,...Ti()},body:JSON.stringify(e)}),n=await t.json().catch(()=>({}));return t.ok&&n.pipeline&&typeof n.pipelinePath==`string`&&Array.isArray(n.stagePaths)?{ok:!0,pipeline:n.pipeline,pipelinePath:n.pipelinePath,stagePaths:n.stagePaths,...typeof n.project_root==`string`?{project_root:n.project_root}:{},...typeof n.catalog_root_path==`string`?{catalog_root_path:n.catalog_root_path}:{},...n.taskPath===void 0?{}:{taskPath:n.taskPath}}:{ok:!1,status:t.status,error:n.error??`Request failed (${t.status})`,...n.findings?{findings:n.findings}:{}}}catch(e){return{ok:!1,status:0,error:e instanceof Error?e.message:String(e)}}}async function no(e){try{let t=await fetch(`/api/drafts/plan`,{method:`POST`,headers:{"Content-Type":`application/json`,...Ti()},body:JSON.stringify(e)}),n=await t.json().catch(()=>({}));return t.ok&&typeof n.pipelinePath==`string`&&typeof n.directory==`string`&&Array.isArray(n.files)?{ok:!0,pipelinePath:n.pipelinePath,directory:n.directory,files:n.files,pipelineIdTaken:n.pipelineIdTaken===!0}:{ok:!1,status:t.status,error:n.error??`Request failed (${t.status})`}}catch(e){return{ok:!1,status:0,error:e instanceof Error?e.message:String(e)}}}async function ro(e){try{let t=await fetch(`/api/drafts/open`,{method:`POST`,headers:{"Content-Type":`application/json`,...Ti()},body:JSON.stringify(e)}),n=await t.json().catch(()=>({}));return t.ok&&n.draft&&n.destination&&typeof n.pipelinePath==`string`?{ok:!0,draft:n.draft,destination:n.destination,pipelinePath:n.pipelinePath,...typeof n.project_root==`string`?{project_root:n.project_root}:{},...n.taskPath===void 0?{}:{taskPath:n.taskPath}}:{ok:!1,status:t.status,error:n.error??`Request failed (${t.status})`}}catch(e){return{ok:!1,status:0,error:e instanceof Error?e.message:String(e)}}}async function io(e){try{let t=await fetch(`/api/drafts/attach-task`,{method:`POST`,headers:{"Content-Type":`application/json`,...Ti()},body:JSON.stringify(e)}),n=await t.json().catch(()=>({}));return t.ok&&n.task&&typeof n.task.filename==`string`&&n.task.body&&typeof n.taskPath==`string`?{ok:!0,task:n.task,taskPath:n.taskPath}:{ok:!1,status:t.status,error:n.error??`Request failed (${t.status})`}}catch(e){return{ok:!1,status:0,error:e instanceof Error?e.message:String(e)}}}async function ao(e){try{let t=new URLSearchParams({key:e.key});e.project_root&&t.set(`project_root`,e.project_root);let n=await fetch(`/api/workshop/autosave?${t}`,{headers:{...Ti()}}),r=await n.json().catch(()=>({}));return n.ok&&typeof r.key==`string`?{ok:!0,key:r.key,autosave:r.autosave??null}:{ok:!1,status:n.status,error:r.error??`Request failed (${n.status})`}}catch(e){return{ok:!1,status:0,error:e instanceof Error?e.message:String(e)}}}async function oo(e){try{let t=await fetch(`/api/workshop/autosave`,{method:`PUT`,headers:{"Content-Type":`application/json`,...Ti()},body:JSON.stringify(e)}),n=await t.json().catch(()=>({}));return t.ok&&n.autosave?{ok:!0,autosave:n.autosave}:{ok:!1,status:t.status,error:n.error??`Request failed (${t.status})`}}catch(e){return{ok:!1,status:0,error:e instanceof Error?e.message:String(e)}}}async function so(e){try{let t=await fetch(`/api/workshop/autosave`,{method:`DELETE`,headers:{"Content-Type":`application/json`,...Ti()},body:JSON.stringify(e)}),n=await t.json().catch(()=>({}));return t.ok&&typeof n.key==`string`&&typeof n.cleared==`boolean`?{ok:!0,key:n.key,cleared:n.cleared}:{ok:!1,status:t.status,error:n.error??`Request failed (${t.status})`}}catch(e){return{ok:!1,status:0,error:e instanceof Error?e.message:String(e)}}}async function co(e){try{let t=await fetch(`/api/workshop/disk-change`,{method:`POST`,headers:{"Content-Type":`application/json`,...Ti()},body:JSON.stringify(e)}),n=await t.json().catch(()=>({}));return t.ok&&n.fingerprints&&typeof n.changed==`boolean`&&Array.isArray(n.changedPaths)?{ok:!0,fingerprints:n.fingerprints,changed:n.changed,changedPaths:n.changedPaths}:{ok:!1,status:t.status,error:n.error??`Request failed (${t.status})`}}catch(e){return{ok:!1,status:0,error:e instanceof Error?e.message:String(e)}}}function lo(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.sessionId==`string`&&Array.isArray(t.events)&&t.draft!==null&&typeof t.draft==`object`&&typeof t.autoApply==`boolean`&&typeof t.model==`string`&&(t.pending===null||typeof t.pending==`object`)}async function uo(){try{let e=await fetch(`/api/workshop/sessions`,{headers:{...Ti()}}),t=await e.json().catch(()=>({}));return e.ok&&Array.isArray(t.sessions)?{ok:!0,sessions:t.sessions}:{ok:!1,status:e.status,error:t.error??`Request failed (${e.status})`}}catch(e){return{ok:!1,status:0,error:e instanceof Error?e.message:String(e)}}}async function fo(e){try{let t=await fetch(`/api/workshop/sessions`,{method:`POST`,headers:{"Content-Type":`application/json`,...Ti()},body:JSON.stringify(e?.id?{id:e.id}:{})}),n=await t.json().catch(()=>({}));return(t.ok||t.status===201)&&n.session?{ok:!0,session:n.session}:{ok:!1,status:t.status,error:n.error??`Request failed (${t.status})`}}catch(e){return{ok:!1,status:0,error:e instanceof Error?e.message:String(e)}}}async function po(){try{let e=await fetch(`/api/workshop/picker`,{headers:{...Ti()}}),t=await e.json().catch(()=>({}));return e.ok&&Array.isArray(t.rows)?{ok:!0,rows:t.rows}:{ok:!1,status:e.status,error:t.error??`Request failed (${e.status})`}}catch(e){return{ok:!1,status:0,error:e instanceof Error?e.message:String(e)}}}async function mo(e,t){try{let n=await fetch(`/api/workshop/builds/${encodeURIComponent(e)}`,{method:`PUT`,headers:{"Content-Type":`application/json`,...Ti()},body:JSON.stringify({...t.draft===void 0?{}:{draft:t.draft},...t.projectRoot===void 0?{}:{projectRoot:t.projectRoot},...t.relativePath===void 0?{}:{relativePath:t.relativePath}})}),r=await n.json().catch(()=>({}));return n.ok&&r.build?{ok:!0,build:r.build}:{ok:!1,status:n.status,error:r.error??`Request failed (${n.status})`}}catch(e){return{ok:!1,status:0,error:e instanceof Error?e.message:String(e)}}}async function ho(e){try{let t=await fetch(`/api/workshop/builds/${encodeURIComponent(e)}`,{headers:{...Ti()}}),n=await t.json().catch(()=>({}));return t.ok&&n.build?{ok:!0,build:n.build}:{ok:!1,status:t.status,error:n.error??`Request failed (${t.status})`}}catch(e){return{ok:!1,status:0,error:e instanceof Error?e.message:String(e)}}}async function go(e){try{let t=await fetch(`/api/workshop/focus`,{method:`POST`,headers:{"Content-Type":`application/json`,...Ti()},body:JSON.stringify({projectRoot:e.projectRoot,relativePath:e.relativePath})}),n=await t.json().catch(()=>({}));return(t.ok||t.status===201)&&n.build?{ok:!0,build:n.build}:{ok:!1,status:t.status,error:n.error??`Request failed (${t.status})`}}catch(e){return{ok:!1,status:0,error:e instanceof Error?e.message:String(e)}}}async function _o(e){try{let t=await fetch(`/api/workshop/sessions/${encodeURIComponent(e.sessionId)}`,{method:`PATCH`,headers:{"Content-Type":`application/json`,...Ti()},body:JSON.stringify({activeBuildId:e.activeBuildId})}),n=await t.json().catch(()=>({}));return t.ok&&n.session?{ok:!0,session:n.session}:{ok:!1,status:t.status,error:n.error??`Request failed (${t.status})`}}catch(e){return{ok:!1,status:0,error:e instanceof Error?e.message:String(e)}}}async function vo(e){try{let t=await fetch(`/api/workshop/sessions/${encodeURIComponent(e)}`,{headers:{...Ti()}}),n=await t.json().catch(()=>({}));return t.ok&&n.session?{ok:!0,session:n.session}:{ok:!1,status:t.status,error:n.error??`Request failed (${t.status})`,...typeof n.code==`string`?{code:n.code}:{}}}catch(e){return{ok:!1,status:0,error:e instanceof Error?e.message:String(e)}}}async function yo(e){try{let t=await fetch(`/api/workshop/sessions/${encodeURIComponent(e.sessionId)}/undo`,{method:`POST`,headers:{"Content-Type":`application/json`,...Ti()},body:JSON.stringify({draft:e.draft,...e.mutationId===void 0?{}:{mutationId:e.mutationId}})}),n=await t.json().catch(()=>({}));return t.ok&&n.ok===!0?n:n.ok===!1||t.status>=400?{ok:!1,status:t.status,error:n.notice??(`error`in n&&typeof n.error==`string`?n.error:`Request failed (${t.status})`),...typeof n.reason==`string`?{reason:n.reason}:{},...typeof n.notice==`string`?{notice:n.notice}:{},...n.draft?{draft:n.draft}:{},...n.pending===void 0?{}:{pending:n.pending},...typeof n.sessionId==`string`?{sessionId:n.sessionId}:{}}:{ok:!1,status:t.status,error:`Request failed (${t.status})`}}catch(e){return{ok:!1,status:0,error:e instanceof Error?e.message:String(e)}}}async function bo(e){try{let t=await fetch(`/api/workshop/sessions/${encodeURIComponent(e.sessionId)}/accept`,{method:`POST`,headers:{"Content-Type":`application/json`,...Ti()},body:JSON.stringify({draft:e.draft,...e.mutationId===void 0?{}:{mutationId:e.mutationId}})}),n=await t.json().catch(()=>({}));return t.ok&&n.ok===!0?n:n.ok===!1||t.status>=400?{ok:!1,status:t.status,error:n.notice??(`error`in n&&typeof n.error==`string`?n.error:`Request failed (${t.status})`),...typeof n.reason==`string`?{reason:n.reason}:{},...typeof n.notice==`string`?{notice:n.notice}:{},...n.draft?{draft:n.draft}:{},...n.pending===void 0?{}:{pending:n.pending},...typeof n.sessionId==`string`?{sessionId:n.sessionId}:{}}:{ok:!1,status:t.status,error:`Request failed (${t.status})`}}catch(e){return{ok:!1,status:0,error:e instanceof Error?e.message:String(e)}}}async function xo(e){try{let t=await fetch(`/api/workshop/chat`,{method:`POST`,headers:{"Content-Type":`application/json`,...Ti()},body:JSON.stringify({sessionId:e.sessionId,message:e.message,draft:e.draft,autoApply:e.autoApply===!0,...e.model===void 0?{}:{model:e.model},...e.attachments?.length?{attachments:e.attachments}:{},...e.context?{context:e.context}:{},...e.project_root?{project_root:e.project_root}:{},stream:!1})}),n=await t.json().catch(()=>({}));return t.ok&&lo(n)?{ok:!0,...n}:{ok:!1,status:t.status,error:n.error??`Request failed (${t.status})`}}catch(e){return{ok:!1,status:0,error:e instanceof Error?e.message:String(e)}}}async function So(e){try{let t=await fetch(`/api/workshop/chat/stop`,{method:`POST`,headers:{"Content-Type":`application/json`,...Ti()},body:JSON.stringify({sessionId:e}),signal:AbortSignal.timeout(2e4)}),n=await t.json().catch(()=>({}));return t.ok?{draft:n.draft!==null&&typeof n.draft==`object`?n.draft:null,pending:n.pending!==null&&typeof n.pending==`object`?n.pending:null,buildId:typeof n.buildId==`string`&&n.buildId?n.buildId:null}:null}catch{return null}}async function Co(e,t={}){let n=!1;try{let r=await fetch(`/api/workshop/chat`,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/x-ndjson`,...Ti()},body:JSON.stringify({sessionId:e.sessionId,message:e.message,draft:e.draft,autoApply:e.autoApply===!0,...e.model===void 0?{}:{model:e.model},...e.attachments?.length?{attachments:e.attachments}:{},...e.context?{context:e.context}:{},...e.project_root?{project_root:e.project_root}:{},stream:!0}),...t.signal?{signal:t.signal}:{}}),i=r.headers.get(`content-type`)??``;if(!r.ok){let e=await r.json().catch(()=>({}));return{ok:!1,status:r.status,error:e.error??`Request failed (${r.status})`}}if(!i.includes(`ndjson`)||!r.body){let e=await r.json().catch(()=>({}));return lo(e)?{ok:!0,...e}:{ok:!1,status:r.status,error:e.error??`Request failed (${r.status})`}}n=!0;let a=r.body.getReader(),o=new TextDecoder,s=``,c={current:null},l=null,u=e=>{e.type===`delta`?t.onDelta?.(e.text):e.type===`activity`?t.onActivity?.(e):e.type===`pointer-change`?t.onPointerChange?.({buildId:e.buildId,draft:e.draft}):e.type===`event`?(t.onEvent?.(e.event),e.event.type===`error`&&typeof e.event.message==`string`&&e.event.message&&(l=e.event.message)):e.type===`done`&&(c.current={sessionId:e.sessionId,events:e.events??[],draft:e.draft,pending:e.pending,autoApply:e.autoApply,model:e.model,buildId:e.buildId??null})};for(;;){let{done:e,value:t}=await a.read();if(e)break;s+=o.decode(t,{stream:!0});let n=s.split(`
40
- `);s=n.pop()??``;for(let e of n){let t=e.trim();if(t)try{u(JSON.parse(t))}catch{continue}}}if(s.trim())try{u(JSON.parse(s.trim()))}catch{}return c.current?{ok:!0,...c.current}:l?{ok:!1,status:r.status,error:l}:{ok:!1,status:r.status,error:`Stream ended without a done frame`}}catch(r){return t.signal?.aborted||r instanceof Error&&r.name===`AbortError`?{ok:!1,status:0,error:`Stopped.`}:n?{ok:!1,status:0,error:`Workshop chat stream failed`}:xo(e)}}function wo(){return X(`/api/catalog/roots`)}async function To(e){return X(`/api/catalog/validate`,{method:`POST`,body:JSON.stringify({...e.pipeline?{pipeline:e.pipeline}:{},...e.task?{task:e.task}:{},...e.stage?{stage:e.stage}:{},...e.content===void 0?{}:{content:e.content},...e.strict===!0?{strict:!0}:{},...e.project_root?{project_root:e.project_root}:{}})})}async function Eo(e){let t=new URLSearchParams({path:e.path});return e.project_root&&t.set(`project_root`,e.project_root),X(`/api/catalog/file?${t}`)}async function Do(e){let t=await fetch(`/api/catalog/file`,{method:`PUT`,headers:{"Content-Type":`application/json`,...Ti()},body:JSON.stringify({path:e.path,content:e.content,...e.project_root?{project_root:e.project_root}:{}})}),n=await t.json().catch(()=>({}));return t.status===401&&Si(),t.ok?{ok:!0,path:n.path??e.path,content:n.content??e.content}:{ok:!1,status:t.status,error:n.error??`Request failed (${t.status})`,...n.findings?{findings:n.findings}:{}}}function Oo(){return X(`/api/memories`)}function ko(e){return X(`/api/memories/${encodeURIComponent(e)}`)}async function Ao(e){try{return await X(`/api/memories`,{method:`POST`,body:JSON.stringify(e)})}catch(e){let t=e.code;throw t===`MEMORY_TOO_LARGE`?Object.assign(Error(`That text is too long.`),{code:t}):t===`MEMORY_INVALID_DESCRIPTION`?Object.assign(Error(`Add a short description so you can spot this memory later.`),{code:t}):e}}function jo(e,t,n=!1){return`/api/memories/${encodeURIComponent(e)}/${n?`cards/previous`:`cards`}?${new URLSearchParams({key:t}).toString()}`}async function Mo(e,t){let n=await fetch(e,{...t,headers:{"Content-Type":`application/json`,...Ti(),...t?.headers??{}}}),r=await n.json().catch(()=>({}));if(n.status===401&&Si(),!n.ok){let e=typeof r.code==`string`?r.code:void 0,t=Error(typeof r.error==`string`?r.error:e??`Request failed (${n.status})`);throw e&&(t.code=e),t}return r}function No(e){return Mo(`/api/memories/${encodeURIComponent(e)}/cards`)}function Po(e,t){return Mo(jo(e,t))}async function Fo(e){try{return(await Mo(e)).body}catch(e){let t=e.code;if(t===`MEMORY_NOT_FOUND`||t===`MEMORY_CARD_NOT_FOUND`||t===`MEMORY_NO_PREVIOUS`)return null;throw e}}function Io(e,t){return Fo(jo(e,t,!0))}function Lo(e,t,n){return Mo(`/api/memories/${encodeURIComponent(e)}/cards`,{method:`PATCH`,body:JSON.stringify({key:t,body:n})})}function Ro(e,t){return Mo(`/api/memories/${encodeURIComponent(e)}/cards`,{method:`DELETE`,body:JSON.stringify({key:t})})}function zo(e,t){return Mo(`/api/memories/${encodeURIComponent(e)}`,{method:`PATCH`,body:JSON.stringify({body:t})})}function Bo(e){return Fo(`/api/memories/${encodeURIComponent(e)}/previous`)}function Vo(){return{readListing:()=>Ei(),readCapacity:()=>da()}}var Ho=2e3;function Uo(){return{every(e,t){let n=setInterval(()=>{t()},e);return()=>clearInterval(n)}}}function Wo(e){let t=e.intervalMs??Ho,n=e.scheduler??Uo(),r=new Set,i={snapshot:{runs:[],health:null},error:null,loading:!0},a=!1,o;function s(){return i}function c(e){return r.add(e),()=>{r.delete(e)}}function l(){for(let e of r)e()}async function u(){let t=i.snapshot.runs,n=i.snapshot.health,r=null,a=e.source.readListing(),o=e.source.readCapacity();try{t=(await a).runs}catch(e){r=e instanceof Error?e.message:String(e)}try{n=await o}catch{}i={snapshot:{runs:t,health:n},error:r,loading:!1},l()}async function d(){a||(a=!0,await u(),o=n.every(t,()=>{if(a)return u()}))}function f(){a=!1,o?.(),o=void 0}async function p(){await u()}return{start:d,stop:f,refresh:p,subscribe:c,getState:s}}var Go=(0,J.createContext)(null);function Ko(){let e=(0,J.useContext)(Go);if(e===null)throw Error(`useRunCatalog must be used within RunCatalogProvider`);return e}function qo({catalog:e,children:t}){return(0,J.useEffect)(()=>(e.start(),()=>{e.stop()}),[e]),(0,J.createElement)(Go.Provider,{value:e},t)}function Jo(){let e=Ko();return(0,J.useSyncExternalStore)(e.subscribe,e.getState)}function Yo(){return Ko()}function Xo(e,t){if(t){let n=t.replace(/\\/g,`/`).replace(/\/$/,``),r=e.replace(/\\/g,`/`);if(r===n)return`.`;let i=`${n}/`;if(r.startsWith(i))return r.slice(i.length)}let n=e.replace(/\\/g,`/`).split(`/`);return n[n.length-1]??e}function Zo(e){return e.replace(/\\/g,`/`)}function Qo(e,t){return!!(e.pipeline_id===t.id||e.pipeline_path&&e.project_root&&Zo(Xo(e.pipeline_path,e.project_root))===Zo(t.path))}function $o(e){let t=e.pipeline_path?Xo(e.pipeline_path,e.project_root):e.pipeline_id,n=e.task_path?Xo(e.task_path,e.project_root):e.task_id;return n&&n!==t?`${t} · ${n}`:t}function es(e){return e.task_path?Xo(e.task_path,e.project_root):e.task_id??e.pipeline_id}function ts(e){return e.length>7?e.slice(0,7):e}function ns(e){let t=e.replace(/\\/g,`/`).split(`/`);return t[t.length-1]||e}function rs(e){if(e.kind===`unbound`)return`unbound`;if(e.kind===`checkout`)return e.checkout_root?`checkout · ${ns(e.checkout_root)}`:`checkout · unavailable`;let t=[`repository`];return e.repository&&t.push(e.repository),e.ref&&t.push(e.ref),e.resolved_sha&&t.push(ts(e.resolved_sha)),e.run_branch&&t.push(e.run_branch),t.length===1&&!e.repository?`repository · unavailable`:t.join(` · `)}function is(e){if(e.kind===`unbound`)return`unbound`;if(e.kind===`checkout`)return e.checkout_root??`checkout unavailable`;let t=[];return e.resolved_sha&&t.push(e.resolved_sha),e.checkout_root&&t.push(e.checkout_root),t.length>0?t.join(`
41
- `):rs(e)}function as(e){if(e.kind===`unbound`)return`unbound`;if(e.kind===`checkout`)return`checkout`;let t=[`repository`];return e.repository&&t.push(e.repository),e.ref&&t.push(e.ref),e.resolved_sha&&t.push(ts(e.resolved_sha)),t.join(` · `)}function os(e){let t=[],n=[],r=[],i=[];for(let a of e.runs)a.waiting_stage_id?t.push(a):a.status===`failed`?r.push(a):a.status===`succeeded`?i.push(a):(a.status===`running`||a.status===`created`)&&n.push(a);return{waiting:t,inFlight:n,broken:r,finished:i}}function ss(e){return os(e).waiting}function cs(e){return os(e).waiting.slice().sort((e,t)=>{let n=e.updated_at??e.created_at,r=t.updated_at??t.created_at;return n.localeCompare(r)})}function ls(e,t){if(!t?.activeRunIds?.length)return 0;let n=new Set(t.activeRunIds);return cs(e).filter(e=>n.has(e.run_id)).length}function us(e){return os(e).inFlight}function ds(e){return os(e).broken}function fs(e){return os(e).finished}function ps(e){return e.slice().sort((e,t)=>t.created_at.localeCompare(e.created_at))}function ms(e,t){return ps(e.runs.filter(e=>typeof t==`string`?e.pipeline_id===t:Qo(e,t)))}function hs(e){let t=os(e);return{all:e.runs.length,waiting:t.waiting.length,running:t.inFlight.length,failed:t.broken.length,finished:t.finished.length}}function gs(e,t){let n=new Map(e.runs.map(e=>[e.run_id,e]));return t.flatMap(e=>{let t=n.get(e);return t?.waiting_stage_id?[t]:[]})}function _s({size:e=16,className:t}){return(0,Y.jsxs)(`svg`,{width:e,height:e,viewBox:`0 0 64 64`,fill:`none`,className:t,"aria-hidden":`true`,children:[(0,Y.jsx)(`path`,{d:`M 12 20 C 28 20, 28 44, 52 44`,stroke:`currentColor`,strokeWidth:`2.5`,strokeLinecap:`round`,fill:`none`}),(0,Y.jsx)(`circle`,{cx:`12`,cy:`20`,r:`5`,fill:`currentColor`}),(0,Y.jsx)(`circle`,{cx:`32`,cy:`32`,r:`5`,fill:`currentColor`}),(0,Y.jsx)(`circle`,{cx:`52`,cy:`44`,r:`5`,fill:`currentColor`,opacity:`0.45`})]})}var vs=[{id:`today`,label:`Today`,glyph:`◉`},{id:`runs`,label:`Runs`,glyph:`▤`},{id:`pipelines`,label:`Pipelines`,glyph:`⛓`},{id:`workshop`,label:`Workshop`,glyph:`✎`},{id:`tasks`,label:`Tasks`,glyph:`▦`},{id:`triggers`,label:`Triggers`,glyph:`⚡`},{id:`connections`,label:`Connections`,glyph:`↔`},{id:`memories`,label:`Memories`,glyph:`☰`},{id:`agents`,label:`Agents`,glyph:`◈`},{id:`skills`,label:`Skills`,glyph:`✦`},{id:`extensions`,label:`Extensions`,glyph:`◇`},{id:`settings`,label:`Settings`,glyph:`⚙`}];function ys({activeId:e,onNavigate:t,waitingCount:n,health:r}){return(0,Y.jsxs)(`nav`,{className:`rail`,children:[(0,Y.jsxs)(`a`,{className:`rail__brand`,href:`#/today`,onClick:e=>{e.preventDefault(),t(`today`)},children:[(0,Y.jsx)(`span`,{className:`rail__mark`,"aria-hidden":`true`,children:(0,Y.jsx)(_s,{size:28})}),(0,Y.jsx)(`span`,{children:`Stageflow`})]}),(0,Y.jsx)(`div`,{className:`rail__new`,children:(0,Y.jsx)(`a`,{className:`btn btn--primary`,href:`#/new`,style:{width:`100%`},onClick:e=>{e.preventDefault(),t(`new`)},children:`Start a run`})}),vs.map(r=>(0,Y.jsxs)(`a`,{className:`rail__item`,href:`#/${r.id}`,"aria-current":e===r.id?`page`:void 0,onClick:e=>{e.preventDefault(),t(r.id)},children:[(0,Y.jsx)(`span`,{className:`rail__glyph`,"aria-hidden":`true`,children:r.glyph}),(0,Y.jsx)(`span`,{className:`rail__label`,children:r.label}),r.id===`today`&&n!=null&&n>0&&(0,Y.jsx)(`span`,{className:`rail__count`,children:n})]},r.id)),(0,Y.jsxs)(`div`,{className:`rail__foot`,children:[(0,Y.jsx)(`div`,{className:`eyebrow`,children:`Capacity`}),r?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{className:`capacity`,"aria-hidden":`true`,children:Array.from({length:r.maxConcurrent},(e,t)=>(0,Y.jsx)(`i`,{...t<r.activeCount?{"data-used":`true`}:{}},t))}),(0,Y.jsxs)(`div`,{className:`mono muted`,style:{fontSize:`var(--font-size-xs)`},children:[r.activeCount,` of `,r.maxConcurrent,` slots · `,r.slotsAvailable===0?`none free`:`${r.slotsAvailable} free`]})]}):(0,Y.jsx)(`div`,{className:`mono muted`,style:{fontSize:`var(--font-size-xs)`},children:`—`})]})]})}function bs(e){return Array.isArray(e)&&e.length>0}var xs=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function Ss(e){if(xs.test(e))return e.slice(0,8);if(/^\d{4}-\d{2}-\d{2}/.test(e)){let t=e.replace(/^\d{4}-\d{2}-\d{2}[T\-_:.Z]*/i,``).replace(/[^\w]/g,``);if(t.length>=4)return t.slice(0,8);let n=Date.parse(e);if(Number.isFinite(n)){let e=new Date(n),t=n.toString(36).replace(/[^\w]/g,``);return t.length>=4?t.slice(-8):`${e.getUTCMonth()+1}${e.getUTCDate()}${e.getUTCHours()}${e.getUTCMinutes()}`.slice(0,8)}}return e.length<=8?e:e.slice(-8)}function Cs(e,t=Date.now()){let n=Date.parse(e);if(!Number.isFinite(n))return Ss(e);let r=Math.max(0,t-n),i=Math.floor(r/1e3);if(i<60)return`just now`;let a=Math.floor(i/60);if(a<60)return`${a}m`;let o=Math.floor(a/60);return o<24?`${o}h ago`:`${Math.floor(o/24)}d ago`}function ws(e){if(e.waiting_stage_id){let t=e.waiting_kind?` · ${e.waiting_kind}`:``;return`${e.waiting_stage_id} · asked you${t}`}let t=e.stages?.find(e=>e.status===`running`);if(t)return t.id;if(e.failed_stage_id)return e.failed_stage_id}function Ts(){document.documentElement.setAttribute(`data-redesign`,`on`)}function Es(){return(0,J.useEffect)(()=>{Ts()},[]),!0}var Ds=`process_interrupted: operator abandoned stage`;function Os(e){let t;for(let n of e)n.event===`failed`&&(t=n.reason);return t===Ds}function ks(){return`abandoned`}function As(e){return e!==void 0&&e.trim()!==``?`cancelled: ${e}`:`cancelled`}function js(e){return e.waiting_stage_id?`waiting_for_input`:e.status}function Ms(e){switch(e){case`waiting_for_input`:case`interrupted`:return`waiting`;case`created`:case`queued`:return;case`running`:return`running`;case`succeeded`:return`succeeded`;case`failed`:case`cancelled`:return`failed`;case`pending`:case`skipped`:return}}function Ns(e){switch(e){case`waiting_for_input`:return`waiting on you`;case`created`:return`not started`;case`queued`:case`pending`:case`running`:case`interrupted`:case`succeeded`:case`failed`:case`cancelled`:case`skipped`:return e}}function Ps(){let e=Ns(`waiting_for_input`);return e.charAt(0).toUpperCase()+e.slice(1)}function Fs(e){switch(e){case`waiting_for_input`:case`interrupted`:return`waiting`;case`pending`:case`running`:case`succeeded`:case`failed`:case`skipped`:return e}}function Is(e){switch(e){case`waiting_for_input`:case`interrupted`:case`waiting`:return`?`;case`pending`:return``;case`running`:return`▸`;case`succeeded`:return`✓`;case`failed`:return`✕`;case`skipped`:return`–`}}function Ls(e){switch(e){case`created`:case`queued`:case`pending`:case`skipped`:return`neutral`;case`running`:return`accent`;case`waiting_for_input`:case`interrupted`:return`warning`;case`succeeded`:return`success`;case`failed`:case`cancelled`:return`error`}}function Rs(e){return e===`running`}function zs(e){switch(e){case`waiting_for_input`:return`needs`;case`running`:return`running`;case`succeeded`:return`ok`;case`failed`:return`fail`;case`cancelled`:return`skipped`;case`created`:case`queued`:return`queued`}}function Bs(e){switch(e){case`waiting_for_input`:return`needs`;case`interrupted`:return`fail`;case`running`:return`running`;case`succeeded`:return`ok`;case`failed`:return`fail`;case`skipped`:return`skipped`;case`pending`:return`queued`}}function Vs(e){switch(e){case`waiting`:return`needs`;case`interrupted`:return`fail`;case`running`:return`running`;case`succeeded`:return`ok`;case`failed`:return`fail`;case`skipped`:return`skipped`;case`blocked`:case`ready`:return`queued`}}function Hs(e){return zs(js(e))}function Us(e){switch(e){case`needs`:return`Needs you`;case`running`:return`Running`;case`ok`:return`Succeeded`;case`fail`:return`Failed`;case`queued`:return`Queued`;case`skipped`:return`Skipped`}}function Ws(e){return e===`running`?`animate-spin`:``}function Gs(e){switch(e){case`needs`:return Ze;case`running`:return bt;case`ok`:return G;case`fail`:return St;case`queued`:return m;case`skipped`:return Fe}}function Ks(e){return e===`interrupted`?`Interrupted`:Us(Bs(e))}function qs(e){return e===`cancelled`?`Cancelled`:Us(zs(e))}function Js(e){return e===`pending`?`sf-track__seg--empty`:`sf-track__seg--${Bs(e)}`}function Ys({stages:e,label:t,variant:n}){let r=Es(),i=n??(r?`bar`:`rings`);return e.length===0?null:i===`bar`?(0,Y.jsxs)(`span`,{children:[(0,Y.jsx)(`span`,{className:`sf-track`,"aria-hidden":`true`,children:e.map(e=>(0,Y.jsx)(`i`,{className:`sf-track__seg ${Js(e.status)}`},e.id))}),t?(0,Y.jsx)(`span`,{className:`sf-track__label`,children:t}):null]}):(0,Y.jsxs)(`span`,{children:[(0,Y.jsx)(`span`,{className:`mini`,"aria-hidden":`true`,children:e.map((t,n)=>{let r=Fs(t.status),i=Is(r)||String(n+1),a=n>0&&e[n-1]?.status===`succeeded`;return(0,Y.jsxs)(J.Fragment,{children:[n>0?(0,Y.jsx)(`i`,{className:`mini__w`,"data-flowed":a?`true`:void 0}):null,(0,Y.jsx)(`i`,{className:`mini__n`,"data-s":r===`pending`?void 0:r,children:i})]},t.id)})}),t?(0,Y.jsx)(`span`,{className:`mini__label`,children:t}):null]})}function Xs(e){return e===void 0?null:`$${e.toFixed(4)}`}function Zs({costUsd:e}){let t=Xs(e);return t?(0,Y.jsx)(`span`,{className:`chip chip--cost`,"aria-label":`cost ${t}`,children:t}):null}function Qs(e=Date.now()){let t=new Date(e);return t.setHours(0,0,0,0),t.getTime()}function $s(e){return e.slice().sort((e,t)=>t.created_at.localeCompare(e.created_at))}function ec(e,t){return t===`all`?e:t===`waiting`?e.filter(e=>!!e.waiting_stage_id):t===`running`?e.filter(e=>!e.waiting_stage_id&&(e.status===`running`||e.status===`created`)):t===`failed`?e.filter(e=>e.status===`failed`):e.filter(e=>e.status===`succeeded`)}function tc(e,t,n=Date.now()){let r=$s(ec(e,t)),i=Qs(n),a=[],o=[],s=[],c=[];for(let e of r){if(e.waiting_stage_id){a.push(e);continue}if(e.status===`running`||e.status===`created`){o.push(e);continue}Date.parse(e.created_at)>=i?s.push(e):t===`all`?c.push(e):s.push(e)}let l=[];return a.length>0&&l.push({id:`needs_you`,label:`Needs you`,runs:a}),o.length>0&&l.push({id:`running`,label:`Running`,runs:o}),s.length>0&&l.push({id:`earlier_today`,label:`Earlier today`,runs:s}),c.length>0&&l.push({id:`earlier`,label:`Earlier`,runs:c}),l}function nc(e=Date.now()){let t=new Date(e),n=t.getDay(),r=n===0?6:n-1;return t.setHours(0,0,0,0),t.setDate(t.getDate()-r),t.getTime()}function rc(e,t=Date.now()){let n=nc(t);return e.filter(e=>Date.parse(e.created_at)>=n).length}function ic(e){let t=0,n=!1;for(let r of e)r.total_cost_usd!==void 0&&(t+=r.total_cost_usd,n=!0);return n?t:void 0}function ac(e){let t=Date.parse(e.created_at),n=e.finished_at??e.updated_at;if(!n)return;let r=Date.parse(n);if(!(!Number.isFinite(t)||!Number.isFinite(r)))return Math.max(0,r-t)}function oc(e,t,n=20){let r=e.filter(e=>e.pipeline_id===t&&e.status===`succeeded`).sort((e,t)=>{let n=e.finished_at??e.updated_at??e.created_at,r=t.finished_at??t.updated_at??t.created_at;return Date.parse(r)-Date.parse(n)}).slice(0,n),i=ic(r),a=r.map(ac).filter(e=>e!=null),o=a.length>0?a.reduce((e,t)=>e+t,0)/a.length:void 0;return{sampleCount:r.length,avgCostUsd:i!==void 0&&r.length>0?i/r.length:void 0,avgDurationMs:o}}function sc(e){let t=Math.max(1,Math.round(e/6e4));if(t<60)return`~${t}m`;let n=Math.floor(t/60),r=t%60;return r>0?`~${n}h ${r}m`:`~${n}h`}function cc(e){return e<.01?`~<$0.01`:`~$${e.toFixed(2)}`}function lc(e,t){let n;for(let r of e){if(r.task_id!==t&&r.task_path!==t)continue;let e=r.updated_at??r.created_at;(!n||e.localeCompare(n)>0)&&(n=e)}return n}var uc=[`needs`,`failed`,`done_today`];function dc(e){return e&&uc.includes(e)&&e!==`needs`?e:`needs`}function fc(e=window.location.hash){let t=e.replace(/^#\/?/,``),n=t.indexOf(`?`);return n<0||t.slice(0,n)!==`inbox`?`needs`:dc(new URLSearchParams(t.slice(n+1)).get(`tab`))}function pc(e=`needs`){return e===`needs`?`/inbox`:`/inbox?tab=${encodeURIComponent(e)}`}function mc(e){let t=pc(e);window.location.hash.replace(/^#/,``)!==t&&(window.location.hash=t)}function Z(e){window.location.hash=e.startsWith(`#`)?e:`#${e}`}function hc(e){return`/runs/${encodeURIComponent(e)}`}function gc(e,t){return`/runs/${encodeURIComponent(e)}/stages/${encodeURIComponent(t)}`}function _c(e,t){return`/runs/${encodeURIComponent(e)}/artifacts?path=${encodeURIComponent(t)}`}function vc(e,t){return`/runs/${encodeURIComponent(e)}/stages/${encodeURIComponent(t)}/envelope`}function yc(e,t){let n=`/pipelines/${encodeURIComponent(e)}`;if(!t?.project_root)return n;let r=new URLSearchParams;return r.set(`project_root`,t.project_root),`${n}?${r.toString()}`}function bc(e,t,n){if(n){let r=e.find(e=>e.id===t&&e.project_root===n);if(r)return r}return e.find(e=>e.id===t)??null}function xc(e){return`/tasks/${encodeURIComponent(e)}`}function Sc(e,t){let n=`/triggers/${encodeURIComponent(e)}`;return t?`${n}?${new URLSearchParams({project_root:t})}`:n}function Cc(e){return`/skills/${encodeURIComponent(e)}`}function wc(e){let t=new URLSearchParams;e?.tab&&t.set(`tab`,e.tab),e?.skill&&t.set(`skill`,e.skill);let n=t.toString();return n?`/catalog?${n}`:`/catalog`}function Tc(e,t){let n=`/stages/${encodeURIComponent(e)}`;if(!t?.project_root)return n;let r=new URLSearchParams;return r.set(`project_root`,t.project_root),`${n}?${r.toString()}`}function Ec(e,t){return`/extensions/packages/${encodeURIComponent(e)}/${encodeURIComponent(t)}`}function Dc(e){return`/extensions/files/${encodeURIComponent(e)}`}function Oc(e){let t=new URLSearchParams;e?.session&&t.set(`session`,e.session),e?.pipeline&&t.set(`pipeline`,e.pipeline),e?.task&&t.set(`task`,e.task),e?.project_root&&t.set(`project_root`,e.project_root);let n=t.toString();return n?`/workshop?${n}`:`/workshop`}function kc(e){return`/connections/${encodeURIComponent(e)}`}function Ac(e){return`/memories/${encodeURIComponent(e)}`}function jc(){return`/agents`}function Mc(){return`/agents/new`}function Nc(e,t=`detail`){let n=`/agents/${encodeURIComponent(e)}`;return t===`edit`?`${n}/edit`:n}function Pc(e,t){return`${Nc(e)}/sessions/${encodeURIComponent(t)}`}function Fc(e,t,n){return`${Pc(e,t)}/runs/${encodeURIComponent(n)}`}function Ic(e){let t=new URLSearchParams;e?.pipeline&&t.set(`pipeline`,e.pipeline),e?.task&&t.set(`task`,e.task),e?.project_root&&t.set(`project_root`,e.project_root);let n=t.toString();return n?`/new?${n}`:`/new`}function Lc(e){let t=e.replace(/^#\/?/,``),n=t.indexOf(`?`);return n<0?{path:t,params:new URLSearchParams}:{path:t.slice(0,n),params:new URLSearchParams(t.slice(n+1))}}function Rc(e){let t=e.indexOf(`/`),n=t<0?e:e.slice(0,t);return n?decodeURIComponent(n):``}function zc(e=window.location.hash){let{path:t,params:n}=Lc(e);if(!t||t===`today`)return{name:`inbox`};if(t===`overview`)return{name:`overview`};if(t===`inbox`){let e=n.get(`tab`),t=e===`failed`||e===`done_today`?e:void 0;return t?{name:`inbox`,tab:t}:{name:`inbox`}}if(t===`runs`)return{name:`runs`};if(t===`new`){let e=n.get(`pipeline`)??void 0,t=n.get(`task`)??void 0,r=n.get(`project_root`)??void 0;return{name:`new`,...e?{pipelineId:e}:{},...t?{taskPath:t}:{},...r?{projectRoot:r}:{}}}if(t===`pipelines`)return{name:`pipelines`};if(t.startsWith(`pipelines/`)){let e=Rc(t.slice(10));if(e){let t=n.get(`project_root`)??void 0;return{name:`pipeline`,pipelineId:e,...t?{projectRoot:t}:{}}}}if(t===`tasks`)return{name:`tasks`};if(t.startsWith(`tasks/`)){let e=Rc(t.slice(6));if(e)return{name:`task`,taskId:e}}if(t===`triggers`)return{name:`triggers`};if(t===`memories`)return{name:`memories`};if(t.startsWith(`memories/`)){let e=Rc(t.slice(9));if(e)return{name:`memory`,memoryId:e}}if(t===`connections`)return{name:`connections`};if(t.startsWith(`connections/`)){let e=Rc(t.slice(12));if(e)return{name:`connection`,connectionId:e}}if(t===`agent-sessions`||t===`agents/sessions`)return{name:`agentSessions`};if(t===`agents`)return{name:`agents`};if(t===`agents/new`)return{name:`agentCreate`};if(t.startsWith(`agents/`)){let e=t.slice(7),n=e.indexOf(`/`),r=decodeURIComponent(n<0?e:e.slice(0,n)),i=n<0?``:e.slice(n+1);if(r===`new`)return{name:`agentCreate`};if(!r)return{name:`agents`};if(i===`edit`)return{name:`agent`,agentId:r,screen:`edit`};let a=/^sessions\/([^/]+)(?:\/runs\/([^/]+))?$/.exec(i);if(a){let e=decodeURIComponent(a[1]);return a[2]?{name:`agentRun`,agentId:r,sessionId:e,runId:decodeURIComponent(a[2])}:{name:`agentSession`,agentId:r,sessionId:e}}if(i===``)return{name:`agent`,agentId:r,screen:`detail`}}if(t.startsWith(`triggers/`)){let e=Rc(t.slice(9));if(e){let t=n.get(`project_root`)??void 0;return{name:`trigger`,triggerId:e,...t?{projectRoot:t}:{}}}}if(t===`catalog`){let e=n.get(`tab`),t=e===`skills`||e===`extensions`||e===`stages`?e:`stages`,r=n.get(`skill`)??void 0;return{name:`catalog`,tab:t,...r?{skillName:r}:{}}}if(t.startsWith(`stages/`)){let e=decodeURIComponent(t.slice(7));if(e){let t=n.get(`project_root`)??void 0;return{name:`stage`,path:e,...t?{projectRoot:t}:{}}}}if(t===`skills`)return{name:`skills`};if(t.startsWith(`skills/`)){let e=Rc(t.slice(7));if(e)return{name:`skill`,skillName:e}}if(t===`extensions`)return{name:`extensions`};if(t.startsWith(`extensions/packages/`)){let e=t.slice(20),n=e.indexOf(`/`);if(n>0){let t=decodeURIComponent(e.slice(0,n)),r=decodeURIComponent(e.slice(n+1));if((t===`user`||t===`project`)&&r)return{name:`extensionPackage`,scope:t,source:r}}}if(t.startsWith(`extensions/files/`)){let e=decodeURIComponent(t.slice(17));if(e)return{name:`extensionFile`,path:e}}if(t===`settings`)return{name:`settings`};if(t===`connect`)return{name:`connect`};if(t===`workshop`||t===`workshop-lab`){let e=n.get(`session`)??void 0,t=n.get(`pipeline`)??void 0,r=n.get(`task`)??void 0,i=n.get(`project_root`)??void 0;return{name:`workshop`,...e?{sessionId:e}:{},...t?{pipelinePath:t}:{},...r?{taskPath:r}:{},...i?{projectRoot:i}:{}}}if(t.startsWith(`runs/`)){let e=t.slice(5).split(`/`),r=decodeURIComponent(e[0]??``);if(!r)return{name:`inbox`};if(e[1]===`stages`&&e[3]===`envelope`&&e[2]&&e.length===4)return{name:`detail`,runId:r,view:{kind:`envelope`,stageId:decodeURIComponent(e[2])}};if(e[1]===`stages`&&e[2]&&e.length===3)return{name:`detail`,runId:r,view:{kind:`stream`,stageId:decodeURIComponent(e[2])}};if(e[1]===`artifacts`&&e.length===2){let e=n.get(`path`);if(e)return{name:`detail`,runId:r,view:{kind:`artifact`,path:e}}}return e.length,{name:`detail`,runId:r,view:{kind:`stream`}}}return{name:`inbox`}}var Bc=[`run-detail-gate`,`inbox-gate`,`run-detail`,`runs`,`tasks`,`pipelines`,`workshop`,`triggers`,`catalog`,`inbox`,`global`],Vc=1,Hc=[];function Uc(e){let t=[];(e.metaKey||e.ctrlKey)&&t.push(`mod`),e.altKey&&t.push(`alt`),e.shiftKey&&t.push(`shift`);let n=e.altKey&&typeof e.code==`string`&&/^Key[A-Z]$/.test(e.code)?e.code.slice(3).toLowerCase():(e.key.length,e.key.toLowerCase());return t.push(n),t.join(`+`)}function Wc(e){return e.key.toLowerCase()}function Gc(e){if(!e||!(e instanceof HTMLElement))return!1;let t=e.tagName;return t===`TEXTAREA`||t===`INPUT`||t===`SELECT`||e.isContentEditable}function Kc(e){if(e.defaultPrevented)return;let t=Uc(e),n=Gc(e.target);for(let r of Bc)for(let i=Hc.length-1;i>=0;i--){let a=Hc[i];if(a.scope===r){for(let i of a.defs)if(i.scope===r&&Wc(i)===t&&!(i.when&&!i.when())&&!(n&&!i.allowInInput)&&(i.handler(e),e.defaultPrevented))return}}}var qc=!1;function Jc(){qc||typeof window>`u`||(qc=!0,window.addEventListener(`keydown`,Kc))}function Yc(e,t){let n=(0,J.useRef)(e);n.current=e;let r=(0,J.useRef)(null);(0,J.useEffect)(()=>{Jc();let e=Vc++,i={id:e,scope:t,defs:n.current};return r.current=i,Hc.push(i),()=>{let t=Hc.findIndex(t=>t.id===e);t>=0&&Hc.splice(t,1),r.current=null}},[t]),(0,J.useEffect)(()=>{r.current&&(r.current.defs=n.current)})}function Xc(e){return e?`bg-[var(--sf-raised)] text-[var(--sf-text-2)]`:`bg-[var(--sf-raised)] text-[var(--sf-text-3)]`}function Zc({tabs:e,activeId:t,onChange:n,variant:r=`bar`}){return r===`underline`?(0,Y.jsx)(`div`,{className:`flex h-10 w-full shrink-0 items-end gap-5 border-b border-b-[#ffffff12] px-7`,role:`tablist`,children:e.map(e=>{let r=e.id===t;return(0,Y.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":r,className:`flex h-full items-center gap-1.5 border-b-2 pb-0 pt-0${r?` border-b-[var(--sf-text-1)]`:` border-b-transparent`}`,onClick:()=>n(e.id),children:[(0,Y.jsx)(`span`,{className:`text-[13px]${r?` font-medium text-[var(--sf-text-1)]`:` text-[var(--sf-text-2)]`}`,children:e.label}),e.count==null?null:(0,Y.jsx)(`span`,{className:`rounded-sm px-[5px] py-0 font-['Geist_Mono',monospace] text-[11px] ${Xc(r)}`,children:e.count})]},e.id)})}):r===`queue`?(0,Y.jsx)(`div`,{className:`flex gap-5`,role:`tablist`,children:e.map(e=>{let r=e.id===t,i=e.id===`needs`;return(0,Y.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":r,className:`flex items-center gap-1.5 border-b-2 pb-2.5 pt-0${r&&i?` border-b-[var(--sf-needs)]`:r?` border-b-[var(--sf-text-1)]`:` border-b-transparent`}`,onClick:()=>n(e.id),children:[(0,Y.jsx)(`span`,{className:`text-[13px]${r?` font-medium text-[var(--sf-text-1)]`:` text-[var(--sf-text-2)]`}`,children:e.label}),e.count==null?null:(0,Y.jsx)(`span`,{className:`rounded-sm px-[5px] py-0 font-['Geist_Mono',monospace] text-[11px] ${Xc(r)}`,children:e.count})]},e.id)})}):(0,Y.jsx)(`div`,{className:`flex h-12 w-full shrink-0 items-center gap-0.5 border-b border-b-[#ffffff12] px-5`,role:`tablist`,children:e.map(e=>{let r=e.id===t;return(0,Y.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":r,className:`inline-flex items-center gap-1.5 rounded-lg px-2.5 py-1.5 text-[13px]${r?` bg-[var(--sf-raised)] font-medium text-[var(--sf-text-1)]`:` text-[var(--sf-text-2)]`}`,onClick:()=>n(e.id),children:[(0,Y.jsx)(`span`,{children:e.label}),e.count==null?null:(0,Y.jsx)(`span`,{className:`rounded-sm px-[5px] py-0 font-['Geist_Mono',monospace] text-[11px] ${Xc(r)}`,children:e.count})]},e.id)})})}function Qc({items:e,trailingSlash:t=!1}){return(0,Y.jsxs)(`nav`,{className:`flex items-center text-[13px] leading-normal text-[var(--sf-text-3)]`,"aria-label":`Breadcrumb`,children:[e.map((e,t)=>(0,Y.jsxs)(`span`,{className:`flex items-center`,children:[t>0?(0,Y.jsx)(`span`,{className:`px-1`,children:`/`}):null,e.onClick?(0,Y.jsx)(`button`,{type:`button`,onClick:e.onClick,className:`hover:text-[var(--sf-text-2)]`,children:e.label}):(0,Y.jsx)(`span`,{children:e.label})]},`${e.label}-${t}`)),t?(0,Y.jsx)(`span`,{className:`px-1`,children:`/`}):null]})}function $c({title:e,subtitle:t,titleAddon:n,crumbs:r,children:i,actions:a,description:o,meta:s,variant:c=`bar`,className:l}){let u=l?` ${l}`:``;if(c===`inbox`)return(0,Y.jsxs)(`div`,{className:`flex h-14 w-full shrink-0 items-center justify-between px-7${u}`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2.5`,children:[(0,Y.jsx)(`h1`,{className:`text-xl font-semibold leading-normal tracking-[-0.4px] text-[var(--sf-text-1)]`,children:e}),n]}),a?(0,Y.jsx)(`div`,{className:`flex items-center gap-2`,children:a}):null]});let d=(r??[]).filter(e=>e.onClick);return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`header`,{className:`flex h-14 w-full shrink-0 items-center justify-between gap-4 border-b border-b-[#ffffff12] px-5${u}`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2.5`,children:[d.length>0?(0,Y.jsx)(Qc,{items:d,trailingSlash:!0}):null,(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-col justify-center`,children:[(0,Y.jsx)(`h1`,{className:`truncate text-xl font-semibold leading-normal tracking-[-0.4px] text-[var(--sf-text-1)]`,children:e}),t?(0,Y.jsx)(`p`,{className:`text-[13px] leading-tight text-[var(--sf-text-2)]`,children:t}):null]}),n]}),i?(0,Y.jsx)(`div`,{className:`flex min-w-0 flex-1 items-center justify-end gap-2`,children:i}):null,a?(0,Y.jsx)(`div`,{className:`flex shrink-0 items-center gap-2`,children:a}):null]}),o||s?(0,Y.jsxs)(`div`,{className:`flex shrink-0 flex-col gap-1.5 border-b border-b-[#ffffff12] px-5 py-2.5`,children:[o?(0,Y.jsx)(`div`,{className:`text-[13px] leading-normal text-[var(--sf-text-2)]`,children:o}):null,s]}):null]})}function el({selected:e,needs:t,onClick:n,children:r,variant:i=`table`,className:a}){return i===`gate`?(0,Y.jsx)(`button`,{type:`button`,onClick:n,className:`flex w-full gap-3 rounded-[10px] p-3 text-left${e&&t?` border border-[#f5b54447] bg-[#16140f]`:``}`,children:r}):(0,Y.jsx)(`button`,{type:`button`,onClick:n,className:`block w-full border-b border-b-[#ffffff12] text-left text-[var(--sf-text-1)] hover:bg-[var(--sf-raised)]${e?` bg-[var(--sf-active)]`:` bg-transparent`}${a?` ${a}`:` px-5 py-2.5`}`,children:r})}function tl({children:e,className:t}){return(0,Y.jsx)(`div`,{className:`flex flex-col${t?` ${t}`:``}`,children:e})}var nl=`flex h-11 max-h-11 min-h-11 w-full shrink-0 items-center gap-3 overflow-hidden border-b border-b-[#ffffff12] px-5 py-0`,rl=`flex w-full h-8 shrink-0 items-center gap-3 bg-[var(--sf-ground)] border-b border-b-[#ffffff12] px-5 py-0`,il=`w-[112px] shrink-0`,al=`flex min-h-0 min-w-0 flex-1 flex-col justify-center gap-0.5 overflow-hidden`,ol=`flex w-[220px] shrink-0 flex-col gap-[7px]`,sl=`w-[72px] shrink-0 whitespace-nowrap text-[var(--sf-text-2)] font-['Geist_Mono',monospace] text-xs leading-normal`,cl=`w-[72px] shrink-0 whitespace-nowrap text-right text-[var(--sf-text-2)] font-['Geist_Mono',monospace] text-xs leading-normal`,ll=`w-[60px] shrink-0 whitespace-nowrap text-right text-[var(--sf-text-2)] font-['Geist_Mono',monospace] text-xs leading-normal`,ul=`w-14 shrink-0 whitespace-nowrap text-right text-[var(--sf-text-1)] font-['Geist_Mono',monospace] text-xs leading-normal`,dl=`flex w-[132px] shrink-0 justify-end`,fl=`text-[var(--sf-text-3)] font-sans text-[11px] font-medium leading-normal tracking-[0.88px] uppercase`;function pl(){return(0,Y.jsxs)(`div`,{className:rl,role:`row`,children:[(0,Y.jsx)(`span`,{className:`${il} ${fl} text-left`,children:`Status`}),(0,Y.jsx)(`span`,{className:`${al} min-w-0 flex-1 ${fl} text-left`,children:`Task`}),(0,Y.jsx)(`span`,{className:`${ol} ${fl} text-left`,children:`Pipeline & stages`}),(0,Y.jsx)(`span`,{className:`${sl} ${fl} text-left`,children:`Started`}),(0,Y.jsx)(`span`,{className:`${cl} ${fl} text-right`,children:`Duration`}),(0,Y.jsx)(`span`,{className:`${ll} ${fl} text-right`,children:`Tokens`}),(0,Y.jsx)(`span`,{className:`${ul} ${fl} text-right`,children:`Cost`}),(0,Y.jsx)(`span`,{className:`${dl} block`})]})}function ml(e,t,n){if(e===`needs_you`){let e=1/0;for(let n of t){let t=Date.parse(n.updated_at??n.created_at);Number.isFinite(t)&&t<e&&(e=t)}let r=Number.isFinite(e)?Cs(new Date(e).toISOString(),n):null,i=t.length>0?`${t.length} run${t.length===1?``:`s`} holding agent slots${r?` · oldest waiting ${r}`:``}`:void 0;return{Icon:Ze,hint:i,band:!0}}return e===`running`?{Icon:bt}:{}}function hl(e,t){return e===`earlier_today`?`Earlier today`:e===`earlier`?`Earlier`:t}function gl({groupId:e,label:t,runs:n,now:r,children:i}){let a=ml(e,n,r),o=hl(e,t);return(0,Y.jsxs)(`section`,{"data-group":e,children:[(0,Y.jsxs)(`h2`,{className:`flex h-8 w-full items-center gap-2 border-b border-b-[#ffffff12] px-5 py-0${a.band?` bg-[#f5b5440a]`:``}`,children:[a.Icon?(0,Y.jsx)(a.Icon,{className:`size-[13px] shrink-0${e===`needs_you`?` text-[var(--sf-needs)]`:e===`running`?` animate-spin text-[var(--sf-running)]`:` text-[var(--sf-text-3)]`}`,"aria-hidden":`true`}):null,(0,Y.jsx)(`span`,{className:`font-sans text-[13px] font-semibold leading-normal text-[var(--sf-text-1)]`,children:o}),(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace] text-xs leading-normal text-[var(--sf-text-3)]`,children:n.length}),(0,Y.jsx)(`span`,{className:`block flex-1`}),a.hint?(0,Y.jsx)(`span`,{className:`font-sans text-xs leading-normal text-[var(--sf-text-3)]`,children:a.hint}):null]}),i]})}function _l(e){if(!Number.isFinite(e)||e<0)return`—`;let t=Math.floor(e/1e3);if(t<60)return`${t}s`;let n=Math.floor(t/60),r=t%60;if(n<60)return r>0?`${n}m ${r}s`:`${n}m`;let i=Math.floor(n/60),a=n%60;return a>0?`${i}h ${a}m`:`${i}h`}function vl(e,t,n,r=Date.now()){let i=Date.parse(e),a=t?Date.parse(t):n?Date.parse(n):r;return!Number.isFinite(i)||!Number.isFinite(a)?0:Math.max(0,a-i)}function yl(e,t,n,r=Date.now()){return _l(vl(e,t,n,r))}function bl(e){return Xs(e)??`—`}function xl(e){return e===`failed`}function Sl(e){return e===`running`}function Cl(e){if(e.status===`interrupted`)return!0;if(e.status!==`failed`)return!1;let t;for(let n of e.events)n.event===`failed`&&(t=n.reason);return typeof t==`string`&&t.startsWith(`stage timed out after `)}function wl(e,t){return e.retryingStageIds.has(t)||e.abandoningStageId===t||(e.resumingStageIds?.has(t)??!1)}function Tl(e){let t={retryingStageIds:new Set,error:null},n=new Set,r=()=>t,i=()=>{for(let e of n)e()};return{getState:r,retry:async n=>{if(t.retryingStageIds.has(n))return;let r=new Set(t.retryingStageIds);r.add(n),t={retryingStageIds:r,error:null},i();try{await e.retry(n),await e.onSuccess()}catch(e){t={...t,error:e instanceof Error?e.message:String(e)}}finally{let e=new Set(t.retryingStageIds);e.delete(n),t={...t,retryingStageIds:e},i()}},clearError:()=>{t.error!==null&&(t={...t,error:null},i())},subscribe:e=>(n.add(e),()=>{n.delete(e)})}}function El(e,t){let n=(0,J.useRef)(e);n.current=e;let r=(0,J.useRef)(t);r.current=t;let i=(0,J.useRef)(null);i.current===null&&(i.current=Tl({retry:async e=>{await Oa(n.current,e)},onSuccess:()=>r.current()}));let a=i.current,[o,s]=(0,J.useState)(()=>a.getState());(0,J.useEffect)(()=>a.subscribe(()=>s(a.getState())),[a]);let c=(0,J.useCallback)(e=>void a.retry(e),[a]),l=(0,J.useCallback)(()=>a.clearError(),[a]);return{retryingStageIds:o.retryingStageIds,error:o.error,retry:c,clearError:l}}function Dl(e){let t={resumingStageIds:new Set,error:null},n=new Set,r=()=>t,i=()=>{for(let e of n)e()};return{getState:r,resume:async n=>{if(t.resumingStageIds.has(n))return;let r=new Set(t.resumingStageIds);r.add(n),t={resumingStageIds:r,error:null},i();try{await e.resume(n),await e.onSuccess()}catch(e){t={...t,error:e instanceof Error?e.message:String(e)}}finally{let e=new Set(t.resumingStageIds);e.delete(n),t={...t,resumingStageIds:e},i()}},clearError:()=>{t.error!==null&&(t={...t,error:null},i())},subscribe:e=>(n.add(e),()=>{n.delete(e)})}}function Ol(e,t){let n=(0,J.useRef)(e);n.current=e;let r=(0,J.useRef)(t);r.current=t;let i=(0,J.useRef)(null);i.current===null&&(i.current=Dl({resume:async e=>{await ka(n.current,e)},onSuccess:()=>r.current()}));let a=i.current,[o,s]=(0,J.useState)(a.getState);(0,J.useEffect)(()=>a.subscribe(()=>s(a.getState())),[a]);let c=(0,J.useCallback)(e=>{a.resume(e)},[a]);return{resumingStageIds:o.resumingStageIds,error:o.error,resume:c,clearError:a.clearError}}function kl(e){let t={submitting:!1,error:null},n=new Set,r=()=>t,i=()=>{for(let e of n)e()};return{getState:r,decide:async(n,r)=>{if(!t.submitting){t={submitting:!0,error:null},i();try{await e.submit(n,r),await e.onSuccess()}catch(e){t={...t,error:e instanceof Error?e.message:String(e)}}finally{t={...t,submitting:!1},i()}}},clearError:()=>{t.error!==null&&(t={...t,error:null},i())},subscribe:e=>(n.add(e),()=>{n.delete(e)})}}function Al(e,t){let n=(0,J.useRef)(e);n.current=e;let r=(0,J.useRef)(t);r.current=t;let i=(0,J.useRef)(null);i.current===null&&(i.current=kl({submit:async(e,t)=>{await La(n.current,e,t)},onSuccess:()=>r.current()}));let a=i.current,[o,s]=(0,J.useState)(()=>a.getState());(0,J.useEffect)(()=>a.subscribe(()=>s(a.getState())),[a]);let c=(0,J.useCallback)((e,t)=>void a.decide(e,t),[a]),l=(0,J.useCallback)(()=>a.clearError(),[a]);return{submitting:o.submitting,error:o.error,decide:c,clearError:l}}function jl(e){let t={abandoningStageId:null,error:null},n=!1,r=new Set,i=()=>t,a=()=>{for(let e of r)e()};return{getState:i,abandon:async r=>{if(!n&&(e.confirm?.(r)??window.confirm(`This stage will be marked failed. Retry stage will become available.`))){n=!0,t={abandoningStageId:r,error:null},a();try{await e.abandon(r),await e.onSuccess()}catch(e){t={...t,error:e instanceof Error?e.message:String(e)}}finally{n=!1,t={...t,abandoningStageId:null},a()}}},clearError:()=>{t.error!==null&&(t={...t,error:null},a())},subscribe:e=>(r.add(e),()=>{r.delete(e)})}}function Ml(e,t){let n=(0,J.useRef)(e);n.current=e;let r=(0,J.useRef)(t);r.current=t;let i=(0,J.useRef)(null);i.current===null&&(i.current=jl({abandon:async e=>{await Ma(n.current,e)},onSuccess:()=>r.current()}));let a=i.current,[o,s]=(0,J.useState)(()=>a.getState());(0,J.useEffect)(()=>a.subscribe(()=>s(a.getState())),[a]);let c=(0,J.useCallback)(e=>void a.abandon(e),[a]),l=(0,J.useCallback)(()=>a.clearError(),[a]);return{abandoningStageId:o.abandoningStageId,error:o.error,abandon:c,clearError:l}}function Nl({children:e,className:t,as:n=`span`}){let r=n,i=[`inline-flex items-center rounded-sm border border-[#ffffff1a] px-[5px] font-['Geist_Mono',monospace] text-[11px] leading-normal text-[var(--sf-text-3)]`,t].filter(Boolean).join(` `);return(0,Y.jsx)(r,{className:i,children:e})}function Pl(e){let t=`flex h-6 items-center rounded-full px-2 py-0 gap-[5px]`;return e===`needs`?`${t} border border-[#f5b5444d] bg-[#f5b5441f] text-[var(--sf-needs)]`:e===`running`?`${t} bg-[#6ca6ff1f] text-[var(--sf-running)]`:e===`ok`?`${t} bg-[#4cc38a1a] text-[#4cc38a]`:e===`fail`?`${t} bg-[#f2645a1a] text-[#f2645a]`:`${t} bg-[var(--sf-raised)] text-[var(--sf-text-3)]`}function Fl(e){let t=Ws(e),n=t?` ${t}`:``;return e===`needs`?`size-3 shrink-0 text-[#f5b544]${n}`:e===`running`?`size-3 shrink-0 text-[var(--sf-running)]${n}`:e===`ok`?`size-3 shrink-0 text-[#4cc38a]${n}`:e===`fail`?`size-3 shrink-0 text-[#f2645a]${n}`:`size-3 shrink-0${n}`}function Il({signal:e,label:t,elapsed:n,className:r}){let i=Es(),a=t??Us(e),o=Gs(e),s=Ws(e);if(i)return(0,Y.jsxs)(`span`,{className:`${Pl(e)}${r?` ${r}`:``}`,"aria-label":a,children:[(0,Y.jsx)(o,{className:Fl(e),"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`font-sans text-xs font-medium leading-normal`,children:a}),n?(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace] text-xs text-[var(--sf-text-3)]`,children:n}):null]});let c=[`sf-pill`,`sf-pill--${e}`,r].filter(Boolean).join(` `);return(0,Y.jsxs)(`span`,{className:c,"aria-label":a,children:[(0,Y.jsx)(o,{className:`sf-pill__icon${s?` ${s}`:``}`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`sf-pill__label`,children:a}),n?(0,Y.jsx)(`span`,{className:`sf-pill__elapsed sf-mono`,children:n}):null]})}function Ll(e,t,n){if(t===`earlier_today`||t===`earlier`){let t=Date.parse(e.created_at);return Number.isFinite(t)?new Date(t).toLocaleTimeString(void 0,{hour:`numeric`,minute:`2-digit`,hour12:!1}):`—`}let r=Cs(e.created_at,n);return r===`just now`?r:`${r} ago`}function Rl(e){let t=Bs(e);return t===`ok`?`bg-[var(--sf-ok)]`:t===`fail`?`bg-[var(--sf-fail)]`:t===`running`?`bg-[var(--sf-running)]`:t===`needs`?`bg-[var(--sf-needs)]`:t===`skipped`?`bg-[var(--sf-text-3)]`:`bg-[var(--sf-track-empty)]`}function zl({stages:e}){return e.length===0?null:(0,Y.jsx)(`div`,{className:`flex w-full gap-[3px]`,"aria-hidden":`true`,children:e.map(e=>(0,Y.jsx)(`div`,{className:`block h-1.5 flex-1 rounded-full ${Rl(e.status)}`},e.id))})}function Bl(e){return e.pipeline_path??e.task_path??void 0}function Vl(e){let t=e.pipeline_path;return t?(t.split(`/`).pop()??t).replace(/\.pipeline\.yaml$/i,``):e.pipeline_id||`—`}function Hl(e){let t=e.stages??[],n=t.length,r=Vl(e),i=e.waiting_stage_id??e.failed_stage_id;i||=t.find(e=>e.status===`running`)?.id,!i&&n>0&&(i=[...t].reverse().find(e=>e.status!==`pending`)?.id??t[t.length-1]?.id);let a=i?t.findIndex(e=>e.id===i):-1,o=a>=0?a+1:+(n>0),s=n||0,c=i??`—`,l=i?Bs(t.find(e=>e.id===i)?.status??`pending`):`idle`,u=l===`fail`?`text-[var(--sf-fail)]`:l===`needs`?`text-[var(--sf-needs)]`:l===`running`?`text-[var(--sf-running)]`:`text-[var(--sf-text-3)]`;return{pipelineId:r,stageLabel:s>0?`${c} · ${o}/${s}`:c,stageClass:u}}function Ul(e){if(e.waiting_summary)return{text:e.waiting_summary,className:`min-w-0 truncate text-[var(--sf-needs)] font-['Geist_Mono',monospace] text-xs leading-[1.33333]`,title:e.waiting_summary};if(e.failed_reason)return{text:e.failed_reason,className:`min-w-0 truncate text-[#e39790] font-['Geist_Mono',monospace] text-xs leading-[1.33333]`,title:e.failed_reason};let t=[Ss(e.run_id)].join(` · `);return{text:t,className:`min-w-0 truncate text-[var(--sf-text-3)] font-['Geist_Mono',monospace] text-xs leading-[1.33333]`,title:t}}function Wl(e){return es(e)}function Gl(e){return e.task_id??Ss(e.run_id)}function Kl({run:e,groupId:t,selected:n,now:r,onOpen:i,onAnswer:a,onRetry:o,retryBusy:s}){let c=js(e),l=Hs(e),u=Ul(e),d=Hl(e),f=Bl(e),p=e.failed_stage_id?e.stages?.find(t=>t.id===e.failed_stage_id):void 0,m=!!e.failed_stage_id&&p&&xl(p.status);return(0,Y.jsx)(el,{selected:n,needs:!!e.waiting_stage_id,onClick:i,className:`h-[44px] max-h-[44px] min-h-[44px] shrink-0 overflow-hidden px-0 py-0 hover:bg-[var(--sf-raised)]`,children:(0,Y.jsxs)(`div`,{className:nl,children:[(0,Y.jsx)(`div`,{className:`${il} flex`,children:(0,Y.jsx)(Il,{signal:l,label:qs(c)})}),(0,Y.jsxs)(`div`,{className:al,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-baseline gap-2 overflow-hidden`,children:[(0,Y.jsx)(`span`,{className:`shrink-0 font-['Geist_Mono',monospace] text-[13px] leading-[1.23077] text-[var(--sf-text-1)]`,children:Gl(e)}),(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-sans text-[13px] leading-[1.23077] text-[var(--sf-text-2)]`,children:Wl(e)})]}),(0,Y.jsx)(`p`,{className:u.className,title:u.title,children:u.text||`\xA0`})]}),(0,Y.jsxs)(`div`,{className:ol,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,Y.jsx)(`span`,{className:`truncate font-['Geist_Mono',monospace] text-xs leading-[1.33333] text-[var(--sf-text-2)]`,title:f,children:d.pipelineId}),(0,Y.jsx)(`span`,{className:`shrink-0 font-['Geist_Mono',monospace] text-xs leading-[1.33333] ${d.stageClass}`,children:d.stageLabel})]}),(0,Y.jsx)(zl,{stages:e.stages??[]})]}),(0,Y.jsx)(`div`,{className:sl,children:Ll(e,t,r)}),(0,Y.jsx)(`div`,{className:cl,children:yl(e.created_at,e.finished_at,e.updated_at,r)}),(0,Y.jsx)(`div`,{className:ll,children:`—`}),(0,Y.jsx)(`div`,{className:ul,children:bl(e.total_cost_usd)}),(0,Y.jsxs)(`div`,{className:dl,children:[e.waiting_stage_id?(0,Y.jsx)(`button`,{type:`button`,className:`flex h-8 items-center gap-2 rounded-lg border border-[#ffffff1a] bg-[var(--sf-raised)] px-3 font-sans text-[13px] font-medium text-[var(--sf-text-1)]`,onClick:e=>{e.stopPropagation(),a()},children:`Answer`}):null,m?(0,Y.jsxs)(`button`,{type:`button`,className:`flex h-8 items-center gap-2 rounded-lg border border-[#ffffff1a] bg-[var(--sf-raised)] px-3 font-sans text-[13px] font-medium text-[var(--sf-text-1)] disabled:opacity-50`,disabled:s,onClick:e=>{e.stopPropagation(),o()},children:[`Retry`,(0,Y.jsx)(Nl,{children:`R`})]}):null]})]})})}function ql({visibleRuns:e,hints:t}){let n=e.reduce((e,t)=>e+(t.total_cost_usd??0),0),r=e.some(e=>e.total_cost_usd!==void 0);return(0,Y.jsxs)(`footer`,{className:`flex h-10 shrink-0 items-center justify-between border-t border-t-[#ffffff12] bg-[var(--sf-rail)] px-5`,children:[(0,Y.jsxs)(`span`,{className:`flex items-center gap-2 font-['Geist_Mono',monospace] text-xs text-[var(--sf-text-1)]`,children:[e.length,` run`,e.length===1?``:`s`,r?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`span`,{className:`text-[var(--sf-text-3)]`,children:`·`}),(0,Y.jsxs)(`span`,{className:`text-[var(--sf-text-2)]`,children:[Xs(n)??``,` total`]})]}):null]}),t?(0,Y.jsx)(`div`,{className:`flex items-center gap-3.5 text-xs text-[var(--sf-text-3)]`,children:t}):null]})}function Jl(){return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`span`,{className:`flex items-center gap-[5px]`,children:[(0,Y.jsx)(Nl,{children:`J`}),(0,Y.jsx)(Nl,{children:`K`}),`move`]}),(0,Y.jsxs)(`span`,{className:`flex items-center gap-[5px]`,children:[(0,Y.jsx)(Nl,{children:`Enter`}),`open`]}),(0,Y.jsxs)(`span`,{className:`flex items-center gap-[5px]`,children:[(0,Y.jsx)(Nl,{children:`R`}),`retry`]}),(0,Y.jsxs)(`span`,{className:`flex items-center gap-[5px]`,children:[(0,Y.jsx)(Nl,{children:`A`}),`answer`]})]})}function Yl(e){return e.flatMap(e=>e.runs)}function Xl(){return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{className:`${rl} opacity-40`,"aria-hidden":`true`,children:(0,Y.jsx)(`span`,{className:`h-3 w-16 rounded bg-[var(--sf-raised)]`})}),Array.from({length:6},(e,t)=>(0,Y.jsxs)(`div`,{className:`flex h-11 items-center gap-3 border-b border-b-[#ffffff12] px-5`,"aria-hidden":`true`,children:[(0,Y.jsx)(`div`,{className:`h-6 w-20 rounded-full bg-[var(--sf-raised)]`}),(0,Y.jsx)(`div`,{className:`h-3 min-w-0 flex-1 rounded bg-[var(--sf-raised)]`})]},t))]})}function Zl({onOpen:e,onNew:t}){let{snapshot:n,error:r,loading:i}=Jo(),a=Yo(),[o,s]=(0,J.useState)(`all`),[c,l]=(0,J.useState)(``),[u,d]=(0,J.useState)(``),[f,p]=(0,J.useState)(null),[m,h]=(0,J.useState)(null),[g,_]=(0,J.useState)(null),[v,y]=(0,J.useState)(()=>Date.now());(0,J.useEffect)(()=>{let e=window.setInterval(()=>y(Date.now()),3e4);return()=>window.clearInterval(e)},[]);let b=hs(n),x=b.waiting,S=rc(n.runs,v),C=(0,J.useMemo)(()=>u?ms(n,u):n.runs,[n,u]),w=(0,J.useMemo)(()=>{let e=c.trim().toLowerCase();return e?C.filter(t=>[t.run_id,t.task_id,t.pipeline_id,t.waiting_summary,t.failed_reason].filter(Boolean).join(` `).toLowerCase().includes(e)):C},[C,c]),T=(0,J.useMemo)(()=>tc(w,o,v),[w,o,v]),E=(0,J.useMemo)(()=>Yl(T),[T]);(0,J.useEffect)(()=>{if(E.length===0){p(null);return}(!f||!E.some(e=>e.run_id===f))&&p(E[0].run_id)},[E,f]);let D=f?E.findIndex(e=>e.run_id===f):-1,O=D>=0?E[D]:null,k=(0,J.useCallback)(e=>{if(E.length===0)return;let t=((D>=0?D:0)+e+E.length)%E.length;p(E[t].run_id)},[E,D]),A=(0,J.useCallback)(t=>{e(t.run_id)},[e]),j=(0,J.useCallback)(e=>{e.waiting_stage_id&&(window.location.hash=`#${gc(e.run_id,e.waiting_stage_id)}`)},[]),M=(0,J.useCallback)(async e=>{if(e.failed_stage_id){h(e.run_id),_(null);try{await Oa(e.run_id,e.failed_stage_id),a.refresh()}catch(e){_(e instanceof Error?e.message:String(e))}finally{h(null)}}},[a]);Yc([{key:`j`,scope:`runs`,when:()=>E.length>0,handler:e=>{e.preventDefault(),k(1)}},{key:`k`,scope:`runs`,when:()=>E.length>0,handler:e=>{e.preventDefault(),k(-1)}},{key:`enter`,scope:`runs`,when:()=>!!O,handler:e=>{e.preventDefault(),O&&A(O)}},{key:`r`,scope:`runs`,when:()=>!!O?.failed_stage_id,handler:e=>{e.preventDefault(),O&&M(O)}},{key:`a`,scope:`runs`,when:()=>!!O?.waiting_stage_id,handler:e=>{e.preventDefault(),O&&j(O)}}],`runs`);let N=(0,J.useMemo)(()=>[...new Set(n.runs.map(e=>e.pipeline_id))].sort(),[n.runs]),P=[{id:`all`,label:`All`,count:b.all},{id:`waiting`,label:`Needs you`,count:b.waiting},{id:`running`,label:`Running`,count:b.running},{id:`failed`,label:`Failed`,count:b.failed},{id:`finished`,label:`Succeeded`,count:b.finished}],F=!i&&E.length===0;return(0,Y.jsxs)(`div`,{className:`flex min-h-full min-w-0 flex-1 flex-col`,children:[(0,Y.jsx)($c,{title:`Runs`,subtitle:`${S} this week · ${x} waiting on you`,actions:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`button`,{type:`button`,className:`sf-btn sf-btn--secondary`,disabled:!0,children:`Filter`}),(0,Y.jsx)(`button`,{type:`button`,className:`sf-btn sf-btn--primary`,onClick:t,children:`Start a run`})]})}),(0,Y.jsx)(Zc,{tabs:P,activeId:o,onChange:e=>s(e)}),(0,Y.jsxs)(`div`,{className:`flex h-12 shrink-0 flex-wrap items-center justify-between gap-3 border-b border-b-[#ffffff12] px-5`,children:[(0,Y.jsxs)(`label`,{className:`flex items-center gap-2 text-[11px] text-[var(--sf-text-3)]`,children:[(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace] uppercase`,children:`Pipeline`}),(0,Y.jsxs)(`select`,{className:`min-w-[160px] rounded-lg border border-[#ffffff1a] bg-[var(--sf-raised)] px-2 py-1.5 text-[13px] text-[var(--sf-text-1)]`,value:u,onChange:e=>d(e.target.value),children:[(0,Y.jsx)(`option`,{value:``,children:`All pipelines`}),N.map(e=>(0,Y.jsx)(`option`,{value:e,children:e},e))]})]}),(0,Y.jsxs)(`label`,{className:`flex min-w-[220px] flex-1 items-center gap-2 text-[11px] text-[var(--sf-text-3)]`,children:[(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace] uppercase`,children:`Search`}),(0,Y.jsx)(`input`,{type:`search`,className:`min-w-0 flex-1 rounded-lg border border-[#ffffff1a] bg-[var(--sf-raised)] px-2 py-1.5 text-[13px] text-[var(--sf-text-1)]`,value:c,onChange:e=>l(e.target.value),placeholder:`Search runs, tasks, ids`})]})]}),r?(0,Y.jsxs)(`p`,{className:`px-5 py-2 text-[13px] text-[var(--sf-fail)]`,children:[`Could not load runs: `,r]}):null,g?(0,Y.jsx)(`p`,{className:`px-5 py-2 text-[13px] text-[var(--sf-fail)]`,children:g}):null,(0,Y.jsx)(pl,{}),i?(0,Y.jsx)(Xl,{}):F?(0,Y.jsx)(`p`,{className:`px-5 py-4 text-[13px] text-[var(--sf-text-2)]`,children:`No runs match this filter.`}):(0,Y.jsx)(tl,{className:`min-w-0 flex-1`,children:T.map(e=>(0,Y.jsx)(gl,{groupId:e.id,label:e.label,runs:e.runs,now:v,children:e.runs.map(t=>(0,Y.jsx)(Kl,{run:t,groupId:e.id,selected:t.run_id===f,now:v,onOpen:()=>A(t),onAnswer:()=>j(t),onRetry:()=>void M(t),retryBusy:m===t.run_id},t.run_id))},e.id))}),(0,Y.jsx)(ql,{visibleRuns:E,hints:(0,Y.jsx)(Jl,{})})]})}var Ql={all:e=>`All ${e.all}`,waiting:e=>`Waiting ${e.waiting}`,running:e=>`Running ${e.running}`,failed:e=>`Failed ${e.failed}`,finished:e=>`Finished ${e.finished}`};function $l(e){return e===void 0?null:e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KiB`:e<1073741824?`${(e/1048576).toFixed(1)} MiB`:`${(e/1073741824).toFixed(2)} GiB`}function eu({onOpen:e,onNew:t}){let{snapshot:n,error:r,loading:i}=Jo(),[a,o]=(0,J.useState)(`all`),s=n.runs,c=hs(n),l=os(n),u=(0,J.useMemo)(()=>a===`all`?s:{waiting:l.waiting,running:l.inFlight,failed:l.broken,finished:l.finished}[a],[l,a,s]);return(0,Y.jsxs)(`div`,{className:`main__inner main__inner--wide`,children:[(0,Y.jsxs)(`div`,{className:`page-head`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`h1`,{children:`Runs`}),(0,Y.jsx)(`p`,{children:`Every row carries its own chain, so you read progress as topology rather than a status word.`})]}),(0,Y.jsx)(`button`,{className:`btn btn--primary`,onClick:t,children:`Start a run`})]}),r?(0,Y.jsxs)(`p`,{style:{color:`var(--color-text-red)`,marginBottom:`var(--spacing-4)`},children:[`Could not load runs: `,r]}):null,(0,Y.jsx)(`div`,{className:`filters`,children:[`all`,`waiting`,`running`,`failed`,`finished`].map(e=>(0,Y.jsx)(`button`,{className:`tab`,"data-active":a===e?`true`:void 0,onClick:()=>o(e),children:Ql[e](c)},e))}),!i&&s.length===0?(0,Y.jsx)(`div`,{className:`empty-hint`,children:`No runs yet. Start a pipeline from Start a run, or use sf run from the CLI.`}):null,u.map(t=>{let n=Ms(js(t)),r=$l(t.disk_bytes);return(0,Y.jsxs)(`a`,{className:`rrow`,"data-s":n&&n!==`running`?n:void 0,href:`#/runs/${t.run_id}`,onClick:n=>{n.preventDefault(),e(t.run_id)},children:[(0,Y.jsxs)(`span`,{className:`rrow__id`,children:[(0,Y.jsx)(`span`,{className:`rrow__task`,children:es(t)}),(0,Y.jsxs)(`span`,{className:`rrow__pipe`,children:[$o(t),t.binding?` · ${as(t.binding)}`:``,` · `,t.run_id.slice(0,8)]})]}),(0,Y.jsxs)(`span`,{className:`rrow__right`,children:[r?(0,Y.jsx)(`span`,{className:`rrow__disk`,title:`Cached disk usage`,children:r}):null,(0,Y.jsx)(Zs,{costUsd:t.total_cost_usd}),(0,Y.jsxs)(`span`,{className:`status${n&&n!==`running`?` status--${n}`:``}`,children:[(0,Y.jsx)(`span`,{className:`dot${n?` dot--${n}`:``}`}),` `,Cs(t.updated_at??t.created_at)]})]}),(0,Y.jsx)(`span`,{className:`rrow__track`,children:(0,Y.jsx)(Ys,{stages:t.stages??[],label:ws(t)})})]},t.run_id)}),i?(0,Y.jsx)(`p`,{className:`muted`,style:{padding:`var(--spacing-4)`},children:`Loading runs…`}):null]})}function tu({onOpen:e,onNew:t}){return Es()?(0,Y.jsx)(Zl,{onOpen:e,onNew:t}):(0,Y.jsx)(eu,{onOpen:e,onNew:t})}function nu(e,t){return e==null?`fallback:${typeof t==`function`?t():t}`:`id:${e}`}function ru(e,t){let n={...e,...t},r=[e.className,t.className].filter(Boolean).join(` `);r?n.className=r:delete n.className;let i=t.style&&e.style?{...e.style,...t.style}:t.style||e.style;return i?n.style=i:delete n.style,n}function Q(e,t,n,r){if(typeof e==`string`){let i=e,a=t??{className:``},o=n,s=a.className?`${i} ${a.className}`:i;o&&(s=`${s} ${o}`);let c=r&&a.style?{...a.style,...r}:r||a.style;return{...a,className:s,style:c}}let i=ru(e,typeof t==`string`?{className:t}:t??{});return typeof n==`string`?i=ru(i,{className:n}):n!=null&&(i=ru(i,{style:n})),r!=null&&(i=ru(i,{style:r})),i}function iu(...e){return t=>{let n=[];for(let r of e)if(typeof r==`function`){let e=r(t);n.push(typeof e==`function`?e:()=>r(null))}else if(r!=null){let e=r;e.current=t,n.push(()=>{e.current=null})}if(t!=null&&n.length>0)return()=>{for(let e of n)e()}}}function au(e){let t=e.auxiliaryData;return typeof t?.group==`string`?t.group:void 0}function ou(e){if(!e.some(e=>au(e)!=null))return[{heading:null,items:e}];let t=[],n=new Map,r=[];for(let i of e){let e=au(i);e==null?r.push(i):(n.has(e)||(t.push(e),n.set(e,[])),n.get(e)?.push(i))}let i=t.map(e=>({heading:e,items:n.get(e)??[]}));return r.length>0&&i.push({heading:null,items:r}),i}var su=null,cu=new Map;function lu(){return su||=new ResizeObserver(e=>{for(let t of e){let e=cu.get(t.target);e&&e(t)}}),su}function uu(e,t){cu.set(e,t),lu().observe(e),t({target:e})}function du(e){cu.delete(e),su&&(su.unobserve(e),cu.size===0&&(su.disconnect(),su=null))}function fu(e){return e!=null&&typeof e!=`boolean`&&e!==``}var pu={kbCHJM:`x1nrll8i`,k3aq6I:`xsqj5wx`,$$css:!0},mu={mirror:{k3aq6I:`xgtlewx`,$$css:!0},centerInline:e=>[pu,{"--x-transform":`translate(-50%, ${e})`==null?void 0:`translate(-50%, ${e})`}]},hu=`data-astryx-live-region`,gu=`position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;inset-block-start:0;inset-inline-start:0;pointer-events:none;user-select:none;`,_u=2e3,vu={polite:null,assertive:null};function yu(e){let t=vu[e];t!=null&&(clearTimeout(t),vu[e]=null)}function bu(e,t){yu(e),vu[e]=setTimeout(()=>{vu[e]=null,t.textContent=``},_u)}var xu=null;function Su(e){let t=document.createElement(`div`);return t.setAttribute(hu,e),t.setAttribute(`aria-live`,e),t.setAttribute(`aria-atomic`,`true`),t.setAttribute(`role`,e===`assertive`?`alert`:`status`),t.style.cssText=gu,document.body.appendChild(t),t}function Cu(){return typeof document>`u`?null:xu?(xu.polite.isConnected||document.body.appendChild(xu.polite),xu.assertive.isConnected||document.body.appendChild(xu.assertive),xu):(xu={polite:Su(`polite`),assertive:Su(`assertive`)},xu)}function wu(e,t){let n=Cu();if(!n)return;let r=t===`assertive`?n.assertive:n.polite;r.textContent=``,requestAnimationFrame(()=>{r.textContent=e}),bu(t,r)}function Tu(e){if(yu(e),!xu)return;let t=e===`assertive`?xu.assertive:xu.polite;t.textContent=``}function Eu(){return(0,J.useCallback)((e,t=`polite`)=>{if(!e){Tu(t);return}wu(e,t)},[])}var Du=2e3;function Ou(e={}){let{announce:t,resetAfterMs:n=Du}=e,r=Eu(),[i,a]=(0,J.useState)(!1),o=(0,J.useRef)(null);return(0,J.useEffect)(()=>()=>{o.current!=null&&clearTimeout(o.current)},[]),{copy:(0,J.useCallback)(async e=>{try{return await navigator.clipboard.writeText(e),a(!0),t&&r(t),o.current!=null&&clearTimeout(o.current),o.current=setTimeout(()=>{o.current=null,a(!1)},n),!0}catch{return!1}},[r,t,n]),isCopied:i}}var ku={xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:1.5,strokeLinecap:`round`,strokeLinejoin:`round`,width:`1em`,height:`1em`,"aria-hidden":!0},Au={xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`currentColor`,width:`1em`,height:`1em`,"aria-hidden":!0},ju={close:(0,Y.jsx)(`svg`,{...ku,children:(0,Y.jsx)(`path`,{d:`M6 6l12 12M6 18L18 6`})}),chevronDown:(0,Y.jsx)(`svg`,{...ku,children:(0,Y.jsx)(`path`,{d:`M6 9l6 6 6-6`})}),chevronLeft:(0,Y.jsx)(`svg`,{...ku,children:(0,Y.jsx)(`path`,{d:`M15 6l-6 6 6 6`})}),chevronRight:(0,Y.jsx)(`svg`,{...ku,children:(0,Y.jsx)(`path`,{d:`M9 6l6 6-6 6`})}),chevronsLeft:(0,Y.jsx)(`svg`,{...ku,children:(0,Y.jsx)(`path`,{d:`M18 6l-6 6 6 6M11 6l-6 6 6 6`})}),chevronsRight:(0,Y.jsx)(`svg`,{...ku,children:(0,Y.jsx)(`path`,{d:`M6 6l6 6-6 6M13 6l6 6-6 6`})}),check:(0,Y.jsx)(`svg`,{...ku,children:(0,Y.jsx)(`path`,{d:`M5 13l4 4L19 7`})}),success:(0,Y.jsx)(`svg`,{...Au,children:(0,Y.jsx)(`path`,{fillRule:`evenodd`,clipRule:`evenodd`,d:`M12 3a9 9 0 100 18 9 9 0 000-18zm4.06 6.56a.75.75 0 00-1.12-1l-3.94 4.4-1.94-1.94a.75.75 0 00-1.06 1.06l2.5 2.5a.75.75 0 001.09-.03l4.47-5z`})}),error:(0,Y.jsx)(`svg`,{...Au,children:(0,Y.jsx)(`path`,{fillRule:`evenodd`,clipRule:`evenodd`,d:`M12 3a9 9 0 100 18 9 9 0 000-18zm-2.47 5.47a.75.75 0 00-1.06 1.06L10.94 12l-2.47 2.47a.75.75 0 101.06 1.06L12 13.06l2.47 2.47a.75.75 0 101.06-1.06L13.06 12l2.47-2.47a.75.75 0 00-1.06-1.06L12 10.94l-2.47-2.47z`})}),warning:(0,Y.jsx)(`svg`,{...Au,children:(0,Y.jsx)(`path`,{fillRule:`evenodd`,clipRule:`evenodd`,d:`M10.29 3.86L2.07 19.05A2 2 0 003.78 22h16.44a2 2 0 001.71-2.95L13.71 3.86a2 2 0 00-3.42 0zM12 9a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0112 9zm0 9a1 1 0 100-2 1 1 0 000 2z`})}),info:(0,Y.jsx)(`svg`,{...Au,children:(0,Y.jsx)(`path`,{fillRule:`evenodd`,clipRule:`evenodd`,d:`M12 3a9 9 0 100 18 9 9 0 000-18zm0 4a1 1 0 100 2 1 1 0 000-2zm-.75 3.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5z`})}),calendar:(0,Y.jsxs)(`svg`,{...ku,children:[(0,Y.jsx)(`rect`,{x:`3`,y:`4`,width:`18`,height:`18`,rx:`2`}),(0,Y.jsx)(`path`,{d:`M16 2v4M8 2v4M3 10h18`})]}),clock:(0,Y.jsxs)(`svg`,{...ku,children:[(0,Y.jsx)(`circle`,{cx:`12`,cy:`12`,r:`9`}),(0,Y.jsx)(`path`,{d:`M12 7v5l3 3`})]}),externalLink:(0,Y.jsxs)(`svg`,{...ku,children:[(0,Y.jsx)(`path`,{d:`M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6`}),(0,Y.jsx)(`path`,{d:`M15 3h6v6`}),(0,Y.jsx)(`path`,{d:`M10 14L21 3`})]}),menu:(0,Y.jsx)(`svg`,{...ku,strokeWidth:2,children:(0,Y.jsx)(`path`,{d:`M4 6h16M4 12h16M4 18h16`})}),moreHorizontal:(0,Y.jsxs)(`svg`,{...Au,children:[(0,Y.jsx)(`circle`,{cx:`5`,cy:`12`,r:`1.5`}),(0,Y.jsx)(`circle`,{cx:`12`,cy:`12`,r:`1.5`}),(0,Y.jsx)(`circle`,{cx:`19`,cy:`12`,r:`1.5`})]}),search:(0,Y.jsxs)(`svg`,{...ku,children:[(0,Y.jsx)(`circle`,{cx:`11`,cy:`11`,r:`8`}),(0,Y.jsx)(`path`,{d:`M21 21l-4.35-4.35`})]}),arrowUp:(0,Y.jsx)(`svg`,{...ku,children:(0,Y.jsx)(`path`,{d:`M12 19V5m0 0l-7 7m7-7l7 7`})}),arrowDown:(0,Y.jsx)(`svg`,{...ku,children:(0,Y.jsx)(`path`,{d:`M12 5v14m0 0l7-7m-7 7l-7-7`})}),arrowsUpDown:(0,Y.jsx)(`svg`,{...ku,children:(0,Y.jsx)(`path`,{d:`M3 7.5L7.5 3m0 0L12 7.5M7.5 3v13.5m13.5 0L16.5 21m0 0L12 16.5m4.5 4.5V7.5`})}),funnel:(0,Y.jsx)(`svg`,{...ku,children:(0,Y.jsx)(`path`,{d:`M12 3c2.755 0 5.455.232 8.083.678.533.09.917.556.917 1.096v1.044a2.25 2.25 0 01-.659 1.591l-5.432 5.432a2.25 2.25 0 00-.659 1.591v2.927a2.25 2.25 0 01-1.244 2.013L9.75 21v-6.568a2.25 2.25 0 00-.659-1.591L3.659 7.409A2.25 2.25 0 013 5.818V4.774c0-.54.384-1.006.917-1.096A48.32 48.32 0 0112 3z`})}),eyeSlash:(0,Y.jsx)(`svg`,{...ku,children:(0,Y.jsx)(`path`,{d:`M3.98 8.223A10.477 10.477 0 001.934 12c1.292 4.338 5.31 7.5 10.066 7.5.993 0 1.953-.138 2.863-.395M6.228 6.228A10.45 10.45 0 0112 4.5c4.756 0 8.773 3.162 10.065 7.498a10.523 10.523 0 01-4.293 5.774M6.228 6.228L3 3m3.228 3.228l3.65 3.65m7.894 7.894L21 21m-3.228-3.228l-3.65-3.65m0 0a3 3 0 10-4.243-4.243m4.242 4.242L9.88 9.88`})}),viewColumns:(0,Y.jsx)(`svg`,{...ku,children:(0,Y.jsx)(`path`,{d:`M9 4.5v15m6-15v15m-10.875 0h15.75c.621 0 1.125-.504 1.125-1.125V5.625c0-.621-.504-1.125-1.125-1.125H4.125C3.504 4.5 3 5.004 3 5.625v12.75c0 .621.504 1.125 1.125 1.125z`})}),copy:(0,Y.jsxs)(`svg`,{...ku,children:[(0,Y.jsx)(`path`,{d:`M8 4v12a2 2 0 002 2h8a2 2 0 002-2V7.242a2 2 0 00-.602-1.43L16.083 2.57A2 2 0 0014.685 2H10a2 2 0 00-2 2z`}),(0,Y.jsx)(`path`,{d:`M16 18v2a2 2 0 01-2 2H6a2 2 0 01-2-2V9a2 2 0 012-2h2`})]}),checkDouble:(0,Y.jsxs)(`svg`,{...ku,children:[(0,Y.jsx)(`path`,{d:`M2 13l4 4L14 7`}),(0,Y.jsx)(`path`,{d:`M9 13l4 4L21 7`})]}),wrench:(0,Y.jsx)(`svg`,{...ku,children:(0,Y.jsx)(`path`,{d:`M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z`})}),stop:(0,Y.jsx)(`svg`,{...Au,children:(0,Y.jsx)(`rect`,{x:`6`,y:`6`,width:`12`,height:`12`,rx:`2`})}),microphone:(0,Y.jsxs)(`svg`,{...ku,children:[(0,Y.jsx)(`path`,{d:`M12 2a3 3 0 00-3 3v6a3 3 0 006 0V5a3 3 0 00-3-3z`}),(0,Y.jsx)(`path`,{d:`M19 10v1a7 7 0 01-14 0v-1`}),(0,Y.jsx)(`path`,{d:`M12 18v4m-4 0h8`})]})},Mu={};function Nu(e){return e==null?null:typeof e==`string`?fn(e)?.icons??null:e.icons??null}function Pu(e,t){return Nu(t)?.[e]??Mu[e]??ju[e]}var Fu={root:{kmuXW:`x2lah0s`,$$css:!0},span:{k1xSpc:`x3nfvp2`,kGNEyG:`x6s0dn4`,kjj79g:`xl56j7k`,kmuXW:`x2lah0s`,$$css:!0}},Iu={primary:{kMwMTN:`xtbr613`,$$css:!0},secondary:{kMwMTN:`xv9yike`,$$css:!0},tertiary:{kMwMTN:`xv9yike`,$$css:!0},disabled:{kMwMTN:`xqa6c3m`,$$css:!0},accent:{kMwMTN:`xqwr325`,$$css:!0},success:{kMwMTN:`xtjic6`,$$css:!0},error:{kMwMTN:`xjt36v0`,$$css:!0},warning:{kMwMTN:`xs3pv69`,$$css:!0},inherit:{kMwMTN:`x1heor9g`,$$css:!0},blue:{kMwMTN:`x1fns2mt`,$$css:!0},red:{kMwMTN:`xeffzf7`,$$css:!0},green:{kMwMTN:`xmxeech`,$$css:!0},gray:{kMwMTN:`x1eyinzz`,$$css:!0},cyan:{kMwMTN:`x157w0xa`,$$css:!0},teal:{kMwMTN:`x1f3zxcb`,$$css:!0},yellow:{kMwMTN:`x1g6zdft`,$$css:!0},orange:{kMwMTN:`xxu74a4`,$$css:!0},pink:{kMwMTN:`x1kxxfg5`,$$css:!0},purple:{kMwMTN:`xzdw94u`,$$css:!0}},Lu={xsm:{kzqmXN:`x1jw3ynk`,kZKoxP:`xvle69y`,$$css:!0},sm:{kzqmXN:`xcdlrvm`,kZKoxP:`x1l36t39`,$$css:!0},md:{kzqmXN:`xwqq7k2`,kZKoxP:`xmll18r`,$$css:!0},lg:{kzqmXN:`xp8d6y2`,kZKoxP:`xam5rvr`,$$css:!0}},Ru={xsm:{kzqmXN:`x1jw3ynk`,kZKoxP:`xvle69y`,kGuDYH:`xboafo0`,$$css:!0},sm:{kzqmXN:`xcdlrvm`,kZKoxP:`x1l36t39`,kGuDYH:`x1jchvi3`,$$css:!0},md:{kzqmXN:`xwqq7k2`,kZKoxP:`xmll18r`,kGuDYH:`x1603h9y`,$$css:!0},lg:{kzqmXN:`xp8d6y2`,kZKoxP:`xam5rvr`,kGuDYH:`xngnso2`,$$css:!0}};function zu(e){return e!=null&&e!==``?{role:`img`,"aria-label":e}:{"aria-hidden":`true`}}function Bu({icon:e,color:t=`inherit`,size:n=`md`,label:r,ref:i,className:a,style:o,xstyle:s,...c}){let l=zu(r);return typeof e==`string`?(0,Y.jsx)(Vu,{name:e,color:t,size:n,a11yProps:l,className:a,style:o,xstyle:s,spanProps:c}):(0,Y.jsx)(e,{ref:i,...l,...Q(q(`icon`,{size:n,color:t}),K(Fu.root,Iu[t],Lu[n],s),a??void 0,o),...c})}Bu.displayName=`Icon`;function Vu({name:e,color:t,size:n,a11yProps:r,className:i,style:a,xstyle:o,spanProps:s}){let c=Pu(e,fr());if(c==null)return null;let l=s??{};return(0,Y.jsx)(`span`,{...r,...l,...Q(q(`icon`,{size:n,color:t}),K(Fu.span,Iu[t],Ru[n],o),i??void 0,a),children:c})}function Hu(e,t){return typeof e==`string`||typeof e==`function`||typeof e==`object`&&e&&`render`in e?(0,Y.jsx)(Bu,{icon:e,...t}):e}function Uu(e){return Pu(e,fr())}var Wu={primary:{kMwMTN:`x1tgivj0`,$$css:!0},secondary:{kMwMTN:`xv1l7n4`,$$css:!0},disabled:{kMwMTN:`xnbbluu`,$$css:!0},placeholder:{kMwMTN:`xv1l7n4`,$$css:!0},accent:{kMwMTN:`xjse4m1`,$$css:!0},inherit:{kMwMTN:`x1heor9g`,$$css:!0}},Gu={normal:{k63SB2:`x1sodnla`,$$css:!0},medium:{k63SB2:`x1e4wzip`,$$css:!0},semibold:{k63SB2:`x2mo6ok`,$$css:!0},bold:{k63SB2:`x1lvx875`,$$css:!0}},Ku={body:{k63SB2:`xxovm9e`,$$css:!0},large:{k63SB2:`x149oux8`,$$css:!0},label:{k63SB2:`xmhvcl5`,$$css:!0},code:{k63SB2:`xx3eeay`,$$css:!0},supporting:{k63SB2:`xv8on6e`,$$css:!0},"display-1":{k63SB2:`x1txul5o`,$$css:!0},"display-2":{k63SB2:`x1y36c3f`,$$css:!0},"display-3":{k63SB2:`x1on40hk`,$$css:!0},inherit:{k63SB2:`x1pd3egz`,$$css:!0}},qu={body:{kGuDYH:`xjm74w1`,kLWn49:`xw6l6zx`,$$css:!0},large:{kGuDYH:`x18juvz8`,kLWn49:`xf74fhv`,$$css:!0},label:{kGuDYH:`xcr08ib`,kLWn49:`x1kq96og`,$$css:!0},code:{kGuDYH:`xp03k98`,kLWn49:`x17iicif`,kMv6JI:`x9m5x89`,$$css:!0},supporting:{kGuDYH:`x141an7d`,kLWn49:`x1ltkj2j`,$$css:!0},"display-1":{kGuDYH:`xsub3ws`,kLWn49:`x112ttwr`,$$css:!0},"display-2":{kGuDYH:`x1yego12`,kLWn49:`xh0iwvy`,$$css:!0},"display-3":{kGuDYH:`xlgnzhf`,kLWn49:`x1ujwuaq`,$$css:!0},inherit:{kGuDYH:`x1qlqyl8`,kLWn49:`x15bjb6t`,$$css:!0}},Ju={"4xs":{kGuDYH:`xxc45ev`,$$css:!0},"3xs":{kGuDYH:`x10p7juq`,$$css:!0},"2xs":{kGuDYH:`x16a80zy`,$$css:!0},xsm:{kGuDYH:`x51wmvv`,$$css:!0},sm:{kGuDYH:`x1eqnyfr`,$$css:!0},base:{kGuDYH:`x1j29vfg`,$$css:!0},lg:{kGuDYH:`xc7cgfe`,$$css:!0},xl:{kGuDYH:`x1wqms48`,$$css:!0},"2xl":{kGuDYH:`xhs0kqb`,$$css:!0},"3xl":{kGuDYH:`x10srzze`,$$css:!0},"4xl":{kGuDYH:`xqcvi3d`,$$css:!0}},Yu={inline:{k1xSpc:`xt0psk2`,$$css:!0},block:{k1xSpc:`x1lliihq`,$$css:!0}},Xu={singleLine:{kVQacm:`xb3r6kr`,kg5iWk:`xlyipyv`,khDVqt:`xuxw1ft`,k1xSpc:`x1lliihq`,$$css:!0},multiLine:{kVQacm:`xb3r6kr`,k1xSpc:`x104kibb`,kgKLqz:`x1ua5tub`,$$css:!0}},Zu={"break-word":{kTgw9:`x1lldw8n`,kHjlTd:`x1mzt3pk`,$$css:!0},"break-all":{kTgw9:`x1yn0g08`,$$css:!0}},Qu={wrap:{kN2L0X:`xk4td0m`,$$css:!0},nowrap:{kN2L0X:`xebhuq6`,$$css:!0},balance:{kN2L0X:`x1w2vvpw`,$$css:!0},pretty:{kN2L0X:`x1fzhlzt`,$$css:!0}},$u={enabled:{kxwWH2:`x1b2iylo`,kzeHkT:`xwgcxoh`,k1xSpc:`x1lliihq`,$$css:!0}},ed={strikethrough:{kybGjl:`xmqliwb`,$$css:!0}},td={enabled:{kcqcaj:`xss6m8b`,$$css:!0}},nd={start:{k9WMMc:`x1yc453h`,$$css:!0},center:{k9WMMc:`x2b8uid`,$$css:!0},end:{k9WMMc:`xp4054r`,$$css:!0}},rd={content:{ks0D6T:`xw5ewwj`,kTgw9:`x13faqbe`,$$css:!0}};function id(e){let{maxLines:t}=e,[n,r]=(0,J.useState)(!1),[i,a]=(0,J.useState)(``),o=(0,J.useRef)(null),s=(0,J.useCallback)(e=>{if(t===0){r(!1);return}if(a(e.textContent??``),t===1)r(e.scrollWidth>e.offsetWidth);else{let t=e.scrollHeight;try{let n=document.createRange();n.selectNodeContents(e),t=n.getBoundingClientRect().height,n.detach()}catch{}r(t>e.offsetHeight)}},[t]);return{ref:(0,J.useCallback)(e=>{o.current&&du(o.current),o.current=e,e&&t>0?typeof ResizeObserver<`u`?uu(e,()=>{s(e)}):s(e):(r(!1),a(``))},[t,s]),isTruncated:n,fullText:i}}var ad=(0,J.lazy)(async()=>at(()=>import(`./Tooltip-DrpoRRNi.js`).then(e=>e.n).then(e=>({default:e.Tooltip})),__vite__mapDeps([0,1]))),od={body:`primary`,large:`primary`,label:`primary`,supporting:`secondary`,code:`primary`,"display-1":`primary`,"display-2":`primary`,"display-3":`primary`,inherit:`inherit`};function sd(e){return e in qu?e:`body`}function cd(e){return e in Wu?e:`primary`}function ld({type:e=`body`,size:t,color:n,weight:r,display:i=`inline`,maxLines:a=0,hasTruncateTooltip:o=!0,wordBreak:s,textWrap:c,justify:l=`start`,hasCapsize:u=!1,hasStrikethrough:d=!1,hasTabularNumbers:f=!1,xstyle:p,className:m,style:h,as:g=`span`,children:_,ref:v,...y}){let b=n??od[e]??`primary`,x=sd(e),S=cd(b),C=s??(a===1?`break-all`:`break-word`),w=a>0||u?`block`:i,T=id({maxLines:a}),E=typeof o==`string`?o:`above`,D=a>0&&o!==!1&&T.isTruncated,O=(0,J.useRef)(null),k=a>1?{WebkitLineClamp:a}:void 0;return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(g,{ref:iu(v,T.ref,O),...Q(q(`text`,{type:e,size:t,color:b}),K(Wu[S],qu[x],t&&Ju[t],Ku[x],r&&Gu[r],a===1?Xu.singleLine:a>1?Xu.multiLine:Yu[w],a>0&&Zu[C],c&&Qu[c],l!==`start`&&nd[l],u&&$u.enabled,d&&ed.strikethrough,f&&td.enabled,p),m,{...h,...k}),title:D?T.fullText:void 0,...y,children:_}),D&&(0,Y.jsx)(J.Suspense,{fallback:null,children:(0,Y.jsx)(ad,{anchorRef:O,content:(0,Y.jsx)(`span`,{...K(rd.content),children:T.fullText}),placement:E})})]})}ld.displayName=`Text`;var ud=1.5,dd={sm:{diameter:10,border:2},md:{diameter:14,border:3},lg:{diameter:18,border:3},xl:{diameter:28,border:4}},fd={wrapper:{k1xSpc:`x3nfvp2`,kXwgrk:`xdt5ytf`,kGNEyG:`x6s0dn4`,kOIVth:`x1txdalj`,$$css:!0},spinner:{k1xSpc:`xwz0xwf`,kgQiWS:`x1ku5rj1`,kVQacm:`xb3r6kr`,kXLuUW:`xxymvpz`,$$css:!0}};function pd({size:e=`md`,shade:t=`default`,label:n,xstyle:r,className:i,style:a,"aria-label":o,"data-testid":s,ref:c,...l}){let u=(0,J.useRef)(null),{tokens:d}=pr();(0,J.useEffect)(()=>{let n=u.current;if(n==null)return;let r=n.getContext(`2d`);if(!r)return;let{border:i,diameter:a}=dd[e],o=window.devicePixelRatio||1,s=t===`inherit`?getComputedStyle(n).color:null,c=t===`inherit`?s:t===`onMedia`?d[`--color-on-dark`]:t===`subtle`?d[`--color-text-secondary`]:d[`--color-accent`],l=t===`inherit`?s:t===`onMedia`?`${d[`--color-on-dark`]}4D`:d[`--color-track`],f=a+i*2,p=Math.round(f*o),m=p+p%2,h=m/f,g=a/2*h,_=i*h;n.height=n.width=m,n.style.width=n.style.height=f+`px`,r.lineCap=`round`,r.lineWidth=_;let v=m/2;r.beginPath(),r.arc(v,v,g,0,2*Math.PI),r.strokeStyle=l,t===`inherit`&&(r.globalAlpha=.3),r.stroke(),r.globalAlpha=1,r.beginPath(),r.arc(v,v,g,ud*Math.PI,2.25%2*Math.PI),r.strokeStyle=c,r.stroke()},[t,e,d]);let{border:f,diameter:p}=dd[e],m=p+f*2,h=n!=null,g=(0,J.useId)(),_=h&&typeof n==`string`&&o==null,v=(0,Y.jsx)(`span`,{ref:h?void 0:c,role:`status`,"aria-label":_?void 0:o??(typeof n==`string`?n:void 0)??`Loading`,"aria-labelledby":_?g:void 0,"data-testid":h?void 0:s,...h?{}:l,...Q(h?``:q(`spinner`,{size:e,shade:t}),K(fd.spinner,!h&&r),h?void 0:i,{...h?{}:a,width:m,height:m}),children:(0,Y.jsx)(`canvas`,{ref:u,className:`xlp1x4z x1lliihq x1so62im x14qxm4i xnh0sag xa4qsjk x1ka1v4i x1esw782`})});return h?(0,Y.jsxs)(`div`,{ref:c,"data-testid":s,...l,...Q(q(`spinner`,{size:e,shade:t}),K(fd.wrapper,r),i,a),children:[v,typeof n==`string`?(0,Y.jsx)(ld,{id:g,type:`body`,weight:`bold`,children:n}):n]}):v}pd.displayName=`Spinner`;function md({children:e,as:t=`span`,ref:n,...r}){return(0,J.createElement)(t,{ref:n,...r,className:`x10l6tqk x1i1rx1s xjm9jq1 xkdpibf x1717udv xb3r6kr xzpqnlu xuxw1ft xng3xce x13vifvy x1o0tod x47corl x87ps6o`},e)}md.displayName=`VisuallyHidden`;var hd=`data-astryx-edge-comp`,gd=(0,J.createContext)(null);gd.displayName=`SizeContext`;function _d(e,t=`md`){let n=(0,J.use)(gd);return e??n??t}gd.Provider;var vd=(0,J.createContext)(null);vd.displayName=`ButtonGroupContext`;function yd(){return(0,J.use)(vd)}var bd=(0,J.createContext)(null);bd.displayName=`LinkContext`;function xd(e){function t({href:t,ref:n,...r}){return(0,J.createElement)(e,{ref:n,href:t,to:t,...r})}return t.displayName=`LinkWithTo(${typeof e==`string`?e:e.displayName||e.name||`Component`})`,t}function Sd(e){let t=(0,J.use)(bd),n=e??t?.component??`a`;return(0,J.useMemo)(()=>n===`a`?`a`:xd(n),[n])}var Cd={outlineWidth:`2px`,outlineStyle:`solid`,outlineColor:Pt[`--color-accent`],outlineOffset:`3px`},wd={outlineWidth:``,outlineStyle:``,outlineColor:``,outlineOffset:``},Td={focusVisible:{kMeerF:`x1k57tk5 x784prv`,k3XXqK:`x1t137rt x9v5kkp`,kjBf7l:`xzunyri`,kInvED:`x1wfwxd8 xj3ae5l`,$$css:!0},focusWithin:{kMeerF:`x1k57tk5 x1odlxkb`,k3XXqK:`x1t137rt xnnj0qo`,kjBf7l:`xee0hk0`,kInvED:`x1wfwxd8 xscfbxq`,$$css:!0},publishFocusVisibleVars:{"--_focus-outline":`x17wzz1v x1bqhfga`,"--_focus-outline-offset":`xgzxwq1 x1tcr69y`,$$css:!0},focusWithinOrPublished:{kI3sdo:`xaw4jrz x1irc7jg`,kInvED:`x1kvmbwa xscfbxq`,$$css:!0}};function Ed(e){return(...t)=>K(e,...t)}var Dd={focusVisible:Ed(Td.focusVisible),focusWithin:Ed(Td.focusWithin),publishFocusVisibleVars:Ed(Td.publishFocusVisibleVars),focusWithinOrPublished:Ed(Td.focusWithinOrPublished)},Od=(0,J.createContext)({locale:`en`,direction:`ltr`,messages:{}});Od.displayName=`InternationalizationContext`;function kd(e,t){let n=t&&t.cache?t.cache:zd,r=t&&t.serializer?t.serializer:Ld;return(t&&t.strategy?t.strategy:Pd)(e,{cache:n,serializer:r})}function Ad(e){return e==null||typeof e==`number`||typeof e==`boolean`}function jd(e,t,n,r){let i=Ad(r)?r:n(r),a=t.get(i);return a===void 0&&(a=e.call(this,r),t.set(i,a)),a}function Md(e,t,n){let r=Array.prototype.slice.call(arguments,3),i=n(r),a=t.get(i);return a===void 0&&(a=e.apply(this,r),t.set(i,a)),a}function Nd(e,t,n,r,i){return n.bind(t,e,r,i)}function Pd(e,t){let n=e.length===1?jd:Md;return Nd(e,this,n,t.cache.create(),t.serializer)}function Fd(e,t){return Nd(e,this,Md,t.cache.create(),t.serializer)}function Id(e,t){return Nd(e,this,jd,t.cache.create(),t.serializer)}var Ld=function(){return JSON.stringify(arguments)},Rd=class{constructor(){this.cache=Object.create(null)}get(e){return this.cache[e]}set(e,t){this.cache[e]=t}},zd={create:function(){return new Rd}},Bd={variadic:Fd,monadic:Id},Vd=/(?:[Eec]{1,6}|G{1,5}|[Qq]{1,5}|(?:[yYur]+|U{1,5})|[ML]{1,5}|d{1,2}|D{1,3}|F{1}|[abB]{1,5}|[hkHK]{1,2}|w{1,2}|W{1}|m{1,2}|s{1,2}|[zZOvVxX]{1,4})(?=([^']*'[^']*')*[^']*$)/g;function Hd(e){let t={};return e.replace(Vd,e=>{let n=e.length;switch(e[0]){case`G`:t.era=n===4?`long`:n===5?`narrow`:`short`;break;case`y`:t.year=n===2?`2-digit`:`numeric`;break;case`Y`:case`u`:case`U`:case`r`:throw RangeError("`Y/u/U/r` (year) patterns are not supported, use `y` instead");case`q`:case`Q`:throw RangeError("`q/Q` (quarter) patterns are not supported");case`M`:case`L`:t.month=[`numeric`,`2-digit`,`short`,`long`,`narrow`][n-1];break;case`w`:case`W`:throw RangeError("`w/W` (week) patterns are not supported");case`d`:t.day=[`numeric`,`2-digit`][n-1];break;case`D`:case`F`:case`g`:throw RangeError("`D/F/g` (day) patterns are not supported, use `d` instead");case`E`:t.weekday=n===4?`long`:n===5?`narrow`:`short`;break;case`e`:if(n<4)throw RangeError("`e..eee` (weekday) patterns are not supported");t.weekday=[`short`,`long`,`narrow`,`short`][n-3];break;case`c`:if(n<4)throw RangeError("`c..ccc` (weekday) patterns are not supported");t.weekday=[`short`,`long`,`narrow`,`short`][n-3];break;case`a`:t.hour12=!0;break;case`b`:case`B`:throw RangeError("`b/B` (period) patterns are not supported, use `a` instead");case`h`:t.hourCycle=`h12`,t.hour=[`numeric`,`2-digit`][n-1];break;case`H`:t.hourCycle=`h23`,t.hour=[`numeric`,`2-digit`][n-1];break;case`K`:t.hourCycle=`h11`,t.hour=[`numeric`,`2-digit`][n-1];break;case`k`:t.hourCycle=`h24`,t.hour=[`numeric`,`2-digit`][n-1];break;case`j`:case`J`:case`C`:throw RangeError("`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead");case`m`:t.minute=[`numeric`,`2-digit`][n-1];break;case`s`:t.second=[`numeric`,`2-digit`][n-1];break;case`S`:case`A`:throw RangeError("`S/A` (second) patterns are not supported, use `s` instead");case`z`:t.timeZoneName=n<4?`short`:`long`;break;case`Z`:case`O`:case`v`:case`V`:case`X`:case`x`:throw RangeError("`Z/O/v/V/X/x` (timeZone) patterns are not supported, use `z` instead")}return``}),t}var Ud=/[\t-\r \x85\u200E\u200F\u2028\u2029]/i;function Wd(e){if(e.length===0)throw Error(`Number skeleton cannot be empty`);let t=e.split(Ud).filter(e=>e.length>0),n=[];for(let e of t){let t=e.split(`/`);if(t.length===0)throw Error(`Invalid number skeleton`);let[r,...i]=t;for(let e of i)if(e.length===0)throw Error(`Invalid number skeleton`);n.push({stem:r,options:i})}return n}function Gd(e){return e.replace(/^(.*?)-/,``)}var Kd=/^\.(?:(0+)(\*)?|(#+)|(0+)(#+))$/g,qd=/^(@+)?(\+|#+)?[rs]?$/g,Jd=/(\*)(0+)|(#+)(0+)|(0+)/g,Yd=/^(0+)$/;function Xd(e){let t={};return e[e.length-1]===`r`?t.roundingPriority=`morePrecision`:e[e.length-1]===`s`&&(t.roundingPriority=`lessPrecision`),e.replace(qd,function(e,n,r){return typeof r==`string`?r===`+`?t.minimumSignificantDigits=n.length:n[0]===`#`?t.maximumSignificantDigits=n.length:(t.minimumSignificantDigits=n.length,t.maximumSignificantDigits=n.length+(typeof r==`string`?r.length:0)):(t.minimumSignificantDigits=n.length,t.maximumSignificantDigits=n.length),``}),t}function Zd(e){switch(e){case`sign-auto`:return{signDisplay:`auto`};case`sign-accounting`:case`()`:return{currencySign:`accounting`};case`sign-always`:case`+!`:return{signDisplay:`always`};case`sign-accounting-always`:case`()!`:return{signDisplay:`always`,currencySign:`accounting`};case`sign-except-zero`:case`+?`:return{signDisplay:`exceptZero`};case`sign-accounting-except-zero`:case`()?`:return{signDisplay:`exceptZero`,currencySign:`accounting`};case`sign-never`:case`+_`:return{signDisplay:`never`}}}function Qd(e){let t;if(e[0]===`E`&&e[1]===`E`?(t={notation:`engineering`},e=e.slice(2)):e[0]===`E`&&(t={notation:`scientific`},e=e.slice(1)),t){let n=e.slice(0,2);if(n===`+!`?(t.signDisplay=`always`,e=e.slice(2)):n===`+?`&&(t.signDisplay=`exceptZero`,e=e.slice(2)),!Yd.test(e))throw Error(`Malformed concise eng/scientific notation`);t.minimumIntegerDigits=e.length}return t}function $d(e){return Zd(e)||{}}function ef(e){let t={};for(let n of e){switch(n.stem){case`percent`:case`%`:t.style=`percent`;continue;case`%x100`:t.style=`percent`,t.scale=100;continue;case`currency`:t.style=`currency`,t.currency=n.options[0];continue;case`group-off`:case`,_`:t.useGrouping=!1;continue;case`precision-integer`:case`.`:t.maximumFractionDigits=0;continue;case`measure-unit`:case`unit`:t.style=`unit`,t.unit=Gd(n.options[0]);continue;case`compact-short`:case`K`:t.notation=`compact`,t.compactDisplay=`short`;continue;case`compact-long`:case`KK`:t.notation=`compact`,t.compactDisplay=`long`;continue;case`scientific`:t={...t,notation:`scientific`,...n.options.reduce((e,t)=>({...e,...$d(t)}),{})};continue;case`engineering`:t={...t,notation:`engineering`,...n.options.reduce((e,t)=>({...e,...$d(t)}),{})};continue;case`notation-simple`:t.notation=`standard`;continue;case`unit-width-narrow`:t.currencyDisplay=`narrowSymbol`,t.unitDisplay=`narrow`;continue;case`unit-width-short`:t.currencyDisplay=`code`,t.unitDisplay=`short`;continue;case`unit-width-full-name`:t.currencyDisplay=`name`,t.unitDisplay=`long`;continue;case`unit-width-iso-code`:t.currencyDisplay=`symbol`;continue;case`scale`:t.scale=parseFloat(n.options[0]);continue;case`rounding-mode-floor`:t.roundingMode=`floor`;continue;case`rounding-mode-ceiling`:t.roundingMode=`ceil`;continue;case`rounding-mode-down`:t.roundingMode=`trunc`;continue;case`rounding-mode-up`:t.roundingMode=`expand`;continue;case`rounding-mode-half-even`:t.roundingMode=`halfEven`;continue;case`rounding-mode-half-down`:t.roundingMode=`halfTrunc`;continue;case`rounding-mode-half-up`:t.roundingMode=`halfExpand`;continue;case`integer-width`:if(n.options.length>1)throw RangeError(`integer-width stems only accept a single optional option`);n.options[0].replace(Jd,function(e,n,r,i,a,o){if(n)t.minimumIntegerDigits=r.length;else if(i&&a)throw Error(`We currently do not support maximum integer digits`);else if(o)throw Error(`We currently do not support exact integer digits`);return``});continue}if(Yd.test(n.stem)){t.minimumIntegerDigits=n.stem.length;continue}if(Kd.test(n.stem)){if(n.options.length>1)throw RangeError(`Fraction-precision stems only accept a single optional option`);n.stem.replace(Kd,function(e,n,r,i,a,o){return r===`*`?t.minimumFractionDigits=n.length:i&&i[0]===`#`?t.maximumFractionDigits=i.length:a&&o?(t.minimumFractionDigits=a.length,t.maximumFractionDigits=a.length+o.length):(t.minimumFractionDigits=n.length,t.maximumFractionDigits=n.length),``});let e=n.options[0];e===`w`?t={...t,trailingZeroDisplay:`stripIfInteger`}:e&&(t={...t,...Xd(e)});continue}if(qd.test(n.stem)){t={...t,...Xd(n.stem)};continue}let e=Zd(n.stem);e&&(t={...t,...e});let r=Qd(n.stem);r&&(t={...t,...r})}return t}var tf=function(e){return e[e.EXPECT_ARGUMENT_CLOSING_BRACE=1]=`EXPECT_ARGUMENT_CLOSING_BRACE`,e[e.EMPTY_ARGUMENT=2]=`EMPTY_ARGUMENT`,e[e.MALFORMED_ARGUMENT=3]=`MALFORMED_ARGUMENT`,e[e.EXPECT_ARGUMENT_TYPE=4]=`EXPECT_ARGUMENT_TYPE`,e[e.INVALID_ARGUMENT_TYPE=5]=`INVALID_ARGUMENT_TYPE`,e[e.EXPECT_ARGUMENT_STYLE=6]=`EXPECT_ARGUMENT_STYLE`,e[e.INVALID_NUMBER_SKELETON=7]=`INVALID_NUMBER_SKELETON`,e[e.INVALID_DATE_TIME_SKELETON=8]=`INVALID_DATE_TIME_SKELETON`,e[e.EXPECT_NUMBER_SKELETON=9]=`EXPECT_NUMBER_SKELETON`,e[e.EXPECT_DATE_TIME_SKELETON=10]=`EXPECT_DATE_TIME_SKELETON`,e[e.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE=11]=`UNCLOSED_QUOTE_IN_ARGUMENT_STYLE`,e[e.EXPECT_SELECT_ARGUMENT_OPTIONS=12]=`EXPECT_SELECT_ARGUMENT_OPTIONS`,e[e.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE=13]=`EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE`,e[e.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE=14]=`INVALID_PLURAL_ARGUMENT_OFFSET_VALUE`,e[e.EXPECT_SELECT_ARGUMENT_SELECTOR=15]=`EXPECT_SELECT_ARGUMENT_SELECTOR`,e[e.EXPECT_PLURAL_ARGUMENT_SELECTOR=16]=`EXPECT_PLURAL_ARGUMENT_SELECTOR`,e[e.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT=17]=`EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT`,e[e.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT=18]=`EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT`,e[e.INVALID_PLURAL_ARGUMENT_SELECTOR=19]=`INVALID_PLURAL_ARGUMENT_SELECTOR`,e[e.DUPLICATE_PLURAL_ARGUMENT_SELECTOR=20]=`DUPLICATE_PLURAL_ARGUMENT_SELECTOR`,e[e.DUPLICATE_SELECT_ARGUMENT_SELECTOR=21]=`DUPLICATE_SELECT_ARGUMENT_SELECTOR`,e[e.MISSING_OTHER_CLAUSE=22]=`MISSING_OTHER_CLAUSE`,e[e.INVALID_TAG=23]=`INVALID_TAG`,e[e.INVALID_TAG_NAME=25]=`INVALID_TAG_NAME`,e[e.UNMATCHED_CLOSING_TAG=26]=`UNMATCHED_CLOSING_TAG`,e[e.UNCLOSED_TAG=27]=`UNCLOSED_TAG`,e}({});function nf(e){return e.type===0}function rf(e){return e.type===1}function af(e){return e.type===2}function of(e){return e.type===3}function sf(e){return e.type===4}function cf(e){return e.type===5}function lf(e){return e.type===6}function uf(e){return e.type===7}function df(e){return e.type===8}function ff(e){return!!(e&&typeof e==`object`&&e.type===0)}function pf(e){return!!(e&&typeof e==`object`&&e.type===1)}var mf=/[ \xA0\u1680\u2000-\u200A\u202F\u205F\u3000]/,hf={"001":[`H`,`h`],419:[`h`,`H`,`hB`,`hb`],AC:[`H`,`h`,`hb`,`hB`],AD:[`H`,`hB`],AE:[`h`,`hB`,`hb`,`H`],AF:[`H`,`hb`,`hB`,`h`],AG:[`h`,`hb`,`H`,`hB`],AI:[`H`,`h`,`hb`,`hB`],AL:[`h`,`H`,`hB`],AM:[`H`,`hB`],AO:[`H`,`hB`],AR:[`h`,`H`,`hB`,`hb`],AS:[`h`,`H`],AT:[`H`,`hB`],AU:[`h`,`hb`,`H`,`hB`],AW:[`H`,`hB`],AX:[`H`],AZ:[`H`,`hB`,`h`],BA:[`H`,`hB`,`h`],BB:[`h`,`hb`,`H`,`hB`],BD:[`h`,`hB`,`H`],BE:[`H`,`hB`],BF:[`H`,`hB`],BG:[`H`,`hB`,`h`],BH:[`h`,`hB`,`hb`,`H`],BI:[`H`,`h`],BJ:[`H`,`hB`],BL:[`H`,`hB`],BM:[`h`,`hb`,`H`,`hB`],BN:[`hb`,`hB`,`h`,`H`],BO:[`h`,`H`,`hB`,`hb`],BQ:[`H`],BR:[`H`,`hB`],BS:[`h`,`hb`,`H`,`hB`],BT:[`h`,`H`],BW:[`H`,`h`,`hb`,`hB`],BY:[`H`,`h`],BZ:[`H`,`h`,`hb`,`hB`],CA:[`h`,`hb`,`H`,`hB`],CC:[`H`,`h`,`hb`,`hB`],CD:[`hB`,`H`],CF:[`H`,`h`,`hB`],CG:[`H`,`hB`],CH:[`H`,`hB`,`h`],CI:[`H`,`hB`],CK:[`H`,`h`,`hb`,`hB`],CL:[`h`,`H`,`hB`,`hb`],CM:[`H`,`h`,`hB`],CN:[`H`,`hB`,`hb`,`h`],CO:[`h`,`H`,`hB`,`hb`],CP:[`H`],CR:[`h`,`H`,`hB`,`hb`],CU:[`h`,`H`,`hB`,`hb`],CV:[`H`,`hB`],CW:[`H`,`hB`],CX:[`H`,`h`,`hb`,`hB`],CY:[`h`,`H`,`hb`,`hB`],CZ:[`H`],DE:[`H`,`hB`],DG:[`H`,`h`,`hb`,`hB`],DJ:[`h`,`H`],DK:[`H`],DM:[`h`,`hb`,`H`,`hB`],DO:[`h`,`H`,`hB`,`hb`],DZ:[`h`,`hB`,`hb`,`H`],EA:[`H`,`h`,`hB`,`hb`],EC:[`h`,`H`,`hB`,`hb`],EE:[`H`,`hB`],EG:[`h`,`hB`,`hb`,`H`],EH:[`h`,`hB`,`hb`,`H`],ER:[`h`,`H`],ES:[`H`,`hB`,`h`,`hb`],ET:[`hB`,`hb`,`h`,`H`],FI:[`H`],FJ:[`h`,`hb`,`H`,`hB`],FK:[`H`,`h`,`hb`,`hB`],FM:[`h`,`hb`,`H`,`hB`],FO:[`H`,`h`],FR:[`H`,`hB`],GA:[`H`,`hB`],GB:[`H`,`h`,`hb`,`hB`],GD:[`h`,`hb`,`H`,`hB`],GE:[`H`,`hB`,`h`],GF:[`H`,`hB`],GG:[`H`,`h`,`hb`,`hB`],GH:[`h`,`H`],GI:[`H`,`h`,`hb`,`hB`],GL:[`H`,`h`],GM:[`h`,`hb`,`H`,`hB`],GN:[`H`,`hB`],GP:[`H`,`hB`],GQ:[`H`,`hB`,`h`,`hb`],GR:[`h`,`H`,`hb`,`hB`],GS:[`H`,`h`,`hb`,`hB`],GT:[`h`,`H`,`hB`,`hb`],GU:[`h`,`hb`,`H`,`hB`],GW:[`H`,`hB`],GY:[`h`,`hb`,`H`,`hB`],HK:[`h`,`hB`,`hb`,`H`],HN:[`h`,`H`,`hB`,`hb`],HR:[`H`,`hB`],HU:[`H`,`h`],IC:[`H`,`h`,`hB`,`hb`],ID:[`H`],IE:[`H`,`h`,`hb`,`hB`],IL:[`H`,`hB`],IM:[`H`,`h`,`hb`,`hB`],IN:[`h`,`H`],IO:[`H`,`h`,`hb`,`hB`],IQ:[`h`,`hB`,`hb`,`H`],IR:[`hB`,`H`],IS:[`H`],IT:[`H`,`hB`],JE:[`H`,`h`,`hb`,`hB`],JM:[`h`,`hb`,`H`,`hB`],JO:[`h`,`hB`,`hb`,`H`],JP:[`H`,`K`,`h`],KE:[`hB`,`hb`,`H`,`h`],KG:[`H`,`h`,`hB`,`hb`],KH:[`hB`,`h`,`H`,`hb`],KI:[`h`,`hb`,`H`,`hB`],KM:[`H`,`h`,`hB`,`hb`],KN:[`h`,`hb`,`H`,`hB`],KP:[`h`,`H`,`hB`,`hb`],KR:[`h`,`H`,`hB`,`hb`],KW:[`h`,`hB`,`hb`,`H`],KY:[`h`,`hb`,`H`,`hB`],KZ:[`H`,`hB`],LA:[`H`,`hb`,`hB`,`h`],LB:[`h`,`hB`,`hb`,`H`],LC:[`h`,`hb`,`H`,`hB`],LI:[`H`,`hB`,`h`],LK:[`H`,`h`,`hB`,`hb`],LR:[`h`,`hb`,`H`,`hB`],LS:[`h`,`H`],LT:[`H`,`h`,`hb`,`hB`],LU:[`H`,`h`,`hB`],LV:[`H`,`hB`,`hb`,`h`],LY:[`h`,`hB`,`hb`,`H`],MA:[`H`,`h`,`hB`,`hb`],MC:[`H`,`hB`],MD:[`H`,`hB`],ME:[`H`,`hB`,`h`],MF:[`H`,`hB`],MG:[`H`,`h`],MH:[`h`,`hb`,`H`,`hB`],MK:[`H`,`h`,`hb`,`hB`],ML:[`H`],MM:[`hB`,`hb`,`H`,`h`],MN:[`H`,`h`,`hb`,`hB`],MO:[`h`,`hB`,`hb`,`H`],MP:[`h`,`hb`,`H`,`hB`],MQ:[`H`,`hB`],MR:[`h`,`hB`,`hb`,`H`],MS:[`H`,`h`,`hb`,`hB`],MT:[`H`,`h`],MU:[`H`,`h`],MV:[`H`,`h`],MW:[`h`,`hb`,`H`,`hB`],MX:[`h`,`H`,`hB`,`hb`],MY:[`hb`,`hB`,`h`,`H`],MZ:[`H`,`hB`],NA:[`h`,`H`,`hB`,`hb`],NC:[`H`,`hB`],NE:[`H`],NF:[`H`,`h`,`hb`,`hB`],NG:[`H`,`h`,`hb`,`hB`],NI:[`h`,`H`,`hB`,`hb`],NL:[`H`,`hB`],NO:[`H`,`h`],NP:[`H`,`h`,`hB`],NR:[`H`,`h`,`hb`,`hB`],NU:[`H`,`h`,`hb`,`hB`],NZ:[`h`,`hb`,`H`,`hB`],OM:[`h`,`hB`,`hb`,`H`],PA:[`h`,`H`,`hB`,`hb`],PE:[`h`,`H`,`hB`,`hb`],PF:[`H`,`h`,`hB`],PG:[`h`,`H`],PH:[`h`,`hB`,`hb`,`H`],PK:[`h`,`hB`,`H`],PL:[`H`,`h`],PM:[`H`,`hB`],PN:[`H`,`h`,`hb`,`hB`],PR:[`h`,`H`,`hB`,`hb`],PS:[`h`,`hB`,`hb`,`H`],PT:[`H`,`hB`],PW:[`h`,`H`],PY:[`h`,`H`,`hB`,`hb`],QA:[`h`,`hB`,`hb`,`H`],RE:[`H`,`hB`],RO:[`H`,`hB`],RS:[`H`,`hB`,`h`],RU:[`H`],RW:[`H`,`h`],SA:[`h`,`hB`,`hb`,`H`],SB:[`h`,`hb`,`H`,`hB`],SC:[`H`,`h`,`hB`],SD:[`h`,`hB`,`hb`,`H`],SE:[`H`],SG:[`h`,`hb`,`H`,`hB`],SH:[`H`,`h`,`hb`,`hB`],SI:[`H`,`hB`],SJ:[`H`],SK:[`H`],SL:[`h`,`hb`,`H`,`hB`],SM:[`H`,`h`,`hB`],SN:[`H`,`h`,`hB`],SO:[`h`,`H`],SR:[`H`,`hB`],SS:[`h`,`hb`,`H`,`hB`],ST:[`H`,`hB`],SV:[`h`,`H`,`hB`,`hb`],SX:[`H`,`h`,`hb`,`hB`],SY:[`h`,`hB`,`hb`,`H`],SZ:[`h`,`hb`,`H`,`hB`],TA:[`H`,`h`,`hb`,`hB`],TC:[`h`,`hb`,`H`,`hB`],TD:[`h`,`H`,`hB`],TF:[`H`,`h`,`hB`],TG:[`H`,`hB`],TH:[`H`,`h`],TJ:[`H`,`h`],TL:[`H`,`hB`,`hb`,`h`],TM:[`H`,`h`],TN:[`h`,`hB`,`hb`,`H`],TO:[`h`,`H`],TR:[`H`,`hB`],TT:[`h`,`hb`,`H`,`hB`],TW:[`hB`,`hb`,`h`,`H`],TZ:[`hB`,`hb`,`H`,`h`],UA:[`H`,`hB`,`h`],UG:[`hB`,`hb`,`H`,`h`],UM:[`h`,`hb`,`H`,`hB`],US:[`h`,`hb`,`H`,`hB`],UY:[`h`,`H`,`hB`,`hb`],UZ:[`H`,`hB`,`h`],VA:[`H`,`h`,`hB`],VC:[`h`,`hb`,`H`,`hB`],VE:[`h`,`H`,`hB`,`hb`],VG:[`h`,`hb`,`H`,`hB`],VI:[`h`,`hb`,`H`,`hB`],VN:[`H`,`h`],VU:[`h`,`H`],WF:[`H`,`hB`],WS:[`h`,`H`],XK:[`H`,`hB`,`h`],YE:[`h`,`hB`,`hb`,`H`],YT:[`H`,`hB`],ZA:[`H`,`h`,`hb`,`hB`],ZM:[`h`,`hb`,`H`,`hB`],ZW:[`H`,`h`],"af-ZA":[`H`,`h`,`hB`,`hb`],"ar-001":[`h`,`hB`,`hb`,`H`],"ca-ES":[`H`,`h`,`hB`],"en-001":[`h`,`hb`,`H`,`hB`],"en-HK":[`h`,`hb`,`H`,`hB`],"en-IL":[`H`,`h`,`hb`,`hB`],"en-MY":[`h`,`hb`,`H`,`hB`],"es-BR":[`H`,`h`,`hB`,`hb`],"es-ES":[`H`,`h`,`hB`,`hb`],"es-GQ":[`H`,`h`,`hB`,`hb`],"fr-CA":[`H`,`h`,`hB`],"gl-ES":[`H`,`h`,`hB`],"gu-IN":[`hB`,`hb`,`h`,`H`],"hi-IN":[`hB`,`h`,`H`],"it-CH":[`H`,`h`,`hB`],"it-IT":[`H`,`h`,`hB`],"kn-IN":[`hB`,`h`,`H`],"ku-SY":[`H`,`hB`],"ml-IN":[`hB`,`h`,`H`],"mr-IN":[`hB`,`hb`,`h`,`H`],"pa-IN":[`hB`,`hb`,`h`,`H`],"ta-IN":[`hB`,`h`,`hb`,`H`],"te-IN":[`hB`,`h`,`H`],"zu-ZA":[`H`,`hB`,`hb`,`h`]};function gf(e,t){let n=``;for(let r=0;r<e.length;r++){let i=e.charAt(r);if(i===`j`){let a=0;for(;r+1<e.length&&e.charAt(r+1)===i;)a++,r++;let o=1+(a&1),s=a<2?1:3+(a>>1),c=_f(t);for((c==`H`||c==`k`)&&(s=0);s-->0;)n+=`a`;for(;o-->0;)n=c+n}else n+=i===`J`?`H`:i}return n}function _f(e){let t=e.hourCycle;if(t===void 0&&e.hourCycles&&e.hourCycles.length&&(t=e.hourCycles[0]),t)switch(t){case`h24`:return`k`;case`h23`:return`H`;case`h12`:return`h`;case`h11`:return`K`;default:throw Error(`Invalid hourCycle`)}let n=e.language,r;return n!==`root`&&(r=e.maximize().region),(hf[r||``]||hf[n||``]||hf[`${n}-001`]||hf[`001`])[0]}var vf=RegExp(`^${mf.source}*`),yf=RegExp(`${mf.source}*$`);function bf(e,t){return{start:e,end:t}}var xf=!!Object.fromEntries,Sf=!!String.prototype.trimStart,Cf=!!String.prototype.trimEnd,wf=xf?Object.fromEntries:function(e){let t={};for(let[n,r]of e)t[n]=r;return t},Tf=Sf?function(e){return e.trimStart()}:function(e){return e.replace(vf,``)},Ef=Cf?function(e){return e.trimEnd()}:function(e){return e.replace(yf,``)},Df=RegExp(`([^\\p{White_Space}\\p{Pattern_Syntax}]*)`,`yu`);function Of(e,t){return Df.lastIndex=t,Df.exec(e)[1]??``}function kf(e){if(e.length===0)return null;let t=1,n=1;for(let r=0;r<e.length;){let i=e.charCodeAt(r);switch(i){case 35:case 39:case 60:case 123:case 125:return null}if(i===10)t++,n=1,r++;else if(n++,i>=55296&&i<=56319&&r+1<e.length){let t=e.charCodeAt(r+1);r+=t>=56320&&t<=57343?2:1}else r++}return{offset:e.length,line:t,column:n}}var Af=class{constructor(e,t={}){this.message=e,this.position={offset:0,line:1,column:1},this.ignoreTag=!!t.ignoreTag,this.locale=t.locale,this.requiresOtherClause=!!t.requiresOtherClause,this.shouldParseSkeletons=!!t.shouldParseSkeletons}parse(){if(this.offset()!==0)throw Error(`parser can only be used once`);if(this.message.length>0){let e=this.message.charCodeAt(0);if(e!==35&&e!==39&&e!==60&&e!==123&&e!==125){let e=kf(this.message);if(e){let t=this.clonePosition();return this.position=e,{val:[{type:0,value:this.message,location:bf(t,this.clonePosition())}],err:null}}}}return this.parseMessage(0,``,!1)}parseMessage(e,t,n){let r=[];for(;!this.isEOF();){let i=this.char();if(i===123){let t=this.parseArgument(e,n);if(t.err)return t;r.push(t.val)}else if(i===125&&e>0)break;else if(i===35&&(t===`plural`||t===`selectordinal`)){let e=this.clonePosition();this.bump(),r.push({type:7,location:bf(e,this.clonePosition())})}else if(i===60&&!this.ignoreTag&&this.peek()===47){if(n)break;return this.error(26,bf(this.clonePosition(),this.clonePosition()))}else if(i===60&&!this.ignoreTag&&jf(this.peek()||0)){let n=this.parseTag(e,t);if(n.err)return n;r.push(n.val)}else{let n=this.parseLiteral(e,t);if(n.err)return n;r.push(n.val)}}return{val:r,err:null}}parseTag(e,t){let n=this.clonePosition();this.bump();let r=this.parseTagName();if(this.bumpSpace(),this.bumpIf(`/>`))return{val:{type:0,value:`<${r}/>`,location:bf(n,this.clonePosition())},err:null};if(this.bumpIf(`>`)){let i=this.parseMessage(e+1,t,!0);if(i.err)return i;let a=i.val,o=this.clonePosition();if(this.bumpIf(`</`)){if(this.isEOF()||!jf(this.char()))return this.error(23,bf(o,this.clonePosition()));let e=this.clonePosition();return r===this.parseTagName()?(this.bumpSpace(),this.bumpIf(`>`)?{val:{type:8,value:r,children:a,location:bf(n,this.clonePosition())},err:null}:this.error(23,bf(o,this.clonePosition()))):this.error(26,bf(e,this.clonePosition()))}return this.error(27,bf(n,this.clonePosition()))}return this.error(23,bf(n,this.clonePosition()))}parseTagName(){let e=this.offset();for(this.bump();!this.isEOF()&&Nf(this.char());)this.bump();return this.message.slice(e,this.offset())}parseLiteral(e,t){let n=this.clonePosition(),r=``;for(;;){let n=this.tryParseQuote(t);if(n){r+=n;continue}let i=this.tryParseUnquoted(e,t);if(i){r+=i;continue}let a=this.tryParseLeftAngleBracket();if(a){r+=a;continue}break}let i=bf(n,this.clonePosition());return{val:{type:0,value:r,location:i},err:null}}tryParseLeftAngleBracket(){return!this.isEOF()&&this.char()===60&&(this.ignoreTag||!Mf(this.peek()||0))?(this.bump(),`<`):null}tryParseQuote(e){if(this.isEOF()||this.char()!==39)return null;switch(this.peek()){case 39:return this.bump(),this.bump(),`'`;case 123:case 60:case 62:case 125:break;case 35:if(e===`plural`||e===`selectordinal`)break;return null;default:return null}this.bump();let t=[this.char()];for(this.bump();!this.isEOF();){let e=this.char();if(e===39){if(this.peek()===39)t.push(39),this.bump();else{this.bump();break}}else t.push(e);this.bump()}return String.fromCodePoint(...t)}tryParseUnquoted(e,t){if(this.isEOF())return null;let n=this.char();return n===60||n===123||n===35&&(t===`plural`||t===`selectordinal`)||n===125&&e>0?null:(this.bump(),String.fromCodePoint(n))}parseArgument(e,t){let n=this.clonePosition();if(this.bump(),this.bumpSpace(),this.isEOF())return this.error(1,bf(n,this.clonePosition()));if(this.char()===125)return this.bump(),this.error(2,bf(n,this.clonePosition()));let r=this.parseIdentifierIfPossible().value;if(!r)return this.error(3,bf(n,this.clonePosition()));if(this.bumpSpace(),this.isEOF())return this.error(1,bf(n,this.clonePosition()));switch(this.char()){case 125:return this.bump(),{val:{type:1,value:r,location:bf(n,this.clonePosition())},err:null};case 44:return this.bump(),this.bumpSpace(),this.isEOF()?this.error(1,bf(n,this.clonePosition())):this.parseArgumentOptions(e,t,r,n);default:return this.error(3,bf(n,this.clonePosition()))}}parseIdentifierIfPossible(){let e=this.clonePosition(),t=this.offset(),n=Of(this.message,t),r=t+n.length;return this.bumpTo(r),{value:n,location:bf(e,this.clonePosition())}}parseArgumentOptions(e,t,n,r){let i=this.clonePosition(),a=this.parseIdentifierIfPossible().value,o=this.clonePosition();switch(a){case``:return this.error(4,bf(i,o));case`number`:case`date`:case`time`:{this.bumpSpace();let e=null;if(this.bumpIf(`,`)){this.bumpSpace();let t=this.clonePosition(),n=this.parseSimpleArgStyleIfPossible();if(n.err)return n;let r=Ef(n.val);if(r.length===0)return this.error(6,bf(this.clonePosition(),this.clonePosition()));e={style:r,styleLocation:bf(t,this.clonePosition())}}let t=this.tryParseArgumentClose(r);if(t.err)return t;let i=bf(r,this.clonePosition());if(e&&e.style.startsWith(`::`)){let t=Tf(e.style.slice(2));if(a===`number`){let r=this.parseNumberSkeletonFromString(t,e.styleLocation);return r.err?r:{val:{type:2,value:n,location:i,style:r.val},err:null}}{if(t.length===0)return this.error(10,i);let r=t;this.locale&&(r=gf(t,this.locale));let o={type:1,pattern:r,location:e.styleLocation,parsedOptions:this.shouldParseSkeletons?Hd(r):{}};return{val:{type:a===`date`?3:4,value:n,location:i,style:o},err:null}}}return{val:{type:a===`number`?2:a===`date`?3:4,value:n,location:i,style:e?.style??null},err:null}}case`plural`:case`selectordinal`:case`select`:{let i=this.clonePosition();if(this.bumpSpace(),!this.bumpIf(`,`))return this.error(12,bf(i,{...i}));this.bumpSpace();let o=this.parseIdentifierIfPossible(),s=0;if(a!==`select`&&o.value===`offset`){if(!this.bumpIf(`:`))return this.error(13,bf(this.clonePosition(),this.clonePosition()));this.bumpSpace();let e=this.tryParseDecimalInteger(13,14);if(e.err)return e;this.bumpSpace(),o=this.parseIdentifierIfPossible(),s=e.val}let c=this.tryParsePluralOrSelectOptions(e,a,t,o);if(c.err)return c;let l=this.tryParseArgumentClose(r);if(l.err)return l;let u=bf(r,this.clonePosition());return a===`select`?{val:{type:5,value:n,options:wf(c.val),location:u},err:null}:{val:{type:6,value:n,options:wf(c.val),offset:s,pluralType:a===`plural`?`cardinal`:`ordinal`,location:u},err:null}}default:return this.error(5,bf(i,o))}}tryParseArgumentClose(e){return this.isEOF()||this.char()!==125?this.error(1,bf(e,this.clonePosition())):(this.bump(),{val:!0,err:null})}parseSimpleArgStyleIfPossible(){let e=0,t=this.clonePosition();for(;!this.isEOF();)switch(this.char()){case 39:{this.bump();let e=this.clonePosition();if(!this.bumpUntil(`'`))return this.error(11,bf(e,this.clonePosition()));this.bump();break}case 123:e+=1,this.bump();break;case 125:if(e>0)--e;else return{val:this.message.slice(t.offset,this.offset()),err:null};break;default:this.bump();break}return{val:this.message.slice(t.offset,this.offset()),err:null}}parseNumberSkeletonFromString(e,t){let n=[];try{n=Wd(e)}catch{return this.error(7,t)}return{val:{type:0,tokens:n,location:t,parsedOptions:this.shouldParseSkeletons?ef(n):{}},err:null}}tryParsePluralOrSelectOptions(e,t,n,r){let i=!1,a=[],o=new Set,{value:s,location:c}=r;for(;;){if(s.length===0){let e=this.clonePosition();if(t!==`select`&&this.bumpIf(`=`)){let t=this.tryParseDecimalInteger(16,19);if(t.err)return t;c=bf(e,this.clonePosition()),s=this.message.slice(e.offset,this.offset())}else break}if(o.has(s))return this.error(t===`select`?21:20,c);s===`other`&&(i=!0),this.bumpSpace();let r=this.clonePosition();if(!this.bumpIf(`{`))return this.error(t===`select`?17:18,bf(this.clonePosition(),this.clonePosition()));let l=this.parseMessage(e+1,t,n);if(l.err)return l;let u=this.tryParseArgumentClose(r);if(u.err)return u;a.push([s,{value:l.val,location:bf(r,this.clonePosition())}]),o.add(s),this.bumpSpace(),{value:s,location:c}=this.parseIdentifierIfPossible()}return a.length===0?this.error(t===`select`?15:16,bf(this.clonePosition(),this.clonePosition())):this.requiresOtherClause&&!i?this.error(22,bf(this.clonePosition(),this.clonePosition())):{val:a,err:null}}tryParseDecimalInteger(e,t){let n=1,r=this.clonePosition();this.bumpIf(`+`)||this.bumpIf(`-`)&&(n=-1);let i=!1,a=0;for(;!this.isEOF();){let e=this.char();if(e>=48&&e<=57)i=!0,a=a*10+(e-48),this.bump();else break}let o=bf(r,this.clonePosition());return i?(a*=n,Number.isSafeInteger(a)?{val:a,err:null}:this.error(t,o)):this.error(e,o)}offset(){return this.position.offset}isEOF(){return this.offset()===this.message.length}clonePosition(){return{offset:this.position.offset,line:this.position.line,column:this.position.column}}char(){let e=this.position.offset;if(e>=this.message.length)throw Error(`out of bound`);let t=this.message.codePointAt(e);if(t===void 0)throw Error(`Offset ${e} is at invalid UTF-16 code unit boundary`);return t}error(e,t){return{val:null,err:{kind:e,message:this.message,location:t}}}bump(){if(this.isEOF())return;let e=this.char();e===10?(this.position.line+=1,this.position.column=1,this.position.offset+=1):(this.position.column+=1,this.position.offset+=e<65536?1:2)}bumpIf(e){if(this.message.startsWith(e,this.offset())){for(let t=0;t<e.length;t++)this.bump();return!0}return!1}bumpUntil(e){let t=this.offset(),n=this.message.indexOf(e,t);return n>=0?(this.bumpTo(n),!0):(this.bumpTo(this.message.length),!1)}bumpTo(e){if(this.offset()>e)throw Error(`targetOffset ${e} must be greater than or equal to the current offset ${this.offset()}`);for(e=Math.min(e,this.message.length);;){let t=this.offset();if(t===e)break;if(t>e)throw Error(`targetOffset ${e} is at invalid UTF-16 code unit boundary`);if(this.bump(),this.isEOF())break}}bumpSpace(){for(;!this.isEOF()&&Pf(this.char());)this.bump()}peek(){if(this.isEOF())return null;let e=this.char(),t=this.offset();return this.message.charCodeAt(t+(e>=65536?2:1))??null}};function jf(e){return e>=97&&e<=122||e>=65&&e<=90}function Mf(e){return jf(e)||e===47}function Nf(e){return e===45||e===46||e>=48&&e<=57||e===95||e>=97&&e<=122||e>=65&&e<=90||e==183||e>=192&&e<=214||e>=216&&e<=246||e>=248&&e<=893||e>=895&&e<=8191||e>=8204&&e<=8205||e>=8255&&e<=8256||e>=8304&&e<=8591||e>=11264&&e<=12271||e>=12289&&e<=55295||e>=63744&&e<=64975||e>=65008&&e<=65533||e>=65536&&e<=983039}function Pf(e){return e>=9&&e<=13||e===32||e===133||e>=8206&&e<=8207||e===8232||e===8233}function Ff(e){e.forEach(e=>{if(delete e.location,cf(e)||lf(e))for(let t in e.options)delete e.options[t].location,Ff(e.options[t].value);else af(e)&&ff(e.style)||(of(e)||sf(e))&&pf(e.style)?delete e.style.location:df(e)&&Ff(e.children)})}function If(e,t={}){t={shouldParseSkeletons:!0,requiresOtherClause:!0,...t};let n=new Af(e,t).parse();if(n.err){let e=SyntaxError(tf[n.err.kind]);throw e.location=n.err.location,e.originalMessage=n.err.message,e}return t?.captureLocation||Ff(n.val),n.val}var Lf=class extends Error{constructor(e,t,n){super(e),this.code=t,this.originalMessage=n}toString(){return`[formatjs Error: ${this.code}] ${this.message}`}},Rf=class extends Lf{constructor(e,t,n,r){super(`Invalid values for "${e}": "${t}". Options are "${Object.keys(n).join(`", "`)}"`,`INVALID_VALUE`,r)}},zf=class extends Lf{constructor(e,t,n){super(`Value for "${e}" must be of type ${t}`,`INVALID_VALUE`,n)}},Bf=class extends Lf{constructor(e,t){super(`The intl string context variable "${e}" was not provided to the string "${t}"`,`MISSING_VALUE`,t)}};function Vf(e){return e.length<2?e:e.reduce((e,t)=>{let n=e[e.length-1];return!n||n.type!==0||t.type!==0?e.push(t):n.value+=t.value,e},[])}function Hf(e){return typeof e==`function`}function Uf(e,t,n,r,i,a,o){if(e.length===1&&nf(e[0]))return[{type:0,value:e[0].value}];let s=[];for(let c of e){if(nf(c)){s.push({type:0,value:c.value});continue}if(uf(c)){typeof a==`number`&&s.push({type:0,value:n.getNumberFormat(t).format(a)});continue}let{value:e}=c;if(!(i&&e in i))throw new Bf(e,o);let l=i[e];if(rf(c)){(!l||typeof l==`string`||typeof l==`number`||typeof l==`bigint`)&&(l=typeof l==`string`||typeof l==`number`||typeof l==`bigint`?String(l):``),s.push({type:typeof l==`string`?0:1,value:l});continue}if(of(c)){let e=typeof c.style==`string`?r.date[c.style]:pf(c.style)?c.style.parsedOptions:void 0;s.push({type:0,value:n.getDateTimeFormat(t,e).format(l)});continue}if(sf(c)){let e=typeof c.style==`string`?r.time[c.style]:pf(c.style)?c.style.parsedOptions:r.time.medium;s.push({type:0,value:n.getDateTimeFormat(t,e).format(l)});continue}if(af(c)){let e=typeof c.style==`string`?r.number[c.style]:ff(c.style)?c.style.parsedOptions:void 0;if(e&&e.scale){let t=e.scale||1;if(typeof l==`bigint`){if(!Number.isInteger(t))throw TypeError(`Cannot apply fractional scale ${t} to bigint value. Scale must be an integer when formatting bigint.`);l*=BigInt(t)}else l*=t}s.push({type:0,value:n.getNumberFormat(t,e).format(l)});continue}if(df(c)){let{children:e,value:l}=c,u=i[l];if(!Hf(u))throw new zf(l,`function`,o);let d=u(Uf(e,t,n,r,i,a).map(e=>e.value));Array.isArray(d)||(d=[d]),s.push(...d.map(e=>({type:typeof e==`string`?0:1,value:e})))}if(cf(c)){let e=l,a=(Object.prototype.hasOwnProperty.call(c.options,e)?c.options[e]:void 0)||c.options.other;if(!a)throw new Rf(c.value,l,Object.keys(c.options),o);s.push(...Uf(a.value,t,n,r,i));continue}if(lf(c)){let e=`=${l}`,a=Object.prototype.hasOwnProperty.call(c.options,e)?c.options[e]:void 0;if(!a){if(!Intl.PluralRules)throw new Lf(`Intl.PluralRules is not available in this environment.
42
- Try polyfilling it using "@formatjs/intl-pluralrules"
43
- `,`MISSING_INTL_API`,o);let e=typeof l==`bigint`?Number(l):l,r=n.getPluralRules(t,{type:c.pluralType}).select(e-(c.offset||0));a=(Object.prototype.hasOwnProperty.call(c.options,r)?c.options[r]:void 0)||c.options.other}if(!a)throw new Rf(c.value,l,Object.keys(c.options),o);let u=typeof l==`bigint`?Number(l):l;s.push(...Uf(a.value,t,n,r,i,u-(c.offset||0)));continue}}return Vf(s)}function Wf(e,t){return t?{...e,...t,...Object.keys(e).reduce((n,r)=>(n[r]={...e[r],...t[r]},n),{})}:e}function Gf(e,t){return t?Object.keys(e).reduce((n,r)=>(n[r]=Wf(e[r],t[r]),n),{...e}):e}function Kf(e){return{create(){return{get(t){return e[t]},set(t,n){e[t]=n}}}}}function qf(e={number:{},dateTime:{},pluralRules:{}}){return{getNumberFormat:kd((...e)=>new Intl.NumberFormat(...e),{cache:Kf(e.number),strategy:Bd.variadic}),getDateTimeFormat:kd((...e)=>new Intl.DateTimeFormat(...e),{cache:Kf(e.dateTime),strategy:Bd.variadic}),getPluralRules:kd((...e)=>new Intl.PluralRules(...e),{cache:Kf(e.pluralRules),strategy:Bd.variadic})}}var Jf=class e{constructor(t,n=e.defaultLocale,r,i){if(this.formatterCache={number:{},dateTime:{},pluralRules:{}},this.format=e=>{let t=this.formatToParts(e);if(t.length===1)return t[0].value;let n=t.reduce((e,t)=>(!e.length||t.type!==0||typeof e[e.length-1]!=`string`?e.push(t.value):e[e.length-1]+=t.value,e),[]);return n.length<=1?n[0]||``:n},this.formatToParts=e=>Uf(this.ast,this.locales,this.formatters,this.formats,e,void 0,this.message),this.resolvedOptions=()=>({locale:this.resolvedLocale?.toString()||Intl.NumberFormat.supportedLocalesOf(this.locales)[0]}),this.getAst=()=>this.ast,this.locales=n,this.resolvedLocale=e.resolveLocale(n),typeof t==`string`){if(this.message=t,!e.__parse)throw TypeError("IntlMessageFormat.__parse must be set to process `message` of type `string`");let{...n}=i||{};this.ast=e.__parse(t,{...n,locale:this.resolvedLocale})}else this.ast=t;if(!Array.isArray(this.ast))throw TypeError(`A message must be provided as a String or AST.`);this.formats=Gf(e.formats,r),this.formatters=i&&i.formatters||qf(this.formatterCache)}static{this.memoizedDefaultLocale=null}static get defaultLocale(){return e.memoizedDefaultLocale||=new Intl.NumberFormat().resolvedOptions().locale,e.memoizedDefaultLocale}static{this.resolveLocale=e=>{if(Intl.Locale===void 0)return;let t=Intl.NumberFormat.supportedLocalesOf(e);return t.length>0?new Intl.Locale(t[0]):new Intl.Locale(typeof e==`string`?e:e[0])}}static{this.__parse=If}static{this.formats={number:{integer:{maximumFractionDigits:0},currency:{style:`currency`},percent:{style:`percent`}},date:{short:{month:`numeric`,day:`numeric`,year:`2-digit`},medium:{month:`short`,day:`numeric`,year:`numeric`},long:{month:`long`,day:`numeric`,year:`numeric`},full:{weekday:`long`,month:`long`,day:`numeric`,year:`numeric`}},time:{short:{hour:`numeric`,minute:`numeric`},medium:{hour:`numeric`,minute:`numeric`,second:`numeric`},long:{hour:`numeric`,minute:`numeric`,second:`numeric`,timeZoneName:`short`},full:{hour:`numeric`,minute:`numeric`,second:`numeric`,timeZoneName:`short`}}}}},Yf={"@astryx.pagination.label":{defaultMessage:`Pagination`,description:`Aria label for the pagination navigation region.`},"@astryx.pagination.previous":{defaultMessage:`Go to previous page`,description:`Aria label for the previous-page button.`},"@astryx.pagination.next":{defaultMessage:`Go to next page`,description:`Aria label for the next-page button.`},"@astryx.pagination.previousBy":{defaultMessage:`Go back {step, number} {step, plural, one {page} other {pages}}`,description:"Aria label for the previous button when it advances more than one page per click (the `step` prop > 1). `step` is the number of pages skipped."},"@astryx.pagination.nextBy":{defaultMessage:`Go forward {step, number} {step, plural, one {page} other {pages}}`,description:"Aria label for the next button when it advances more than one page per click (the `step` prop > 1). `step` is the number of pages skipped."},"@astryx.pagination.first":{defaultMessage:`Go to first page`,description:`Aria label for the first-page button (« double chevron) in the input pagination variant.`},"@astryx.pagination.last":{defaultMessage:`Go to last page`,description:`Aria label for the last-page button (» double chevron) in the input pagination variant.`},"@astryx.pagination.goToPage":{defaultMessage:`Go to page {page, number}`,description:"Aria label for an individual page-number button. `page` is 1-based."},"@astryx.pagination.goToPageInput":{defaultMessage:`Go to page`,description:`Aria label for the editable page/row number box in the input pagination variant. No number — the box holds the value itself.`},"@astryx.pagination.pageLabel":{defaultMessage:`Page`,description:`Visible label before the editable box in the input pagination variant. Example: "Page [ 1 ] / 10".`},"@astryx.pagination.ofTotalPages":{defaultMessage:`/ {total, number}`,description:`Visible total shown after the editable box in the input pagination variant. Example: the "/ 10" in "Page [ 1 ] / 10".`},"@astryx.pagination.pageIndicators":{defaultMessage:`Page indicators`,description:`Aria label for the dots-variant page-indicator group.`},"@astryx.pagination.itemsPerPage":{defaultMessage:`Items per page`,description:`Label for the page-size selector.`},"@astryx.pagination.count":{defaultMessage:`{from, number}–{to, number} of {total, number}`,description:`Visible range-of-total text on a pagination bar. Example: "1–20 of 347"; the en-dash is translator's choice.`},"@astryx.pagination.pageOfTotal":{defaultMessage:`Page {current, number} of {total, number}`,description:`Visible "Page X of Y" text on the compact pagination variant; also announced by screen readers. Keep short — sits in a compact toolbar.`},"@astryx.pagination.pageAnnounce":{defaultMessage:`Page {current, number}`,description:`Screen-reader announcement when a page changes and total is unknown.`},"@astryx.powersearch.editor.field":{defaultMessage:`Field`,description:`Noun form-label above the field-picker dropdown in the PowerSearch filter-builder popover (which data column to filter on). Not an action.`},"@astryx.powersearch.editor.operator":{defaultMessage:`Operator`,description:`Noun form-label above the operator dropdown in the PowerSearch filter-builder popover. Refers to a comparison verb ("is", "contains"), not a math or phone operator.`},"@astryx.powersearch.editor.addFilter":{defaultMessage:`+ Add filter`,description:`Button label inside a group in the PowerSearch filter-builder; adds another filter row (e.g. "Status = Active"). The leading "+ " is a plus-sign character.`},"@astryx.powersearch.editor.removeFilter":{defaultMessage:`Remove filter`,description:`Screen-reader-only label on the "×" icon button next to a filter row in the PowerSearch editor; removes that row. Imperative verb.`},"@astryx.powersearch.editor.groupOperator":{defaultMessage:`Group operator`,description:`Screen-reader-only label for the AND/OR toggle that combines sibling filters inside a filter group. Sighted users see just "AND" or "OR".`},"@astryx.powersearch.editor.group":{defaultMessage:`Group`,description:`Fallback noun label shown on a nested filter-group chip when no AND/OR combining operator has been chosen. Use the noun ("a cluster"), not the verb "to group".`},"@astryx.powersearch.editor.delete":{defaultMessage:`Delete`,description:`Button label inside the PowerSearch filter-editor popover; deletes the currently-edited filter row. Imperative verb form.`},"@astryx.powersearch.editor.cancel":{defaultMessage:`Cancel`,description:`Button label inside the PowerSearch filter-editor popover; closes the popover and discards pending edits. Imperative verb form.`},"@astryx.powersearch.editor.apply":{defaultMessage:`Apply`,description:`Primary button label inside the PowerSearch filter-editor popover; confirms the edited filter. Imperative verb; consumers may override to "Save".`},"@astryx.powersearch.valueEditor.value":{defaultMessage:`Value`,description:'Noun form-label above a single free-text/number input in the PowerSearch value editor (e.g. the "acme" in `Name contains acme`). Not a verb or "worth".'},"@astryx.powersearch.valueEditor.values":{defaultMessage:`Values`,description:"Plural noun form-label above a multi-value chip input in the PowerSearch value editor. Should match its singular counterpart `Value` in your language."},"@astryx.powersearch.valueEditor.time":{defaultMessage:`Time`,description:`Noun form-label above a time-of-day (HH:MM) picker in the PowerSearch value editor. Clock time, not duration or era.`},"@astryx.powersearch.valueEditor.date":{defaultMessage:`Date`,description:`Noun form-label above a calendar-date picker in the PowerSearch value editor. Calendar date, not romantic date or fruit.`},"@astryx.powersearch.valueEditor.relativeDate":{defaultMessage:`Relative date`,description:`Label for the relative-date selector (e.g. "Last 7 days") in the PowerSearch value editor.`},"@astryx.powersearch.valueEditor.startDate":{defaultMessage:`Start date`,description:"Noun form-label above the start-of-range date picker in the PowerSearch value editor. Pairs with `End date` — keep the two parallel in your language."},"@astryx.powersearch.valueEditor.endDate":{defaultMessage:`End date`,description:"Noun form-label above the end-of-range date picker in the PowerSearch value editor. Pairs with `Start date` — keep the two parallel."},"@astryx.powersearch.valueEditor.entities":{defaultMessage:`Entities`,description:`"Entities" is jargon — plural noun form-label above an entity picker (people, teams, projects). Prefer a natural collective like "items" if your language has no equivalent.`},"@astryx.powersearch.valueEditor.searchPlaceholder":{defaultMessage:`Search…`,description:"Placeholder inside the search input in the PowerSearch entity/typeahead picker. Imperative verb; trailing `…` is one character."},"@astryx.powersearch.valueEditor.enterValuePlaceholder":{defaultMessage:`Enter value…`,description:"Placeholder inside a free-text single-value input in the PowerSearch value editor. Imperative verb; trailing `…` is one character."},"@astryx.powersearch.valueEditor.addValuesPlaceholder":{defaultMessage:`Add values…`,description:"Placeholder inside a multi-value chip input where the user types items and presses Enter to add each as a chip. Imperative verb; trailing `…` is one character."},"@astryx.powersearch.valueEditor.enterNumberPlaceholder":{defaultMessage:`Enter number…`,description:"Placeholder inside a numeric input in the PowerSearch value editor. Imperative verb; trailing `…` is one character."},"@astryx.powersearch.valueEditor.selectValuesPlaceholder":{defaultMessage:`Select values…`,description:`Placeholder on a dropdown for choosing values from a fixed enum list in the PowerSearch value editor. Imperative verb (user selects, not types).`},"@astryx.powersearch.operator.contains":{defaultMessage:`contains`,description:"PowerSearch string operator, rendered inline as `<field> contains <value>` (e.g. `Name contains acme`). Lowercase verb form."},"@astryx.powersearch.operator.notContains":{defaultMessage:`does not contain`,description:"PowerSearch negated string operator. Example: `Name does not contain test`. Lowercase; pairs with `contains`."},"@astryx.powersearch.operator.startsWith":{defaultMessage:`starts with`,description:"PowerSearch string prefix operator. Example: `Email starts with admin@`. Lowercase."},"@astryx.powersearch.operator.notStartsWith":{defaultMessage:`does not start with`,description:"PowerSearch negated prefix operator. Example: `Email does not start with test`. Lowercase; pairs with `starts with`."},"@astryx.powersearch.operator.endsWith":{defaultMessage:`ends with`,description:"PowerSearch string suffix operator. Example: `Email ends with @meta.com`. Lowercase."},"@astryx.powersearch.operator.notEndsWith":{defaultMessage:`does not end with`,description:"PowerSearch negated suffix operator. Example: `Email does not end with @gmail.com`. Lowercase; pairs with `ends with`."},"@astryx.powersearch.operator.is":{defaultMessage:`is`,description:"PowerSearch equality operator for strings/enums. Example: `Status is Active`. Separate from `operator.equals` (numbers) — translations may diverge."},"@astryx.powersearch.operator.isNot":{defaultMessage:`is not`,description:"PowerSearch inequality operator for strings/enums. Example: `Status is not Draft`. Pairs with `is`; separate from `operator.notEquals`."},"@astryx.powersearch.operator.equals":{defaultMessage:`is`,description:'PowerSearch numeric equality operator. Example: `Age is 30`. Ships same English "is" as `operator.is` but is separate so numbers may diverge (e.g. "equals").'},"@astryx.powersearch.operator.notEquals":{defaultMessage:`is not`,description:"PowerSearch numeric inequality operator. Example: `Count is not 0`. Same divergence option as `operator.equals`."},"@astryx.powersearch.operator.greaterThan":{defaultMessage:`is greater than`,description:"PowerSearch numeric operator, strictly greater than. Example: `Age is greater than 18`. Lowercase."},"@astryx.powersearch.operator.lessThan":{defaultMessage:`is less than`,description:"PowerSearch numeric operator, strictly less than. Example: `Priority is less than 5`. Lowercase."},"@astryx.powersearch.operator.greaterThanOrEqual":{defaultMessage:`is greater than or equal to`,description:'PowerSearch numeric operator, ≥. Example: `Age is greater than or equal to 21`. A shorter form (e.g. "≥") is fine if idiomatic.'},"@astryx.powersearch.operator.lessThanOrEqual":{defaultMessage:`is less than or equal to`,description:"PowerSearch numeric operator, ≤. Example: `Priority is less than or equal to 3`. A shorter form is fine if idiomatic."},"@astryx.powersearch.operator.before":{defaultMessage:`is before`,description:"PowerSearch date operator, strictly earlier. Example: `Created is before 2024-01-01`. Temporal, not spatial."},"@astryx.powersearch.operator.after":{defaultMessage:`is after`,description:"PowerSearch date operator, strictly later. Example: `Updated is after 2024-06-01`. Temporal."},"@astryx.powersearch.operator.between":{defaultMessage:`is between`,description:"PowerSearch date operator, inclusive range. Example: `Created is between 2024-01-01 and 2024-06-30`. The `and <end>` portion is composed separately."},"@astryx.powersearch.operator.isTrue":{defaultMessage:`is true`,description:"PowerSearch boolean operator: matches truthy. Example: `Is admin is true`. Pairs with `is false`; field may be affirmative or a yes/no question."},"@astryx.powersearch.operator.isFalse":{defaultMessage:`is false`,description:"PowerSearch boolean operator: matches falsy. Example: `Is admin is false`. Pairs with `is true`."},"@astryx.powersearch.operator.isAnyOf":{defaultMessage:`is any of`,description:"PowerSearch list operator: value is in the set. Example: `Status is any of [Active, Paused, Draft]`. The value list is composed separately; pairs with `is none of`."},"@astryx.powersearch.operator.isNoneOf":{defaultMessage:`is none of`,description:"PowerSearch negated list operator: value not in the set. Example: `Status is none of [Archived, Deleted]`. Pairs with `is any of`."},"@astryx.powersearch.valueEditor.itemsCount":{defaultMessage:`{count, number} {count, plural, one {item} other {items}}`,description:"Overflow summary on a compact filter chip when the list of selected items is too long. Example: `3 items` or `1 item`."},"@astryx.powersearch.valueEditor.entitiesCount":{defaultMessage:`{count, number} {count, plural, one {entity} other {entities}}`,description:"Overflow summary on a compact filter chip when the list of selected entities is too long. Example: `5 entities` or `1 entity`. Pair with `itemsCount` translation."},"@astryx.powersearch.valueEditor.dateRange":{defaultMessage:`date range`,description:"Fallback lowercase noun rendered inline in a filter chip when a date-range value can't be formatted (e.g. `Created is between date range`). Keep lowercase."},"@astryx.powersearch.valueEditor.filtersCount":{defaultMessage:`{count, number} {count, plural, one {filter} other {filters}}`,description:"Summary inside a filter chip when the value is a nested set of filters. Example: `3 filters` or `1 filter`."},"@astryx.powersearch.resultCount":{defaultMessage:`{count, number} {count, plural, one {result} other {results}}`,description:"Live result-count text next to the PowerSearch input, announced to screen readers on change. Example: `12 results`, `1 result`; keep compact."},"@astryx.alertDialog.cancel":{defaultMessage:`Cancel`,description:`Button label on the secondary/dismiss button of an AlertDialog (modal confirmation). Imperative verb; consumers usually override with task-specific text.`},"@astryx.appShell.mobileNavigation":{defaultMessage:`Mobile navigation`,description:`Screen-reader-only accessible name for the mobile-only navigation region on small viewports. "Mobile" = phone/tablet (small screen), not "movable".`},"@astryx.appShell.skipToContent":{defaultMessage:`Skip to content`,description:`Text of the skip link — the first focusable element on the page, visible only while keyboard-focused. Activating it jumps focus past the navigation to the main content area. Imperative verb; keep short.`},"@astryx.avatar.nameWithStatus":{defaultMessage:`{name}, {status}`,description:`Screen-reader accessible name for an Avatar showing a status indicator; composes the person's name with the status label, e.g. "Jane Doe, Online". {name} = the avatar's name/alt text, {status} = the status dot's label. Adjust separator and order per locale.`},"@astryx.avatarGroup.label":{defaultMessage:`Avatars`,description:`Screen-reader-only fallback name for a horizontal cluster of user avatar images. Plural noun; consumers usually override with "Team members", "Attendees", etc.`},"@astryx.avatarGroup.keyboardHint":{defaultMessage:`Use arrow keys to move between avatars`,description:`Screen-reader-only instruction attached (via aria-describedby) to a group of interactive avatars that share a single Tab stop. Tells keyboard users the Left/Right arrow keys move focus between the avatars. Only announced when the group has interactive (link/button) avatars.`},"@astryx.avatarGroup.overflow":{defaultMessage:`{count, number} more`,description:'Accessible name for the "+N" overflow indicator at the end of an AvatarGroup — announces how many additional avatars are not shown. Example: `5 more`. The visible "+N" text is unaffected; this is the aria-label only.'},"@astryx.banner.dismiss":{defaultMessage:`Dismiss`,description:`"Dismiss" = close/hide this notification (not "reject a person"). Aria label AND tooltip on the small X button on a Banner.`},"@astryx.calendar.previousMonth":{defaultMessage:`Previous month`,description:"Screen-reader-only label on the left-arrow button in a Calendar's month header (navigates one month back). Pairs with `calendar.nextMonth`."},"@astryx.calendar.nextMonth":{defaultMessage:`Next month`,description:"Screen-reader-only label on the right-arrow button in a Calendar's month header (navigates one month forward). Pairs with `calendar.previousMonth`."},"@astryx.calendar.daySelected":{defaultMessage:`{date}, selected`,description:'Accessible name for the Calendar day button that is the current single-mode selection. `{date}` is the localized full date, e.g. "Thursday, January 15, 2026". The trailing state word tells screen-reader users the focused day is selected.'},"@astryx.calendar.dayRangeStart":{defaultMessage:`{date}, range start`,description:"Accessible name for the Calendar day button that begins the selected date range (or the first pick of an in-progress range). `{date}` is the localized full date."},"@astryx.calendar.dayRangeEnd":{defaultMessage:`{date}, range end`,description:"Accessible name for the Calendar day button that ends the selected date range. `{date}` is the localized full date. Pairs with `calendar.dayRangeStart`."},"@astryx.calendar.dayRangeStartAndEnd":{defaultMessage:`{date}, range start and range end`,description:"Accessible name for a Calendar day button that both begins and ends a completed one-day range. `{date}` is the localized full date."},"@astryx.calendar.dayInRange":{defaultMessage:`{date}, in range`,description:"Accessible name for a Calendar day button strictly inside the selected date range (not an endpoint). `{date}` is the localized full date."},"@astryx.calendar.rangeStartAnnounce":{defaultMessage:`Start date {date}. Select an end date.`,description:"Screen-reader announcement after the first pick of a Calendar range selection. `{date}` is the localized full date. Prompts the user that a second pick completes the range."},"@astryx.calendar.rangeCompleteAnnounce":{defaultMessage:`Selected range: {start} to {end}.`,description:"Screen-reader announcement after the second pick completes a Calendar range selection. `{start}` and `{end}` are localized full dates in chronological order."},"@astryx.carousel.label":{defaultMessage:`Carousel`,description:`Screen-reader-only fallback name for a horizontally-scrolling row of items. If "carousel" is unfamiliar in your locale, prefer the standard term (e.g. "slider").`},"@astryx.carousel.scrollLeft":{defaultMessage:`Scroll left`,description:"Screen-reader-only label on the left arrow button in a Carousel. Pairs with `carousel.scrollRight`; in RTL locales, coordinate the two so left/right match layout."},"@astryx.carousel.scrollRight":{defaultMessage:`Scroll right`,description:"Screen-reader-only label on the right arrow button in a Carousel. Pairs with `carousel.scrollLeft`; same RTL note."},"@astryx.carousel.slideLabel":{defaultMessage:`Slide {current, number} of {total, number}`,description:"Screen-reader accessible name for one slide in a Carousel, giving its position. `current` is the 1-based slide number; `total` is the slide count."},"@astryx.chat.status.sending":{defaultMessage:`Sending`,description:`Chat send-status caption under an outgoing message while it is being transmitted. Part of the set sending → sent → delivered → read (or failed) — keep tense/aspect consistent.`},"@astryx.chat.status.sent":{defaultMessage:`Sent`,description:`Chat send-status caption shown once the message reaches the server. Part of the set sending → **sent** → delivered → read (or failed) — keep tense consistent.`},"@astryx.chat.status.delivered":{defaultMessage:`Delivered`,description:`Chat send-status caption shown once the recipient's device received the message. Part of the set sending → sent → **delivered** → read (or failed).`},"@astryx.chat.status.read":{defaultMessage:`Read`,description:`Chat send-status caption shown once the recipient opened the message. English past-participle ("has been read", /rɛd/), not the present verb — part of the set sending → sent → delivered → **read**.`},"@astryx.chat.status.failed":{defaultMessage:`Failed`,description:`Chat send-status caption shown when the send attempt errored. Part of the set — the terminal failure branch, orthogonal to the sent → delivered → read success track.`},"@astryx.chat.messageAriaLabel":{defaultMessage:`Message {status}`,description:"Screen-reader-only accessible name for a chat message row. `{status}` interpolates the localized status word (e.g. `Message sent`, `Message delivered`) — reorder if needed."},"@astryx.chat.pastedText.expand":{defaultMessage:`Expand`,description:`Button label on a chip in the chat composer representing a long pasted text block; clicking reveals full content. "Expand" here means reveal more, not grow physically.`},"@astryx.checkboxList.item.checkbox":{defaultMessage:`Checkbox`,description:`Screen-reader-only last-ditch fallback name for a checkbox inside a list item when no label is provided. Should almost never render — consumers should supply a real label.`},"@astryx.commandPalette.emptySearch":{defaultMessage:`No results`,description:`Fallback empty-state text inside a CommandPalette when the user's query has no matches. Very short (2 words); neutral tone.`},"@astryx.commandPalette.emptyBootstrap":{defaultMessage:`Type to search`,description:`Onboarding empty-state text shown inside a CommandPalette on first open, before the user has typed anything. Imperative sentence fragment.`},"@astryx.commandPalette.resultCount":{defaultMessage:`{count, number} {count, plural, one {result} other {results}}`,description:"Screen-reader-only announcement of how many commands match the CommandPalette query as the user types. Example: `12 results`, `1 result`; keep compact."},"@astryx.commandPalette.noResultsFor":{defaultMessage:`No results for {query}`,description:"Screen-reader-only announcement when a CommandPalette query matches nothing. `{query}` is the user's verbatim search text; keep it last if your language allows so truncation-by-AT still conveys the outcome."},"@astryx.commandPalette.loading":{defaultMessage:`Loading`,description:`Screen-reader-only announcement that a CommandPalette search has started and results are being fetched. Present-progressive form; matches the visible spinner.`},"@astryx.dateRangeInput.presetDateRanges":{defaultMessage:`Preset date ranges`,description:`Screen-reader-only accessible name for the sidebar of quick-pick preset ranges inside a DateRangeInput popover (e.g. "Last 7 days", "This month").`},"@astryx.dateTimeInput.timePlaceholder":{defaultMessage:`Select a time`,description:`Grey placeholder inside the empty time-of-day slot in a DateTimeInput. "Time" = clock time (HH:MM), not duration.`},"@astryx.dialog.close":{defaultMessage:`Close`,description:`"Close" = shut/dismiss the dialog, not "nearby" (English homograph). Aria label AND tooltip on the X at the top-right of a Dialog.`},"@astryx.dropdownMenu.label":{defaultMessage:`Menu`,description:`Screen-reader-only fallback name for a dropdown menu popover. Very generic; consumers usually override. Noun ("a menu"), not the imperative.`},"@astryx.lightbox.close":{defaultMessage:`Close`,description:`"Close" = shut/dismiss (not "nearby"). Screen-reader-only label on the X button that dismisses a Lightbox.`},"@astryx.lightbox.previous":{defaultMessage:`Previous`,description:"Screen-reader-only label on the left-arrow button in a Lightbox (navigates to previous media item). Pairs with `lightbox.next`."},"@astryx.lightbox.next":{defaultMessage:`Next`,description:"Screen-reader-only label on the right-arrow button in a Lightbox (navigates to next media item). Pairs with `lightbox.previous`."},"@astryx.markdown.taskList":{defaultMessage:`Task list`,description:"Screen-reader-only accessible name for a GitHub-flavored Markdown task list (rendered from `- [ ] item` / `- [x] done` syntax)."},"@astryx.markdown.table":{defaultMessage:`Table`,description:'Screen-reader-only accessible name for a table rendered inside a Markdown block. Noun ("a table"), not the verb. Separate from `@astryx.table.label` — translations may diverge.'},"@astryx.mobileNav.closeNavigation":{defaultMessage:`Close navigation`,description:"Screen-reader-only label on the X/close button that dismisses the MobileNav overlay. Pairs with `mobileNav.toggle.open`."},"@astryx.multiSelector.selectAll":{defaultMessage:`Select all`,description:`Label on the checkbox/toggle at the top of a MultiSelector dropdown that selects every option. "All" is a determiner here (as in "all the options"), not the pronoun.`},"@astryx.multiSelector.searchPlaceholder":{defaultMessage:`Search…`,description:"Placeholder inside the search input at the top of a MultiSelector's dropdown panel. Imperative verb; trailing `…` is one character."},"@astryx.multiSelector.searchOptions":{defaultMessage:`Search options`,description:`Screen-reader-only accessible name for that same search input inside a MultiSelector.`},"@astryx.multiSelector.selectAllPartiallySelected":{defaultMessage:`{label}, partially selected`,description:'Accessible name for the MultiSelector select-all option while only some options are selected. `{label}` is the visible select-all label (e.g. "Select all"). ARIA forbids aria-selected="mixed" on options, so the indeterminate state is conveyed through the name instead. "Partially" = some but not all.'},"@astryx.popover.close":{defaultMessage:`Close popover`,description:`"Close" = shut/dismiss, not "nearby". Screen-reader-only label on the close button inside a Popover.`},"@astryx.selector.searchPlaceholder":{defaultMessage:`Search…`,description:"Placeholder inside the search input at the top of a Selector's dropdown panel (for filtering options). Imperative verb; trailing `…` is one character."},"@astryx.selector.searchOptions":{defaultMessage:`Search options`,description:`"Options" = the list of choices in the dropdown. Screen-reader-only accessible name for the search input inside a Selector.`},"@astryx.sideNav.label":{defaultMessage:`Side navigation`,description:`Screen-reader-only accessible name for the primary vertical sidebar nav (usually on the left).`},"@astryx.sideNav.resizeSidebar":{defaultMessage:`Resize sidebar`,description:`Screen-reader-only label on the vertical drag handle at the right edge of the SideNav that lets the user resize the sidebar's width.`},"@astryx.sideNav.heading.openMenu":{defaultMessage:`Open menu`,description:"Screen-reader-only label on the `⋯` overflow-menu button embedded in a SideNav section heading. Same string as `topNav.heading.openMenu` — translations may share."},"@astryx.tabList.label":{defaultMessage:`Tabs`,description:`Screen-reader-only fallback name for a horizontal tab bar. Plural noun; "Tabs" here = UI tab panels, not browser tabs or the Tab key.`},"@astryx.table.label":{defaultMessage:`Table`,description:`Fallback screen-reader-only accessible name for a data-table region when the consumer provides none. Noun ("a table"), not the verb "to table".`},"@astryx.table.noData":{defaultMessage:`No data`,description:`Fallback empty-state text in the table body when there are zero rows. Neutral tone (not error-y); consumers commonly override with something specific like "No results".`},"@astryx.table.filter.allPlaceholder":{defaultMessage:`All`,description:`Placeholder on a per-column filter dropdown when nothing is selected, meaning "no filter — all rows match". Determiner form (as in "all values"), not the pronoun.`},"@astryx.table.filter.reset":{defaultMessage:`Reset`,description:`Button label inside a table's filter panel/popover; clears pending filter values back to defaults. Imperative verb.`},"@astryx.table.filter.apply":{defaultMessage:`Apply`,description:"Primary button label inside a table's filter panel/popover; commits pending filter values. Imperative verb; pairs with `Reset`."},"@astryx.table.selection.selectAllRows":{defaultMessage:`Select all rows`,description:`Aria label for the "select all rows" checkbox in a Table header.`},"@astryx.table.selection.selectRow":{defaultMessage:`Select row`,description:`Aria label for the "select row" checkbox on a Table row.`},"@astryx.table.selection.selectRowNamed":{defaultMessage:`Select {label}`,description:`Aria label for a Table row's selection checkbox when a per-row label is available (via getRowLabel). \`label\` is the row's human-readable identity, e.g. "Alice".`},"@astryx.table.sort.ascending":{defaultMessage:`Sort ascending`,description:"Screen-reader-only label on a column header button that will sort the column ascending. Part of a set with `sort.descending` and `sort.clear` — keep parallel."},"@astryx.table.sort.descending":{defaultMessage:`Sort descending`,description:"Screen-reader-only label on a column header button that will sort the column descending. Part of a set with `sort.ascending` and `sort.clear`."},"@astryx.table.sort.clear":{defaultMessage:`Clear sort`,description:`Screen-reader-only label on a column header button that will remove the current sort. "Clear" here means remove, not transparent. Part of the sort set.`},"@astryx.table.sort.direction.ascending":{defaultMessage:`ascending`,description:"Localized direction word interpolated as `direction` into @astryx.table.sort.sortedBy and @astryx.table.sort.sortedByWithPriority."},"@astryx.table.sort.direction.descending":{defaultMessage:`descending`,description:"Localized direction word interpolated as `direction` into @astryx.table.sort.sortedBy and @astryx.table.sort.sortedByWithPriority."},"@astryx.table.sort.sortBy":{defaultMessage:`Sort by {label}`,description:"Aria label for a sortable Table header button when the column is unsorted. `label` is the column header text."},"@astryx.table.sort.sortedBy":{defaultMessage:`Sort by {label}, sorted {direction}`,description:"Aria label for a sorted Table header button. `direction` is the localized direction word from @astryx.table.sort.direction.*."},"@astryx.table.sort.sortedByWithPriority":{defaultMessage:`Sort by {label}, sorted {direction}, priority {rank, number} of {total, number}`,description:"Aria label for a sorted Table header button in multi-sort. `rank` is the 1-based position of this column in the sort order; `total` is the number of sorted columns."},"@astryx.toast.dismiss":{defaultMessage:`Dismiss notification`,description:"Screen-reader-only label on the X button of a Toast (transient notification popup). Distinct from `banner.dismiss` (persistent banner)."},"@astryx.toast.viewport":{defaultMessage:`Notifications`,description:`Screen-reader-only accessible name for the invisible landmark region hosting the stack of Toast popups (usually pinned to a screen corner).`},"@astryx.tokenizer.clearAll":{defaultMessage:`Clear all`,description:`Label on the "×" button that removes every token/chip from a Tokenizer input. Imperative verb + determiner "all"; short.`},"@astryx.topNav.heading.openMenu":{defaultMessage:`Open menu`,description:"Screen-reader-only label on the `⋯` overflow button in a TopNav section heading. Kept separate from `sideNav.heading.openMenu` so translations may diverge."},"@astryx.topNav.landmarkLabel":{defaultMessage:`Top navigation`,description:`Default accessible name (aria-label) for the <nav> landmark rendered by TopNav when no label is provided.`},"@astryx.treeList.toggleChildren":{defaultMessage:`Toggle children`,description:`"Children" = child nodes in the tree, not human children. Screen-reader-only label on the chevron next to a TreeList item that has children — toggles the sub-list.`},"@astryx.typeahead.emptySearchResults":{defaultMessage:`No results found`,description:`Fallback empty-state message inside a Typeahead's suggestion popover when the current query has no matches. Neutral tone (not error-y).`},"@astryx.typeahead.loading":{defaultMessage:`Loading`,description:`Screen-reader-only name for a spinner shown inside a Typeahead dropdown while suggestions are being fetched. Present-progressive form.`},"@astryx.typeahead.searchResults":{defaultMessage:`Search results`,description:`Screen-reader-only accessible name for the list of suggestions inside a Typeahead dropdown.`},"@astryx.typeahead.clearSelection":{defaultMessage:`Clear selection`,description:`"Selection" = the chosen value (not highlighted text). Screen-reader-only label on the X that clears the currently-selected value from a Typeahead.`},"@astryx.breadcrumbs.label":{defaultMessage:`Breadcrumb`,description:"Screen-reader-only fallback name for the breadcrumb trail (e.g. `Home > Section > Page`). Singular in English per ARIA convention; plural is fine if natural in your locale."},"@astryx.chat.composer.placeholder":{defaultMessage:`Type a message…`,description:"Grey placeholder text inside the empty chat composer textarea. Imperative verb; trailing `…` is one character."},"@astryx.chat.composerDrawer.label":{defaultMessage:`Items`,description:`Fallback aria label for the ChatComposerDrawer — a horizontal list of attachment/tool chips. Consumers usually override with "Attachments", "Tools", etc.`},"@astryx.chat.composerInput.label":{defaultMessage:`Message input`,description:`Screen-reader-only accessible name for the chat composer textarea. Reorder freely if your language uses one word for "message field".`},"@astryx.chat.speechRecognition.noSpeechDetected":{defaultMessage:`No speech was detected.`,description:`Full-sentence error shown inline in the chat composer after voice input captured silence. Soft-error tone (not alarming); keep terminal period.`},"@astryx.commandPalette.label":{defaultMessage:`Command palette`,description:`Screen-reader-only fallback name for a keyboard-driven command menu (usually opened with Cmd/Ctrl-K). If unfamiliar, prefer a natural equivalent like "quick actions".`},"@astryx.commandPalette.input.placeholder":{defaultMessage:`Search…`,description:"Grey placeholder inside the CommandPalette's search input. Imperative verb; trailing `…` is one character."},"@astryx.commandPalette.list.label":{defaultMessage:`Commands`,description:`"Command" = an app action a user can invoke (metaphor from CLI), not a Unix command. Screen-reader-only name for the matching-commands list.`},"@astryx.contextMenu.label":{defaultMessage:`Context menu`,description:`Screen-reader-only fallback name for the right-click / long-press popup menu. "Context" = context-specific to the activated element, not linguistic context.`},"@astryx.dateInput.placeholder":{defaultMessage:`Select a date`,description:`Grey placeholder inside an empty DateInput field. "Date" = calendar date, not romantic or fruit. Imperative verb.`},"@astryx.dateInput.dialogLabel":{defaultMessage:`Choose date`,description:`Screen-reader-only accessible name for the popover dialog opened from a DateInput's calendar toggle. Imperative verb + noun.`},"@astryx.dateInput.closeCalendar":{defaultMessage:`Close calendar`,description:"Screen-reader-only label on the X inside the DateInput calendar popover (dismisses the popover). Distinct from `dateInput.toggleCalendarClose`, which labels the outer toggle."},"@astryx.dateInput.openCalendar":{defaultMessage:`Open calendar`,description:`Aria label for the DateInput / DateRangeInput / DateTimeInput calendar toggle button when the popover is closed.`},"@astryx.dateInput.toggleCalendarClose":{defaultMessage:`Close calendar`,description:`Aria label for the DateInput / DateRangeInput / DateTimeInput calendar toggle button when the popover is open. Distinct from closeCalendar (which labels the X inside the popover) so translators can differentiate the toggle vs the close-X UI.`},"@astryx.dateInput.clear":{defaultMessage:`Clear {label}`,description:"Aria label for the clear-value button in DateInput / DateRangeInput / DateTimeInput. `{label}` is the field's own label so screen readers announce e.g. 'Clear Start date'."},"@astryx.dateTimeInput.timeSuffix":{defaultMessage:`{label} time`,description:'Screen-reader-only accessible name for the time-of-day slot in a DateTimeInput. Example: `Start date time`; reorder freely (e.g. "time of {label}").'},"@astryx.dateRangeInput.placeholder":{defaultMessage:`Select date range`,description:`Grey placeholder inside an empty DateRangeInput field. Represents picking a start–end date pair. Imperative verb.`},"@astryx.dateRangeInput.dialogLabel":{defaultMessage:`Choose date range`,description:`Screen-reader-only accessible name for the popover dialog opened from a DateRangeInput. Imperative verb + noun phrase.`},"@astryx.dateTimeInput.placeholder":{defaultMessage:`Select a date`,description:`Grey placeholder inside an empty DateTimeInput field. Note: the English says only "date" though the field is date+time — do not add "and time" unless natural.`},"@astryx.dateTimeInput.dialogLabel":{defaultMessage:`Choose date`,description:`Screen-reader-only accessible name for the DateTimeInput picker dialog. Same English-only "date" phrasing as the placeholder — don't add "and time" unless natural.`},"@astryx.link.newTab":{defaultMessage:`(opens in new tab)`,description:"Visually-hidden (screen-reader-only) suffix appended to a Link's accessible name when it opens in a new tab. Example: `Documentation (opens in new tab)`."},"@astryx.mobileNav.toggle.open":{defaultMessage:`Open navigation`,description:"Screen-reader-only label on the hamburger button that opens the MobileNav overlay (rendered when the overlay is closed). Pairs with `mobileNav.closeNavigation`."},"@astryx.moreMenu.label":{defaultMessage:`More options`,description:"Screen-reader-only name for the small `⋯` (three-dots) overflow button that opens a menu of additional actions. Very short — sits on a tiny icon button."},"@astryx.multiSelector.selectPlaceholder":{defaultMessage:`Select…`,description:'Placeholder on an empty MultiSelector trigger button. Same English as `selector.placeholder` but a separate key — plural phrasing like "Choose items…" is fine.'},"@astryx.outline.label":{defaultMessage:`Table of contents`,description:"Screen-reader-only fallback name for a page's outline / table-of-contents sidebar (list of in-page headings). Rendered as `aria-label` on a `<nav>` landmark."},"@astryx.powersearch.label":{defaultMessage:`Search`,description:`Screen-reader-only accessible name for the PowerSearch input (a filter-builder). The visible placeholder is separate; noun form often reads better than the verb.`},"@astryx.powersearch.placeholder":{defaultMessage:`Search…`,description:"Grey placeholder text inside the empty PowerSearch input. Imperative verb; trailing `…` is one character."},"@astryx.resizable.collapsed":{defaultMessage:`Collapsed`,description:`aria-valuetext for the Resizable drag handle (role=separator) while its panel is collapsed to zero size. Replaces the numeric value announcement, since the numeric value is clamped to the minimum while collapsed. Adjective describing the panel state, not a verb/command.`},"@astryx.resizable.handle.label":{defaultMessage:`Resize handle`,description:`Screen-reader-only accessible name for the small draggable divider between two Resizable panels (users drag it to change the split ratio).`},"@astryx.selector.placeholder":{defaultMessage:`Select…`,description:"Placeholder text on an empty Selector trigger button (a dropdown). Imperative verb; trailing `…` is one character. Very short — appears on the button face."},"@astryx.sideNav.heading.dialogLabel":{defaultMessage:`Navigation menu`,description:`Screen-reader-only accessible name for the dropdown dialog opened from a SideNavHeading's overflow menu.`},"@astryx.table.pagination.label":{defaultMessage:`Table pagination`,description:"Screen-reader-only accessible name for the pagination `<nav>` appended below a data table. Kept separate from `@astryx.pagination.label` so translations may diverge."},"@astryx.timeInput.placeholder":{defaultMessage:`Select a time`,description:`"Time" = clock time (HH:MM), not duration or era. Grey placeholder inside an empty TimeInput field; imperative verb.`},"@astryx.topNav.heading.dialogLabel":{defaultMessage:`Navigation menu`,description:`Screen-reader-only accessible name for the dropdown dialog opened from a TopNavHeading's overflow menu. Kept separate from the SideNav sibling.`},"@astryx.typeahead.searchPlaceholder":{defaultMessage:`Search…`,description:"Placeholder inside an empty Typeahead input (a search field that suggests results as the user types). Imperative verb; trailing `…` is one character."},"@astryx.banner.collapse":{defaultMessage:`Collapse`,description:'"Collapse" = fold up, not crumble. Aria label AND tooltip on the Banner expand/collapse toggle when currently expanded. Pairs with `banner.expand`.'},"@astryx.banner.expand":{defaultMessage:`Expand`,description:'"Expand" = reveal more, not grow physically. Aria label AND tooltip on the same toggle when currently collapsed. Pairs with `banner.collapse`.'},"@astryx.button.loading":{defaultMessage:`Loading`,description:'Screen-reader-only live-region announcement while a Button is in its loading state (spinner shown, action in flight). Progressive sense ("work in progress"), not a noun. Kept separate from `typeahead.loading` — translations may diverge.'},"@astryx.chatComposerDrawer.expand":{defaultMessage:`Expand {label}`,description:"Screen-reader-only label on the ChatComposerDrawer toggle when the drawer is collapsed. `{label}` is the drawer's visible name — example: `Expand Attachments`. Pairs with `collapse`."},"@astryx.chatComposerDrawer.collapse":{defaultMessage:`Collapse {label}`,description:"Screen-reader-only label on the ChatComposerDrawer toggle when the drawer is expanded. Example: `Collapse Attachments`. Pairs with `expand`."},"@astryx.chatDictationButton.startDictation":{defaultMessage:`Start dictation`,description:`Accessible label for the microphone button when idle (not listening).`},"@astryx.chatDictationButton.stopDictation":{defaultMessage:`Stop dictation`,description:`Accessible label for the microphone button when actively listening.`},"@astryx.chatLayout.newMessages":{defaultMessage:`New messages`,description:`Text on a floating pill at the bottom of a chat viewport when unseen messages arrive below the fold; clicking scrolls to bottom. Keep short — narrow pill.`},"@astryx.chatLayoutScrollButton.scrollToBottom":{defaultMessage:`Scroll to bottom`,description:`Visible tooltip AND screen-reader label for a small down-arrow button that scrolls the chat viewport to its latest message.`},"@astryx.chatMessage.messageFrom":{defaultMessage:`Message from {sender}`,description:"Screen-reader-only accessible name for a chat message when the sender name isn't visible. Example: `Message from Sarah`, `Message from Bot` — reorder freely."},"@astryx.chatSendButton.stop":{defaultMessage:`Stop`,description:"Button label that replaces `Send` on the chat send button while an AI response is streaming; clicking aborts generation. Short — appears on a small button."},"@astryx.chatSendButton.send":{defaultMessage:`Send`,description:"Primary button label on the chat submit button (paperplane icon). Imperative verb; pairs with `Stop`. Very short."},"@astryx.chatToolCalls.error":{defaultMessage:`Error: {message}`,description:`Screen-reader text for a tool call that failed. {message} is the error detail.`},"@astryx.chatToolCalls.groupLabel":{defaultMessage:`{count} tool calls`,description:`Summary label shown in the group header when multiple tool calls are expanded. {count} is the number of calls.`},"@astryx.chatTriggerMenu.suggestions":{defaultMessage:`Suggestions`,description:"Screen-reader-only fallback label for the popover listbox opened by a trigger character (`@`, `/`) in the chat composer when the trigger provides no specific label."},"@astryx.citation.label":{defaultMessage:`Citation {number}: {title}`,description:"Screen-reader-only accessible name for a Citation chip (a small numbered link to a source). Example: `Citation 1: OpenAI research paper`. Reorder freely."},"@astryx.codeBlock.copied":{defaultMessage:`Copied`,description:'Screen-reader-only label on the CodeBlock copy button for ~2s after a successful copy. Past-participle ("has been copied"); pairs with `codeBlock.copyCode`.'},"@astryx.codeBlock.copyCode":{defaultMessage:`Copy code`,description:'"Code" = source code. Aria label AND tooltip on the CodeBlock copy button in its default state. Pairs with `codeBlock.copied` (post-click state).'},"@astryx.codeBlock.code":{defaultMessage:`Code`,description:`Screen-reader-only fallback name for a code-snippet scroll container when the code's language is unknown. "Code" = source code, not secret code or code of conduct.`},"@astryx.field.optional":{defaultMessage:`Optional`,description:`Visible indicator shown next to a form field's label when the field is optional (isOptional). Mutually exclusive with the required indicator. Very short — appears inline after the label text.`},"@astryx.field.required":{defaultMessage:`Required`,description:`Visible indicator shown next to a form field's label when the field must be filled in (isRequired). Mutually exclusive with the optional indicator. Very short — appears inline after the label text.`},"@astryx.fileInput.clearLabel":{defaultMessage:`Clear {label}`,description:"Screen-reader-only label on the X that removes the selected file from a FileInput. Example: `Clear Attachment`, `Clear Résumé`."},"@astryx.fileInput.required":{defaultMessage:`Required`,description:'Screen-reader-only description on the FileInput trigger indicating the field must be filled in. Mirrors the visible `Required` indicator next to the field label; conveyed via description because aria-required is not supported on role="button".'},"@astryx.fileInput.triggerWithFiles":{defaultMessage:`{label}, {fileNames}`,description:"Accessible name for a FileInput trigger that has files attached, composing the field label with the selected filenames. Example: `Attachments, report.pdf, notes.txt`."},"@astryx.keyboardHint.toNavigate":{defaultMessage:`to navigate`,description:"Trailing text in the keyboard-hint badge, shown after arrow-key icons — reads as `← → to navigate`. Lowercase sentence fragment completing the visual phrase; the badge is aria-hidden, so this is for sighted users only."},"@astryx.lightbox.mediaViewer":{defaultMessage:`Media viewer`,description:`Screen-reader-only fallback name for the Lightbox dialog when the current media item has no alt text. Should rarely render — consumers should provide alt.`},"@astryx.lightbox.zoom":{defaultMessage:`Zoom`,description:`Screen-reader-only label on the Lightbox image acting as a zoom toggle button (aria-pressed reflects zoomed state). Verb ("to zoom"), very short.`},"@astryx.lightbox.zoomedIn":{defaultMessage:`Zoomed in, use arrow keys to pan`,description:"Polite screen-reader announcement after zooming into a Lightbox image, including a hint that arrow keys pan while zoomed. Pairs with `lightbox.zoomedOut`."},"@astryx.lightbox.zoomedOut":{defaultMessage:`Zoomed out`,description:"Polite screen-reader announcement after zooming back out of a Lightbox image. Pairs with `lightbox.zoomedIn`."},"@astryx.metadataList.showMore":{defaultMessage:`Show more`,description:"Button label under a MetadataList that reveals items hidden beyond the configured maximum. Toggles with `metadataList.showLess` — keep the pair parallel in your language."},"@astryx.metadataList.showLess":{defaultMessage:`Show less`,description:"Button label under a MetadataList that re-hides the extra items revealed by `metadataList.showMore`. Keep the pair parallel."},"@astryx.mobileNav.navigation":{defaultMessage:`Navigation`,description:`Screen-reader-only fallback name for the MobileNav overlay dialog when no explicit label was passed.`},"@astryx.multiSelector.clearAll":{defaultMessage:`Clear all {label}`,description:"Screen-reader-only label on the X that clears every selected value from a MultiSelector. Example: `Clear all Countries`. `{label}` is typically already plural in English."},"@astryx.input.statusButton.error":{defaultMessage:`Error details`,description:`Accessible name for the focusable status icon button inside an input when statusVariant is 'tooltip' and the status type is error. Activating or focusing the button reveals the error message in a tooltip. Keep it short — it labels an icon-only button.`},"@astryx.input.statusButton.warning":{defaultMessage:`Warning details`,description:`Accessible name for the focusable status icon button inside an input when statusVariant is 'tooltip' and the status type is warning. Activating or focusing the button reveals the warning message in a tooltip.`},"@astryx.input.statusButton.success":{defaultMessage:`Success details`,description:`Accessible name for the focusable status icon button inside an input when statusVariant is 'tooltip' and the status type is success. Activating or focusing the button reveals the success message in a tooltip.`},"@astryx.numberInput.clearLabel":{defaultMessage:`Clear {label}`,description:"Screen-reader-only label on the X that clears the value from a NumberInput. Example: `Clear Age`, `Clear Quantity`."},"@astryx.numberInput.decrementLabel":{defaultMessage:`Decrement {label}`,description:"Accessible label for the NumberInput button that decreases the value by one configured step. Example: `Decrement Quantity`."},"@astryx.numberInput.incrementLabel":{defaultMessage:`Increment {label}`,description:"Accessible label for the NumberInput button that increases the value by one configured step. Example: `Increment Quantity`."},"@astryx.selector.clearLabel":{defaultMessage:`Clear {label}`,description:"Screen-reader-only label on the X that clears the selected value from a Selector. `{label}` is the selector's visible label — example: `Clear Country`."},"@astryx.sideNavCollapseButton.expandSidebar":{defaultMessage:`Expand sidebar`,description:"Aria label AND tooltip on the SideNav collapse/expand toggle when the sidebar is currently collapsed (clicking expands it). Pairs with `collapseSidebar`."},"@astryx.sideNavCollapseButton.collapseSidebar":{defaultMessage:`Collapse sidebar`,description:"Aria label AND tooltip on the same toggle when the sidebar is currently expanded (clicking collapses it). Pairs with `expandSidebar`."},"@astryx.sideNavItem.expand":{defaultMessage:`Expand {label}`,description:"Screen-reader-only label on the chevron next to a SideNav item with children when the group is collapsed. Example: `Expand Settings`. Pairs with `sideNavItem.collapse`."},"@astryx.sideNavItem.collapse":{defaultMessage:`Collapse {label}`,description:"Screen-reader-only label on the same chevron when the group is expanded. Example: `Collapse Settings`. Pairs with `sideNavItem.expand`."},"@astryx.tableFiltering.filterByColumn":{defaultMessage:`Filter {header}`,description:"Triple-use string on per-column filter controls: visible label, placeholder, AND aria label. `{header}` is the column header — example: `Filter Name`. Keep short."},"@astryx.tableGroupedRows.expandGroup":{defaultMessage:`Expand group {groupKey}`,description:"Screen-reader-only label on the chevron next to a grouped table's group header when collapsed. Example: `Expand group Q1 2024`. Pairs with `collapseGroup`."},"@astryx.tableGroupedRows.collapseGroup":{defaultMessage:`Collapse group {groupKey}`,description:"Screen-reader-only label on the same chevron when the group is expanded. Example: `Collapse group Q1 2024`. Pairs with `expandGroup`."},"@astryx.tableRowExpansion.collapseRow":{defaultMessage:`Collapse row`,description:`Screen-reader-only label on the row-expand chevron when the row is currently expanded. Part of the four-way expand/collapse set.`},"@astryx.tableRowExpansion.expandRow":{defaultMessage:`Expand row`,description:"Screen-reader-only label on the row-expand chevron when the row is currently collapsed. Part of a four-way set with `collapseRow`, `expandAllRows`, `collapseAllRows`."},"@astryx.tableRowExpansion.collapseAllRows":{defaultMessage:`Collapse all rows`,description:`Screen-reader-only label on the same header button when every row is expanded. Part of the four-way set.`},"@astryx.tableRowExpansion.expandAllRows":{defaultMessage:`Expand all rows`,description:`Screen-reader-only label on the header expand-all/collapse-all button when at least one row is collapsed (clicking expands every expandable row). Part of the four-way set.`},"@astryx.step.goToStep":{defaultMessage:`Go to step {stepNumber, number}: {label}`,description:`Accessible name for a clickable step in the lab Stepper. {stepNumber} is the 1-based position, {label} is the step's visible label.`},"@astryx.step.goToStepWithStatus":{defaultMessage:`Go to step {stepNumber, number}: {label}, {status}`,description:"Accessible name for a clickable lab Stepper step that also carries a status. {status} is one of the translated `step.status.*` words (completed/warning/error). Keep the pattern parallel to `step.goToStep`."},"@astryx.step.optional":{defaultMessage:`Optional`,description:`Visible indicator appended after a lab Stepper step's label when the step is optional (isOptional). Very short; appears inline after the label text.`},"@astryx.step.status.completed":{defaultMessage:`completed`,description:`Screen-reader-only status word rendered next to a lab Stepper step label when the step is done (either progress-completed or status=success). Lowercase adjective; it is read mid-sentence after the step label.`},"@astryx.step.status.warning":{defaultMessage:`warning`,description:`Screen-reader-only status word rendered next to a lab Stepper step label when status=warning. Lowercase noun/adjective; read mid-sentence after the step label.`},"@astryx.step.status.error":{defaultMessage:`error`,description:`Screen-reader-only status word rendered next to a lab Stepper step label when status=error. Lowercase noun; read mid-sentence after the step label.`},"@astryx.tableTree.collapseRow":{defaultMessage:`Collapse row`,description:`Aria label for the Table tree-data expander chevron when the row is currently expanded.`},"@astryx.tableTree.expandRow":{defaultMessage:`Expand row`,description:`Aria label for the Table tree-data expander chevron when the row is currently collapsed.`},"@astryx.tableTree.collapseAllRows":{defaultMessage:`Collapse all rows`,description:`Aria label for the Table tree-data header toggle when all rows are expanded and clicking it collapses them.`},"@astryx.tableTree.expandAllRows":{defaultMessage:`Expand all rows`,description:`Aria label for the Table tree-data header toggle when rows are collapsed and clicking it expands them.`},"@astryx.textArea.charactersRemaining":{defaultMessage:`{count, number} {count, plural, one {character} other {characters}} remaining`,description:"Screen-reader-only announcement of how many characters the user can still type before hitting a TextArea's maxLength. Announced politely as the count nears the limit. `{count}` is the number remaining — example: `12 characters remaining`."},"@astryx.textArea.charactersOverLimit":{defaultMessage:`{count, number} {count, plural, one {character} other {characters}} over the limit`,description:"Screen-reader-only assertive announcement when the user has typed past a TextArea's maxLength. `{count}` is how many characters over — example: `3 characters over the limit`."},"@astryx.textInput.clearLabel":{defaultMessage:`Clear {label}`,description:"Screen-reader-only label on the X that clears the value from a TextInput. Example: `Clear Email`, `Clear Name`."},"@astryx.thumbnail.remove":{defaultMessage:`Remove {accessibleName}`,description:'Screen-reader-only label on the "×" on a Thumbnail (image preview chip). `{accessibleName}` is the thumbnail\'s name — example: `Remove profile.jpg`.'},"@astryx.thumbnail.open":{defaultMessage:`Open {accessibleName}`,description:'"Open" = launch/reveal (not "unfold" or the adjective). Screen-reader-only name on a clickable Thumbnail — example: `Open Sunset photo`.'},"@astryx.thumbnail.fallbackName":{defaultMessage:`Thumbnail`,description:"Generic screen-reader name for a Thumbnail (image preview) that has no `alt` or `label`. Last-resort fallback so the control is never nameless; prefer a real name via `alt` or `label`."},"@astryx.timeInput.clearLabel":{defaultMessage:`Clear {label}`,description:"Screen-reader-only label on the X that clears the value from a TimeInput. Example: `Clear Start time`."},"@astryx.timestamp.copyValue":{defaultMessage:`Copy {value}`,description:"Aria label on a Timestamp copyable-hover-card row's copy button, in its default state. `value` is the formatted instant that row shows (e.g. `Copy February 19, 2026 at 5:00:00 PM UTC`). Imperative verb. Pairs with `timestamp.copied` (post-click state)."},"@astryx.timestamp.copy":{defaultMessage:`Copy`,description:"Short label shown in the tooltip on a Timestamp copyable-hover-card row's copy button (hover/focus), in its default state. Imperative verb. Pairs with `timestamp.copied` (post-click state). The full `copyValue` string remains the button's aria-label for assistive tech."},"@astryx.timestamp.copied":{defaultMessage:`Copied`,description:'Aria label on a Timestamp copy button for ~1.5s after a successful copy, and the text announced to a polite live region. Past-participle ("has been copied"); pairs with `timestamp.copyValue`.'},"@astryx.timestamp.detailsLabel":{defaultMessage:`Timestamp details`,description:`Accessible name for the Timestamp copyable hover card popup, which lists the instant in the configured time zones/formats with a copy button per row.`},"@astryx.token.remove":{defaultMessage:`Remove {label}`,description:'Screen-reader-only label on the "×" on an individual Token/chip. Example: `Remove John Smith`, `Remove Active`. Imperative verb.'}},Xf=new Map;function Zf(e,t){let n=`${t}::${e}`,r=Xf.get(n);return r===void 0&&(r=new Jf(e,t),Xf.set(n,r)),r}function Qf(e){let t;try{t=new Intl.Locale(e).baseName}catch{t=e}let n=t.split(`-`),r=[];for(let e=n.length;e>0;e--)r.push(n.slice(0,e).join(`-`));return r}function $f(e,t,n,r){let i=Qf(t);if(r!==void 0)for(let t of i){let n=r[t]?.[e];if(n!==void 0)return n}for(let t of i){let r=n[t]?.[e];if(r!==void 0)return r.defaultMessage}let a=Yf[e];return a===void 0?null:a.defaultMessage}function ep(e,t,n,r,i){let a=$f(e,n,r,i);return a===null?(`${n}${e}`,`${e}${n}`,e):t===void 0?a:Zf(a,n).format(t)}function tp(){let e=(0,J.use)(Od);return(0,J.useCallback)((t,n)=>ep(t,n,e.locale,e.messages,e.overrides),[e.locale,e.messages,e.overrides])}var np={base:{"--button-focus-offset":`xkzo27j`,kInvED:`x1wfwxd8 x13aywxo`,kVAEAm:`x1n2onr6`,k1xSpc:`x3nfvp2`,kGNEyG:`x6s0dn4`,kjj79g:`xl56j7k`,kOIVth:`x1txdalj`,k8WAf4:`xce4md1`,kg3NbH:`xrrkdod`,kMzoRj:`xc342km`,ksu8eU:`xng3xce`,kaIpWk:`x1jxw6zd`,kMv6JI:`xjb2p0i`,kGuDYH:`xcr08ib`,kLWn49:`x1kq96og`,k63SB2:`x1e4wzip`,khDVqt:`xuxw1ft`,kkrTdU:`x1ypdohk`,k1ekBW:`xrafxwg`,kIyJzY:`xuedmi6 x12w9bfk`,kAMwcw:`xlr8y92`,$$css:!0},pressable:{k3aq6I:`x3oybdh xk4oym4`,$$css:!0},disabled:{kkrTdU:`x1h6gzvc`,kSiTet:`xbyyjgo`,kKwaWg:`x18o3ruo`,k3aq6I:`x1c071of x1pdlv7q`,$$css:!0},ariaDisabled:{kKwaWg:`x18o3ruo x8o3jvd xuqm82a`,$$css:!0},iconOnly:{"--button-icon-only-aspect":`x1v15ycx`,kOBAk4:`xioom0i`,kg3NbH:`xnjsko4`,k8WAf4:`xt970qd`,$$css:!0},iconWrapper:{k1xSpc:`x3nfvp2`,kGNEyG:`x6s0dn4`,kjj79g:`xl56j7k`,kmuXW:`x2lah0s`,$$css:!0},contentWrapper:{k1xSpc:`xjp7ctv`,$$css:!0},link:{kybGjl:`x1hl2dhg`,$$css:!0}},rp={width:e=>[{kzqmXN:e==null?e:`x5lhr3w`,$$css:!0},{"--x-width":(e=>typeof e==`number`?e+`px`:e??void 0)(e)}]},ip={sm:{kZKoxP:`x6k0iem`,$$css:!0},md:{kZKoxP:`x1ueg155`,$$css:!0},lg:{kZKoxP:`xssyfek`,$$css:!0}},ap={sm:{kzqmXN:`x1kky2od`,kZKoxP:`xlup9mm`,kGuDYH:`x1j61zf2`,$$css:!0},md:{kzqmXN:`x1kky2od`,kZKoxP:`xlup9mm`,kGuDYH:`x1j61zf2`,$$css:!0},lg:{kzqmXN:`xw4jnvo`,kZKoxP:`x1qx5ct2`,kGuDYH:`xwsyq91`,$$css:!0}},op={none:{kGVxlE:`x1gnnqk1`,$$css:!0},low:{kGVxlE:`x1i5ehqx`,$$css:!0},med:{kGVxlE:`x14hfi27`,$$css:!0},high:{kGVxlE:`x1kcpxr7`,$$css:!0}},sp={primary:{kWkggS:`x1ewilqj`,kMwMTN:`x17wrial`,kKwaWg:`x1ilzqfv xq8i9tn`,$$css:!0},secondary:{kWkggS:`x17x4s8c`,kMwMTN:`x1tgivj0`,kKwaWg:`x1ilzqfv xq8i9tn`,$$css:!0},ghost:{kWkggS:`xjbqb8w`,kMwMTN:`x1tgivj0`,kKwaWg:`x1ilzqfv xq8i9tn`,$$css:!0},destructive:{kWkggS:`x1pjz0fi`,kMwMTN:`x1m024r3`,kjBf7l:`x1e0x2sz`,kKwaWg:`x1ilzqfv xq8i9tn`,$$css:!0}};zt[`--duration-medium-min`];var cp={hiddenContent:{kMwMTN:`x19co3pv`,$$css:!0},hiddenContentDelayed:{kKVMdj:`x1ffowhz`,k44tkh:`xjlvqhv`,kWV6AL:`x10e4vud`,kKxzle:`x17yabm6 x14q22ui`,$$css:!0}},lp={horizontal:{krdFHd:`x15mokao x8eehn2`,kVL7Gh:`xbiv7yw x1xrp5p4`,kfmiAY:`x1ga7v0g xbfdvlp`,kT0f0o:`x16uus16 xajhecq`,k2ei4v:`xgbv0en x1pjv70x`,kVhnKS:`x1t7ytsu xyf0ibl`,kGJrpR:`x1j92z86`,$$css:!0},vertical:{krdFHd:`x15mokao x8eehn2`,kfmiAY:`x1ga7v0g x2qxyot`,kVL7Gh:`xbiv7yw x12tyzlf`,kT0f0o:`x16uus16 xajhecq`,kEafiO:`x11xkdxz x1g31smg`,kPef9Z:`x13fuv20 x1d9v4yf`,kLZC3w:`x1pc3f07`,$$css:!0},onSolidHorizontal:{kGJrpR:`xrvmtm5`,$$css:!0},onSolidVertical:{kLZC3w:`x11npmm7`,$$css:!0}};function up({label:e,variant:t=`secondary`,size:n,type:r=`button`,isDisabled:i=!1,isLoading:a=!1,isInterruptible:o=!1,clickAction:s,icon:c,isIconOnly:l=!1,width:u,elevation:d=`none`,children:f,endContent:p,tooltip:m,href:h,as:g,target:_,rel:v,xstyle:y,className:b,style:x,ref:S,...C}){let w=tp(),T=_d(n,`md`),E=yd(),[D,O]=(0,J.useTransition)(),k=(0,J.useRef)(!1),A=a||D,j=D||o,M=E?.isDisabled??!1,N=i||M||A&&!o,P=Sd(g),F=h!=null&&!N,I=m!=null&&N,L=Vt({placement:`above`,isEnabled:m!=null}),R=e=>{if(N||k.current&&!o){e.preventDefault();return}C.onClick?.(e),s&&!e.defaultPrevented&&(k.current=!0,O(async()=>{try{await s(e)}finally{k.current=!1}}))},z=I?e=>{e.key===`Enter`||e.key===` `?e.preventDefault():C.onKeyDown?.(e)}:void 0,B=t===`ghost`?{[hd]:``}:null,V=Dd.focusVisible(np.base,ip[T],l&&np.iconOnly,N&&np.disabled,I&&np.ariaDisabled,F&&np.link,!E&&np.pressable,E&&(E.orientation===`horizontal`?lp.horizontal:lp.vertical),E&&(t===`primary`||t===`destructive`)&&(E.orientation===`horizontal`?lp.onSolidHorizontal:lp.onSolidVertical),!E&&op[d],u!=null&&rp.width(u),sp[t],y),H=Q(q(`button`,{variant:t,size:T}),V,b,x),ee=(0,Y.jsxs)(Y.Fragment,{children:[A&&(0,Y.jsx)(`span`,{...{0:{className:`x10l6tqk x13vifvy x1o0tod xtijo5x x1ey2m1c xrvj5dj x1ku5rj1`},1:{className:`x10l6tqk x13vifvy x1o0tod xtijo5x x1ey2m1c xrvj5dj x1ku5rj1 xqcmdr3 xb2rp9n xskzprw x17yabm6 x14q22ui`}}[!!j<<0],"aria-hidden":`true`,children:(0,Y.jsx)(pd,{size:`sm`,shade:`inherit`})}),(0,Y.jsxs)(`span`,{...K(np.contentWrapper,A&&(j?cp.hiddenContentDelayed:cp.hiddenContent)),"aria-hidden":A||void 0,children:[c&&(0,Y.jsx)(`span`,{...K(np.iconWrapper,ap[T]),children:c}),l?null:(0,Y.jsx)(`span`,{className:`xb3r6kr xlyipyv xeuugli`,children:f??e}),!l&&p&&(0,Y.jsx)(`span`,{className:`x3nfvp2 x6s0dn4 x1heor9g`,children:p})]}),(0,Y.jsx)(md,{role:`status`,"aria-live":`polite`,children:A?w(`@astryx.button.loading`):``})]}),te=l&&e!==``||A&&!l||f!=null&&f!==e?{"aria-label":e}:null,ne=m==null?null:{"aria-describedby":[C[`aria-describedby`],L.describedBy].filter(Boolean).join(` `)||void 0},re=iu(S,m==null?void 0:L.ref),ie;return ie=F?(0,Y.jsx)(P,{ref:re,href:h,target:_,rel:v,...H,...C,...te,...ne,...B,"aria-busy":A||void 0,onClick:R,children:ee}):(0,Y.jsx)(`button`,{ref:re,type:r,disabled:I?void 0:N,...H,...C,...te,...ne,...B,"aria-busy":A||void 0,"aria-disabled":I||void 0,onClick:R,...z?{onKeyDown:z}:null,children:ee}),m?(0,Y.jsxs)(Y.Fragment,{children:[ie,L.renderTooltip(m)]}):ie}up.displayName=`Button`;function dp({icon:e,...t}){return(0,Y.jsx)(up,{...t,icon:e,isIconOnly:!0})}dp.displayName=`IconButton`;var fp=new Map,pp=/\b(const|let|var|function|class|if|else|for|while|return|import|export|from|default|async|await|try|catch|throw|new|typeof|instanceof|interface|type|enum|extends|implements|switch|case|break|continue|do|in|of|void|null|undefined|true|false|this|super|yield|delete|static|public|private|protected|readonly|abstract|as|is|keyof|declare|module|namespace|require)\b/,mp=/\b(def|class|if|elif|else|for|while|return|import|from|as|with|try|except|raise|True|False|None|and|or|not|in|is|lambda|yield|async|await|pass|break|continue|del|global|nonlocal|assert|finally|print|self|cls)\b/,hp=/\b(if|then|else|elif|fi|for|do|done|while|until|case|esac|function|in|select|return|exit|local|export|source|alias|unalias|readonly|shift|eval|exec|set|unset|trap|wait|read|echo|printf|test|true|false)\b/,gp=/\b(important|inherit|initial|unset|revert|auto|none)\b/,_p=/\b(function|class|if|else|elseif|for|foreach|while|return|echo|public|private|protected|static|new|try|catch|throw|namespace|use|require|require_once|include|include_once|extends|implements|interface|abstract|final|const|var|true|false|null|array|isset|unset|empty|list|match|enum|switch|case|break|continue|do|yield|fn)\b/,vp=/\b(function|class|if|else|for|foreach|while|return|echo|public|private|protected|static|new|try|catch|throw|namespace|use|require|include|extends|implements|interface|abstract|final|const|shape|vec|dict|keyset|async|await|concurrent|enum|type|newtype|tuple|inout)\b/;function yp(e){let t=fp.get(e);if(t!==void 0)return t;let n=bp(e);return fp.set(e,n),n}function bp(e){let t=xp(e);return t?{defaultType:t.defaultType,patterns:t.patterns.map(e=>{let t=e.regex.flags.replace(/[gy]/g,``)+`y`;return{...e,anchored:new RegExp(e.regex.source,t)}})}:null}function xp(e){switch(e){case`typescript`:case`javascript`:case`tsx`:case`jsx`:case`ts`:case`js`:return{defaultType:`variable`,patterns:[{type:`comment`,regex:/\/\*[\s\S]*?\*\//},{type:`comment`,regex:/\/\/[^\n]*/},{type:`string`,regex:/`(?:[^`\\]|\\.)*`/},{type:`string`,regex:/"(?:[^"\\]|\\.)*"/},{type:`string`,regex:/'(?:[^'\\]|\\.)*'/},{type:`constant`,regex:/@[\w]+/},{type:`number`,regex:/\b0[xX][0-9a-fA-F_]+\b/},{type:`number`,regex:/\b0[bB][01_]+\b/},{type:`number`,regex:/\b0[oO][0-7_]+\b/},{type:`number`,regex:/\b\d[\d_]*\.?[\d_]*(?:[eE][+-]?\d+)?\b/},{type:`keyword`,regex:pp},{type:`function`,regex:/\b[a-zA-Z_$][\w$]*(?=\s*\()/},{type:`type`,regex:/\b[A-Z][a-zA-Z0-9_]*\b/},{type:`operator`,regex:/[+\-*/%=!<>&|^~?:]+/},{type:`punctuation`,regex:/[{}()\[\];,.]/},{type:`variable`,regex:/\b[a-zA-Z_$][\w$]*\b/}]};case`json`:return{defaultType:`punctuation`,patterns:[{type:`property`,regex:/"(?:[^"\\]|\\.)*"(?=\s*:)/},{type:`string`,regex:/"(?:[^"\\]|\\.)*"/},{type:`number`,regex:/-?\b\d+\.?\d*(?:[eE][+-]?\d+)?\b/},{type:`constant`,regex:/\b(true|false|null)\b/},{type:`punctuation`,regex:/[{}()\[\]:,]/}]};case`html`:case`xml`:case`svg`:return{defaultType:`variable`,patterns:[{type:`comment`,regex:/<!--[\s\S]*?-->/},{type:`keyword`,regex:/<!DOCTYPE[^>]*>/i},{type:`tag`,regex:/<\/[a-zA-Z][\w-]*\s*>/},{type:`tag`,regex:/<[a-zA-Z][\w-]*/},{type:`tag`,regex:/\/?>/},{type:`string`,regex:/"(?:[^"\\]|\\.)*"/},{type:`string`,regex:/'(?:[^'\\]|\\.)*'/},{type:`attribute`,regex:/\b[a-zA-Z_:][\w:.-]*(?=\s*=)/},{type:`operator`,regex:/=/}]};case`css`:case`scss`:case`less`:return{defaultType:`variable`,patterns:[{type:`comment`,regex:/\/\*[\s\S]*?\*\//},{type:`comment`,regex:/\/\/[^\n]*/},{type:`string`,regex:/"(?:[^"\\]|\\.)*"/},{type:`string`,regex:/'(?:[^'\\]|\\.)*'/},{type:`variable`,regex:/--[a-zA-Z_-][\w-]*/},{type:`number`,regex:/-?\b\d+\.?\d*(?:px|em|rem|%|vh|vw|vmin|vmax|ch|ex|deg|rad|turn|s|ms|fr)?\b/},{type:`constant`,regex:/#[0-9a-fA-F]{3,8}\b/},{type:`keyword`,regex:gp},{type:`keyword`,regex:/@[a-zA-Z][\w-]*/},{type:`tag`,regex:/[.#][a-zA-Z_-][\w-]*/},{type:`keyword`,regex:/::?[a-zA-Z][\w-]*/},{type:`function`,regex:/\b[a-zA-Z_-][\w-]*(?=\s*\()/},{type:`property`,regex:/[a-zA-Z_-][\w-]*(?=\s*:)/},{type:`punctuation`,regex:/[{}()\[\];:,]/},{type:`operator`,regex:/[+~>*=|^$]/}]};case`python`:case`py`:return{defaultType:`variable`,patterns:[{type:`string`,regex:/"""[\s\S]*?"""/},{type:`string`,regex:/'''[\s\S]*?'''/},{type:`string`,regex:/f"(?:[^"\\]|\\.)*"/},{type:`string`,regex:/f'(?:[^'\\]|\\.)*'/},{type:`comment`,regex:/#[^\n]*/},{type:`string`,regex:/"(?:[^"\\]|\\.)*"/},{type:`string`,regex:/'(?:[^'\\]|\\.)*'/},{type:`constant`,regex:/@[\w.]+/},{type:`number`,regex:/\b0[xX][0-9a-fA-F_]+\b/},{type:`number`,regex:/\b0[bB][01_]+\b/},{type:`number`,regex:/\b0[oO][0-7_]+\b/},{type:`number`,regex:/\b\d[\d_]*\.?[\d_]*(?:[eE][+-]?\d+)?j?\b/},{type:`keyword`,regex:mp},{type:`function`,regex:/\b[a-zA-Z_][\w]*(?=\s*\()/},{type:`type`,regex:/\b[A-Z][a-zA-Z0-9_]*\b/},{type:`operator`,regex:/[+\-*/%=!<>&|^~@:]+/},{type:`punctuation`,regex:/[{}()\[\];,.]/},{type:`variable`,regex:/\b[a-zA-Z_][\w]*\b/}]};case`bash`:case`sh`:case`zsh`:case`shell`:return{defaultType:`variable`,patterns:[{type:`comment`,regex:/#[^\n]*/},{type:`string`,regex:/"(?:[^"\\]|\\.)*"/},{type:`string`,regex:/'[^']*'/},{type:`variable`,regex:/\$\{[^}]+\}/},{type:`variable`,regex:/\$[a-zA-Z_][\w]*/},{type:`variable`,regex:/\$[0-9@#?*!$-]/},{type:`number`,regex:/\b\d+\b/},{type:`keyword`,regex:hp},{type:`function`,regex:/\b[a-zA-Z_][\w]*(?=\s*\()/},{type:`operator`,regex:/[|&<>;!]+/},{type:`punctuation`,regex:/[{}()\[\]]/}]};case`php`:return{defaultType:`variable`,patterns:[{type:`comment`,regex:/\/\*[\s\S]*?\*\//},{type:`comment`,regex:/\/\/[^\n]*/},{type:`comment`,regex:/#[^\n]*/},{type:`string`,regex:/"(?:[^"\\]|\\.)*"/},{type:`string`,regex:/'(?:[^'\\]|\\.)*'/},{type:`variable`,regex:/\$[a-zA-Z_][\w]*/},{type:`number`,regex:/\b0[xX][0-9a-fA-F]+\b/},{type:`number`,regex:/\b\d+\.?\d*(?:[eE][+-]?\d+)?\b/},{type:`keyword`,regex:_p},{type:`function`,regex:/\b[a-zA-Z_][\w]*(?=\s*\()/},{type:`type`,regex:/\b[A-Z][a-zA-Z0-9_]*\b/},{type:`operator`,regex:/[+\-*/%=!<>&|^~?:.]+/},{type:`constant`,regex:/@[\w]+/},{type:`punctuation`,regex:/[{}()\[\];,.]/}]};case`hack`:return{defaultType:`variable`,patterns:[{type:`comment`,regex:/\/\*[\s\S]*?\*\//},{type:`comment`,regex:/\/\/[^\n]*/},{type:`string`,regex:/"(?:[^"\\]|\\.)*"/},{type:`string`,regex:/'(?:[^'\\]|\\.)*'/},{type:`variable`,regex:/\$[a-zA-Z_][\w]*/},{type:`number`,regex:/\b0[xX][0-9a-fA-F]+\b/},{type:`number`,regex:/\b\d+\.?\d*(?:[eE][+-]?\d+)?\b/},{type:`keyword`,regex:vp},{type:`type`,regex:/\b[A-Z][a-zA-Z0-9_]*\b/},{type:`function`,regex:/\b[a-zA-Z_][\w]*(?=\s*\()/},{type:`property`,regex:/(?<=->|::)\b[a-zA-Z_][\w]*\b/},{type:`operator`,regex:/[+\-*/%=!<>&|^~?:.]+/},{type:`constant`,regex:/<<[\w]+/},{type:`punctuation`,regex:/[{}()\[\];,.]/}]};case`yaml`:case`yml`:return{defaultType:`variable`,patterns:[{type:`comment`,regex:/#[^\n]*/},{type:`string`,regex:/"(?:[^"\\]|\\.)*"/},{type:`string`,regex:/'(?:[^'\\]|\\.)*'/},{type:`constant`,regex:/\b(true|false|yes|no|on|off|null|~)\b/i},{type:`variable`,regex:/[&*][\w]+/},{type:`type`,regex:/!!\w+/},{type:`number`,regex:/\b-?\d+\.?\d*(?:[eE][+-]?\d+)?\b/},{type:`property`,regex:/^[ \t]*[\w][\w ./-]*(?=\s*:)/m},{type:`keyword`,regex:/---/},{type:`keyword`,regex:/\.\.\./},{type:`operator`,regex:/[:|>\-?]/},{type:`punctuation`,regex:/[{}()\[\],]/},{type:`variable`,regex:/\b[a-zA-Z_][\w]*\b/}]};case`markdown`:case`md`:return{defaultType:`variable`,patterns:[{type:`keyword`,regex:/^```[\w]*$/m},{type:`keyword`,regex:/^#{1,6}\s+.*/m},{type:`keyword`,regex:/^---$/m},{type:`keyword`,regex:/^\*\*\*$/m},{type:`string`,regex:/\*\*(?:[^*]|\*(?!\*))+\*\*/},{type:`string`,regex:/\*(?:[^*])+\*/},{type:`constant`,regex:/`[^`]+`/},{type:`function`,regex:/\[(?:[^\]])+\]\([^)]+\)/},{type:`comment`,regex:/^>\s+.*/m},{type:`operator`,regex:/^\s*[-*+]\s/m},{type:`number`,regex:/^\s*\d+\.\s/m}]};default:return null}}var Sp=800;async function Cp(){return typeof scheduler<`u`&&typeof scheduler.yield==`function`?scheduler.yield():new Promise(e=>setTimeout(e,0))}function wp(e,t,n,r){let i=[],a=n,o=Math.min(r,e.length);for(;a<o;){let r=!1;for(let o of t.patterns){o.anchored.lastIndex=a;let s=o.anchored.exec(e);if(s&&s.index===a&&s[0].length>0){o.type!==t.defaultType&&i.push({type:o.type,start:a-n,end:a-n+s[0].length}),a+=s[0].length,r=!0;break}}r||a++}return i}function Tp(e,t){let n=yp(t);if(!n)return[];let r=[],i=0;for(let t=0;t<=e.length;t++)(t===e.length||e[t]===`
44
- `)&&(r.push(wp(e,n,i,t)),i=t+1);return r}async function Ep(e,t,n){let r=yp(t);if(!r)return[];let i=[],a=0,o=0;for(let t=0;t<=e.length;t++)if((t===e.length||e[t]===`
45
- `)&&(i.push(wp(e,r,a,t)),o+=t-a+1,a=t+1,o>=Sp&&t<e.length)){if(n?.aborted)return i;o=0,await Cp()}return i}function Dp(e,t){let n=[0];for(let e=0;e<t.length;e++)t[e]===`
46
- `&&n.push(e+1);let r=Array.from({length:n.length},()=>[]),i=0;for(let t of e){for(;i<n.length-1&&t.start>=n[i+1];)i++;let e=n[i];r[i].push({type:t.type,start:t.start-e,end:t.end-e})}return r}var Op=`
47
- ${`:root {\n${Object.entries(sn).map(([e,t])=>` ${e}: ${t};`).join(`
48
- `)}\n}`}
49
-
50
- .astryx-codeblock code::highlight(astryx-keyword),
51
- .astryx-codeeditor code::highlight(astryx-keyword) { color: var(--color-syntax-keyword); }
52
- .astryx-codeblock code::highlight(astryx-string),
53
- .astryx-codeeditor code::highlight(astryx-string) { color: var(--color-syntax-string); }
54
- .astryx-codeblock code::highlight(astryx-comment),
55
- .astryx-codeeditor code::highlight(astryx-comment) { color: var(--color-syntax-comment); }
56
- .astryx-codeblock code::highlight(astryx-number),
57
- .astryx-codeeditor code::highlight(astryx-number) { color: var(--color-syntax-number); }
58
- .astryx-codeblock code::highlight(astryx-function),
59
- .astryx-codeeditor code::highlight(astryx-function) { color: var(--color-syntax-function); }
60
- .astryx-codeblock code::highlight(astryx-type),
61
- .astryx-codeeditor code::highlight(astryx-type) { color: var(--color-syntax-type); }
62
- .astryx-codeblock code::highlight(astryx-tag),
63
- .astryx-codeeditor code::highlight(astryx-tag) { color: var(--color-syntax-tag); }
64
- .astryx-codeblock code::highlight(astryx-attribute),
65
- .astryx-codeeditor code::highlight(astryx-attribute) { color: var(--color-syntax-attribute); }
66
- .astryx-codeblock code::highlight(astryx-property),
67
- .astryx-codeeditor code::highlight(astryx-property) { color: var(--color-syntax-property); }
68
- .astryx-codeblock code::highlight(astryx-operator),
69
- .astryx-codeeditor code::highlight(astryx-operator) { color: var(--color-syntax-operator); }
70
- .astryx-codeblock code::highlight(astryx-constant),
71
- .astryx-codeeditor code::highlight(astryx-constant) { color: var(--color-syntax-constant); }
72
- .astryx-codeblock code::highlight(astryx-punctuation),
73
- .astryx-codeeditor code::highlight(astryx-punctuation) { color: var(--color-syntax-punctuation); }
74
- .astryx-codeblock code::highlight(astryx-variable),
75
- .astryx-codeeditor code::highlight(astryx-variable) { color: var(--color-syntax-variable); }
76
-
77
- /* Span-based fallback classes — used when highlightMode='spans' or
78
- when the CSS Custom Highlight API is not available. */
79
- .astryx-token-keyword { color: var(--color-syntax-keyword); }
80
- .astryx-token-string { color: var(--color-syntax-string); }
81
- .astryx-token-comment { color: var(--color-syntax-comment); }
82
- .astryx-token-number { color: var(--color-syntax-number); }
83
- .astryx-token-function { color: var(--color-syntax-function); }
84
- .astryx-token-type { color: var(--color-syntax-type); }
85
- .astryx-token-tag { color: var(--color-syntax-tag); }
86
- .astryx-token-attribute { color: var(--color-syntax-attribute); }
87
- .astryx-token-property { color: var(--color-syntax-property); }
88
- .astryx-token-operator { color: var(--color-syntax-operator); }
89
- .astryx-token-constant { color: var(--color-syntax-constant); }
90
- .astryx-token-punctuation { color: var(--color-syntax-punctuation); }
91
- .astryx-token-variable { color: var(--color-syntax-variable); }
92
- `,kp=!1;function Ap(){if(kp||typeof document>`u`)return;let e=document.createElement(`style`);e.setAttribute(`data-astryx-highlight-styles`,``),e.textContent=Op,document.head.appendChild(e),kp=!0}var jp=new Set([`keyword`,`string`,`comment`,`number`,`function`,`type`,`tag`,`attribute`,`property`,`operator`,`constant`,`punctuation`,`variable`]),Mp=null;function Np(e){if(jp.has(e)||(jp.add(e),Ap(),typeof document>`u`))return;if(!Mp){let e=document.createElement(`style`);if(e.setAttribute(`data-astryx-highlight-dynamic`,``),document.head.appendChild(e),Mp=e.sheet??null,!Mp)return}let t=`astryx-${e}`,n=`var(--color-syntax-${e}, currentColor)`;Mp.insertRule(`.astryx-codeblock code::highlight(${t}), .astryx-codeeditor code::highlight(${t}) { color: ${n}; }`)}function Pp(){let e=new Map;return t=>{let n=e.get(t);if(n)return n;Np(t);let r=`astryx-${t}`;return n=CSS.highlights.get(r),n||(n=new Highlight,CSS.highlights.set(r,n)),e.set(t,n),n}}function Fp(e,t,n,r){if(t.length===0)return;let i=e.firstChild;if(!i||i.nodeType!==Node.TEXT_NODE)return;let a=i.length;for(let e of t){if(e.start>=a||e.end<=0)continue;let t=Math.min(e.start,a),o=Math.min(e.end,a),s=r(e.type);try{let e=new Range;e.setStart(i,t),e.setEnd(i,o),s.add(e),n.push({range:e,highlight:s})}catch{}}}function Ip(e){for(let{range:t,highlight:n}of e)n.delete(t)}function Lp(e,t,n,r){let i=[],a=e.querySelectorAll(`[data-line]`);for(let e=0;e<a.length;e++){let o=t[n+e];o&&o.length>0&&Fp(a[e],o,i,r)}return i}function Rp(e,t){Ap();let n=Pp(),r=[],i=[],a=0;for(let t=0;t<e.children.length;t++){let n=e.children[t],o=n.querySelectorAll(`[data-line]`);o.length>0&&n.tagName===`DIV`&&!n.hasAttribute(`data-line`)&&(r.push(n),i.push(a),a+=o.length)}if(r.length===0){let r=[],i=e.querySelectorAll(`[data-line]`);for(let e=0;e<i.length;e++){let a=t[e];a&&a.length>0&&Fp(i[e],a,r,n)}return()=>Ip(r)}let o=new Map,s=new Map;function c(e,r){if(o.has(e))return;let a=Lp(e,t,i[r],n);o.set(e,a)}function l(e){let t=o.get(e);t&&(Ip(t),o.delete(e))}for(let e=0;e<r.length;e++){let t=r[e],n=n=>{n.skipped?l(t):c(t,e)};t.addEventListener(`contentvisibilityautostatechange`,n),s.set(t,n);let i=t;typeof i.checkVisibility==`function`?i.checkVisibility({checkVisibilityCSS:!0,contentVisibilityAuto:!0})&&c(t,e):e<5&&c(t,e)}return function(){for(let[e,t]of s)e.removeEventListener(`contentvisibilityautostatechange`,t);s.clear();for(let e of o.values())Ip(e);o.clear()}}var zp={card:{kaIpWk:`xh6dtrn`,kMzoRj:`x1litavf`,ksu8eU:`x1y0btm7`,kVAM5u:`x14i3s5s`,$$css:!0},section:{kaIpWk:`x2u8bby`,kMzoRj:`xc342km`,ksu8eU:`xng3xce`,kVAM5u:`x9r1u3d`,"--color-syntax-background":`x1mtvhk1`,$$css:!0}},Bp={"--_codeblock-gutter-width":`xtk08jq`,$$css:!0},Vp={width:e=>[{kzqmXN:e==null?e:`x5lhr3w`,k7Eaqz:(e===`fit-content`?`min(100%, 400px)`:null)==null?e===`fit-content`?`min(100%, 400px)`:null:`xkj4a21`,ks0D6T:(e===`fit-content`?`100%`:null)==null?e===`fit-content`?`100%`:null:`xf68679`,$$css:!0},{"--x-width":(e=>typeof e==`number`?e+`px`:e??void 0)(e),"--x-minWidth":(e=>typeof e==`number`?e+`px`:e??void 0)(e===`fit-content`?`min(100%, 400px)`:null),"--x-maxWidth":(e=>typeof e==`number`?e+`px`:e??void 0)(e===`fit-content`?`100%`:null)}],gutterWidth:e=>[Bp,{"--x---_codeblock-gutter-width":`${e}ch`==null?void 0:`${e}ch`}]},Hp={root:{kVAEAm:`x1n2onr6`,kHBbk8:`xc8icb0`,k1xSpc:`x78zum5`,kXwgrk:`xdt5ytf`,kogj98:`x1ghz6dp`,kWkggS:`xzyc27v`,kVQacm:`xb3r6kr`,$$css:!0},header:{k1xSpc:`x78zum5`,kGNEyG:`x6s0dn4`,kUk6DE:`x98rzlu`,k7Eaqz:`xeuugli`,kmVPX3:`x1717udv`,kWkggS:`xjbqb8w`,kMwMTN:`x1heor9g`,kVVagm:`xln7xf2`,k9WMMc:`x1yc453h`,$$css:!0},collapseChevronIcon:{k1ekBW:`x11xpdln`,kIyJzY:`xuedmi6`,kAMwcw:`xlr8y92`,$$css:!0},collapseChevronExpanded:{k3aq6I:`x1iffjtl`,$$css:!0},headerCollapsible:{kkrTdU:`x1ypdohk`,kfSwDN:`x87ps6o`,$$css:!0},code:{k1xSpc:`x1lliihq`,kUk6DE:`x98rzlu`,k8WAf4:`x8o8v82`,kg3NbH:`x1pzlopt`,kogj98:`x1ghz6dp`,kMv6JI:`x9m5x89`,kMwMTN:`xdfisg`,kKi2Bq:`xeq4nuv`,khDVqt:`x1sdyfia`,kTgw9:`x1lldw8n`,kHjlTd:`x1h4wwuj`,$$css:!0},codeWrapped:{khDVqt:`x126k92a`,kTgw9:`x1yn0g08`,kHjlTd:`x1mzt3pk`,$$css:!0},codeNumbered:{kVAEAm:`x1n2onr6`,k5JduY:`x1s928wv`,kwXMNM:`x1j6awrg`,kSy8m5:`xd54j2p`,kc1e00:`x1km86hw`,kkgrvl:`xkj6t0a`,kQlJh0:`x1p96cux`,k6vLHU:`xvsnedh`,kkQ525:`xnnzo76`,kloYau:`x2q1x1w`,$$css:!0},sizeSm:{kGuDYH:`x141an7d`,$$css:!0},sizeMd:{kGuDYH:`xp03k98`,$$css:!0},copyButton:{kMwMTN:`x1mjzq1q`,$$css:!0},copyButtonAbsolute:{kVAEAm:`x10l6tqk`,k87sOh:`xctzyg`,kt4wiu:`x72tfeb`,$$css:!0}},Up=20,Wp=100,Gp=J.memo(function({lines:e,startIndex:t,highlightSet:n,renderLineContent:r,lineNumbers:i}){return(0,Y.jsx)(Y.Fragment,{children:e.map((e,a)=>{let o=t+a;return(0,Y.jsx)(`div`,{"data-line":o+1,...{0:{className:`x17iicif`},2:{className:`x17iicif xrvj5dj x1xx4m37 xf5zn4v x46gnpd x17gn2l9 x19ds33d x1wnbjh8 xtkarl4 x1rbqspl x3nzp0f`},1:{className:`x17iicif xgcxg3y x1ng9b9t x1pzlopt`},3:{className:`x17iicif xrvj5dj x1xx4m37 xf5zn4v x46gnpd x17gn2l9 x19ds33d x1wnbjh8 xtkarl4 x1rbqspl x3nzp0f xgcxg3y x1ng9b9t x1pzlopt`}}[!!i<<1|!!(n?.has(o+1)??!1)<<0],children:r(e,o)},o)})})});function Kp(e,t,n,r,i=Up){if(i=Math.max(1,Math.floor(i)),e.length<Wp)return(0,Y.jsx)(Gp,{lines:e,startIndex:0,highlightSet:t,renderLineContent:n,lineNumbers:r});let a=[];for(let o=0;o<e.length;o+=i){let s=Math.min(o+i,e.length),c=e.slice(o,s),l=`${c.length}lh`;a.push((0,Y.jsx)(`div`,{...Q({className:`xb5mbof`},{style:{containIntrinsicBlockSize:`auto ${l}`}}),children:(0,Y.jsx)(Gp,{lines:c,startIndex:o,highlightSet:t,renderLineContent:n,lineNumbers:r})},o))}return a}function qp(){return typeof CSS<`u`&&`highlights`in CSS&&typeof Highlight<`u`}function Jp(){if(typeof navigator>`u`)return!1;let e=navigator.userAgent;return e.includes(`AppleWebKit`)&&!e.includes(`Chrome`)}function Yp(e,t,n){let[r,i]=(0,J.useState)(null),a=(0,J.useMemo)(()=>n?Dp(n(e,t),e):e.length>=2e3?null:Tp(e,t),[e,t,n]);return(0,J.useEffect)(()=>{if(e.length<2e3||n)return;let r=new AbortController;async function a(){try{let n=await Ep(e,t,r.signal);r.signal.aborted||i({code:e,language:t,tokens:n})}catch{r.signal.aborted||i({code:e,language:t,tokens:[]})}}return a(),()=>{r.abort()}},[e,t,n]),a??(r?.code===e&&r.language===t?r.tokens:[])}function Xp(e,t){if(t.length===0)return e||`​`;let n=[],r=0;for(let i of t){i.start>r&&n.push(e.slice(r,i.start));let t=Math.min(i.end,e.length);n.push((0,Y.jsx)(`span`,{className:`astryx-token-${i.type} xds-token-${i.type}`,children:e.slice(i.start,t)},`${i.start}-${i.type}`)),r=t}return r<e.length&&n.push(e.slice(r)),n.length>0?n:`​`}function Zp({lines:e,tokenLines:t,highlightSet:n,isWrapped:r,sizeStyle:i,hasLineNumbers:a,maxDigits:o}){(0,J.useInsertionEffect)(()=>{Ap()},[]);let s=(0,J.useCallback)((e,n)=>{let r=t[n]??[];return(0,Y.jsx)(`span`,{className:`xeuugli`,children:Xp(e,r)})},[t]);return(0,Y.jsx)(`code`,{...K(Hp.code,i,r&&Hp.codeWrapped,a&&Hp.codeNumbered,a&&Vp.gutterWidth(o)),children:Kp(e,n,s,a)})}function Qp({lines:e,tokenLines:t,highlightSet:n,isWrapped:r,sizeStyle:i,hasLineNumbers:a,maxDigits:o}){let s=(0,J.useRef)(null);(0,J.useEffect)(()=>{if(!qp())return;Ap();let e=s.current;if(!(!e||t.length===0))return Rp(e,t)},[t]);let c=(0,J.useCallback)(e=>e||`​`,[]);return(0,Y.jsx)(`code`,{ref:s,...K(Hp.code,i,r&&Hp.codeWrapped,a&&Hp.codeNumbered,a&&Vp.gutterWidth(o)),children:Kp(e,n,c,a)})}function $p({code:e,language:t=`plaintext`,title:n,hasLanguageLabel:r=!0,hasLineNumbers:i=!1,highlightLines:a,hasCopyButton:o=!0,onCopy:s,isWrapped:c=!1,maxHeight:l,isCollapsible:u=!1,collapsibleThreshold:d=10,size:f=`md`,width:p=`fit-content`,container:m=`card`,tokenizer:h,highlightMode:g=`auto`,syntaxTheme:_,xstyle:v,className:y,style:b,ref:x,...S}){let C=tp(),{copy:w,isCopied:T}=Ou({announce:C(`@astryx.codeBlock.copied`)}),E=g===`spans`||g===`auto`&&!qp()||g===`auto`&&Jp(),D=(0,J.useMemo)(()=>{let t=e.split(`
93
- `);return t.length>1&&t[t.length-1]===``&&t.pop(),t},[e]),O=Yp(e,t,h),k=(0,J.useMemo)(()=>a?new Set(a):null,[a]),A=(0,J.useCallback)(async()=>{await w(e)&&s?.()},[e,w,s]),j=f===`sm`?Hp.sizeSm:Hp.sizeMd,M=String(D.length).length,N=r&&t!==`plaintext`?t:null,P=n!=null||N!=null,F=u&&D.length>=d,[I,L]=(0,J.useState)(!1),R=(0,J.useId)(),z=(0,J.useRef)(null),B=l?{maxHeight:typeof l==`number`?`${l}px`:l}:void 0,V=o?(0,Y.jsx)(dp,{variant:`ghost`,size:`sm`,icon:(0,Y.jsx)(Bu,{icon:T?`check`:`copy`,size:`sm`,color:`inherit`}),tooltip:C(`@astryx.codeBlock.copyCode`),label:C(T?`@astryx.codeBlock.copied`:`@astryx.codeBlock.copyCode`),onClick:e=>{e.stopPropagation(),A()},xstyle:[Hp.copyButton,!P&&Hp.copyButtonAbsolute],...q(`codeblock-copy-button`)}):null,H=P?(0,Y.jsxs)(`div`,{...Q(q(`codeblock-header`,{size:f,language:t,container:m}),{0:{className:`x78zum5 x6s0dn4 x1qughib x1pzlopt xzyc27v x7wzq59 x13vifvy x1vjfegm xce4md1`},1:{className:`x78zum5 x6s0dn4 x1qughib x1pzlopt xzyc27v x7wzq59 x13vifvy x1vjfegm xce4md1 x92x3c3 x1q0q8m5 xw8gpjh`}}[!!i<<0]),children:[(0,Y.jsx)(`div`,{role:F?`button`:void 0,tabIndex:F?0:void 0,"aria-expanded":F?!I:void 0,"aria-controls":F?R:void 0,onClick:F?()=>L(e=>!e):void 0,onKeyDown:F?e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),L(e=>!e))}:void 0,...Dd.focusVisible(Hp.header,F&&Hp.headerCollapsible),children:(0,Y.jsxs)(`span`,{...Q(q(`codeblock-title`,{size:f,language:t}),{className:`x78zum5 x6s0dn4 x141an7d x9m5x89 x1e4wzip x1mjzq1q x1ghz6dp x1ltkj2j`}),children:[F&&(0,Y.jsx)(`span`,{className:`x3nfvp2 x6s0dn4 xl56j7k x2lah0s x6jxa94 x1v9usgg xnur1sd xb3r6kr x1mjzq1q x1gbn2au x1aquc0h x12wqnr7 x128ha8g`,children:(0,Y.jsx)(Bu,{icon:`chevronRight`,size:`xsm`,color:`inherit`,xstyle:[Hp.collapseChevronIcon,!I&&Hp.collapseChevronExpanded]})}),n,n&&N?` — `:``,N]})}),V]}):null,ee=(0,Y.jsx)(`div`,{ref:z,tabIndex:0,role:`group`,"aria-label":N??C(`@astryx.codeBlock.code`),...Q({className:`xw2csxc x1odjw0f`},{style:B}),children:(0,Y.jsx)(`div`,{...{0:{className:`x78zum5 x1pshirs`},1:{className:`x78zum5 x1pshirs x1ajqlyv`}}[!!(P&&!i)<<0],children:E?(0,Y.jsx)(Zp,{lines:D,tokenLines:O,highlightSet:k,isWrapped:c,sizeStyle:j,hasLineNumbers:i,maxDigits:M}):(0,Y.jsx)(Qp,{lines:D,tokenLines:O,highlightSet:k,isWrapped:c,sizeStyle:j,hasLineNumbers:i,maxDigits:M})})}),te=(0,Y.jsxs)(`pre`,{ref:x,...Q(q(`codeblock`,{size:f,language:t,container:m}),K(Hp.root,Vp.width(p),zp[m],v),y,b),...S,children:[H,F?(0,Y.jsx)(`div`,{id:R,inert:I?!0:void 0,...{0:{className:`xrvj5dj x1tu4anv x1qn9uv2 x80gvsz xlr8y92`},1:{className:`xrvj5dj x1qn9uv2 x80gvsz xlr8y92 xihq33y`}}[!!I<<0],children:(0,Y.jsx)(`div`,{className:`xb3r6kr x2lwn1j`,children:ee})}):ee,!P&&V]});return _?(0,Y.jsx)(Dr,{theme:_,children:te}):te}$p.displayName=`CodeBlock`;var em={base:{kMv6JI:`x9m5x89`,kGuDYH:`xp03k98`,kLWn49:`x15bjb6t`,kWkggS:`xwmxj5m`,kg3NbH:`x7a5moj`,k8WAf4:`x1hp7d8q`,kaIpWk:`xx3sua9`,kHjlTd:`x1mzt3pk`,kTgw9:`x13faqbe`,$$css:!0}},tm={primary:{kMwMTN:`x1tgivj0`,$$css:!0},secondary:{kMwMTN:`xv1l7n4`,$$css:!0},inherit:{kMwMTN:`x1heor9g`,$$css:!0}},nm={inherit:{kGuDYH:`x1qlqyl8`,kLWn49:`x15bjb6t`,$$css:!0}};function rm({children:e,color:t=`primary`,size:n,xstyle:r,className:i,style:a,ref:o,...s}){return(0,Y.jsx)(`code`,{ref:o,...s,...Q(q(`code`,{color:t}),K(em.base,tm[t],n&&nm[n],r),i,a),children:e})}rm.displayName=`Code`;var im=(0,J.createContext)(null);im.displayName=`CollapsibleGroupContext`;var am=(0,J.createContext)(null);am.displayName=`CollapsibleGroupPresentationContext`;function om(e){let{isCollapsible:t,value:n}=e,r=(0,J.use)(im),i=r!=null&&n!=null,a=t===!0?{}:t||null,o=a!=null,[s,c]=(0,J.useState)(()=>i?!0:a?.isOpen===void 0?a?.defaultIsOpen??!0:a.isOpen),l;return l=i&&n!=null?r.isOpen(n):a?.isOpen===void 0?s:a.isOpen,{isEnabled:o,isOpen:l,toggle:()=>{if(i&&n!=null){r.toggle(n);return}let e=!l;a?.isOpen===void 0&&c(e),a?.onOpenChange?.(e)}}}var sm={root:{kzqmXN:`xh8yej3`,$$css:!0},trigger:{kB7OPa:`x9f619`,k1xSpc:`x78zum5`,kGNEyG:`x6s0dn4`,kjj79g:`x1qughib`,kzqmXN:`xh8yej3`,kkrTdU:`x1ypdohk`,kMv6JI:`x9ynric`,kGuDYH:`x18juvz8`,k63SB2:`x2mo6ok`,kMwMTN:`x1tgivj0`,k9WMMc:`x1yc453h`,k8WAf4:`xt970qd`,$$css:!0},triggerDisabled:{kkrTdU:`x1h6gzvc`,kSiTet:`xbyyjgo`,$$css:!0},chevron:{k1xSpc:`x3nfvp2`,kGNEyG:`x6s0dn4`,kjj79g:`xl56j7k`,kmuXW:`x2lah0s`,kzqmXN:`xta46cu`,kZKoxP:`x1seg80s`,kGuDYH:`x18juvz8`,k1ekBW:`x11xpdln`,kIyJzY:`xuedmi6`,kAMwcw:`xlr8y92`,$$css:!0},chevronOpen:{k3aq6I:`x19jd1h0`,$$css:!0},chevronClosed:{k3aq6I:`x7p49u4`,$$css:!0},contentHidden:{k1xSpc:`x1s85apg`,$$css:!0},content:{kLKAdn:`xfsso4q`,kMv6JI:`x9ynric`,kGuDYH:`xjm74w1`,k63SB2:`xxovm9e`,kLWn49:`xw6l6zx`,kMwMTN:`x1tgivj0`,$$css:!0},divided:{kEafiO:`x11xkdxz x1g31smg`,kPef9Z:`x13fuv20`,kLZC3w:`x1pc3f07`,$$css:!0}},cm={triggerCompact:{k8WAf4:`xu0wf1k`,$$css:!0},triggerBalanced:{k8WAf4:`xce4md1`,$$css:!0},triggerSpacious:{k8WAf4:`x8o8v82`,$$css:!0},contentCompact:{kGO01o:`xy143xn`,$$css:!0},contentBalanced:{kGO01o:`x1wesfrj`,$$css:!0},contentSpacious:{kGO01o:`xvmdzux`,$$css:!0}},lm={compact:cm.triggerCompact,balanced:cm.triggerBalanced,spacious:cm.triggerSpacious},um={compact:cm.contentCompact,balanced:cm.contentBalanced,spacious:cm.contentSpacious};function dm({trigger:e,children:t,defaultIsOpen:n,isOpen:r,isDisabled:i=!1,onOpenChange:a,value:o,ref:s,xstyle:c,className:l,style:u,...d}){let{isOpen:f,toggle:p}=om({isCollapsible:r===void 0?{defaultIsOpen:n??!0,onOpenChange:a}:{isOpen:r,onOpenChange:a},value:o}),m=()=>{i||p()},h=(0,J.use)(am),g=h?.hasDividers??!1,_=h?.density??null,v=(0,J.useId)();return(0,Y.jsxs)(`div`,{ref:s,...Q(q(`collapsible`,{density:_??void 0}),K(sm.root,g&&sm.divided,c),l,u),...d,children:[(0,Y.jsxs)(`button`,{type:`button`,onClick:m,"aria-disabled":i||void 0,"aria-expanded":f,"aria-controls":v,tabIndex:i?-1:void 0,...Q(q(`collapsible-trigger`,{density:_??void 0}),Dd.focusVisible(sm.trigger,_!=null&&lm[_],i&&sm.triggerDisabled)),children:[(0,Y.jsx)(`span`,{className:`x1b2iylo xwgcxoh`,children:e}),(0,Y.jsx)(Bu,{icon:`chevronDown`,size:`sm`,color:`secondary`,xstyle:[sm.chevron,f?sm.chevronOpen:sm.chevronClosed]})]}),(0,Y.jsx)(`div`,{id:v,...Q(q(`collapsible-content`,{density:_??void 0}),K(sm.content,_!=null&&um[_],!f&&sm.contentHidden)),children:h==null?t:(0,Y.jsx)(am,{value:null,children:t})})]})}dm.displayName=`Collapsible`;function fm(e){let t={},n={};for(let r of e)r.kind===`free_text`?t[r.id]=``:n[r.id]={decision:null,text:``};return{freeText:t,confirm:n}}function pm(e){return e.trim().length>0}function mm(e,t){return e.every(e=>e.kind===`free_text`?pm(t.freeText[e.id]??``):t.confirm[e.id]?.decision!=null)}function hm(e){if(!e)return!1;let t=e.promptId,n=e.kind;return!!t&&(n===`confirm`||n===`artifact_backed`)}function gm(e){return e?.trim()||void 0}function _m(e,t){if(e.kind!==`confirm`&&e.kind!==`artifact_backed`)return null;let n=gm(t.note);return n?{promptId:e.promptId,kind:e.kind,decision:t.decision,text:n}:{promptId:e.promptId,kind:e.kind,decision:t.decision}}function vm(e,t,n){let r={};for(let e of t)if(e.kind===`free_text`)r[e.id]={kind:`free_text`,text:n.freeText[e.id]??``};else{let t=n.confirm[e.id],i=t?.decision;if(i==null)continue;let a=gm(t.text);r[e.id]=a?{kind:`confirm`,decision:i,text:a}:{kind:`confirm`,decision:i}}return{promptId:e,kind:`multi_question`,answers:r}}function ym(e,t,n){return e.promptId?t.type===`decision`?_m(e,t):t.type===`free_text`?e.kind!==`free_text`||!pm(t.text)?null:{promptId:e.promptId,kind:`free_text`,text:t.text.trim()}:e.kind!==`multi_question`||!n||n.kind!==`multi_question`||!mm(n.questions,t.draft)?null:vm(e.promptId,n.questions,t.draft):null}function bm(e){return e?`${e.promptId}:${e.kind}`:null}function xm(){return{submitting:!1,awaitingClear:!1,error:null}}function Sm(e){return e.submitting||e.awaitingClear}function Cm(e){return{...e,submitting:!0,error:null}}function wm(){return{submitting:!1,awaitingClear:!0,error:null}}function Tm(e){return{submitting:!1,awaitingClear:!1,error:e}}function Em(e,t){return bm(e)===bm(t)}async function Dm(e){let{pending:t,runId:n,stageId:r,intent:i,prompt:a,submit:o}=e;if(!t||!t.promptId)return{status:`refused`,reason:`stale`};if(!r)return{status:`refused`,reason:`missing_stage`};if(!Em(e.getPending?.()??t,t))return{status:`refused`,reason:`stale`};let s=ym(t,i,a);if(!s||s.promptId!==t.promptId)return{status:`refused`,reason:`invalid`};try{return await o(n,r,s),{status:`posted`}}catch(e){return{status:`failed`,error:e instanceof Error?e.message:String(e)}}}function Om(e){let t=xm(),n=bm(e.getPending());return{getState(){return t},locked(){return Sm(t)},syncPending(){let r=bm(e.getPending());r!==n&&(n=r,t=xm())},async submitIntent(n,r){if(Sm(t))return!1;let i=e.getPending(),{runId:a,stageId:o}=e.getTarget();t=Cm(t);let s=await Dm({pending:i,getPending:e.getPending,runId:a,stageId:o,intent:n,prompt:r,submit:e.submit});return s.status===`posted`?(t=wm(),await e.refresh?.(),!0):s.status===`failed`?(t=Tm(s.error),!1):(t=xm(),!1)}}}function km(e,t,n){let r=Yo(),i=(0,J.useRef)(n);i.current=n;let a=(0,J.useRef)({runId:e,stageId:t});a.current={runId:e,stageId:t};let o=(0,J.useRef)(r);o.current=r;let s=(0,J.useRef)(null);s.current===null&&(s.current=Om({getPending:()=>i.current,getTarget:()=>a.current,submit:(e,t,n)=>Ia(e,t,n),refresh:()=>o.current.refresh()}));let c=s.current,[l,u]=(0,J.useState)(()=>c.getState()),d=bm(n);(0,J.useEffect)(()=>{c.syncPending(),u(c.getState())},[d,c]);let f=(0,J.useCallback)(async(e,t)=>{let n=c.submitIntent(e,t);u(c.getState());let r=await n;return u(c.getState()),r},[c]);return{submitting:l.submitting,awaitingClear:l.awaitingClear,error:l.error,locked:Sm(l),submitIntent:f}}var Am=`A page dialog is waiting`,jm=`A page dialog was handled automatically`,Mm=`Only the operator in control can answer.`,Nm=`The page dialog was dismissed after waiting too long.`,Pm=`The dialog could not be answered.`,Fm=2e3,Im=[`alert`,`confirm`,`prompt`,`beforeunload`];function Lm(e){return typeof e==`object`&&e?e:void 0}function Rm(e){let t=Lm(e);if(t===void 0||typeof t.id!=`string`||typeof t.kind!=`string`||!Im.includes(t.kind))return;let n=t.kind;return{id:t.id,kind:n,message:typeof t.message==`string`?t.message:``,defaultPrompt:typeof t.defaultPrompt==`string`?t.defaultPrompt:``,answerable:(n===`confirm`||n===`prompt`)&&t.answerable===!0,autoClosed:!1}}function zm(e,t){let n=Lm(t);return e===null||n===void 0||n.id!==e.id?{dialog:e,notice:null,linger:!1}:e.answerable?{dialog:null,notice:n.result===`timeout`?Nm:null,linger:!1}:{dialog:{...e,autoClosed:!0},notice:null,linger:!0}}function Bm(e,t,n){return t&&e.kind===`prompt`?{id:e.id,accept:t,promptText:n.slice(0,Fm)}:{id:e.id,accept:t}}function Vm(e){return e===200?`answered`:e===409?`gone`:`failed`}function Hm(e,t){return t===`control`&&e.answerable&&!e.autoClosed}var Um=`Switched to a new window`,Wm={phase:`waiting`,hasFrame:!1,url:``,notice:null,dialog:null,closedReason:null};function Gm(e){if(e!==void 0)try{let t=JSON.parse(e);return typeof t==`object`&&t?t:void 0}catch{return}}function Km(e){let t=e.maxFailures??8,n=e.baseDelayMs??1e3,r=e.maxDelayMs??1e4,i=e.noticeMs??5e3,a=Wm,o,s=0,c=0,l=!1,u,d,f;function p(t){a={...a,...t},e.onState(a)}function m(){let e=o;o=void 0,e!==void 0&&(e.onopen=null,e.onerror=null,e.close())}function h(e){s+=1,u?.(),u=void 0,m(),f?.(),f=void 0,p({phase:`closed`,closedReason:e,dialog:null})}function g(i){if(l||i!==s||a.phase===`closed`)return;if(m(),c+=1,c>t){h(`connection_lost`);return}f?.(),f=void 0,p({phase:`reconnecting`,dialog:null});let o=Math.min(n*2**(c-1),r);u?.(),u=e.setTimer(()=>{u=void 0,v()},o)}function _(t){d?.(),p({notice:t}),d=e.setTimer(()=>{d=void 0,p({notice:null})},i)}async function v(){if(l||a.phase===`closed`)return!1;s+=1;let t=s;m();let n;try{n=await e.requestTicket(e.mode)}catch{return g(t),!1}return l||t!==s?!1:`status`in n?(n.status===404||n.status===409?h(`unavailable`):g(t),!1):new Promise(r=>{let u=e.openEventSource(`${e.baseUrl}/events?ticket=${encodeURIComponent(n.ticket)}`);o=u;let d=!1,m=e=>{d||(d=!0,r(e))},v=()=>!l&&t===s,y=()=>{c=0};u.onopen=()=>{v()&&(a.phase!==`closed`&&p({phase:a.hasFrame?`live`:`waiting`}),m(!0))},u.onerror=()=>{m(!1),g(t)},u.addEventListener(`frame`,t=>{if(!v())return;y();let n=Gm(t.data);n!==void 0&&typeof n.data==`string`&&(e.onFrame({data:n.data,metadata:n.metadata}),(!a.hasFrame||a.phase!==`live`)&&p({hasFrame:!0,phase:`live`}))}),u.addEventListener(`url`,e=>{if(!v())return;y();let t=Gm(e.data);typeof t?.url==`string`&&p({url:t.url})}),u.addEventListener(`retarget`,e=>{if(!v())return;y();let t=Gm(e.data);typeof t?.url==`string`&&p({url:t.url}),_(Um)}),u.addEventListener(`dialog`,e=>{if(!v())return;y();let t=Rm(Gm(e.data));t!==void 0&&(f?.(),f=void 0,p({dialog:t}))}),u.addEventListener(`dialog_closed`,t=>{if(!v())return;y();let n=zm(a.dialog,Gm(t.data));if(n.dialog!==a.dialog&&(f?.(),f=void 0,p({dialog:n.dialog}),n.notice!==null&&_(n.notice),n.linger)){let t=n.dialog;f=e.setTimer(()=>{f=void 0,a.dialog===t&&p({dialog:null})},i)}});for(let e of[`status`,`tabs`])u.addEventListener(e,()=>{v()&&y()});u.addEventListener(`closed`,e=>{if(!v())return;let t=Gm(e.data);m(!1),h(typeof t?.reason==`string`?t.reason:`closed`)})})}return{start(){v()},refresh(){return u?.(),u=void 0,v()},dispose(){l=!0,s+=1,u?.(),d?.(),f?.(),m()}}}var qm=`x-stageflow-live-view`;async function Jm(e,t){let n=await fetch(`${e}/ticket`,{method:`POST`,headers:{"Content-Type":`application/json`,...Ti()},body:JSON.stringify({mode:t})});if(!n.ok)return{status:n.status};let r=await n.json().catch(()=>({}));return typeof r.ticket==`string`?{ticket:r.ticket}:{status:502}}async function Ym(e,t){return(await fetch(`${e}/input`,{method:`POST`,credentials:`same-origin`,headers:{"Content-Type":`application/json`,[qm]:`1`},body:JSON.stringify(t)})).status}async function Xm(e,t){return(await fetch(`${e}/dialog`,{method:`POST`,credentials:`same-origin`,headers:{"Content-Type":`application/json`,[qm]:`1`},body:JSON.stringify(t)})).status}async function Zm(e){return(await fetch(`${e}/reopen-tab`,{method:`POST`,credentials:`same-origin`,headers:{[qm]:`1`}})).status}function Qm({dialog:e,mode:t,busy:n,failed:r,onAnswer:i}){let[a,o]=(0,J.useState)(e.defaultPrompt);(0,J.useEffect)(()=>o(e.defaultPrompt),[e.id,e.defaultPrompt]);let s=Hm(e,t),c=e.autoClosed?jm:Am;return(0,Y.jsxs)(`div`,{className:`liveview__dialog`,role:`alertdialog`,"aria-label":c,children:[(0,Y.jsx)(`p`,{className:`liveview__dialog-label`,children:c}),(0,Y.jsx)(`p`,{className:`liveview__dialog-message`,children:e.message}),s&&e.kind===`prompt`?(0,Y.jsx)(`input`,{className:`liveview__dialog-input`,type:`text`,"aria-label":`Answer to the page dialog`,value:a,maxLength:Fm,disabled:n,onChange:e=>o(e.target.value)}):null,s?(0,Y.jsxs)(`div`,{className:`liveview__dialog-actions`,children:[(0,Y.jsx)(`button`,{type:`button`,className:`btn btn--primary`,disabled:n,onClick:()=>i(Bm(e,!0,a)),children:`Accept`}),(0,Y.jsx)(`button`,{type:`button`,className:`btn btn--ghost`,disabled:n,onClick:()=>i(Bm(e,!1,a)),children:`Dismiss`})]}):null,!s&&t===`view`&&e.answerable?(0,Y.jsx)(`p`,{className:`liveview__dialog-hint`,children:Mm}):null,r===null?null:(0,Y.jsx)(`p`,{className:`liveview__dialog-hint`,children:r})]})}function $m(e){let t=e.getContext(`2d`),n=!1,r=null,i=!1,a=null;function o(){if(n||i||r===null||t===null)return;let s=r;r=null,n=!0;let c=new Image;c.onload=()=>{n=!1,!i&&((e.width!==c.naturalWidth||e.height!==c.naturalHeight)&&(e.width=c.naturalWidth,e.height=c.naturalHeight),a={width:c.naturalWidth,height:c.naturalHeight},t.drawImage(c,0,0),o())},c.onerror=()=>{n=!1,o()},c.src=`data:image/jpeg;base64,${s}`}return{draw(e){r=e,o()},size:()=>a,dispose(){i=!0}}}var eh=`Log in in the browser view below, then confirm.`,th=`Read-only view of the agent's browser. Closing it does not affect the stage.`,nh=`Watch browser`,rh=`Close browser view`,ih=`If typing or clicking does nothing, try Reopen browser tab first: it opens the same page in a fresh tab, and you stay signed in. If the page seems frozen or asks for something you cannot see here (a passkey or security key, a permission request, a file picker, a browser sign-in box), cancel it or choose another sign-in method such as a code, SMS, or backup code.`,ah=`Reopen browser tab`,oh=`The browser tab could not be reopened. Try again in a moment.`,sh=2e4;function ch(e,t,n){if(n===null||n.width<=0||n.height<=0||t.width<=0||t.height<=0)return null;let r=(e.clientX-t.left)*n.width/t.width,i=(e.clientY-t.top)*n.height/t.height;if(!Number.isFinite(r)||!Number.isFinite(i))return null;let a=(e,t)=>Math.round(Math.min(Math.max(e,0),Math.min(t,sh)));return{x:a(r,n.width),y:a(i,n.height)}}function lh(e){return!!e.altKey|(e.ctrlKey?2:0)|(e.metaKey?4:0)|(e.shiftKey?8:0)}function uh(e){return(e.ctrlKey||e.metaKey)&&e.key.toLowerCase()===`v`}function dh(e){return Array.from(e.key).length!==1||e.metaKey?!1:!e.ctrlKey||e.altKey}function fh(e,t){if(e.isComposing===!0||e.keyCode===229||uh(e))return null;let n={type:`input_keyboard`,eventType:t};return e.key.length<=32&&(n.key=e.key),e.code.length<=32&&(n.code=e.code),Number.isInteger(e.keyCode)&&e.keyCode>=0&&e.keyCode<=255&&(n.windowsVirtualKeyCode=e.keyCode),n.modifiers=lh(e),t===`keyDown`&&(dh(e)?n.text=e.key:e.key===`Enter`&&(n.text=`\r`)),n}function ph(e){let t=[];for(let n of Array.from(e))t.push({type:`input_keyboard`,eventType:`char`,text:n===`
94
- `?`\r`:n});return t}var mh=[`left`,`middle`,`right`],hh=1e5;function gh(e){return Math.max(-1e5,Math.min(hh,e))}function _h(e){return e===1?40:e===2?800:1}function vh(e){if(e.mode!==`control`)return()=>void 0;let{canvas:t,textarea:n,win:r,send:i}=e,a=e.moveIntervalMs??50,o=new Set,s=null,c,l=-1/0,u=t=>ch(t,e.getRect(),e.getImageSize());function d(){c?.(),c=void 0,s!==null&&(i(s),l=e.now(),s=null)}let f=e=>{let t=u(e);t!==null&&(e.preventDefault(),n?.focus({preventScroll:!0}),d(),o.add(e.button),i({type:`input_mouse`,eventType:`mousePressed`,...t,button:mh[e.button]??`left`,clickCount:Math.min(3,Math.max(1,e.detail||1)),modifiers:lh(e)}))},p=e=>{if(!o.has(e.button))return;o.delete(e.button);let t=u(e);t!==null&&(d(),i({type:`input_mouse`,eventType:`mouseReleased`,...t,button:mh[e.button]??`left`,clickCount:Math.min(3,Math.max(1,e.detail||1)),modifiers:lh(e)}))},m=t=>{let n=u(t);if(n===null)return;s={type:`input_mouse`,eventType:`mouseMoved`,...n,modifiers:lh(t)};let r=l+a-e.now();r<=0?d():c===void 0&&(c=e.setTimer(()=>{c=void 0,d()},r))},h=e=>{e.preventDefault();let t=u(e);if(t===null)return;d();let n=_h(e.deltaMode);i({type:`input_mouse`,eventType:`mouseWheel`,...t,deltaX:gh(e.deltaX*n),deltaY:gh(e.deltaY*n),modifiers:lh(e)})},g=e=>e.preventDefault(),_=e=>t=>{if(uh(t))return;let n=fh(t,e);n!==null&&(t.preventDefault(),i(n))},v=_(`keyDown`),y=_(`keyUp`);function b(){if(n===null||n.value===``)return;let e=n.value;n.value=``;for(let t of ph(e))i(t)}let x=e=>{e.isComposing||b()},S=()=>b();return t.addEventListener(`mousedown`,f),t.addEventListener(`mousemove`,m),t.addEventListener(`wheel`,h,{passive:!1}),t.addEventListener(`contextmenu`,g),r.addEventListener(`mouseup`,p),n?.addEventListener(`keydown`,v),n?.addEventListener(`keyup`,y),n?.addEventListener(`input`,x),n?.addEventListener(`compositionend`,S),()=>{c?.(),t.removeEventListener(`mousedown`,f),t.removeEventListener(`mousemove`,m),t.removeEventListener(`wheel`,h),t.removeEventListener(`contextmenu`,g),r.removeEventListener(`mouseup`,p),n?.removeEventListener(`keydown`,v),n?.removeEventListener(`keyup`,y),n?.removeEventListener(`input`,x),n?.removeEventListener(`compositionend`,S)}}var yh=300,bh=4096;function xh(e){let t=e.maxBatch??64,n=e.eventsPerSecond??400,r=e.retryDelayMs??yh,i=e.maxQueued??bh,a=[],o,s=!1,c=0,l=!1;function u(t){s||(s=!0,a=[],e.onStopped(t))}async function d(t){let i=!1;for(;;){if(s)return;let a=c-e.now();if(a>0&&await e.sleep(a),s)return;c=e.now()+t.length*1e3/n;let o;try{o=await e.post(t)}catch{e.onNotice(`network`);return}if(o>=200&&o<300)return;if(o===429){await e.sleep(r);continue}if(o===400||o===413){e.onNotice(`rejected`);return}if(o===409){u(`closed`);return}if(o===401||o===403){if(!i){i=!0;let t=!1;try{t=await e.refreshSession()}catch{t=!1}if(t)continue}u(`unauthorized`);return}e.onNotice(`rejected`);return}}async function f(){for(;!s&&a.length>0;)await d(a.splice(0,t))}function p(){o!==void 0||s||(o=f().finally(()=>{o=void 0,!s&&a.length>0&&p()}))}return{push(t){if(s)return;let n=a[a.length-1];if(t.type===`input_mouse`&&t.eventType===`mouseMoved`&&n?.type===`input_mouse`&&n.eventType===`mouseMoved`)a[a.length-1]=t;else if(a.length>=i){l||(l=!0,e.onNotice(`overflow`));return}else a.push(t),l=!1;p()},stop(){s=!0,a=[]},async idle(){for(;o!==void 0;)await o}}}var Sh={rejected:`Some input was rejected.`,overflow:`Too much input at once; some was dropped.`,network:`Some input could not be sent.`};function Ch(e){let t=e.mode===`control`,n=new Set,r=Wm,i=!1,a=null,o=null,s=!1,c=null,l=!1,u=null,d=v(),f,p,m=!0,h,g=0,_=!1;function v(){let e=r.dialog;return{connection:r,inputStopped:i,inputNotice:a,dialog:e!==null&&e.id!==o?e:null,answering:s,answerFailed:c,reopeningTab:l,reopenTabFailed:u}}function y(){if(!_){d=v();for(let e of[...n])e()}}function b(){p?.stop(),i=!1,a=null,m=!1;let t=xh({post:t=>e.postInput(e.baseUrl,t),sleep:t=>new Promise(n=>void e.setTimer(n,t)),now:e.now,refreshSession:()=>f?.refresh()??Promise.resolve(!1),onNotice:e=>{p===t&&(a=Sh[e],y())},onStopped:()=>{p===t&&(m=!0,i=!0,y())}});p=t}function x(){p?.stop(),m=!0}function S(e){let n=r;r=e,e.dialog!==n.dialog&&(e.dialog===null||!e.dialog.autoClosed)&&(o=null,s=!1,c=null),t&&(e.phase===`closed`?x():n.phase===`reconnecting`&&e.phase!==`reconnecting`&&m&&b()),y()}function C(){let t=++g,n=Km({...e.connection,mode:e.mode,baseUrl:e.baseUrl,requestTicket:t=>e.requestTicket(e.baseUrl,t),openEventSource:e.openEventSource,setTimer:e.setTimer,onState:e=>{g===t&&S(e)},onFrame:n=>{g===t&&e.surface.drawFrame(n.data)}});f=n,n.start()}function w(){g+=1,f?.dispose(),f=void 0}function T(){h=vh({mode:e.mode,canvas:e.surface.canvas,textarea:e.surface.textarea,win:e.surface.win,getRect:e.surface.getRect,getImageSize:e.surface.getImageSize,send:e=>p?.push(e),now:e.now,setTimer:e.setTimer})}function E(){r=Wm,i=!1,a=null,o=null,s=!1,c=null,l=!1,u=null}return{getState:()=>d,subscribe(e){return n.add(e),()=>{n.delete(e)}},start(){_||(E(),y(),t&&(b(),T()),C())},reopen(){_||(w(),E(),t&&b(),y(),C())},answerDialog(t){if(_)return;s=!0,c=null,y();let n=g;e.postDialog(e.baseUrl,t).then(e=>{g===n&&(Vm(e)===`failed`?c=Pm:o=t.id)}).catch(()=>{g===n&&(c=Pm)}).finally(()=>{g===n&&(s=!1,y())})},reopenTab(){if(_||!t||l)return;l=!0,u=null,y();let n=g;e.postReopenTab(e.baseUrl).then(e=>{g===n&&e!==200&&(u=oh)}).catch(()=>{g===n&&(u=oh)}).finally(()=>{g===n&&(l=!1,y())})},dispose(){_||(w(),h?.(),h=void 0,p?.stop(),p=void 0,m=!0,_=!0,n.clear())}}}var wh={connection:Wm,inputStopped:!1,inputNotice:null,dialog:null,answering:!1,answerFailed:null,reopeningTab:!1,reopenTabFailed:null};function Th(e,t){return e.phase===`closed`?e.closedReason===`unavailable`?`Live view is unavailable`:`Closed`:e.phase===`reconnecting`?`Reconnecting…`:e.hasFrame?t?`Input stopped`:null:`Waiting for the browser…`}function Eh({handoffUrl:e,mode:t=`control`,reopenKey:n}){let r=(0,J.useRef)(null),i=(0,J.useRef)(null),a=(0,J.useRef)(null),o=(0,J.useRef)(n),[s,c]=(0,J.useState)(wh);(0,J.useEffect)(()=>{let n=r.current;if(n===null)return;let o=$m(n),s=Ch({mode:t,baseUrl:e,surface:{canvas:n,textarea:i.current,win:window,getRect:()=>n.getBoundingClientRect(),getImageSize:()=>o.size(),drawFrame:e=>o.draw(e)},requestTicket:Jm,postInput:Ym,postDialog:Xm,postReopenTab:Zm,openEventSource:e=>new EventSource(e),setTimer:(e,t)=>{let n=setTimeout(e,t);return()=>clearTimeout(n)},now:()=>performance.now()});a.current=s,c(s.getState());let l=s.subscribe(()=>c(s.getState()));return s.start(),()=>{l(),s.dispose(),o.dispose(),a.current=null}},[e,t]),(0,J.useEffect)(()=>{Object.is(o.current,n)||(o.current=n,a.current?.reopen())},[n]);let l=s.connection,{inputNotice:u,dialog:d}=s,f=Th(l,s.inputStopped),p=l.phase===`closed`;return(0,Y.jsxs)(`section`,{className:`liveview`,"aria-label":`Browser view`,children:[(0,Y.jsxs)(`div`,{className:`liveview__bar`,children:[(0,Y.jsx)(`p`,{className:`liveview__instruction`,children:t===`view`?th:eh}),(0,Y.jsx)(`div`,{className:`liveview__address`,title:l.url,children:l.url||`\xA0`})]}),l.notice===null?null:(0,Y.jsx)(`p`,{className:`liveview__notice`,children:l.notice}),u===null?null:(0,Y.jsx)(`p`,{className:`liveview__notice`,children:u}),(0,Y.jsxs)(`div`,{className:`liveview__stage`,"data-phase":l.phase,children:[(0,Y.jsx)(`canvas`,{ref:r,className:`liveview__canvas${t===`control`&&!p?` liveview__canvas--control`:``}`,width:1280,height:720}),d===null?null:(0,Y.jsx)(Qm,{dialog:d,mode:t,busy:s.answering,failed:s.answerFailed,onAnswer:e=>a.current?.answerDialog(e)}),f===null?null:(0,Y.jsx)(`div`,{className:`liveview__status`,role:`status`,children:f})]}),t===`control`?(0,Y.jsx)(`textarea`,{ref:i,className:`liveview__kb`,"aria-label":`Keyboard input for the browser view`,autoCapitalize:`off`,autoComplete:`off`,spellCheck:!1,tabIndex:-1}):null,t===`control`?(0,Y.jsxs)(dm,{defaultIsOpen:!1,trigger:(0,Y.jsx)(`span`,{className:`liveview__help-trigger`,children:`Page seems stuck?`}),children:[(0,Y.jsx)(`p`,{className:`liveview__help`,children:ih}),(0,Y.jsxs)(`div`,{className:`liveview__help-actions`,children:[(0,Y.jsx)(`button`,{type:`button`,className:`btn btn--ghost`,disabled:s.reopeningTab||p,onClick:()=>a.current?.reopenTab(),children:s.reopeningTab?`Reopening…`:ah}),s.reopenTabFailed===null?null:(0,Y.jsx)(`p`,{className:`liveview__notice`,role:`status`,children:s.reopenTabFailed})]})]}):null]})}function Dh(e){let t=e.handoff;return t?.kind===`live_view`?t.url:null}function Oh(e,t){return`/api/runs/${encodeURIComponent(e)}/stages/${encodeURIComponent(t)}/live-view`}function kh(e){return e===`running`||e===`waiting_for_input`}function Ah({runId:e,stageId:t,prompt:n,onReviewSideBySide:r}){let[i,a]=(0,J.useState)(``),[o,s]=(0,J.useState)(``),[c,l]=(0,J.useState)(()=>n.kind===`multi_question`?fm(n.questions):fm([])),{submitting:u,error:d,locked:f,submitIntent:p}=km(e,t,{promptId:n.id,kind:n.kind}),[m,h]=(0,J.useState)(0),g=(0,J.useRef)(!1);(0,J.useEffect)(()=>{g.current&&!u&&h(e=>e+1),g.current=u},[u]),(0,J.useEffect)(()=>{a(``),s(``),l(n.kind===`multi_question`?fm(n.questions):fm([]))},[n.id,n.kind]);async function _(){await p({type:`free_text`,text:i})}async function v(e){(n.kind===`confirm`||n.kind===`artifact_backed`)&&await p({type:`decision`,decision:e,note:o})}async function y(){n.kind===`multi_question`&&await p({type:`multi`,draft:c},n)}let b=Dh(n),x=n.kind===`multi_question`?`Answer each question below.`:n.message;return(0,Y.jsxs)(`div`,{className:`reply-zone${b===null?``:` reply-zone--liveview`}`,style:{display:`flex`,flexDirection:`column`,gap:`var(--spacing-3)`},children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`h4`,{className:`reply-zone__title`,style:{margin:`0 0 var(--spacing-1)`,fontSize:`var(--font-size-base)`,fontWeight:600},children:`Operator reply`}),(0,Y.jsx)(`p`,{className:`muted`,style:{margin:0,fontSize:`var(--font-size-sm)`},children:x})]}),b===null?null:(0,Y.jsx)(Eh,{handoffUrl:b,mode:`control`,reopenKey:`${n.id}:${m}`}),d?(0,Y.jsx)(`div`,{className:`gate`,style:{padding:`var(--spacing-3)`,borderColor:`var(--color-border-red)`,borderLeftColor:`var(--color-error)`,background:`var(--color-background-red)`,color:`var(--color-text-red)`},children:(0,Y.jsxs)(`p`,{style:{margin:0,fontSize:`var(--font-size-sm)`},children:[`Could not submit answer: `,d]})}):null,n.kind===`free_text`?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`textarea`,{className:`select`,value:i,onChange:e=>a(e.target.value),rows:4,disabled:f,autoFocus:!0,placeholder:`Your answer`,style:{minHeight:84,resize:`vertical`}}),(0,Y.jsx)(`button`,{className:`btn btn--primary`,disabled:f||!pm(i),onClick:()=>void _(),children:u?`Submitting…`:`Submit`})]}):null,n.kind===`confirm`||n.kind===`artifact_backed`?(0,Y.jsxs)(Y.Fragment,{children:[n.kind===`artifact_backed`&&r&&n.artifacts.length>0?(0,Y.jsx)(`button`,{className:`btn btn--ghost`,onClick:()=>r(n.artifacts[0]),children:`Review side by side`}):null,(0,Y.jsxs)(`div`,{className:`reply-zone__confirm`,children:[(0,Y.jsx)(`textarea`,{className:`select reply-zone__notes`,value:o,onChange:e=>s(e.target.value),rows:3,disabled:f,placeholder:`Optional notes`}),(0,Y.jsxs)(`div`,{className:`reply-zone__decide`,style:{display:`flex`,gap:`var(--spacing-2)`},children:[(0,Y.jsx)(`button`,{className:`btn btn--accept`,disabled:f,onClick:()=>void v(`accept`),children:u?`Submitting…`:`Accept`}),(0,Y.jsx)(`button`,{className:`btn btn--reject`,disabled:f,onClick:()=>void v(`reject`),children:`Reject`})]})]})]}):null,n.kind===`multi_question`?(0,Y.jsxs)(Y.Fragment,{children:[n.questions.map(e=>e.kind===`free_text`?(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`label`,{style:{display:`block`,marginBottom:`var(--spacing-1)`,fontSize:`var(--font-size-sm)`,fontWeight:600},children:e.message}),(0,Y.jsx)(`textarea`,{className:`select`,value:c.freeText[e.id]??``,onChange:t=>l(n=>({...n,freeText:{...n.freeText,[e.id]:t.target.value}})),rows:3,disabled:f,style:{minHeight:62,resize:`vertical`}})]},e.id):(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`p`,{style:{margin:`0 0 var(--spacing-2)`,fontSize:`var(--font-size-sm)`,fontWeight:500},children:e.message}),(0,Y.jsxs)(`div`,{style:{display:`flex`,gap:`var(--spacing-2)`,marginBottom:`var(--spacing-2)`},children:[(0,Y.jsx)(`button`,{className:`btn btn--sm${c.confirm[e.id]?.decision===`accept`?` btn--accept`:``}`,disabled:f,onClick:()=>l(t=>({...t,confirm:{...t.confirm,[e.id]:{decision:`accept`,text:t.confirm[e.id]?.text??``}}})),children:`Accept`}),(0,Y.jsx)(`button`,{className:`btn btn--sm${c.confirm[e.id]?.decision===`reject`?` btn--reject`:``}`,disabled:f,onClick:()=>l(t=>({...t,confirm:{...t.confirm,[e.id]:{decision:`reject`,text:t.confirm[e.id]?.text??``}}})),children:`Reject`})]}),(0,Y.jsx)(`textarea`,{className:`select`,value:c.confirm[e.id]?.text??``,onChange:t=>l(n=>({...n,confirm:{...n.confirm,[e.id]:{decision:n.confirm[e.id]?.decision??null,text:t.target.value}}})),rows:2,disabled:f,placeholder:`Optional notes`,style:{minHeight:42,resize:`vertical`}})]},e.id)),(0,Y.jsx)(`button`,{className:`btn btn--primary`,disabled:f||!mm(n.questions,c),onClick:()=>void y(),children:u?`Submitting…`:`Submit answers`})]}):null]})}function jh({runId:e,stageId:t,onClose:n}){return(0,Y.jsxs)(`aside`,{className:`watch-browser`,"aria-label":`Watch browser`,children:[(0,Y.jsx)(`button`,{type:`button`,className:`btn btn--sm watch-browser__close`,onClick:n,children:rh}),(0,Y.jsx)(Eh,{handoffUrl:Oh(e,t),mode:`view`},`${e}/${t}`)]})}function Mh(e){return e===void 0||e<=1?null:`×${e}`}function Nh({count:e}){let t=Mh(e);return t?(0,Y.jsx)(`span`,{className:`chip chip--attempt`,"aria-label":`${e} attempts`,children:t}):null}function Ph(e){return e.label??e.path.split(`/`).pop()??e.path}function Fh({files:e,selectedPath:t,onSelect:n,title:r=`Files`,footer:i}){return(0,Y.jsxs)(`aside`,{className:`aside`,style:{height:`100%`},children:[(0,Y.jsx)(`header`,{className:`aside__head`,children:(0,Y.jsx)(`h4`,{style:{margin:0,fontSize:`var(--font-size-base)`,fontWeight:600},children:r})}),(0,Y.jsx)(`nav`,{className:`aside__body`,children:e.length===0?(0,Y.jsx)(`p`,{className:`muted`,style:{padding:`var(--spacing-3) var(--spacing-4)`,fontSize:`var(--font-size-sm)`},children:`No files yet.`}):(0,Y.jsx)(`div`,{className:`files`,children:e.map(e=>(0,Y.jsxs)(`button`,{className:`files__row`,"data-selected":e.path===t?`true`:void 0,onClick:n?()=>n(e.path):void 0,children:[Ph(e),e.meta?(0,Y.jsx)(`span`,{children:e.meta}):null]},e.path))})}),i?(0,Y.jsx)(`footer`,{className:`aside__foot`,children:i}):null]})}var Ih=`button:not([disabled]), a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"]):not([disabled]), [contenteditable]:not([contenteditable="false"]), audio[controls], video[controls], iframe, details > summary:first-child`,Lh=[];function Rh(e){Lh.push(e)}function zh(e){for(let t=Lh.length-1;t>=0;t--)if(Lh[t].handler===e){Lh.splice(t,1);return}}function Bh(e){if(Lh.length===0)return!1;let t=Lh[0];for(let e=1;e<Lh.length;e++){let n=Lh[e],r=t.getContainer(),i=n.getContainer();r!=null&&i!=null&&i!==r&&i.contains(r)||(t=n)}return t.handler===e}function Vh(e){return e.isComposing===!0||e.keyCode===229}function Hh(e){if(e.hasAttribute(`inert`)||e.closest(`[inert]`)||e.hidden||e.closest(`[hidden]`)||e.closest(`[aria-hidden="true"]`))return!1;if(typeof window<`u`&&window.getComputedStyle){let t=window.getComputedStyle(e);if(t.visibility===`hidden`||t.display===`none`)return!1}return!0}function Uh(e){return Array.from(e.querySelectorAll(Ih)).filter(Hh)}function Wh(e){try{e.focus()}catch{}return document.activeElement===e}function Gh(e){let t=Uh(e);for(let e of t)if(Wh(e))return!0;return!1}function Kh(e){let t=Uh(e);for(let e=t.length-1;e>=0;e--)if(Wh(t[e]))return!0;return!1}function qh(e){let{isActive:t,onEscape:n}=e,r=(0,J.useRef)(null),i=(0,J.useRef)(null),a=(0,J.useRef)(!1),o=(0,J.useCallback)(()=>{r.current&&Gh(r.current)},[]);return(0,J.useEffect)(()=>{if(!t)return;let e=document.activeElement,n=r.current;return()=>{let t=document.activeElement;(t==null||t===document.body||t===document.documentElement||n!=null&&n.contains(t))&&e!=null&&e.isConnected&&typeof e.focus==`function`&&e.focus()}},[t]),(0,J.useEffect)(()=>{if(!t)return;let e=e=>{let t=r.current;if(!t)return;let n=e.target;t.contains(n)?i.current=n:a.current&&(Gh(t),i.current===document.activeElement&&Kh(t),i.current=document.activeElement),a.current=!1};return document.addEventListener(`focus`,e,!0),()=>{document.removeEventListener(`focus`,e,!0)}},[t]),(0,J.useEffect)(()=>{if(!t)return;let e=()=>{n?.()};n&&Rh({handler:e,getContainer:()=>r.current});let i=t=>{let i=r.current;if(i){if(t.key===`Escape`&&n){if(t.defaultPrevented||Vh(t)||!Bh(e))return;t.preventDefault(),t.stopPropagation(),n();return}if(t.key===`Tab`){a.current=!0;let e=Uh(i);if(e.length===0)return;let n=e[0],r=e[e.length-1];t.shiftKey?document.activeElement===n&&(t.preventDefault(),r.focus()):document.activeElement===r&&(t.preventDefault(),n.focus())}}};return document.addEventListener(`keydown`,i),()=>{document.removeEventListener(`keydown`,i),n&&zh(e)}},[t,n]),{containerRef:r,focusFirst:o}}function Jh(e){return!e||typeof window>`u`?!1:window.getComputedStyle(e).direction===`rtl`}var Yh=new Set([`text`,`search`,`url`,`tel`,`email`,`password`,`number`]);function Xh(e){if(e.isContentEditable)return e;let t=e.closest(`[contenteditable]`);return t&&t.getAttribute(`contenteditable`)!==`false`?t:null}function Zh(e,t){if(!(e instanceof HTMLElement))return!1;let n=Xh(e);if(n){let e=typeof window<`u`?window.getSelection():null;return e&&e.rangeCount>0&&!e.isCollapsed?!0:(n.textContent??``).length>0}let r=e.tagName===`TEXTAREA`,i=e.tagName===`INPUT`&&Yh.has(e.type);if(!r&&!i)return!1;let{selectionStart:a,selectionEnd:o,value:s}=e;return a!==o||a==null?!0:t===`ArrowLeft`||t===`ArrowUp`||t===`Home`?a>0:t===`ArrowRight`||t===`ArrowDown`||t===`End`?a<s.length:!1}function Qh(e={}){let{itemSelector:t=`[role="menuitem"]`,boundarySelector:n,wrap:r=!0,onEscape:i,orientation:a=`vertical`,hasHomeEnd:o=!0,isRtl:s,hasRovingTabIndex:c=!1,hasCaretGuard:l=!1}=e,u=(0,J.useRef)(null),d=(0,J.useCallback)(e=>e.getAttribute(`aria-disabled`)===`true`||e.disabled===!0||e.hasAttribute(`disabled`),[]),f=(0,J.useCallback)(()=>{let e=u.current;if(!e)return[];let r=Array.from(e.querySelectorAll(t));return n?r.filter(t=>t.closest(n)===e):r},[t,n]),p=(0,J.useCallback)(e=>{let t=u.current;if(!t||!n)return!0;let r=e.target;return!r||r.closest(n)===t},[n]),m=(0,J.useCallback)((e,t,n,r)=>{let i=e.length;if(i===0)return-1;let a=t;for(let t=0;t<i;t++){if(a<0||a>=i){if(!r)return-1;a=(a+i)%i}let t=e[a];if(t&&!d(t))return a;a+=n}return-1},[d]),h=(0,J.useCallback)(()=>{let e=f(),t=document.activeElement;return e.findIndex(e=>e===t||e.contains(t))},[f]),g=(0,J.useCallback)((e,t)=>{e.getAttribute(`tabindex`)!==String(t)&&e.setAttribute(`tabindex`,String(t))},[]),_=(0,J.useCallback)(()=>{let e=f(),t=e.filter(e=>!d(e));if(t.length===0)return;let n=t.find(e=>e.getAttribute(`tabindex`)===`0`)??t[0];for(let t of e)g(t,t===n?0:-1)},[f,d,g]);Dt(()=>{c&&_()});let v=(0,J.useCallback)((e,t)=>{let n=e[t];if(n){if(c)for(let t of e)g(t,t===n?0:-1);n.focus()}},[c,g]),y=(0,J.useCallback)(e=>{let t=f();if(t.length===0)return;let n=Math.max(0,Math.min(e,t.length-1));v(t,n)},[f,v]),b=(0,J.useCallback)(()=>{let e=f(),t=m(e,0,1,!1);return t!==-1&&(v(e,t),!0)},[f,m,v]),x=(0,J.useCallback)(()=>{let e=f(),t=m(e,e.length-1,-1,!1);return t!==-1&&(v(e,t),!0)},[f,m,v]),S=(0,J.useCallback)(()=>{c&&_()},[c,_]);return{listRef:u,handleKeyDown:(0,J.useCallback)(e=>{if(e.ctrlKey||e.metaKey||e.altKey||!p(e))return;if(e.key===`Escape`){e.preventDefault(),i?.();return}let t=a===`horizontal`||a===`both`,n=a===`vertical`||a===`both`,c=[],d=[];if(t){let t=e.key===`ArrowLeft`||e.key===`ArrowRight`?s??Jh(u.current):!1;c.push(t?`ArrowLeft`:`ArrowRight`),d.push(t?`ArrowRight`:`ArrowLeft`)}n&&(c.push(`ArrowDown`),d.push(`ArrowUp`));let g=c.includes(e.key),_=d.includes(e.key),y=o&&e.key===`Home`,S=o&&e.key===`End`;if(!g&&!_&&!y&&!S||l&&(Zh(e.target,e.key)||Zh(document.activeElement,e.key)))return;let C=h(),w=f();if(g){let e=C===-1?0:C+1,t=m(w,e,1,r);t!==-1&&v(w,t)}else if(_){let e=C===-1?w.length-1:C-1,t=m(w,e,-1,r);t!==-1&&v(w,t)}else y?b():S&&x();e.preventDefault()},[h,f,r,a,s,o,l,m,v,b,x,i,p]),handleFocus:S,focusItem:y,focusFirst:b,focusLast:x,ownsEvent:p,getItems:f}}function $h(e){return e.key.length===1&&!e.ctrlKey&&!e.metaKey&&e.key!==` `}function eg(e){let{getItemLabels:t,onMatch:n,getCurrentIndex:r,resetMs:i=750,isDisabled:a}=e,o=(0,J.useRef)(``),s=(0,J.useRef)(void 0),c=(0,J.useCallback)(()=>{o.current=``,s.current&&=(clearTimeout(s.current),void 0)},[]),l=(0,J.useCallback)(()=>{s.current&&clearTimeout(s.current),s.current=setTimeout(()=>{o.current=``,s.current=void 0},i)},[i]);return{onKeyDown:(0,J.useCallback)(e=>{let i=e.key===` `&&!e.ctrlKey&&!e.metaKey&&o.current.length>0;if(!$h(e)&&!i)return!1;let s=t();if(s.length===0)return!1;let c=e.key.toLowerCase(),u=o.current.length>0&&o.current.split(``).every(e=>e===c)?c:o.current+c;o.current=u,l();let d=r?.()??-1,f=s.length,p=d>=0,m=p?d:0,h=p&&u.length===1?1:0;for(let e=0;e<f;e++){let t=(m+h+e+f)%f;if(a?.(t))continue;let r=s[t];if(r!=null&&r.trim().toLowerCase().startsWith(u))return n(t),!0}return!0},[t,n,r,l,a]),reset:c}}function tg(e,t,n=!0){let r=(0,J.useRef)(!1);(0,J.useEffect)(()=>{n&&!r.current&&(r.current=!0)},[e,t,n])}var ng=!1;typeof window<`u`&&requestAnimationFrame(()=>{ng=!0});var rg={slideDown:{kKVMdj:`x1srr2gu x1aquc0h`,k44tkh:`x9uej1z`,kyAemX:`x128ha8g`,kWV6AL:`xskzprw`,$$css:!0},slideUp:{kKVMdj:`x1dvww92 x1aquc0h`,k44tkh:`x9uej1z`,kyAemX:`x128ha8g`,kWV6AL:`xskzprw`,$$css:!0},fadeIn:{kKVMdj:`xqcmdr3 x1aquc0h`,k44tkh:`x9uej1z`,kyAemX:`x128ha8g`,kWV6AL:`xskzprw`,$$css:!0},scaleIn:{kKVMdj:`x97zbip x1aquc0h`,k44tkh:`x9uej1z`,kyAemX:`x128ha8g`,kWV6AL:`xskzprw`,$$css:!0}};function ig(e=`slideDown`){let[t]=(0,J.useState)(()=>ng);return t?rg[e]:null}var ag=50,og=8;function sg(e){let t=e.match(/^([\d.]+)ms$/);if(t)return parseFloat(t[1]);let n=e.match(/^([\d.]+)s$/);return n?parseFloat(n[1])*1e3:null}var cg={natural:10,fast:4,instant:1/0},lg=typeof Intl.Segmenter==`function`?new Intl.Segmenter(void 0,{granularity:`grapheme`}):null;function ug(e){return e>=56320&&e<=57343}function dg(e,t){return t<=0||t>=e.length?t:lg?lg.segment(e).containing(t)?.index??t:ug(e.charCodeAt(t))?t-1:t}function fg(e,t,n){let r=n?.speed??`natural`,i=cg[r],{token:a}=pr(),o=(0,J.useMemo)(()=>{if(r===`instant`)return 0;let e=sg(a(`--duration-fast-min`));if(e==null)return r===`fast`?og:ag;let t=r===`fast`?e/20:e/10;return Math.max(4,Math.round(t))},[a,r]),[s,c]=(0,J.useState)(0),l=(0,J.useRef)(e),u=(0,J.useRef)(0),d=(0,J.useRef)(0),f=(0,J.useRef)(null);l.current=e;let p=(0,J.useRef)(e.length);e.length!==p.current&&(p.current=e.length,e.length===0&&s!==0&&(u.current=0,c(0)));let m=(0,J.useRef)(t);t!==m.current&&(m.current=t,!t&&e.length>0&&(u.current=e.length,c(e.length)));let h=Jn(`(prefers-reduced-motion: reduce)`);return(0,J.useEffect)(()=>{if(!t||r===`instant`||h)return;function e(t){if(t-d.current>=o){d.current=t;let e=l.current,n=u.current;if(n<e.length){let t=Math.min(n+i,e.length);u.current=t,c(t)}}f.current=requestAnimationFrame(e)}return f.current=requestAnimationFrame(e),()=>{f.current!==null&&(cancelAnimationFrame(f.current),f.current=null)}},[t,i,o,r,h]),!t||r===`instant`||h?e:e.slice(0,dg(e,s))}var pg=[`button`,`a`,`input`,`select`,`textarea`,`[role="button"]`,`[role="link"]`,`[role="checkbox"]`,`[role="radio"]`,`[role="switch"]`,`[role="tab"]`,`[role="menuitem"]`,`[role="option"]`,`[role="combobox"]`,`[role="listbox"]`,`[role="slider"]`,`[role="spinbutton"]`,`[data-pressable-container]`].join(`,`),mg=`[aria-readonly="true"]`;function hg(e,t){let n=e;for(;n!=null&&n!==t&&n!==document.body;){if(n.matches(pg)&&!n.matches(mg))return!0;n=n.parentElement}return!1}function gg(e){if(typeof document>`u`||!(`getSelection`in document))return!1;let t=document.getSelection();return t==null||t.isCollapsed?!1:e.contains(t.anchorNode)}function _g({containerRef:e,interactiveRef:t,onClick:n,href:r,target:i,disabled:a=!1}){return(0,J.useEffect)(()=>{let t=e.current;t&&t.setAttribute(`data-pressable-container`,`true`)},[e]),{onClick:(0,J.useCallback)(o=>{if(a)return;let s=e.current;if(!s||gg(s))return;let c=o.target;if(c instanceof Element&&!(c!==o.currentTarget&&hg(c,s))&&(n?.(o),!o.defaultPrevented&&(r!=null&&(i===`_blank`||o.ctrlKey||o.metaKey?window.open(r,`_blank`,`noopener`):t?.current?t.current.click():window.location.href=r),r==null&&n==null&&t?.current))){let e=new MouseEvent(`click`,{bubbles:o.bubbles,cancelable:o.cancelable,ctrlKey:o.ctrlKey,metaKey:o.metaKey,shiftKey:o.shiftKey,altKey:o.altKey,button:o.button});t.current.dispatchEvent(e),o.stopPropagation()}},[e,t,n,r,i,a]),onMouseUp:(0,J.useCallback)(t=>{if(a)return;let n=e.current;if(!n)return;let i=t.target;i instanceof Element&&t.button===1&&r!=null&&(i===t.currentTarget||!hg(i,n))&&window.open(r,`_blank`,`noopener`)},[e,r,a])}}var vg=new Set([`text`,`password`,`email`,`number`,`search`,`tel`,`url`,`date`,`datetime-local`,`month`,`time`,`week`]),yg=new Set([`true`,`menu`,`listbox`,`tree`,`grid`,`dialog`]);function bg(e){if(e.getAttribute(`role`)===`combobox`)return!0;let t=e.getAttribute(`aria-haspopup`);return t!=null&&yg.has(t)}function xg({containerRef:e,inputRef:t,disabled:n=!1}){return _g({containerRef:e,interactiveRef:t,onClick:(0,J.useCallback)(()=>{let e=t.current;e!=null&&(e instanceof HTMLElement&&bg(e)?e.click():e instanceof HTMLInputElement&&vg.has(e.type)||e instanceof HTMLTextAreaElement?e.focus():e instanceof HTMLElement?e.click():`focus`in e&&e.focus())},[t]),disabled:n})}var Sg=500,Cg=10;function wg(e){let{onLongPress:t,disabled:n=!1,delayMs:r=Sg,moveCancelPx:i=Cg}=e,a=(0,J.useRef)(null),o=(0,J.useRef)(null),s=(0,J.useRef)(t);s.current=t;let c=(0,J.useCallback)(()=>{a.current!=null&&(clearTimeout(a.current),a.current=null),o.current=null},[]),l=(0,J.useCallback)(e=>{if(n)return;if(e.touches.length!==1){c();return}let t=e.touches[0];c(),o.current={x:t.clientX,y:t.clientY},a.current=setTimeout(()=>{let e=o.current;e!=null&&s.current({x:e.x,y:e.y})},r)},[n,r,c]),u=(0,J.useCallback)(e=>{let t=o.current;if(t==null)return;if(e.touches.length!==1){c();return}let n=e.touches[0];(Math.abs(n.clientX-t.x)>i||Math.abs(n.clientY-t.y)>i)&&c()},[i,c]);return(0,J.useEffect)(()=>c,[c]),{onTouchStart:l,onTouchMove:u,onTouchEnd:c,onTouchCancel:c}}function Tg(e,t=!1){let n=(0,J.useCallback)(t=>{let n=e.current?.firstElementChild;n instanceof HTMLElement&&Object.assign(n.style,t?Cd:wd)},[e]),r=(0,J.useCallback)(e=>{if(t)return;let r=e.target;r instanceof HTMLElement&&!r.matches(`:focus-visible`)||n(!0)},[t,n]),i=(0,J.useCallback)(()=>n(!1),[n]);return(0,J.useMemo)(()=>({focusProps:{onFocus:r,onBlur:i}}),[r,i])}var Eg={label:{k1xSpc:`x78zum5`,kGNEyG:`x6s0dn4`,kOIVth:`xzye2dw`,kMv6JI:`x9ynric`,kGuDYH:`xcr08ib`,kLWn49:`x1kq96og`,k63SB2:`x1e4wzip`,kMwMTN:`xv1l7n4`,kkrTdU:`x1ypdohk`,$$css:!0},labelDisabled:{kMwMTN:`xnbbluu`,kkrTdU:`x1h6gzvc`,$$css:!0},srOnly:{ksu8eU:`xng3xce`,kMcinP:`xzpqnlu`,kZKoxP:`xjm9jq1`,kLqNvP:`x1o0tod`,kogj98:`xkdpibf`,kVQacm:`xb3r6kr`,kmVPX3:`x1717udv`,kfzvcC:`x47corl`,kVAEAm:`x10l6tqk`,k87sOh:`x13vifvy`,kfSwDN:`x87ps6o`,khDVqt:`xuxw1ft`,kzqmXN:`x1i1rx1s`,$$css:!0}};function Dg({label:e,inputID:t,labelID:n,isGroupLabel:r=!1,isLabelHidden:i=!1,isDisabled:a=!1,isOptional:o=!1,isRequired:s=!1,labelIcon:c,labelTooltip:l,description:u,descriptionID:d,className:f,style:p,xstyle:m,ref:h,...g}){let _=tp(),v=o?_(`@astryx.field.optional`):s?_(`@astryx.field.required`):null,y=r?`span`:`label`,b=!r&&t!=null,x=(0,J.useRef)(null),S=xg({containerRef:x,inputRef:(0,J.useMemo)(()=>({get current(){return t==null?null:x.current?.ownerDocument.getElementById(t)??null},set current(e){}}),[t]),disabled:!b}),C=(0,Y.jsxs)(Y.Fragment,{children:[c&&Hu(c,{size:`sm`,color:`inherit`}),e,v&&(0,Y.jsxs)(`span`,{className:`x1sodnla x141an7d x1ltkj2j xv1l7n4`,children:[(0,Y.jsx)(`span`,{"aria-hidden":`true`,children:` ∙ `}),v]}),l&&(0,Y.jsx)(Ut,{content:l,placement:`above`,children:(0,Y.jsx)(Bu,{icon:`info`,size:`sm`,color:`inherit`})})]});return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(y,{ref:h,id:n,htmlFor:r?void 0:t,...g,...Q(q(`field-label`),K(Eg.label,a&&Eg.labelDisabled,i&&Eg.srOnly,m),f,p),children:C}),u&&(0,Y.jsx)(`span`,{ref:b?x:void 0,id:d,...b?S:void 0,...{0:{className:`x9ynric x141an7d x1ltkj2j x1sodnla xv1l7n4`},2:{className:`x9ynric x141an7d x1ltkj2j x1sodnla xv1l7n4 x1ypdohk`},1:{className:`x9ynric x141an7d x1ltkj2j x1sodnla xv1l7n4 xng3xce xzpqnlu xjm9jq1 x1o0tod xkdpibf xb3r6kr x1717udv x47corl x10l6tqk x13vifvy x87ps6o xuxw1ft x1i1rx1s`},3:{className:`x9ynric x141an7d x1ltkj2j x1sodnla xv1l7n4 x1ypdohk xng3xce xzpqnlu xjm9jq1 x1o0tod xkdpibf xb3r6kr x1717udv x47corl x10l6tqk x13vifvy x87ps6o xuxw1ft x1i1rx1s`}}[!!b<<1|!!i<<0],children:u})]})}Dg.displayName=`FieldLabel`;var Og={warning:`warning`,error:`error`,success:`success`},kg={base:{kMv6JI:`x9ynric`,kGuDYH:`x141an7d`,kLWn49:`x1ltkj2j`,$$css:!0},attached:{keoZOQ:`x1c40v9y`,kLKAdn:`x1ak3mig`,kGO01o:`x1wesfrj`,kg3NbH:`xf314gf`,kVL7Gh:`xquck67`,kT0f0o:`x14i3lts`,$$css:!0},detached:{keoZOQ:`xcsaf9d`,k8WAf4:`xce4md1`,kg3NbH:`xf314gf`,kaIpWk:`xh6dtrn`,$$css:!0}},Ag={warning:{kWkggS:`x24i8r5`,kMwMTN:`xdhq94a`,$$css:!0},error:{kWkggS:`x1pritpl`,kMwMTN:`x1joocv1`,$$css:!0},success:{kWkggS:`xu13z74`,kMwMTN:`xltfdvo`,$$css:!0}};function jg({ref:e,type:t,message:n,id:r,variant:i=`attached`,xstyle:a,className:o,style:s,...c}){let l=ig(`slideDown`),u=Eu();return(0,J.useEffect)(()=>{n&&u(n,t===`error`?`assertive`:`polite`)},[u,n,t]),(0,Y.jsx)(`div`,{ref:e,id:r,...c,...Q(q(`field-status`,{type:t,variant:i}),K(kg.base,l,i===`attached`?kg.attached:kg.detached,Ag[t],a),o,s),children:i===`detached`?(0,Y.jsxs)(`span`,{className:`x78zum5 x1cy8zhl xzye2dw`,children:[(0,Y.jsx)(`span`,{className:`x3nfvp2 x6s0dn4 x14o5nre x2lah0s`,children:(0,Y.jsx)(Bu,{icon:Og[t],size:`sm`,color:`inherit`,...q(`field-status-icon`,{type:t})})}),(0,Y.jsx)(`span`,{children:n})]}):n})}jg.displayName=`FieldStatus`;var Mg=(0,J.createContext)({direction:`vertical`});Mg.displayName=`FormLayoutContext`;var Ng={container:{k1xSpc:`x78zum5`,kXwgrk:`xdt5ytf`,$$css:!0},containerGap:{kOIVth:`xzye2dw`,$$css:!0},horizontalLabels:{k1xSpc:`xjp7ctv`,$$css:!0}},Pg={width:e=>[{kzqmXN:e==null?e:`x5lhr3w`,$$css:!0},{"--x-width":(e=>typeof e==`number`?e+`px`:e??void 0)(e)}]};function Fg({label:e,isLabelHidden:t=!1,description:n,inputID:r,labelID:i,isGroupLabel:a=!1,descriptionID:o,isOptional:s=!1,isRequired:c=!1,isDisabled:l=!1,labelIcon:u,status:d,labelTooltip:f,statusVariant:p=`attached`,width:m,xstyle:h,children:g,className:_,style:v,ref:y,...b}){let{direction:x}=(0,J.use)(Mg),S=x===`horizontal-labels`,C=o??(n?`${r}-desc`:void 0),w=d?.messageID??(d?.message?`${r}-status`:void 0);tg(`Field`,`isOptional and isRequired are mutually exclusive. isOptional takes precedence.`,s&&c);let T=(0,Y.jsx)(Dg,{label:e,inputID:r,labelID:i,isGroupLabel:a,isLabelHidden:t,isDisabled:l,isOptional:s,isRequired:c,labelIcon:u,labelTooltip:f,description:S?void 0:n,descriptionID:S?void 0:C}),E=d?.message&&p!==`tooltip`?(0,Y.jsx)(jg,{type:d.type,message:d.message,id:w,variant:p}):null;return S?(0,Y.jsxs)(`div`,{ref:y,...Q(q(`field`,{layout:`horizontal-labels`}),K(Ng.horizontalLabels,h),_,v),...b,children:[(0,Y.jsx)(`div`,{className:`x1enrzb7`,children:T}),(0,Y.jsxs)(`div`,{className:`x78zum5 xdt5ytf xc8icb0`,children:[n&&(0,Y.jsx)(ld,{type:`supporting`,display:`block`,id:C,children:n}),g,E]})]}):(0,Y.jsxs)(`div`,{ref:y,...Q(q(`field`),K(Ng.container,!t&&Ng.containerGap,m!=null&&Pg.width(m),h),_,v),...b,children:[T,p===`attached`?(0,Y.jsxs)(`div`,{className:`x78zum5 xdt5ytf xc8icb0`,children:[g,E]}):(0,Y.jsxs)(Y.Fragment,{children:[g,E]})]})}Fg.displayName=`Field`;var Ig=(0,J.createContext)(null);Ig.displayName=`ListContext`;var Lg={list:{kogj98:`x1ghz6dp`,kZCmMZ:`x1c1uobl`,kH6xsr:`x3ct3a4`,k1xSpc:`x78zum5`,kXwgrk:`xdt5ytf`,kOIVth:`x1lsbc85`,$$css:!0},withDividers:{kOIVth:`xxhr3t`,$$css:!0},withCounter:{kt6KFK:`xif0320`,$$css:!0}},Rg={kt6KFK:`x1khind5`,$$css:!0},zg={counterStart:e=>[Rg,{"--x-counterReset":`astryx-list ${e}`==null?void 0:`astryx-list ${e}`}]};function Bg({children:e,density:t=`balanced`,hasDividers:n=!1,header:r,listStyle:i=`none`,start:a,xstyle:o,className:s,style:c,"data-testid":l,ref:u}){let d=(0,J.useId)(),f=i===`decimal`,p=f?`ol`:`ul`,m=(0,J.useMemo)(()=>({density:t,hasDividers:n,listStyle:i}),[t,n,i]),h=(0,Y.jsx)(p,{ref:u,"data-testid":l,"aria-labelledby":r==null?void 0:d,...f&&a!=null&&a!==1?{start:a}:{},role:`list`,...Q(q(`list`,{density:t,listStyle:i}),K(Lg.list,n&&Lg.withDividers,i!==`none`&&(a!=null&&a!==1?zg.counterStart(a-1):Lg.withCounter),o),s,c),children:e});return r==null?(0,Y.jsx)(Ig,{value:m,children:h}):(0,Y.jsx)(Ig,{value:m,children:(0,Y.jsxs)(`div`,{className:`x78zum5 xdt5ytf`,children:[(0,Y.jsx)(`div`,{id:d,className:`x1p37lm5`,children:r}),h]})})}Bg.displayName=`List`;var Vg=(0,J.createContext)(null);Vg.displayName=`CheckboxListContext`;var Hg=[];function Ug({label:e,isLabelHidden:t=!1,description:n,status:r,value:i,onChange:a,changeAction:o,density:s=`balanced`,hasDividers:c=!1,isDisabled:l=!1,disabledMessage:u,isReadOnly:d=!1,children:f,ref:p,width:m,xstyle:h,className:g,style:_,"data-testid":v,...y}){let b=(0,J.useId)(),x=(0,J.useId)(),S=(0,J.useId)(),C=(0,J.useId)(),[,w]=(0,J.useTransition)(),T=i!==void 0,[E,D]=(0,J.useOptimistic)(i??Hg),[O,k]=(0,J.useOptimistic)(null),A=l&&!!u,j=Vt({placement:`above`,focusTrigger:`always`,isEnabled:A}),M=(0,J.useCallback)((e,t)=>{a?.(e),o&&w(async()=>{D(e),t!==void 0&&k(t),await o(e)})},[a,o,w,D,k]),N=(0,J.useMemo)(()=>({value:T?E:void 0,onChange:T?M:void 0,isDisabled:l,hasDisabledMessage:A,isReadOnly:d,loadingValue:O}),[T,E,M,l,A,d,O]);return(0,Y.jsxs)(Fg,{...y,ref:p,"data-testid":v,label:e,isLabelHidden:t,description:n,inputID:b,labelID:x,isGroupLabel:!0,descriptionID:n?S:void 0,isDisabled:l,status:r?{type:r.type,message:r.message,messageID:r.message?C:void 0}:void 0,statusVariant:`detached`,width:m,xstyle:h,...Q(q(`checkbox-list`),{className:g,style:_}),children:[(0,Y.jsx)(Vg,{value:N,children:(0,Y.jsx)(`div`,{ref:e=>{j.ref(e)},role:`group`,"aria-labelledby":x,"aria-describedby":[n?S:null,r?.message?C:null,A?j.describedBy:null].filter(Boolean).join(` `)||void 0,children:(0,Y.jsx)(Bg,{density:s,hasDividers:c,children:f})})}),A&&j.renderTooltip(u)]})}Ug.displayName=`CheckboxList`;var Wg={x1odsvnm:`x1odsvnm`,$$css:!0},Gg={box:{kB7OPa:`x9f619`,k1xSpc:`x78zum5`,kGNEyG:`x6s0dn4`,kjj79g:`xl56j7k`,kmuXW:`x2lah0s`,kMzoRj:`x1litavf`,ksu8eU:`x1y0btm7`,kaIpWk:`xx3sua9`,k1ekBW:`xts7igz`,kIyJzY:`xuedmi6 x12w9bfk`,kAMwcw:`xlr8y92`,$$css:!0},unchecked:{kMwMTN:`xqwr325`,kVAM5u:`xvy26l8 xilc7fp`,kWkggS:`x10xzikg xeultfy`,$$css:!0},checked:{kMwMTN:`x17wrial`,kVAM5u:`xad5do x1ozl1p1`,kWkggS:`x1ewilqj x17srpfb`,$$css:!0},disabled:{kSiTet:`xbyyjgo`,kVAM5u:`x14i3s5s x61roa7`,$$css:!0},disabledUnchecked:{kWkggS:`xwmxj5m xqxnq6d`,$$css:!0},checkmark:{k1xSpc:`x1s85apg`,kMwMTN:`x17wrial xs5hli`,$$css:!0},checkmarkVisible:{k1xSpc:`x1lliihq`,$$css:!0},indeterminateMark:{k1xSpc:`x1s85apg`,kWkggS:`x1azo05 xwvh9j7`,kaIpWk:`xjspbzw`,$$css:!0},indeterminateMarkVisible:{k1xSpc:`x1lliihq`,$$css:!0}},Kg={sm:{kzqmXN:`xw4jnvo`,kZKoxP:`x1qx5ct2`,$$css:!0},md:{kzqmXN:`xvy4d1p`,kZKoxP:`xxk0z11`,$$css:!0}},qg={sm:{kzqmXN:`xsmyaan`,kZKoxP:`x1kpxq89`,$$css:!0},md:{kzqmXN:`x6jxa94`,kZKoxP:`x1v9usgg`,$$css:!0}},Jg={sm:{kzqmXN:`x1fsd2vl`,kZKoxP:`x36qwtl`,$$css:!0},md:{kzqmXN:`xsmyaan`,kZKoxP:`x36qwtl`,$$css:!0}};function Yg({state:e,size:t=`md`,isDisabled:n=!1,children:r,ref:i,className:a,style:o,xstyle:s,...c}){let l=e===`checked`,u=e===`indeterminate`,d=l||u;return(0,Y.jsx)(`span`,{...c,ref:i,"aria-hidden":`true`,...Q(q(`checkbox-indicator`,{size:t,checked:l?`checked`:u?`indeterminate`:null,disabled:n?`disabled`:null},{legacyNames:[`checkbox`]}),K(Gg.box,Kg[t],d?Gg.checked:Gg.unchecked,n&&Gg.disabled,n&&!d&&Gg.disabledUnchecked,s),a,o),children:fu(r)?r:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`svg`,{viewBox:`0 0 10 10`,...K(Gg.checkmark,qg[t],l&&Gg.checkmarkVisible),children:(0,Y.jsx)(`path`,{d:`M8.5 2.5L4 7.5L1.5 5`,stroke:`currentColor`,strokeWidth:`1.5`,fill:`none`,strokeLinecap:`round`,strokeLinejoin:`round`})}),(0,Y.jsx)(`span`,{...K(Gg.indeterminateMark,Jg[t],u&&Gg.indeterminateMarkVisible)})]})})}Yg.displayName=`CheckboxIndicator`;var Xg={sm:`sm`,md:`sm`},Zg={slot:{k1xSpc:`x3nfvp2`,kGNEyG:`x6s0dn4`,kjj79g:`xl56j7k`,kmuXW:`x2lah0s`,kzqmXN:`xcdlrvm`,kZKoxP:`x1l36t39`,$$css:!0},enabled:{kMwMTN:`xqwr325`,$$css:!0},disabled:{kMwMTN:`xqa6c3m`,$$css:!0}};function Qg({state:e,size:t=`md`,isDisabled:n=!1,children:r,ref:i,className:a,style:o,xstyle:s,...c}){let l=e===`checked`;return fu(r)?(0,Y.jsx)(`span`,{...c,ref:i,"aria-hidden":`true`,...Q(K(Zg.slot,n?Zg.disabled:Zg.enabled,s),a,o),children:r}):l?(0,Y.jsx)(Bu,{...c,"aria-hidden":`true`,icon:`check`,size:Xg[t],color:n?`disabled`:`accent`,xstyle:s,className:a,style:o}):null}Qg.displayName=`CheckIndicator`;var $g={circle:{kB7OPa:`x9f619`,k1xSpc:`x78zum5`,kGNEyG:`x6s0dn4`,kjj79g:`xl56j7k`,kmuXW:`x2lah0s`,kMzoRj:`x1litavf`,ksu8eU:`x1y0btm7`,kaIpWk:`xjspbzw`,k1ekBW:`xts7igz`,kIyJzY:`xuedmi6 x12w9bfk`,kAMwcw:`xlr8y92`,$$css:!0},unchecked:{kVAM5u:`xvy26l8 xilc7fp`,kWkggS:`x10xzikg xeultfy`,$$css:!0},checked:{kVAM5u:`xad5do x1ozl1p1`,kWkggS:`x1ewilqj x17srpfb`,$$css:!0},disabled:{kSiTet:`xbyyjgo`,kVAM5u:`x14i3s5s x61roa7`,$$css:!0},disabledUnchecked:{kWkggS:`xwmxj5m xqxnq6d`,$$css:!0},dot:{kaIpWk:`xjspbzw`,kWkggS:`x1azo05 xwvh9j7`,$$css:!0}},e_={sm:{kzqmXN:`xw4jnvo`,kZKoxP:`x1qx5ct2`,$$css:!0},md:{kzqmXN:`xvy4d1p`,kZKoxP:`xxk0z11`,$$css:!0}},t_={sm:{kzqmXN:`x1xc55vz`,kZKoxP:`xdk7pt`,$$css:!0},md:{kzqmXN:`x1fsd2vl`,kZKoxP:`x170jfvy`,$$css:!0}};function n_({state:e,size:t=`md`,isDisabled:n=!1,children:r,ref:i,className:a,style:o,xstyle:s,...c}){let l=e!==`unchecked`;return(0,Y.jsx)(`span`,{...c,ref:i,"aria-hidden":`true`,...Q(q(`radio-indicator`,{size:t,checked:l?`checked`:null,disabled:n?`disabled`:null},{legacyNames:[`radio`]}),K($g.circle,e_[t],l?$g.checked:$g.unchecked,n&&$g.disabled,n&&!l&&$g.disabledUnchecked,s),a,o),children:fu(r)?r:l&&(0,Y.jsx)(`span`,{...Q(q(`radio-indicator-dot`,{size:t},{legacyNames:[`radio-dot`]}),K($g.dot,t_[t]))})})}n_.displayName=`RadioIndicator`;var r_={check:Qg,checkbox:Yg,radio:n_};function i_(e){return e==null?null:typeof e==`string`?fn(e):e}function a_(e){return i_(e)?.indicators??null}function o_(e,t){return a_(t)?.[e]??r_[e]}function s_(e){return o_(e,fr())}var c_={container:{k1xSpc:`x78zum5`,kGNEyG:`x6s0dn4`,kOIVth:`x1txdalj`,$$css:!0},containerLabelHidden:{kOIVth:`xxhr3t`,$$css:!0},checkboxWrapper:{kVAEAm:`x1n2onr6`,k1xSpc:`x78zum5`,kGNEyG:`x6s0dn4`,kjj79g:`xl56j7k`,kmuXW:`x2lah0s`,kHBbk8:`xc8icb0`,$$css:!0},input:{kVAEAm:`x10l6tqk`,kogj98:`x1ghz6dp`,kmVPX3:`x1717udv`,kSiTet:`xg01cxk`,kkrTdU:`x1ypdohk`,kY2c9j:`x1vjfegm`,$$css:!0},inputDisabled:{kkrTdU:`x1h6gzvc`,$$css:!0}},l_={sm:{kzqmXN:`xw4jnvo`,kZKoxP:`x1qx5ct2`,$$css:!0},md:{kzqmXN:`xvy4d1p`,kZKoxP:`xxk0z11`,$$css:!0}},u_={width:e=>[{kzqmXN:e==null?e:`x5lhr3w`,$$css:!0},{"--x-width":(e=>typeof e==`number`?e+`px`:e??void 0)(e)}]};function d_({label:e,isLabelHidden:t=!1,description:n,onChange:r,changeAction:i,isLoading:a=!1,value:o,isDisabled:s=!1,htmlName:c,disabledMessage:l,isReadOnly:u=!1,isOptional:d=!1,isRequired:f=!1,size:p=`md`,onFocus:m,onBlur:h,labelIcon:g,status:_,width:v,xstyle:y,className:b,style:x,ref:S,...C}){let w=(0,J.useId)(),T=(0,J.useId)(),E=(0,J.useId)(),[,D]=(0,J.useTransition)(),[O,k]=(0,J.useOptimistic)(o),A=a||O!==o,j=s&&!!l,M=(0,J.use)(Vg),N=s&&(j||(M?.hasDisabledMessage??!1)),P=Vt({placement:`above`,focusTrigger:`always`,isEnabled:j}),F=s_(`checkbox`),I=(0,J.useRef)(null),{focusProps:L}=Tg(I,s),R=O===`indeterminate`,z=O===!0,B=(0,J.useCallback)(e=>{e&&(e.indeterminate=R)},[R]),V=[];n&&V.push(T),_?.message&&V.push(E),j&&V.push(P.describedBy);let H=V.length>0?V.join(` `):void 0;return(0,Y.jsxs)(`div`,{...Q(q(`checkbox-input`,{size:p}),K(v!=null&&u_.width(v),y),b,x),children:[(0,Y.jsxs)(`div`,{ref:e=>{P.interactionRef(e)},...K(c_.container,t&&c_.containerLabelHidden,!s&&Wg),children:[(0,Y.jsxs)(`div`,{...K(c_.checkboxWrapper,l_[p]),...L,children:[(0,Y.jsx)(`input`,{...C,ref:iu(S,B,P.positionRef),id:w,type:`checkbox`,name:s?void 0:c,checked:z,disabled:s&&!N,"aria-disabled":N?`true`:void 0,form:N?``:void 0,readOnly:u,required:f,onChange:e=>{if(s||A||u)return;let t=e.target.checked;r?.(t,e),i&&!e.defaultPrevented&&D(async()=>{k(t),await i(t,e)})},onFocus:m,onBlur:h,"aria-readonly":u||void 0,"aria-describedby":H,"aria-invalid":_?.type===`error`||void 0,"aria-busy":A||void 0,...K(c_.input,l_[p],s&&c_.inputDisabled)}),(0,Y.jsx)(`span`,{ref:I,className:`xjp7ctv`,children:(0,Y.jsx)(F,{state:R?`indeterminate`:z?`checked`:`unchecked`,size:p,isDisabled:s,children:A?(0,Y.jsx)(pd,{size:`sm`,shade:`inherit`}):null})})]}),(0,Y.jsx)(`div`,{className:`x78zum5 xdt5ytf x1lsbc85`,children:(0,Y.jsx)(Dg,{label:e,inputID:w,isLabelHidden:t,isDisabled:s,isOptional:d,isRequired:f,labelIcon:g,description:n,descriptionID:T})})]}),_?.message&&(0,Y.jsx)(jg,{type:_.type,message:_.message,id:E,variant:`detached`}),j&&P.renderTooltip(l)]})}d_.displayName=`CheckboxInput`;var f_=[`noopener`,`noreferrer`];function p_(e,t){if(e!==`_blank`)return{target:e,rel:t};let n=t?.split(/\s+/).filter(Boolean)??[];for(let e of f_)n.includes(e)||n.push(e);return{target:e,rel:n.join(` `)}}var m_=new Set([`option`,`tab`,`row`,`gridcell`,`columnheader`,`rowheader`,`treeitem`]),h_={root:{k1xSpc:`x78zum5`,kGNEyG:`x6s0dn4`,kOIVth:`x1txdalj`,kg3NbH:`xf314gf`,kVAEAm:`x1n2onr6`,kB7OPa:`x9f619`,k9WMMc:`x1yc453h`,kaIpWk:`xh6dtrn`,$$css:!0},alignStart:{kGNEyG:`x1cy8zhl`,$$css:!0},interactive:{kkrTdU:`x1ypdohk`,k1ekBW:`x15406qy`,kIyJzY:`xkvfbh3`,kAMwcw:`xlr8y92`,kWkggS:`xjbqb8w xe9uy6x xyxi2l3`,$$css:!0},highlighted:{kWkggS:`x1lmrjuc`,$$css:!0},selected:{kWkggS:`xgcxg3y`,$$css:!0},disabled:{kkrTdU:`x1h6gzvc`,kfzvcC:`x47corl`,$$css:!0},label:{kMwMTN:`x5tbw38`,kGuDYH:`xjm74w1`,kLWn49:`xw6l6zx`,$$css:!0},labelSingleTruncate:{kVQacm:`xb3r6kr`,kg5iWk:`xlyipyv`,khDVqt:`xuxw1ft`,$$css:!0},labelMultiTruncate:{kVQacm:`xb3r6kr`,k1xSpc:`x104kibb`,kgKLqz:`x1ua5tub`,$$css:!0},description:{kMwMTN:`x1gb3s7i`,kGuDYH:`x141an7d`,kLWn49:`x1ltkj2j`,$$css:!0},descriptionSingleTruncate:{kVQacm:`xb3r6kr`,kg5iWk:`xlyipyv`,khDVqt:`xuxw1ft`,$$css:!0},descriptionMultiTruncate:{kVQacm:`xb3r6kr`,k1xSpc:`x104kibb`,kgKLqz:`x1ua5tub`,$$css:!0}},g_={lineClamp:e=>[{kJFfOR:e==null?e:`x1yhjpo9`,$$css:!0},{"--x-WebkitLineClamp":e??void 0}]},__={compact:{k8WAf4:`xu0wf1k`,$$css:!0},balanced:{k8WAf4:`xce4md1`,$$css:!0},spacious:{k8WAf4:`x8o8v82`,kg3NbH:`xrrkdod`,$$css:!0}};function v_({as:e=`div`,marker:t,startContent:n,label:r,description:i,endContent:a,align:o=`center`,density:s=`balanced`,labelLines:c,descriptionLines:l,onClick:u,interactiveRef:d,href:f,target:p,rel:m,isHighlighted:h=!1,isSelected:g=!1,isDisabled:_=!1,xstyle:v,className:y,style:b,ref:x,role:S,...C}){let w=Sd(),T=d!=null,E=(0,J.useRef)(null),{onClick:D}=_g({containerRef:E,interactiveRef:d??void 0,disabled:_});tg(`Item`,"`interactiveRef` is mutually exclusive with `onClick`/`href`. In delegation mode the row only forwards clicks to the referenced control, so `onClick`/`href` are ignored. Drop one of them.",T&&(u!=null||f!=null));let O=u!=null||f!=null||T,{target:k,rel:A}=p_(p,m),j=S!=null,M=S!=null&&m_.has(S),N=typeof r==`string`,P=typeof i==`string`,F=c==null?N?h_.labelSingleTruncate:null:c===1?h_.labelSingleTruncate:h_.labelMultiTruncate,I=l==null?P?h_.descriptionSingleTruncate:null:l===1?h_.descriptionSingleTruncate:h_.descriptionMultiTruncate,L=(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`span`,{...K(h_.label,F,c!=null&&c>1&&g_.lineClamp(c)),children:r}),i!=null&&(0,Y.jsx)(`span`,{...K(h_.description,I,l!=null&&l>1&&g_.lineClamp(l)),children:i})]}),R=e=>{_||e.target.closest(`button, a, input, select, textarea`)||u?.(e)},z=(0,Y.jsxs)(Y.Fragment,{children:[t,n!=null&&(0,Y.jsx)(`span`,{className:`x3psx0u x78zum5`,children:n}),j||T?(0,Y.jsx)(`span`,{...{0:{className:`x78zum5 xdt5ytf x98rzlu xeuugli x1yc453h`},1:{className:`x78zum5 xdt5ytf x98rzlu xeuugli x1yc453h xbyyjgo`}}[!!_<<0],children:L}):f==null?u==null?(0,Y.jsx)(`span`,{...{0:{className:`x78zum5 xdt5ytf x98rzlu xeuugli x1yc453h`},1:{className:`x78zum5 xdt5ytf x98rzlu xeuugli x1yc453h xbyyjgo`}}[!!_<<0],children:L}):(0,Y.jsx)(`button`,{type:`button`,onClick:u,disabled:_,...{0:{className:`xmper1u xln7xf2 x1heor9g x78zum5 xdt5ytf x98rzlu xeuugli x1yc453h x1a2a7pz`},1:{className:`xmper1u xln7xf2 x1heor9g x78zum5 xdt5ytf x98rzlu xeuugli x1yc453h x1a2a7pz xbyyjgo`}}[!!_<<0],children:L}):(0,Y.jsx)(w,{href:f,target:k,rel:A,"aria-disabled":_||void 0,tabIndex:_?-1:void 0,...{0:{className:`xmper1u xln7xf2 x1heor9g x78zum5 xdt5ytf x98rzlu xeuugli x1yc453h x1hl2dhg x1a2a7pz`},1:{className:`xmper1u xln7xf2 x1heor9g x78zum5 xdt5ytf x98rzlu xeuugli x1yc453h x1hl2dhg x1a2a7pz xbyyjgo`}}[!!_<<0],children:L}),a!=null&&(0,Y.jsx)(`span`,{...{0:{className:`x3psx0u x78zum5 xvc5jky`},1:{className:`x3psx0u x78zum5 xvc5jky xbyyjgo`}}[!!_<<0],children:a})]});return(0,Y.jsx)(e,{ref:T?iu(x,E):x,...C,"aria-selected":M&&g||void 0,"aria-current":C[`aria-current`]??(g&&!M?!0:void 0),"aria-disabled":_||void 0,...Q(q(`item`,{density:s,align:o}),Dd.focusWithin(h_.root,__[s],o===`start`&&h_.alignStart,O&&h_.interactive,h&&h_.highlighted,g&&h_.selected,_&&!j&&h_.disabled,v),y,b),role:S,onClick:T?D:j?u:O?R:void 0,children:z})}v_.displayName=`Item`;var y_={withCounter:{kAmcRD:`xfrknyr`,$$css:!0},withDivider:{kt9PQ7:`x92x3c3`,kfdmCh:`x1q0q8m5`,kL6WhQ:`xw8gpjh`,$$css:!0}},b_={noRadius:{kaIpWk:`x2u8bby`,$$css:!0}};function x_({label:e,description:t,startContent:n,endContent:r,onClick:i,interactiveRef:a,href:o,target:s,rel:c,isDisabled:l=!1,isSelected:u=!1,xstyle:d,className:f,style:p,ref:m,...h}){let g=(0,J.use)(Ig),_=g?.density??`balanced`,v=g?.hasDividers??!1,y=g?.listStyle??`none`;return(0,Y.jsx)(v_,{as:`li`,ref:m,marker:y===`disc`?(0,Y.jsx)(`span`,{className:`xoi2r2e x9f619 x78zum5 x6s0dn4 xl56j7k x2lah0s x12xnipv x1233pnv`,children:(0,Y.jsx)(`span`,{className:`x1v4s8kt xols6we x16rqkct x19aspcf`})}):y===`circle`?(0,Y.jsx)(`span`,{className:`xoi2r2e x9f619 x78zum5 x6s0dn4 xl56j7k x2lah0s x12xnipv x1233pnv`,children:(0,Y.jsx)(`span`,{className:`x1v4s8kt xols6we x16rqkct xmkeg23 x1y0btm7 xqcx1ss xjbqb8w`})}):y===`decimal`?(0,Y.jsx)(`span`,{className:`xoi2r2e x2lah0s x1tgivj0 xjm74w1 xw6l6zx x12xnipv xc2ndz5`}):null,startContent:n,label:e,description:t,endContent:r,onClick:i,interactiveRef:a,href:o,target:s,rel:c,isDisabled:l,isSelected:u,density:_,xstyle:[y!==`none`&&y_.withCounter,v&&y_.withDivider,v&&b_.noRadius,d],...Q(q(`list-item`),{className:f,style:p}),...h})}x_.displayName=`ListItem`;var S_={selected:{kWkggS:`xgcxg3y`,$$css:!0}};function C_({label:e,"aria-label":t,value:n,description:r,endContent:i,isDisabled:a=!1,isLoading:o=!1,isChecked:s,onCheck:c,ref:l,xstyle:u,className:d,style:f,onClick:p,...m}){let h=tp(),g=(0,J.use)(Vg);if(g&&g.value!==void 0&&n===void 0)throw Error("CheckboxListItem requires a `value` prop when used inside CheckboxList with a value array.");let _=t??(typeof e==`string`?e:h(`@astryx.checkboxList.item.checkbox`));tg(`CheckboxListItem`,'`label` is a ReactNode, so the checkbox falls back to the generic accessible name "Checkbox". Pass `aria-label` with a concise string equivalent of the visible label so screen readers can tell items apart.',typeof e!=`string`&&t==null);let v=((0,J.use)(Ig)?.density??`balanced`)===`compact`?`sm`:`md`,y=(g?.isDisabled??!1)||a,b=g?.isReadOnly??!1,x=o||g?.loadingValue!=null&&n!==void 0&&g.loadingValue===n,S=!1;g&&g.value!==void 0&&n!==void 0?S=g.value.includes(n):s!==void 0&&(S=s);let C=!b&&(g!=null||c!=null),w=(0,J.useRef)(null),T=C||p!=null,E=()=>{y||b||x||(g&&g.value!==void 0&&n!==void 0?g.value.includes(n)?g.onChange?.(g.value.filter(e=>e!==n),n):g.onChange?.([...g.value,n],n):c?.(S!==!0))};return(0,Y.jsx)(x_,{...m,ref:l,label:e,description:r,endContent:i,isDisabled:y,interactiveRef:T?w:void 0,"aria-busy":x||void 0,xstyle:[S===!0&&!y&&!b&&S_.selected,u],className:d,style:f,startContent:(0,Y.jsx)(d_,{ref:w,label:_,isLabelHidden:!0,value:S,onChange:()=>E(),onClick:p,isDisabled:y,isReadOnly:b,isLoading:x,size:v})})}C_.displayName=`CheckboxListItem`;var w_={root:{k2ei4v:`xtpqe59`,kVhnKS:`x1t7ytsu`,kGJrpR:`x14ydlgx`,kZCmMZ:`x1rey3nv`,kMwMTN:`xv1l7n4`,keTefX:`x1lziwak`,k71WvV:`x14z9mp`,keoZOQ:`xdj266r`,k1K539:`xat24cr`,$$css:!0}};function T_({children:e,cite:t,xstyle:n,className:r,style:i,ref:a,...o}){return(0,Y.jsxs)(`blockquote`,{ref:a,...Q(q(`blockquote`),K(w_.root,n),r,i),...o,children:[e,t!=null&&(0,Y.jsx)(`footer`,{children:(0,Y.jsx)(`cite`,{className:`x1lliihq xtbrsbv x141an7d x1ltkj2j x1j61x8r`,children:t})})]})}T_.displayName=`Blockquote`;function E_(e){let t=0,n=0,r=[];for(let i of e){let e=i.width;if(e?.type===`pixel`)n+=e.value;else{let n=e?.value??1,a=e==null?0:e.minWidth??120;t+=n,r.push({key:i.key,proportion:n,minWidth:a})}}let i=0;if(t>0)for(let e of r){let n=e.minWidth*t/e.proportion;n>i&&(i=n)}let a=n+i,o=new Map;for(let n of e){let e=n.width,r={};if(e?.type===`pixel`)r.width=`${e.value}px`,r.minWidth=`${e.value}px`;else{let n=e?.value??1;t>0&&(r.width=`${n/t*100}%`),e!=null&&(r.minWidth=`${e.minWidth??120}px`)}o.set(n.key,{style:r})}return{columns:o,tableMinWidth:a}}function D_(e=1,t){return{type:`proportional`,value:e,minWidth:t?.minWidth??120}}function O_(e){return e.length===0?e:e.charAt(0).toUpperCase()+e.slice(1)}function k_(e,t){let n=e[t];return n==null?``:n instanceof Date?n.toISOString():typeof n==`string`||typeof n==`number`||typeof n==`boolean`||typeof n==`bigint`?String(n):``}function A_(e){return e==null?0:typeof e==`string`?e.length:typeof e==`number`||typeof e==`boolean`?String(e).length:0}function j_(e){if(e==null||typeof e!=`string`&&typeof e!=`number`&&typeof e!=`boolean`)return 0;let t=String(e),n=0,r=0;for(let e=0;e<=t.length;e++)e===t.length||t[e]===` `||t[e]===` `||t[e]===`
95
- `?(r>n&&(n=r),r=0):r++;return n}var M_=60,N_=8;function P_(e){if(e.length===0)return[];let t=e[0],n=Object.keys(t),r=e.slice(0,Math.min(5,e.length));return n.map(e=>{let t=O_(e).length,n=t,i=t;for(let t of r){let r=A_(t[e]);r>n&&(n=r);let a=j_(t[e]);a>i&&(i=a)}return{key:e,headerLen:t,maxContentLen:n,maxWordLen:i}}).map(e=>{let t=e.maxContentLen<=6?1:e.maxContentLen<=15?2:3,n=Math.max(Math.max(e.headerLen,e.maxWordLen)*N_,M_);return{key:e.key,header:O_(e.key),width:D_(t,{minWidth:n})}})}var F_={x139im0d:`x139im0d`,$$css:!0},I_={cell:{kVQacm:`xb3r6kr`,kg5iWk:`xlyipyv`,khDVqt:`xuxw1ft`,ks0D6T:`x1m189uc`,$$css:!0}},L_={cell:{kVQacm:`xb3r6kr`,kHjlTd:`x1mzt3pk`,kTgw9:`x13faqbe`,ks0D6T:`x1m189uc`,$$css:!0}},R_={compact:{kZCmMZ:`x5uh4xs`,kwRFfy:`xbg7gas`,$$css:!0},balanced:{kZCmMZ:`x9bi00s`,kwRFfy:`xpilulx`,$$css:!0},spacious:{kZCmMZ:`x18c6q21`,kwRFfy:`x1wzlfcn`,$$css:!0}},z_=(0,J.createContext)(null);z_.displayName=`TableContext`;var B_={row:{kWkggS:`x1dnou9g`,"--table-row-overlay":`x1rht92`,$$css:!0}},V_={row:{kWkggS:`xe9uy6x`,"--table-row-overlay":`x1pkcbo2`,k1ekBW:`x15406qy`,kIyJzY:`xuedmi6`,kAMwcw:`xlr8y92`,$$css:!0}},H_={row:{kWkggS:`x1dnou9g xe9uy6x`,"--table-row-overlay":`x1rht92 x1pkcbo2`,k1ekBW:`x15406qy`,kIyJzY:`xuedmi6`,kAMwcw:`xlr8y92`,$$css:!0}};function U_({children:e,xstyle:t,ref:n,isHeaderRow:r=!1,...i}){let a=(0,J.use)(z_);if(!a)return(0,Y.jsx)(`tr`,{ref:n,...i,...Q(q(`table-row`),K(F_,t)),children:e});let o=[];return r||(a.isStriped&&a.hasHover?o.push(H_.row):a.isStriped?o.push(B_.row):a.hasHover&&o.push(V_.row)),a.dividers===`rows`||a.dividers,t&&o.push(...t),(0,Y.jsx)(`tr`,{ref:n,...i,...Q(q(`table-row`),K(F_,...o)),children:e})}U_.displayName=`TableRow`;var W_=(0,J.createContext)(null);W_.displayName=`DropdownMenuContext`;function G_(){return(0,J.use)(W_)}var K_=(0,J.createContext)(null);K_.displayName=`DropdownMenuRadioGroupContext`;function q_(e,t){if(t||e.pointerType!==`mouse`)return;let n=e.currentTarget;n!==n.ownerDocument.activeElement&&n.focus()}var J_={root:{kB7OPa:`x9f619`,kzqmXN:`xh8yej3`,k8WAf4:`xce4md1`,kg3NbH:`xf314gf`,kaIpWk:`x1ws5lxm`,kMv6JI:`x9ynric`,kGuDYH:`xcr08ib`,kMwMTN:`x1tgivj0`,kWkggS:`xjbqb8w x1c52tdz`,kkrTdU:`x1ypdohk`,k9WMMc:`x1yc453h`,kI3sdo:`x1a2a7pz`,$$css:!0},disabled:{kSiTet:`xbyyjgo`,kkrTdU:`x1h6gzvc`,$$css:!0},destructive:{kMwMTN:`xjt36v0`,"--_item-label-color":`xufyqxy`,"--_item-description-color":`xqlix59`,$$css:!0}},Y_={sm:{k8WAf4:`xu0wf1k`,kg3NbH:`xf314gf`,$$css:!0},md:{k8WAf4:`x1vofgu7`,$$css:!0},lg:{$$css:!0}};function X_({icon:e,label:t,description:n,onClick:r,isDisabled:i=!1,endContent:a,hasCloseOnSelect:o=!0,variant:s=`default`,xstyle:c,className:l,style:u}){let d=G_(),f=d?.menuSize??`md`,p=(0,J.useCallback)(()=>{i||(r?.(),o&&d?.closeMenu())},[i,r,o,d]),m=(0,J.useCallback)(e=>q_(e,i),[i]),h=s===`destructive`;return(0,Y.jsx)(v_,{role:`menuitem`,tabIndex:i?void 0:-1,onPointerMove:m,startContent:e?Hu(e,{size:`sm`,color:h?`error`:`secondary`}):void 0,label:t,description:n,endContent:a,onClick:p,isDisabled:i,xstyle:[J_.root,Y_[f],h&&J_.destructive,i&&J_.disabled,c],...Q(q(`dropdown-menu-item`,{size:f,variant:h?`destructive`:null}),{className:l,style:u})})}X_.displayName=`DropdownMenuItem`;var Z_={horizontal:{k1xSpc:`x78zum5`,kGNEyG:`x6s0dn4`,kzqmXN:`xh8yej3`,$$css:!0},vertical:{k1xSpc:`x3nfvp2`,kXwgrk:`xdt5ytf`,kGNEyG:`x6s0dn4`,kZKoxP:`x5yr21d`,$$css:!0}},Q_={horizontalLine:{kZKoxP:`xsyqizj`,kzQI83:`x1iyjqo2`,kmuXW:`xs83m0k`,$$css:!0},verticalLine:{kzqmXN:`xjk4fl7`,kzQI83:`x1iyjqo2`,kmuXW:`xs83m0k`,$$css:!0},subtle:{kWkggS:`x1m4xfpy`,$$css:!0},strong:{kWkggS:`x7njt3n`,$$css:!0}},$_={horizontal:{keTefX:`xojxgvx`,k71WvV:`x1fcf3bl`,kzqmXN:`xx6qvi6`,$$css:!0},vertical:{keoZOQ:`x1sa9bsh`,k1K539:`x6h7pi7`,kZKoxP:`x12qplqi`,$$css:!0}};function ev({orientation:e=`horizontal`,label:t,variant:n=`subtle`,isFullBleed:r=!1,xstyle:i,className:a,style:o,ref:s,"aria-label":c,"aria-labelledby":l,...u}){let d=e===`horizontal`,f=(0,J.useId)(),p=l??(t&&c==null?f:void 0);return(0,Y.jsxs)(`div`,{ref:s,...u,role:`separator`,"aria-orientation":e,"aria-label":c,"aria-labelledby":p,...Q(q(`divider`,{variant:n,orientation:e}),K(d?Z_.horizontal:Z_.vertical,r&&(d?$_.horizontal:$_.vertical),i),a,o),children:[(0,Y.jsx)(`div`,{...K(d?Q_.horizontalLine:Q_.verticalLine,Q_[n])}),t&&(0,Y.jsx)(`div`,{id:f,...{0:{className:`x2lah0s xrrkdod x141an7d x1ltkj2j xv1l7n4`},1:{className:`x2lah0s x141an7d x1ltkj2j xv1l7n4 xnjsko4 x8o8v82`}}[!d<<0],children:t}),t&&(0,Y.jsx)(`div`,{...K(d?Q_.horizontalLine:Q_.verticalLine,Q_[n])})]})}ev.displayName=`Divider`;var tv={divider:{kqGvvJ:`xsq74q5`,$$css:!0}},nv=q(`dropdown-menu-divider`).className;function rv({xstyle:e,className:t,style:n,ref:r}){return(0,Y.jsx)(ev,{ref:r,xstyle:[tv.divider,e],className:t?`${nv} ${t}`:nv,style:n})}rv.displayName=`DropdownMenuDivider`;function iv(e){let{show:t,hide:n,isOpen:r,isEnabled:i,showDelay:a=150,hideDelay:o=200}=e,s=Jn(`(hover: hover)`),c=(0,J.useRef)(null),l=(0,J.useRef)(null),u=(0,J.useRef)(null),d=(0,J.useRef)(!1),f=(0,J.useRef)(!1),p=(0,J.useRef)(r);p.current&&!r&&(d.current=!1),p.current=r;let m=(0,J.useCallback)(()=>{c.current&&=(clearTimeout(c.current),null),l.current&&=(clearTimeout(l.current),null)},[]),{listRef:h,handleKeyDown:g,focusFirst:_}=Qh({onEscape:()=>{m(),n()}});(0,J.useEffect)(()=>()=>m(),[m]);let v=(0,J.useCallback)(()=>{m(),r?(f.current=!0,n()):(f.current=!1,t(),requestAnimationFrame(()=>_()))},[r,m,t,n,_]),y=(0,J.useCallback)(()=>{if(s){if(f.current){f.current=!1;return}d.current=!0,m(),a>0?c.current=setTimeout(()=>{t({skipAutoFocus:!0})},a):t({skipAutoFocus:!0})}},[s,m,t,a]),b=(0,J.useCallback)(()=>{d.current&&(m(),l.current=setTimeout(()=>{n()},o))},[m,n,o]),x=(0,J.useCallback)(()=>{m()},[m]),S=(0,J.useCallback)(e=>{u.current=e},[]),C=(0,J.useCallback)(()=>{},[]),w=(0,J.useCallback)(e=>{},[]),T=(0,J.useCallback)(e=>{},[]);return i?{triggerProps:{onClick:v,onMouseEnter:y,onMouseLeave:b},contentProps:{onMouseEnter:x,onMouseLeave:b,onKeyDown:g},menuRef:h,focusFirst:_,setTriggerEl:S}:{triggerProps:{onClick:C,onMouseEnter:C,onMouseLeave:C},contentProps:{onMouseEnter:C,onMouseLeave:C,onKeyDown:T},menuRef:h,focusFirst:_,setTriggerEl:w}}var av=new Set([`menuitem`,`menuitemradio`,`menuitemcheckbox`]),ov=[...av].map(e=>`[role="${e}"]:not([aria-disabled="true"])`).join(`,`),sv=`[role="menu"]`,cv={root:{kB7OPa:`x9f619`,kzqmXN:`xh8yej3`,k8WAf4:`xce4md1`,kg3NbH:`xf314gf`,kaIpWk:`x1ws5lxm`,kMv6JI:`x9ynric`,kGuDYH:`xcr08ib`,kMwMTN:`x1tgivj0`,kWkggS:`xjbqb8w x1c52tdz`,kkrTdU:`x1ypdohk`,k9WMMc:`x1yc453h`,kI3sdo:`x1a2a7pz`,$$css:!0},open:{kWkggS:`x1lmrjuc`,$$css:!0},disabled:{kSiTet:`xbyyjgo`,kkrTdU:`x1h6gzvc`,$$css:!0}},lv={sm:{k8WAf4:`xu0wf1k`,kg3NbH:`xf314gf`,$$css:!0},md:{k8WAf4:`x1vofgu7`,$$css:!0},lg:{$$css:!0}},uv={popover:{k7Eaqz:`x5w4yej`,$$css:!0},popoverCustomWidth:e=>[{k7Eaqz:(typeof e==`number`?`${e}px`:e)==null?typeof e==`number`?`${e}px`:e:`xkj4a21`,$$css:!0},{"--x-minWidth":(e=>typeof e==`number`?e+`px`:e??void 0)(typeof e==`number`?`${e}px`:e)}]};function dv(e){let{icon:t,label:n,description:r,isDisabled:i=!1,hasSpinner:a=!1,menuWidth:o,onOpenChange:s,children:c,xstyle:l,className:u,style:d,"data-testid":f,menuDataTestId:p}=e,m=G_(),h=m?.menuSize??`md`,g=!i,_=(0,J.useId)(),v=(0,J.useId)(),y=(0,J.useRef)(null),[b,x]=(0,J.useState)(!1),S=At({mode:`context`,lightDismiss:!1,onShow:(0,J.useCallback)(()=>{x(!0),s?.(!0)},[s]),onHide:(0,J.useCallback)(()=>{x(!1),s?.(!1)},[s])}),C=(0,J.useCallback)(()=>{g&&S.show()},[g,S]),w=(0,J.useCallback)(()=>{S.hide()},[S]),{listRef:T,handleKeyDown:E,focusFirst:D,focusItem:O,ownsEvent:k,getItems:A}=Qh({itemSelector:ov,boundarySelector:sv,wrap:!1,onEscape:()=>F({focusTrigger:!0})}),j=eg({getItemLabels:()=>A().map(e=>e.textContent),onMatch:O,getCurrentIndex:()=>A().findIndex(e=>e===document.activeElement||e.contains(document.activeElement))}),{triggerProps:M,contentProps:N}=iv({show:C,hide:w,isOpen:b,isEnabled:g}),P=(0,J.useCallback)(e=>{g&&(S.show(),e?.focusFirst&&requestAnimationFrame(()=>{D()||T.current?.focus()}))},[g,S,D,T]),F=(0,J.useCallback)(e=>{S.hide(),e?.focusTrigger!==!1&&y.current?.focus()},[S]),I=(0,J.useCallback)(e=>{y.current=e,S.ref(e)},[S]),L=(0,J.useCallback)(()=>{i||(b?F({focusTrigger:!0}):P({focusFirst:!0}))},[i,b,P,F]),R=(0,J.useCallback)(e=>{if(i)return;let t=typeof window<`u`&&y.current&&window.getComputedStyle(y.current).direction===`rtl`?`ArrowLeft`:`ArrowRight`;(e.key===t||e.key===`Enter`||e.key===` `)&&(e.preventDefault(),e.stopPropagation(),P({focusFirst:!0}))},[i,P]),z=(0,J.useCallback)(e=>q_(e,i),[i]),B=(0,J.useCallback)(e=>{if(!k(e))return;if(e.key===`Escape`){e.preventDefault(),e.stopPropagation(),F({focusTrigger:!0});return}if(e.key===`Enter`||e.key===` `){e.preventDefault();let t=document.activeElement;t&&av.has(t.getAttribute(`role`)??``)&&t.click();return}let t=typeof window<`u`&&T.current&&window.getComputedStyle(T.current).direction===`rtl`?`ArrowRight`:`ArrowLeft`;if(e.key===t){e.preventDefault(),F({focusTrigger:!0});return}if(j.onKeyDown(e)){e.preventDefault();return}E(e)},[k,F,E,j,T]),V=(0,J.useMemo)(()=>({menuSize:h,closeMenu:()=>{F({focusTrigger:!1}),m?.closeMenu()}}),[h,F,m]),H=a?(0,Y.jsx)(`span`,{...Q(q(`dropdown-menu-indicator-icon`),{className:`x78zum5 x6s0dn4`}),children:(0,Y.jsx)(pd,{size:`sm`})}):(0,Y.jsx)(`span`,{...Q(q(`dropdown-menu-indicator-icon`),{className:`x78zum5 x6s0dn4`}),children:(0,Y.jsx)(Bu,{icon:`chevronRight`,size:`sm`,color:`secondary`})}),ee=o?uv.popoverCustomWidth(o):uv.popover;return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(v_,{ref:e=>I(e),id:v,role:`menuitem`,tabIndex:i?void 0:-1,"aria-haspopup":`menu`,"aria-expanded":b,"aria-controls":b?_:void 0,"aria-disabled":i||void 0,"data-testid":f,onMouseEnter:M.onMouseEnter,onMouseLeave:M.onMouseLeave,onPointerMove:z,startContent:t?Hu(t,{size:`sm`,color:`secondary`}):void 0,label:n,description:r,endContent:H,onClick:L,onKeyDown:R,isDisabled:i,xstyle:[cv.root,lv[h],b&&cv.open,i&&cv.disabled,l],...Q(q(`dropdown-menu-item`,{size:h}),{className:u,style:d})}),S.render((0,Y.jsx)(`div`,{ref:T,id:_,role:`menu`,tabIndex:-1,"aria-labelledby":v,onKeyDown:B,onMouseEnter:N.onMouseEnter,onMouseLeave:N.onMouseLeave,"data-testid":p,...Q(q(`dropdown-menu`),{className:`x9f619 x78zum5 xdt5ytf x1lsbc85 xuyqlj2 x1odjw0f x1fcsqxe xgory14 x9epnlk x1n97fys x1prclbq x1i5ehqx x1hc1fzr x19991ni xuedmi6 xlr8y92`}),children:(0,Y.jsx)(W_,{value:V,children:c})}),{placement:`end`,alignment:`start`,offset:qt[`--spacing-1`],xstyle:[ee,Lt.end]})]})}dv.displayName=`DropdownMenuSubMenu`;function fv(e,t){return`item-${e.id??t}`}function pv(e,t){return`section-${e.id??t}`}function mv(e,t){let{items:n,id:r,...i}=e;return(0,Y.jsx)(X_,{...i},fv(e,t))}function hv(e){let t=[];for(let n=0;n<e.length;n++){let r=e[n];`type`in r&&r.type===`divider`?t.push((0,Y.jsx)(rv,{},`divider-${n}`)):`type`in r&&r.type===`section`?t.push((0,Y.jsxs)(`div`,{role:`group`,"aria-label":r.title,children:[r.title&&(0,Y.jsx)(`div`,{"aria-hidden":`true`,...Q(q(`dropdown-menu-section-heading`),{className:`xu0wf1k xf314gf x9ynric x141an7d x1ltkj2j xv1l7n4 x87ps6o`}),children:r.title}),r.items.map(mv)]},pv(r,n))):`type`in r||(r.items&&r.items.length>0?t.push((0,Y.jsx)(dv,{icon:r.icon,label:r.label,isDisabled:r.isDisabled,children:hv(r.items)},fv(r,n))):t.push(mv(r,n)))}return t}var gv={trigger:{kVAEAm:`x1n2onr6`,k7VYTy:`xpdipgo`,$$css:!0},menu:{kB7OPa:`x9f619`,k1xSpc:`x78zum5`,kXwgrk:`xdt5ytf`,kOIVth:`x1lsbc85`,kskxy:`xuyqlj2`,kORKVm:`x1odjw0f`,"--_dropdown-menu-radius":`x1fcsqxe`,"--_dropdown-menu-padding":`xgory14`,kmVPX3:`x9epnlk`,kaIpWk:`x1n97fys`,kWkggS:`x1prclbq`,kGVxlE:`x1i5ehqx`,kSiTet:`x1hc1fzr`,k1ekBW:`x19991ni`,kIyJzY:`xuedmi6`,kAMwcw:`xlr8y92`,kfSwDN:`x87ps6o`,$$css:!0},popover:{k7Eaqz:`x5w4yej`,$$css:!0},popoverCustomWidth:e=>[{k7Eaqz:(typeof e==`number`?`${e}px`:e)==null?typeof e==`number`?`${e}px`:e:`xkj4a21`,$$css:!0},{"--x-minWidth":(e=>typeof e==`number`?e+`px`:e??void 0)(typeof e==`number`?`${e}px`:e)}]};function _v({children:e,menuWidth:t,size:n=`md`,label:r,isDisabled:i=!1,onOpenChange:a,ref:o,className:s,style:c,xstyle:l,triggerXstyle:u,"data-testid":d,...f}){let p=tp(),m=r??p(`@astryx.contextMenu.label`),{items:h,menuContent:g,..._}=f,v=h??[],y=g,b=(0,J.useId)(),x=(0,J.useRef)({x:0,y:0}),S=(0,J.useRef)(null),C=(0,J.useRef)(null),w=(0,J.useRef)(null),[T,E]=(0,J.useState)(!1),D=At({mode:`context`,onHide:(0,J.useCallback)(()=>{E(!1),a?.(!1);let e=w.current;w.current=null,e&&document.contains(e)&&e.focus()},[a]),onShow:(0,J.useCallback)(()=>{E(!0),a?.(!0)},[a]),lightDismiss:!1}),O=(0,J.useCallback)(()=>{D.hide()},[D]),{listRef:k,handleKeyDown:A,focusFirst:j,focusItem:M,ownsEvent:N,getItems:P}=Qh({itemSelector:ov,boundarySelector:sv,wrap:!1,onEscape:O}),F=eg({getItemLabels:()=>P().map(e=>e.textContent),onMatch:M,getCurrentIndex:()=>P().findIndex(e=>e===document.activeElement||e.contains(document.activeElement))});(0,J.useEffect)(()=>{if(!T)return;let e=e=>{let t=k.current;t&&!t.contains(e.target)&&O()};return document.addEventListener(`mousedown`,e),()=>{document.removeEventListener(`mousedown`,e)}},[T,O,k]),(0,J.useEffect)(()=>{if(!T)return;let e=e=>{e.key===`Escape`&&(e.isComposing||e.keyCode===229||(e.preventDefault(),O()))};return document.addEventListener(`keydown`,e),()=>{document.removeEventListener(`keydown`,e)}},[T,O]);let I=(0,J.useCallback)(e=>{if(N(e)){if(e.key===`Enter`||e.key===` `){e.preventDefault();let t=document.activeElement;t&&av.has(t.getAttribute(`role`)??``)&&t.click();return}if(e.key===`Tab`){O();return}if(F.onKeyDown(e)){e.preventDefault();return}A(e)}},[A,O,F,N]),L=(0,J.useCallback)((e,t,n)=>{x.current={x:e,y:t};let r=S.current;r&&(r.style.left=`${e}px`,r.style.top=`${t}px`),w.current=document.activeElement instanceof HTMLElement?document.activeElement:n,D.show(),requestAnimationFrame(()=>j())},[D,j]),R=(0,J.useCallback)(e=>{if(i)return;e.preventDefault();let t=C.current?.getBoundingClientRect(),n=e.clientX===0&&e.clientY===0&&e.detail===0,r=n||!t?0:e.clientX-t.left,a=n||!t?t?.height??0:e.clientY-t.top;L(r,a,e.currentTarget)},[i,L]),z=wg({disabled:i,onLongPress:(0,J.useCallback)(e=>{let t=C.current?.getBoundingClientRect();L(t?e.x-t.left:e.x,t?e.y-t.top:e.y,C.current)},[L])}),B=t?gv.popoverCustomWidth(t):gv.popover,V=(0,J.useMemo)(()=>({closeMenu:O,menuSize:n}),[O,n]),H=h===void 0?y:hv(v);return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`div`,{ref:iu(o,C),..._,onContextMenu:R,...z,"data-testid":d,...K(gv.trigger,...u?Array.isArray(u)?u:[u]:[]),children:[e,(0,Y.jsx)(`span`,{ref:iu(S,D.ref),"aria-hidden":`true`,...Q({className:`x10l6tqk xnalus7 xqtp20y x47corl`},{style:{left:`${x.current.x}px`,top:`${x.current.y}px`}})})]}),D.render((0,Y.jsx)(`div`,{ref:k,id:b,role:`menu`,"aria-label":m,onKeyDown:I,onContextMenu:e=>e.preventDefault(),...Q(q(`context-menu`),K(gv.menu,l),s,c),children:(0,Y.jsx)(W_,{value:V,children:H})}),{placement:`below`,alignment:`start`,xstyle:[B,Lt.below]})]})}_v.displayName=`ContextMenu`;function vv(e){let t=[],n=new Map;for(let r of e){let e=r.group??`__ungrouped__`,i=n.get(e);i||(i=[],n.set(e,i),t.push(e)),i.push(r)}let r=[];return t.forEach((e,t)=>{t>0&&r.push({type:`divider`});for(let t of n.get(e)??[])r.push({label:typeof t.label==`string`?t.label:t.id,icon:t.checked?(0,Y.jsx)(Bu,{icon:`check`,size:`xsm`,"aria-hidden":!0}):t.icon,isDisabled:t.disabled,onClick:t.onSelect,variant:t.variant})}),r}function yv({element:e,getActions:t,triggerXstyle:n}){let[r,i]=(0,J.useState)(null);return(0,Y.jsx)(_v,{items:r??[],triggerXstyle:n,onOpenChange:e=>{i(e?vv(t()):null)},children:e})}function bv(e,t,n){return typeof t==`function`?(0,Y.jsx)(yv,{element:e,getActions:t,triggerXstyle:n}):!t||t.length===0?e:(0,Y.jsx)(_v,{items:vv(t),triggerXstyle:n,children:e})}function xv(e,t,n){let r=[];return(e.dividers===`rows`||e.dividers===`grid`)&&r.push(t),(e.dividers===`columns`||e.dividers===`grid`)&&r.push(n),r}function Sv(e,t){return t?Array.isArray(t)?[...e,...t]:[...e,t]:e}function Cv(){return(0,J.use)(z_)}var wv={compact:{k8WAf4:`xu0wf1k`,kg3NbH:`xf314gf`,kGuDYH:`xjm74w1`,kB7OPa:`x9f619`,$$css:!0},balanced:{k8WAf4:`xce4md1`,kg3NbH:`xrrkdod`,kGuDYH:`xjm74w1`,kB7OPa:`x9f619`,$$css:!0},spacious:{k8WAf4:`x8o8v82`,kg3NbH:`x1pzlopt`,kGuDYH:`xjm74w1`,kB7OPa:`x9f619`,$$css:!0}},Tv={compact:{kGuDYH:`xjm74w1`,kB7OPa:`x9f619`,$$css:!0},balanced:{kGuDYH:`xjm74w1`,kB7OPa:`x9f619`,$$css:!0},spacious:{kGuDYH:`xjm74w1`,kB7OPa:`x9f619`,$$css:!0}},Ev={compact:{k8WAf4:`xu0wf1k`,kg3NbH:`xf314gf`,$$css:!0},balanced:{k8WAf4:`xce4md1`,kg3NbH:`xrrkdod`,$$css:!0},spacious:{k8WAf4:`x8o8v82`,kg3NbH:`x1pzlopt`,$$css:!0}},Dv={fill:{k1xSpc:`x1lliihq`,kB7OPa:`x9f619`,kZKoxP:`x5yr21d`,kzqmXN:`xh8yej3`,$$css:!0}},Ov={cell:{kZKoxP:`x5yr21d`,$$css:!0}},kv={cell:{kt9PQ7:`x92x3c3 x1wp2rvj`,kfdmCh:`x1q0q8m5`,kL6WhQ:`xw8gpjh`,$$css:!0}},Av={cell:{ke9TFa:`xw8tdv1 x1qlsc9e`,k8ry5P:`x18b5jzi`,kBCPoo:`x1gejf6u`,$$css:!0}},jv={middle:{kXLuUW:`xxymvpz`,$$css:!0},top:{kXLuUW:`x16dsc37`,$$css:!0},bottom:{kXLuUW:`x3ajldb`,$$css:!0}};function Mv({children:e,xstyle:t,ref:n,className:r,style:i,contextMenuActions:a,...o}){let s=Cv(),c=typeof a==`function`||Array.isArray(a)&&a.length>0,l=s?[c?Tv[s.density]:wv[s.density],s.textOverflow===`truncate`?I_.cell:L_.cell,R_[s.density],jv[s.verticalAlign],...xv(s,kv.cell,Av.cell),...c?[Ov.cell]:[]]:[],u=bv(e,a,c&&s?[Dv.fill,Ev[s.density]]:c?Dv.fill:void 0);return(0,Y.jsx)(`td`,{ref:n,...o,...Q(q(`table-cell`,{density:s?.density}),K(...Sv(l,t)),r,i),children:u})}Mv.displayName=`TableCell`;var Nv={compact:{k8WAf4:`xu0wf1k`,kg3NbH:`xf314gf`,kGuDYH:`xcr08ib`,kB7OPa:`x9f619`,$$css:!0},balanced:{k8WAf4:`xce4md1`,kg3NbH:`xrrkdod`,kGuDYH:`xcr08ib`,kB7OPa:`x9f619`,$$css:!0},spacious:{k8WAf4:`x8o8v82`,kg3NbH:`x1pzlopt`,kGuDYH:`xcr08ib`,kB7OPa:`x9f619`,$$css:!0}},Pv={cell:{k63SB2:`x2mo6ok`,kMwMTN:`xv1l7n4`,k9WMMc:`x1yc453h`,$$css:!0}},Fv={cell:{kt9PQ7:`x92x3c3`,kfdmCh:`x1q0q8m5`,kL6WhQ:`xw8gpjh`,$$css:!0}},Iv={cell:{ke9TFa:`xw8tdv1 x1qlsc9e`,k8ry5P:`x18b5jzi`,kBCPoo:`x1gejf6u`,$$css:!0}};function Lv({children:e,xstyle:t,ref:n,className:r,style:i,contextMenuActions:a,...o}){let s=Cv(),c=[];s&&(c.push(Pv.cell,Nv[s.density],Fv.cell,I_.cell,R_[s.density]),(s.dividers===`columns`||s.dividers===`grid`)&&c.push(Iv.cell));let l=bv(e,a);return(0,Y.jsx)(`th`,{ref:n,...o,...Q(q(`table-header-cell`,{density:s?.density}),K(...Sv(c,t)),r,i),children:l})}Lv.displayName=`TableHeaderCell`;function Rv({ref:e,children:t,xstyle:n,className:r,style:i,...a}){return(0,Y.jsx)(`thead`,{ref:e,...Q(q(`table-header`),K(n),r,i),...a,children:t})}Rv.displayName=`TableHeader`;function zv({ref:e,children:t,xstyle:n,className:r,style:i,...a}){return(0,Y.jsx)(`tbody`,{ref:e,...Q(q(`table-body`),K(n),r,i),...a,children:t})}zv.displayName=`TableBody`;var Bv={container:{k1xSpc:`x78zum5`,kXwgrk:`xdt5ytf`,kGNEyG:`x6s0dn4`,kjj79g:`xl56j7k`,k9WMMc:`x2b8uid`,kOIVth:`x18g69wz`,k8WAf4:`xmfvnks`,kg3NbH:`xm7rs69`,$$css:!0},containerCompact:{kOIVth:`x1txdalj`,k8WAf4:`x1na6nto`,kg3NbH:`x1pzlopt`,$$css:!0}};function Vv({title:e,description:t,icon:n,actions:r,headingLevel:i=3,isCompact:a=!1,xstyle:o,className:s,style:c,ref:l,...u}){let d=`h${i}`;return(0,Y.jsxs)(`div`,{ref:l,...u,role:`status`,...Q(q(`empty-state`,{variant:a?`compact`:null}),K(Bv.container,a&&Bv.containerCompact,o),s,c),children:[n!=null&&(0,Y.jsx)(`div`,{"aria-hidden":`true`,children:n}),(0,Y.jsxs)(`div`,{className:`x78zum5 xdt5ytf x6s0dn4 xxc7z9f`,children:[(0,J.createElement)(d,Q(q(`empty-state-title`,{variant:a?`compact`:null}),{0:{className:`x1ghz6dp xjb2p0i x18juvz8 x2mo6ok xf74fhv x1tgivj0`},1:{className:`x1ghz6dp xjb2p0i x2mo6ok xf74fhv x1tgivj0 xcr08ib`}}[!!a<<0]),e),t!=null&&(0,Y.jsx)(`div`,{...Q(q(`empty-state-description`,{variant:a?`compact`:null}),{0:{className:`x1ghz6dp xjb2p0i xjm74w1 x1sodnla xw6l6zx xv1l7n4`},1:{className:`x1ghz6dp xjb2p0i x1sodnla xw6l6zx xv1l7n4 x141an7d`}}[!!a<<0]),children:t})]}),r!=null&&(0,Y.jsx)(`div`,{...{0:{className:`x78zum5 x1q0g3np x6s0dn4 x1txdalj xcsaf9d`},1:{className:`x78zum5 x6s0dn4 x1txdalj xcsaf9d xdt5ytf`}}[!!a<<0],children:r})]})}Vv.displayName=`EmptyState`;var Hv={table:{kzqmXN:`xh8yej3`,kLvRdT:`x1mwwwfo`,kheTzg:`x1gukg7c`,kPzzVL:`x140o2bo`,$$css:!0},tableAutoLayout:{kPzzVL:`x1drmoe9`,$$css:!0}};function Uv(e,t,n,...r){return e.reduce((e,n,i)=>{let a=t(n);if(!a)return e;try{return a(e,...r)}catch(t){return hr(`Table`,`Plugin at index ${i} threw in transform:`,t),e}},n)}var Wv=[];function Gv(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function Kv({item:e,rowIndex:t,rowKey:n,columns:r,plugins:i,textOverflow:a,RowComponent:o,CellComponent:s,ariaRowIndex:c}){let l=r.map((t,n)=>{let o={};t.align&&(o.style={textAlign:t.align});let c=Uv(i,e=>e.transformBodyCell,{htmlProps:o,xstyle:[],columnIndex:n,columns:r},t,e,n,r),l=!t.renderCell,u=l?k_(e,t.key):t.renderCell?.(e)??null,d;return d=l&&a===`truncate`&&typeof u==`string`&&u.length>0?(0,Y.jsx)(ld,{type:`body`,maxLines:1,children:u}):u,(0,Y.jsx)(s,{...c.htmlProps,contextMenuActions:c.contextMenuActions,xstyle:c.xstyle,children:d},t.key)}),u=Uv(i,e=>e.transformBodyRow,{htmlProps:c==null?{}:{"aria-rowindex":c},xstyle:[],children:(0,Y.jsx)(Y.Fragment,{children:l})},e,t),d=(0,Y.jsx)(o,{ref:u.ref,...u.htmlProps,xstyle:u.xstyle,children:u.children},n);return u.afterRow?(0,Y.jsxs)(Y.Fragment,{children:[d,u.afterRow]}):d}function qv(e,t){if(e.rowKey!==t.rowKey||e.rowIndex!==t.rowIndex||e.ariaRowIndex!==t.ariaRowIndex||e.columns!==t.columns||e.plugins!==t.plugins||e.textOverflow!==t.textOverflow||e.RowComponent!==t.RowComponent||e.CellComponent!==t.CellComponent)return!1;if(e.item===t.item)return!0;let n=e.item,r=t.item,i=Object.keys(r);if(Object.keys(n).length!==i.length)return!1;for(let e of i)if(n[e]!==r[e])return!1;return!0}var Jv=(0,J.memo)(Kv,qv);function Yv({data:e,columns:t,idKey:n,plugins:r,children:i,textOverflow:a=`wrap`,scrollWrapper:o,emptyState:s,rowIndexStart:c,rowCount:l,xstyle:u,className:d,style:f,ref:p,...m}){let h=tp(),g=r??Wv,_=c!=null||l!=null,v=c??1,y=_?l??-1:void 0,b=U_,x=Mv,S=Lv,C=Uv(g,e=>e.transformColumns,t??(e?P_(e):[])),w=(0,J.useRef)(C);Gv(w.current,C)||(w.current=C);let T=w.current,E=E_(T),D=Uv(g,e=>e.transformTable,{htmlProps:{},xstyle:i?[Hv.table,Hv.tableAutoLayout]:[Hv.table]}),O=T.map((e,t)=>{let n=e.header??e.key,r={"data-column-key":e.key,scope:`col`};e.align&&(r.style={textAlign:e.align});let i=Uv(g,e=>e.transformHeaderCell,{htmlProps:r,xstyle:[],content:n,columnIndex:t,columns:T},e,t,T),a=E.columns.get(e.key)?.style??{},o=i.htmlProps.style,s={...i.htmlProps,style:o?{...a,...o}:a},c=i.content??n,l=typeof c==`string`&&c.length>0?{title:c}:{},{before:u,after:d,overlay:f,below:p}=i,m=u!=null||d!=null||f!=null||p!=null?(0,Y.jsxs)(Y.Fragment,{children:[u,d==null?c:(0,Y.jsxs)(`div`,{className:`x3nfvp2 x6s0dn4 xzye2dw xeuugli`,children:[c,d]}),f,p]}):c;return(0,Y.jsx)(S,{...s,...l,contextMenuActions:i.contextMenuActions,xstyle:i.xstyle,children:m},e.key)}),k=Uv(g,e=>e.transformHeaderRow,{htmlProps:{},xstyle:[],children:(0,Y.jsx)(Y.Fragment,{children:O})}),A=e!=null&&e.length>0,j=T.length>0,M={...D.htmlProps.style,...f,...E.tableMinWidth>0?{minWidth:`${E.tableMinWidth}px`}:null},N=(0,Y.jsx)(`table`,{ref:p,...y==null?null:{"aria-rowcount":y},...D.htmlProps,...Q(q(`base-table`),K(...D.xstyle,u),[D.htmlProps.className,d].filter(Boolean).join(` `)||void 0,M),...m,children:i||(0,Y.jsxs)(Y.Fragment,{children:[j&&(0,Y.jsx)(Rv,{children:(0,Y.jsx)(b,{...k.htmlProps,isHeaderRow:!0,xstyle:k.xstyle,children:k.children})}),(0,Y.jsx)(zv,{children:A?e.map((e,t)=>{let r=n==null?t:typeof n==`function`?n(e):String(e[n]);return(0,Y.jsx)(Jv,{item:e,rowIndex:t,rowKey:r,columns:T,plugins:g,textOverflow:a,RowComponent:b,CellComponent:x,ariaRowIndex:_?v+t:void 0},r)}):e!=null&&s!==!1&&(0,Y.jsx)(`tr`,{children:(0,Y.jsx)(`td`,{colSpan:T.length,children:s??(0,Y.jsx)(Vv,{title:h(`@astryx.table.noData`),isCompact:!0})})})})]})});if(o){let e=Uv(g,e=>e.transformScrollWrapper,{htmlProps:{},xstyle:[]});N=(0,Y.jsx)(o,{htmlProps:e.htmlProps,xstyle:e.xstyle,beforeTable:e.beforeTable,afterTable:e.afterTable,children:N})}for(let e=g.length-1;e>=0;e--){let t=g[e];if(t.transformTableContext)try{N=t.transformTableContext(N)}catch(e){hr(`Table`,`Plugin threw in transformTableContext:`,e)}}return N}var Xv=Yv;Xv.displayName=`BaseTable`;var Zv=[`columnSettings`,`sort`,`tree`,`selection`,`pagination`],Qv=new Map(Zv.map((e,t)=>[e,t]));function $v(e){let t=Zv.length;return e.sort(([e],[n])=>(Qv.get(e)??t)-(Qv.get(n)??t))}var ey=new Set([`transformColumns`,`transformTable`,`transformHeaderRow`,`transformHeaderCell`,`transformBodyRow`,`transformBodyCell`,`transformScrollWrapper`,`transformTableContext`]);function ty(e,t){let n=Object.keys(t);for(let t of n)ey.has(t)||`${e}${t}${[...ey].join(`, `)}`;for(let r of n)if(ey.has(r)){let n=t[r];n!=null&&typeof n!=`function`&&`${e}${r}`}n.some(e=>ey.has(e)&&typeof t[e]==`function`)||`${e}`}function ny(e,t){let n=(0,J.useRef)(null);if(n.current!=null){let r=n.current;if(r.basePlugins===e&&r.userPlugins===t)return r.result;if(r.basePlugins===e&&ry(r.userPlugins,t))return r.userPlugins=t,r.result}let r=t?$v(Object.entries(t)).map(([,e])=>e):[],i=[...e,...r];if(t)for(let[e,n]of Object.entries(t))ty(e,n);return n.current={basePlugins:e,userPlugins:t,result:i},i}function ry(e,t){if(e===t)return!0;if(e==null||t==null)return!1;let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r of n)if(e[r]!==t[r])return!1;return!0}var iy={base:{kMv6JI:`xjb2p0i`,kMwMTN:`x1tgivj0`,$$css:!0}},ay={base:{kXHlph:`xw2csxc`,kuHK5b:`x5lxg6s`,$$css:!0},containerBleed:{keTefX:`xojxgvx`,k71WvV:`x1fcf3bl`,kzqmXN:`xx6qvi6`,keoZOQ:`xkibk3`,k1K539:`xlayyun`,$$css:!0}};function oy({children:e,htmlProps:t,xstyle:n,beforeTable:r,afterTable:i}){let a=tp(),{ref:o,...s}=t??{};return(0,Y.jsxs)(`div`,{ref:o,tabIndex:0,role:`group`,"aria-label":a(`@astryx.table.label`),...s,...Q(q(`table-scroll-wrapper`),K(ay.base,ay.containerBleed,...n??[])),children:[r,e,i]})}function sy(){return{transformTable(e){let t=e.htmlProps.className??``,n=q(`table`).className;return{...e,htmlProps:{...e.htmlProps,className:t?`${t} ${n}`:n},xstyle:[...e.xstyle,iy.base]}}}}function cy({density:e=`balanced`,dividers:t=`rows`,isStriped:n=!1,hasHover:r=!1,verticalAlign:i=`middle`,textOverflow:a=`wrap`,plugins:o,columns:s,data:c,ref:l,...u}){let d=(0,J.useMemo)(()=>sy(),[]),f=ny((0,J.useMemo)(()=>[d],[d]),o),p=(0,J.useMemo)(()=>({density:e,dividers:t,isStriped:n,hasHover:r,verticalAlign:i,textOverflow:a}),[e,t,n,r,i,a]);return(0,Y.jsx)(z_,{value:p,children:(0,Y.jsx)(Xv,{ref:l,data:c,columns:s,plugins:f,textOverflow:a,scrollWrapper:oy,...u})})}var ly=cy;ly.displayName=`Table`;function uy(e,t,n){if(e.length===0||t>e[e.length-1]){let r=[...e,t];for(;r.length>n;)r.shift();return r}return e}function dy(e,t,n,r){let i=t+e.length;if(n.length===0)return null;let a=n[0];if(i<=a)return null;let o=[],s=t;s<a&&a<i&&(o.push({key:`settled-${r}`,text:e.slice(0,a-t),fading:!1}),s=a);for(let a=0;a<n.length;a++){let c=n[a],l=a+1<n.length?n[a+1]:i;if(c>=i||l<=s)continue;let u=Math.max(c,s),d=Math.min(l,i);u>=d||(o.push({key:`fade-${r}-b${c}`,text:e.slice(u-t,d-t),fading:!0}),s=d)}return o.length>0?o:null}var fy={label:{k1xSpc:`x3nfvp2`,kGNEyG:`x6s0dn4`,kOIVth:`xzye2dw`,kXLuUW:`x11njtxf`,kZKoxP:`x1grt7ep`,kGuDYH:`x141an7d`,k63SB2:`xv8on6e`,kLWn49:`x1ltkj2j`,kMwMTN:`xv1l7n4`,kaIpWk:`xh6dtrn`,kMzoRj:`x1litavf`,ksu8eU:`x1y0btm7`,kVAM5u:`x14i3s5s`,kg3NbH:`xf314gf`,keTefX:`xladpz9`,kybGjl:`x1hl2dhg`,k1ekBW:`x1eaenvl`,kIyJzY:`x2rcmwa`,kAMwcw:`xlr8y92`,ks0D6T:`x55n99s`,kVQacm:`xb3r6kr`,$$css:!0},labelWithIcon:{kZCmMZ:`x138rykx`,$$css:!0},labelInteractive:{kkrTdU:`x1ypdohk`,$$css:!0},labelHover:{kWkggS:`xe9uy6x`,kMwMTN:`xv1l7n4 x140uwzg`,$$css:!0},number:{k1xSpc:`x3nfvp2`,kGNEyG:`x6s0dn4`,kjj79g:`xl56j7k`,kXLuUW:`x1v0h343`,kGuDYH:`x141an7d`,k63SB2:`x2mo6ok`,kLWn49:`x1ltkj2j`,kMwMTN:`xv1l7n4`,kWkggS:`xgcxg3y`,kaIpWk:`xjspbzw`,k7Eaqz:`x16asifk`,kZKoxP:`x1grt7ep`,kg3NbH:`x7a5moj`,kybGjl:`x1hl2dhg`,k1ekBW:`x15406qy`,kIyJzY:`x2rcmwa`,kAMwcw:`xlr8y92`,$$css:!0},numberInteractive:{kkrTdU:`x1ypdohk`,$$css:!0},numberHover:{kWkggS:`xgcxg3y xe9uy6x`,$$css:!0}};function py({ref:e,source:t,number:n,variant:r=`label`,xstyle:i,className:a,style:o,"data-testid":s,...c}){let l=tp(),u=t.title??String(n),d=t.url,f=t.icon!=null&&typeof t.icon!=`string`?t.icon:null,p=t.src??(typeof t.icon==`string`?t.icon:void 0),m=f!=null||p!=null,h=d?`a`:`span`,g=d?`doc-noteref`:void 0,_=d?{href:d,target:`_blank`,rel:`noopener noreferrer`,title:u}:{title:u},v=e;return r===`number`?(0,Y.jsx)(h,{...c,ref:v,role:g,"aria-label":l(`@astryx.citation.label`,{number:n,title:u}),"data-testid":s,..._,...Q(q(`citation`,{variant:r}),K(fy.number,d!=null&&fy.numberHover,d!=null&&fy.numberInteractive,i),a,o),children:n}):(0,Y.jsxs)(h,{...c,ref:v,role:g,"aria-label":l(`@astryx.citation.label`,{number:n,title:u}),"data-testid":s,..._,...Q(q(`citation`,{variant:r}),K(fy.label,m&&fy.labelWithIcon,d!=null&&fy.labelHover,d!=null&&fy.labelInteractive,i),a,o),children:[m&&(0,Y.jsx)(`span`,{"aria-hidden":`true`,className:`x3nfvp2 x6s0dn4 xl56j7k x12xnipv x6b6gus xjspbzw x10xzikg x1litavf x1y0btm7 x14i3s5s xb3r6kr x2lah0s`,children:f==null?(0,Y.jsx)(`img`,{src:p,alt:``,className:`x1ad1g3v x9gl9lo`}):Hu(f,{size:`sm`})}),(0,Y.jsx)(`span`,{className:`xb3r6kr xlyipyv xuxw1ft xeuugli`,children:u})]})}py.displayName=`Citation`;var my={sourceIds:void 0,autolink:void 0};function hy(e){if(e==null)return my;if(typeof e.has==`function`)return{sourceIds:e,autolink:void 0};let t=e;return{sourceIds:t.sourceIds,autolink:t.autolink}}var gy=/^ {0,3}\[([^\]^](?:\\.|[^\]\\])*)\]:[ \t]*(?:<([^<>\n]*)>|(\S+))([ \t]+(?:"[^"\n]*"|'[^'\n]*'|\([^()\n]*\)))?[ \t]*$/,_y=/^ {0,3}(?:"[^"\n]*"|'[^'\n]*'|\([^()\n]*\))[ \t]*$/;function vy(e){return e.trim().replace(/\s+/g,` `).toLowerCase()}function yy(e){let t=gy.exec(e);if(t==null)return null;let n=vy(t[1]),r=t[2]==null?t[3]:t[2];return n===``||r==null?null:{label:n,destination:r,hasTitle:t[4]!=null}}function by(e){let t=e.split(`
96
- `),n=new Map,r=Array(t.length).fill(!0),i=!0,a=!1,o=``;for(let e=0;e<t.length;e++){let s=t[e];if(a){s.startsWith(o)?(a=!1,o=``,i=!0):i=!1;continue}let c=s.match(/^(`{3,}|~{3,})/);if(c){a=!0,o=c[1],i=!1;continue}if(s.trim()===``){i=!0;continue}if(i){let i=yy(s);if(i!=null){n.has(i.label)||n.set(i.label,i.destination),r[e]=!1,!i.hasTitle&&e+1<t.length&&_y.test(t[e+1])&&(r[e+1]=!1,e++);continue}}i=/^ {0,3}#{1,6}(?: |\t|$)/.test(s)||Qy(s)}return n.size===0?{defs:n,cleaned:e}:{defs:n,cleaned:t.filter((e,t)=>r[t]).join(`
97
- `)}}function xy(e){return e.size===0?``:[...e].sort((e,t)=>e[0]<t[0]?-1:+(e[0]>t[0])).map(([e,t])=>`${e}\u0000${t}`).join(``)}function Sy(e,t,n,r){let i=e.indexOf(`]`,t+1);if(i===-1)return null;let a=e.slice(t+1,i);if(e[i+1]===`[`){let t=e.indexOf(`]`,i+2);if(t!==-1){let o=e.slice(i+2,t),s=o===``?a:o,c=n.get(vy(s));if(c!=null)return{node:{type:`link`,href:c,children:Ay(a,r)},end:t+1}}}if(a.trim()===``)return null;let o=n.get(vy(a));return o==null?null:{node:{type:`link`,href:o,children:Ay(a,r)},end:i+1}}function Cy(e,t,n){let r=e.indexOf(`]`,t+2);if(r===-1)return null;let i=e.slice(t+2,r);if(e[r+1]===`[`){let t=e.indexOf(`]`,r+2);if(t!==-1){let a=e.slice(r+2,t),o=a===``?i:a,s=n.get(vy(o));if(s!=null)return{node:{type:`image`,src:s,alt:i},end:t+1}}}if(i.trim()===``)return null;let a=n.get(vy(i));return a==null?null:{node:{type:`image`,src:a,alt:i},end:r+1}}function wy(e,t){let n=1;for(let r=t;r<e.length;r++)if(e[r]===`(`)n++;else if(e[r]===`)`&&(n--,n===0))return r;return-1}function Ty(e){return e!=null&&/\w/.test(e)}function Ey(e,t,n){if(!n.sourceIds||e[t]!==`【`)return null;let r=e.indexOf(`】`,t+1);if(r===-1)return null;let i=e.slice(t+1,r);return i.length===0||!n.sourceIds.has(i)?null:{sourceId:i,end:r+1}}function Dy(e,t,n){if(!n.sourceIds||e[t]!==`[`)return null;let r=e.indexOf(`]`,t+1);if(r===-1||e[r+1]===`(`)return null;let i=e.slice(t+1,r);return i.length===0||!n.sourceIds.has(i)?null:{sourceId:i,end:r+1}}function Oy(e,t){return ky(e,hy(t))}function ky(e,t){let n=Ay(e,t);return t.autolink===`gfm`?Xy(n):n}function Ay(e,t){let n=[],r=0;for(;r<e.length;){if(e[r]===`\\`&&r+1<e.length){n.push({type:`text`,content:e[r+1]}),r+=2;continue}if(e[r]==="`"){let t=e[r+1]==="`"?e[r+2]==="`"?3:2:1,i=r+t,a=e.indexOf("`".repeat(t),i);if(a!==-1){n.push({type:`code`,content:e.slice(i,a)}),r=a+t;continue}}{let i=Ey(e,r,t);if(i){n.push({type:`citation`,sourceId:i.sourceId}),r=i.end;continue}}if(e[r]===`!`&&e[r+1]===`[`){let t=e.indexOf(`]`,r+2);if(t!==-1&&e[t+1]===`(`){let i=wy(e,t+2);if(i!==-1){n.push({type:`image`,src:e.slice(t+2,i),alt:e.slice(r+2,t)}),r=i+1;continue}}}if(t.linkDefs!=null&&e[r]===`!`&&e[r+1]===`[`){let i=Cy(e,r,t.linkDefs);if(i){n.push(i.node),r=i.end;continue}}{let i=Dy(e,r,t);if(i){n.push({type:`citation`,sourceId:i.sourceId}),r=i.end;continue}}if(e[r]===`[`){let i=e.indexOf(`]`,r+1);if(i!==-1&&e[i+1]===`(`){let a=wy(e,i+2);if(a!==-1){n.push({type:`link`,href:e.slice(i+2,a),children:Ay(e.slice(r+1,i),t)}),r=a+1;continue}}}if(t.linkDefs!=null&&e[r]===`[`){let i=Sy(e,r,t.linkDefs,t);if(i){n.push(i.node),r=i.end;continue}}if(e[r]===`*`&&e[r+1]===`*`&&e[r+2]===`*`||e[r]===`_`&&e[r+1]===`_`&&e[r+2]===`_`){let i=e.slice(r,r+3),a=e[r]===`_`;if(!(a&&Ty(e[r-1]))){let o=e.indexOf(i,r+3);if(o!==-1&&(!a||!Ty(e[o+3]))){n.push({type:`bold`,children:[{type:`italic`,children:Ay(e.slice(r+3,o),t)}]}),r=o+3;continue}}}if(e[r]===`*`&&e[r+1]===`*`||e[r]===`_`&&e[r+1]===`_`){let i=e.slice(r,r+2),a=e[r]===`_`;if(!(a&&Ty(e[r-1]))){let o=e.indexOf(i,r+2);if(o!==-1&&(!a||!Ty(e[o+2]))){n.push({type:`bold`,children:Ay(e.slice(r+2,o),t)}),r=o+2;continue}}}if(e[r]===`~`&&e[r+1]===`~`){let i=e.indexOf(`~~`,r+2);if(i!==-1){n.push({type:`strikethrough`,children:Ay(e.slice(r+2,i),t)}),r=i+2;continue}}if(e[r]===`*`||e[r]===`_`){let i=e[r]===`_`;if(!(i&&Ty(e[r-1]))){let a=e.indexOf(e[r],r+1);if(a!==-1&&a>r+1&&(!i||!Ty(e[a+1]))){n.push({type:`italic`,children:Ay(e.slice(r+1,a),t)}),r=a+1;continue}}}let i=r+1;for(;i<e.length&&!`*_~\`[!\\
98
- 【`.includes(e[i]);)i++;let a=e.slice(r,i);if(i<e.length&&e[i]===`
99
- `){let e=a.replace(/ +$/,``);if(a.length-e.length>=2){if(e.length>0){let t=n[n.length-1];t?.type===`text`?t.content+=e:n.push({type:`text`,content:e})}n.push({type:`break`}),r=i+1;continue}}let o=n[n.length-1];o?.type===`text`?o.content+=a:n.push({type:`text`,content:a}),r=i}return n}var jy=`[^\\s<]+`,My=`https?:\\/\\/`,Ny=`[A-Za-z0-9._%+-]+`,Py=`[A-Za-z0-9-]+`,Fy=`${Py}(?:\\.${Py})+`,Iy=`[a-zA-Z][a-zA-Z0-9+.-]*`,Ly=`[^<>\\s]*`,Ry=RegExp(`${My}${jy}`,`g`),zy=RegExp(`www\\.${jy}`,`g`),By=RegExp(`${Ny}@${Fy}`,`g`),Vy=RegExp(`<(${Iy}:${Ly})>`,`g`),Hy=RegExp(`<(${Ny}@${Fy})>`,`g`),Uy=new Set(`?!.,:*_~`),Wy=new Set(`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789._%+-@`);function Gy(e){let t=e;for(;t.length>0;){if(Uy.has(t[t.length-1])){let e=t.length-1;for(;e>0&&Uy.has(t[e-1]);)e--;t=t.slice(0,e);continue}if(t.endsWith(`)`)){let e=0,n=0;for(let r=0;r<t.length;r++)t[r]===`(`?e++:t[r]===`)`&&n++;if(n>e){t=t.slice(0,-1);continue}}break}return t}var Ky=new Set(`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789/=`);function qy(e){return e==null||!Ky.has(e)}function Jy(e){let t=[];{let n=new RegExp(Vy.source,`g`),r;for(;(r=n.exec(e))!==null;){let e=r[1];t.push({start:r.index,end:r.index+r[0].length,href:e,display:e})}}{let n=new RegExp(Hy.source,`g`),r;for(;(r=n.exec(e))!==null;){let e=r[1];t.push({start:r.index,end:r.index+r[0].length,href:`mailto:${e}`,display:e})}}{let n=new RegExp(Ry.source,`g`),r;for(;(r=n.exec(e))!==null;){let n=e[r.index-1];if(!qy(n)||e.slice(r.index-2,r.index)===`](`)continue;let i=Gy(r[0]);i.length!==0&&t.push({start:r.index,end:r.index+i.length,href:i,display:i})}}{let n=new RegExp(zy.source,`g`),r;for(;(r=n.exec(e))!==null;){let n=e[r.index-1];if(!qy(n)||e.slice(r.index-3,r.index)===`://`)continue;let i=Gy(r[0]);i.length!==0&&t.push({start:r.index,end:r.index+i.length,href:`http://${i}`,display:i})}}{let n=new RegExp(By.source,`g`),r;for(;(r=n.exec(e))!==null;){let n=e[r.index-1];n!=null&&Wy.has(n)||e.slice(Math.max(0,r.index-7),r.index)!==`mailto:`&&t.push({start:r.index,end:r.index+r[0].length,href:`mailto:${r[0]}`,display:r[0]})}}t.sort((e,t)=>e.start-t.start);let n=[],r=0;for(let e of t)e.start>=r&&(n.push(e),r=e.end);return n}function Yy(e){let t=Jy(e);if(t.length===0)return[{type:`text`,content:e}];let n=[],r=0;for(let i of t)i.start>r&&n.push({type:`text`,content:e.slice(r,i.start)}),n.push({type:`link`,href:i.href,children:[{type:`text`,content:i.display}]}),r=i.end;return r<e.length&&n.push({type:`text`,content:e.slice(r)}),n}function Xy(e){let t=[];for(let n of e)if(n.type===`text`){let e=Yy(n.content);for(let n of e){let e=t[t.length-1];n.type===`text`&&e?.type===`text`?e.content+=n.content:t.push(n)}}else n.type===`bold`||n.type===`italic`||n.type===`strikethrough`?t.push({...n,children:Xy(n.children)}):t.push(n);return t}function Zy(e){let t=0;for(;t<e.length&&e[t]===` `;)t++;return t}function Qy(e){let t=e.trim();if(t.length<3)return!1;let n=t.replace(/ /g,``);if(n.length<3)return!1;let r=n[0];if(r!==`-`&&r!==`*`&&r!==`_`)return!1;for(let e=1;e<n.length;e++)if(n[e]!==r)return!1;return!0}function $y(e){if(!e.includes(`|`))return!1;let t=e.split(`|`).map(e=>e.trim()).filter(e=>e.length>0);return t.length>0&&t.every(e=>/^:?-+:?$/.test(e))}function eb(e){return!!(/^#{1,6} /.test(e)||/^(`{3,}|~{3,})/.test(e)||Qy(e)||e.startsWith(`> `)||e===`>`||/^ {0,9}[-*+] /.test(e)||/^ {0,9}0*1[.)] /.test(e)||e.includes(`|`))}function tb(e){let t=0,n=e.length;if(e.startsWith(`|`))for(t=1;t<n&&e[t]===` `;)t++;for(;n>t&&e[n-1]===` `;)n--;n>t&&e[n-1]===`|`&&n--;let r=e.slice(t,n),i=[],a=``;for(let e=0;e<r.length;e++)r[e]===`\\`&&e+1<r.length&&r[e+1]===`|`?(a+=`\\|`,e++):r[e]===`|`?(i.push(a.trim()),a=``):a+=r[e];return i.push(a.trim()),i}function nb(e,t,n){let r=tb(e[t]).map(e=>({children:ky(e,n)})),i=tb(e[t+1]).map(e=>{let t=e.trim(),n=t.startsWith(`:`),r=t.endsWith(`:`);return n&&r?`center`:r?`right`:n?`left`:null}),a=[],o=t+2;for(;o<e.length&&e[o].includes(`|`)&&e[o].trim()!==``;)a.push(tb(e[o]).map(e=>({children:ky(e,n)}))),o++;return{node:{type:`table`,headers:r,alignments:i,rows:a},nextIndex:o}}function rb(e,t,n,r){let i=[],a=Zy(e[t]),o=n?e[t].match(/^ *(\d+)([.)]) /):null,s=o?o[2]:`.`,c=`\\${s}`,l=RegExp(n?`^ {${a}}\\d+${c} `:`^ {${a}}[-*+] `),u=o?parseInt(o[1],10):void 0,d=!1,f=t;for(;f<e.length&&l.test(e[f]);){let t=n?e[f].replace(RegExp(`^ *\\d+${c} `),``):e[f].replace(/^ *[-*+] /,``),o=t.match(/^\[([ xX])\] (.*)/),s,u;o?(s=o[1].toLowerCase()===`x`,u=o[2]):u=t,f++;let p=[];for(;f<e.length&&e[f].trim()!==``&&Zy(e[f])>a;)p.push(e[f]),f++;if(p.length>0){let e=Math.min(...p.map(e=>Zy(e))),t=p.map(t=>t.slice(e));u+=`
100
- `+t.join(`
101
- `)}i.push({checked:s,children:ab(u,r)});let m=f;for(;m<e.length&&e[m].trim()===``;)m++;m>f&&m<e.length&&l.test(e[m])&&(d=!0,f=m)}return{node:{type:`list`,ordered:n,start:u,delimiter:n?s:void 0,loose:d||void 0,items:i},nextIndex:f}}function ib(e,t){return ab(e,hy(t))}function ab(e,t){let{defs:n,cleaned:r}=by(e),i=t.linkDefs,a;a=n.size===0?i:i==null?n:new Map([...n,...i]);let o=a==null?t:{...t,linkDefs:a},s=r.split(`
102
- `),c=[],l=0;for(;l<s.length;){let e=s[l];if(e.trim()===``){l++;continue}let t=e.match(/^(`{3,}|~{3,})(\w*)/);if(t){let e=t[1],n=t[2]||`plaintext`,r=[];for(l++;l<s.length&&!s[l].startsWith(e);)r.push(s[l]),l++;l++,c.push({type:`codeblock`,language:n,content:r.join(`
103
- `)});continue}let n=e.match(/^(#{1,6}) +(.*)/);if(n){c.push({type:`heading`,level:n[1].length,children:ky(n[2],o)}),l++;continue}if(Qy(e)){c.push({type:`hr`}),l++;continue}let r=e.match(/^!\[([^\]]*)\]\(([^)]+)\)/);if(r&&e.trim()===r[0]){c.push({type:`image`,alt:r[1],src:r[2]}),l++;continue}if(l+1<s.length&&e.includes(`|`)&&$y(s[l+1])){let e=nb(s,l,o);c.push(e.node),l=e.nextIndex;continue}if(e.startsWith(`> `)||e===`>`){let e=[];for(;l<s.length&&(s[l].startsWith(`> `)||s[l]===`>`);)e.push(s[l].replace(/^> ?/,``)),l++;c.push({type:`blockquote`,children:ab(e.join(`
104
- `),o)});continue}if(/^ {0,9}[-*+] /.test(e)){let e=rb(s,l,!1,o);c.push(e.node),l=e.nextIndex;continue}if(/^ {0,9}\d+[.)] /.test(e)){let e=rb(s,l,!0,o);c.push(e.node),l=e.nextIndex;continue}let i=[e];for(l++;l<s.length&&!eb(s[l])&&s[l].trim()!==``;)i.push(s[l]),l++;c.push({type:`paragraph`,children:ky(i.join(`
105
- `),o)})}return c}function ob(){return{prevInput:``,settledText:``,settledBlocks:[],settledUpTo:0}}function sb(e){let t=!1,n=``,r=-1;for(let i=0;i<e.length;i++){let a=e[i],o=a.match(/^(`{3,}|~{3,})/);o&&(t?o[1].startsWith(n[0])&&o[1].length>=n.length&&(t=!1,n=``):(t=!0,n=o[1])),!t&&a.trim()===``&&i>0&&(r=i)}return t?-1:r}function cb(e){let t=e.lastIndexOf(`
106
- `),n=t===-1?``:e.slice(0,t+1),r=t===-1?e:e.slice(t+1),i=r.lastIndexOf(`[`);if(i!==-1){let e=r.slice(i);if(!(e.includes(`](`)&&e.includes(`)`))){let e=i>0&&r[i-1]===`!`?i-1:i;r=r.slice(0,e)}}let a=r.length;for(;a>0&&r[a-1]==="`";)a--;if(a<r.length&&a>0){let e=r.length-a;r.lastIndexOf("`".repeat(e),a-1)===-1&&(r=r.slice(0,a))}for(a=r.length;a>0&&r[a-1]===`*`;)a--;if(a<r.length&&a>0){let e=r.length-a;e<=3&&r.lastIndexOf(`*`.repeat(e),a-1)===-1&&(r=r.slice(0,a))}{let e=0,t=[];for(;e<r.length;){let n=r.indexOf(`*`,e);if(n===-1)break;let i=1;for(;n+i<r.length&&r[n+i]===`*`;)i++;if(i>3){e=n+i;continue}t.push({pos:n,len:i}),e=n+i}let n=new Set;for(let e=0;e<t.length;e++)if(!n.has(e)){for(let r=e+1;r<t.length;r++)if(!n.has(r)&&t[r].len===t[e].len){n.add(e),n.add(r);break}}for(let e=t.length-1;e>=0;e--)if(!n.has(e)){let n=t[e];n.pos+n.len<r.length?r+=`*`.repeat(n.len):r=r.slice(0,n.pos)}}if(r.length>=2&&r.endsWith(`~~`))r.lastIndexOf(`~~`,r.length-3)===-1&&(r=r.slice(0,-2));else if(r.endsWith(`~`)){let e=r.length-2;e>=0&&r[e]!==`~`&&(r=r.slice(0,-1))}{let e=0,t=0,n=[];for(;;){let i=r.indexOf(`~~`,t);if(i===-1)break;n.push(i),e++,t=i+2}e%2==1&&(r=r.slice(0,n[n.length-1]))}return n+r}function lb(e){let t=e.split(`
107
- `);for(;t.length>0;){let e=t[t.length-1],n=e.trim();if(n===``){t.pop();continue}if(/^ {0,9}[-*+] $/.test(e)||/^ {0,9}\d+[.)] $/.test(e)){t.pop();continue}if(n.includes(`|`)&&!$y(e)){let e=!1;for(let n=t.length-2;n>=1;n--)if($y(t[n])&&t[n-1].includes(`|`)){e=!0;break}if(!e){t.pop();continue}}if($y(e)&&(t.length<2||!t[t.length-2].includes(`|`))){t.pop();continue}break}return t.join(`
108
- `)}function ub(e,t){if(e.length===0||t.length===0)return[...e,...t];let n=e[e.length-1],r=t[0];if(n.type===`list`&&r.type===`list`&&n.ordered===r.ordered&&n.delimiter===r.delimiter){let i={type:`list`,ordered:n.ordered,start:n.start,delimiter:n.delimiter,loose:!0,items:[...n.items,...r.items]};return[...e.slice(0,-1),i,...t.slice(1)]}return[...e,...t]}function db(e,t,n){let r=hy(n);if(t.autolink!==r.autolink&&(t.prevInput=``,t.settledText=``,t.settledBlocks=[],t.settledUpTo=0,t.autolink=r.autolink),e===``)return t.prevInput=``,t.settledText=``,t.settledBlocks=[],t.settledUpTo=0,t.linkDefsKey=void 0,[];let{defs:i}=by(e),a=xy(i);t.linkDefsKey!==a&&(t.prevInput=``,t.settledText=``,t.settledBlocks=[],t.settledUpTo=0,t.linkDefsKey=a);let o=i.size>0?{...r,linkDefs:i}:r,s=e.split(`
109
- `),c=sb(s);if(c<0)return t.prevInput=e,ab(e,o);let l=s.slice(0,c).join(`
110
- `),u=lb(s.slice(c).join(`
111
- `).trim()),d;if(l===t.settledText)d=t.settledBlocks;else if(t.settledText.length>0&&l.startsWith(t.settledText)){let e=ab(l.slice(t.settledText.length),o);d=ub(t.settledBlocks,e)}else d=ab(l,o);let f=u?ab(u,o):[];return t.settledText=l,t.settledBlocks=d,t.settledUpTo=c,t.prevInput=e,ub(d,f)}var fb={start:`0`,center:`auto`},pb={start:null,center:`auto`},mb={k7Eaqz:`xkj4a21`,$$css:!0},hb={proseWidth:e=>[{ks0D6T:e==null?e:`xf68679`,$$css:!0},{"--x-maxWidth":(e=>typeof e==`number`?e+`px`:e??void 0)(e)}],proseAlign:e=>[{kUOVxO:e==null?e:`xvlecxo`,$$css:!0},{"--x-marginInline":(e=>typeof e==`number`?e+`px`:e??void 0)(e)}],blockWidth:e=>[mb,{"--x-minWidth":(e=>typeof e==`number`?e+`px`:e??void 0)(`min(${e}, 100%)`)}],blockAlign:e=>[{kUOVxO:e==null?e:`xvlecxo`,$$css:!0},{"--x-marginInline":(e=>typeof e==`number`?e+`px`:e??void 0)(e)}],cellMinWidth:e=>[{k7Eaqz:e==null?e:`xkj4a21`,$$css:!0},{"--x-minWidth":(e=>typeof e==`number`?e+`px`:e??void 0)(e)}]},gb={center:{k9WMMc:`x2b8uid`,$$css:!0},end:{k9WMMc:`xp4054r`,$$css:!0}},_b={root:{kMv6JI:`x9ynric`,kMwMTN:`x1tgivj0`,kLWn49:`xw6l6zx`,kGuDYH:`xjm74w1`,kzqmXN:`xh8yej3`,ks0D6T:`x193iq5w`,k7Eaqz:`xeuugli`,kHjlTd:`x1mzt3pk`,$$css:!0},inlineRoot:{k1xSpc:`xt0psk2`,kzqmXN:`x14atkfc`,ks0D6T:`x1x1rfll`,kMv6JI:`xjb2p0i`,kMwMTN:`x1heor9g`,kLWn49:`x15bjb6t`,kGuDYH:`x1qlqyl8`,$$css:!0},headingBase:{kMv6JI:`x1g81bgm`,kMwMTN:`x1tgivj0`,$$css:!0},h1:{kGuDYH:`xcg7oai`,k63SB2:`x1v68xuy`,kLWn49:`xfmsba7`,$$css:!0},h2:{kGuDYH:`x1xvnhcw`,k63SB2:`x12yy4cs`,kLWn49:`x1cpk1wn`,$$css:!0},h3:{kGuDYH:`xii13ha`,k63SB2:`x1jcxfy8`,kLWn49:`xwjzt0u`,$$css:!0},h4:{kGuDYH:`x8tkxat`,k63SB2:`x2hcmsi`,kLWn49:`xqerer`,$$css:!0},h5:{kGuDYH:`xsgqta0`,k63SB2:`xno150v`,kLWn49:`xo3gurs`,$$css:!0},h6:{kGuDYH:`xw5ohdf`,k63SB2:`x1pw4frv`,kLWn49:`xeixjfn`,$$css:!0},spacingHeadingMajorDefault:{keoZOQ:`x13rv44w`,k1K539:`xep27e5`,$$css:!0},spacingHeadingMinorDefault:{keoZOQ:`x1s1qpeq`,k1K539:`x1p37lm5`,$$css:!0},spacingParagraphDefault:{keoZOQ:`xj6sv8s`,k1K539:`xep27e5`,$$css:!0},spacingCodeblockDefault:{keoZOQ:`x1s1qpeq`,k1K539:`xwh1t77`,$$css:!0},spacingBlockquoteDefault:{keoZOQ:`x1s1qpeq`,k1K539:`xwh1t77`,$$css:!0},spacingListDefault:{keoZOQ:`xj6sv8s`,k1K539:`xep27e5`,$$css:!0},spacingTableDefault:{keoZOQ:`x1s1qpeq`,k1K539:`xwh1t77`,$$css:!0},spacingHrDefault:{keoZOQ:`x13rv44w`,k1K539:`x4d5cxa`,$$css:!0},spacingImageDefault:{keoZOQ:`xj6sv8s`,k1K539:`xep27e5`,$$css:!0},spacingHeadingMajorCompact:{keoZOQ:`x1s1qpeq`,k1K539:`x1p37lm5`,$$css:!0},spacingHeadingMinorCompact:{keoZOQ:`xj6sv8s`,k1K539:`x14cgwvg`,$$css:!0},spacingParagraphCompact:{keoZOQ:`xcsaf9d`,k1K539:`x14cgwvg`,$$css:!0},spacingCodeblockCompact:{keoZOQ:`xtbrsbv`,k1K539:`x1p37lm5`,$$css:!0},spacingBlockquoteCompact:{keoZOQ:`xtbrsbv`,k1K539:`x1p37lm5`,$$css:!0},spacingListCompact:{keoZOQ:`xcsaf9d`,k1K539:`x14cgwvg`,$$css:!0},spacingTableCompact:{keoZOQ:`xtbrsbv`,k1K539:`x1p37lm5`,$$css:!0},spacingHrCompact:{keoZOQ:`xj6sv8s`,k1K539:`xep27e5`,$$css:!0},spacingImageCompact:{keoZOQ:`xtbrsbv`,k1K539:`x1p37lm5`,$$css:!0},noMarginBlockStart:{keoZOQ:`xdj266r`,$$css:!0},noMarginBlockEnd:{k1K539:`xat24cr`,$$css:!0},codeBlockWrapper:{ks0D6T:`x193iq5w`,$$css:!0},tableWrapper:{kXHlph:`xw2csxc`,ks0D6T:`x193iq5w`,"--container-padding-inline-start":`xrhngw9`,"--container-padding-inline-end":`xjsfl84`,"--container-padding-block-start":`x1047aw6`,"--container-padding-block-end":`xax9j7h`,$$css:!0},blockIndent:{kUOVxO:`x1ho7dyk`,$$css:!0},hr:{kMzoRj:`xc342km`,kEafiO:`x11xkdxz`,kPef9Z:`x13fuv20`,kLZC3w:`x1pc3f07`,$$css:!0}};function vb(e){let t=e.match(/^([\d.]+)ms$/);if(t)return parseFloat(t[1]);let n=e.match(/^([\d.]+)s$/);return n?parseFloat(n[1])*1e3:null}function yb(e){let t=0;for(let n of e)switch(n.type){case`text`:t+=n.content.length;break;case`code`:t+=n.content.length;break;case`image`:t+=n.alt.length;break;case`bold`:case`italic`:case`strikethrough`:case`link`:t+=yb(n.children);break;case`break`:t+=1;break;case`citation`:t+=1}return t}function bb(e){let t=0;for(let n of e)switch(n.type){case`heading`:case`paragraph`:t+=yb(n.children);break;case`codeblock`:t+=n.content.length;break;case`blockquote`:t+=bb(n.children);break;case`list`:for(let e of n.items)t+=bb(e.children);break;case`table`:for(let e of n.headers)t+=yb(e.children);for(let e of n.rows)for(let n of e)t+=yb(n.children);break;case`hr`:break;case`image`:t+=n.alt.length}return t}var xb={1:_b.h1,2:_b.h2,3:_b.h3,4:_b.h4,5:_b.h5,6:_b.h6},Sb=/^(javascript|data|vbscript):/i;function Cb(e){let t=e.trim();return t.length===0||Sb.test(t)?null:t}function wb(e,t){let n=[];for(let r of t){r.pattern.lastIndex=0;let t;for(;(t=r.pattern.exec(e))!==null;){let i;if(r.getEndIndex){let n=r.getEndIndex(e,t);if(n===!1)continue;i=n}else i=t.index+t[0].length;n.push({start:t.index,end:i,match:t,plugin:r})}}n.sort((e,t)=>e.start-t.start);let r=[],i=0;for(let e of n)e.start>=i&&(r.push(e),i=e.end);if(r.length===0)return[{type:`text`,content:e}];let a=[],o=0;for(let t=0;t<r.length;t++){let n=r[t];n.start>o&&a.push({type:`text`,content:e.slice(o,n.start)}),a.push({type:`plugin`,element:n.plugin.render(n.match,`plugin-${t}`),matchLength:n.end-n.start}),o=n.end}return o<e.length&&a.push({type:`text`,content:e.slice(o)}),a}function Tb(e,t,n){let r=t.offset;if(t.offset+=e.length,!t.active)return e;let i=dy(e,r,t.boundaries,n);if(i==null)return e;let a=i.map(e=>e.fading?(0,Y.jsx)(`span`,{className:`x1hc1fzr x19991ni x80gvsz x12w9bfk xlr8y92 x4itv7f`,children:e.text},e.key):(0,Y.jsx)(`span`,{children:e.text},e.key));return(0,Y.jsx)(`span`,{children:a},`wrap-${n}`)}function Eb(e,t){let n=e.numberMap.get(t);return n??(n=e.nextNumber++,e.numberMap.set(t,n)),n}function Db(e,t,n,r,i,a=`a`,o,s){switch(e.type){case`text`:if(o&&o.length>0){let n=wb(e.content,o);if(n.length!==1||n[0].type!==`text`){let e=[];for(let i=0;i<n.length;i++){let a=n[i];a.type===`text`?e.push(Tb(a.content,r,`${t}-seg-${i}`)):(r.offset+=a.matchLength,e.push((0,Y.jsx)(J.Fragment,{children:a.element},`plugin-${t}-${i}`)))}return(0,Y.jsx)(J.Fragment,{children:e},t)}}return Tb(e.content,r,t);case`bold`:return(0,Y.jsx)(`strong`,{className:`x2mo6ok`,children:e.children.map((e,t)=>Db(e,t,n,r,i,a,o,s))},t);case`italic`:return(0,Y.jsx)(`em`,{children:e.children.map((e,t)=>Db(e,t,n,r,i,a,o,s))},t);case`strikethrough`:return(0,Y.jsx)(`del`,{className:`xv1l7n4`,children:e.children.map((e,t)=>Db(e,t,n,r,i,a,o,s))},t);case`code`:{r.offset+=e.content.length;let n=s?.inlineCode;return n?(0,Y.jsx)(n,{children:e.content},t):(0,Y.jsx)(rm,{children:e.content},t)}case`link`:{let c=Cb(e.href);if(c==null)return(0,Y.jsx)(`span`,{children:e.children.map((e,t)=>Db(e,t,n,r,i,a,o,s))},t);let l=s?.link;if(l)return(0,Y.jsx)(l,{href:c,children:e.children.map((e,t)=>Db(e,t,n,r,i,a,o,s))},t);let u=c.startsWith(`https://`)||c.startsWith(`http://`);return(0,Y.jsx)(u?`a`:a,{href:c,onClick:n?e=>{n(c,e)===!1&&e.preventDefault()}:void 0,...u?{target:`_blank`,rel:`noopener noreferrer`}:{},className:`xjse4m1 x1bvjpef`,children:e.children.map((e,t)=>Db(e,t,n,r,i,a,o,s))},t)}case`image`:{let n=Cb(e.src);if(n==null)return(0,Y.jsxs)(`span`,{children:[`[`,e.alt,`]`]},t);let r=s?.image;return r?(0,Y.jsx)(r,{src:n,alt:e.alt},t):(0,Y.jsx)(`img`,{src:n,alt:e.alt,className:`x193iq5w xh6dtrn`},t)}case`break`:return r.offset+=1,(0,Y.jsx)(`br`,{},t);case`citation`:{if(r.offset+=1,!i)return(0,Y.jsxs)(`span`,{children:[`[`,e.sourceId,`]`]},t);let n=Eb(i,e.sourceId),a=i.sources[e.sourceId]??{title:e.sourceId},o=i.style===`number`?`number`:`label`,c=s?.citation;return c?(0,Y.jsx)(c,{source:a,number:n,variant:o},t):(0,Y.jsx)(py,{source:a,number:n,variant:o},t)}}}function Ob(e,t){let n=t===`compact`;switch(e.type){case`heading`:return e.level<=3?n?_b.spacingHeadingMajorCompact:_b.spacingHeadingMajorDefault:n?_b.spacingHeadingMinorCompact:_b.spacingHeadingMinorDefault;case`paragraph`:return n?_b.spacingParagraphCompact:_b.spacingParagraphDefault;case`codeblock`:return n?_b.spacingCodeblockCompact:_b.spacingCodeblockDefault;case`blockquote`:return n?_b.spacingBlockquoteCompact:_b.spacingBlockquoteDefault;case`list`:return n?_b.spacingListCompact:_b.spacingListDefault;case`table`:return n?_b.spacingTableCompact:_b.spacingTableDefault;case`hr`:return n?_b.spacingHrCompact:_b.spacingHrDefault;case`image`:return n?_b.spacingImageCompact:_b.spacingImageDefault}}function kb(e){return e.headers.map((t,n)=>{let r=yb(t.children);for(let t of e.rows)if(t[n]){let e=yb(t[n].children);e>r&&(r=e)}return r<=6?60:r<=15?80:120})}function Ab(e,t,n,r,i,a,o,s,c,l,u=`a`,d,f,p){let m=pb[l],h=m==null?null:hb.blockAlign(m),g=Ob(e,r),_=t===0,v=t===n-1;switch(e.type){case`heading`:{let n=Math.min(e.level+i-1,6),p=e.children.map((e,t)=>Db(e,t,a,o,s,u,d,f)),m=f?.heading;if(m)return(0,Y.jsx)(m,{level:n,children:p},t);let h=`h${n}`;return(0,Y.jsx)(h,{...Q(q(`markdown-heading`,{density:r,level:n}),K(_b.headingBase,xb[n],g,c==null?null:hb.proseWidth(c),l===`start`?null:hb.proseAlign(fb[l]),_&&_b.noMarginBlockStart,v&&_b.noMarginBlockEnd)),children:p},t)}case`paragraph`:{let n=e.children.map((e,t)=>Db(e,t,a,o,s,u,d,f)),i=f?.paragraph;return i?(0,Y.jsx)(i,{children:n},t):(0,Y.jsx)(`div`,{role:`paragraph`,...Q(q(`markdown-paragraph`,{density:r}),K(g,c==null?null:hb.proseWidth(c),l===`start`?null:hb.proseAlign(fb[l]),_&&_b.noMarginBlockStart,v&&_b.noMarginBlockEnd)),children:n},t)}case`codeblock`:{o.offset+=e.content.length;let n=f?.code;return n?(0,Y.jsx)(n,{code:e.content,language:e.language},t):(0,Y.jsx)(`div`,{...Q(q(`markdown-codeblock`,{density:r}),K(g,_b.codeBlockWrapper,_&&_b.noMarginBlockStart,v&&_b.noMarginBlockEnd)),children:(0,Y.jsx)($p,{code:e.content,language:e.language,isCollapsible:!0,xstyle:[c==null?void 0:hb.blockWidth(c),h]})},t)}case`blockquote`:{let n=f?.blockquote;if(n){let m=e.children.map((t,n)=>Ab(t,n,e.children.length,r,i,a,o,s,c,l,u,d,f,p));return(0,Y.jsx)(n,{children:m},t)}return(0,Y.jsx)(T_,{...q(`markdown-blockquote`,{density:r}),xstyle:[g,c==null?void 0:hb.proseWidth(c),l===`start`?void 0:hb.proseAlign(fb[l]),_&&_b.noMarginBlockStart,v&&_b.noMarginBlockEnd],children:e.children.map((t,n)=>Ab(t,n,e.children.length,r,i,a,o,s,c,l,u,d,f,p))},t)}case`list`:if(e.items.length>0&&e.items.every(e=>e.checked!=null)){let n=e.items.map((e,t)=>({item:e,key:`task-${t}`})).filter(({item:e})=>e.checked).map(({key:e})=>e);return(0,Y.jsx)(`div`,{...Q(q(`markdown-list`,{density:r}),K(g,_&&_b.noMarginBlockStart,v&&_b.noMarginBlockEnd)),children:(0,Y.jsx)(Ug,{label:p(`@astryx.markdown.taskList`),isLabelHidden:!0,value:n,xstyle:_b.blockIndent,isReadOnly:!0,density:`compact`,children:e.items.map((e,t)=>{let n=e.children[0],m=e.children.length===1&&n?.type===`paragraph`?(0,Y.jsx)(Y.Fragment,{children:n.children.map((e,t)=>Db(e,t,a,o,s,u,d,f))}):(0,Y.jsx)(Y.Fragment,{children:e.children.map((t,n)=>Ab(t,n,e.children.length,r,i,a,o,s,c,l,u,d,f,p))});return(0,Y.jsx)(C_,{value:`task-${t}`,label:m},t)})})},t)}return(0,Y.jsx)(`div`,{...Q(q(`markdown-list`,{density:r}),K(g,c==null?null:hb.proseWidth(c),l===`start`?null:hb.proseAlign(fb[l]),_&&_b.noMarginBlockStart,v&&_b.noMarginBlockEnd)),children:(0,Y.jsx)(Bg,{listStyle:e.ordered?`decimal`:`disc`,density:`compact`,start:e.ordered?e.start:void 0,xstyle:_b.blockIndent,children:e.items.map((e,t)=>{let n=e.children[0],m=e.children.length===1&&n?.type===`paragraph`?(0,Y.jsx)(Y.Fragment,{children:n.children.map((e,t)=>Db(e,t,a,o,s,u,d,f))}):(0,Y.jsx)(Y.Fragment,{children:e.children.map((t,n)=>Ab(t,n,e.children.length,r,i,a,o,s,c,l,u,d,f,p))});return(0,Y.jsx)(x_,{label:m},t)})})},t);case`table`:{let n=kb(e);return(0,Y.jsx)(`div`,{tabIndex:0,role:`group`,"aria-label":p(`@astryx.markdown.table`),...Q(q(`markdown-table`,{density:r}),K(_b.tableWrapper,g,c==null?null:hb.blockWidth(c),pb[l]==null?null:hb.blockAlign(pb[l]),_&&_b.noMarginBlockStart,v&&_b.noMarginBlockEnd)),children:(0,Y.jsxs)(ly,{dividers:`rows`,textOverflow:`wrap`,children:[(0,Y.jsx)(Rv,{children:(0,Y.jsx)(U_,{children:e.headers.map((t,r)=>(0,Y.jsx)(Lv,{xstyle:[hb.cellMinWidth(`${n[r]}px`),e.alignments[r]===`center`&&gb.center,e.alignments[r]===`right`&&gb.end],children:t.children.map((e,t)=>Db(e,t,a,o,s,u,d,f))},r))})}),(0,Y.jsx)(zv,{children:e.rows.map((t,n)=>{let r=t.map((t,n)=>(0,Y.jsx)(Mv,{xstyle:[e.alignments[n]===`center`&&gb.center,e.alignments[n]===`right`&&gb.end],children:t.children.map((e,t)=>Db(e,t,a,o,s,u,d,f))},n));return(0,Y.jsx)(U_,{children:r},n)})})]})},t)}case`hr`:{let e=f?.hr;return e?(0,Y.jsx)(e,{},t):(0,Y.jsx)(`hr`,{...Q(q(`markdown-hr`,{density:r}),K(_b.hr,g,_&&_b.noMarginBlockStart,v&&_b.noMarginBlockEnd))},t)}case`image`:{let n=Cb(e.src);if(n==null)return(0,Y.jsxs)(`div`,{...Q(q(`markdown-image`,{density:r}),K(g,_&&_b.noMarginBlockStart,v&&_b.noMarginBlockEnd)),children:[`[`,e.alt,`]`]},t);let i=f?.image;return i?(0,Y.jsx)(i,{src:n,alt:e.alt},t):(0,Y.jsx)(`div`,{...Q(q(`markdown-image`,{density:r}),K(g,_&&_b.noMarginBlockStart,v&&_b.noMarginBlockEnd)),children:(0,Y.jsx)(`img`,{src:n,alt:e.alt,className:`x193iq5w xh6dtrn`})},t)}}}function jb({ref:e,children:t,display:n=`block`,density:r=`default`,headingLevelStart:i=1,isStreaming:a=!1,onLinkClick:o,sources:s,citationStyle:c=`label`,contentWidth:l=680,contentAlign:u=`start`,components:d,inlinePlugins:f,autolink:p,xstyle:m,className:h,style:g,"data-testid":_}){let v=tp(),y=Sd(),b=(0,J.useMemo)(()=>s?new Set(Object.keys(s)):void 0,[s]),x=(0,J.useMemo)(()=>({sourceIds:b,autolink:p}),[b,p]),S=fg(t,a),C=(0,J.useRef)(ob()),w=(0,J.useRef)(p);w.current!==p&&(C.current=ob(),w.current=p);let T=(0,J.useMemo)(()=>n===`inline`?[]:a?S===``?(C.current=ob(),[]):db(cb(S),C.current,x):ib(t,x),[n,S,t,a,x]),E=(0,J.useMemo)(()=>n===`inline`?Oy(a?cb(S):t,x):[],[n,S,t,a,x]),{token:D}=pr(),O=(0,J.useMemo)(()=>{let e=vb(D(`--duration-fast-max`))??230,t=vb(D(`--duration-fast-min`)),n=t==null?50:Math.max(4,Math.round(t/10));return Math.min(Math.ceil(e/n),12)},[D]),k=(0,J.useRef)([]),A=(0,J.useRef)([]),j=(0,J.useRef)([]),M=S.length,N={offset:0,boundaries:(0,J.useMemo)(()=>{let e=n===`inline`?yb(A.current):bb(k.current),t=uy(j.current,e,O);return j.current=t,t},[n,M,O]),active:a},P=s?{sources:s,numberMap:new Map,nextNumber:1,style:c}:null;if(n===`inline`){let t=(0,Y.jsx)(`span`,{ref:e,"data-testid":_,...Q(q(`markdown`,{density:r}),K(_b.root,_b.inlineRoot,m),h,g),children:E.map((e,t)=>Db(e,t,o,N,P,y,f,d))});return A.current=E,k.current=[],t}let F=(0,Y.jsx)(`div`,{role:`document`,ref:e,"data-testid":_,...Q(q(`markdown`,{density:r}),K(_b.root,m),h,g),children:T.map((e,t)=>Ab(e,t,T.length,r,i,o,N,P,l?typeof l==`number`?`${l}px`:l:null,u,y,f,d,v))});return k.current=T,A.current=[],F}jb.displayName=`Markdown`;function Mb(e){return e.split(`/`).pop()??e}function Nb(e){let t=e.split(`/`);return t.length<=1?``:t.slice(0,-1).join(`/`)}function Pb(e){let t=e.toLowerCase();return t.endsWith(`.md`)||t.endsWith(`.markdown`)}function Fb(e){let t=e.split(`/`).pop()??e;return/\.(png|jpe?g|gif|webp)$/i.test(t)}function Ib(e){let t=e.toLowerCase();return t.endsWith(`.md`)||t.endsWith(`.markdown`)?`markdown`:t.endsWith(`.json`)?`json`:t.endsWith(`.yaml`)||t.endsWith(`.yml`)?`yaml`:t.endsWith(`.ts`)||t.endsWith(`.tsx`)?`typescript`:t.endsWith(`.js`)||t.endsWith(`.jsx`)?`javascript`:t.endsWith(`.py`)?`python`:t.endsWith(`.sh`)?`bash`:t.endsWith(`.html`)?`html`:t.endsWith(`.css`)?`css`:(t.endsWith(`.txt`),`plaintext`)}function Lb(e,t){return`/api/runs/${encodeURIComponent(e)}/artifact?path=${encodeURIComponent(t)}`}function Rb(e){if(e<1024)return`${e} B`;let t=e/1024;return t<1024?`${t.toFixed(t>=10?0:1)} KB`:`${(t/1024).toFixed(1)} MB`}function zb({load:e,mode:t,markdown:n,image:r,imageSrc:i,path:a}){return e.status===`loading`?(0,Y.jsx)(`p`,{className:`text-[13px] text-[var(--sf-text-3)]`,children:`Loading…`}):e.status===`error`?(0,Y.jsxs)(`div`,{className:`rounded-lg border border-[#f2645a33] bg-[#f2645a14] px-3 py-2`,children:[(0,Y.jsx)(`p`,{className:`text-[11px] font-medium uppercase tracking-wide text-[var(--sf-fail)]`,children:`Could not load artifact`}),(0,Y.jsx)(`p`,{className:`mt-1 text-[13px] text-[var(--sf-text-1)]`,children:e.message})]}):e.status===`ready`?r?i?(0,Y.jsx)(`img`,{src:i,alt:Mb(a),className:`block max-w-full h-auto`}):null:t===`rendered`&&n?e.content.trim().length===0?(0,Y.jsx)(`p`,{className:`text-[13px] text-[var(--sf-text-3)]`,children:`Empty file.`}):(0,Y.jsx)(jb,{headingLevelStart:2,contentWidth:`76ch`,children:e.content}):(0,Y.jsx)($p,{code:e.content,language:Ib(a),title:Mb(a),container:`section`,width:`100%`}):null}function Bb({runId:e,path:t,readOnly:n,onBackToTranscript:r,onHide:i,variant:a=`legacy`}){let o=Pb(t),s=Fb(t),[c,l]=(0,J.useState)(o||s?`rendered`:`raw`),[u,d]=(0,J.useState)({status:`loading`}),[f,p]=(0,J.useState)(null),[m,h]=(0,J.useState)(`idle`);(0,J.useEffect)(()=>{l(Pb(t)||Fb(t)?`rendered`:`raw`)},[t]),(0,J.useEffect)(()=>{if(Fb(t)){let n=!1,r=null;return d({status:`loading`}),p(null),fetch(Lb(e,t),{headers:{...Ti()}}).then(async e=>{if(!e.ok){let t=await e.json().catch(()=>({}));throw Error(t.error??`Request failed (${e.status})`)}return e.blob()}).then(e=>{let t=URL.createObjectURL(e);if(n){URL.revokeObjectURL(t);return}r=t,p(t),d({status:`ready`,content:``})}).catch(e=>{n||d({status:`error`,message:e instanceof Error?e.message:String(e)})}),()=>{n=!0,r&&URL.revokeObjectURL(r)}}let n=!1;return d({status:`loading`}),p(null),Qa(e,t).then(e=>{n||d({status:`ready`,content:e})}).catch(e=>{n||d({status:`error`,message:e instanceof Error?e.message:String(e)})}),()=>{n=!0}},[e,t]),(0,J.useEffect)(()=>{h(`idle`)},[t]);let g=u.status===`ready`&&!s?new TextEncoder().encode(u.content).length:null;return a===`redesign`?(0,Y.jsxs)(`div`,{className:`flex h-full min-h-0 flex-1 flex-col gap-2 px-4 py-3`,children:[(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2`,children:[(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-['Geist_Mono',monospace] text-xs leading-[1.33] text-[var(--sf-text-1)]`,children:Mb(t)}),g==null?null:(0,Y.jsx)(`span`,{className:`shrink-0 font-['Geist_Mono',monospace] text-[11px] text-[#8b8f98]`,children:Rb(g)}),(0,Y.jsx)(`button`,{type:`button`,className:`shrink-0 rounded-md border border-[#ffffff12] px-2 py-1 text-xs text-[#a7aab2] hover:text-[var(--sf-text-1)]`,onClick:()=>{navigator.clipboard.writeText(t).then(()=>{h(`copied`),window.setTimeout(()=>h(`idle`),1500)})},children:m===`copied`?`Copied`:`Copy path`})]}),(0,Y.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto rounded-[10px] border border-[#ffffff12] bg-[#131418] p-4`,children:(0,Y.jsx)(zb,{load:u,mode:c,markdown:o,image:s,imageSrc:f,path:t})})]}):(0,Y.jsxs)(`div`,{className:`reader`,style:{height:`100%`},children:[(0,Y.jsxs)(`div`,{className:`reader__bar`,children:[(0,Y.jsx)(`span`,{className:`reader__name`,children:Mb(t)}),Nb(t)?(0,Y.jsx)(`span`,{className:`reader__path`,children:Nb(t)}):null,n?(0,Y.jsx)(`span`,{className:`chip`,children:`read only`}):null,(0,Y.jsx)(`span`,{className:`topbar__spacer`}),(0,Y.jsxs)(`div`,{className:`stream__head-trail`,children:[r?(0,Y.jsx)(`button`,{className:`btn btn--ghost btn--sm`,onClick:r,children:`← Transcript`}):null,i?(0,Y.jsx)(`button`,{type:`button`,className:`btn btn--sm`,onClick:i,children:`Hide workspace`}):null,(0,Y.jsxs)(`div`,{className:`seg`,children:[(0,Y.jsx)(`button`,{"data-active":c===`rendered`?`true`:void 0,disabled:!o&&!s,onClick:()=>{(o||s)&&l(`rendered`)},children:`Rendered`}),(0,Y.jsx)(`button`,{"data-active":c===`raw`?`true`:void 0,disabled:s,onClick:()=>{s||l(`raw`)},children:`Raw`}),(0,Y.jsx)(`button`,{disabled:!0,children:`Diff`})]})]})]}),(0,Y.jsxs)(`div`,{className:`reader__body`,children:[u.status===`loading`?(0,Y.jsx)(`p`,{className:`muted`,style:{padding:`var(--spacing-6)`},children:`Loading…`}):null,u.status===`error`?(0,Y.jsx)(`div`,{style:{padding:`var(--spacing-6)`},children:(0,Y.jsxs)(`div`,{className:`gate`,style:{padding:`var(--spacing-4)`,borderColor:`var(--color-border-red)`,borderLeftColor:`var(--color-error)`,background:`var(--color-background-red)`,color:`var(--color-text-red)`},children:[(0,Y.jsx)(`div`,{className:`gate__label`,style:{color:`var(--color-text-red)`},children:`Could not load artifact`}),(0,Y.jsx)(`p`,{className:`gate__question`,style:{color:`var(--color-text-primary)`},children:u.message})]})}):null,u.status===`ready`?(0,Y.jsx)(`div`,{className:`page`,children:(0,Y.jsx)(zb,{load:u,mode:c,markdown:o,image:s,imageSrc:f,path:t})}):null]})]})}function Vb({question:e,note:t,onNoteChange:n,onAccept:r,onReject:i,isSubmitting:a,error:o,refs:s,children:c}){let l=!!a;return(0,Y.jsxs)(`div`,{className:`decide`,style:{height:`100%`},children:[(0,Y.jsxs)(`div`,{className:`decide__gate`,children:[(0,Y.jsxs)(`div`,{className:`decide__label`,children:[(0,Y.jsx)(`span`,{className:`dot dot--waiting`}),Ps(),` · artifact_backed`]}),(0,Y.jsx)(`p`,{className:`decide__q`,children:e}),s?(0,Y.jsx)(`div`,{className:`decide__refs`,children:s}):null,o?(0,Y.jsx)(`div`,{className:`gate`,style:{padding:`var(--spacing-3)`,marginBottom:`var(--spacing-3)`,borderColor:`var(--color-border-red)`,borderLeftColor:`var(--color-error)`,background:`var(--color-background-red)`,color:`var(--color-text-red)`},children:(0,Y.jsxs)(`p`,{style:{margin:0,fontSize:`var(--font-size-sm)`},children:[`Could not submit answer: `,o]})}):null,(0,Y.jsx)(`textarea`,{value:t,onChange:e=>n(e.target.value),disabled:l,placeholder:`Optional review notes`,rows:3}),(0,Y.jsxs)(`div`,{className:`decide__buttons`,children:[(0,Y.jsx)(`button`,{className:`btn btn--accept`,disabled:l,onClick:r,children:a?`Submitting…`:`Accept`}),(0,Y.jsx)(`button`,{className:`btn btn--reject`,disabled:l,onClick:i,children:`Reject`})]})]}),c?(0,Y.jsx)(`div`,{className:`decide__body`,children:c}):null]})}function Hb(e){if(!e||typeof e!=`object`)return null;let t=e.kind;return t===`free_text`||t===`confirm`||t===`multi_question`||t===`artifact_backed`?e:null}function Ub(e){if(!e||typeof e!=`object`)return null;let t=e.kind;return t===`free_text`||t===`confirm`||t===`multi_question`||t===`artifact_backed`?e:null}function Wb(e){let t=0;for(let n of e)n.event===`operator_prompt`&&Hb(n.prompt)?.kind===`artifact_backed`&&(t+=1);return Math.max(t,1)}function Gb(e){let t=[];return e.forEach((e,n)=>{if(e.event===`operator_prompt`){t.push({key:`ask-${e.at??n}`,label:`Asked you`,at:e.at});return}if(e.event!==`operator_answer`)return;let r=Ub(e.answer),i=`Answered`,a;r?.kind===`artifact_backed`||r?.kind===`confirm`?(i=r.decision===`reject`?`Rejected`:`Accepted`,a=r.text):r?.kind===`free_text`&&(a=r.text),t.push({key:`ans-${e.at??n}`,label:i,at:e.at,note:a})}),t}function Kb(e){if(!e)return``;try{let t=new Date(e),n=Math.round((Date.now()-t.getTime())/1e3);return n<60?`just now`:n<3600?`${Math.floor(n/60)}m ago`:n<86400?`${Math.floor(n/3600)}h ago`:t.toLocaleDateString()}catch{return``}}function qb({runId:e,stageId:t,prompt:n,events:r,inboundEnvelope:i,inboundFromStageId:a,inboundToStageId:o,selectedPath:s,onSelectArtifact:c,onOpenInboundEnvelope:l}){let[u,d]=(0,J.useState)(``),{submitting:f,error:p,locked:m,submitIntent:h}=km(e,t,{promptId:n.id,kind:n.kind}),g=Wb(r),_=Gb(r);async function v(e){await h({type:`decision`,decision:e,note:u})}let y=a&&o?`${a} → ${o}`:a??`previous stage`;return(0,Y.jsxs)(Vb,{question:n.message,note:u,onNoteChange:d,onAccept:()=>void v(`accept`),onReject:()=>void v(`reject`),isSubmitting:f||m,error:p,refs:n.artifacts.length>0?(0,Y.jsx)(Y.Fragment,{children:n.artifacts.map(e=>(0,Y.jsx)(`button`,{className:`chip${e===s?` chip--active`:``}`,onClick:()=>c(e),style:e===s?{borderColor:`var(--color-warning)`,background:`var(--color-background-yellow)`}:void 0,children:e.split(`/`).pop()??e},e))}):void 0,children:[(0,Y.jsxs)(`p`,{className:`muted`,style:{fontSize:`var(--font-size-sm)`},children:[`Iteration `,g,`. A rejection returns to the same live session, which revises this file and asks again — the stage is not restarted.`]}),_.length>0?(0,Y.jsxs)(`div`,{style:{marginTop:`var(--spacing-3)`},children:[(0,Y.jsx)(`strong`,{style:{fontSize:`var(--font-size-sm)`},children:`Review history`}),_.map(e=>(0,Y.jsxs)(`div`,{style:{marginTop:`var(--spacing-2)`},children:[(0,Y.jsx)(`span`,{style:{fontSize:`var(--font-size-sm)`,fontWeight:500},children:e.label}),e.at?(0,Y.jsx)(`span`,{className:`muted`,style:{fontSize:`var(--font-size-xs)`,marginLeft:`var(--spacing-2)`,fontFamily:`var(--font-family-code)`},children:Kb(e.at)}):null,e.note?(0,Y.jsx)(`p`,{className:`muted`,style:{margin:`2px 0 0`,fontSize:`var(--font-size-sm)`},children:e.note}):null]},e.key))]}):null,i?(0,Y.jsxs)(`div`,{style:{marginTop:`var(--spacing-3)`},children:[(0,Y.jsx)(`strong`,{style:{fontSize:`var(--font-size-sm)`},children:`Inbound context`}),(0,Y.jsx)(`p`,{className:`muted`,style:{fontSize:`var(--font-size-sm)`,margin:`2px 0 var(--spacing-2)`},children:i.summary}),l?(0,Y.jsx)(`button`,{className:`btn btn--ghost btn--sm`,onClick:l,children:y}):(0,Y.jsx)(`span`,{className:`muted`,style:{fontSize:`var(--font-size-sm)`},children:y})]}):null]})}var Jb=`text-[11px] uppercase tracking-[0.88px] text-[#8b8f98]`;function Yb({envelope:e,onArtifactClick:t,payloadMaxHeight:n=280}){return(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-3`,children:[(0,Y.jsxs)(`section`,{className:`flex flex-col gap-1 rounded-[10px] border border-[#ffffff12] bg-[#131418] p-3`,children:[(0,Y.jsx)(`div`,{className:Jb,children:`summary`}),(0,Y.jsx)(`p`,{className:`text-[13px] leading-[1.45] text-[var(--sf-text-1)]`,children:e.summary})]}),(0,Y.jsxs)(`section`,{className:`flex flex-col gap-2`,children:[(0,Y.jsx)(`div`,{className:Jb,children:`artifacts`}),e.artifacts.length===0?(0,Y.jsx)(`p`,{className:`text-[13px] text-[var(--sf-text-3)]`,children:`none`}):(0,Y.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:e.artifacts.map(e=>{let n=e.split(`/`).pop()??e,r=`rounded-md border border-[#ffffff12] bg-[#1a1c21] px-2 py-1 font-['Geist_Mono',monospace] text-xs text-[var(--sf-text-1)]`;return t?(0,Y.jsx)(`button`,{type:`button`,className:`${r} hover:border-[#ffffff28]`,onClick:()=>t(e),children:n},e):(0,Y.jsx)(`span`,{className:r,children:n},e)})})]}),e.notes?(0,Y.jsxs)(`section`,{className:`flex flex-col gap-1`,children:[(0,Y.jsx)(`div`,{className:Jb,children:`notes`}),(0,Y.jsx)(`p`,{className:`text-[13px] leading-normal text-[#a7aab2]`,children:e.notes})]}):null,e.payload?(0,Y.jsxs)(`section`,{className:`flex min-h-[120px] flex-col gap-1`,style:{maxHeight:n},children:[(0,Y.jsx)(`div`,{className:Jb,children:`payload`}),(0,Y.jsx)(`pre`,{className:`min-h-0 flex-1 overflow-auto rounded-lg border border-[#ffffff12] bg-[#0c0d0f] p-3 font-['Geist_Mono',monospace] text-xs leading-normal text-[#a7aab2]`,children:JSON.stringify(e.payload,null,2)})]}):(0,Y.jsx)(`p`,{className:`text-[13px] text-[var(--sf-text-3)]`,children:`No payload.`})]})}function Xb({envelope:e,onArtifactClick:t,payloadMaxHeight:n=280,variant:r=`legacy`}){return r===`redesign`?(0,Y.jsx)(Yb,{envelope:e,onArtifactClick:t,payloadMaxHeight:n}):(0,Y.jsxs)(`div`,{className:`drawer__grid`,children:[(0,Y.jsxs)(`dl`,{className:`kv`,children:[(0,Y.jsx)(`dt`,{children:`Summary`}),(0,Y.jsx)(`dd`,{children:e.summary}),(0,Y.jsx)(`dt`,{children:`Artifacts`}),(0,Y.jsx)(`dd`,{children:e.artifacts.length===0?(0,Y.jsx)(`span`,{className:`muted`,children:`none`}):e.artifacts.map(e=>{let n=e.split(`/`).pop()??e;return t?(0,Y.jsxs)(`button`,{type:`button`,className:`chip chip--file`,onClick:()=>t(e),children:[`◆ `,n]},e):(0,Y.jsxs)(`span`,{className:`chip chip--file`,children:[`◆ `,n]},e)})}),e.notes?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`dt`,{children:`Notes`}),(0,Y.jsx)(`dd`,{className:`muted`,children:e.notes})]}):null]}),e.payload?(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`div`,{className:`eyebrow`,style:{marginBottom:`var(--spacing-2)`},children:`payload`}),(0,Y.jsx)($p,{code:JSON.stringify(e.payload,null,2),language:`json`,container:`section`,maxHeight:n,width:`100%`})]}):(0,Y.jsx)(`p`,{className:`muted`,children:`No payload.`})]})}function Zb(e,t,n){let r=e=>n?.(e)??e;return t?`${r(e)} → ${r(t)}`:r(e)}function Qb({fromStageId:e,toStageId:t,envelope:n,onBackToTranscript:r,onHide:i,onArtifactClick:a,stageLabel:o}){let s=Zb(e,t,o);return(0,Y.jsxs)(`div`,{className:`stream`,style:{height:`100%`},children:[(0,Y.jsxs)(`header`,{className:`stream__head`,children:[(0,Y.jsx)(`h3`,{className:`stream__name`,children:`Handoff envelope`}),(0,Y.jsx)(`span`,{className:`mono muted`,children:s}),(0,Y.jsx)(`span`,{className:`topbar__spacer`}),(0,Y.jsxs)(`div`,{className:`stream__head-trail`,children:[(0,Y.jsx)(`button`,{type:`button`,className:`btn btn--sm`,onClick:r,children:`← Transcript`}),i?(0,Y.jsx)(`button`,{type:`button`,className:`btn btn--sm`,onClick:i,children:`Hide workspace`}):null]})]}),(0,Y.jsx)(`div`,{className:`stream__body`,children:(0,Y.jsx)(Xb,{envelope:n,onArtifactClick:a,payloadMaxHeight:480})})]})}function $b(e){return e===`success`?`status status--succeeded`:e===`failure`?`status status--failed`:`status`}function ex(e){return e===`success`?`dot dot--succeeded`:e===`failure`?`dot dot--failed`:`dot`}function tx({isOpen:e,onClose:t,fromStageId:n,toStageId:r,envelope:i,onOpenFullRecord:a,onArtifactClick:o}){let s=r?`${n} → ${r}`:n;return(0,J.useEffect)(()=>{if(!e)return;function n(e){e.key===`Escape`&&t()}return window.addEventListener(`keydown`,n),()=>window.removeEventListener(`keydown`,n)},[e,t]),(0,Y.jsxs)(`aside`,{className:`drawer`,hidden:!e,children:[(0,Y.jsxs)(`div`,{className:`drawer__head`,children:[(0,Y.jsx)(`span`,{className:`eyebrow`,children:`Handoff envelope`}),(0,Y.jsx)(`span`,{className:`mono muted`,children:s}),(0,Y.jsxs)(`span`,{className:$b(i.status),children:[(0,Y.jsx)(`span`,{className:ex(i.status)}),` `,i.status]}),(0,Y.jsx)(`span`,{style:{marginLeft:`auto`}}),a?(0,Y.jsx)(`button`,{type:`button`,className:`btn btn--sm`,onClick:a,children:`Open full record`}):null,(0,Y.jsx)(`button`,{type:`button`,className:`btn btn--sm`,onClick:t,children:`Close`})]}),(0,Y.jsx)(Xb,{envelope:i,onArtifactClick:o})]})}function nx({runId:e,decide:t,onSuccess:n}){let[r,i]=(0,J.useState)(``),{submitting:a,error:o,decide:s}=Al(e,n),c=a,l=t.replayNumber!==void 0&&t.maxReplays!==void 0?`Replay ${t.replayNumber} of ${t.maxReplays}`:t.maxReplays===void 0?null:`Max ${t.maxReplays} replays`;function u(e){let n=r.trim();s(t.sourceStageId,{decision:e,loopId:t.loopId,...n?{reason:n}:{}})}return(0,Y.jsx)(`div`,{className:`decide feedback-decide`,style:{height:`100%`},children:(0,Y.jsxs)(`div`,{className:`decide__gate`,children:[(0,Y.jsxs)(`div`,{className:`decide__label`,children:[(0,Y.jsx)(`span`,{className:`dot dot--waiting`}),Ps(),` · feedback_loop_decision`]}),(0,Y.jsx)(`p`,{className:`decide__q`,children:t.summary??`Feedback loop limit reached — extend, continue, or abandon`}),(0,Y.jsxs)(`div`,{className:`decide__refs`,children:[(0,Y.jsxs)(`span`,{children:[`Source `,(0,Y.jsx)(`strong`,{children:t.sourceStageId})]}),t.deferredTarget?(0,Y.jsxs)(`span`,{children:[`Target `,(0,Y.jsx)(`strong`,{children:t.deferredTarget})]}):null,l?(0,Y.jsx)(`span`,{children:l}):null]}),o?(0,Y.jsx)(`div`,{className:`gate`,style:{padding:`var(--spacing-3)`,marginBottom:`var(--spacing-3)`,borderColor:`var(--color-border-red)`,borderLeftColor:`var(--color-error)`,background:`var(--color-background-red)`,color:`var(--color-text-red)`},children:(0,Y.jsxs)(`p`,{style:{margin:0,fontSize:`var(--font-size-sm)`},children:[`Could not submit decision: `,o]})}):null,(0,Y.jsx)(`textarea`,{value:r,onChange:e=>i(e.target.value),disabled:c,placeholder:`Optional reason`,rows:3}),(0,Y.jsxs)(`div`,{className:`decide__buttons`,children:[(0,Y.jsx)(`button`,{className:`btn btn--accept`,disabled:c,onClick:()=>u(`extend`),children:a?`Submitting…`:`Extend`}),(0,Y.jsx)(`button`,{className:`btn btn--primary`,disabled:c,onClick:()=>u(`continue`),children:`Continue`}),(0,Y.jsx)(`button`,{className:`btn btn--reject`,disabled:c,onClick:()=>u(`abandon`),children:`Abandon`})]}),(0,Y.jsx)(`p`,{className:`decide__hint`,children:`Extend raises the replay budget and continues the deferred send-back. Continue accepts the limit and advances. Abandon stops the loop.`})]})})}function rx(e){return`Replay ${e.current_replay_number??0} of ${e.policy.max_replays}`}function ix(e){for(let t=e.length-1;t>=0;t--){let n=e[t]?.replays;if(!n||n.length===0)continue;let r=n[n.length-1]?.replay;if(r?.target_stage_id)return r.target_stage_id}return null}function ax(e,t){let n=e.deferred_send_back?.target??ix(t)??e.policy.target??null;return n?`${e.source_stage_id} → ${n}`:null}function ox(e){switch(e){case`waiting_for_human`:return`status status--waiting`;case`completed`:case`continued`:return`status status--succeeded`;case`abandoned`:return`status status--failed`;default:return`status`}}function sx({active:e,history:t}){if(!e&&t.length===0)return null;let n=e??t[t.length-1]?.loop,r=n?ax(n,t):null,i=n?r??rx(n):null,a=n?.state===`waiting_for_human`,o=t.flatMap(e=>e.replays),s=t.reduce((e,t)=>{let n=t.fork_generations.filter(e=>e.status===`superseded`).length;for(let e of t.replays)n+=e.fork_generations.filter(e=>e.status===`superseded`).length;return e+n},0);return(0,Y.jsx)(`section`,{className:`feedback-loop-panel block`,children:(0,Y.jsx)(dm,{trigger:(0,Y.jsxs)(`span`,{className:`feedback-loop-panel__trigger`,children:[(0,Y.jsx)(`span`,{className:`block__pipeline`,children:`Feedback loop`}),n?(0,Y.jsx)(`span`,{className:ox(n.state),children:n.state.replaceAll(`_`,` `)}):null,i?(0,Y.jsx)(`span`,{className:`feedback-loop-panel__summary`,children:i}):null]}),defaultIsOpen:a,children:(0,Y.jsxs)(`div`,{className:`feedback-loop-panel__body`,children:[n?(0,Y.jsxs)(`dl`,{className:`kv`,children:[(0,Y.jsx)(`dt`,{children:`Budget`}),(0,Y.jsx)(`dd`,{children:rx(n)}),r?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`dt`,{children:`Route`}),(0,Y.jsx)(`dd`,{children:r})]}):null,(0,Y.jsx)(`dt`,{children:`Session`}),(0,Y.jsx)(`dd`,{children:n.policy.replay_session})]}):null,o.length>0?(0,Y.jsxs)(`div`,{className:`feedback-loop-panel__timeline`,children:[(0,Y.jsx)(`div`,{className:`decide__label`,children:`Replay timeline`}),(0,Y.jsx)(`ol`,{className:`feedback-loop-panel__list`,children:o.map(({replay:e,stage_passes:t})=>(0,Y.jsxs)(`li`,{children:[(0,Y.jsxs)(`span`,{children:[`#`,e.replay_number,` `,e.source_stage_id,` →`,` `,e.target_stage_id]}),(0,Y.jsxs)(`span`,{className:`feedback-loop-panel__status`,children:[e.status.replaceAll(`_`,` `),t.length>0?` · ${t.length} stage pass${t.length===1?``:`es`}`:``]})]},e.replay_id))})]}):null,s>0?(0,Y.jsxs)(`p`,{className:`block__sub`,children:[s,` superseded fork generation`,s===1?``:`s`,` hidden from the map.`]}):null]})},a?`waiting`:`idle`)})}var cx=160;function lx(e,t=cx){let n=e.trim();return n.length<=t?n:`${n.slice(0,t)}…`}function ux(e){let t=e.prompt;if(!t||typeof t!=`object`)return;let n=t;if(n.kind===`multi_question`){let e=n.questions?.length??0;return e===1?`1 question`:`${e} questions`}if(typeof n.message==`string`&&n.message.trim())return lx(n.message)}function dx(e){let t=e.answer;if(!t||typeof t!=`object`)return;let n=t;if(n.kind===`free_text`)return typeof n.text==`string`?lx(n.text):void 0;if(n.kind===`confirm`||n.kind===`artifact_backed`){let e=n.decision,t=typeof n.text==`string`&&n.text.trim()?lx(n.text):void 0;return e&&t?`${e} — ${t}`:e||t}if(n.kind===`multi_question`){let e=Object.keys(n.answers??{}).length;return e===1?`1 answer`:`${e} answers`}}function fx(e){switch(e.event){case`started`:return`Stage started`;case`succeeded`:return`Stage succeeded`;case`failed`:return`Stage failed`;case`interrupted`:return`Stage interrupted`;case`agent_start`:return`Agent started`;case`agent_end`:return`Agent settled`;case`turn_start`:return`Turn`;case`tool_start`:return`→ ${e.toolName??`tool`}`;case`tool_end`:return e.isError?`✕ ${e.toolName??`tool`}`:`✓ ${e.toolName??`tool`}`;case`tool_progress`:return`│ ${e.toolName??`tool`}`;case`message`:{let t=e.role??`message`;return e.text?`${t}: ${e.text}`:t}case`operator_prompt`:return`Operator prompt`;case`operator_answer`:return`Operator answer`;case`waiting_for_input`:return Ps();case`resumed`:return`Stage resumed`;case`feedback_loop_decided`:return`Feedback loop decided`;default:return e.event}}function px(e){let t=e.decision;if(t!==`extend`&&t!==`continue`&&t!==`abandon`)return;let n=typeof e.reason==`string`&&e.reason.trim()?lx(e.reason):void 0;return n?`${t} — ${n}`:t}function mx(e){if(e.event===`tool_start`&&e.argsPreview)return e.argsPreview;if(e.event===`tool_end`&&e.resultPreview)return e.resultPreview;if(e.event===`tool_progress`&&e.textPreview)return e.textPreview;if(e.event===`failed`&&e.reason||e.event===`interrupted`&&e.reason||e.event===`turn_start`&&e.reason)return e.reason;if(e.event===`operator_prompt`)return ux(e);if(e.event===`operator_answer`)return dx(e);if(e.event===`feedback_loop_decided`)return px(e)}var hx=4;function gx(e,t){return`${e.event}-${e.at??`na`}-${t}`}function _x(e){if(!e||typeof e!=`object`)return null;let t=e.kind;return t===`free_text`||t===`confirm`||t===`multi_question`||t===`artifact_backed`?e:null}function vx(e){if(!e||typeof e!=`object`)return null;let t=e.kind;return t===`free_text`||t===`confirm`||t===`multi_question`||t===`artifact_backed`?e:null}function yx(e){return e===`tool_start`||e===`tool_end`||e===`tool_progress`}function bx(e){let t=[],n=[];for(let r=0;r<e.length;r++){let i=e[r];if(i.event===`tool_start`){t.push({name:i.toolName??`tool`,args:i.argsPreview,at:i.at,id:i.toolCallId??`start-${r}`});continue}if(i.event===`tool_progress`){let e=-1;if(i.toolCallId&&(e=t.findIndex(e=>e.id===i.toolCallId)),e<0&&(e=t.length>0?t.length-1:-1),e<0)continue;let n=typeof i.textPreview==`string`?i.textPreview:void 0;n!==void 0&&(t[e].progressPreview=n);continue}if(i.event===`tool_end`){let e=i.toolCallId?t.findIndex(e=>e.id===i.toolCallId):t.findIndex(e=>e.name===(i.toolName??`tool`)),r=e>=0?t.splice(e,1)[0]:void 0;n.push({name:i.toolName??r?.name??`tool`,status:i.isError?`error`:`complete`,args:r?.args,result:i.resultPreview,at:i.at??r?.at,startedAt:r?.at})}}for(let e of t)n.push({name:e.name,status:`running`,args:e.args,progressPreview:e.progressPreview,at:e.at,startedAt:e.at});return n}function xx({at:e}){return e?(0,Y.jsx)(`time`,{children:Cs(e)}):null}function Sx({envelope:e}){return(0,Y.jsxs)(`div`,{className:`turn`,children:[(0,Y.jsx)(`div`,{className:`turn__who`,children:`Envelope`}),(0,Y.jsxs)(`div`,{className:`bubble`,style:{borderColor:`var(--color-border-green)`},children:[(0,Y.jsx)(`p`,{children:e.summary}),e.artifacts.length>0?(0,Y.jsx)(`p`,{className:`muted`,children:e.artifacts.map(e=>e.split(`/`).pop()??e).join(` · `)}):null]})]})}function Cx({calls:e}){let[t,n]=(0,J.useState)(!1),r=!t&&e.length>hx?e.length-hx:0,i=r>0?e.slice(0,hx):e;return(0,Y.jsxs)(`div`,{className:`tools`,children:[i.map((e,t)=>{let n=e.status===`running`?e.progressPreview:e.result;return(0,Y.jsxs)(`div`,{className:e.status===`error`?`tool tool--error`:`tool`,children:[(0,Y.jsxs)(`span`,{children:[e.status===`error`?`✕`:e.status===`running`?`▸`:`⚙`,` `,e.name,e.args?` ${e.args}`:``,n?` · ${n}`:``]}),(0,Y.jsx)(xx,{at:e.at})]},`${e.name}-${e.at??t}`)}),r>0?(0,Y.jsxs)(`button`,{type:`button`,className:`tools__more`,onClick:()=>n(!0),children:[`Show `,r,` more`]}):null]})}function wx({event:e}){let t=e.role??`message`,n=e.text?.trim();return n?(0,Y.jsxs)(`div`,{className:`turn`,children:[(0,Y.jsxs)(`div`,{className:`turn__who`,children:[t,(0,Y.jsx)(xx,{at:e.at})]}),(0,Y.jsx)(`div`,{className:`bubble`,children:(0,Y.jsx)(`p`,{children:n})})]}):null}function Tx({event:e}){let t=_x(e.prompt);return(0,Y.jsxs)(`div`,{className:`ask`,children:[(0,Y.jsxs)(`div`,{className:`ask__label`,children:[t?.kind??`ask`,(0,Y.jsx)(`span`,{style:{marginLeft:`auto`},children:(0,Y.jsx)(xx,{at:e.at})})]}),t?.kind===`multi_question`?(0,Y.jsx)(`ol`,{className:`qlist`,children:t.questions.map(e=>(0,Y.jsxs)(`li`,{children:[e.message,(0,Y.jsx)(`small`,{children:e.kind})]},e.id))}):(0,Y.jsx)(`p`,{className:`ask__q`,children:t&&`message`in t?t.message:mx(e)})]})}function Ex({event:e}){let t=vx(e.answer),n,r;if(t?.kind===`free_text`)n=`answered`,r=t.text;else if(t?.kind===`confirm`||t?.kind===`artifact_backed`)n=t.decision,r=t.text;else if(t?.kind===`multi_question`){let e=Object.keys(t.answers??{}).length;n=e===1?`1 answer`:`${e} answers`}else r=mx(e);let i=n===`accept`||n===`answered`||n===`reject`?n:void 0;return(0,Y.jsxs)(`div`,{className:`answer`,children:[(0,Y.jsxs)(`div`,{className:`turn__who`,children:[n?(0,Y.jsx)(`span`,{className:`answer__verdict`,...i?{"data-v":i}:{},children:n}):(0,Y.jsx)(`span`,{children:`Operator`}),(0,Y.jsx)(xx,{at:e.at})]}),r?(0,Y.jsx)(`p`,{children:r}):null]})}function Dx({event:e}){let t=mx(e),n=fx(e);return(0,Y.jsx)(`div`,{className:`divider-iter`,children:t?`${n} · ${t}`:n})}function Ox(e){let t=[],n=0;for(;n<e.length;){let r=e[n];if(yx(r.event)){let r=[];for(;n<e.length&&yx(e[n].event);)r.push(e[n]),n+=1;let i=bx(r);i.length>0&&t.push({kind:`tools`,calls:i});continue}r.event===`message`?r.text?.trim()&&t.push({kind:`message`,event:r}):r.event===`operator_prompt`?t.push({kind:`operator_prompt`,event:r}):r.event===`operator_answer`?t.push({kind:`operator_answer`,event:r}):r.event===`turn_start`&&!mx(r)||t.push({kind:`system`,event:r}),n+=1}return t}function kx({events:e,inboundEnvelope:t}){let n=[];t&&n.push((0,Y.jsx)(Sx,{envelope:t},`inbound-envelope`));let r=Ox(e);for(let e=0;e<r.length;e++){let t=r[e];if(t.kind===`tools`){n.push((0,Y.jsx)(Cx,{calls:t.calls},`tools-${e}`));continue}if(t.kind===`message`){n.push((0,Y.jsx)(wx,{event:t.event},gx(t.event,e)));continue}if(t.kind===`operator_prompt`){n.push((0,Y.jsx)(Tx,{event:t.event},gx(t.event,e)));continue}if(t.kind===`operator_answer`){n.push((0,Y.jsx)(Ex,{event:t.event},gx(t.event,e)));continue}n.push((0,Y.jsx)(Dx,{event:t.event},gx(t.event,e)))}return n.length===0?(0,Y.jsx)(`p`,{className:`muted`,children:`No activity yet.`}):(0,Y.jsx)(Y.Fragment,{children:n})}function Ax(e){for(let t=e.length-1;t>=0;t--)if(e[t].kind===`system`&&e[t].status===`failed`)return e[t].id;if(!e.some(e=>e.kind===`system`&&e.sourceEvent===`succeeded`)){for(let t=e.length-1;t>=0;t--)if(e[t].kind===`tool`&&e[t].status===`failed`)return e[t].id}}function jx(e,t){let n=e.find(e=>e.id===t);if(!(!n||n.kind!==`system`))return n.detail??n.label}var Mx=160;function Nx(e,t){let n=e.slice(0,t),r=n.lastIndexOf(` `);return r>0?{shown:n.slice(0,r),cutIndex:r+1}:{shown:n,cutIndex:t}}function Px(e){let t=e.indexOf(`
112
- `),n=t===-1?e:e.slice(0,t);if(n.length<=Mx){let r=(t===-1?``:e.slice(t+1)).replace(/^\n+/,``);return{preview:n,hasMore:r.trim().length>0,rest:r}}let{shown:r,cutIndex:i}=Nx(n,Mx);return{preview:`${r}…`,hasMore:!0,rest:e.slice(i).replace(/^\n+/,``)}}function Fx(e){if(e<1e3)return`<1s`;let t=Math.round(e/1e3);return t<60?`${t}s`:`${Math.floor(t/60)}m ${t%60}s`}function Ix(e,t){if(e.kind!==`tool`||!e.startedAt)return;let n=Date.parse(e.startedAt);if(Number.isNaN(n))return;if(e.status===`running`)return Math.max(0,t-n);if(!e.finishedAt)return;let r=Date.parse(e.finishedAt);if(!Number.isNaN(r))return Math.max(0,r-n)}function Lx(e){return e.status===`error`?`failed`:e.status===`running`?`running`:`succeeded`}var Rx={read:{key:`file_path`,isPath:!0},write:{key:`file_path`,isPath:!0},edit:{key:`file_path`,isPath:!0},notebookedit:{key:`notebook_path`,isPath:!0},bash:{key:`command`,isPath:!1},grep:{key:`pattern`,isPath:!1},glob:{key:`pattern`,isPath:!1},webfetch:{key:`url`,isPath:!1},websearch:{key:`query`,isPath:!1}},zx=new Set([`read`]);function Bx(e){if(e)try{let t=JSON.parse(e);return t&&typeof t==`object`?t:void 0}catch{return}}function Vx(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function Hx(e,t){let n=Bx(e)?.[t];if(typeof n==`string`)return n;if(!e)return;let r=e.match(RegExp(`"${Vx(t)}"\\s*:\\s*"((?:[^"\\\\]|\\\\.)*)"`));return r?r[1]:void 0}function Ux(e){return e.split(`/`).pop()||e}function Wx(e){let t=Rx[e.name.toLowerCase()];if(!t)return e.name;let n=Hx(e.args,t.key);return typeof n!=`string`||!n.trim()?e.name:`${e.name} ${t.isPath?Ux(n):n}`}function Gx(e){if(e.status===`running`)return e.progressPreview;if(!(e.status===`complete`&&zx.has(e.name.toLowerCase())))return e.result}function Kx(e,t){return{id:t,kind:`tool`,label:Wx(e),status:Lx(e),detail:Gx(e),at:e.at,startedAt:e.startedAt,finishedAt:e.status===`running`?void 0:e.at,defaultExpanded:!1}}function qx(e,t){return{id:t,kind:`message`,label:e.role??`message`,status:`succeeded`,detail:e.text?.trim(),at:e.at,defaultExpanded:!1}}function Jx(e,t,n){return{id:n,kind:e,label:fx(t),status:e===`system`&&t.event===`failed`?`failed`:`succeeded`,detail:mx(t),at:t.at,defaultExpanded:!1,sourceEvent:e===`system`?t.event:void 0}}function Yx(e){let t=Ox(e),n=[],r=0;for(let e of t){if(e.kind===`tools`){for(let t of e.calls)n.push(Kx(t,`step-${r}`)),r+=1;continue}let t=`step-${r}`;r+=1,e.kind===`message`?n.push(qx(e.event,t)):e.kind===`operator_prompt`?n.push(Jx(`operator_prompt`,e.event,t)):e.kind===`operator_answer`?n.push(Jx(`operator_answer`,e.event,t)):n.push(Jx(`system`,e.event,t))}let i=Ax(n);for(let e of n)e.defaultExpanded=e.status===`running`||e.id===i;return n}function Xx({step:e,now:t,isOpen:n,onToggle:r}){let i=Ix(e,t),{preview:a,hasMore:o,rest:s}=e.detail?Px(e.detail):{preview:``,hasMore:!1,rest:``};return(0,Y.jsxs)(`div`,{id:`logstep-${e.id}`,className:`logstep logstep--${e.status}`,children:[(0,Y.jsxs)(`button`,{type:`button`,className:`logstep__row${o?``:` logstep__row--static`}`,disabled:!o,"aria-expanded":o?n:void 0,onClick:o?()=>r(!n):void 0,children:[(0,Y.jsx)(Bu,{icon:`chevronDown`,size:`sm`,className:`logstep__chevron${o?n?` logstep__chevron--open`:``:` logstep__chevron--hidden`}`}),(0,Y.jsx)(`span`,{className:`dot dot--${e.status} logstep__dot`}),(0,Y.jsxs)(`span`,{className:`logstep__text`,children:[(0,Y.jsxs)(`span`,{className:`logstep__label-row`,children:[(0,Y.jsx)(`span`,{className:`logstep__label`,children:e.label}),i===void 0?null:(0,Y.jsx)(`span`,{className:`logstep__duration`,children:Fx(i)})]}),a?(0,Y.jsx)(`span`,{className:`logstep__preview`,children:a}):null]})]}),o&&n?(0,Y.jsx)(`pre`,{className:`logstep__detail`,children:s}):null]})}function Zx(e){let t=document.getElementById(`logstep-${e}`);t&&(t.scrollIntoView({behavior:`smooth`,block:`center`}),t.classList.add(`logstep--highlight`),window.setTimeout(()=>t.classList.remove(`logstep--highlight`),1500))}function Qx({events:e,headerAction:t}){let n=Yx(e),r=Date.now(),i=Ax(n),a=jx(n,i),[o,s]=(0,J.useState)({});return(0,Y.jsxs)(`div`,{className:`stream`,style:{height:`100%`},children:[(0,Y.jsxs)(`header`,{className:`stream__head`,children:[(0,Y.jsx)(`h3`,{className:`stream__name`,children:`Logs`}),t?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`span`,{className:`topbar__spacer`}),(0,Y.jsx)(`div`,{className:`stream__head-trail`,children:t})]}):null]}),(0,Y.jsx)(`div`,{className:`stream__body`,children:n.length===0?(0,Y.jsx)(`p`,{className:`muted`,children:`No activity yet.`}):(0,Y.jsx)(`div`,{className:`logpanel`,children:n.map(e=>(0,Y.jsx)(Xx,{step:e,now:r,isOpen:o[e.id]??e.defaultExpanded,onToggle:t=>s(n=>({...n,[e.id]:t}))},e.id))})}),a&&i?(0,Y.jsxs)(`div`,{className:`logpanel__banner`,children:[(0,Y.jsx)(`span`,{className:`logpanel__banner-text`,children:a}),(0,Y.jsx)(`button`,{type:`button`,className:`btn btn--sm`,onClick:()=>{s(e=>{if(!(i in e))return e;let t={...e};return delete t[i],t}),Zx(i)},children:`Jump to failing step`})]}):null]})}function $x(e){let t=new Map;for(let n of e){let e=t.get(n.layer)??[];e.push(n),t.set(n.layer,e)}return[...t.keys()].sort((e,t)=>e-t).map(e=>(t.get(e)??[]).sort((e,t)=>e.layer_order-t.layer_order))}function eS(e){return $x(e).flat()}function tS(e,t,n,r=0){return{stageId:e,x:t*520,y:r+n*340,width:400,height:128,layerIndex:t,indexInLayer:n}}function nS(e,t){return t<=1||e>=t?0:(t-e)/2*340}function rS(e){let t=e?.plannedStageIds??[],n=e?.liveStageIds??[];if(t.length===0)return n;let r=new Set,i=[];for(let e of t)r.add(e),i.push(e);for(let e of n)r.has(e)||i.push(e);return i}function iS(e,t){if(!e.nodes.length){let e=rS(t);return{nodes:e.map((e,t)=>tS(e,t,0)),edges:e.slice(1).map((t,n)=>({from:e[n],to:t}))}}let n=$x(e.nodes),r=n.reduce((e,t)=>Math.max(e,t.length),0);return{nodes:n.flatMap((e,t)=>{let n=nS(e.length,r);return e.map((e,r)=>tS(e.stage_id,t,r,n))}),edges:e.edges.map(e=>({from:e.from,to:e.to}))}}var aS=.25,oS=1.8;function sS(e,t){return Math.abs(e.y+e.height/2-(t.y+t.height/2))<e.height*.75}function cS(e,t){let n=e.x+e.width/2,r=t.x+t.width/2;return Math.max(0,Math.round(Math.abs(r-n)/520)-1)*12}function lS(e,t,n,r,i){return`M${e} ${t} V${i} H${n} V${r}`}function uS(e,t){let n=e.y+e.height/2,r=t.y+t.height/2,i=cS(e,t);if(sS(e,t)){let n=e.x+e.width/2,r=e.y+e.height,a=t.x+t.width/2,o=t.y+t.height;return lS(n,r,a,o,Math.max(r,o)+48+i)}if(r>=n){let n=e.x+e.width/2,r=e.y+e.height,a=t.x+t.width/2,o=t.y,s=o-r;return lS(n,r,a,o,s>=48?r+s/2:Math.max(r,o)+48+i)}let a=e.x+e.width/2,o=e.y,s=t.x+t.width/2,c=t.y;return lS(a,o,s,c,Math.min(o,c)-48-i)}function dS(e){let t=e.match(/[MLHVmlhv]|-?\d*\.?\d+/g);if(!t)return[];let n=[],r=0,i=0,a=0;for(;a<t.length;){let e=t[a++].toUpperCase();e===`M`||e===`L`?(r=Number(t[a++]),i=Number(t[a++]),n.push({x:r,y:i})):e===`H`?(r=Number(t[a++]),n.push({x:r,y:i})):e===`V`&&(i=Number(t[a++]),n.push({x:r,y:i}))}return n}function fS(e,t){let n=dS(uS(e,t));if(n.length===0)return{x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),width:Math.abs(t.x-e.x)+Math.max(e.width,t.width),height:Math.abs(t.y-e.y)+Math.max(e.height,t.height)};let r=n.map(e=>e.x),i=n.map(e=>e.y),a=Math.min(...r),o=Math.max(...r),s=Math.min(...i),c=Math.max(...i);return{x:a,y:s,width:o-a,height:c-s}}function pS(e,t,n=4){return Math.hypot(e,t)>n}function mS(e,t=24){if(e.length===0)return{x:0,y:0,width:0,height:0};let n=1/0,r=1/0,i=-1/0,a=-1/0;for(let t of e)n=Math.min(n,t.x),r=Math.min(r,t.y),i=Math.max(i,t.x+t.width),a=Math.max(a,t.y+t.height);return{x:n-t,y:r-t,width:i-n+t*2,height:a-r+t*2}}function hS(e,t){if(e.width<=0||e.height<=0||t.width<=0||t.height<=0)return{panX:0,panY:0,zoom:1};let n=t.width-56,r=t.height-56;if(n<=0||r<=0)return{panX:0,panY:0,zoom:1};let i=Math.max(aS,Math.min(1.1,oS,n/e.width,r/e.height));return{zoom:i,panX:56+(n-e.width*i)/2-e.x*i,panY:56+(r-e.height*i)/2-e.y*i}}function gS(e,t){return e&&!t}function _S(e,t){return e===t?null:e}function vS(e,t){return!!e.find(e=>e.stage_id===t)?.envelope}function yS(e,t){return e===`waiting_for_input`||e===`pending`||e===`skipped`?null:e===`running`?`abandon`:e===`failed`||t?`retry`:null}function bS(e){switch(e){case`free_text`:return`free text`;case`confirm`:return`confirm`;case`multi_question`:return`multi-question`;case`artifact_backed`:return`artifact`}}function xS(e,t,n,r){let i=Math.max(48,(n-e)/2);return`M${e} ${t} C${e+i} ${t} ${n-i} ${r} ${n} ${r}`}function SS(e,t){return t?`abandoned`:e===`interrupted`?`waiting_for_input`:e}function CS({layout:e,stages:t,nodeChrome:n,selectedStageId:r,onSelectStage:i,onDeselect:a,retryingStageIds:o,onRetryStage:s,resumingStageIds:c,onResumeStage:l,abandoningStageId:u=null,onAbandonStage:d,runId:f,showHint:p,feedbackOverlays:m=[]}){let h=(0,J.useRef)(null),g=(0,J.useRef)(!1),_=(0,J.useRef)(!1),v=(0,J.useRef)({width:0,height:0}),y=(0,J.useRef)(null),[b,x]=(0,J.useState)({width:0,height:0}),[S,C]=(0,J.useState)({x:0,y:0}),[w,T]=(0,J.useState)(1),[E,D]=(0,J.useState)(!1),O=new Map(t.map(e=>[e.stage_id,e])),k=new Map(n.map(e=>[e.stageId,e])),A=o??new Set,j=c??new Set;(0,J.useLayoutEffect)(()=>{let e=h.current;if(!e)return;let t=()=>{let t=e.getBoundingClientRect();x({width:t.width,height:t.height})};t();let n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[]),(0,J.useLayoutEffect)(()=>{g.current=!1,_.current=!1,v.current={width:0,height:0}},[f]);let M=()=>{let t=[...e.nodes];for(let n of m){let r=e.nodes.find(e=>e.stageId===n.from),i=e.nodes.find(e=>e.stageId===n.to);!r||!i||t.push(fS(r,i))}return mS(t)};(0,J.useLayoutEffect)(()=>{if(e.nodes.length===0||b.width===0||b.height===0)return;if(!g.current){let e=hS(M(),b);C({x:e.panX,y:e.panY}),T(e.zoom),g.current=!0,v.current={width:b.width,height:b.height};return}if(v.current.width===b.width&&v.current.height===b.height||(v.current={width:b.width,height:b.height},!gS(!0,_.current)))return;let t=hS(M(),b);C({x:t.panX,y:t.panY}),T(t.zoom)},[m,e.nodes,b.height,b.width]);let N=(e,t)=>{let n=t??{x:b.width/2,y:b.height/2},r=Math.max(aS,Math.min(oS,w*e)),i=(n.x-S.x)/w,a=(n.y-S.y)/w;_.current=!0,C({x:n.x-i*r,y:n.y-a*r}),T(r)},P=()=>{let t=h.current;if(!t||e.nodes.length===0)return;let n=t.getBoundingClientRect(),r=hS(M(),{width:n.width,height:n.height});C({x:r.panX,y:r.panY}),T(r.zoom),_.current=!1,g.current=!0,v.current={width:n.width,height:n.height}},F=e=>{e.target.closest(`.gnode`)||(e.currentTarget.setPointerCapture(e.pointerId),D(!0),y.current={id:e.pointerId,x:e.clientX,y:e.clientY,panX:S.x,panY:S.y})},I=e=>{let t=y.current;if(!t||t.id!==e.pointerId)return;let n=e.clientX-t.x,r=e.clientY-t.y;pS(n,r)&&(_.current=!0),C({x:t.panX+n,y:t.panY+r})},L=e=>{let t=y.current;if(!t||t.id!==e.pointerId)return;let n=e.clientX-t.x,r=e.clientY-t.y;y.current=null,D(!1),pS(n,r)||a()};return(0,Y.jsxs)(`div`,{className:`graph-view`,children:[(0,Y.jsxs)(`svg`,{className:`graph-grid`,"aria-hidden":`true`,width:`100%`,height:`100%`,children:[(0,Y.jsx)(`defs`,{children:(0,Y.jsx)(`pattern`,{id:`spatial-dots`,width:`24`,height:`24`,patternUnits:`userSpaceOnUse`,children:(0,Y.jsx)(`circle`,{cx:`1`,cy:`1`,r:`1`,fill:`var(--color-border)`})})}),(0,Y.jsx)(`rect`,{width:`100%`,height:`100%`,fill:`url(#spatial-dots)`})]}),(0,Y.jsx)(`div`,{ref:h,className:E?`graph-stage dragging`:`graph-stage`,onPointerDown:F,onPointerMove:I,onPointerUp:L,onPointerCancel:L,onWheel:e=>{e.preventDefault();let t=e.currentTarget.getBoundingClientRect();if(e.metaKey||e.ctrlKey){N(e.deltaY<0?1.08:.92,{x:e.clientX-t.left,y:e.clientY-t.top});return}_.current=!0,C(t=>({x:t.x-e.deltaX,y:t.y-e.deltaY}))},children:(0,Y.jsxs)(`svg`,{className:`graph-svg`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,Y.jsxs)(`defs`,{children:[(0,Y.jsx)(`marker`,{id:`spatial-arrow`,markerWidth:`8`,markerHeight:`8`,refX:`7`,refY:`3`,orient:`auto`,children:(0,Y.jsx)(`path`,{d:`M0,0 L7,3 L0,6 Z`,fill:`var(--color-text-disabled)`})}),(0,Y.jsx)(`marker`,{id:`spatial-arrow-active`,markerWidth:`8`,markerHeight:`8`,refX:`7`,refY:`3`,orient:`auto`,children:(0,Y.jsx)(`path`,{d:`M0,0 L7,3 L0,6 Z`,fill:`var(--color-accent)`})}),(0,Y.jsx)(`marker`,{id:`spatial-arrow-feedback`,markerWidth:`8`,markerHeight:`8`,refX:`7`,refY:`3`,orient:`auto`,children:(0,Y.jsx)(`path`,{d:`M0,0 L7,3 L0,6 Z`,fill:`var(--color-warning)`})})]}),(0,Y.jsxs)(`g`,{className:`world`,transform:`translate(${S.x} ${S.y}) scale(${w})`,children:[e.edges.map(n=>{let r=e.nodes.find(e=>e.stageId===n.from),i=e.nodes.find(e=>e.stageId===n.to);if(!r||!i)return null;let a=r.height,o=i.height,s=r.x+r.width,c=r.y+a/2,l=i.x,u=i.y+o/2,d=vS(t,n.from);return(0,Y.jsx)(`g`,{children:(0,Y.jsx)(`path`,{className:d?`edge handoff`:`edge`,d:xS(s,c,l,u),markerEnd:d?`url(#spatial-arrow-active)`:`url(#spatial-arrow)`})},`${n.from}->${n.to}`)}),m.map(t=>{let n=e.nodes.find(e=>e.stageId===t.from),r=e.nodes.find(e=>e.stageId===t.to);return!n||!r?null:(0,Y.jsx)(`path`,{className:t.kind===`deferred`?`edge feedback feedback--deferred`:t.kind===`policy`?`edge feedback feedback--policy`:`edge feedback`,d:uS(n,r),markerEnd:`url(#spatial-arrow-feedback)`},`feedback:${t.kind}:${t.from}->${t.to}`)}),e.nodes.map(e=>{let t=O.get(e.stageId),n=k.get(e.stageId),a=t?.status??n?.status??`pending`,o=t?Os(t.events):!1;return(0,Y.jsx)(wS,{node:e,status:a,abandoned:o,chrome:n,selected:r===e.stageId,busy:wl({retryingStageIds:A,abandoningStageId:u,resumingStageIds:j},e.stageId),retrying:A.has(e.stageId),resuming:j.has(e.stageId),abandoning:u===e.stageId,snapshot:t,onSelectStage:i,onRetryStage:s,onResumeStage:l,onAbandonStage:d},e.stageId)})]})]})}),(0,Y.jsxs)(`div`,{className:`canvas-tools`,children:[(0,Y.jsx)(`button`,{type:`button`,className:`icon`,title:`Zoom out`,"aria-label":`Zoom out`,onClick:()=>N(.87),children:`−`}),(0,Y.jsxs)(`span`,{className:`zoom`,"aria-live":`polite`,children:[Math.round(w*100),`%`]}),(0,Y.jsx)(`button`,{type:`button`,className:`icon`,title:`Zoom in`,"aria-label":`Zoom in`,onClick:()=>N(1.15),children:`+`}),(0,Y.jsx)(`span`,{className:`divider`}),(0,Y.jsx)(`button`,{type:`button`,className:`icon fit-btn`,onClick:P,children:`Fit run`})]}),p?(0,Y.jsx)(`div`,{className:`canvas-hint`,children:`Stages become selectable when they start.`}):null]})}function wS({node:e,status:t,abandoned:n,chrome:r,selected:i,busy:a,retrying:o,resuming:s,abandoning:c,snapshot:l,onSelectStage:u,onRetryStage:d,onResumeStage:f,onAbandonStage:p}){let m=t!==`pending`,h=yS(t,n),g=l!==void 0&&Cl(l)&&f!==void 0,_=h===`retry`&&xl(t)&&d,v=h===`abandon`&&Sl(t)&&p,y=SS(t,n),b=[r?.isFeedbackSource?`feedback-source`:``,r?.isFeedbackTarget?`feedback-target`:``,r?.isSuperseded?`superseded`:``].filter(Boolean).join(` `),x=n?ks():Ns(t),S=r?.title??e.stageId,C=r?_S(r.kicker,r.title):null,w=[];r?.titleOnly||(w.push(x),r?.isSuperseded&&w.push(`superseded`),r?.readinessLine&&t===`pending`&&w.push(r.readinessLine),t===`waiting_for_input`?(r?.gateKinds?.length&&w.push(r.gateKinds.map(bS).join(` · `)),r?.promptSummary&&w.push(r.promptSummary)):r?.meta&&w.push(r.meta));let T=()=>{m&&u(e.stageId)};return(0,Y.jsxs)(`g`,{className:`gnode ${y}${i?` selected`:``}${b?` ${b}`:``}`,"data-id":e.stageId,"data-waiting":r?.isWaitingAttention?`true`:void 0,"data-feedback-source":r?.isFeedbackSource?`true`:void 0,"data-feedback-target":r?.isFeedbackTarget?`true`:void 0,"data-superseded":r?.isSuperseded?`true`:void 0,transform:`translate(${e.x},${e.y})`,children:[(0,Y.jsx)(`rect`,{className:`node-box`,x:0,y:0,width:e.width,height:128,rx:12,ry:12}),(0,Y.jsx)(`circle`,{className:`port`,cx:-4,cy:64,r:4}),(0,Y.jsx)(`circle`,{className:`port`,cx:e.width+4,cy:64,r:4}),m?(0,Y.jsx)(`foreignObject`,{x:0,y:0,width:e.width,height:128,children:(0,Y.jsxs)(`button`,{type:`button`,className:`gnode__hit`,onClick:T,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),T())},children:[C?(0,Y.jsx)(`span`,{className:`gnode__kicker`,children:C}):null,(0,Y.jsxs)(`span`,{className:`gnode__title`,children:[S,(0,Y.jsx)(Nh,{count:r?.attemptCount})]}),w.length>0?(0,Y.jsx)(`span`,{className:`gnode__meta`,children:w.join(` · `)}):null]})}):(0,Y.jsxs)(`g`,{className:`gnode__static`,children:[C?(0,Y.jsx)(`text`,{className:`kicker`,x:16,y:22,children:C}):null,(0,Y.jsx)(`text`,{className:`node-title`,x:16,y:C?44:32,children:S}),w.length>0?(0,Y.jsx)(`text`,{className:`node-meta`,x:16,y:66,children:w.join(` · `)}):null]}),(0,Y.jsx)(ES,{status:t,abandoned:n,cx:e.width-26,cy:26,showResume:!!g,showRetry:!!_,showAbandon:!!v,busy:a,resumeLabel:s?`Resuming…`:`Resume session`,retryLabel:o?`Retrying…`:`Retry stage`,abandonLabel:c?`Abandoning…`:`Abandon stage`,onResume:g?()=>{f?.(e.stageId)}:void 0,onRetry:_?()=>{d?.(e.stageId)}:void 0,onAbandon:v?()=>{p?.(e.stageId)}:void 0})]})}function TS({kind:e,cx:t,cy:n,busy:r,label:i,onActivate:a}){return(0,Y.jsxs)(`g`,{className:`node-action-btn node-${e}${r?` is-busy`:``}`,role:`button`,tabIndex:r?-1:0,"aria-label":i,"aria-disabled":r||void 0,onClick:e=>{r||(e.stopPropagation(),a?.())},onKeyDown:e=>{r||(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),e.stopPropagation(),a?.())},children:[(0,Y.jsx)(`title`,{children:i}),(0,Y.jsx)(`circle`,{className:`action-bg`,cx:t,cy:n,r:11}),e===`retry`?(0,Y.jsx)(`path`,{className:`action-icon`,d:[`M${t-3.2} ${n-2.2}`,`A4.2 4.2 0 1 0 ${t+.2} ${n-4}`,`M${t+.2} ${n-7.2}`,`L${t+.2} ${n-3.6}`,`L${t-3.4} ${n-3.6}`].join(` `)}):e===`resume`?(0,Y.jsx)(`path`,{className:`action-icon`,d:`M${t-2.2} ${n-3.6} L${t-2.2} ${n+3.6} L${t+4.2} ${n} Z`}):(0,Y.jsx)(`rect`,{className:`action-icon`,x:t-3.5,y:n-3.5,width:7,height:7,rx:1.25})]})}function ES({status:e,abandoned:t,cx:n,cy:r,showResume:i,showRetry:a,showAbandon:o,busy:s,resumeLabel:c,retryLabel:l,abandonLabel:u,onResume:d,onRetry:f,onAbandon:p}){let m=r+28,h=i?m+26:m;return(0,Y.jsxs)(`g`,{className:`node-status`,children:[e===`succeeded`?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`circle`,{cx:n,cy:r,r:11,fill:`var(--color-success)`}),(0,Y.jsx)(`path`,{d:`M${n-4} ${r} l3 3 l6-7`,fill:`none`,stroke:`var(--color-background-surface)`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`})]}):null,e===`running`?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`circle`,{className:`node-spin`,cx:n,cy:r,r:11,fill:`none`,stroke:`var(--color-border)`,strokeWidth:2}),(0,Y.jsx)(`circle`,{className:`node-spin`,cx:n,cy:r,r:11,fill:`none`,stroke:`var(--color-accent)`,strokeWidth:2.25,strokeLinecap:`round`,strokeDasharray:`18 52`})]}):null,e===`waiting_for_input`||e===`interrupted`?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`circle`,{cx:n,cy:r,r:10,fill:`none`,stroke:`var(--color-warning)`,strokeWidth:2,strokeDasharray:`4 3`}),(0,Y.jsx)(`text`,{x:n,y:r+4,textAnchor:`middle`,fill:`var(--color-warning)`,fontSize:11,fontWeight:700,children:`!`})]}):null,e===`failed`&&!t?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`circle`,{cx:n,cy:r,r:11,fill:`var(--color-error)`}),(0,Y.jsx)(`text`,{x:n,y:r+4,textAnchor:`middle`,fill:`var(--color-background-surface)`,fontSize:12,fontWeight:700,children:`!`})]}):null,t?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`circle`,{cx:n,cy:r,r:11,fill:`var(--color-error)`}),(0,Y.jsx)(`rect`,{x:n-5,y:r-1.5,width:10,height:3,rx:1,fill:`var(--color-background-surface)`})]}):null,e===`pending`||e===`skipped`?(0,Y.jsx)(`circle`,{cx:n,cy:r,r:10,fill:`none`,stroke:`var(--color-text-disabled)`,strokeWidth:1.5}):null,i?(0,Y.jsx)(TS,{kind:`resume`,cx:n,cy:m,busy:s,label:c,onActivate:d}):null,a?(0,Y.jsx)(TS,{kind:`retry`,cx:n,cy:h,busy:s,label:l,onActivate:f}):null,o?(0,Y.jsx)(TS,{kind:`abandon`,cx:n,cy:m,busy:s,label:u,onActivate:p}):null]})}var DS=64;function OS(e){return e.scrollHeight-e.scrollTop-e.clientHeight<DS}function kS({stageName:e,status:t,trailing:n,children:r,composer:i,autoScroll:a,scrollKey:o}){let s=(0,J.useRef)(null),c=(0,J.useRef)(!0);(0,J.useEffect)(()=>{a&&(c.current=!0)},[a]),(0,J.useEffect)(()=>{if(!a||!c.current)return;let e=s.current;e&&(e.scrollTop=e.scrollHeight)},[a,o]);function l(e){c.current=OS(e.currentTarget)}return(0,Y.jsxs)(`div`,{className:`stream`,style:{height:`100%`},children:[(0,Y.jsxs)(`header`,{className:`stream__head`,children:[(0,Y.jsx)(`h3`,{className:`stream__name`,children:e}),t,n?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`span`,{className:`topbar__spacer`}),(0,Y.jsx)(`div`,{className:`stream__head-trail`,children:n})]}):null]}),(0,Y.jsx)(`div`,{ref:s,className:`stream__body`,onScroll:l,children:(0,Y.jsx)(`div`,{className:`thread`,children:r})}),i]})}function AS(e){switch(e){case`passed`:return`passed`;case`failed`:return`failed`;case`running`:return`running`;case`skipped`:return`skipped`;default:return`pending`}}function jS(e){let t=e.checks.length===1?`check`:`checks`;return`Attempt ${e.attempt} · ${e.status} · verification ${e.verification_outcome.replace(`_`,` `)} · ${e.checks.length} ${t}`}function MS({check:e}){let t=e.evidence===void 0?void 0:JSON.stringify(e.evidence,null,2);return(0,Y.jsxs)(`div`,{className:`verification-check`,children:[(0,Y.jsxs)(`div`,{className:`verification-check__summary`,children:[(0,Y.jsxs)(`span`,{className:`status status--${e.status===`passed`?`succeeded`:e.status===`failed`?`failed`:`running`}`,children:[(0,Y.jsx)(`span`,{className:`dot dot--${e.status===`passed`?`succeeded`:e.status===`failed`?`failed`:`running`}`}),` `,AS(e.status)]}),(0,Y.jsx)(`code`,{children:e.check_id}),(0,Y.jsx)(`span`,{className:`muted`,children:e.check_type})]}),t===void 0?null:(0,Y.jsx)($p,{code:t,language:`json`,title:`Evidence`,size:`sm`,width:`100%`,maxHeight:260,container:`section`,isCollapsible:!0})]})}function NS({history:e,error:t,recovering:n=!1,onRecover:r,onStop:i}){let[a,o]=(0,J.useState)(``);return t?(0,Y.jsxs)(`div`,{className:`banner banner--warning`,children:[`Verification evidence unavailable: `,t]}):e===null||e.attempts.every(e=>e.checks.length===0)?null:(0,Y.jsxs)(`section`,{className:`verification-history`,"aria-label":`Verification history`,children:[(0,Y.jsxs)(`div`,{className:`verification-history__head`,children:[(0,Y.jsx)(`strong`,{children:`Verification`}),(0,Y.jsxs)(`span`,{className:`muted`,children:[e.attempts.length,` attempts`]})]}),e.attempts.map(t=>(0,Y.jsx)(dm,{trigger:(0,Y.jsx)(`span`,{className:`verification-history__attempt`,children:jS(t)}),defaultIsOpen:t.attempt===e.attempts.length,children:(0,Y.jsx)(`div`,{className:`verification-history__checks`,children:t.checks.length>0?t.checks.map(e=>(0,Y.jsx)(MS,{check:e},e.check_id)):(0,Y.jsx)(`p`,{className:`muted`,children:`No completion checks ran in this attempt.`})})},t.attempt)),e.manual_recovery?.status===`available`?(0,Y.jsxs)(`section`,{className:`manual-recovery`,"aria-label":`Manual recovery`,children:[(0,Y.jsx)(`strong`,{children:`Manual recovery required`}),(0,Y.jsx)(`p`,{className:`muted`,children:`This stage remains failed until an operator explicitly retries it or stops recovery.`}),(0,Y.jsx)(`label`,{className:`manual-recovery__label`,htmlFor:`manual-recovery-guidance`,children:`Guidance for the retry (optional)`}),(0,Y.jsx)(`textarea`,{id:`manual-recovery-guidance`,className:`manual-recovery__guidance`,value:a,maxLength:4e3,onChange:e=>o(e.target.value),placeholder:`Tell the agent what to address before it retries.`,disabled:n}),(0,Y.jsxs)(`div`,{className:`manual-recovery__actions`,children:[(0,Y.jsx)(`button`,{type:`button`,className:`btn btn--primary`,disabled:n||r===void 0,onClick:()=>r?.(a),children:n?`Starting recovery…`:`Retry with guidance`}),(0,Y.jsx)(`button`,{type:`button`,className:`btn btn--sm btn--reject`,disabled:n||i===void 0,onClick:()=>i?.(),children:`Stop recovery`})]})]}):null,e.manual_recovery?.status===`stopped`?(0,Y.jsx)(`p`,{className:`muted`,children:`Manual recovery was stopped by an operator.`}):null]})}var PS=`Cancel this run? Enter a short reason (required):`,FS=`Cancelled from operator console`;function IS(e){return e===`created`||e===`queued`||e===`running`}function LS(e){return e===`succeeded`||e===`failed`||e===`cancelled`||e===`created`||e===`queued`||e===`running`}function RS(e){return e===`created`||e===`queued`||e===`running`}function zS(e,t=window.prompt.bind(window)){return t(`Type the run id to permanently delete it:\n${e}`)===e}function BS(e){let t={cancelling:!1,error:null},n=!1,r=new Set,i=()=>t,a=()=>{for(let e of r)e()};return{getState:i,cancel:async()=>{if(n)return;let r=e.promptReason?e.promptReason():window.prompt(PS,FS);if(r===null)return;let i=r.trim();if(i!==``){n=!0,t={cancelling:!0,error:null},a();try{await e.cancel(i),await e.onSuccess()}catch(e){t={...t,error:e instanceof Error?e.message:String(e)}}finally{n=!1,t={...t,cancelling:!1},a()}}},clearError:()=>{t.error!==null&&(t={...t,error:null},a())},subscribe:e=>(r.add(e),()=>{r.delete(e)})}}function VS(e){let t={deleting:!1,error:null},n=!1,r=new Set,i=()=>t,a=()=>{for(let e of r)e()};return{getState:i,deleteRun:async r=>{if(!n&&(e.confirmTyped?.(r)??zS(r))){n=!0,t={deleting:!0,error:null},a();try{await e.deleteRun(e.isActive),await e.onSuccess()}catch(e){t={...t,error:e instanceof Error?e.message:String(e)}}finally{n=!1,t={...t,deleting:!1},a()}}},clearError:()=>{t.error!==null&&(t={...t,error:null},a())},subscribe:e=>(r.add(e),()=>{r.delete(e)})}}function HS(e,t){let n=(0,J.useRef)(e);n.current=e;let r=(0,J.useRef)(t);r.current=t;let i=(0,J.useRef)(null);i.current===null&&(i.current=BS({cancel:async e=>{await Na(n.current,e)},onSuccess:()=>r.current()}));let a=i.current,[o,s]=(0,J.useState)(()=>a.getState());(0,J.useEffect)(()=>a.subscribe(()=>s(a.getState())),[a]);let c=(0,J.useCallback)(()=>void a.cancel(),[a]),l=(0,J.useCallback)(()=>a.clearError(),[a]);return{cancelling:o.cancelling,error:o.error,cancel:c,clearError:l}}function US(e,t,n){let r=(0,J.useRef)(e);r.current=e;let i=(0,J.useRef)(n);i.current=n;let a=t!==void 0&&RS(t),o=(0,J.useRef)(a);o.current=a;let s=(0,J.useRef)(null);s.current===null&&(s.current=VS({deleteRun:async e=>{await Pa(r.current,{force:e})},onSuccess:()=>i.current(),get isActive(){return o.current}}));let c=s.current,[l,u]=(0,J.useState)(()=>c.getState());(0,J.useEffect)(()=>c.subscribe(()=>u(c.getState())),[c]);let d=(0,J.useCallback)(()=>void c.deleteRun(r.current),[c]),f=(0,J.useCallback)(()=>c.clearError(),[c]);return{deleting:l.deleting,error:l.error,deleteRun:d,clearError:f}}function WS(e,t){return e.length===0?`waits on upstream`:`waits on ${e.map(t).join(`, `)}`}function GS(e){let{readiness:t,blocked_by:n,status:r,blockersLabel:i}=e;if(t===`blocked`)return n?.length&&i?WS(n,i):n?.length?`Blocked on ${n.join(`, `)}`:`Blocked`;if(t===`skipped`)return`Skipped`;if(t===`ready`)return`Ready`;if((t!==`waiting`||r!==`waiting_for_input`)&&(t!==`interrupted`||r!==`interrupted`)){if(t===`interrupted`)return Ns(`interrupted`);if(t===`succeeded`)return Ns(`succeeded`);if(t===`failed`)return Ns(`failed`);if(t===`running`)return Ns(`running`)}}var KS=`stageflow:envelope:`;function qS(e){return`${KS}${e}`}function JS(e){if(!e.startsWith(KS))return null;let t=e.slice(19);return t.length>0?t:null}function YS(e,t){return`${e}->${t}`}var XS={deferred:3,replay:2,policy:1},ZS=new Set([`scheduled`,`active`,`waiting_for_human`]);function QS(e,t,n){let r=new Map,i=e=>{let t=YS(e.from,e.to),n=r.get(t);(!n||XS[e.kind]>XS[n.kind])&&r.set(t,e)};for(let e of n?.nodes??[]){let t=e.feedback_loop?.target;t&&i({from:e.stage_id,to:t,kind:`policy`})}e?.deferred_send_back?.target&&i({from:e.source_stage_id,to:e.deferred_send_back.target,kind:`deferred`});let a=!!e?.deferred_send_back?.target,o=e=>{for(let n of t??[])for(let{replay:t}of n.replays)t.status!==`superseded`&&t.status!==`failed`&&e(t.status)&&i({from:t.source_stage_id,to:t.target_stage_id,kind:`replay`})};return o(e=>ZS.has(e)),![...r.values()].some(e=>e.kind===`replay`)&&!a&&o(e=>e===`completed`),e&&i({from:e.source_stage_id,to:e.policy.target,kind:`policy`}),[...r.values()]}function $S(e){let t=new Set;for(let n of e??[]){for(let e of n.fork_generations)if(e.status===`superseded`)for(let n of e.clone_stage_ids)t.add(n);for(let{stage_passes:e,fork_generations:r}of n.replays){for(let n of e)n.status===`superseded`&&t.add(n.stage_id);for(let e of r)if(e.status===`superseded`)for(let n of e.clone_stage_ids)t.add(n)}}return t}function eC(e,t){for(let n of t)if(n.status===`superseded`)for(let t of n.clone_stage_ids)e.add(t)}function tC(e){let t=new Set;for(let n of e??[]){eC(t,n.fork_generations);for(let e of n.replays)eC(t,e.fork_generations)}return t}function nC(e,t){return e.filter(e=>!t.has(e))}function rC(e,t){return t.size===0?e:{nodes:e.nodes.filter(e=>!t.has(e.stage_id)),edges:e.edges.filter(e=>!t.has(e.from)&&!t.has(e.to))}}function iC(e){let t=e.active_feedback_loop;if(!(e.waiting_kind!==`feedback_loop_decision`||!t||t.state!==`waiting_for_human`))return{loopId:t.loop_id,sourceStageId:t.source_stage_id,deferredTarget:t.deferred_send_back?.target,replayNumber:t.current_replay_number,maxReplays:t.policy.max_replays,summary:e.waiting_summary}}function aC(e,t){return e.stages.some(e=>e.stage_id===t)}function oC(e,t,n){return aC(e,t)||e.pipeline_track?.nodes?.some(e=>e.stage_id===t)?!0:!!n?.includes(t)}function sC(e){return new Map(e.stages.map(e=>[e.stage_id,e]))}function cC(e){let t=e.pipeline_track;return t?.nodes?.length?eS(t.nodes).map(e=>e.stage_id):e.stages.map(e=>e.stage_id)}function lC(e){let t=e.waiting_stage_id;if(!t)return null;let n=e.stages.find(e=>e.stage_id===t)?.pending_prompt?.id;return n?`${t}:${n}`:e.waiting_prompt_id?e.waiting_prompt_id:aC(e,t)?`${t}:`:null}function uC(e,t){if(t.userPicked&&t.previousStageId&&aC(e,t.previousStageId))return t.previousStageId;let n=lC(e),r=!!(n&&n!==t.dismissedWaitKey);if(r&&e.waiting_stage_id&&aC(e,e.waiting_stage_id))return e.waiting_stage_id;if(t.dismissedWaitKey&&n&&n===t.dismissedWaitKey)return null;let i=cC(e),a=sC(e);if(r){for(let e of i)if(a.get(e)?.status===`waiting_for_input`)return e}for(let e of i)if(a.get(e)?.status===`failed`)return e;for(let e of i)if(a.get(e)?.status===`running`)return e;return t.previousStageId&&aC(e,t.previousStageId)?t.previousStageId:i[i.length-1]??e.stages[e.stages.length-1]?.stage_id??null}function dC(e,t){return e.artifacts.includes(t)?!0:!!e.envelope?.artifacts.includes(t)}function fC(e,t){let n=sC(e);for(let r of cC(e)){let e=n.get(r);if(e&&dC(e,t))return r}return null}function pC(e,t,n){return t===void 0||t===``?e:e===t?t:n===void 0?e:`${t} · ${n}`}function mC(e,t,n){if(n===void 0)return;let r=eS(e).filter(e=>(e.definition_id??e.stage_id)===n).findIndex(e=>e.stage_id===t);if(!(r<0))return r+1}function hC(e,t){return pC(t.stage_id,t.definition_id,mC(e,t.stage_id,t.definition_id))}function gC(e,t){let n=e.pipeline_track?.nodes??[],r=n.find(e=>e.stage_id===t);return r?hC(n,r):pC(t)}function _C(e,t,n){let r=Fs(e.status);return{id:e.stage_id,label:n??e.stage_id,status:r,selected:e.stage_id===t,meta:r===`waiting`?Ns(e.status):e.last_at,envelope:e.envelope?{summary:e.envelope.summary,artifactCount:e.envelope.artifacts.length}:null}}function vC(e,t,n){return{id:e,label:n??e,status:`pending`,selected:e===t,meta:`pending`,envelope:null}}function yC(e,t,n,r){let i=hC(r,e);return t?_C(t,n,i):vC(e.stage_id,n,i)}function bC(e,t,n){if(!n||n.length===0)return e.map(e=>_C(e,t));let r=new Map(e.map(e=>[e.stage_id,e])),i=new Set,a=[];for(let e of n){i.add(e);let n=r.get(e);a.push(n?_C(n,t):vC(e,t))}for(let n of e)i.has(n.stage_id)||a.push(_C(n,t));return a}function xC(e,t,n){return e.waiting_stage_ids?.includes(t)?!0:n===`waiting_for_input`}function SC(e){if(e)switch(e.kind){case`free_text`:case`confirm`:return e.message;case`artifact_backed`:return e.message||e.artifacts[0];case`multi_question`:return e.questions.length===1?`1 question`:`${e.questions.length} questions`}}function CC(e,t,n,r,i,a){return eS(t).map(o=>{let s=n.get(o.stage_id),c=s?.status??o.status;return{stageId:o.stage_id,title:hC(t,o),kicker:o.definition_id??o.stage_id,status:c,attemptCount:s?.attempt_count??o.attempt_count??1,readinessLine:GS({readiness:o.readiness,blocked_by:o.blocked_by,status:c,blockersLabel:t=>gC(e,t)}),gateKinds:o.gate_kinds,meta:c===`running`?s?.last_at:void 0,promptSummary:c===`waiting_for_input`?SC(s?.pending_prompt):void 0,isWaitingAttention:xC(e,o.stage_id,c),isFeedbackSource:r.has(o.stage_id)||void 0,isFeedbackTarget:i.has(o.stage_id)||void 0,isSuperseded:a.has(o.stage_id)||void 0}})}function wC(e,t,n,r,i,a){return t.map(t=>{let o=n.get(t.id),s=o?.status??`pending`;return{stageId:t.id,title:t.label,kicker:t.id,status:s,attemptCount:o?.attempt_count??1,meta:s===`running`?o?.last_at:void 0,promptSummary:s===`waiting_for_input`?SC(o?.pending_prompt):void 0,isWaitingAttention:xC(e,t.id,s),isFeedbackSource:r.has(t.id)||void 0,isFeedbackTarget:i.has(t.id)||void 0,isSuperseded:a.has(t.id)||void 0}})}function TC(e,t,n,r,i,a){let o=sC(e),s=rC(e.pipeline_track,a),c=n&&nC(n,a),l=iS(s,{liveStageIds:nC(e.stages.map(e=>e.stage_id),a),plannedStageIds:c}),u=new Set(r.map(e=>e.from)),d=new Set(r.map(e=>e.to));if(!s.nodes.length){let n=bC(e.stages.filter(e=>!a.has(e.stage_id)),t,c);return{spatialLayout:l,nodeChrome:wC(e,n,o,u,d,i),trackStages:n}}let f=s.nodes,p=eS(f).map(e=>yC(e,o.get(e.stage_id),t,f));return{spatialLayout:l,nodeChrome:CC(e,f,o,u,d,i),trackStages:p}}function EC(e,t,n){return e===`stream`?t===`waiting_for_input`&&n?{kind:`reply`,prompt:n}:!t||t===`succeeded`||t===`failed`||t===`interrupted`||t===`pending`||t===`skipped`?{kind:`idle`,label:`Session closed`}:{kind:`none`}:{kind:`none`}}function DC(e){return e===`waiting_for_input`?`alive`:e===`succeeded`||e===`failed`||e===`interrupted`||e===`pending`||e===`skipped`?`closed`:null}function OC(e){let t=[];for(let n of e.stages)for(let r of n.artifacts)t.push({path:r,meta:gC(e,n.stage_id)});return t}function kC(e,t){let n=OC(e);return t?.envelope?[{path:qS(t.stage_id),label:`Handoff envelope`,meta:gC(e,t.stage_id)},...n]:n}function AC(e,t,n){let r=e.pipeline_track;if(r?.nodes?.length)return r.edges.find(e=>e.to===t)?.from;if(n&&n.length>0){let e=n.indexOf(t);if(e>0)return n[e-1]}let i=e.stages.findIndex(e=>e.stage_id===t);if(i>0)return e.stages[i-1]?.stage_id}function jC(e,t,n){let r=e.pipeline_track;if(r?.nodes?.length){let e=r.edges.filter(e=>e.from===t);return e.length===1?e[0]?.to:void 0}if(n&&n.length>0){let e=n.indexOf(t);if(e>=0)return n[e+1]}let i=e.stages.findIndex(e=>e.stage_id===t);if(!(i<0))return e.stages[i+1]?.stage_id}function MC(e){return e?.kind===`artifact_backed`?e:void 0}function NC(e){return e?.status===`waiting_for_input`&&e.pending_prompt?.kind===`artifact_backed`}function PC(e,t){return t.retrying||t.abandoning?!0:e?e.status===`created`||e.status===`running`||e.waiting_stage_id?!0:e.stages.some(e=>e.status===`running`||e.status===`waiting_for_input`):!1}function FC(e,t,n,r){let i=uC(t,n),a=e.kind===`stream`&&e.stageId&&oC(t,e.stageId,r)?e.stageId:i,o=e.kind===`envelope`?e.stageId:e.kind===`artifact`?fC(t,e.path):a,s=t.stages.find(e=>e.stage_id===o)??null,c=t.pipeline_track?.nodes?.length?void 0:r,l=o?AC(t,o,c):void 0,u=l?t.stages.find(e=>e.stage_id===l):void 0,d=NC(s),f=e.kind===`artifact`&&!!n.wasWaitingArtifact&&!d,p;p=e.kind===`envelope`?`envelope`:e.kind===`artifact`&&!f?`artifact`:o?`stream`:`empty`;let m=p===`artifact`&&d,h=m?MC(s?.pending_prompt):void 0,g=iC(t),_=!!g,v=QS(t.active_feedback_loop,t.feedback_loops,t.pipeline_track),y=tC(t.feedback_loops),b=$S(t.feedback_loops),x=e.kind===`envelope`?e.stageId:null,S=x?t.stages.find(e=>e.stage_id===x)??null:null,C=e.kind===`envelope`?{fromStageId:e.stageId,toStageId:jC(t,e.stageId,c),envelope:S?.envelope??null}:null,w=(n.drawerStageId?t.stages.find(e=>e.stage_id===n.drawerStageId)??null:null)?.envelope??null,T=p!==`envelope`&&n.drawerStageId&&w?{fromStageId:n.drawerStageId,toStageId:jC(t,n.drawerStageId,c),envelope:w}:null,{spatialLayout:E,nodeChrome:D,trackStages:O}=TC(t,o,r,v,b,y);return{selectedStageId:o,selectedStage:s,kind:p,composer:EC(p,s?.status,s?.pending_prompt),showDecide:m,decidePrompt:h,showFeedbackDecide:_,feedbackDecide:g,feedbackOverlays:v,artifactReadOnly:!m,selectedPath:p===`artifact`&&e.kind===`artifact`?e.path:p===`envelope`&&e.kind===`envelope`?qS(e.stageId):void 0,trackStages:O,spatialLayout:E,nodeChrome:D,artifactFiles:kC(t,s),sessionChip:DC(s?.status),inboundEnvelope:u?.envelope??null,inboundFromStageId:u?.stage_id,inboundToStageId:s?.stage_id,outboundEnvelope:s?.envelope??null,outboundToStageId:o?jC(t,o,c):void 0,drawer:T,envelope:C,liveStream:s?.status===`running`||s?.status===`waiting_for_input`,activeEnvelopeId:e.kind===`envelope`?e.stageId:n.drawerStageId,waitingArtifact:d,syncStreamRoute:f}}function IC(e){return e.syncStreamRoute?{action:`openStream`,stageId:e.selectedStageId??void 0}:e.view.kind!==`stream`||!e.run?{action:`none`}:e.streamViewStageId&&!oC(e.run,e.streamViewStageId,e.plannedStageIds)?{action:`openStream`}:e.userPickedStageId||e.dismissedWaitKey||!e.selectedStageId||e.streamViewStageId===e.selectedStageId?{action:`none`}:{action:`openStream`,stageId:e.selectedStageId}}function LC(e){if(!e)return null;switch(e.kind){case`confirm`:return`confirm gate`;case`free_text`:return`free text gate`;case`multi_question`:return`multi-question gate`;case`artifact_backed`:return`artifact gate`}}function RC(e){return!(!e.waiting_stage_id||e.waiting_kind===`feedback_loop_decision`)}function zC(e){return RC(e)}var BC=new Set([`tool_start`,`tool_end`,`tool_progress`]);function VC(e,t){return t===`all`?!0:t===`tool`?BC.has(e.event):t===`message`?e.event===`message`:t!==`operator_prompt`||e.event===`operator_prompt`||e.event===`operator_answer`||e.event===`waiting_for_input`}function HC(e,t){return e.filter(e=>VC(e,t))}function UC(e){if(!e)return`—`;let t=new Date(e);return Number.isNaN(t.getTime())?`—`:t.toISOString().slice(11,19)}function WC(e){return mx(e)||(e.text?e.text:e.event)}function GC(e){for(let t of e.events)if(t.event===`started`&&t.at)return t.at;return e.events[0]?.at}function KC({tab:e,onTabChange:t,stage:n,stageLabel:r,eventCount:i,artifactCount:a}){let o=UC(GC(n)),s=`attempt ${n.attempt_count} · ${o}`,c=[{id:`transcript`,label:`Transcript`,prefix:r},{id:`events`,label:`Events`,count:String(i)},{id:`envelope`,label:`Envelope`},{id:`artifacts`,label:`Artifacts`,count:`(${a})`}];return(0,Y.jsxs)(`div`,{className:`flex h-10 shrink-0 items-end justify-between gap-4 border-b border-b-[#ffffff12] px-6`,children:[(0,Y.jsx)(`div`,{className:`flex items-end gap-5`,children:c.map(n=>{let r=e===n.id;return(0,Y.jsxs)(`button`,{type:`button`,className:`flex items-center gap-1.5 border-b-2 pb-2 text-[13px] ${r?`border-b-[#ecedee] font-medium text-[var(--sf-text-1)]`:`border-b-transparent text-[#a7aab2]`}`,onClick:()=>t(n.id),children:[n.id===`transcript`&&n.prefix?(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace] text-[11px] text-[var(--sf-needs)]`,children:n.prefix}):null,n.label,n.count?(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace] text-[11px] text-[var(--sf-text-3)]`,children:n.count}):null]},n.id)})}),(0,Y.jsx)(`span`,{className:`pb-2 font-['Geist_Mono',monospace] text-xs text-[var(--sf-text-3)]`,children:s})]})}function qC(e){return e.split(`/`).pop()??e}function JC(e,t){return`/api/runs/${encodeURIComponent(e)}/artifact?path=${encodeURIComponent(t)}`}async function YC(e,t){try{let n=await fetch(JC(e,t),{method:`HEAD`,headers:{...Ti()}});if(n.ok){let e=n.headers.get(`content-length`);if(e)return Number.parseInt(e,10)}let r=await fetch(JC(e,t),{headers:{...Ti()}});if(!r.ok)return null;if(Fb(t))return(await r.blob()).size;let i=await r.text();return new TextEncoder().encode(i).length}catch{return null}}function XC(e,t){let[n,r]=(0,J.useState)({});return(0,J.useEffect)(()=>{let n=!1;r({});for(let i of t)YC(e,i).then(e=>{n||r(t=>({...t,[i]:e}))});return()=>{n=!0}},[e,t.join(`|`)]),n}function ZC({runId:e,run:t,stage:n,initialPath:r,readOnly:i}){let a=n.artifacts??[],o=XC(e,a),[s,c]=(0,J.useState)(()=>r??a[0]??null);(0,J.useEffect)(()=>{if(r&&a.includes(r)){c(r);return}s&&a.includes(s)||c(a[0]??null)},[n.stage_id,a.join(`|`),r,s]);let l=gC(t,n.stage_id);return a.length===0?(0,Y.jsxs)(`p`,{className:`px-6 py-4 text-[13px] text-[var(--sf-text-2)]`,children:[`No artifacts for `,l,`.`]}):(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1 bg-[var(--sf-ground)]`,children:[(0,Y.jsxs)(`div`,{className:`flex w-[280px] shrink-0 flex-col border-r border-r-[#ffffff12] py-2`,children:[(0,Y.jsxs)(`h3`,{className:`px-3 pb-2 text-[11px] uppercase tracking-[0.88px] text-[#8b8f98]`,children:[`Artifacts · `,l]}),(0,Y.jsx)(`ul`,{className:`min-h-0 flex-1 overflow-y-auto`,children:a.map(e=>{let t=s===e,n=o[e];return(0,Y.jsx)(`li`,{children:(0,Y.jsxs)(`button`,{type:`button`,className:`flex w-full flex-col items-start gap-0.5 px-3 py-2 text-left ${t?`border-l-2 border-l-[#6ca6ff] bg-[#16171b] text-[var(--sf-text-1)]`:`border-l-2 border-l-transparent text-[var(--sf-text-2)] hover:bg-[#ffffff08]`}`,onClick:()=>c(e),children:[(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace] text-xs leading-[1.33]`,children:qC(e)}),(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace] text-[11px] text-[#8b8f98]`,children:n==null?`…`:Rb(n)})]})},e)})})]}),(0,Y.jsx)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col`,children:s?(0,Y.jsx)(Bb,{variant:`redesign`,runId:e,path:s,readOnly:i}):(0,Y.jsx)(`p`,{className:`px-4 py-3 text-[13px] text-[var(--sf-text-3)]`,children:`Select an artifact.`})})]})}function QC(e,t,n,r,i){if(e.kind===`free_text`)return pm(n)?{type:`free_text`,text:n}:null;if(e.kind===`multi_question`)return!t||t.kind!==`multi_question`||!mm(t.questions,r)?null:{type:`multi`,draft:r};if(hm(e)){let e=i?.trim();return e?{type:`decision`,decision:`accept`,note:e}:{type:`decision`,decision:`accept`}}return null}function $C(e,t){if(!hm(e))return null;let n=t.trim();return n?{type:`decision`,decision:`reject`,note:n}:null}function ew({run:e,stageId:t,pendingPrompt:n,showOpenRunOnly:r,onOpenRun:i,onAnswered:a,note:o,rationale:s,onRegisterActions:c,presentation:l=`default`}){let u=n&&!r?{promptId:n.id,kind:n.kind}:null,{locked:d,error:f,submitIntent:p}=km(e.run_id,t,u),[m,h]=(0,J.useState)(``),[g,_]=(0,J.useState)(()=>n?.kind===`multi_question`?fm(n.questions):fm([])),[v,y]=(0,J.useState)(null);(0,J.useEffect)(()=>{h(``),_(n?.kind===`multi_question`?fm(n.questions):fm([]))},[n?.id,n?.kind]),(0,J.useEffect)(()=>{if(n?.kind!==`artifact_backed`){y(null);return}let t=n.artifacts[0]??e.waiting_artifacts?.[0];if(!t){y(null);return}let r=!1;return Qa(e.run_id,t).then(e=>{r||y(e.slice(0,1200))}).catch(()=>{r||y(null)}),()=>{r=!0}},[e.run_id,n,e.waiting_artifacts]);let b=u?hm(u):!1,x=(0,J.useCallback)(async()=>{if(!u||!n)return;let e=QC(u,n,m,g,o);e&&await p(e,n.kind===`multi_question`?n:void 0)&&a?.()},[u,n,m,g,o,p,a]),S=(0,J.useCallback)(async()=>{if(!u)return;let e=$C(u,o);e&&await p(e)&&a?.()},[u,o,p,a]);(0,J.useEffect)(()=>{if(c){if(r||!u){c(null);return}c({accept:x,reject:S,locked:d,canReject:b})}},[c,r,u,x,S,d,b]);let C=l===`run-detail-inline`,w=C?`bg-[#1a1c21]`:`bg-[var(--sf-panel)]`,T=C?`w-full resize-none rounded-lg border border-[#ffffff1a] bg-[#1a1c21] px-2.5 py-2 text-[13px] text-[#ecedee] outline-none placeholder:text-[#8b8f98]`:`w-full max-w-[680px] rounded-lg border border-[#ffffff1a] bg-[var(--sf-panel)] px-3 py-2 text-[13px] text-[var(--sf-text-1)] outline-none`;if(r)return(0,Y.jsxs)(`div`,{className:`flex max-w-[680px] flex-col gap-3`,children:[(0,Y.jsx)(`p`,{className:`text-sm text-[var(--sf-text-2)]`,children:`This gate needs a decision on the run stream.`}),(0,Y.jsx)(`button`,{type:`button`,className:`flex h-8 w-fit items-center rounded-lg bg-[var(--sf-text-1)] px-3 text-[13px] font-medium text-[var(--sf-ground)]`,onClick:i,children:`Open run to decide`})]});if(!n)return(0,Y.jsx)(`p`,{className:`text-sm text-[var(--sf-text-3)]`,children:`Loading gate details…`});let E=n.kind===`multi_question`?e.waiting_summary??`Answer each question`:n.message,D=[t,n.kind.replace(/_/g,` `)].filter(Boolean).join(` · `);return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2.5${C?``:` max-w-[680px]`}`,children:[C?null:(0,Y.jsx)(`div`,{className:`text-xs font-medium uppercase tracking-[0.96px] text-[var(--sf-needs)]`,children:D}),(0,Y.jsx)(`div`,{className:C?`text-[15px] font-medium leading-[1.45] text-[#ecedee]`:`text-xl font-medium leading-[1.4] tracking-[-0.2px] text-[var(--sf-text-1)]`,children:E})]}),f?(0,Y.jsx)(`p`,{className:`max-w-[680px] text-sm text-[var(--sf-fail)]`,children:f}):null,s?(0,Y.jsxs)(`div`,{className:`flex max-w-[680px] flex-col gap-2 border-l-2 border-l-[#ffffff1a] pl-3.5`,children:[(0,Y.jsx)(`div`,{className:`text-xs text-[var(--sf-text-3)]`,children:`Why the agent is asking`}),(0,Y.jsx)(`p`,{className:`text-sm leading-[1.55] text-[var(--sf-text-2)]`,children:s})]}):null,n.kind===`free_text`?(0,Y.jsx)(`textarea`,{className:T,value:m,onChange:e=>h(e.target.value),rows:C?3:5,disabled:d,placeholder:`Your answer`}):null,n.kind===`multi_question`?(0,Y.jsx)(`div`,{className:`flex max-w-[680px] flex-col gap-4`,children:n.questions.map(e=>e.kind===`free_text`?(0,Y.jsxs)(`label`,{className:`flex flex-col gap-2 text-sm text-[var(--sf-text-2)]`,children:[(0,Y.jsx)(`span`,{children:e.message}),(0,Y.jsx)(`textarea`,{className:T,value:g.freeText[e.id]??``,onChange:t=>_(n=>({...n,freeText:{...n.freeText,[e.id]:t.target.value}})),rows:3,disabled:d})]},e.id):(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Y.jsx)(`p`,{className:`text-sm text-[var(--sf-text-2)]`,children:e.message}),(0,Y.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Y.jsx)(`button`,{type:`button`,className:`rounded-lg border px-3 py-1.5 text-[13px]${g.confirm[e.id]?.decision===`accept`?` border-[#ffffff2e] bg-[var(--sf-raised)]`:` border-[#ffffff1a] bg-transparent`}`,disabled:d,"aria-pressed":g.confirm[e.id]?.decision===`accept`,onClick:()=>_(t=>({...t,confirm:{...t.confirm,[e.id]:{decision:`accept`,text:t.confirm[e.id]?.text??``}}})),children:`Accept`}),(0,Y.jsx)(`button`,{type:`button`,className:`rounded-lg border px-3 py-1.5 text-[13px]${g.confirm[e.id]?.decision===`reject`?` border-[#ffffff2e] bg-[var(--sf-raised)]`:` border-[#ffffff1a] bg-transparent`}`,disabled:d,"aria-pressed":g.confirm[e.id]?.decision===`reject`,onClick:()=>_(t=>({...t,confirm:{...t.confirm,[e.id]:{decision:`reject`,text:t.confirm[e.id]?.text??``}}})),children:`Reject`})]})]},e.id))}):null,n.kind===`artifact_backed`?(0,Y.jsxs)(`div`,{className:`flex max-w-[680px] flex-col gap-2.5`,children:[(0,Y.jsx)(`div`,{className:`text-xs font-medium uppercase tracking-[0.96px] text-[var(--sf-text-3)]`,children:`Evidence`}),(0,Y.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:n.artifacts.map(e=>(0,Y.jsx)(`span`,{className:`rounded-md border border-[#ffffff12] ${w} px-2 py-0.5 font-['Geist_Mono',monospace] text-[11px] text-[var(--sf-text-2)]`,children:e},e))}),v?(0,Y.jsx)(`pre`,{className:`max-h-[200px] overflow-auto whitespace-pre-wrap rounded-[10px] border border-[#ffffff12] ${w} p-3 font-['Geist_Mono',monospace] text-[11px] text-[var(--sf-text-2)]`,children:v}):null]}):null]})}function tw({note:e,onNoteChange:t,noteRef:n,onAccept:r,onReject:i,disabled:a,showActions:o=!0,canReject:s=!1,layout:c=`inbox-footer`,acceptLabel:l=`Accept`,onOpenArtifact:u}){let d=c===`run-detail-inline`,f=(0,Y.jsxs)(`label`,{className:d?`flex h-11 flex-col rounded-lg border border-[#ffffff1a] bg-[#1a1c21] px-2.5 py-2`:`flex h-10 items-center gap-2.5 rounded-lg border border-[#ffffff1a] bg-[var(--sf-panel)] px-3`,children:[(0,Y.jsx)(`textarea`,{ref:n,className:`min-h-0 flex-1 resize-none border-0 bg-transparent text-[13px] text-[var(--sf-text-1)] outline-none placeholder:text-[#8b8f98]`,value:e,onChange:e=>t(e.target.value),rows:d?2:1,placeholder:d?`Add a note for the agent (optional)`:`Add a note for the agent (optional; required to reject)…`,disabled:a}),d?null:(0,Y.jsx)(Nl,{children:`N`})]}),p=o?(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsxs)(`button`,{type:`button`,className:d?`flex h-8 shrink-0 items-center gap-2 rounded-lg bg-[#f5b544] px-3 text-[13px] font-semibold text-[#1a1306] shadow-[0px_0px_10px_rgba(245,181,68,0.45)] disabled:opacity-50`:`flex h-[34px] shrink-0 items-center gap-2 rounded-lg bg-[var(--sf-needs)] px-3.5 text-[13px] font-medium text-[#1a1306] shadow-[0px_0px_16px_rgba(245,181,68,0.25)] disabled:opacity-50`,disabled:a,onClick:r,children:[d?(0,Y.jsx)(G,{className:`size-3.5 shrink-0`,"aria-hidden":`true`}):null,l,(0,Y.jsx)(Nl,{className:d?`border-[#1a130640]! bg-[#1a13061a] text-[#1a1306]!`:void 0,children:`1`})]}),s?(0,Y.jsxs)(`button`,{type:`button`,className:d?`flex h-8 shrink-0 items-center gap-2 rounded-lg border border-[#ffffff1a] bg-[#1a1c21] px-3 text-[13px] font-medium text-[#ecedee] disabled:opacity-50`:`flex h-[34px] shrink-0 items-center gap-2 rounded-lg border border-[#ffffff1a] bg-[var(--sf-raised)] px-3.5 text-[13px] text-[var(--sf-text-1)] disabled:opacity-50`,disabled:a,onClick:i,children:[d?(0,Y.jsx)(St,{className:`size-3.5 shrink-0`,"aria-hidden":`true`}):null,d?`Reject with note`:`Send back with note`,(0,Y.jsx)(Nl,{children:`3`})]}):null,d&&u?(0,Y.jsxs)(`button`,{type:`button`,className:`flex h-8 shrink-0 items-center gap-2 rounded-lg px-3 text-[13px] text-[#a7aab2] hover:bg-[#ffffff0a] hover:text-[#ecedee]`,onClick:u,children:[(0,Y.jsx)(ce,{className:`size-3.5 shrink-0`,"aria-hidden":`true`}),`Open artifact`]}):null,d?(0,Y.jsx)(`span`,{className:`ml-auto font-['Geist_Mono',monospace] text-[11px] text-[#8b8f98]`,children:`⌘↵ send note`}):(0,Y.jsx)(`div`,{className:`ml-auto hidden min-w-0 flex-1 text-right text-xs leading-[1.4] text-[var(--sf-text-3)] sm:block`})]}):null;return d?(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2.5`,children:[f,p]}):(0,Y.jsxs)(`footer`,{className:`flex shrink-0 flex-col gap-3 border-t border-t-[#ffffff0f] bg-[#0e0f11] px-8 py-[18px]`,children:[f,p,(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3 text-xs text-[var(--sf-text-3)]`,children:[(0,Y.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,Y.jsx)(Nl,{children:`J`}),(0,Y.jsx)(Nl,{children:`K`}),`move`]}),(0,Y.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,Y.jsx)(Nl,{children:`N`}),`note`]}),(0,Y.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,Y.jsx)(Nl,{children:`O`}),`open run`]})]})]})}function nw(e){for(let t=e.events.length-1;t>=0;--t){let n=e.events[t];if((n.event===`waiting_for_input`||n.event===`operator_prompt`)&&n.at)return Cs(n.at)}}function rw({run:e,stage:t,health:n,onAnswered:r,onOpenArtifact:i}){let a=(0,J.useRef)(null),[o,s]=(0,J.useState)(``),[c,l]=(0,J.useState)(null),u=t.pending_prompt??null,d=t.status===`waiting_for_input`&&u&&e.waiting_kind!==`feedback_loop_decision`,f=n?.activeRunIds?.includes(e.run_id)??!1,p=gC(e,t.stage_id),m=nw(t),h=u?.kind?.replace(/_/g,` `)??`gate`,g=(u?.kind===`artifact_backed`?u.artifacts[0]:void 0)??e.waiting_artifacts?.[0],_=u?.kind,v=_===`free_text`||_===`multi_question`?`Send answer`:`Accept`;return(0,J.useEffect)(()=>{s(``),l(null)},[t.stage_id,u?.id]),Yc([{key:`1`,scope:`run-detail-gate`,when:()=>!!(d&&c&&!c.locked),handler:e=>{e.preventDefault(),c?.accept()}},{key:`3`,scope:`run-detail-gate`,when:()=>!!(d&&c&&!c.locked&&c.canReject),handler:e=>{e.preventDefault(),c?.reject()}},{key:`n`,scope:`run-detail-gate`,when:()=>!!d,handler:e=>{e.preventDefault(),a.current?.focus()}}],`run-detail-gate`),d?(0,Y.jsxs)(`section`,{className:`flex flex-col rounded-xl border border-[#f5b54473] bg-[#f5b5440a] shadow-[0px_0px_0px_1px_rgba(245,181,68,0.08),0px_0px_24px_rgba(245,181,68,0.14)]`,children:[(0,Y.jsxs)(`header`,{className:`flex h-9 shrink-0 items-center gap-2 border-b border-b-[#f5b5442e] px-3.5`,children:[(0,Y.jsx)(Ze,{className:`size-3.5 shrink-0 text-[#f5b544]`,"aria-hidden":`true`}),(0,Y.jsxs)(`h3`,{className:`text-[13px] font-medium text-[#f5b544]`,children:[p.trim().toLowerCase(),` is asking you`]}),(0,Y.jsx)(`span`,{className:`text-xs text-[#8b8f98]`,"aria-hidden":`true`,children:`·`}),(0,Y.jsx)(`span`,{className:`rounded-sm border border-[#ffffff1a] bg-[#1a1c21] px-1.5 py-0 font-['Geist_Mono',monospace] text-[11px] text-[#a7aab2]`,children:h}),m?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`span`,{className:`text-xs text-[#8b8f98]`,"aria-hidden":`true`,children:`·`}),(0,Y.jsx)(`span`,{className:`flex-1 font-['Geist_Mono',monospace] text-xs text-[#a7aab2]`,children:m})]}):(0,Y.jsx)(`span`,{className:`flex-1`}),f?(0,Y.jsx)(`span`,{className:`text-xs text-[#8b8f98]`,children:`holding 1 agent slot`}):null]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2.5 p-3.5`,children:[(0,Y.jsx)(ew,{run:e,stageId:t.stage_id,pendingPrompt:u,note:o,onAnswered:r,onRegisterActions:l,presentation:`run-detail-inline`}),(0,Y.jsx)(tw,{layout:`run-detail-inline`,note:o,onNoteChange:s,noteRef:a,onAccept:()=>void c?.accept(),onReject:()=>void c?.reject(),disabled:c?.locked,canReject:c?.canReject??!1,acceptLabel:v,onOpenArtifact:g&&i?()=>i(g):void 0})]})]}):null}function iw(e,t){return t?`Incoming · from ${gC(e,t)}`:`Incoming`}function aw(e,t,n){let r=gC(e,t);return n?`No handoff from ${gC(e,n)} for ${r} yet.`:`No incoming handoff — ${r} is the first stage in this run.`}function ow(e,t){return t?`Outgoing · to ${gC(e,t)}`:`Outgoing`}function sw(e,t,n){let r=gC(e,t);return n?`No handoff from ${r} to ${gC(e,n)} yet.`:`No outgoing handoff from ${r} yet.`}function cw(e){let t=e.toLowerCase();return t===`success`||t===`succeeded`?`border-[#4cc38a4d] bg-[#4cc38a1a] text-[var(--sf-ok)]`:t===`failed`||t===`failure`?`border-[#f2645a4d] bg-[#f2645a1a] text-[var(--sf-fail)]`:`border-[#ffffff1a] bg-[var(--sf-raised)] text-[var(--sf-text-2)]`}function lw({title:e,envelope:t,emptyMessage:n,onArtifactClick:r}){return t?(0,Y.jsxs)(`section`,{className:`flex flex-col gap-3`,children:[(0,Y.jsxs)(`header`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,Y.jsx)(`h4`,{className:`text-[15px] font-semibold text-[var(--sf-text-1)]`,children:e}),(0,Y.jsx)(`span`,{className:`rounded-full border px-2 py-0.5 text-xs font-medium ${cw(t.status)}`,children:t.status})]}),(0,Y.jsx)(Xb,{variant:`redesign`,envelope:t,onArtifactClick:r})]}):(0,Y.jsxs)(`section`,{className:`flex flex-col gap-2`,children:[(0,Y.jsx)(`h4`,{className:`text-[11px] font-medium uppercase tracking-[0.88px] text-[var(--sf-text-3)]`,children:e}),(0,Y.jsx)(`p`,{className:`text-[13px] text-[var(--sf-text-3)]`,children:n})]})}function uw({run:e,stage:t,inboundEnvelope:n,inboundFromStageId:r,outboundEnvelope:i,outboundToStageId:a,onArtifactClick:o}){let s=gC(e,t.stage_id),c=iw(e,r),l=aw(e,t.stage_id,r),u=ow(e,a),d=sw(e,t.stage_id,a);return!(n||i)&&!r&&!a?(0,Y.jsxs)(`p`,{className:`px-4 py-3 text-[13px] text-[var(--sf-text-2)]`,children:[`No handoff envelopes for `,s,` yet.`]}):(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-6 overflow-y-auto px-4 py-3`,children:[(0,Y.jsx)(lw,{title:c,envelope:n,emptyMessage:l,onArtifactClick:o}),(0,Y.jsx)(`div`,{className:`h-px shrink-0 bg-[#ffffff12]`,"aria-hidden":`true`}),(0,Y.jsx)(lw,{title:u,envelope:i,emptyMessage:d,onArtifactClick:o})]})}var dw=[{id:`all`,label:`All kinds`},{id:`tool`,label:`tool`},{id:`message`,label:`message`},{id:`operator_prompt`,label:`operator_prompt`}];function fw(e){return e.event===`waiting_for_input`?`bg-[#f5b54414]`:e.event===`operator_prompt`?`bg-[#f5b5440f]`:``}function pw(e){return e.event===`waiting_for_input`||e.event===`operator_prompt`?`text-[#f5b544]`:e.event===`agent_start`?`text-[#6ca6ff]`:e.event===`message`?`text-[#ecedee]`:`text-[var(--sf-text-2)]`}function mw(e){let t=`rounded-md border border-[#ffffff12] px-2 py-1 text-xs leading-[1.33]`;return e?`${t} bg-[#1a1c21] text-[#ecedee]`:`${t} text-[#a7aab2] hover:text-[var(--sf-text-1)]`}function hw({events:e,stageId:t,live:n}){let[r,i]=(0,J.useState)(`all`),[a,o]=(0,J.useState)(!0),s=(0,J.useRef)(null),c=HC(e,r);return(0,J.useEffect)(()=>{if(!a||!n)return;let e=s.current;e&&(e.scrollTop=e.scrollHeight)},[e.length,r,a,n]),(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-2 px-4 py-3`,children:[(0,Y.jsxs)(`div`,{className:`flex shrink-0 flex-wrap items-center justify-between gap-2 pb-1`,children:[(0,Y.jsx)(`div`,{className:`flex flex-wrap items-center gap-2`,children:dw.map(e=>(0,Y.jsx)(`button`,{type:`button`,className:mw(r===e.id),onClick:()=>i(e.id),children:e.label},e.id))}),(0,Y.jsxs)(`label`,{className:`flex items-center gap-2 text-xs text-[#a7aab2]`,children:[`Follow tail`,(0,Y.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":a,className:`relative h-[18px] w-8 rounded-full transition-colors ${a?`bg-[#6ca6ff]`:`bg-[#ffffff1a]`}`,onClick:()=>o(e=>!e),children:(0,Y.jsx)(`span`,{className:`absolute top-0.5 size-3.5 rounded-full bg-[#ecedee] transition-transform ${a?`right-0.5`:`left-0.5`}`})})]})]}),(0,Y.jsxs)(`div`,{ref:s,className:`min-h-0 flex-1 overflow-y-auto`,children:[(0,Y.jsxs)(`div`,{className:`flex h-7 shrink-0 items-center gap-3 border-b border-b-[#ffffff12] px-2 font-['Geist_Mono',monospace] text-[11px] uppercase tracking-[1.28px] text-[#8b8f98]`,role:`row`,children:[(0,Y.jsx)(`span`,{className:`w-[72px] tracking-[0.88px]`,children:`Time`}),(0,Y.jsx)(`span`,{className:`w-[120px] tracking-[0.88px]`,children:`Event`}),(0,Y.jsx)(`span`,{className:`w-20 tracking-[0.88px]`,children:`Stage`}),(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 tracking-[0.88px]`,children:`Details`})]}),(0,Y.jsx)(`div`,{className:`flex flex-col gap-0.5`,children:c.map((e,n)=>{let r=e.event===`waiting_for_input`||e.event===`operator_prompt`,i=fw(e),a=pw(e);return(0,Y.jsxs)(`div`,{className:`flex h-7 items-center gap-3 px-2 font-['Geist_Mono',monospace] text-xs leading-[1.33] ${i}`,role:`row`,children:[(0,Y.jsx)(`span`,{className:`w-[72px] shrink-0 ${r?`text-[#f5b544]`:`text-[#8b8f98]`}`,children:UC(e.at)}),(0,Y.jsx)(`span`,{className:`w-[120px] shrink-0 truncate ${a}`,children:e.event}),(0,Y.jsx)(`span`,{className:`w-20 shrink-0 truncate text-[#ecedee]`,children:t}),(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate ${r&&e.event===`waiting_for_input`?`text-[#f5b544]`:`text-[#a7aab2]`}`,children:WC(e)})]},`${e.at??n}-${e.event}-${n}`)})}),c.length===0?(0,Y.jsx)(`p`,{className:`px-2 py-6 text-[13px] text-[var(--sf-text-3)]`,children:`No events match this filter.`}):null]})]})}function gw(e){return{showRetry:e.hasRetry&&(xl(e.status)||e.retryBlocked),showResume:e.hasResume&&Cl({status:e.status,events:e.events}),showAbandon:e.hasAbandon&&Sl(e.status),retryDisabled:e.retryBlocked}}var _w=[{id:`timeline`,label:`Timeline`,Icon:Se},{id:`graph`,label:`Graph`,Icon:Ie},{id:`list`,label:`List`,Icon:gt}];function vw({viewMode:e,onViewModeChange:t}){return(0,Y.jsx)(`div`,{className:`flex h-8 items-center gap-0.5 rounded-lg border border-[#ffffff1a] bg-[var(--sf-panel)] p-[3px]`,children:_w.map(({id:n,label:r,Icon:i})=>{let a=e===n;return(0,Y.jsxs)(`button`,{type:`button`,className:a?`flex h-6 items-center gap-1.5 rounded-md border border-[#ffffff1a] bg-[var(--sf-raised)] px-2.5 py-0`:`flex h-6 items-center gap-1.5 rounded-md px-2.5 py-0`,onClick:()=>t(n),children:[(0,Y.jsx)(i,{className:`size-[13px] shrink-0${a?` text-[var(--sf-text-1)]`:` text-[var(--sf-text-3)]`}`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`font-sans text-xs font-medium leading-normal${a?` text-[var(--sf-text-1)]`:` text-[var(--sf-text-2)]`}`,children:r})]},n)})})}function yw(e){if(!e?.trim())return null;for(let t of e.split(/\r?\n/)){let e=t.trim();if(!e||e.startsWith(`#`))continue;let n=/^goal:\s*(.+)$/i.exec(e);if(!n)continue;let r=n[1].trim();return r.startsWith(`"`)&&r.endsWith(`"`)||r.startsWith(`'`)&&r.endsWith(`'`)?r.slice(1,-1).trim()||null:r||null}return null}function bw(e){return typeof e==`number`&&Number.isFinite(e)?e:0}function xw(e){if(e<1e3)return String(Math.round(e));if(e<1e6){let t=e/1e3;return t>=999.95?`1.0m`:`${t.toFixed(1)}k`}return`${(e/1e6).toFixed(1)}m`}function Sw(e){let t=e.lastIndexOf(`/`);return t<0?e:e.slice(t+1)||e}function Cw(e){let t=0,n=new Map;for(let r of e){let e=r.usage?.models;if(e)for(let[r,i]of Object.entries(e)){let e=bw(i.inputTokens),a=bw(i.outputTokens);t+=e+a+bw(i.cacheReadInputTokens)+bw(i.cacheCreationInputTokens),n.set(r,(n.get(r)??0)+e+a)}}if(t<=0)return null;let r=null,i=-1;for(let[e,t]of n)t>i&&(i=t,r=e);return r?{tokensLabel:xw(t),modelLabel:Sw(r)}:null}var ww=`rounded-sm border border-[#ffffff1a] bg-[#131418] px-[5px] font-['Geist_Mono',monospace] text-[11px] leading-[16px] text-[#8b8f98]`,Tw=`flex h-6 shrink-0 items-center gap-1.5 whitespace-nowrap rounded-md px-2 font-sans text-[12px] font-medium transition-colors disabled:cursor-not-allowed disabled:opacity-50`;function Ew(e){return e===`failed`?`bg-[#f2645a]`:e===`running`?`bg-[var(--sf-running)]`:e===`interrupted`||e===`waiting_for_input`?`bg-[#f5b544]`:e===`succeeded`?`bg-[#4cc38a]`:`bg-[#8b8f98]`}function Dw({stage:e,stageLabel:t,visibility:n,onRetry:r,onResume:i,onAbandon:a,retrying:o,resuming:s,abandoning:c,disabled:l}){let{showRetry:u,showResume:d,showAbandon:f,retryDisabled:p}=n;if(!u&&!d&&!f)return null;let m=l||o||s||c;return(0,Y.jsxs)(`div`,{className:`flex h-8 shrink-0 items-center gap-1 rounded-lg border border-[#ffffff1a] bg-[#131418] pl-2.5 pr-1`,role:`group`,"aria-label":`Actions for stage ${t}`,children:[(0,Y.jsx)(`span`,{className:`size-1.5 shrink-0 rounded-full ${Ew(e.status)}`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`max-w-[160px] truncate font-['Geist_Mono',monospace] text-[12px] text-[#ecedee]`,title:t,children:t}),(0,Y.jsx)(`span`,{className:`mx-1 h-4 w-px shrink-0 bg-[#ffffff14]`,"aria-hidden":!0}),u?(0,Y.jsxs)(`button`,{type:`button`,className:`${Tw} bg-[#ffffff14] text-[#ecedee] hover:bg-[#ffffff1f]`,disabled:m||p,onClick:r,title:p?`Answer the open gate before retrying`:`Start a new attempt of this stage; downstream stages continue from it`,children:[(0,Y.jsx)(nt,{className:`size-3 shrink-0${o?` animate-spin`:``}`,"aria-hidden":!0}),o?`Retrying…`:`Retry stage`,(0,Y.jsx)(`kbd`,{className:ww,children:`R`})]}):null,d?(0,Y.jsxs)(`button`,{type:`button`,className:`${Tw} text-[#ecedee] hover:bg-[#ffffff0f]`,disabled:m||p,onClick:i,title:`Continue the interrupted attempt on the same agent session`,children:[(0,Y.jsx)(y,{className:`size-3 shrink-0`,"aria-hidden":!0}),s?`Resuming…`:`Resume`]}):null,f?(0,Y.jsxs)(`button`,{type:`button`,className:`${Tw} text-[#f5b544] hover:bg-[#f5b5441a]`,disabled:m,onClick:a,title:`Stop this stage and mark it failed; the rest of the run is left alone`,children:[(0,Y.jsx)(Ce,{className:`size-3 shrink-0`,"aria-hidden":!0}),c?`Abandoning…`:`Abandon`]}):null]})}function Ow({icon:e,title:t,description:n,tone:r,disabled:i,onSelect:a}){return(0,Y.jsxs)(`button`,{type:`button`,role:`menuitem`,className:`group flex w-full items-start gap-3 rounded-lg px-2.5 py-2 text-left hover:bg-[#ffffff0a] disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-transparent`,disabled:i,onClick:a,children:[(0,Y.jsx)(`span`,{className:`mt-0.5 flex size-7 shrink-0 items-center justify-center rounded-md border border-[#ffffff12] bg-[#131418] ${r===`danger`?`text-[#f2645a] group-hover:bg-[#f2645a1f]`:`text-[#f5b544] group-hover:bg-[#f5b5441a]`}`,children:e}),(0,Y.jsxs)(`span`,{className:`flex min-w-0 flex-col gap-0.5`,children:[(0,Y.jsx)(`span`,{className:`font-sans text-[13px] font-medium ${r===`danger`?`text-[#f2645a]`:`text-[#ecedee]`}`,children:t}),(0,Y.jsx)(`span`,{className:`font-sans text-xs leading-snug text-[#8b8f98]`,children:n})]})]})}function kw({canCancel:e,canDelete:t,activeRun:n,cancelling:r,deleting:i,disabled:a,onCancel:o,onDelete:s}){let[c,l]=(0,J.useState)(!1),u=(0,J.useRef)(null);return(0,J.useEffect)(()=>{if(!c)return;let e=e=>{u.current?.contains(e.target)||l(!1)},t=e=>{e.key===`Escape`&&l(!1)};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[c]),!e&&!t?null:(0,Y.jsxs)(`div`,{ref:u,className:`relative shrink-0`,children:[(0,Y.jsx)(`button`,{type:`button`,className:`flex h-8 shrink-0 items-center gap-1.5 rounded-lg border px-2 font-sans text-[13px] font-medium text-[#a7aab2] hover:bg-[#ffffff0a] hover:text-[#ecedee] disabled:opacity-60 ${c?`border-[#ffffff28] bg-[#ffffff0a] text-[#ecedee]`:`border-transparent`}`,"aria-haspopup":`menu`,"aria-expanded":c,"aria-label":`More run actions`,title:`More run actions`,disabled:a,onClick:()=>l(e=>!e),children:(r?`Cancelling…`:i?`Deleting…`:null)??(0,Y.jsx)(ne,{className:`size-4`,"aria-hidden":!0})}),c?(0,Y.jsxs)(`div`,{role:`menu`,className:`absolute right-0 top-[calc(100%+6px)] z-50 flex w-[300px] flex-col rounded-xl border border-[#ffffff1a] bg-[#16181c] p-1 shadow-[0_12px_32px_rgba(0,0,0,0.5)]`,children:[(0,Y.jsx)(`span`,{className:`px-2.5 pb-1 pt-2 text-[11px] font-medium uppercase tracking-[0.88px] text-[#8b8f98]`,children:`Run actions`}),e?(0,Y.jsx)(Ow,{icon:(0,Y.jsx)(x,{className:`size-3.5`,"aria-hidden":!0}),title:`Cancel run`,description:`Stop every active stage and mark the run cancelled. History is kept.`,tone:`warn`,disabled:r||i,onSelect:()=>{l(!1),o()}}):null,e&&t?(0,Y.jsx)(`span`,{className:`mx-2.5 my-1 h-px bg-[#ffffff12]`,"aria-hidden":!0}):null,t?(0,Y.jsx)(Ow,{icon:(0,Y.jsx)(Ee,{className:`size-3.5`,"aria-hidden":!0}),title:`Delete run`,description:n?`Cancel, then permanently remove the run, workspace, and artifacts.`:`Permanently remove the run, workspace, and artifacts. Cannot be undone.`,tone:`danger`,disabled:r||i,onSelect:()=>{l(!1),s()}}):null]}):null]})}function Aw(e){let t=Date.parse(e);if(!Number.isFinite(t))return null;let n=new Date(t);return`started ${n.getHours().toString().padStart(2,`0`)}:${n.getMinutes().toString().padStart(2,`0`)}`}function jw({run:e,onBack:t,viewMode:n,onViewModeChange:r,selectedStage:i,selectedStageLabel:a,retryBlocked:o,onCancel:s,onDelete:c,onRerun:u,onRetryStage:d,onResumeStage:f,onAbandonStage:p,cancelling:m,deleting:h,rerunning:g,retrying:_,resuming:v,abandoning:y,now:b}){let x=!!(g||m||h),S=i?gw({status:i.status,events:i.events,retryBlocked:!!o,hasRetry:!!d,hasResume:!!f,hasAbandon:!!p}):null,C=!!(S?.showRetry&&!S.retryDisabled&&!_&&!x);Yc([{key:`f`,scope:`run-detail`,when:()=>!x,handler:e=>{e.preventDefault(),u()}},{key:`r`,scope:`run-detail`,when:()=>C,handler:e=>{e.preventDefault(),d?.()}}],`run-detail`);let w=yl(e.created_at,e.finished_at,e.finished_at?e.updated_at:void 0,b??Date.now()),T=Aw(e.created_at),E=bl(e.total_cost_usd),D=Vl(e),O=D&&D!==`—`?D:null,k=yw(e.task_yaml),A=Cw(e.stages),j=w&&w!==`—`?w:null,M=E&&E!==`—`?E:null,N=[];return O&&N.push({text:O,tone:`lead`}),T&&N.push({text:T,tone:`rest`}),j&&N.push({text:j,tone:`rest`}),A&&N.push({text:`${A.tokensLabel} tok`,tone:`rest`}),M&&N.push({text:M,tone:`rest`}),A&&N.push({text:A.modelLabel,tone:`rest`}),(0,Y.jsxs)(`header`,{className:`flex w-full shrink-0 items-end justify-between gap-6 border-b border-b-[#ffffff12] px-5 py-4`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-2`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(`button`,{type:`button`,className:`font-sans text-xs leading-normal text-[var(--sf-text-2)] hover:text-[var(--sf-text-1)]`,onClick:t,children:`Runs`}),(0,Y.jsx)(l,{className:`size-3 shrink-0 text-[var(--sf-text-3)]`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`whitespace-nowrap font-['Geist_Mono',monospace] text-xs leading-normal text-[var(--sf-text-1)]`,children:Ss(e.run_id)}),(0,Y.jsx)(`button`,{type:`button`,className:`flex size-5 shrink-0 items-center justify-center rounded-sm hover:bg-[#ffffff0a]`,onClick:()=>{navigator.clipboard?.writeText(e.run_id)},"aria-label":`Copy run id`,children:(0,Y.jsx)(R,{className:`size-3 text-[var(--sf-text-3)]`,"aria-hidden":`true`})})]}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2.5`,children:[(0,Y.jsx)(`h1`,{className:`shrink-0 font-sans text-xl font-semibold leading-[1.2] tracking-[-0.4px] text-[var(--sf-text-1)]`,children:es(e)}),(0,Y.jsx)(Il,{signal:Hs(e),label:qs(js(e))}),k?(0,Y.jsx)(`span`,{className:`min-w-0 truncate font-sans text-[13px] leading-normal text-[var(--sf-text-3)]`,title:k,children:k}):null]}),N.length>0?(0,Y.jsx)(`div`,{className:`flex min-w-0 flex-nowrap items-center gap-2 overflow-hidden font-['Geist_Mono',monospace] text-xs`,children:N.flatMap((e,t)=>{let n=(0,Y.jsx)(`span`,{className:e.tone===`lead`?`shrink-0 whitespace-nowrap text-[#ecedee]`:`shrink-0 whitespace-nowrap text-[#a7aab2]`,children:e.text},`${e.text}-${t}`);return t===0?[n]:[(0,Y.jsx)(`span`,{className:`shrink-0 text-[#8b8f98]`,children:`·`},`sep-${t}`),n]})}):null]}),(0,Y.jsxs)(`div`,{className:`flex shrink-0 flex-nowrap items-center gap-2`,children:[i&&S?(0,Y.jsx)(Dw,{stage:i,stageLabel:a??i.stage_id,visibility:S,onRetry:d,onResume:f,onAbandon:p,retrying:_,resuming:v,abandoning:y,disabled:x}):null,(0,Y.jsxs)(`button`,{type:`button`,className:`flex h-8 shrink-0 items-center whitespace-nowrap bg-[#1a1c21] border border-[#ffffff1a] rounded-lg px-3 py-0 gap-1.5 hover:border-[#ffffff28] hover:bg-[#202228] disabled:opacity-60`,disabled:x,onClick:u,title:`Start a new run with the same pipeline and task`,children:[(0,Y.jsx)(de,{className:`size-3.5 shrink-0 text-[#ecedee]`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`text-[#ecedee] font-sans text-[13px] font-medium`,children:g?`Starting fresh…`:`Start fresh`}),(0,Y.jsx)(`kbd`,{className:ww,children:`F`})]}),(0,Y.jsx)(kw,{canCancel:IS(e.status),canDelete:LS(e.status),activeRun:RS(e.status),cancelling:m,deleting:h,disabled:!!g,onCancel:s,onDelete:c}),(0,Y.jsx)(`span`,{className:`block w-px h-5 bg-[#ffffff12] mx-1 shrink-0`,"aria-hidden":`true`}),(0,Y.jsx)(vw,{viewMode:n,onViewModeChange:r})]})]})}function Mw({runId:e,onBack:t}){return(0,Y.jsxs)(`div`,{className:`flex h-screen min-h-0 flex-col overflow-hidden`,children:[(0,Y.jsxs)(`header`,{className:`flex w-full shrink-0 items-end justify-between gap-6 border-b border-b-[#ffffff12] px-5 py-4`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-2`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(`button`,{type:`button`,className:`font-sans text-xs text-[var(--sf-text-2)]`,onClick:t,children:`Runs`}),(0,Y.jsx)(`span`,{className:`text-[var(--sf-text-3)]`,children:`→`}),(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace] text-xs text-[var(--sf-text-2)]`,children:Ss(e)})]}),(0,Y.jsx)(`div`,{className:`h-7 w-48 max-w-full animate-pulse rounded bg-[var(--sf-raised)]`}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,Y.jsx)(`div`,{className:`h-3 w-24 animate-pulse rounded bg-[var(--sf-raised)]`}),(0,Y.jsx)(`div`,{className:`h-3 w-32 animate-pulse rounded bg-[var(--sf-raised)]`})]})]}),(0,Y.jsxs)(`div`,{className:`flex shrink-0 gap-2`,children:[(0,Y.jsx)(`div`,{className:`h-8 w-24 animate-pulse rounded-lg bg-[var(--sf-raised)]`}),(0,Y.jsx)(`div`,{className:`h-8 w-28 animate-pulse rounded-lg bg-[var(--sf-raised)]`})]})]}),(0,Y.jsxs)(`div`,{className:`flex w-full shrink-0 flex-col border-b border-b-[#ffffff12] px-6 py-4`,children:[(0,Y.jsx)(`div`,{className:`mb-3 h-3 w-32 animate-pulse rounded bg-[var(--sf-raised)]`}),Array.from({length:4},(e,t)=>(0,Y.jsxs)(`div`,{className:`mb-2 flex h-8 items-center gap-4`,"aria-hidden":`true`,children:[(0,Y.jsx)(`div`,{className:`h-3 w-24 animate-pulse rounded bg-[var(--sf-raised)]`}),(0,Y.jsx)(`div`,{className:`h-2 min-w-0 flex-1 animate-pulse rounded bg-[var(--sf-raised)]`})]},t))]}),(0,Y.jsxs)(`div`,{className:`flex min-h-0 w-full flex-1`,children:[(0,Y.jsxs)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col border-r border-r-[#ffffff12]`,children:[(0,Y.jsx)(`div`,{className:`h-10 shrink-0 border-b border-b-[#ffffff12] bg-[var(--sf-panel)]`}),(0,Y.jsx)(`div`,{className:`min-h-0 flex-1 bg-[var(--sf-ground)]`})]}),(0,Y.jsx)(`div`,{className:`w-96 shrink-0 border-l border-l-[#ffffff12] bg-[var(--sf-panel)]`})]})]})}function Nw(e,t){for(let n of e){if(n.event!==t||!n.at)continue;let e=Date.parse(n.at);if(Number.isFinite(e))return e}}function Pw(e,t){let n;for(let r of e){if(!t.includes(r.event)||!r.at)continue;let e=Date.parse(r.at);Number.isFinite(e)&&(n===void 0||e>n)&&(n=e)}return n}function Fw(e,t,n=Date.now()){let r=Date.parse(e.created_at),i=e.finished_at?Date.parse(e.finished_at):n;Number.isFinite(i)||(i=n);for(let e of t)for(let t of Iw(e,n))t.endMs>i&&(i=t.endMs);return Number.isFinite(r)?{startMs:r,endMs:Math.max(i,r)}:{startMs:n,endMs:Math.max(n,i)}}function Iw(e,t=Date.now(),n){let r=e.events??[],i=Nw(r,`started`),a=Nw(r,`waiting_for_input`),o=Pw(r,[`operator_answer`,`operator_prompt_answered`]),s=Nw(r,`succeeded`),c=Nw(r,`failed`),l=Nw(r,`skipped`);if(e.status===`pending`&&!i)return n?.readiness===`blocked`?[{kind:`blocked`,startMs:t,endMs:t}]:[{kind:`empty`,startMs:t,endMs:t}];let u=[],d=i??a??t;if(i===void 0&&e.status!==`pending`)return[{kind:`running`,startMs:d,endMs:s??c??l??a??t}];if(i!==void 0){let n=a??s??c??l??(e.status===`running`?t:i);n>i&&u.push({kind:`running`,startMs:i,endMs:n})}if(e.status===`waiting_for_input`||a!==void 0&&!o&&!s&&!c){let n=a??i??t,r=e.status===`waiting_for_input`?t:o??s??c??t;r>=n&&u.push({kind:`waiting`,startMs:n,endMs:r})}else a!==void 0&&o!==void 0&&u.push({kind:`waiting`,startMs:a,endMs:o});if(a!==void 0&&o!==void 0&&o>=a){let n=s??c??l??(e.status===`running`?t:void 0);n!==void 0&&n>o&&u.push({kind:`running`,startMs:o,endMs:n})}if(e.status===`succeeded`||s!==void 0){let e=s??Pw(r,[`started`])??t,n=s??e;u.push({kind:`succeeded`,startMs:e,endMs:n})}else if(e.status===`failed`||c!==void 0){let e=c??Pw(r,[`started`])??t,n=c??e;u.push({kind:`failed`,startMs:e,endMs:n})}else if(e.status===`skipped`||l!==void 0){let e=l??t;u.push({kind:`skipped`,startMs:e,endMs:e})}return u.length===0?[{kind:`queued`,startMs:d,endMs:d}]:u}function Lw(e,t=Date.now()){return Iw(e,t).reduce((e,t)=>e+Math.max(0,t.endMs-t.startMs),0)}var Rw=[1e3,6e4,36e5,864e5],zw=[1,2,4,5,10,15,20,30,45,60],Bw=.92;function Vw(e,t){let n=Math.max(0,e);if(!t)return Math.max(n,1);let r=Math.max(n+1,n/Bw);for(let e of Rw)for(let t of zw){let n=t*e;if(n>=r)return n}return r}function Hw(e){return e.status===`pending`&&!e.events?.some(e=>e.event===`started`)}function Uw(e){return e.status===`succeeded`?`succeeded`:e.status===`failed`?`failed`:e.status===`skipped`?`skipped`:null}function Ww(e,t=Date.now(),n){let r=Uw(e),i=e.events?.some(e=>e.event===`failed`)??!1,a=[];for(let o of Iw(e,t,n)){if(o.endMs<=o.startMs||o.kind===`blocked`||o.kind===`queued`||o.kind===`empty`)continue;let t=r&&(o.kind===`running`||o.kind===`waiting`||o.kind===r)?r:o.kind===`running`&&(e.status===`failed`||i)?`failed`:o.kind,n=a[a.length-1];if(n&&n.kind===t&&o.startMs<=n.endMs+1){n.endMs=Math.max(n.endMs,o.endMs);continue}a.push({kind:t,startMs:o.startMs,endMs:o.endMs})}return a}function Gw(e,t){if(e<=0)return[];let n=.6,r=t==null?Math.max(0,100-e*6):t+n,i=Math.max(0,100-r),a=n*Math.max(0,e-1),o=i<=a?i/e:Math.min(6,(i-a)/e),s=o+(e>1&&i>a?n:0);return Array.from({length:e},(e,t)=>({left:r+t*s,width:o}))}function Kw(e){let t=e.usage?.models;if(!t)return null;let n=null,r=-1;for(let[e,i]of Object.entries(t)){let t=i.inputTokens+i.outputTokens;t>r&&(n=e,r=t)}return n}function qw(e){let t=e.usage?.models;if(!t||Object.keys(t).length===0)return null;let n=0,r=0;for(let e of Object.values(t))n+=e.inputTokens+e.cacheReadInputTokens+e.cacheCreationInputTokens,r+=e.outputTokens;return{input:n,output:r}}function Jw(e){return!Number.isFinite(e)||e<0?`0`:e<1e3?String(Math.round(e)):e<1e6?`${(e/1e3).toFixed(1).replace(/\.0$/,``)}k`:`${(e/1e6).toFixed(1).replace(/\.0$/,``)}M`}function Yw(e,t){for(let n of e.events)if(n.event===t&&n.at)return n.at;return null}function Xw(e,t){for(let n=e.events.length-1;n>=0;n--){let r=e.events[n];if(r.event===t&&r.at)return r.at}return null}function Zw(e){return String(e).padStart(2,`0`)}function Qw(e){let t=Yw(e,`started`);if(!t)return null;let n=new Date(t);return Number.isFinite(n.getTime())?`${Zw(n.getHours())}:${Zw(n.getMinutes())}:${Zw(n.getSeconds())}`:null}function $w(e){if(!Number.isFinite(e)||e<0)return`0s`;let t=Math.floor(e/1e3);if(t<60)return`${t}s`;let n=Math.floor(t/60);return n<60?`${n}m ${Zw(t%60)}s`:`${Math.floor(n/60)}h ${Zw(n%60)}m`}function eT(e,t=Date.now()){let n=Xw(e,`waiting_for_input`);if(!n)return null;let r=Date.parse(n);return Number.isFinite(r)?Math.max(0,t-r):null}function tT(e,t){let n=t?.activeRunIds?.indexOf(e)??-1;if(n<0)return null;let r=t?.maxConcurrent;return typeof r==`number`&&Number.isFinite(r)&&r>0?`slot ${n+1} of ${r}`:`holding a slot`}var nT=`font-['Geist_Mono',monospace]`,rT=`text-[11px] font-medium uppercase tracking-[0.88px] text-[#8b8f98]`,iT=`flex h-8 items-center gap-2 rounded-lg px-1 text-[13px] text-[#a7aab2] hover:bg-[#ffffff0a] disabled:cursor-not-allowed disabled:opacity-60 disabled:hover:bg-transparent`;function aT(e){return e.split(`/`).pop()??e}function oT(e){navigator.clipboard?.writeText(e)}function sT({label:e,children:t}){return(0,Y.jsxs)(`div`,{className:`flex h-7 items-center justify-between gap-3`,children:[(0,Y.jsx)(`dt`,{className:`text-xs text-[#8b8f98]`,children:e}),(0,Y.jsx)(`dd`,{className:`${nT} flex items-center gap-2 whitespace-nowrap text-xs text-[#ecedee]`,children:t})]})}function cT({children:e}){return(0,Y.jsx)(`aside`,{className:`flex min-h-0 w-[360px] shrink-0 flex-col overflow-y-auto bg-[#0c0d0f]`,children:e})}function lT({name:e,waiting:t}){return(0,Y.jsxs)(`div`,{className:`flex h-10 shrink-0 items-center justify-between gap-2 border-b border-b-[#ffffff12] px-4`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,Y.jsx)(`span`,{className:rT,children:`Stage`}),e?(0,Y.jsx)(`span`,{className:`${nT} truncate text-[13px] text-[#ecedee]`,children:e}):null]}),t?(0,Y.jsxs)(`span`,{className:`flex h-6 shrink-0 items-center gap-[5px] rounded-full border border-[#f5b5444d] bg-[#f5b5441a] px-2`,children:[(0,Y.jsx)(Ze,{className:`size-3 text-[#f5b544]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`text-xs font-medium text-[#f5b544]`,children:`Waiting for input`})]}):null]})}function uT({status:e}){let t=e===`success`;return(0,Y.jsxs)(`span`,{className:`flex h-5 w-fit items-center gap-1 rounded-full px-1.5 text-[11px] font-medium ${t?`bg-[#4cc38a1a] text-[#4cc38a]`:`bg-[#f2645a1a] text-[#f2645a]`}`,children:[t?(0,Y.jsx)(G,{className:`size-3`,"aria-hidden":!0}):(0,Y.jsx)(St,{className:`size-3`,"aria-hidden":!0}),e]})}function dT({run:e,stage:t,health:n,inboundSummary:r,inboundFromStageId:i,actionBusy:a,onRetry:o,onResume:s,onAbandon:c,onOpenArtifact:l,onOpenEnvelope:u,artifactPath:d}){if(Yc([{key:`c`,scope:`run-detail`,handler:t=>{t.preventDefault(),oT(e.run_id)}}],`run-detail`),!t)return(0,Y.jsxs)(cT,{children:[(0,Y.jsx)(lT,{}),(0,Y.jsx)(`p`,{className:`px-4 py-3 text-[13px] text-[#8b8f98]`,children:`Select a stage to inspect.`})]});let f=Date.now(),p=t.stage_id,m=t.status===`waiting_for_input`,h=t.status===`failed`?t.events.slice().reverse().find(e=>e.event===`failed`)?.reason:void 0,g=t.envelope,_=zC(e),v=wl(a,p),{showRetry:b,showResume:x,showAbandon:S,retryDisabled:C}=gw({status:t.status,events:t.events,retryBlocked:_,hasRetry:!0,hasResume:!0,hasAbandon:!0}),w=Kw(t),T=qw(t),E=Qw(t),D=E?_l(Lw(t,f)):null,O=m?eT(t,f):null,k=tT(e.run_id,n);return(0,Y.jsxs)(cT,{children:[(0,Y.jsx)(lT,{name:gC(e,p),waiting:m}),(0,Y.jsxs)(`div`,{className:`flex flex-col border-b border-b-[#ffffff12] px-4 py-2`,children:[(0,Y.jsxs)(`dl`,{className:`flex flex-col`,children:[(0,Y.jsx)(sT,{label:`Attempt`,children:t.attempt_count}),w?(0,Y.jsx)(sT,{label:`Model`,children:w}):null,E?(0,Y.jsxs)(sT,{label:`Started · elapsed`,children:[(0,Y.jsx)(`span`,{children:E}),(0,Y.jsx)(`span`,{children:D})]}):null,O===null?null:(0,Y.jsx)(sT,{label:`Waiting on you`,children:$w(O)}),T?(0,Y.jsxs)(sT,{label:`Tokens in / out`,children:[Jw(T.input),` / `,Jw(T.output)]}):null,(0,Y.jsx)(sT,{label:`Cost`,children:bl(t.cost_usd)}),k?(0,Y.jsxs)(sT,{label:`Slot held`,children:[(0,Y.jsx)(`span`,{className:`size-1.5 rounded-full bg-[#f5b544]`,"aria-hidden":!0}),k]}):null]}),h?(0,Y.jsx)(`p`,{className:`my-2 rounded-lg border border-[#f2645a33] bg-[#f2645a14] px-3 py-2 text-[13px] text-[#f2645a]`,children:h}):null]}),r||g?(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2 border-b border-b-[#ffffff12] px-4 py-3`,children:[r?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1.5`,children:[(0,Y.jsx)(`span`,{className:rT,children:i?`Envelope from`:`Envelope in`}),i?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`span`,{className:`${nT} truncate text-[13px] text-[#ecedee]`,children:i}),(0,Y.jsx)(Te,{className:`size-3 shrink-0 text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`${nT} truncate text-[13px] text-[#ecedee]`,children:p})]}):null]}),(0,Y.jsx)(`p`,{className:`text-[13px] leading-snug text-[#ecedee]`,children:r})]}):null,g?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1.5`,children:[(0,Y.jsx)(`span`,{className:rT,children:`Envelope`}),(0,Y.jsx)(`span`,{className:`${nT} truncate text-[13px] text-[#ecedee]`,children:p})]}),(0,Y.jsx)(uT,{status:g.status}),(0,Y.jsx)(`p`,{className:`text-[13px] leading-snug text-[#ecedee]`,children:g.summary}),g.artifacts.length>0?(0,Y.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:g.artifacts.map(e=>(0,Y.jsxs)(`button`,{type:`button`,disabled:!l,className:`${nT} flex h-[26px] items-center gap-1.5 rounded-md border border-[#ffffff1a] bg-[#1a1c21] px-2 text-[11px] text-[#a7aab2] hover:border-[#ffffff28] disabled:hover:border-[#ffffff1a]`,onClick:()=>l?.(e),children:[(0,Y.jsx)(ce,{className:`size-3 text-[#8b8f98]`,"aria-hidden":!0}),aT(e)]},e))}):null,u?(0,Y.jsx)(`button`,{type:`button`,className:`w-fit text-xs text-[#8b8f98] hover:text-[#ecedee]`,onClick:()=>u(p),children:`Open full record`}):null]}):null]}):null,(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1 px-4 py-3`,children:[(0,Y.jsx)(`span`,{className:`${rT} mb-1`,children:`Actions`}),b?(0,Y.jsxs)(`button`,{type:`button`,className:iT,disabled:v||C,onClick:()=>o(p),children:[(0,Y.jsx)(de,{className:`size-3.5 text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{children:`Retry stage`}),C?(0,Y.jsx)(`span`,{className:`ml-auto text-xs text-[#8b8f98]`,children:`answer gate first`}):null]}):null,x?(0,Y.jsxs)(`button`,{type:`button`,className:iT,disabled:v||C,onClick:()=>s(p),children:[(0,Y.jsx)(y,{className:`size-3.5 text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{children:`Resume stage`}),C?(0,Y.jsx)(`span`,{className:`ml-auto text-xs text-[#8b8f98]`,children:`answer gate first`}):null]}):null,(0,Y.jsxs)(`button`,{type:`button`,className:iT,onClick:()=>oT(e.run_id),children:[(0,Y.jsx)(R,{className:`size-3.5 text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{children:`Copy run id`}),(0,Y.jsx)(`kbd`,{className:`ml-auto rounded-sm border border-[#ffffff1a] bg-[#131418] px-[5px] font-mono text-[11px] text-[#8b8f98]`,children:`C`})]}),d&&l?(0,Y.jsxs)(`button`,{type:`button`,className:iT,onClick:()=>l(d),children:[(0,Y.jsx)(ce,{className:`size-3.5 text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{children:`Open artifact`})]}):null,S?(0,Y.jsxs)(`button`,{type:`button`,className:iT,disabled:v,onClick:()=>c(p),children:[(0,Y.jsx)(Ce,{className:`size-3.5 text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{children:`Abandon stage`})]}):null]})]})}function fT(e){return new Map(e.nodes.map(e=>[e.stage_id,e]))}function pT(e,t){if(e)return e.nodes.find(e=>e.stage_id===t)}function mT(e,t){return pT(e.pipeline_track,t)}function hT(e){return e.events?.some(e=>e.event===`started`)??!1}function gT(e,t){return t?.readiness===`blocked`&&e.status===`pending`&&!hT(e)}function _T(e,t){if(e.status!==`waiting_for_input`&&gT(e,t))return`Blocked`}function vT(e,t){return e.stages.find(e=>e.stage_id===t)?.events?.some(e=>e.event===`started`)??!1}function yT(e,t){let n=mT(e,t),r=e.stages.find(e=>e.stage_id===t),i=r?.status??n?.status??`pending`,a=t=>gC(e,t);if(n?.readiness===`blocked`)return{readinessLine:`Blocked`,waitsLine:n.blocked_by?.length&&a?WS(n.blocked_by,a):void 0};if(i===`waiting_for_input`){let e=LC(r?.pending_prompt);return{readinessLine:e?`Needs you · ${e}`:`Needs you`}}let o=n&&GS({readiness:n.readiness,blocked_by:n.blocked_by,status:i,blockersLabel:a});return o?{readinessLine:o}:{readinessLine:Ns(i)}}function bT(e,t,n){let r=fT(e.pipeline_track),i=e.pipeline_track?.nodes?.length?eS(e.pipeline_track.nodes).map(e=>e.stage_id):t.map(e=>e.id),a=new Map(t.map(e=>[e.id,e]));return i.map(t=>{let i=a.get(t),o=r.get(t),s=e.stages.find(e=>e.stage_id===t),c=s?.status??o?.status??`pending`,l=o?.readiness===`blocked`,u=t===n,{readinessLine:d,waitsLine:f}=yT(e,t),p=l?Vs(`blocked`):c===`waiting_for_input`?Bs(c):o?Vs(o.readiness):Bs(c),m=c!==`pending`||vT(e,t),h=s?.attempt_count??o?.attempt_count,g=h!=null&&h>0&&(u||c===`waiting_for_input`||c===`running`),_=l||c===`pending`&&!u;return{stageId:t,label:i?.label??gC(e,t),selected:u,signal:p,blocked:l,readinessLine:d,waitsLine:f,attemptLine:g?`attempt ${h}`:void 0,clickable:m,titleMuted:_}})}function xT(e,t){if(t)return gC(e,t)}function ST(e){if(e.nodes.length===0)return{nodes:[],edges:[],width:0,height:160};let t=e.nodes.map(e=>({stageId:e.stageId,x:40+e.x*.3076923076923077,y:48+e.y*.21176470588235294,width:120})),n=Math.max(...t.map(e=>e.x+e.width)),r=Math.max(...t.map(e=>e.y+64));return{nodes:t,edges:e.edges,width:n+40,height:Math.max(160,r+48)}}function CT(e,t){let n=e.x+e.width,r=e.y+24,i=t.x,a=t.y+24;if(i<=n)return null;let o=Math.max(16,(i-n)/2);return`M${n} ${r} C${n+o} ${r} ${i-o} ${a} ${i} ${a}`}function wT(e){switch(e){case`ok`:return`text-[#4cc38a]`;case`fail`:return`text-[#f2645a]`;case`needs`:return`text-[#f5b544]`;case`running`:return`text-[var(--sf-running)]`;default:return`text-[var(--sf-text-2)]`}}function TT(e){return e.blocked?`text-[var(--sf-text-2)]`:e.signal===`needs`?`text-[#f5b544]`:e.signal===`ok`?`font-['Geist_Mono',monospace] text-[#4cc38a]`:e.signal===`fail`?`text-[#f2645a]`:e.signal===`running`?`text-[var(--sf-running)]`:`font-['Geist_Mono',monospace] text-[var(--sf-text-2)]`}function ET(e){return e.selected&&e.signal===`needs`?` w-[132px] border-[#f5b5444d] bg-[var(--sf-panel)] shadow-[0px_0px_12px_rgba(245,181,68,0.25)]`:e.selected?` w-[120px] border-[#ffffff47] bg-[var(--sf-active)]`:e.blocked?` w-[120px] border-dashed border-[#a7aab28c] bg-[var(--sf-raised)]`:` w-[120px] border-[#ffffff12] bg-[var(--sf-raised)]`}function DT({node:e,box:t,onSelect:n}){let r=Gs(e.signal);return(0,Y.jsxs)(`button`,{type:`button`,className:`absolute flex shrink-0 flex-col gap-1 rounded-lg border p-2 text-left${ET(e)}`,style:{left:t.x,top:t.y,width:t.width},disabled:!e.clickable,onClick:e.clickable?()=>n(e.stageId):void 0,"aria-current":e.selected?`true`:void 0,children:[(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(r,{className:`size-3.5 shrink-0 ${wT(e.signal)}${Ws(e.signal)?` ${Ws(e.signal)}`:``}`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`truncate font-sans text-[13px] leading-normal ${e.selected?`font-semibold text-[var(--sf-text-1)]`:e.titleMuted?`text-[var(--sf-text-2)]`:`font-medium text-[var(--sf-text-1)]`}`,children:e.label})]}),e.blocked?(0,Y.jsxs)(`span`,{className:`flex flex-col gap-0.5`,children:[(0,Y.jsx)(`span`,{className:`font-sans text-[11px] font-medium leading-normal text-[var(--sf-text-2)]`,children:e.readinessLine}),e.waitsLine?(0,Y.jsx)(`span`,{className:`font-sans text-[10px] leading-normal text-[var(--sf-text-3)]`,children:e.waitsLine}):null]}):(0,Y.jsx)(`span`,{className:`font-sans text-[11px] font-medium leading-normal ${TT(e)}`,children:e.readinessLine}),e.attemptLine?(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace] text-[11px] text-[var(--sf-text-3)]`,children:e.attemptLine}):null]})}function OT({run:e,trackStages:t,spatialLayout:n,selectedStageId:r,onSelectStage:i}){let a=bT(e,t,r),o=xT(e,r),s=(0,J.useMemo)(()=>ST(n),[n]),c=(0,J.useMemo)(()=>new Map(a.map(e=>[e.stageId,e])),[a]),l=(0,J.useMemo)(()=>new Map(s.nodes.map(e=>[e.stageId,e])),[s.nodes]);return a.length===0?(0,Y.jsx)(`div`,{className:`flex w-full min-h-[200px] flex-col border-b border-b-[#ffffff12] px-6 pb-4 pt-3`,children:(0,Y.jsx)(`p`,{className:`font-sans text-[13px] text-[var(--sf-text-2)]`,children:`No stages yet.`})}):(0,Y.jsxs)(`div`,{className:`flex w-full min-h-[200px] flex-col border-b border-b-[#ffffff12] px-6 pb-4 pt-3`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between pb-3 pt-0`,children:[(0,Y.jsx)(`span`,{className:`font-sans text-[11px] font-medium uppercase tracking-[0.88px] text-[var(--sf-text-3)]`,children:`Pipeline track`}),o?(0,Y.jsxs)(`span`,{className:`font-['Geist_Mono',monospace] text-xs text-[var(--sf-text-2)]`,children:[`selected: `,o]}):null]}),(0,Y.jsx)(`div`,{className:`min-h-[160px] flex-1 overflow-x-auto rounded-[10px] border border-[#ffffff12] bg-[var(--sf-panel)] p-4`,children:(0,Y.jsxs)(`div`,{className:`relative`,style:{minWidth:s.width,minHeight:s.height},children:[(0,Y.jsx)(`svg`,{className:`pointer-events-none absolute left-0 top-0 overflow-visible`,width:s.width,height:s.height,"aria-hidden":`true`,children:s.edges.map(e=>{let t=l.get(e.from),n=l.get(e.to);if(!t||!n)return null;let r=CT(t,n);return r?(0,Y.jsx)(`path`,{d:r,fill:`none`,stroke:`#ffffff1f`,strokeWidth:1},`${e.from}-${e.to}`):null})}),s.nodes.map(e=>{let t=c.get(e.stageId);return t?(0,Y.jsx)(DT,{node:t,box:e,onSelect:i},e.stageId):null})]})})]})}var kT={base:{k1xSpc:`x1rg5ohu`,kaIpWk:`x16rqkct`,kmuXW:`x2lah0s`,kzqmXN:`x1xc55vz`,kZKoxP:`xdk7pt`,$$css:!0},pulsing:{kKVMdj:`x1mta51n`,k44tkh:`x1c74tu6`,kyAemX:`x4hg4is`,ko0y90:`xa4qsjk`,$$css:!0},reducedMotion:{kjO2d4:`x1aquc0h`,$$css:!0}},AT={success:{kWkggS:`xdsz4j9`,$$css:!0},warning:{kWkggS:`x1q8g9m5`,$$css:!0},error:{kWkggS:`x1pjz0fi`,$$css:!0},accent:{kWkggS:`x1ewilqj`,$$css:!0},neutral:{kWkggS:`x1q5y3ey`,$$css:!0}};function jT({variant:e,label:t,isPulsing:n=!1,tooltip:r,xstyle:i,className:a,style:o,ref:s,...c}){let l=(0,Y.jsx)(`span`,{ref:s,role:`img`,"aria-label":t,...Q(q(`statusdot`,{variant:e}),K(kT.base,AT[e],n&&kT.pulsing,n&&kT.reducedMotion,i),a,o),...c});return r?(0,Y.jsx)(Ut,{content:r,children:l}):l}jT.displayName=`StatusDot`;var MT={center:{kGNEyG:`x6s0dn4`,$$css:!0},end:{kGNEyG:`xuk3077`,$$css:!0},start:{kGNEyG:`x1cy8zhl`,$$css:!0},stretch:{kGNEyG:`x1qjc9v5`,$$css:!0}},NT={start:{kjj79g:`x1nhvcw1`,$$css:!0},center:{kjj79g:`xl56j7k`,$$css:!0},end:{kjj79g:`x13a6bvl`,$$css:!0},between:{kjj79g:`x1qughib`,$$css:!0},around:{kjj79g:`x1l1ennw`,$$css:!0},evenly:{kjj79g:`xaw8158`,$$css:!0}},PT={horizontal:{kXwgrk:`x1q0g3np`,$$css:!0},vertical:{kXwgrk:`xdt5ytf`,$$css:!0}},FT={nowrap:{kwnvtZ:`xozqiw3`,$$css:!0},wrap:{kwnvtZ:`x1a02dak`,$$css:!0},"wrap-reverse":{kwnvtZ:`x8hhl5t`,$$css:!0}},IT={stack:{k1xSpc:`x78zum5`,$$css:!0}},LT={0:{k1C7PZ:`x1o57wo1`,khm7nJ:`x6yxi7o`,$$css:!0},1:{k1C7PZ:`x1lfs0n9`,khm7nJ:`x1ngg2t4`,$$css:!0},2:{k1C7PZ:`xak3so`,khm7nJ:`x1x7z4sm`,$$css:!0},3:{k1C7PZ:`xewh9hi`,khm7nJ:`x4olc9o`,$$css:!0},4:{k1C7PZ:`xty4p9g`,khm7nJ:`xtx9w7w`,$$css:!0},5:{k1C7PZ:`x1eqhezk`,khm7nJ:`x1iu6piu`,$$css:!0},6:{k1C7PZ:`x3qlgwd`,khm7nJ:`xczp1bk`,$$css:!0},8:{k1C7PZ:`xicv188`,khm7nJ:`xgx0vcf`,$$css:!0},10:{k1C7PZ:`x1p37tyl`,khm7nJ:`x1xpicb7`,$$css:!0},"0.5":{k1C7PZ:`x1kihgfc`,khm7nJ:`x1tw44j4`,$$css:!0},"1.5":{k1C7PZ:`x1thn6ci`,khm7nJ:`xhq53yo`,$$css:!0}};function RT({crossAlign:e,direction:t,gap:n,mainAlign:r,wrap:i}){return[IT.stack,PT[t],n!=null&&LT[n],e!=null&&MT[e],r!=null&&NT[r],i!=null&&FT[i]]}var zT={0:{kZCmMZ:`x18gyask`,kwRFfy:`x1s0aq8i`,$$css:!0},1:{kZCmMZ:`x1vsv5vr`,kwRFfy:`x1nryj5t`,$$css:!0},2:{kZCmMZ:`x12gdq22`,kwRFfy:`x1djylfy`,$$css:!0},3:{kZCmMZ:`x126nfab`,kwRFfy:`x1t818jl`,$$css:!0},4:{kZCmMZ:`x1rey3nv`,kwRFfy:`xnjyzlh`,$$css:!0},5:{kZCmMZ:`x1blguxw`,kwRFfy:`xdbrk9v`,$$css:!0},6:{kZCmMZ:`x31w388`,kwRFfy:`x1we12cn`,$$css:!0},8:{kZCmMZ:`x1j3hnjz`,kwRFfy:`x1q91b2g`,$$css:!0},10:{kZCmMZ:`xqp078j`,kwRFfy:`x160ivqr`,$$css:!0},"0.5":{kZCmMZ:`x138rykx`,kwRFfy:`x1le3yxw`,$$css:!0},"1.5":{kZCmMZ:`xfti1ec`,kwRFfy:`x17hk9do`,$$css:!0}},BT={0:{kLKAdn:`x1ydh6w3`,kGO01o:`x1l20ajd`,$$css:!0},1:{kLKAdn:`xfsso4q`,kGO01o:`xy143xn`,$$css:!0},2:{kLKAdn:`x1xye8es`,kGO01o:`x1wesfrj`,$$css:!0},3:{kLKAdn:`x1vlblms`,kGO01o:`xvmdzux`,$$css:!0},4:{kLKAdn:`x1oa1p4a`,kGO01o:`x1awphl8`,$$css:!0},5:{kLKAdn:`xx7rijo`,kGO01o:`x1hk98q`,$$css:!0},6:{kLKAdn:`x1adxfkp`,kGO01o:`xjpqqx5`,$$css:!0},8:{kLKAdn:`xoxd1wu`,kGO01o:`x2oz4g1`,$$css:!0},10:{kLKAdn:`xk6660b`,kGO01o:`x2izi54`,$$css:!0},"0.5":{kLKAdn:`xbx876j`,kGO01o:`xij103a`,$$css:!0},"1.5":{kLKAdn:`x1kwdpsa`,kGO01o:`x1opdxmq`,$$css:!0}},VT={scrollable:{kVQacm:`xysyzu8`,$$css:!0}};function HT({direction:e=`vertical`,hAlign:t,vAlign:n,justify:r,align:i,gap:a,padding:o,paddingInline:s,paddingBlock:c,isScrollable:l,width:u,height:d,maxWidth:f,minHeight:p,wrap:m,as:h=`div`,xstyle:g,className:_,style:v,children:y,ref:b,...x}){let S=t??(e===`horizontal`?r:i),C=n??(e===`horizontal`?i:r),w=e===`horizontal`?S:C,T=e===`horizontal`?C:S,E=s??o,D=c??o,O=K(...RT({direction:e,crossAlign:T,mainAlign:w,gap:a,wrap:m}),E!=null&&zT[E],D!=null&&BT[D],l&&VT.scrollable,g),k={...u!=null&&{width:typeof u==`number`?`${u}px`:u},...d!=null&&{height:typeof d==`number`?`${d}px`:d},...f!=null&&{maxWidth:typeof f==`number`?`${f}px`:f},...p!=null&&{minHeight:typeof p==`number`?`${p}px`:p}};return(0,J.createElement)(h,{ref:b,...Q(q(`stack`,{direction:e,gap:a,wrap:m}),O,_,{...v,...k}),...x},y)}HT.displayName=`Stack`;var UT={reset:{kAzted:`x2lwn1j`,k7Eaqz:`xeuugli`,$$css:!0}},WT={center:{kSGwAc:`xamitd3`,$$css:!0},end:{kSGwAc:`xpvyfi4`,$$css:!0},start:{kSGwAc:`xqcrz7y`,$$css:!0},stretch:{kSGwAc:`xkh2ocl`,$$css:!0}},GT={fill:{kzQI83:`x1iyjqo2`,$$css:!0},static:{kzQI83:`x1c4vz4f`,kmuXW:`x2lah0s`,$$css:!0}};function KT({crossAlignSelf:e,size:t}={}){return[UT.reset,GT[t??`static`],e!=null&&WT[e]]}var qT={scrollable:{kVQacm:`xysyzu8`,$$css:!0}};function JT({crossAlignSelf:e,size:t,isScrollable:n,as:r=`div`,xstyle:i,className:a,style:o,children:s,ref:c,...l}){let u=K(...KT({crossAlignSelf:e,size:t}),n&&qT.scrollable,i);return(0,J.createElement)(r,{ref:c,...Q(q(`stack-item`,{size:t}),u,a,o),...l},s)}JT.displayName=`StackItem`;function YT({status:e}){return(0,Y.jsxs)(HT,{direction:`horizontal`,gap:1,align:`center`,children:[(0,Y.jsx)(jT,{variant:Ls(e),label:Ns(e),isPulsing:Rs(e)}),(0,Y.jsx)(ld,{size:`sm`,children:Ns(e)})]})}function XT(e){if(!e)return`—`;let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`,hour12:!1})}function ZT(e,t){return e===`pending`||t===void 0||t<1?`—`:`att ${t}`}function QT(e){return e===`ok`?`text-[#4cc38a]`:e===`fail`?`text-[#f2645a]`:e===`needs`?`text-[#f5b544]`:e===`running`?`text-[var(--sf-running)]`:`text-[var(--sf-text-3)]`}function $T(e){switch(e){case`free_text`:return`free text`;case`confirm`:return`confirm`;case`multi_question`:return`multi-question`;case`artifact_backed`:return`artifact`}}function eE({rows:e,selectedStageId:t,onSelect:n,retryingStageIds:r,onRetryStage:i,abandoningStageId:a=null,onAbandonStage:o,variant:s}){let c=Es(),l=r??new Set;return e.length===0?null:s===`redesign`?(0,Y.jsx)(`div`,{className:`flex min-w-0 flex-col`,role:`list`,"aria-label":`Stage details`,children:e.map((r,i)=>{let a=r.stageId===t,o=r.readiness===`blocked`,s=o?Vs(`blocked`):r.isWaitingAttention?Vs(`waiting`):Bs(r.status),c=Gs(s),l=o?`text-[#a7aab2]`:QT(s),u=o||r.status===`pending`&&!r.isWaitingAttention&&!a,d=o?`Blocked`:r.isWaitingAttention?`Needs you`:Ks(r.status),f=o?`shrink-0 !border !border-[#a7aab2] !bg-[#8b8f981a] !text-[#a7aab2]`:void 0,p=i===e.length-1;return(0,Y.jsxs)(`div`,{className:`flex w-full items-center gap-3 px-3 py-0 text-left ${a?`h-10 border-l-2 border-l-[var(--sf-needs)] bg-[#f5b54414]`:`h-9${p?``:` border-b border-b-[#ffffff0f]`}`}`,role:`button`,tabIndex:0,onClick:n?()=>n(r.stageId):void 0,onKeyDown:n?e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),n(r.stageId))}:void 0,children:[(0,Y.jsx)(c,{className:`size-3.5 shrink-0 ${l}${Ws(s)?` ${Ws(s)}`:``}`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`w-[100px] shrink-0 truncate font-sans text-[13px] leading-normal ${o?`text-[#a7aab2]`:u?`text-[var(--sf-text-3)]`:`text-[var(--sf-text-1)]`}${a?` font-medium`:``}`,children:r.label??r.stageId}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-2`,children:[(0,Y.jsx)(Il,{signal:s,label:d,className:f}),r.readinessLine?(0,Y.jsx)(`span`,{className:`truncate font-sans text-[11px] text-[var(--sf-text-3)]`,children:r.readinessLine}):null]}),r.promptSummary&&r.isWaitingAttention?(0,Y.jsx)(`span`,{className:`shrink-0 font-['Geist_Mono',monospace] text-[11px] text-[var(--sf-needs)]`,children:r.promptSummary}):null,(0,Y.jsx)(`span`,{className:`shrink-0 font-['Geist_Mono',monospace] text-xs text-[var(--sf-text-3)]`,children:ZT(r.status,r.attemptCount)}),(0,Y.jsx)(`span`,{className:`w-[72px] shrink-0 text-right font-['Geist_Mono',monospace] text-xs ${r.isWaitingAttention?`text-[var(--sf-needs)]`:`text-[var(--sf-text-3)]`}`,children:XT(r.meta)})]},r.stageId)})}):(0,Y.jsx)(`div`,{className:`track-detail-list`,role:`list`,"aria-label":`Stage details`,children:e.map(e=>(0,Y.jsxs)(`div`,{className:`track-detail-row`,role:`button`,tabIndex:0,"data-selected":e.stageId===t?`true`:void 0,"data-waiting":e.isWaitingAttention?`true`:void 0,onClick:n?()=>n(e.stageId):void 0,onKeyDown:n?t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),n(e.stageId))}:void 0,children:[(0,Y.jsx)(`span`,{className:`track-detail-row__id`,children:e.label??e.stageId}),c?(0,Y.jsx)(Il,{signal:e.readiness===`blocked`?Vs(`blocked`):Bs(e.status),label:e.readiness===`blocked`?`Blocked`:e.isWaitingAttention?`Needs you`:Ks(e.status),className:e.readiness===`blocked`?`border border-dashed border-[var(--sf-text-2)] bg-transparent`:void 0}):(0,Y.jsx)(YT,{status:e.status}),(0,Y.jsx)(Nh,{count:e.attemptCount}),e.readinessLine?(0,Y.jsx)(`span`,{className:`track-detail-row__readiness`,children:e.readinessLine}):null,e.meta?(0,Y.jsx)(`span`,{className:`track-detail-row__meta`,children:e.meta}):null,e.promptSummary?(0,Y.jsx)(`span`,{className:`track-detail-row__prompt`,children:e.promptSummary}):null,e.gateKinds&&e.gateKinds.length>0?(0,Y.jsx)(`span`,{className:`track-detail-row__gates`,children:e.gateKinds.map(e=>(0,Y.jsx)(`span`,{className:`track-detail-row__gate`,children:$T(e)},e))}):null,xl(e.status)&&i?(0,Y.jsx)(`span`,{className:`track-detail-row__actions`,children:(0,Y.jsx)(`button`,{type:`button`,className:`btn btn--sm`,disabled:wl({retryingStageIds:l,abandoningStageId:a},e.stageId),onClick:t=>{t.stopPropagation(),i(e.stageId)},children:l.has(e.stageId)?`Retrying…`:`Retry stage`})}):null,Sl(e.status)&&o?(0,Y.jsx)(`span`,{className:`track-detail-row__actions`,children:(0,Y.jsx)(`button`,{type:`button`,className:`btn btn--sm btn--reject`,disabled:wl({retryingStageIds:l,abandoningStageId:a},e.stageId),onClick:t=>{t.stopPropagation(),o(e.stageId)},children:a===e.stageId?`Abandoning…`:`Abandon`})}):null]},e.stageId))})}function tE({detailListRows:e,listHeader:t,selectedStageId:n,onSelect:r,retryingStageIds:i,onRetryStage:a,abandoningStageId:o,onAbandonStage:s}){return e.length===0?(0,Y.jsxs)(`div`,{className:`flex w-full min-h-[200px] flex-col border-b border-b-[#ffffff12] px-6 pt-3 pb-2`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between pb-2 pt-0`,children:[(0,Y.jsx)(`span`,{className:`font-sans text-[11px] font-medium uppercase tracking-[0.88px] text-[var(--sf-text-3)]`,children:`Track detail`}),t?(0,Y.jsx)(`span`,{className:`font-sans text-xs text-[var(--sf-needs)]`,children:t}):null]}),(0,Y.jsx)(`p`,{className:`font-sans text-[13px] text-[var(--sf-text-2)]`,children:`No stages yet.`})]}):(0,Y.jsxs)(`div`,{className:`flex w-full min-h-[200px] flex-col border-b border-b-[#ffffff12] px-6 pt-3 pb-2`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between pb-2 pt-0`,children:[(0,Y.jsx)(`span`,{className:`font-sans text-[11px] font-medium uppercase tracking-[0.88px] text-[var(--sf-text-3)]`,children:`Track detail`}),t?(0,Y.jsx)(`span`,{className:`font-sans text-xs text-[var(--sf-needs)]`,children:t}):null]}),(0,Y.jsx)(`div`,{className:`flex min-h-0 min-w-0 flex-col overflow-clip rounded-[10px] border border-[#ffffff12] bg-[var(--sf-panel)]`,children:(0,Y.jsx)(eE,{variant:`redesign`,rows:e,selectedStageId:n,onSelect:r,retryingStageIds:i,onRetryStage:a,abandoningStageId:o,onAbandonStage:s})})]})}function nE(e){return e===`running`?`bg-[var(--sf-running)]`:e===`waiting`?`overflow-hidden border border-[#f5b544b3] shadow-[0px_0px_10px_rgba(245,181,68,0.35)]`:e===`succeeded`?`bg-[var(--sf-ok)]`:e===`failed`?`bg-[var(--sf-fail)]`:e===`skipped`?`bg-[var(--sf-text-3)]`:`bg-[var(--sf-track-empty)]`}function rE(e,t){return t<=1?`rounded-sm`:e===0?`rounded-l-sm`:e===t-1?`rounded-r-sm`:`rounded-none`}function iE(e,t){let n=e=>{let t=Math.round(e*10)/10;return Number.isInteger(t)?String(t):t.toFixed(1)};return t<=6e4?`${n(e/1e3)}s`:t<36e5?`${n(e/6e4)}m`:t<864e5?`${n(e/36e5)}h`:`${n(e/864e5)}d`}function aE({run:e,stages:t,selectedStageId:n,onSelectStage:r,now:i}){let a=(0,J.useMemo)(()=>Fw(e,t,i),[e,t,i]),o=new Set([`succeeded`,`failed`,`cancelled`,`abandoned`]),s=e.finished_at==null&&!o.has(e.status),c=Vw(a.endMs-a.startMs,s),l=t.filter(e=>e.status===`succeeded`).length,u=(0,J.useMemo)(()=>Array.from({length:5},(e,t)=>{let n=t/4;return{label:iE(c*n,c),left:`${n*100}%`}}),[c]),d=s?Math.min(100,Math.max(0,(i-a.startMs)/c*100)):null,f=t.filter(e=>Hw(e)),p=Gw(f.length,d),m=new Map(f.map((e,t)=>[e.stage_id,p[t]]));return(0,Y.jsxs)(`div`,{className:`flex w-full flex-col border-b border-b-[#ffffff12] px-0 pt-3 pb-2`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between px-6 pb-2 pt-0`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(`span`,{className:`font-sans text-[11px] font-medium uppercase tracking-[0.88px] text-[var(--sf-text-3)]`,children:`Stages`}),(0,Y.jsxs)(`span`,{className:`font-['Geist_Mono',monospace] text-xs text-[var(--sf-text-2)]`,children:[l,` / `,t.length,` done`]})]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-3.5`,children:[(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(`span`,{className:`block h-1.5 w-2.5 rounded-xs bg-[var(--sf-ok)]`}),(0,Y.jsx)(`span`,{className:`font-sans text-xs text-[var(--sf-text-2)]`,children:`Succeeded`})]}),(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(`span`,{className:`block h-1.5 w-2.5 rounded-xs bg-[var(--sf-running)]`}),(0,Y.jsx)(`span`,{className:`font-sans text-xs text-[var(--sf-text-2)]`,children:`Agent working`})]}),(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(`span`,{className:`block h-1.5 w-2.5 rounded-xs bg-[var(--sf-needs)] shadow-[0px_0px_6px_rgba(245,181,68,0.6)]`}),(0,Y.jsx)(`span`,{className:`font-sans text-xs text-[var(--sf-text-2)]`,children:`Waiting on you`})]}),(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(`span`,{className:`block h-1.5 w-2.5 rounded-xs border border-dashed border-[#a7aab28c] bg-transparent`}),(0,Y.jsx)(`span`,{className:`font-sans text-xs text-[var(--sf-text-2)]`,children:`Queued`})]})]})]}),(0,Y.jsxs)(`div`,{className:`relative flex w-full flex-col`,children:[(0,Y.jsxs)(`div`,{className:`pointer-events-none absolute flex gap-4 px-6`,style:{top:0,right:0,bottom:0,left:0,zIndex:3},"aria-hidden":`true`,children:[(0,Y.jsx)(`span`,{className:`block w-[140px] shrink-0`,style:{width:140}}),(0,Y.jsxs)(`div`,{className:`relative flex-1`,children:[u.map((e,t)=>(0,Y.jsx)(`span`,{className:`absolute bottom-0 w-px bg-[#ffffff0f]`,style:{left:e.left,top:24}},`grid-${t}`)),d==null?null:(0,Y.jsx)(`span`,{className:`absolute w-px`,style:{left:`${d}%`,top:18,bottom:0,backgroundColor:`rgba(236, 237, 238, 0.7)`}})]}),(0,Y.jsx)(`span`,{className:`block w-[150px] shrink-0`})]}),(0,Y.jsxs)(`div`,{className:`relative flex h-6 items-center gap-4 px-6 py-0`,style:{zIndex:4},children:[(0,Y.jsx)(`span`,{className:`block w-[140px] shrink-0`,style:{width:140}}),(0,Y.jsxs)(`div`,{className:`relative h-4 flex-1`,children:[u.map((e,t)=>(0,Y.jsx)(`span`,{className:`absolute top-0 font-['Geist_Mono',monospace] text-[11px] text-[var(--sf-text-3)]`,style:{left:e.left,transform:`translateX(-50%)`},children:e.label},`tick-${t}`)),d==null?null:(0,Y.jsx)(`span`,{className:`absolute z-[2] rounded-sm bg-[#ecedee] px-[5px] py-0 font-['Geist_Mono',monospace] text-[10px] font-semibold leading-[1.6] text-[#0c0d0f]`,style:{left:`${d}%`,transform:`translateX(-50%)`},children:`now`})]}),(0,Y.jsxs)(`div`,{className:`flex w-[150px] shrink-0 justify-end gap-3`,children:[(0,Y.jsx)(`span`,{className:`font-sans text-[11px] uppercase tracking-[0.88px] text-[var(--sf-text-3)]`,children:`Time`}),(0,Y.jsx)(`span`,{className:`w-12 text-right font-sans text-[11px] uppercase tracking-[0.88px] text-[var(--sf-text-3)]`,children:`Cost`})]})]}),t.map(t=>{let o=mT(e,t.stage_id),s=gT(t,o),l=t.status===`waiting_for_input`,u=m.get(t.stage_id),d=u?[]:Ww(t,i,o),f=_l(Lw(t,i)),p=n===t.stage_id,h=s?Vs(`blocked`):Bs(t.status),g=_T(t,o),_=Gs(h),v=h===`ok`?`text-[#4cc38a]`:h===`fail`?`text-[#f2645a]`:h===`needs`?`text-[#f5b544]`:h===`running`?`text-[var(--sf-running)]`:`text-[var(--sf-text-2)]`,y=s,b=h===`fail`?`bg-[var(--sf-fail)]`:h===`needs`?`bg-[var(--sf-needs)] shadow-[0px_0px_8px_rgba(245,181,68,0.6)]`:`bg-[var(--sf-needs)]`,x=l&&(p||h===`needs`)?`text-[var(--sf-needs)]`:y&&!p?`text-[var(--sf-text-3)]`:`text-[var(--sf-text-1)]`;return(0,Y.jsxs)(`button`,{type:`button`,className:`relative z-[1] flex h-8 w-full items-center gap-4 px-6 py-0 text-left${p?` bg-[var(--sf-panel)]`:``}`,onClick:()=>r(t.stage_id),children:[p?(0,Y.jsx)(`span`,{className:`absolute bottom-0 left-0 top-0 w-0.5 ${b}`}):null,(0,Y.jsxs)(`div`,{className:`flex w-[140px] min-w-0 shrink-0 items-center gap-2 overflow-hidden`,style:{width:140},children:[(0,Y.jsx)(_,{className:`size-3.5 shrink-0 ${v}${Ws(h)?` ${Ws(h)}`:``}`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`truncate font-sans text-[13px] leading-normal${p&&!y?` font-medium`:``}${y?` text-[var(--sf-text-2)]`:` text-[var(--sf-text-1)]`}`,children:gC(e,t.stage_id)}),l?(0,Y.jsx)(`span`,{className:`shrink-0 font-sans text-[11px] font-medium text-[var(--sf-needs)]`,children:`waiting`}):s?(0,Y.jsx)(`span`,{className:`shrink-0 font-sans text-[11px] font-medium text-[var(--sf-text-2)]`,children:`Blocked`}):g?(0,Y.jsx)(`span`,{className:`shrink-0 font-sans text-[11px] text-[var(--sf-text-3)]`,children:g}):null]}),(0,Y.jsx)(`div`,{className:`relative h-3.5 flex-1`,children:u?(0,Y.jsx)(`span`,{className:`absolute top-0 block h-3.5 rounded-sm border border-dashed border-[#a7aab28c] bg-transparent`,style:{left:`${u.left}%`,width:`${u.width}%`}}):d.map((e,t)=>{let n=(Math.max(a.startMs,e.startMs)-a.startMs)/c*100,r=Math.max(0,e.endMs-e.startMs)/c*100;return(0,Y.jsx)(`span`,{className:`absolute top-0 block h-3.5 ${rE(t,d.length)} ${nE(e.kind)}`,style:{left:`${n}%`,width:`${Math.max(r,.35)}%`,...e.kind===`waiting`?{backgroundColor:`#f5b54424`,backgroundImage:`repeating-linear-gradient(90deg, #f5b54499 0 2px, transparent 2px 8px)`}:{}}},`${e.kind}-${t}`)})}),(0,Y.jsxs)(`div`,{className:`flex w-[150px] shrink-0 justify-end gap-3 font-['Geist_Mono',monospace] text-xs`,children:[(0,Y.jsx)(`span`,{className:x,children:f}),(0,Y.jsx)(`span`,{className:`w-12 text-right text-[var(--sf-text-3)]`,children:bl(t.cost_usd)})]})]},t.stage_id)})]})]})}function oE({autoScroll:e,scrollKey:t,children:n}){let r=(0,J.useRef)(null),i=(0,J.useRef)(!0);(0,J.useEffect)(()=>{e&&(i.current=!0)},[e]),(0,J.useEffect)(()=>{if(!e||!i.current)return;let t=r.current;t&&(t.scrollTop=t.scrollHeight)},[e,t]);function a(e){i.current=OS(e.currentTarget)}return(0,Y.jsx)(`div`,{ref:r,onScroll:a,className:`flex min-h-0 flex-1 flex-col gap-3 overflow-y-auto px-6 py-3`,children:n})}var sE={read:{key:`file_path`,isPath:!0},write:{key:`file_path`,isPath:!0},edit:{key:`file_path`,isPath:!0},notebookedit:{key:`notebook_path`,isPath:!0},bash:{key:`command`,isPath:!1},grep:{key:`pattern`,isPath:!1},glob:{key:`pattern`,isPath:!1},webfetch:{key:`url`,isPath:!1},websearch:{key:`query`,isPath:!1}};function cE(e){if(e)try{let t=JSON.parse(e);return t&&typeof t==`object`?t:void 0}catch{return}}function lE(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function uE(e,t){let n=cE(e)?.[t];if(typeof n==`string`)return n;if(!e)return;let r=e.match(RegExp(`"${lE(t)}"\\s*:\\s*"((?:[^"\\\\]|\\\\.)*)"`));return r?r[1]:void 0}function dE(e){return e.split(`/`).pop()||e}function fE(e){let t=sE[e.name.toLowerCase()];if(!t){if(e.args?.trim()){let t=e.args.trim();return t.length>80?`${t.slice(0,77)}…`:t}return``}let n=uE(e.args,t.key);if(typeof n!=`string`||!n.trim())return``;let r=t.isPath?dE(n):n;return r.length>120?`${r.slice(0,117)}…`:r}function pE(e,t){if(!e.startedAt)return;let n=Date.parse(e.startedAt);if(Number.isNaN(n))return;if(e.status===`running`)return Math.max(0,t-n);if(!e.at)return;let r=Date.parse(e.at);if(!Number.isNaN(r))return Math.max(0,r-n)}function mE(e,t){let n=pE(e,t);if(n!==void 0)return Fx(n)}var hE=new Set([`started`,`succeeded`,`failed`,`interrupted`,`agent_start`,`agent_end`,`waiting_for_input`,`resumed`,`operator_prompt`,`feedback_loop_decided`]);function gE(e){return!!(hE.has(e.event)||e.event===`turn_start`&&!mx(e))}function _E(e){let t=e.trim();if(!t)return`agent`;let n=t.toLowerCase();return n.endsWith(` agent`)?n:`${n} agent`}function vE(e){return e===`tool_start`||e===`tool_end`||e===`tool_progress`}function yE(e){let t=[],n=[];for(let r=0;r<e.length;r++){let i=e[r];if(i.event===`tool_start`){t.push({name:i.toolName??`tool`,args:i.argsPreview,at:i.at,id:i.toolCallId??`start-${r}`});continue}if(i.event===`tool_progress`){let e=-1;if(i.toolCallId&&(e=t.findIndex(e=>e.id===i.toolCallId)),e<0&&(e=t.length>0?t.length-1:-1),e<0)continue;let n=typeof i.textPreview==`string`?i.textPreview:void 0;n!==void 0&&(t[e].progressPreview=n);continue}if(i.event===`tool_end`){let e=i.toolCallId?t.findIndex(e=>e.id===i.toolCallId):t.findIndex(e=>e.name===(i.toolName??`tool`)),r=e>=0?t.splice(e,1)[0]:void 0;n.push({name:i.toolName??r?.name??`tool`,status:i.isError?`error`:`complete`,args:r?.args,result:i.resultPreview,at:i.at??r?.at,startedAt:r?.at})}}for(let e of t)n.push({name:e.name,status:`running`,args:e.args,progressPreview:e.progressPreview,at:e.at,startedAt:e.at});return n}function bE(e,t){let n=t.text?.trim();if(!n)return;let r=e[e.length-1];if(r?.kind===`message`&&r.event.role===`assistant`&&t.role===`assistant`&&r.event.text?.trim()){r.event={...r.event,text:`${r.event.text?.trim()}\n\n${n}`,at:t.at??r.event.at};return}e.push({kind:`message`,event:t})}function xE(e,t){let n=t?.mergeConsecutiveAssistant??!1,r=[],i=0;for(;i<e.length;){let t=e[i];if(vE(t.event)){let t=[];for(;i<e.length&&vE(e[i].event);)t.push(e[i]),i+=1;let n=yE(t);n.length>0&&r.push({kind:`tools`,calls:n});continue}t.event===`message`?t.text?.trim()&&(n&&t.role===`assistant`?bE(r,t):r.push({kind:`message`,event:t})):t.event===`operator_answer`?r.push({kind:`operator_answer`,event:t}):gE(t),i+=1}return r}var SE=4;function CE(e,t){return`${e.event}-${e.at??`na`}-${t}`}function wE(e){if(!e||typeof e!=`object`)return null;let t=e.kind;return t===`free_text`||t===`confirm`||t===`multi_question`||t===`artifact_backed`?e:null}function TE(e,t){return e===`user`?`Operator`:e===`assistant`||e===`thinking`||e===`opening`?_E(t):e.charAt(0).toUpperCase()+e.slice(1)}function EE(e){return e===`thinking`||e===`opening`?`text-[13px] leading-[1.55] text-[#a7aab2] whitespace-pre-wrap`:`text-[13px] leading-[1.55] text-[var(--sf-text-1)] whitespace-pre-wrap`}function DE({name:e}){let t=e.toLowerCase(),n=`size-3.5 shrink-0 text-[var(--sf-text-3)]`;return t===`bash`||t===`shell`?(0,Y.jsx)(ft,{className:n,"aria-hidden":`true`}):t===`read`||t===`grep`||t===`glob`||t===`write`||t===`edit`?(0,Y.jsx)(ue,{className:n,"aria-hidden":`true`}):(0,Y.jsx)(ft,{className:n,"aria-hidden":`true`})}function OE(e){if(e.status===`running`)return;let t=e.result?.trim();if(!t)return;let n=t.split(`
113
- `)[0]?.trim();if(n)return n.length>48?`${n.slice(0,45)}…`:n}function kE({call:e}){let[t,n]=(0,J.useState)(!1),r=fE(e),i=mE(e,Date.now()),a=OE(e),o=e.status===`running`?e.progressPreview:(e.status,e.result),s=!!o?.trim();return(0,Y.jsxs)(`div`,{className:`border-b border-b-[#ffffff12] last:border-b-0`,children:[(0,Y.jsxs)(`button`,{type:`button`,className:`flex h-8 w-full items-center gap-2 px-2.5 text-left disabled:cursor-default`,disabled:!s,"aria-expanded":s?t:void 0,onClick:()=>s&&n(e=>!e),children:[(0,Y.jsx)(l,{className:`size-3 shrink-0 text-[var(--sf-text-3)] transition-transform${t?` rotate-90`:``}${s?``:` opacity-0`}`,"aria-hidden":`true`}),(0,Y.jsx)(DE,{name:e.name}),(0,Y.jsx)(`span`,{className:`shrink-0 font-['Geist_Mono',monospace] text-xs text-[var(--sf-text-1)]`,children:e.name}),r?(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-['Geist_Mono',monospace] text-[11px] text-[var(--sf-text-3)]`,children:r}):(0,Y.jsx)(`span`,{className:`min-w-0 flex-1`}),e.status===`running`?(0,Y.jsx)(`span`,{className:`shrink-0 font-['Geist_Mono',monospace] text-xs text-[var(--sf-text-3)]`,children:`…`}):null,a&&e.status===`complete`?(0,Y.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1`,children:[(0,Y.jsx)(G,{className:`size-3 shrink-0 text-[var(--sf-ok)]`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace] text-xs text-[var(--sf-ok)]`,children:a})]}):null,a&&e.status===`error`?(0,Y.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1`,children:[(0,Y.jsx)(St,{className:`size-3 shrink-0 text-[var(--sf-fail)]`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace] text-xs text-[var(--sf-fail)]`,children:a})]}):null,i?(0,Y.jsx)(`span`,{className:`shrink-0 font-['Geist_Mono',monospace] text-xs text-[var(--sf-text-3)]`,children:i}):null,e.status===`complete`&&!a?(0,Y.jsx)(G,{className:`size-3 shrink-0 text-[var(--sf-ok)]`,"aria-hidden":`true`}):null,e.status===`error`&&!a?(0,Y.jsx)(St,{className:`size-3 shrink-0 text-[var(--sf-fail)]`,"aria-hidden":`true`}):null]}),t&&s?(0,Y.jsx)(`pre`,{className:`max-h-40 overflow-auto border-t border-t-[#ffffff12] bg-[var(--sf-raised)] px-3 py-2 font-['Geist_Mono',monospace] text-[11px] leading-relaxed text-[var(--sf-text-2)] whitespace-pre-wrap`,children:o}):null]})}function AE({calls:e}){let[t,n]=(0,J.useState)(!1),r=!t&&e.length>SE?e.length-SE:0,i=r>0?e.slice(0,SE):e;return(0,Y.jsxs)(`div`,{className:`ml-[30px] overflow-hidden rounded-lg border border-[#ffffff12]`,children:[i.map((e,t)=>(0,Y.jsx)(kE,{call:e},`${e.name}-${e.at??t}`)),r>0?(0,Y.jsxs)(`button`,{type:`button`,className:`h-8 w-full px-3 text-left text-[11px] text-[var(--sf-text-3)] hover:text-[var(--sf-text-2)]`,onClick:()=>n(!0),children:[`Show `,r,` more`]}):null]})}function jE(){return(0,Y.jsx)(`div`,{className:`flex size-5 shrink-0 items-center justify-center rounded-md border border-[#ffffff12] bg-[#1a1c21]`,"aria-hidden":`true`,children:(0,Y.jsx)(ot,{className:`size-[11px] text-[var(--sf-text-3)]`})})}function ME(){return(0,Y.jsx)(`div`,{className:`flex size-5 shrink-0 items-center justify-center rounded-md border border-[#ffffff12] bg-[#1a1c21] text-[10px] font-medium text-[var(--sf-text-2)]`,"aria-hidden":`true`,children:`Op`})}function NE({event:e,stageLabel:t}){let n=e.role??`message`,r=e.text?.trim();return r?(0,Y.jsxs)(`div`,{className:`flex gap-2.5`,children:[n===`user`?(0,Y.jsx)(ME,{}):(0,Y.jsx)(jE,{}),(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1 flex flex-col gap-1`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(`span`,{className:`text-xs font-medium text-[var(--sf-text-1)]`,children:TE(n,t)}),e.at?(0,Y.jsx)(`time`,{className:`font-['Geist_Mono',monospace] text-[11px] text-[#8b8f98]`,children:UC(e.at)}):null]}),(0,Y.jsx)(`p`,{className:EE(n),children:r})]})]}):null}function PE({envelope:e}){return(0,Y.jsxs)(`div`,{className:`flex gap-2.5`,children:[(0,Y.jsx)(jE,{}),(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1 flex flex-col gap-1`,children:[(0,Y.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,Y.jsx)(`span`,{className:`text-xs font-medium text-[var(--sf-text-1)]`,children:`Envelope`})}),(0,Y.jsxs)(`div`,{className:`rounded-lg border border-[var(--sf-ok)]/40 bg-[var(--sf-raised)] px-3 py-2`,children:[(0,Y.jsx)(`p`,{className:`text-[13px] text-[var(--sf-text-1)]`,children:e.summary}),e.artifacts.length>0?(0,Y.jsx)(`p`,{className:`mt-1 font-['Geist_Mono',monospace] text-[11px] text-[var(--sf-text-3)]`,children:e.artifacts.map(e=>e.split(`/`).pop()??e).join(` · `)}):null]})]})]})}function FE({event:e}){let t=wE(e.answer),n,r;if(t?.kind===`free_text`)n=`Operator`,r=t.text;else if(t?.kind===`confirm`||t?.kind===`artifact_backed`)n=`Operator`,r=t.text?.trim()?t.text:t.decision;else if(t?.kind===`multi_question`){n=`Operator`;let e=Object.entries(t.answers??{}).map(([e,t])=>`${e}: ${t}`);r=e.length>0?e.join(`
114
- `):void 0}else r=mx(e),n=`Operator`;return(0,Y.jsxs)(`div`,{className:`flex gap-2.5`,children:[(0,Y.jsx)(ME,{}),(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1 flex flex-col gap-1`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(`span`,{className:`text-xs font-medium text-[var(--sf-text-1)]`,children:n??`Operator`}),e.at?(0,Y.jsx)(`time`,{className:`font-['Geist_Mono',monospace] text-[11px] text-[#8b8f98]`,children:UC(e.at)}):null]}),r?(0,Y.jsx)(`p`,{className:`text-[13px] leading-[1.55] text-[var(--sf-text-2)] whitespace-pre-wrap`,children:r}):null]})]})}function IE({events:e,inboundEnvelope:t,stageLabel:n}){let r=[];t&&r.push((0,Y.jsx)(PE,{envelope:t},`inbound-envelope`));let i=xE(e);for(let e=0;e<i.length;e++){let t=i[e];if(t.kind===`tools`){r.push((0,Y.jsx)(AE,{calls:t.calls},`tools-${e}`));continue}if(t.kind===`message`){r.push((0,Y.jsx)(NE,{event:t.event,stageLabel:n},CE(t.event,e)));continue}t.kind===`operator_answer`&&r.push((0,Y.jsx)(FE,{event:t.event},CE(t.event,e)))}return r.length===0?(0,Y.jsx)(`p`,{className:`text-[13px] text-[var(--sf-text-3)]`,children:`No activity yet.`}):(0,Y.jsx)(Y.Fragment,{children:r})}function LE(e){let t=e.waiting_stage_id;if(t)return`Waiting on you: ${gC(e,t)}`}function RE(e,t,n){let r=fT(e.pipeline_track),i=t=>gC(e,t);return{trackLayout:{mode:`linear`,linearStages:t.map(e=>({id:e.id,label:e.label,status:e.status,meta:e.meta}))},detailListRows:e.stages.map(t=>{let n=r.get(t.stage_id),a=e.waiting_stage_id===t.stage_id||t.status===`waiting_for_input`,o=n?GS({readiness:n.readiness,blocked_by:n.blocked_by,status:t.status,blockersLabel:i}):void 0;return{stageId:t.stage_id,label:i(t.stage_id),status:t.status,readiness:n?.readiness,attemptCount:t.attempt_count,meta:t.last_at,promptSummary:t.pending_prompt?.kind,readinessLine:n?.readiness===`blocked`?o:void 0,isWaitingAttention:a}}),listHeader:LE(e)}}var zE=`sf-run-detail-work-h`;function BE(e,t){let n=t-140;return t<340?Math.max(0,n):Math.max(200,Math.min(e,n))}function VE(){try{let e=sessionStorage.getItem(zE);if(e==null)return null;let t=Number(e);return Number.isFinite(t)?t:null}catch{return null}}function HE(e){try{sessionStorage.setItem(zE,String(e))}catch{}}function UE(e){let[t,n]=(0,J.useState)(()=>VE()??300),[r,i]=(0,J.useState)(0),[a,o]=(0,J.useState)(!1),s=(0,J.useRef)(null);(0,J.useEffect)(()=>{let t=e.current;if(!t)return;let n=()=>i(t.getBoundingClientRect().height);n();let r=new ResizeObserver(n);return r.observe(t),()=>r.disconnect()},[e]);let c=(0,J.useCallback)(t=>{let i=BE(t,e.current?.getBoundingClientRect().height??r);n(i),HE(i)},[r,e]),l=Math.max(0,r-140);return{workHeight:t,paneHeight:r,splitDragging:a,setSplitDragging:o,splitGestureRef:s,applyWorkHeight:c,splitMin:r<340?l:200,splitMax:l}}function WE({workHeight:e,splitMin:t,splitMax:n,splitDragging:r,setSplitDragging:i,splitGestureRef:a,applyWorkHeight:o}){return(0,Y.jsx)(`div`,{className:`work-split${r?` is-dragging`:``}`,role:`separator`,"aria-orientation":`horizontal`,"aria-label":`Resize workspace`,"aria-valuemin":t,"aria-valuemax":n,"aria-valuenow":Math.round(e),tabIndex:0,onPointerDown:t=>{(t.button==null||t.button===0)&&(t.preventDefault(),t.currentTarget.setPointerCapture(t.pointerId),i(!0),a.current={id:t.pointerId,y:t.clientY,h:e})},onPointerMove:e=>{let t=a.current;!t||t.id!==e.pointerId||o(t.h+(t.y-e.clientY))},onPointerUp:e=>{a.current?.id===e.pointerId&&(a.current=null,i(!1))},onPointerCancel:e=>{a.current?.id===e.pointerId&&(a.current=null,i(!1))},onKeyDown:r=>{r.key===`ArrowUp`&&(r.preventDefault(),o(e+24)),r.key===`ArrowDown`&&(r.preventDefault(),o(e-24)),r.key===`Home`&&(r.preventDefault(),o(n)),r.key===`End`&&(r.preventDefault(),o(t))},children:(0,Y.jsx)(`span`,{className:`work-split__grip`,"aria-hidden":`true`})})}function GE({runId:e,view:t,onBack:n,onReran:r,onOpenStream:i,onOpenArtifact:a,onOpenEnvelope:o}){let{snapshot:s}=Jo(),c=s.health,l=Yo(),[u,d]=(0,J.useState)(null),[f,p]=(0,J.useState)(null),[m,h]=(0,J.useState)(null),[g,_]=(0,J.useState)(`timeline`),[v,y]=(0,J.useState)(`transcript`),[b,x]=(0,J.useState)(null),[S,C]=(0,J.useState)(null),[w,T]=(0,J.useState)(!1),[E,D]=(0,J.useState)(null),[O,k]=(0,J.useState)(()=>t.kind===`stream`&&t.stageId?t.stageId:null),A=(0,J.useRef)(null),[j,M]=(0,J.useState)(null),[N,P]=(0,J.useState)(null),[F,I]=(0,J.useState)(!1),L=(0,J.useRef)(!1),R=(0,J.useRef)(null),{workHeight:z,splitDragging:B,setSplitDragging:V,splitGestureRef:H,applyWorkHeight:ee,splitMin:te,splitMax:ne}=UE(R),re=(0,J.useRef)(i);re.current=i;let ie=t.kind===`stream`?t.stageId:void 0,ae=(0,J.useCallback)(async()=>{try{let t=await Di(e);d(t),h(null)}catch(e){h(e instanceof Error?e.message:String(e))}},[e]),oe=(0,J.useCallback)(async()=>{await ae(),l.refresh()},[ae,l]),{retryingStageIds:se,error:ce,retry:le,clearError:ue}=El(e,oe),de=(0,J.useCallback)(e=>{k(e),i(e),le(e)},[i,le]),{resumingStageIds:fe,error:pe,resume:me,clearError:he}=Ol(e,oe),ge=(0,J.useCallback)(e=>{k(e),i(e),me(e)},[i,me]),{abandoningStageId:_e,error:ve,abandon:ye,clearError:be}=Ml(e,oe),xe=(0,J.useCallback)(async()=>{l.refresh(),n()},[l,n]),{cancelling:Se,error:Ce,cancel:we,clearError:Te}=HS(e,oe),{deleting:Ee,error:De,deleteRun:Oe,clearError:ke}=US(e,u?.status,xe),Ae={retryingStageIds:se,abandoningStageId:_e,resumingStageIds:fe};(0,J.useEffect)(()=>{k(ie??null),A.current=null,M(null),P(null),d(null),h(null),x(null),C(null),T(!1),D(null),L.current=!1,_(`timeline`),y(`transcript`)},[e]),(0,J.useEffect)(()=>{ae()},[ae]),(0,J.useEffect)(()=>{t.kind===`stream`&&k(ie??null)},[t.kind,ie]),(0,J.useEffect)(()=>{let e=!1;return Fi().then(t=>{e||p(t.pipelines)}).catch(()=>{e||p([])}),()=>{e=!0}},[]);let je=PC(u,{retrying:se.size>0,abandoning:_e!==null});(0,J.useEffect)(()=>{if(!je)return;let e=window.setInterval(()=>void ae(),1e3);return()=>window.clearInterval(e)},[ae,je]);let Me=f?.find(e=>e.id===u?.pipeline_id)?.stages.map(e=>e.id)??[],U=u?FC(t,u,{previousStageId:O??A.current,userPicked:O!==null,drawerStageId:j,dismissedWaitKey:N,wasWaitingArtifact:L.current},Me):null;U&&(A.current=U.selectedStageId),(0,J.useEffect)(()=>{U&&(U.kind===`artifact`&&U.selectedPath?y(`artifacts`):U.kind===`envelope`&&y(`envelope`))},[U?.kind,U?.selectedPath]);let Ne=U?.selectedStageId,Pe=U?.selectedStage?.attempt_count;(0,J.useEffect)(()=>{if(!Ne){x(null),C(null);return}let t=!1;return x(null),C(null),Oi(e,Ne).then(e=>{t||x(e)}).catch(e=>{t||C(e instanceof Error?e.message:String(e))}),()=>{t=!0}},[e,Ne,Pe]),(0,J.useEffect)(()=>{let e=IC({view:t,streamViewStageId:ie,run:u,plannedStageIds:Me,selectedStageId:U?.selectedStageId??null,syncStreamRoute:U?.syncStreamRoute??!1,userPickedStageId:O,dismissedWaitKey:N});e.action===`openStream`&&re.current(e.stageId)},[t,ie,u,Me,U?.selectedStageId,U?.syncStreamRoute,O,N]);let Fe=U?.selectedStage??null,W=Date.now(),Ie=u?.stages??[],Le=(0,J.useCallback)(e=>{k(e),i(e)},[i]);async function Re(){I(!0),h(null),ue(),be(),he(),Te(),ke();try{r((await Da(e)).runId)}catch(e){h(e instanceof Error?e.message:String(e))}finally{I(!1)}}let ze=(0,J.useCallback)(async(t,n)=>{T(!0),D(null);try{await Aa(e,t,n),await oe()}catch(e){D(e instanceof Error?e.message:String(e))}finally{T(!1)}},[oe,e]),Be=(0,J.useCallback)(async t=>{if(window.confirm(`Stop manual recovery? This stage will remain failed in this run.`)){T(!0),D(null);try{await ja(e,t),await oe()}catch(e){D(e instanceof Error?e.message:String(e))}finally{T(!1)}}},[oe,e]),Ve=U?.inboundEnvelope?.summary??null,He=U?.kind===`artifact`?U.selectedPath:null,Ue=(U?.trackStages.length??0)>0||(u?.pipeline_track?.nodes?.length??0)>0,We=ce??pe??ve??Ce??De??E;if(m&&!u)return(0,Y.jsx)(`div`,{className:`flex min-h-full min-w-0 flex-1 flex-col px-6 py-4`,children:(0,Y.jsx)(`div`,{className:`banner banner--error`,children:m})});if(!u||!U)return(0,Y.jsx)(Mw,{runId:e,onBack:n});let Ge;if(g===`timeline`)Ge=(0,Y.jsx)(aE,{run:u,stages:Ie,selectedStageId:U.selectedStageId,onSelectStage:Le,now:W});else if(g===`graph`&&Ue)Ge=(0,Y.jsx)(OT,{run:u,trackStages:U.trackStages,spatialLayout:U.spatialLayout,selectedStageId:U.selectedStageId,onSelectStage:Le});else if(g===`list`){let e=RE(u,U.trackStages,U.selectedStageId);Ge=(0,Y.jsx)(tE,{detailListRows:e.detailListRows,listHeader:e.listHeader,selectedStageId:U.selectedStageId,onSelect:Le,retryingStageIds:se,onRetryStage:de,abandoningStageId:_e,onAbandonStage:ye})}else Ge=(0,Y.jsx)(`p`,{className:`px-6 py-3 text-[13px] text-[var(--sf-text-2)]`,children:`No stages have started yet.`});let Ke;if(U.selectedStageId&&Fe){let t=U.trackStages.find(e=>e.id===Fe.stage_id)?.label??Fe.stage_id;Ke=(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[(0,Y.jsx)(KC,{tab:v,onTabChange:y,stage:Fe,stageLabel:t,eventCount:Fe.events.length,artifactCount:Fe.artifacts?.length??0}),v===`transcript`?(0,Y.jsxs)(oE,{autoScroll:U.liveStream,scrollKey:Fe.events.length,children:[(0,Y.jsx)(IE,{events:Fe.events,inboundEnvelope:U.inboundEnvelope,stageLabel:t}),b||S?(0,Y.jsx)(`div`,{className:`border-t border-t-[#ffffff12] pt-2`,children:(0,Y.jsx)(NS,{history:b,error:S,recovering:w,onRecover:e=>void ze(Fe.stage_id,e),onStop:()=>void Be(Fe.stage_id)})}):null]}):null,v===`events`?(0,Y.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto`,children:(0,Y.jsx)(hw,{events:Fe.events,stageId:Fe.stage_id,live:U.liveStream})}):null,v===`envelope`?(0,Y.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto`,children:(0,Y.jsx)(uw,{run:u,stage:Fe,inboundEnvelope:U.inboundEnvelope,inboundFromStageId:U.inboundFromStageId,outboundEnvelope:U.outboundEnvelope,outboundToStageId:U.outboundToStageId,onArtifactClick:e=>{y(`artifacts`),a(e)}})}):null,v===`artifacts`?(0,Y.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto`,children:(0,Y.jsx)(ZC,{runId:e,run:u,stage:Fe,initialPath:He,readOnly:U.artifactReadOnly})}):null,Fe.status===`waiting_for_input`||U.showFeedbackDecide&&U.feedbackDecide?(0,Y.jsxs)(`div`,{className:`shrink-0 px-6 pb-3 empty:hidden`,children:[(0,Y.jsx)(rw,{run:u,stage:Fe,health:c,onAnswered:()=>void oe(),onOpenArtifact:e=>{y(`artifacts`),a(e)}}),U.showFeedbackDecide&&U.feedbackDecide?(0,Y.jsx)(nx,{runId:e,decide:U.feedbackDecide,onSuccess:oe}):null]}):null]})}else Ke=(0,Y.jsx)(`p`,{className:`px-6 py-4 text-[13px] text-[var(--sf-text-2)]`,children:`Select a stage to view the transcript.`});return(0,Y.jsxs)(`div`,{className:`flex h-screen min-h-0 flex-col overflow-hidden`,children:[(0,Y.jsx)(jw,{run:u,onBack:n,viewMode:g,onViewModeChange:_,selectedStage:Fe,selectedStageLabel:Fe?gC(u,Fe.stage_id):void 0,retryBlocked:zC(u),onCancel:()=>{Te(),we()},onDelete:()=>{ke(),Oe()},onRerun:()=>void Re(),onRetryStage:Fe?()=>de(Fe.stage_id):void 0,onResumeStage:Fe?()=>ge(Fe.stage_id):void 0,onAbandonStage:Fe?()=>ye(Fe.stage_id):void 0,cancelling:Se,deleting:Ee,rerunning:F,retrying:Fe?se.has(Fe.stage_id):!1,resuming:Fe?fe.has(Fe.stage_id):!1,abandoning:_e===Fe?.stage_id,now:W}),We?(0,Y.jsx)(`div`,{className:`banner banner--error`,children:We}):null,(0,Y.jsxs)(`div`,{ref:R,className:`pane flex min-h-0 flex-1 flex-col overflow-hidden${B?` is-resizing`:``}`,children:[(0,Y.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-hidden${g===`list`||g===`timeline`||g===`graph`?``:` border-b border-b-[#ffffff12] pt-3 pb-2`}`,children:Ge}),(0,Y.jsx)(WE,{workHeight:z,splitMin:te,splitMax:ne,splitDragging:B,setSplitDragging:V,splitGestureRef:H,applyWorkHeight:ee}),(0,Y.jsxs)(`div`,{className:`flex min-h-0 w-full shrink-0 overflow-hidden`,style:{height:z},children:[(0,Y.jsx)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col border-r border-r-[#ffffff12]`,children:Ke}),(0,Y.jsx)(dT,{run:u,stage:Fe,health:c,inboundSummary:Ve,inboundFromStageId:U?.inboundFromStageId,actionBusy:Ae,onRetry:de,onResume:ge,onAbandon:ye,onOpenArtifact:e=>{y(`artifacts`),a(e)},onOpenEnvelope:o,artifactPath:Fe?.artifacts?.[0]??null})]})]}),U.drawer?(0,Y.jsx)(tx,{isOpen:!0,onClose:()=>M(null),fromStageId:U.drawer.fromStageId,toStageId:U.drawer.toStageId,envelope:U.drawer.envelope,onOpenFullRecord:()=>{let e=U.drawer?.fromStageId;M(null),e&&o(e)},onArtifactClick:e=>{M(null),a(e)}}):null]})}function KE(e,t){return e<=0?300:Math.max(200,e-t-140)}function qE(e){return e===`alive`?(0,Y.jsx)(`span`,{className:`chip`,children:`session alive`}):e===`closed`?(0,Y.jsx)(`span`,{className:`chip`,children:`session closed`}):null}function JE(e,t,n){let r=t.selectedStage;if(t.composer.kind===`reply`&&r)return(0,Y.jsx)(`div`,{className:`composer`,children:(0,Y.jsx)(`div`,{className:`composer__inner`,children:(0,Y.jsx)(Ah,{runId:e,stageId:r.stage_id,prompt:t.composer.prompt,onReviewSideBySide:n})})});if(t.composer.kind===`idle`)return(0,Y.jsx)(`div`,{className:`composer composer--idle`,children:(0,Y.jsx)(`div`,{className:`composer__inner`,children:(0,Y.jsx)(`p`,{className:`muted`,children:t.composer.label})})})}function YE({runId:e,view:t,onBack:n,onReran:r,onOpenStream:i,onOpenArtifact:a,onOpenEnvelope:o}){return Es()?(0,Y.jsx)(GE,{runId:e,view:t,onBack:n,onReran:r,onOpenStream:i,onOpenArtifact:a,onOpenEnvelope:o}):(0,Y.jsx)(XE,{runId:e,view:t,onBack:n,onReran:r,onOpenStream:i,onOpenArtifact:a,onOpenEnvelope:o})}function XE({runId:e,view:t,onBack:n,onReran:r,onOpenStream:i,onOpenArtifact:a,onOpenEnvelope:o}){let[s,c]=(0,J.useState)(null),[l,u]=(0,J.useState)(null),[d,f]=(0,J.useState)(null),[p,m]=(0,J.useState)(null),[h,g]=(0,J.useState)(null),[_,v]=(0,J.useState)(null),[y,b]=(0,J.useState)(!1),[x,S]=(0,J.useState)(null),[C,w]=(0,J.useState)(()=>t.kind===`stream`&&t.stageId?t.stageId:null),T=(0,J.useRef)(null),[E,D]=(0,J.useState)(null),[O,k]=(0,J.useState)(null),[A,j]=(0,J.useState)(300),[M,N]=(0,J.useState)(!1),[P,F]=(0,J.useState)(null),[I,L]=(0,J.useState)(0),[R,z]=(0,J.useState)(0),[B,V]=(0,J.useState)(!1),H=(0,J.useRef)(null),ee=(0,J.useRef)(null),[te,ne]=(0,J.useState)(!1),re=(0,J.useRef)(!1),ie=(0,J.useRef)(i);ie.current=i;let ae=Yo(),oe=t.kind===`stream`?t.stageId:void 0,se=(0,J.useCallback)(async()=>{try{let t=await Di(e);c(t),m(null)}catch(e){m(e instanceof Error?e.message:String(e))}},[e]),ce=(0,J.useCallback)(async()=>{await se(),ae.refresh()},[se,ae]),le=(0,J.useCallback)(async(t,n)=>{b(!0),S(null);try{await Aa(e,t,n),await ce()}catch(e){S(e instanceof Error?e.message:String(e))}finally{b(!1)}},[ce,e]),ue=(0,J.useCallback)(async t=>{if(window.confirm(`Stop manual recovery? This stage will remain failed in this run.`)){b(!0),S(null);try{await ja(e,t),await ce()}catch(e){S(e instanceof Error?e.message:String(e))}finally{b(!1)}}},[ce,e]),{retryingStageIds:de,error:fe,retry:pe,clearError:me}=El(e,ce),he=(0,J.useCallback)(e=>{w(e),i(e),pe(e)},[i,pe]),{resumingStageIds:ge,error:_e,resume:ve,clearError:ye}=Ol(e,ce),be=(0,J.useCallback)(e=>{w(e),i(e),ve(e)},[i,ve]),{abandoningStageId:xe,error:Se,abandon:Ce,clearError:we}=Ml(e,ce),Te=(0,J.useCallback)(async()=>{ae.refresh(),n()},[ae,n]),{cancelling:Ee,error:De,cancel:Oe,clearError:ke}=HS(e,ce),{deleting:Ae,error:je,deleteRun:Me,clearError:U}=US(e,s?.status,Te),Ne={retryingStageIds:de,abandoningStageId:xe,resumingStageIds:ge};(0,J.useEffect)(()=>{w(oe??null),T.current=null,D(null),k(null),j(300),N(!1),F(null),c(null),m(null),g(null),v(null),b(!1),S(null),re.current=!1},[e]),(0,J.useEffect)(()=>{se()},[se]),(0,J.useEffect)(()=>{t.kind===`stream`&&w(oe??null)},[t.kind,oe]),(0,J.useEffect)(()=>{let e=!1;return Fi().then(t=>{e||f(t.pipelines)}).catch(()=>{e||f([])}),()=>{e=!0}},[]);let Pe=PC(s,{retrying:de.size>0,abandoning:xe!==null});(0,J.useEffect)(()=>{if(!Pe)return;let e=window.setInterval(()=>void se(),1e3);return()=>window.clearInterval(e)},[se,Pe]);let Fe=d?.find(e=>e.id===s?.pipeline_id)?.stages.map(e=>e.id)??[],W=s?FC(t,s,{previousStageId:C??T.current,userPicked:C!==null,drawerStageId:E,dismissedWaitKey:O,wasWaitingArtifact:re.current},Fe):null,Ie=W?.selectedStageId,Le=W?.selectedStage?.attempt_count;(0,J.useEffect)(()=>{if(!Ie){g(null),v(null);return}let t=!1;return g(null),v(null),Oi(e,Ie).then(e=>{t||g(e)}).catch(e=>{t||v(e instanceof Error?e.message:String(e))}),()=>{t=!0}},[e,Ie,Le]),W&&(T.current=W.selectedStageId),W?.waitingArtifact?re.current=!0:t.kind!==`artifact`&&(re.current=!1),(0,J.useEffect)(()=>{let e=IC({view:t,streamViewStageId:oe,run:s,plannedStageIds:Fe,selectedStageId:W?.selectedStageId??null,syncStreamRoute:W?.syncStreamRoute??!1,userPickedStageId:C,dismissedWaitKey:O});e.action===`openStream`&&ie.current(e.stageId)},[t,oe,s,Fe,W?.selectedStageId,W?.syncStreamRoute,C,O]),(0,J.useEffect)(()=>{let e=H.current;if(!e)return;let t=()=>{L(e.getBoundingClientRect().height),z(e.firstElementChild?.getBoundingClientRect().height??0)};t();let n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[]);let Re=(0,J.useCallback)(e=>{let t=H.current?.getBoundingClientRect().height??I;N(!0),j(BE(e,t))},[I]),ze=(0,J.useCallback)(()=>{s&&k(lC(s)),w(null),T.current=null,D(null),i()},[i,s]),Be=(0,J.useCallback)(()=>{let e=W?.selectedStageId??(t.kind===`envelope`?t.stageId:void 0)??C;if(e){w(e),i(e);return}i()},[i,C,t,W?.selectedStageId]);async function Ve(){ne(!0),m(null),me(),we(),ye(),ke(),U();try{r((await Da(e)).runId)}catch(e){m(e instanceof Error?e.message:String(e))}finally{ne(!1)}}let He=W?.selectedStage??null,Ue=h!==null&&h.stage_id===He?.stage_id?h.manual_recovery:void 0,We=W?.selectedPath,Ge=s?Ms(s.status):void 0,Ke=W?JE(e,W,a):void 0,qe=!!(He&&W?.composer.kind===`reply`&&Dh(W.composer.prompt)!==null),Je=He&&kh(He.status)?He:null,Ye=Je!==null&&l===Je.stage_id,Xe=qe&&!M,Ze=Xe?KE(I,R):A,Qe=Xe&&P===null?`logs`:P,$e=!!(W&&W.spatialLayout.nodes.length>0),et=!!(W&&(W.selectedStageId||W.kind===`artifact`||W.kind===`envelope`)),tt=He?Os(He.events):!1,nt=(0,Y.jsx)(`button`,{type:`button`,className:`btn btn--sm`,onClick:ze,children:`Hide workspace`}),rt;if(p)rt=(0,Y.jsx)(`div`,{style:{padding:`var(--spacing-4)`},children:(0,Y.jsx)(`div`,{className:`banner banner--error`,children:p})});else if(!s||!W)rt=(0,Y.jsx)(`div`,{style:{padding:`var(--spacing-4)`},children:(0,Y.jsx)(`p`,{children:`Loading…`})});else if(W.kind===`artifact`&&We)rt=(0,Y.jsx)(Bb,{runId:e,path:We,readOnly:W.artifactReadOnly,onBackToTranscript:Be,onHide:ze});else if(W.kind===`envelope`&&W.envelope)rt=W.envelope.envelope?(0,Y.jsx)(Qb,{fromStageId:W.envelope.fromStageId,toStageId:W.envelope.toStageId,envelope:W.envelope.envelope,onBackToTranscript:Be,onHide:ze,onArtifactClick:a,stageLabel:e=>gC(s,e)}):(0,Y.jsxs)(`div`,{className:`stream`,style:{height:`100%`},children:[(0,Y.jsxs)(`header`,{className:`stream__head`,children:[(0,Y.jsx)(`h3`,{className:`stream__name`,children:`Handoff envelope`}),(0,Y.jsx)(`span`,{className:`topbar__spacer`}),(0,Y.jsxs)(`div`,{className:`stream__head-trail`,children:[(0,Y.jsx)(`button`,{type:`button`,className:`btn btn--sm`,onClick:Be,children:`← Transcript`}),nt]})]}),(0,Y.jsx)(`div`,{style:{padding:`var(--spacing-4)`},children:(0,Y.jsxs)(`div`,{className:`banner banner--warning`,children:[W.envelope.fromStageId,` has not emitted a handoff envelope.`]})})]});else if(W.selectedStageId){let e=W.selectedStageId,t=He?Ms(He.status):void 0,n=Qe!==`transcript`,r=Qe!==`logs`,i=(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`button`,{type:`button`,className:`btn btn--sm`,onClick:()=>{N(!0),F(r?`logs`:null)},children:r?`Hide logs`:`Show logs`}),nt]}),a=(0,Y.jsxs)(Y.Fragment,{children:[He?(0,Y.jsx)(Zs,{costUsd:He.cost_usd}):null,(0,Y.jsx)(`button`,{type:`button`,className:`btn btn--sm`,onClick:()=>{N(!0),F(n?`transcript`:null)},children:n?`Hide transcript`:`Show transcript`}),nt]});rt=(0,Y.jsxs)(`div`,{className:`center-split`,children:[(0,Y.jsx)(`div`,{className:`center-split__transcript`,hidden:!n,children:(0,Y.jsxs)(kS,{stageName:W.trackStages.find(t=>t.id===e)?.label??e,status:(0,Y.jsxs)(Y.Fragment,{children:[tt?(0,Y.jsxs)(`span`,{className:`status status--failed`,children:[(0,Y.jsx)(`span`,{className:`dot dot--failed`}),` `,ks()]}):(0,Y.jsxs)(`span`,{className:`status${t&&t!==`running`?` status--${t}`:``}`,children:[(0,Y.jsx)(`span`,{className:`dot${t?` dot--${t}`:``}`}),` `,He?Ns(He.status):`pending`]}),He?(0,Y.jsx)(Nh,{count:He.attempt_count}):null,He?(0,Y.jsx)(Zs,{costUsd:He.cost_usd}):null,qE(W.sessionChip),He&&Cl(He)&&Ue===void 0?(0,Y.jsx)(`button`,{type:`button`,className:`btn btn--sm`,disabled:wl(Ne,He.stage_id),onClick:()=>be(He.stage_id),children:ge.has(He.stage_id)?`Resuming…`:`Resume session`}):null,He&&xl(He.status)&&Ue===void 0?(0,Y.jsx)(`button`,{type:`button`,className:`btn btn--sm`,disabled:wl(Ne,He.stage_id),onClick:()=>he(He.stage_id),children:de.has(He.stage_id)?`Retrying…`:`Retry stage`}):null,Je!==null&&!qe?(0,Y.jsx)(`button`,{type:`button`,className:`btn btn--sm`,"aria-pressed":Ye,onClick:()=>u(Ye?null:Je.stage_id),children:nh}):null,He&&Sl(He.status)?(0,Y.jsx)(`button`,{type:`button`,className:`btn btn--sm btn--reject`,disabled:wl(Ne,He.stage_id),onClick:()=>Ce(He.stage_id),children:xe===He.stage_id?`Abandoning…`:`Abandon`}):null]}),trailing:i,autoScroll:W.liveStream,scrollKey:He?.events.length,composer:Ke,children:[(0,Y.jsx)(kx,{events:He?.events??[],inboundEnvelope:W.inboundEnvelope}),(0,Y.jsx)(NS,{history:h,error:_,recovering:y,onRecover:He?e=>void le(He.stage_id,e):void 0,onStop:He?()=>void ue(He.stage_id):void 0})]})}),(0,Y.jsx)(`div`,{className:`center-split__logs`,hidden:!r,children:(0,Y.jsx)(Qx,{events:He?.events??[],headerAction:a})})]})}let it=Math.max(0,I-140),at=I<340?it:200;return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`div`,{ref:H,className:`pane run-detail${et?` has-stage`:``}${B?` is-resizing`:``}`,style:{height:`100%`,"--work-h":`${Ze}px`},children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsxs)(`div`,{className:`topbar`,children:[(0,Y.jsx)(`a`,{className:`topbar__back`,href:`#/runs`,onClick:e=>{e.preventDefault(),n()},children:`← Runs`}),(0,Y.jsx)(`h2`,{className:`topbar__title`,children:s?es(s):`Loading…`}),s?(0,Y.jsx)(`span`,{className:`topbar__sub`,title:$o(s),children:$o(s)}):null,s?.binding?(0,Y.jsx)(`span`,{className:`topbar__sub`,title:is(s.binding),children:rs(s.binding)}):null,s?(0,Y.jsxs)(`span`,{className:`status${Ge&&Ge!==`running`?` status--${Ge}`:``}`,title:s.status===`cancelled`&&s.cancel_reason?s.cancel_reason:void 0,children:[(0,Y.jsx)(`span`,{className:`dot${Ge?` dot--${Ge}`:``}`}),` `,s.status===`cancelled`?As(s.cancel_reason):Ns(s.status)]}):null,s&&Xs(s.total_cost_usd)?(0,Y.jsx)(`span`,{className:`topbar__sub`,title:`Total cost across every stage in this run`,children:Xs(s.total_cost_usd)}):null,(0,Y.jsx)(`span`,{className:`topbar__spacer`}),s&&IS(s.status)?(0,Y.jsx)(`button`,{type:`button`,className:`btn btn--sm`,disabled:Ee||Ae||te,onClick:()=>{ke(),Oe()},children:Ee?`Cancelling…`:`Cancel`}):null,s&&LS(s.status)?(0,Y.jsx)(`button`,{type:`button`,className:`btn btn--sm btn--reject`,disabled:Ee||Ae||te,onClick:()=>{U(),Me()},children:Ae?`Deleting…`:`Delete`}):null,(0,Y.jsx)(`button`,{className:`btn btn--primary`,disabled:te||Ee||Ae,onClick:()=>void Ve(),children:te?s?.status===`created`?`Starting…`:`Starting fresh…`:s?.status===`created`?`Start run`:`Start fresh`})]}),fe?(0,Y.jsx)(`div`,{className:`banner banner--error`,style:{padding:`var(--spacing-3) var(--spacing-5)`},children:fe}):null,_e?(0,Y.jsx)(`div`,{className:`banner banner--error`,style:{padding:`var(--spacing-3) var(--spacing-5)`},children:_e}):null,Se?(0,Y.jsx)(`div`,{className:`banner banner--error`,style:{padding:`var(--spacing-3) var(--spacing-5)`},children:Se}):null,De?(0,Y.jsx)(`div`,{className:`banner banner--error`,style:{padding:`var(--spacing-3) var(--spacing-5)`},children:De}):null,je?(0,Y.jsx)(`div`,{className:`banner banner--error`,style:{padding:`var(--spacing-3) var(--spacing-5)`},children:je}):null,x?(0,Y.jsx)(`div`,{className:`banner banner--error`,style:{padding:`var(--spacing-3) var(--spacing-5)`},children:x}):null]}),p&&!s?(0,Y.jsx)(`div`,{style:{padding:`var(--spacing-4)`},children:(0,Y.jsx)(`div`,{className:`banner banner--error`,children:p})}):!s||!W?(0,Y.jsx)(`div`,{style:{padding:`var(--spacing-4)`},children:(0,Y.jsx)(`p`,{children:`Loading…`})}):$e?(0,Y.jsxs)(`div`,{className:`workspace`,children:[s.active_feedback_loop||(s.feedback_loops?.length??0)>0?(0,Y.jsx)(sx,{active:s.active_feedback_loop,history:s.feedback_loops??[]}):null,(0,Y.jsx)(CS,{layout:W.spatialLayout,stages:s.stages,nodeChrome:W.nodeChrome,selectedStageId:W.selectedStageId,onSelectStage:e=>{w(e),i(e)},onDeselect:ze,retryingStageIds:de,onRetryStage:he,resumingStageIds:ge,onResumeStage:be,abandoningStageId:xe,onAbandonStage:Ce,runId:e,showHint:!et,feedbackOverlays:W.feedbackOverlays})]}):(0,Y.jsx)(`div`,{style:{padding:`var(--spacing-4)`},children:(0,Y.jsx)(`p`,{children:`No stages have started yet.`})}),et&&s&&W?(0,Y.jsxs)(`div`,{className:`work`,children:[(0,Y.jsx)(`div`,{className:`work-split${B?` is-dragging`:``}`,role:`separator`,"aria-orientation":`horizontal`,"aria-label":`Resize workspace`,"aria-valuemin":at,"aria-valuemax":it,"aria-valuenow":Math.round(Ze),tabIndex:0,onPointerDown:e=>{(e.button==null||e.button===0)&&(e.preventDefault(),e.currentTarget.setPointerCapture(e.pointerId),V(!0),ee.current={id:e.pointerId,y:e.clientY,h:Ze})},onPointerMove:e=>{let t=ee.current;!t||t.id!==e.pointerId||Re(t.h+(t.y-e.clientY))},onPointerUp:e=>{ee.current?.id===e.pointerId&&(ee.current=null,V(!1))},onPointerCancel:e=>{ee.current?.id===e.pointerId&&(ee.current=null,V(!1))},onKeyDown:e=>{e.key===`ArrowUp`&&(e.preventDefault(),Re(Ze+24)),e.key===`ArrowDown`&&(e.preventDefault(),Re(Ze-24)),e.key===`Home`&&(e.preventDefault(),Re(it)),e.key===`End`&&(e.preventDefault(),Re(at))},children:(0,Y.jsx)(`span`,{className:`work-split__grip`,"aria-hidden":`true`})}),(0,Y.jsxs)(`div`,{className:`work-row`,children:[(0,Y.jsx)(`div`,{className:`aside`,style:{width:240,flexShrink:0,overflow:`auto`},children:(0,Y.jsx)(Fh,{files:W.artifactFiles,selectedPath:We,onSelect:e=>{let t=JS(e);if(t){w(t),o(t);return}a(e)},footer:(0,Y.jsx)(dm,{trigger:(0,Y.jsx)(`span`,{style:{fontSize:`var(--font-size-sm)`,fontWeight:500},children:`Input`}),defaultIsOpen:!1,children:(0,Y.jsx)($p,{code:s.task_yaml,language:`yaml`,container:`section`,maxHeight:200,width:`100%`})})})}),(0,Y.jsx)(`div`,{style:{flex:1,minWidth:0,minHeight:0,display:`flex`,flexDirection:`column`},children:rt}),W.showFeedbackDecide&&W.feedbackDecide?(0,Y.jsx)(`div`,{className:`decide`,style:{width:320,flexShrink:0},children:(0,Y.jsx)(nx,{runId:e,decide:W.feedbackDecide,onSuccess:ce})}):W.showDecide&&W.decidePrompt&&He?(0,Y.jsx)(`div`,{className:`decide`,style:{width:320,flexShrink:0},children:(0,Y.jsx)(qb,{runId:e,stageId:He.stage_id,prompt:W.decidePrompt,events:He.events,inboundEnvelope:W.inboundEnvelope,inboundFromStageId:W.inboundFromStageId,inboundToStageId:W.inboundToStageId,selectedPath:We,onSelectArtifact:a,onOpenInboundEnvelope:W.inboundFromStageId?()=>{let e=W.inboundFromStageId;e&&D(e)}:void 0})}):null]})]}):null]}),W?.drawer?(0,Y.jsx)(tx,{isOpen:!0,onClose:()=>D(null),fromStageId:W.drawer.fromStageId,toStageId:W.drawer.toStageId,envelope:W.drawer.envelope,onOpenFullRecord:()=>{let e=W.drawer?.fromStageId;D(null),e&&o(e)},onArtifactClick:e=>{D(null),a(e)}}):null,Ye&&Je!==null&&!qe?(0,Y.jsx)(jh,{runId:e,stageId:Je.stage_id,onClose:()=>u(null)}):null]})}function ZE({label:e,status:t,index:n,meta:r,selected:i,proposed:a,onClick:o}){let s=Is(t)||(n==null?``:String(n+1));return(0,Y.jsxs)(`button`,{type:`button`,className:`node`,"data-s":t,"data-selected":i?`true`:void 0,"data-proposed":a?`true`:void 0,onClick:o,"aria-disabled":!o,style:{cursor:o?`pointer`:`default`},children:[(0,Y.jsx)(`span`,{className:`node__ring`,"aria-hidden":`true`,children:s}),(0,Y.jsx)(`span`,{className:`node__name`,children:e}),r?(0,Y.jsx)(`span`,{className:`node__meta`,children:r}):null]})}function QE(e){return e===1?`1 file`:`${e} files`}function $E({mode:e,flowed:t,envelope:n,fromStageId:r,selected:i,onEnvelopeClick:a}){let o=n==null,s=o?`no envelope yet`:`envelope · ${QE(n.artifactCount)}`;return(0,Y.jsxs)(`span`,{className:`wire`,"data-flowed":t?`true`:void 0,children:[(0,Y.jsx)(`span`,{className:`wire__line`}),e===`definition`?null:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`button`,{className:`wire__env`,disabled:o||!a,"data-selected":i?`true`:void 0,onClick:o||!a?void 0:()=>a(r),children:s}),n?.summary?(0,Y.jsx)(`span`,{className:`wire__summary`,children:n.summary}):null]})]})}function eD({stages:e,mode:t=`run`,onSelect:n,onEnvelopeClick:r,activeEnvelopeId:i}){return(0,Y.jsx)(`nav`,{className:`track`,"aria-label":`Pipeline track`,children:(0,Y.jsx)(`div`,{className:`track__rail`,children:e.map((a,o)=>(0,Y.jsxs)(J.Fragment,{children:[(0,Y.jsx)(ZE,{id:a.id,label:a.label,status:a.status,index:o,meta:a.meta,selected:a.selected,proposed:a.proposed,onClick:n&&(t===`definition`||a.status!==`pending`)?()=>n(a.id):void 0}),o<e.length-1?(0,Y.jsx)($E,{mode:t,flowed:a.envelope!=null,envelope:a.envelope,fromStageId:a.id,selected:i===a.id,onEnvelopeClick:r}):null]},a.id))})})}var tD=`Connect model providers here. Stageflow stores credentials in the operator auth file (~/.stageflow/agent/auth.json). Override the directory with STAGEFLOW_CREDENTIAL_HOME.`;function nD(e){return e.cursorSdkReady===!0&&e.cursorApiKeyConfigured===!0}function rD(e,t){return t>0||nD(e)?!1:(e.credentialSource,!0)}function iD(e){return e.supportsApiKey}function aD(e){return e.supportsOauth&&!e.supportsApiKey}function oD(e){return e?e.configured?e.authKind===`oauth`?`Connected (OAuth)`:e.authKind===`api_key`?`Connected (API key)`:`Connected`:`Not connected`:`Unknown`}function sD(e){return e.filter(e=>e?.configured===!0).length}async function cD(){let e=await ha(),t=await ma(),n=sD(await Promise.all(t.providers.map(async e=>{try{let{provider:t}=await ga(e.id);return t}catch{return}}))),r=e.credentialSource;return rD(e,n)?r===void 0?{ready:!1,message:`Connect providers before starting a run. Add API keys or OAuth in Stageflow, or set up Cursor (SDK) with CURSOR_API_KEY.`}:{ready:!1,credentialSource:r,message:`Connect at least one model provider in Settings → Providers (Pi API key or OAuth, or Cursor SDK with CURSOR_API_KEY) before starting a run.`}:{ready:!0,credentialSource:r}}function lD(e){return!Array.isArray(e)||e.length===0?`no gate`:`will ask you`}function uD(e,t,n){if(t&&n){let r=e.find(e=>e.path===t&&e.project_root===n);if(r)return r}if(t){let n=e.find(e=>e.path===t);if(n)return n}return e[0]}function dD({onStarted:e,initialPipelinePath:t,initialTaskPath:n,initialProjectRoot:r}){let[i,a]=(0,J.useState)([]),[o,s]=(0,J.useState)([]),[c,l]=(0,J.useState)(``),[u,d]=(0,J.useState)(void 0),[f,p]=(0,J.useState)(``),[m,h]=(0,J.useState)(void 0),[g,_]=(0,J.useState)(null),[v,y]=(0,J.useState)(!1),[b,x]=(0,J.useState)(null),[S,C]=(0,J.useState)(null),{snapshot:w,error:T}=Jo(),E=w.health;(0,J.useEffect)(()=>{(async()=>{try{let[e,i]=await Promise.all([ki(),Fi()]);a(e.tasks),s(i.pipelines);let o=uD(e.tasks,n,r),c=uD(i.pipelines,t,r);l(o?.path??``),d(o?.project_root),p(c?.path??``),h(c?.project_root)}catch(e){_(e instanceof Error?e.message:String(e))}})()},[t,n,r]);let D=i.find(e=>e.path===c&&e.project_root===u)??null,O=o.find(e=>e.path===f&&e.project_root===m)??null,k=(0,J.useMemo)(()=>O?O.stages.map(e=>({id:e.id,label:e.id,status:bs(e.gate_kinds)?`waiting`:`pending`,meta:lD(e.gate_kinds)})):[],[O]),A=E!=null&&E.slotsAvailable===0,j=E==null?0:gs(w,E.activeRunIds).length,M=g??(E==null&&T?T:null);async function N(){if(!c||!f){_(`Pick a task and a pipeline.`);return}y(!0),_(null),x(null),C(null);try{let e=await cD();if(!e.ready){C(e.message??`Connect providers before starting a run.`),y(!1);return}}catch(e){C(e instanceof Error?e.message:String(e)),y(!1);return}let t=await Ea(c,f,O?.project_root??D?.project_root);if(y(!1),t.ok){e(t.runId);return}x(t)}return(0,Y.jsxs)(`div`,{className:`main__inner`,children:[(0,Y.jsxs)(`p`,{className:`crumbs`,children:[(0,Y.jsx)(`a`,{href:`#/today`,children:`Today`}),` / start a run`]}),(0,Y.jsx)(`div`,{className:`page-head`,children:(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`h1`,{children:`Start a run`}),(0,Y.jsx)(`p`,{children:`A run is a task path plus a pipeline path. Nothing else is decided here.`})]})}),A&&E?(0,Y.jsxs)(`div`,{className:`gate`,style:{padding:`var(--spacing-4)`,marginBottom:`var(--spacing-5)`},children:[(0,Y.jsxs)(`div`,{className:`gate__label`,children:[(0,Y.jsx)(`span`,{className:`dot dot--waiting`}),` No free session slots`]}),(0,Y.jsxs)(`p`,{className:`gate__question`,children:[`All `,E.maxConcurrent,` slots are in use`,j>0?` — ${j===1?`one is`:`${j} are`} held by stages waiting on you`:``]}),E.activeRunIds.length>0?(0,Y.jsxs)(`p`,{style:{margin:`var(--spacing-2) 0 0`,color:`var(--color-text-yellow)`,fontSize:`var(--font-size-sm)`},children:[`Blocking runs: `,E.activeRunIds.map((e,t)=>(0,Y.jsxs)(J.Fragment,{children:[t>0?`, `:``,(0,Y.jsx)(`a`,{href:`#/runs/${e}`,children:e.slice(0,8)})]},e))]}):null]}):null,S?(0,Y.jsxs)(`div`,{className:`gate`,style:{padding:`var(--spacing-4)`,marginBottom:`var(--spacing-5)`},children:[(0,Y.jsxs)(`div`,{className:`gate__label`,children:[(0,Y.jsx)(`span`,{className:`dot dot--waiting`}),` Providers not ready`]}),(0,Y.jsx)(`p`,{className:`gate__question`,children:S}),(0,Y.jsxs)(`p`,{style:{margin:`var(--spacing-2) 0 0`,fontSize:`var(--font-size-sm)`},children:[(0,Y.jsx)(`a`,{href:`#/connect`,children:`Connect providers`}),` · `,(0,Y.jsx)(`a`,{href:`#/settings`,children:`Open Settings`})]})]}):null,b?(0,Y.jsxs)(`div`,{className:`gate`,style:{padding:`var(--spacing-4)`,marginBottom:`var(--spacing-5)`,borderColor:`var(--color-border-red)`,borderLeftColor:`var(--color-error)`,background:`var(--color-background-red)`,color:`var(--color-text-red)`},children:[(0,Y.jsx)(`div`,{className:`gate__label`,style:{color:`var(--color-text-red)`},children:`Could not start run`}),(0,Y.jsx)(`p`,{className:`gate__question`,style:{color:`var(--color-text-primary)`},children:b.error})]}):null,M?(0,Y.jsxs)(`p`,{style:{color:`var(--color-text-red)`,marginBottom:`var(--spacing-4)`},children:[`Could not start run: `,M]}):null,(0,Y.jsxs)(`div`,{className:`grid-2`,children:[(0,Y.jsx)(`div`,{children:(0,Y.jsxs)(`section`,{className:`card`,children:[(0,Y.jsx)(`div`,{className:`card__head`,children:(0,Y.jsx)(`h2`,{children:`Task`})}),(0,Y.jsx)(`div`,{className:`pick`,children:i.map(e=>(0,Y.jsxs)(`label`,{className:`pick__opt`,children:[(0,Y.jsx)(`input`,{type:`radio`,name:`task`,checked:D?.path===e.path&&D?.project_root===e.project_root,onChange:()=>{l(e.path),d(e.project_root)}}),(0,Y.jsxs)(`span`,{children:[(0,Y.jsx)(`strong`,{children:e.id}),(0,Y.jsx)(`span`,{children:e.goal}),(0,Y.jsx)(`span`,{className:`mono muted`,style:{display:`block`,fontSize:`var(--font-size-xs)`},children:e.path})]})]},`${e.path}\0${e.project_root??``}`))})]})}),(0,Y.jsx)(`div`,{children:(0,Y.jsxs)(`section`,{className:`card`,children:[(0,Y.jsx)(`div`,{className:`card__head`,children:(0,Y.jsx)(`h2`,{children:`Pipeline`})}),(0,Y.jsx)(`div`,{className:`pick`,children:o.map(e=>(0,Y.jsxs)(`label`,{className:`pick__opt`,children:[(0,Y.jsx)(`input`,{type:`radio`,name:`pipeline`,checked:O?.path===e.path&&O?.project_root===e.project_root,onChange:()=>{p(e.path),h(e.project_root)}}),(0,Y.jsxs)(`span`,{children:[(0,Y.jsx)(`strong`,{children:e.id}),(0,Y.jsxs)(`span`,{children:[e.stages.length,` stages`]}),(0,Y.jsx)(`span`,{className:`mono muted`,style:{display:`block`,fontSize:`var(--font-size-xs)`},children:e.path})]})]},`${e.path}\0${e.project_root??``}`))}),k.length>0?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{className:`eyebrow`,style:{marginTop:`var(--spacing-4)`,marginBottom:`var(--spacing-3)`},children:`What will run`}),(0,Y.jsx)(`div`,{className:`track track--inline`,children:(0,Y.jsx)(eD,{stages:k,mode:`definition`})}),(0,Y.jsx)(`p`,{className:`muted`,style:{fontSize:`var(--font-size-sm)`,marginTop:`var(--spacing-3)`},children:k.filter(e=>e.status===`waiting`).length===0?`No stage in this pipeline is declared to stop for a human.`:`${k.filter(e=>e.status===`waiting`).length} ${k.filter(e=>e.status===`waiting`).length===1?`stage`:`stages`} will hold and wait for you.`})]}):null]})})]}),(0,Y.jsxs)(`div`,{className:`form-actions`,style:{paddingBottom:`var(--spacing-8)`},children:[(0,Y.jsx)(`button`,{className:`btn btn--primary`,disabled:!c||!f||A||v,onClick:()=>void N(),children:v?`Starting…`:`Start run`}),(0,Y.jsx)(`a`,{className:`btn btn--ghost`,href:`#/today`,children:`Cancel`})]})]})}var fD=class extends Error{code;status;issues;constructor(e,t,n,r=[]){super(n),this.code=e,this.status=t,this.issues=r,this.name=`AgentApiError`}};async function pD(e,t=`GET`,n){let r=await fetch(e,{method:t,headers:{"Content-Type":`application/json`,...Ti()},...n===void 0?{}:{body:JSON.stringify(n)}});r.status===401&&Si();let i=await r.json().catch(()=>({}));if(!r.ok){let e=typeof i.code==`string`?i.code:`http_${r.status}`;throw new fD(e,r.status,i.message??e,i.issues??[])}return i}var mD=encodeURIComponent,hD=(e,t=``)=>`/api/agents/${mD(e)}${t}`,gD={list:()=>pD(`/api/agents`).then(e=>e.agents),get:e=>pD(hD(e)),validate:e=>pD(`/api/agents/validate`,`POST`,{definition:e}),resendReply:(e,t,n)=>pD(hD(e,`/sessions/${mD(t)}/turns/${mD(n)}/delivery/resend`),`POST`),markReplyDelivered:(e,t,n)=>pD(hD(e,`/sessions/${mD(t)}/turns/${mD(n)}/delivery/delivered`),`POST`),channelContact:e=>pD(hD(e,`/channel/contact`)),channelStatus:e=>pD(hD(e,`/channel`)),stageflowTools:()=>pD(`/api/agents/stageflow-tools`),create:e=>pD(`/api/agents`,`POST`,{definition:e}),save:(e,t)=>pD(hD(e,`/save`),`POST`,t),setEnabled:(e,t)=>pD(hD(e,t?`/enable`:`/disable`),`POST`),archive:e=>pD(hD(e,`/archive`),`POST`),revisions:e=>pD(hD(e,`/revisions`)).then(e=>e.revisions),revision:(e,t)=>pD(hD(e,`/revisions/${t}`)),diff:(e,t,n)=>pD(hD(e,`/revisions/${t}/diff/${n}`)).then(e=>e.lines),restore:(e,t,n)=>pD(hD(e,`/revisions/${t}/restore`),`POST`,{baseRevision:n}),sessions:(e,t={})=>{let n=new URLSearchParams;for(let[e,r]of Object.entries(t))r!==void 0&&r!==``&&n.set(e,String(r));let r=n.toString();return pD(hD(e,`/sessions${r?`?${r}`:``}`))},allSessions:(e={})=>{let t=new URLSearchParams;for(let[n,r]of Object.entries(e))r!==void 0&&r!==``&&t.set(n,String(r));let n=t.toString();return pD(`/api/agents/sessions${n?`?${n}`:``}`)},session:(e,t)=>pD(hD(e,`/sessions/${mD(t)}`)),decide:(e,t,n)=>pD(hD(e,`/sessions/${mD(t)}/approval/${n}`),`POST`),pendingApprovals:()=>pD(`/api/agents/approvals`).then(e=>e.approvals),async exportOtlp(e,t){let n=await fetch(hD(e,`/sessions/${mD(t)}/otlp`),{headers:Ti()});if(n.status===401&&Si(),!n.ok)throw new fD(`http_${n.status}`,n.status,`Export failed`);return n.blob()},stop:(e,t)=>pD(hD(e,`/chat/stop`),`POST`,{sessionId:t})};async function _D(e,t,n={}){let r=await fetch(hD(e,`/chat`),{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/x-ndjson`,...Ti()},body:JSON.stringify({...t,stream:!0}),...n.signal?{signal:n.signal}:{}});if(r.status===401&&Si(),!r.ok||!r.body){let e=await r.json().catch(()=>({}));throw new fD(e.code??`http_${r.status}`,r.status,e.message??e.code??`Chat failed`)}let i=r.body.getReader(),a=new TextDecoder,o=``;for(;;){let{done:e,value:t}=await i.read();if(e)break;o+=a.decode(t,{stream:!0});let r=o.indexOf(`
115
- `);for(;r>=0;){let e=o.slice(0,r).trim();if(o=o.slice(r+1),r=o.indexOf(`
116
- `),!e)continue;let t=JSON.parse(e);if(t.type===`delta`&&t.text)n.onDelta?.(t.text);else if(t.type===`session`&&t.sessionId)n.onSession?.(t.sessionId);else if(t.type===`done`&&t.session)return t.session;else if(t.type===`error`)throw new fD(t.code??`agent.internal`,200,t.message??t.code??`Chat failed`)}}throw new fD(`agent.stream_ended`,200,`The connection closed before the reply finished`)}function vD(e){return pD(`/api/agent-author/chat`,`POST`,e)}function yD(e){return pD(`/api/agent-author/undo`,`POST`,{sessionId:e})}var bD=null,xD=null;function SD(e,t=4e3){bD||(bD=document.createElement(`div`),bD.className=`toast`,bD.setAttribute(`role`,`status`),document.body.appendChild(bD)),bD.textContent=e,bD.setAttribute(`data-show`,`true`),xD&&clearTimeout(xD),xD=setTimeout(()=>{bD?.setAttribute(`data-show`,`false`)},t)}var CD=`font-['Geist_Mono',monospace]`;function wD({approval:e,index:t,total:n,onDecided:r,onOpenSession:i,onRegisterHotkeys:a}){let[o,s]=(0,J.useState)(!1),[c,l]=(0,J.useState)(null),u=e.agentName??e.agentId;(0,J.useEffect)(()=>{s(!1),l(null)},[e.id]);async function d(t){if(!o){s(!0),l(null);try{await gD.decide(e.agentId,e.sessionId,t),SD(t===`approve`?`Approved · ${e.tool}`:`Denied · ${e.tool}`),r()}catch(e){l(e instanceof fD||e instanceof Error?e.message:`Could not record the decision`),r()}finally{s(!1)}}}return(0,J.useEffect)(()=>{if(a)return a({accept:()=>void d(`approve`),reject:()=>void d(`deny`),focusNote:()=>{},openRun:()=>i(e.agentId,e.sessionId),locked:o,canReject:!0}),()=>a(null)},[e,o,a,i]),(0,Y.jsxs)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col overflow-clip`,"data-testid":`agent-approval-pane`,children:[(0,Y.jsxs)(`header`,{className:`flex shrink-0 flex-col gap-3.5 border-b border-b-[#ffffff0f] px-8 pb-[18px] pt-5`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2 ${CD} text-xs text-[var(--sf-text-3)]`,children:[(0,Y.jsx)(mt,{"aria-hidden":!0,className:`size-3.5 shrink-0`}),(0,Y.jsxs)(`span`,{className:`truncate`,children:[`Agent · `,u]}),(0,Y.jsx)(`span`,{"aria-hidden":`true`,children:`·`}),(0,Y.jsx)(`span`,{className:`truncate`,children:`approval`})]}),(0,Y.jsx)(`span`,{className:`shrink-0 ${CD} text-xs text-[var(--sf-text-3)]`,children:n>0?`${t+1} / ${n}`:`—`})]}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,Y.jsxs)(`h2`,{className:`text-[22px] font-semibold tracking-[-0.44px] text-[var(--sf-text-1)]`,children:[`Run `,e.tool,`?`]}),(0,Y.jsx)(`span`,{className:`flex h-6 items-center gap-1.5 rounded-full border border-[#f5b5444d] bg-[#f5b5441f] px-2 text-xs font-medium text-[var(--sf-needs)]`,children:`Waiting on you`})]}),(0,Y.jsxs)(`span`,{className:`${CD} text-xs text-[var(--sf-text-3)]`,children:[`asked `,Cs(e.createdAt)]})]}),(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-6 overflow-y-auto px-8 py-7`,children:[(0,Y.jsxs)(`div`,{className:`rounded-lg border border-[var(--sf-hairline)] bg-[var(--sf-panel)] p-3.5 text-[13px] leading-normal text-[var(--sf-text-2)]`,children:[(0,Y.jsx)(`span`,{className:`font-medium text-[var(--sf-text-1)]`,children:`Why this needs you.`}),` `,e.tool,` is marked ask-first in `,u,`’s configuration, so the session is paused until someone decides.`]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Y.jsx)(`span`,{className:`${CD} text-[10px] uppercase tracking-[0.5px] text-[var(--sf-text-3)]`,children:`What will run`}),(0,Y.jsx)(`pre`,{className:`${CD} max-h-96 overflow-auto whitespace-pre-wrap rounded-md border border-[var(--sf-hairline)] bg-[var(--sf-ground)] p-3 text-[11px] leading-[1.5] text-[var(--sf-text-1)]`,children:JSON.stringify(e.payload,null,2)})]}),c?(0,Y.jsx)(`p`,{className:`text-xs text-[var(--sf-fail)]`,role:`alert`,children:c}):null]}),(0,Y.jsxs)(`footer`,{className:`flex shrink-0 items-center gap-2 border-t border-t-[#ffffff0f] px-8 py-4`,children:[(0,Y.jsxs)(`button`,{type:`button`,disabled:o,onClick:()=>void d(`approve`),className:`flex h-9 items-center gap-1.5 rounded-md bg-[var(--sf-text-1)] px-3.5 text-xs font-medium text-[var(--sf-ground)] disabled:opacity-60`,children:[(0,Y.jsx)(G,{"aria-hidden":!0,className:`size-3.5`}),`Approve and run`,(0,Y.jsx)(Nl,{className:`border-[#0c0d0f2e] text-[#5a5d66]`,children:`1`})]}),(0,Y.jsxs)(`button`,{type:`button`,disabled:o,onClick:()=>void d(`deny`),className:`flex h-9 items-center gap-1.5 rounded-md border border-[var(--sf-hairline-strong)] px-3 text-xs text-[var(--sf-text-1)] disabled:opacity-60`,children:[(0,Y.jsx)(St,{"aria-hidden":!0,className:`size-3.5 text-[var(--sf-fail)]`}),`Deny`,(0,Y.jsx)(Nl,{children:`3`})]}),(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>i(e.agentId,e.sessionId),className:`ml-auto flex h-9 items-center gap-1.5 rounded-md px-3 text-xs text-[var(--sf-text-2)] hover:text-[var(--sf-text-1)]`,children:[`Open session`,(0,Y.jsx)(Nl,{children:`O`})]})]})]})}function TD(e){return`agent:${e}`}function ED(e,t){return[...e.map(e=>({kind:`run`,key:e.run_id,at:e.updated_at??e.created_at,run:e})),...t.map(e=>({kind:`agent`,key:TD(e.id),at:e.createdAt,approval:e}))].map((e,t)=>({item:e,index:t})).sort((e,t)=>e.item.at.localeCompare(t.item.at)||e.index-t.index).map(({item:e})=>e)}function DD(e,t=140){let n=JSON.stringify(e);return!n||n===`{}`?``:n.length>t?`${n.slice(0,t-1)}…`:n}function OD({run:e}){return e?(0,Y.jsx)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col overflow-y-auto bg-[var(--sf-panel)] px-8 py-7`,children:(0,Y.jsxs)(`div`,{className:`flex max-w-[640px] flex-col gap-4`,children:[(0,Y.jsx)(`h2`,{className:`text-lg font-semibold text-[var(--sf-text-1)]`,children:es(e)}),(0,Y.jsxs)(`div`,{className:`flex items-start gap-2.5 rounded-xl border border-[#ffffff12] bg-[var(--sf-ground)] p-4`,children:[(0,Y.jsx)(pt,{className:`mt-0.5 size-4 shrink-0 text-[var(--sf-text-3)]`,"aria-hidden":`true`}),(0,Y.jsx)(`p`,{className:`text-sm leading-relaxed text-[var(--sf-text-2)]`,children:`Done today shows gates you answered today with timelines and undo. That needs server-side answer history; for now this list is finished runs from the catalog. Open the run for full transcript.`})]})]})}):(0,Y.jsx)(`div`,{className:`flex min-h-0 min-w-0 flex-1 items-center justify-center bg-[var(--sf-panel)] px-8`,children:(0,Y.jsx)(`p`,{className:`text-sm text-[var(--sf-text-3)]`,children:`Select a run to review, or wait for gate-answer history (coming soon).`})})}var kD=new Set([`agent_start`,`agent_end`,`turn_start`,`tool_progress`]);function AD(e){let t=e.failed_stage_id;if(t&&e.stages.find(e=>e.id===t)?.status===`interrupted`)return!0;let n=e.failed_reason??``;return n.includes(`process_interrupted`)?!0:/\binterrupted\b/i.test(n)}function jD(e,t){let n=e.slice().sort((e,t)=>{let n=e.updated_at??e.created_at,r=t.updated_at??t.created_at;return n.localeCompare(r)});return t===`newest`?n.reverse():n}function MD(e){return[...e.interrupted,...e.other]}function ND(e){let t=[],n=[];for(let r of e)AD(r)?t.push(r):n.push(r);return{interrupted:t,other:n}}function PD(e){return!(kD.has(e.event)||e.event===`message`&&!e.text?.trim())}function FD(e,t=12){return e.filter(PD).slice(-t)}function ID(e){let t=e.runs.find(e=>e.project_root)??e.runs[0];if(!t?.project_root)return{name:`Stageflow`};let n=t.project_root.replace(/\\/g,`/`).split(`/`).filter(Boolean),r=n[n.length-1];return{name:`Stageflow`,subtitle:r&&r!==`.`?r:void 0}}function LD(e){let t=null;for(let n of e){if(n.event===`operator_prompt`)break;if(n.event===`message`&&n.role===`assistant`&&typeof n.text==`string`){let e=n.text.trim();e&&(t=e)}}return t}function RD(e,t=Date.now()){let n=Date.parse(e.created_at);if(Number.isNaN(n))return null;let r=e.finished_at?Date.parse(e.finished_at):t,i=Math.max(0,r-n),a=Math.floor(i/1e3),o=Math.floor(a/60),s=a%60;return o>=60?`${Math.floor(o/60)}h ${o%60}m`:o>0?`${o}m ${s}s`:`${s}s`}function zD(e,t){return t<=0?0:(e%t+t)%t}function BD(e,t,n){return zD(e+n,t)}var VD=`#/settings?section=providers`;function HD(e){if(!e?.trim())return null;let t=e.toLowerCase();return/openrouter/.test(t)||/api[_\s-]?key/.test(t)&&/openrouter/.test(t)?{title:`OpenRouter credentials`,body:`This failure often means the OpenRouter API key is missing, expired, or rejected. Add or update it under Providers.`,settingsHref:VD}:/anthropic/.test(t)?{title:`Anthropic provider`,body:`Check that Anthropic is connected and the API key is valid. Billing or rate limits can also surface as stage failures.`,settingsHref:VD}:/api[_\s-]?key/.test(t)||/invalid.*key/.test(t)||/missing.*key/.test(t)||/\b401\b/.test(t)||/unauthorized/.test(t)||/authentication failed/.test(t)||/invalid.*token/.test(t)?{title:`API key or auth`,body:`The agent could not authenticate with the model provider. Confirm the API key in Settings → Providers.`,settingsHref:VD}:/provider/.test(t)||/model.*not.*found/.test(t)||/no model/.test(t)||/connection refused/.test(t)?{title:`Model provider`,body:`Verify the selected provider is configured, reachable, and has access to the model this stage uses.`,settingsHref:VD}:null}var UD=new Map,WD=`Start a new run from the beginning? The failed run stays in history.`;function GD(e,t){if(e.failed_reason?.trim())return e.failed_reason.trim();if(!t)return null;for(let e=t.events.length-1;e>=0;e--){let n=t.events[e];if(n.event===`failed`&&typeof n.reason==`string`&&n.reason.trim()||n.event===`interrupted`&&typeof n.reason==`string`&&n.reason.trim())return n.reason.trim()}return null}function KD({run:e,onOpenRun:t,onRetry:n,onStartFresh:r,onDismiss:i,retrying:a,rerunning:o}){let s=(0,J.useRef)(null),[c,l]=(0,J.useState)(null),[u,d]=(0,J.useState)(!1),f=e?.failed_stage_id??``;if((0,J.useEffect)(()=>{if(!e){l(null);return}let t=UD.get(e.run_id);if(t){l(t);return}let n=!1;return d(!0),Di(e.run_id).then(t=>{n||(UD.set(e.run_id,t),l(t))}).catch(()=>{n||l(null)}).finally(()=>{n||d(!1)}),()=>{n=!0}},[e?.run_id]),(0,J.useEffect)(()=>{e&&s.current?.focus()},[e?.run_id,f]),!e||!f)return(0,Y.jsx)(`div`,{className:`min-h-0 min-w-0 flex-1 bg-[var(--sf-panel)]`,"aria-hidden":`true`});let p=c?.stages.find(e=>e.stage_id===f),m=GD(e,p),h=HD(m??void 0),_=FD(p?.events??[]),v=p?.artifacts??[],y=p?xl(p.status):!1,b=[RD(e),e.total_cost_usd==null?null:`$${e.total_cost_usd.toFixed(2)}`].filter(Boolean).join(` · `);return(0,Y.jsxs)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col overflow-clip bg-[var(--sf-panel)]`,ref:s,tabIndex:-1,children:[(0,Y.jsxs)(`header`,{className:`flex shrink-0 flex-col gap-3.5 border-b border-b-[#ffffff0f] px-8 pb-[18px] pt-5`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2 font-['Geist_Mono',monospace] text-xs text-[var(--sf-text-3)]`,children:[(0,Y.jsx)(`span`,{className:`truncate`,children:$o(e)}),(0,Y.jsx)(`span`,{"aria-hidden":`true`,children:`·`}),(0,Y.jsx)(`span`,{className:`truncate`,children:f})]}),e.finished_at||e.updated_at?(0,Y.jsx)(`span`,{className:`shrink-0 font-['Geist_Mono',monospace] text-xs text-[var(--sf-text-3)]`,children:Cs(e.finished_at??e.updated_at??e.created_at)}):null]}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,Y.jsx)(`h2`,{className:`text-[22px] font-semibold tracking-[-0.44px] text-[var(--sf-text-1)]`,children:es(e)}),(0,Y.jsx)(`span`,{className:`flex h-6 items-center gap-1.5 rounded-full border border-[#ff6b6b4d] bg-[#ff6b6b1f] px-2 text-xs font-medium text-[var(--sf-fail)]`,children:`Failed`})]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,Y.jsx)(Ys,{stages:e.stages.map(e=>({id:e.id,status:e.status})),label:ws(e),variant:`bar`}),b?(0,Y.jsx)(`span`,{className:`ml-auto shrink-0 font-['Geist_Mono',monospace] text-xs text-[var(--sf-text-3)]`,children:b}):null]})]}),(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-6 overflow-y-auto px-8 py-7`,children:[u?(0,Y.jsx)(`p`,{className:`text-sm text-[var(--sf-text-3)]`,children:`Loading run detail…`}):null,(0,Y.jsxs)(`section`,{className:`flex flex-col gap-2`,children:[(0,Y.jsx)(`h3`,{className:`text-xs font-medium uppercase tracking-[0.88px] text-[var(--sf-text-3)]`,children:`What failed`}),(0,Y.jsx)(`p`,{className:`rounded-lg border border-[#ffffff14] bg-[var(--sf-raised)] px-4 py-3 text-sm leading-relaxed text-[var(--sf-text-1)]`,"data-testid":`failed-reason`,children:m??`No failure reason was recorded for this stage.`})]}),_.length>0?(0,Y.jsxs)(`section`,{className:`flex flex-col gap-2`,children:[(0,Y.jsx)(`h3`,{className:`text-xs font-medium uppercase tracking-[0.88px] text-[var(--sf-text-3)]`,children:`Recent activity`}),(0,Y.jsx)(`ul`,{className:`flex flex-col gap-1.5 rounded-lg border border-[#ffffff14] bg-[var(--sf-raised)] px-3 py-2`,children:_.map((e,t)=>{let n=mx(e);return(0,Y.jsxs)(`li`,{className:`flex flex-col gap-0.5 border-b border-[#ffffff0a] py-2 last:border-0`,children:[(0,Y.jsxs)(`div`,{className:`flex items-baseline justify-between gap-2`,children:[(0,Y.jsx)(`span`,{className:`text-xs font-medium text-[var(--sf-text-2)]`,children:fx(e)}),e.at?(0,Y.jsx)(`span`,{className:`shrink-0 font-['Geist_Mono',monospace] text-[10px] text-[var(--sf-text-3)]`,children:Cs(e.at)}):null]}),n?(0,Y.jsx)(`p`,{className:`line-clamp-3 text-xs leading-snug text-[var(--sf-text-3)]`,children:n}):null]},`${e.event}-${e.at??t}-${t}`)})})]}):null,h?(0,Y.jsxs)(`section`,{className:`flex gap-3 rounded-lg border border-[#f5b54433] bg-[#f5b54414] px-4 py-3`,"data-testid":`likely-fix`,children:[(0,Y.jsx)(Pe,{className:`mt-0.5 size-4 shrink-0 text-[var(--sf-needs)]`,"aria-hidden":`true`}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[(0,Y.jsx)(`h3`,{className:`text-sm font-medium text-[var(--sf-text-1)]`,children:h.title}),(0,Y.jsx)(`p`,{className:`text-xs leading-relaxed text-[var(--sf-text-2)]`,children:h.body}),(0,Y.jsxs)(`a`,{href:h.settingsHref,className:`mt-1 inline-flex items-center gap-1 text-xs font-medium text-[var(--sf-needs)] hover:underline`,children:[`Open Providers settings`,(0,Y.jsx)(g,{className:`size-3`,"aria-hidden":`true`})]})]})]}):null,v.length>0?(0,Y.jsxs)(`section`,{className:`flex flex-col gap-2`,children:[(0,Y.jsx)(`h3`,{className:`text-xs font-medium uppercase tracking-[0.88px] text-[var(--sf-text-3)]`,children:`Artifacts`}),(0,Y.jsx)(`ul`,{className:`flex flex-col gap-1`,children:v.map(e=>(0,Y.jsxs)(`li`,{className:`flex items-center gap-2 rounded-md px-2 py-1.5 text-xs text-[var(--sf-text-2)]`,children:[(0,Y.jsx)(ce,{className:`size-3.5 shrink-0 text-[var(--sf-text-3)]`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`min-w-0 truncate font-['Geist_Mono',monospace]`,children:e})]},e))})]}):null]}),(0,Y.jsxs)(`footer`,{className:`flex shrink-0 flex-col gap-3 border-t border-t-[#ffffff0f] bg-[#0e0f11] px-8 py-[18px]`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2.5`,children:[y?(0,Y.jsxs)(`button`,{type:`button`,className:`flex h-[34px] shrink-0 items-center gap-2 rounded-lg bg-[var(--sf-fail)] px-3.5 text-[13px] font-medium text-white disabled:opacity-50`,disabled:a||o,onClick:()=>n(f),children:[(0,Y.jsx)(nt,{className:`size-3.5`,"aria-hidden":`true`}),a?`Retrying…`:`Retry`,(0,Y.jsx)(Nl,{children:`R`})]}):null,(0,Y.jsxs)(`button`,{type:`button`,className:`flex h-[34px] shrink-0 items-center gap-2 rounded-lg border border-[#ffffff1a] bg-[var(--sf-raised)] px-3.5 text-[13px] text-[var(--sf-text-1)] disabled:opacity-50`,disabled:a||o,onClick:()=>{window.confirm(WD)&&r()},children:[(0,Y.jsx)(de,{className:`size-3.5`,"aria-hidden":`true`}),o?`Starting fresh…`:`Start fresh`]}),(0,Y.jsxs)(`button`,{type:`button`,className:`flex h-[34px] shrink-0 items-center gap-2 rounded-lg border border-[#ffffff1a] bg-[var(--sf-raised)] px-3.5 text-[13px] text-[var(--sf-text-1)]`,onClick:()=>t(e.run_id),children:[`Open run`,(0,Y.jsx)(Nl,{children:`O`})]}),(0,Y.jsxs)(`button`,{type:`button`,className:`ml-auto flex h-[34px] shrink-0 items-center gap-2 rounded-lg px-3 text-[13px] text-[var(--sf-text-3)] hover:bg-[#ffffff0a] hover:text-[var(--sf-text-2)]`,onClick:i,children:[(0,Y.jsx)(St,{className:`size-3.5`,"aria-hidden":`true`}),`Dismiss`]})]}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3 text-xs text-[var(--sf-text-3)]`,children:[y?(0,Y.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,Y.jsx)(Nl,{children:`R`}),`retry stage`]}):null,(0,Y.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,Y.jsx)(Nl,{children:`O`}),`open run`]})]})]})]})}function qD({run:e,stageId:t,kindLabel:n,index:r,total:i}){let a=[RD(e),e.total_cost_usd==null?null:`$${e.total_cost_usd.toFixed(2)}`].filter(Boolean).join(` · `);return(0,Y.jsxs)(`header`,{className:`flex shrink-0 flex-col gap-3.5 border-b border-b-[#ffffff0f] px-8 pb-[18px] pt-5`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2 font-['Geist_Mono',monospace] text-xs text-[var(--sf-text-3)]`,children:[(0,Y.jsx)(`span`,{className:`truncate`,children:$o(e)}),(0,Y.jsx)(`span`,{"aria-hidden":`true`,children:`·`}),(0,Y.jsx)(`span`,{className:`truncate`,children:t}),n?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`span`,{"aria-hidden":`true`,children:`·`}),(0,Y.jsx)(`span`,{className:`truncate`,children:n})]}):null]}),(0,Y.jsx)(`span`,{className:`shrink-0 font-['Geist_Mono',monospace] text-xs text-[var(--sf-text-3)]`,children:i>0?`${r+1} / ${i}`:`—`})]}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,Y.jsx)(`h2`,{className:`text-[22px] font-semibold tracking-[-0.44px] text-[var(--sf-text-1)]`,children:es(e)}),(0,Y.jsx)(`span`,{className:`flex h-6 items-center gap-1.5 rounded-full border border-[#f5b5444d] bg-[#f5b5441f] px-2 text-xs font-medium text-[var(--sf-needs)]`,children:qs(js(e))})]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,Y.jsx)(Ys,{stages:e.stages.map(e=>({id:e.id,status:e.status})),label:ws(e),variant:`bar`}),a?(0,Y.jsx)(`span`,{className:`ml-auto shrink-0 font-['Geist_Mono',monospace] text-xs text-[var(--sf-text-3)]`,children:a}):null]})]})}var JD=new Map;function YD(e,t){return`${e}:${t}`}function XD(e,t){if(t){JD.delete(YD(e,t));return}for(let t of JD.keys())t.startsWith(`${e}:`)&&JD.delete(t)}function ZD({run:e,index:t,total:n,onOpenRun:r,onRegisterHotkeys:i,onAnswered:a}){let o=(0,J.useRef)(null),s=(0,J.useRef)(null),[c,l]=(0,J.useState)(``),[u,d]=(0,J.useState)(null),[f,p]=(0,J.useState)(!1),[m,h]=(0,J.useState)(null),g=e?.waiting_stage_id??``,_=e?.waiting_kind===`feedback_loop_decision`;(0,J.useEffect)(()=>{if(l(``),h(null),!e||!g){d(null);return}let t=YD(e.run_id,g),n=JD.get(t);if(n){d(n);return}let r=!1;return p(!0),Di(e.run_id).then(e=>{r||(JD.set(t,e),d(e))}).catch(()=>{r||d(null)}).finally(()=>{r||p(!1)}),()=>{r=!0}},[e?.run_id,g]),(0,J.useEffect)(()=>{e&&o.current?.focus()},[e?.run_id,g]);let v=u?.stages.find(e=>e.stage_id===g),y=v?.pending_prompt??null,b=v?.events?LD(v.events):null;return(0,J.useEffect)(()=>{if(!i||!e){i?.(null);return}i({accept:()=>void m?.accept(),reject:()=>void m?.reject(),focusNote:()=>s.current?.focus(),openRun:()=>r(e.run_id),locked:m?.locked??!1,canReject:m?.canReject??!1})},[e,m,i,r]),!e||!g?(0,Y.jsx)(`div`,{className:`min-h-0 min-w-0 flex-1 bg-[var(--sf-panel)]`,"aria-hidden":`true`}):(0,Y.jsxs)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col overflow-clip`,ref:o,tabIndex:-1,children:[(0,Y.jsx)(qD,{run:e,stageId:g,kindLabel:e.waiting_kind??void 0,index:t,total:n}),(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-6 overflow-y-auto px-8 py-7`,children:[f?(0,Y.jsx)(`p`,{className:`text-sm text-[var(--sf-text-3)]`,children:`Loading run detail…`}):null,(0,Y.jsx)(ew,{run:e,stageId:g,pendingPrompt:y,showOpenRunOnly:_,onOpenRun:()=>r(e.run_id),onAnswered:()=>{XD(e.run_id,g),a?.()},note:c,onRegisterActions:h,rationale:b})]}),_?null:(0,Y.jsx)(tw,{note:c,onNoteChange:l,noteRef:s,onAccept:()=>void m?.accept(),onReject:()=>void m?.reject(),disabled:m?.locked,canReject:m?.canReject})]})}function QD(e){return e?e.replace(/_/g,` `):`gate`}function $D({selected:e}){return(0,Y.jsx)(`span`,{className:`flex size-7 shrink-0 items-center justify-center rounded-full${e?` bg-[#f5b54429]`:` bg-[#f5b5441a]`}`,"aria-hidden":`true`,children:(0,Y.jsx)(a,{className:`size-3.5 text-[var(--sf-needs)]`})})}function eO(){return(0,Y.jsx)(`span`,{className:`flex size-7 shrink-0 items-center justify-center rounded-full bg-[#ff4d4d1a]`,"aria-hidden":`true`,children:(0,Y.jsx)(St,{className:`size-3.5 text-[var(--sf-fail)]`})})}function tO({run:e,selected:t,onSelect:n}){return(0,Y.jsxs)(el,{variant:`gate`,selected:t,needs:!1,onClick:()=>n(e.run_id),children:[(0,Y.jsx)(eO,{}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[(0,Y.jsx)(`div`,{className:`truncate text-[13px] font-medium text-[var(--sf-text-1)]`,children:es(e)}),(0,Y.jsx)(`div`,{className:`truncate font-['Geist_Mono',monospace] text-[11px] text-[var(--sf-text-3)]`,children:e.failed_stage_id??`—`}),e.failed_reason?(0,Y.jsx)(`p`,{className:`truncate text-xs leading-snug text-[var(--sf-text-2)]`,children:e.failed_reason}):null,(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-2 text-[11px] text-[var(--sf-text-3)]`,children:[(0,Y.jsx)(`span`,{className:`min-w-0 truncate`,children:$o(e)}),(0,Y.jsx)(`span`,{className:`shrink-0 font-['Geist_Mono',monospace]`,children:Cs(e.updated_at??e.created_at)})]})]})]})}function nO({children:e}){return(0,Y.jsx)(`div`,{className:`px-3 pb-1.5 pt-4 text-[11px] font-medium uppercase tracking-[0.88px] text-[var(--sf-text-3)]`,children:e})}function rO({tab:e,onTabChange:t,needs:n,broken:r,finished:i,alsoRunning:a,alsoFailed:o,selectedId:s,onSelect:c,onAlsoHappeningOpen:l,failedSortOrder:u,onFailedSortToggle:d,loading:f}){let p=ND(jD(r,u));return(0,Y.jsxs)(`div`,{className:`flex h-full w-[420px] shrink-0 flex-col border-r border-r-[#ffffff0f]`,children:[(0,Y.jsxs)(`div`,{className:`flex shrink-0 flex-col gap-3.5 border-b border-b-[#ffffff0f] px-5 pb-0 pt-[18px]`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,Y.jsx)(`h1`,{className:`text-xl font-semibold tracking-[-0.4px] text-[var(--sf-text-1)]`,children:`Inbox`}),e===`failed`?(0,Y.jsx)(`button`,{type:`button`,className:`shrink-0 rounded-md border border-[#ffffff1a] px-2 py-1 font-['Geist_Mono',monospace] text-[11px] text-[var(--sf-text-2)]`,onClick:d,children:u===`newest`?`Newest`:`Oldest`}):null]}),(0,Y.jsx)(Zc,{variant:`queue`,activeId:e,onChange:e=>t(e),tabs:[{id:`needs`,label:`Needs you`,count:n.length},{id:`failed`,label:`Failed`,count:r.length},{id:`done_today`,label:`Done today`,count:i.length}]})]}),(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-0.5 overflow-y-auto p-2`,children:[f?(0,Y.jsx)(`p`,{className:`px-3 py-2 text-xs text-[var(--sf-text-3)]`,children:`Loading…`}):null,e===`needs`?n.map(e=>{if(e.kind===`agent`){let{approval:t}=e,n=s===e.key,r=DD(t.payload);return(0,Y.jsxs)(el,{variant:`gate`,selected:n,needs:!0,onClick:()=>c(e.key),children:[(0,Y.jsx)(`span`,{className:`flex size-7 shrink-0 items-center justify-center rounded-full${n?` bg-[#f5b54429]`:` bg-[#f5b5441a]`}`,"aria-hidden":`true`,children:(0,Y.jsx)(mt,{className:`size-3.5 text-[var(--sf-needs)]`})}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[(0,Y.jsx)(`div`,{className:`truncate text-[13px] font-medium text-[var(--sf-text-1)]`,children:t.agentName??t.agentId}),(0,Y.jsxs)(`div`,{className:`truncate font-['Geist_Mono',monospace] text-[11px] text-[var(--sf-text-3)]`,children:[t.tool,` · approval`]}),(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-2 text-[11px] text-[var(--sf-text-3)]`,children:[(0,Y.jsx)(`span`,{className:`min-w-0 truncate`,children:`Agent`}),(0,Y.jsx)(`span`,{className:`shrink-0 font-['Geist_Mono',monospace]`,children:Cs(t.createdAt)})]}),r?(0,Y.jsx)(`p`,{className:`line-clamp-2 break-all font-['Geist_Mono',monospace] text-[11px] leading-snug text-[var(--sf-text-2)]`,children:r}):null]})]},e.key)}let t=e.run,n=s===t.run_id;return(0,Y.jsxs)(el,{variant:`gate`,selected:n,needs:!0,onClick:()=>c(t.run_id),children:[(0,Y.jsx)($D,{selected:n}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[(0,Y.jsx)(`div`,{className:`truncate text-[13px] font-medium text-[var(--sf-text-1)]`,children:es(t)}),(0,Y.jsxs)(`div`,{className:`truncate font-['Geist_Mono',monospace] text-[11px] text-[var(--sf-text-3)]`,children:[t.waiting_stage_id??t.failed_stage_id,` ·`,` `,QD(t.waiting_kind)]}),(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-2 text-[11px] text-[var(--sf-text-3)]`,children:[(0,Y.jsx)(`span`,{className:`min-w-0 truncate`,children:$o(t)}),(0,Y.jsx)(`span`,{className:`shrink-0 font-['Geist_Mono',monospace]`,children:Cs(t.updated_at??t.created_at)})]}),t.waiting_summary?(0,Y.jsx)(`p`,{className:`line-clamp-2 text-xs leading-snug text-[var(--sf-text-2)]`,children:t.waiting_summary}):null]})]},t.run_id)}):null,e===`failed`&&!f&&r.length===0?(0,Y.jsx)(`p`,{className:`px-3 py-4 text-sm text-[var(--sf-text-3)]`,children:`No failed runs right now.`}):null,e===`done_today`&&!f&&i.length===0?(0,Y.jsx)(`p`,{className:`px-3 py-4 text-sm text-[var(--sf-text-3)]`,children:`No finished runs in the catalog yet.`}):null,e===`failed`?(0,Y.jsxs)(Y.Fragment,{children:[p.interrupted.length>0?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(nO,{children:`INTERRUPTED`}),p.interrupted.map(e=>(0,Y.jsx)(tO,{run:e,selected:s===e.run_id,onSelect:c},e.run_id))]}):null,p.other.map(e=>(0,Y.jsx)(tO,{run:e,selected:s===e.run_id,onSelect:c},e.run_id))]}):null,e===`done_today`?i.map(e=>{let t=s===e.run_id;return(0,Y.jsx)(el,{variant:`gate`,selected:t,needs:!1,onClick:()=>c(e.run_id),children:(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[(0,Y.jsx)(`div`,{className:`truncate text-[13px] font-medium text-[var(--sf-text-1)]`,children:es(e)}),(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-2 text-[11px] text-[var(--sf-text-3)]`,children:[(0,Y.jsx)(`span`,{className:`min-w-0 truncate`,children:$o(e)}),(0,Y.jsx)(`span`,{className:`shrink-0 font-['Geist_Mono',monospace]`,children:Cs(e.updated_at??e.created_at)})]})]})},e.run_id)}):null,e===`needs`&&(o.length>0||a.length>0)?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{className:`px-3 pb-1.5 pt-5 text-[11px] font-medium uppercase tracking-[0.88px] text-[var(--sf-text-3)]`,children:`Also happening`}),o.map(e=>(0,Y.jsxs)(`button`,{type:`button`,className:`flex h-9 items-center gap-2.5 rounded-lg px-3 text-left`,onClick:()=>l(e.run_id),children:[(0,Y.jsx)(St,{className:`size-3.5 shrink-0 text-[var(--sf-fail)]`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-['Geist_Mono',monospace] text-[13px] text-[var(--sf-text-2)]`,children:es(e)})]},e.run_id)),a.map(e=>(0,Y.jsxs)(`button`,{type:`button`,className:`flex h-9 items-center gap-2.5 rounded-lg px-3 text-left`,onClick:()=>l(e.run_id),children:[(0,Y.jsx)(xe,{className:`size-3.5 shrink-0 text-[var(--sf-running)]`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-['Geist_Mono',monospace] text-[13px] text-[var(--sf-text-2)]`,children:es(e)}),(0,Y.jsx)(`span`,{className:`shrink-0 font-['Geist_Mono',monospace] text-xs text-[var(--sf-running)]`,children:RD(e)})]},e.run_id))]}):null,(0,Y.jsxs)(`footer`,{className:`mt-auto flex items-center gap-3 px-3 pb-2 pt-4 text-xs text-[var(--sf-text-3)]`,children:[e===`needs`?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,Y.jsx)(Nl,{children:`J`}),(0,Y.jsx)(Nl,{children:`K`}),`move`]}),(0,Y.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,Y.jsx)(Nl,{children:`O`}),`open`]})]}):null,e===`failed`?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,Y.jsx)(Nl,{children:`J`}),(0,Y.jsx)(Nl,{children:`K`}),`move`]}),(0,Y.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,Y.jsx)(Nl,{children:`O`}),`open`]}),(0,Y.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,Y.jsx)(Nl,{children:`R`}),`retry`]})]}):null]})]})]})}var iO=`sf-notify-waiting`;function aO(){try{let e=localStorage.getItem(iO);if(e===`system`||e===`off`)return e}catch{}return`off`}function oO(e){try{localStorage.setItem(iO,e)}catch{}}function sO(){return typeof Notification>`u`?`unsupported`:Notification.permission}async function cO(){return typeof Notification>`u`?`unsupported`:Notification.permission==="default"?Notification.requestPermission():Notification.permission}function lO(e,t){let n=new Set(e.map(e=>e.run_id));if(t===null)return{emit:[],nextSeen:n};let r=[],i=new Set(t);for(let t of e)i.has(t.run_id)||(r.push(t),i.add(t.run_id));for(let e of[...i])n.has(e)||i.delete(e);return{emit:r,nextSeen:i}}function uO(e){let{snapshot:t,loading:n}=Jo(),r=(0,J.useRef)(null);(0,J.useEffect)(()=>{if(n)return;let{emit:i,nextSeen:a}=lO(ss(t),r.current);if(r.current=a,e){for(let e of i)if(typeof Notification<`u`&&Notification.permission===`granted`){let t=[e.pipeline_id,e.waiting_summary].filter(e=>!!e);new Notification(`Stage waiting on you`,{body:t.join(` — `)})}}},[t,n,e])}function dO(e,t){let n=new Set(e.map(e=>e.id));return t===null?{emit:[],nextSeen:n}:{emit:e.filter(e=>!t.has(e.id)),nextSeen:n}}var fO=15e3;function pO(e){let t=(0,J.useRef)(null);(0,J.useEffect)(()=>{let n=!1,r=async()=>{try{let r=await gD.pendingApprovals();if(n)return;let{emit:i,nextSeen:a}=dO(r,t.current);if(t.current=a,!e||typeof Notification>`u`||Notification.permission!==`granted`)return;for(let e of i)new Notification(`Agent waiting on you`,{body:`${e.agentId} wants to use ${e.tool}`})}catch{}};r();let i=window.setInterval(()=>void r(),fO);return()=>{n=!0,window.clearInterval(i)}},[e])}function mO(e){return e===0?`No runs are in flight. We’ll put a gate here the moment an agent asks you something.`:e===1?`One run is working. We’ll put a gate here the moment an agent asks you something.`:`${e} runs are working. We’ll put a gate here the moment an agent asks you something.`}function hO({tab:e,onTabChange:t,waitingCount:n,brokenCount:r,doneCount:i,inFlight:a,onStartRun:o,onOpenRuns:s,onOpenRun:c,onGoToDoneToday:u}){let d=aO();return(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[(0,Y.jsxs)(`div`,{className:`flex w-full shrink-0 flex-col`,children:[(0,Y.jsx)($c,{variant:`inbox`,title:`Inbox`,titleAddon:(0,Y.jsxs)(`span`,{className:`flex h-6 items-center gap-[5px] rounded-full bg-[#4cc38a1a] px-2`,children:[(0,Y.jsx)(G,{className:`size-3 text-[var(--sf-ok)]`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`text-xs font-medium text-[var(--sf-ok)]`,children:`All clear`})]})}),(0,Y.jsx)(Zc,{variant:`underline`,activeId:e,onChange:e=>t(e),tabs:[{id:`needs`,label:`Needs you`,count:n},{id:`failed`,label:`Failed`,count:r},{id:`done_today`,label:`Done today`,count:i}]})]}),(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col items-center gap-8 overflow-y-auto pb-10 pt-14`,children:[(0,Y.jsxs)(`div`,{className:`flex w-[720px] max-w-full flex-col items-center gap-3.5 px-4 py-2`,children:[(0,Y.jsx)(`div`,{className:`flex size-[72px] items-center justify-center rounded-full bg-[#4cc38a0d]`,children:(0,Y.jsx)(`div`,{className:`flex size-[52px] items-center justify-center rounded-full border border-[#4cc38a40] bg-[#4cc38a1a]`,children:(0,Y.jsx)(G,{className:`size-6 text-[var(--sf-ok)]`,"aria-hidden":`true`})})}),(0,Y.jsxs)(`div`,{className:`flex flex-col items-center gap-1.5 pt-1`,children:[(0,Y.jsx)(`h2`,{className:`text-xl font-semibold tracking-[-0.4px] text-[var(--sf-text-1)]`,children:`Nothing needs you`}),(0,Y.jsx)(`p`,{className:`max-w-md text-center text-sm text-[var(--sf-text-2)]`,children:mO(a.length)})]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 pt-1.5`,children:[(0,Y.jsxs)(`button`,{type:`button`,className:`flex h-8 cursor-pointer items-center gap-2 rounded-lg bg-[var(--sf-text-1)] px-3 text-[13px] font-medium text-[var(--sf-ground)]`,onClick:o,children:[(0,Y.jsx)(se,{className:`size-3.5`,"aria-hidden":`true`}),`Start a run`]}),(0,Y.jsxs)(`button`,{type:`button`,className:`flex h-8 cursor-pointer items-center gap-2 rounded-lg border border-[#ffffff1a] px-3 text-[13px] text-[var(--sf-text-1)]`,onClick:s,children:[`Open Runs`,(0,Y.jsx)(Nl,{children:`G`})]})]}),(0,Y.jsxs)(`p`,{className:`pt-0.5 text-xs text-[var(--sf-text-3)]`,children:[`Desktop alerts `,d===`system`?`on`:`off`]})]}),a.length>0?(0,Y.jsxs)(`div`,{className:`flex w-[720px] max-w-full flex-col gap-2.5 px-4`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Y.jsx)(`span`,{className:`text-[11px] font-medium uppercase tracking-[0.88px] text-[var(--sf-text-3)]`,children:`In flight`}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-3`,children:[u&&i>0?(0,Y.jsx)(`button`,{type:`button`,className:`text-xs text-[var(--sf-text-2)] underline-offset-2 hover:underline`,onClick:u,children:`Done today`}):null,(0,Y.jsxs)(`button`,{type:`button`,className:`inline-flex items-center gap-1 text-xs text-[var(--sf-text-2)]`,onClick:s,children:[`View runs`,(0,Y.jsx)(l,{className:`size-3.5`,"aria-hidden":`true`})]})]})]}),(0,Y.jsx)(`div`,{className:`flex flex-col overflow-hidden rounded-xl border border-[#ffffff12] bg-[var(--sf-panel)]`,children:a.slice(0,4).map((e,t)=>(0,Y.jsxs)(`button`,{type:`button`,className:`grid grid-cols-[92px_1fr_72px] items-center gap-3.5 px-3.5 py-2.5 text-left${t<a.length-1?` border-b border-b-[#ffffff12]`:``}`,onClick:()=>c(e.run_id),children:[(0,Y.jsx)(`span`,{className:`truncate font-['Geist_Mono',monospace] text-xs text-[var(--sf-text-3)]`,children:Ss(e.run_id)}),(0,Y.jsx)(`span`,{className:`truncate text-[13px] text-[var(--sf-text-1)]`,children:es(e)}),(0,Y.jsx)(`span`,{className:`text-right font-['Geist_Mono',monospace] text-xs text-[var(--sf-running)]`,children:js(e)===`running`?`running`:e.status})]},e.run_id))})]}):null]})]})}var gO=`sf-inbox-dismissed-failed`;function _O(){try{let e=localStorage.getItem(gO);if(!e)return new Set;let t=JSON.parse(e);return Array.isArray(t)?new Set(t.filter(e=>typeof e==`string`)):new Set}catch{return new Set}}function vO(e){localStorage.setItem(gO,JSON.stringify([...e]))}function yO(e){let t=_O();t.add(e),vO(t)}function bO(e){let t=_O();return e.filter(e=>!t.has(e.run_id))}var xO=`Start a new run from the beginning? The failed run stays in history.`;function SO({onOpen:e,onNew:t,onOpenRuns:n,agentApprovals:r=[],onAgentApprovalDecided:i,onOpenAgentSession:a}){let o=Yo(),{snapshot:s,error:c,loading:l}=Jo(),[u,d]=(0,J.useState)(()=>fc()),[f,p]=(0,J.useState)(null),[m,h]=(0,J.useState)(null),[g,_]=(0,J.useState)(`newest`),[v,y]=(0,J.useState)(0),[b,x]=(0,J.useState)(!1),S=(0,J.useRef)(0);(0,J.useEffect)(()=>{let e=()=>d(fc());return window.addEventListener(`hashchange`,e),()=>window.removeEventListener(`hashchange`,e)},[]);let C=(0,J.useCallback)(e=>{mc(e),d(e)},[]),w=(0,J.useMemo)(()=>cs(s),[s]),T=(0,J.useMemo)(()=>ED(w,r),[w,r]),E=(0,J.useMemo)(()=>ds(s),[s]),D=(0,J.useMemo)(()=>bO(E),[E,v]),O=(0,J.useMemo)(()=>fs(s),[s]),k=(0,J.useMemo)(()=>us(s),[s]),A=(0,J.useMemo)(()=>os(s).broken,[s]),j=(0,J.useMemo)(()=>MD(ND(jD(D,g))),[D,g]),M=(0,J.useMemo)(()=>u===`needs`?T.map(e=>e.key):(u===`failed`?j:O).map(e=>e.run_id),[u,T,j,O]),N=(0,J.useMemo)(()=>f?(u===`needs`?w:u===`failed`?j:O).find(e=>e.run_id===f)??null:null,[u,w,j,O,f]),P=(0,J.useMemo)(()=>{if(u!==`needs`||!f)return null;let e=T.find(e=>e.key===f);return e?.kind===`agent`?e.approval:null},[u,T,f]),F=f?M.indexOf(f):-1;(0,J.useEffect)(()=>{F>=0&&(S.current=F)},[F]),(0,J.useEffect)(()=>{if(M.length===0){p(null);return}if(!f||!M.includes(f)){let e=Math.min(Math.max(S.current,0),M.length-1);p(M[e])}},[M,f,u]);let{retry:I,retryingStageIds:L,error:R}=El(u===`failed`&&N?.failed_stage_id?N.run_id:``,()=>void o.refresh()),z=(0,J.useCallback)(e=>{if(M.length===0)return;let t=BD(F>=0?F:0,M.length,e);p(M[t])},[M,F]),B=(0,J.useCallback)(()=>{N&&(yO(N.run_id),y(e=>e+1),p(null))},[N]),V=(0,J.useCallback)(()=>{N&&window.confirm(xO)&&(x(!0),Da(N.run_id).then(({runId:t})=>{e(t)}).finally(()=>{x(!1)}))},[N,e]),H=n??(()=>{});Yc([{key:`j`,scope:`inbox`,when:()=>M.length>0&&u!==`needs`,handler:e=>{e.preventDefault(),z(1)}},{key:`k`,scope:`inbox`,when:()=>M.length>0&&u!==`needs`,handler:e=>{e.preventDefault(),z(-1)}},{key:`j`,scope:`inbox`,when:()=>u===`needs`&&T.length>0,handler:e=>{e.preventDefault(),z(1)}},{key:`k`,scope:`inbox`,when:()=>u===`needs`&&T.length>0,handler:e=>{e.preventDefault(),z(-1)}},{key:`o`,scope:`inbox`,when:()=>!!N&&u!==`needs`,handler:t=>{t.preventDefault(),N&&e(N.run_id)}},{key:`r`,scope:`inbox`,when:()=>u===`failed`&&!!N?.failed_stage_id&&!L.has(N.failed_stage_id),handler:e=>{e.preventDefault();let t=N?.failed_stage_id;t&&I(t)}},{key:`g`,scope:`inbox`,when:()=>u===`needs`&&T.length===0&&!l,handler:e=>{e.preventDefault(),H()}}],`inbox`),Yc([{key:`1`,scope:`inbox-gate`,when:()=>!!(m&&!m.locked),handler:e=>{e.preventDefault(),m?.accept()}},{key:`3`,scope:`inbox-gate`,when:()=>!!(m&&!m.locked&&m.canReject),handler:e=>{e.preventDefault(),m?.reject()}},{key:`n`,scope:`inbox-gate`,handler:e=>{e.preventDefault(),m?.focusNote()}},{key:`o`,scope:`inbox-gate`,when:()=>!!(N||P),handler:t=>{t.preventDefault(),N?e(N.run_id):P&&a?.(P.agentId,P.sessionId)}}],`inbox-gate`);let ee=u===`needs`&&T.length===0&&!l,te=u===`needs`&&T.length===0&&l,ne=!!N?.failed_stage_id&&L.has(N.failed_stage_id);return(0,Y.jsxs)(`div`,{className:`relative flex h-full min-h-0 overflow-hidden bg-[var(--sf-ground)]`,children:[c?(0,Y.jsx)(`div`,{className:`absolute inset-x-0 top-0 z-10 bg-[var(--sf-fail)] px-4 py-2 text-sm text-white`,role:`alert`,children:c}):null,R?(0,Y.jsx)(`div`,{className:`absolute inset-x-0 top-0 z-10 bg-[var(--sf-fail)] px-4 py-2 text-sm text-white`,role:`alert`,children:R}):null,te?null:ee?(0,Y.jsx)(hO,{tab:u,onTabChange:C,waitingCount:T.length,brokenCount:D.length,doneCount:O.length,inFlight:k,onStartRun:t,onOpenRuns:H,onOpenRun:e,onGoToDoneToday:()=>C(`done_today`)}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(rO,{tab:u,onTabChange:C,needs:T,broken:D,finished:O,alsoRunning:k,alsoFailed:A,selectedId:f,onSelect:p,onAlsoHappeningOpen:e,failedSortOrder:g,onFailedSortToggle:()=>_(e=>e===`newest`?`oldest`:`newest`),loading:l}),u===`needs`&&P?(0,Y.jsx)(wD,{approval:P,index:F>=0?F:0,total:T.length,onDecided:()=>{S.current=F>=0?F:0,i?.()},onOpenSession:(e,t)=>a?.(e,t),onRegisterHotkeys:h}):null,u===`needs`&&!P?(0,Y.jsx)(ZD,{run:N,index:F>=0?F:0,total:T.length,onOpenRun:e,onRegisterHotkeys:h,onAnswered:()=>{S.current=F>=0?F:0}}):null,u===`failed`?(0,Y.jsx)(KD,{run:N,onOpenRun:e,onRetry:e=>void I(e),onStartFresh:V,onDismiss:B,retrying:ne,rerunning:b}):null,u===`done_today`?(0,Y.jsx)(OD,{run:N}):null]})]})}var CO;function wO(){return CO??=Ki().catch(e=>{throw CO=void 0,e}),CO}function TO(){let[e,t]=(0,J.useState)({meta:null,failed:!1});return(0,J.useEffect)(()=>{let e=!1;return wO().then(n=>{e||t({meta:n,failed:!1})},()=>{e||t({meta:null,failed:!0})}),()=>{e=!0}},[]),e}function EO(e,t){return e?.providers.find(e=>e.id===t)}function DO(e,t){return EO(e,t)?.label??t}function OO(e,t){return e?.errors[t]?.reason??t}function kO(e,t){return t?e?.errors[t]?.hint:void 0}function AO(e,t){if(!e.enabled)return{label:`Disabled`,tone:`muted`};let n=e.health;return n?n.state===`ok`?{label:`Connected`,tone:`ok`}:n.error?.code===`CHANNEL_SECRET_UNAVAILABLE`?{label:`Not connected`,tone:`muted`,detail:`Finish setup: ${OO(t,n.error.code)}`}:{label:`Connection broken`,tone:`needs`,...n.error?{detail:OO(t,n.error.code)}:{}}:{label:`Not checked yet`,tone:`muted`}}function jO(e,t=Date.now()){let n=Math.max(0,Math.round((t-Date.parse(e))/1e3));return Number.isNaN(n)?``:n<60?`just now`:n<3600?`${Math.floor(n/60)} min ago`:n<86400?`${Math.floor(n/3600)} h ago`:`${Math.floor(n/86400)} d ago`}function MO(e,t,n){let r=e.map(e=>{let t=EO(n,e.provider),r=t?.via;return{key:`channel:${e.id}`,id:e.id,kind:`channel`,provider:e.provider,name:DO(n,e.provider),secondary:e.identity?`${e.identity} · ${e.id}`:e.id,...r?{via:r}:{},icon:t?.icon??`plug`,status:AO(e,n),...e.health?{checkedAt:e.health.checkedAt}:{},checkable:e.enabled}});for(let e of t)r.push({key:`email:${e.id}`,id:e.id,kind:`email`,provider:`email`,name:e.displayName,secondary:`${e.address} · IMAP/SMTP`,icon:`mail`,status:e.enabled?{label:`Enabled`,tone:`muted`}:{label:`Disabled`,tone:`muted`},checkable:!1});return r}function NO(e,t){let n=new Set(e.map(e=>e.provider));return(t?.providers??[]).filter(e=>!n.has(e.id))}function PO(e){return e.map(e=>({name:e.name,detail:`${e.transport} server · ${e.origin===`console`?`added in Settings`:`.mcp.json`}`}))}function FO(e,t){return{connections:e.length+t.length,channels:e.length,tools:t.length,needsAttention:e.filter(e=>e.status.tone===`needs`).length,connectedChannels:e.filter(e=>e.status.tone===`ok`).length}}function IO(e){if(e.connections===0)return`No connections yet`;let t=[`${e.connections} connection${e.connections===1?``:`s`}`,`${e.channels} channel${e.channels===1?``:`s`}`,`${e.tools} tool${e.tools===1?``:`s`}`];return e.needsAttention>0&&t.push(`${e.needsAttention} needs attention`),t.join(` · `)}function LO(e,t,n){return`channels:
117
- - connection: ${t}
118
- ${EO(n,e)?.stageExample??` to: <target>`}
119
- operations: [send]
120
- `}function RO(e,t){return kO(t,e)}function zO(e,t){return[{label:`Provider`,value:DO(t,e.provider)},{label:`Connection id`,value:e.id,mono:!0},...e.identity?[{label:`Identity`,value:e.identity,mono:!0}]:[],...e.credential?[{label:`Shared credential`,value:e.credential,mono:!0}]:[],{label:`Enabled`,value:e.enabled?`Yes`:`No`}]}function BO(e,t,n){return e.fields.filter(e=>e.required&&!(n&&e.target===`credential`)&&!(t[e.key]??``).trim()).map(e=>e.key)}function VO(e,t,n={}){let r={},i={},a={};for(let o of e.fields){let e=(t[o.key]??o.defaultValue??``).trim();e&&(o.target===`config`?r[o.key]=e:o.target===`secret`?i[o.key]=e:n.savedCredential||(a[o.key]=e))}return{provider:e.id,...n.id?{id:n.id}:{},...n.displayName?{displayName:n.displayName}:{},config:r,secrets:i,...n.savedCredential?{credential:n.savedCredential}:Object.keys(a).length?{credential:{secrets:a}}:{}}}function HO(e,t){let n=t?.errors[e]?.reason;if(!n)return`Request failed (${e})`;let r=kO(t,e);return r?`${n}. ${r}`:n}var UO=5e3;function WO(){let[e,t]=(0,J.useState)([]),n=(0,J.useRef)(new Map),r=(0,J.useRef)(!0),i=(0,J.useCallback)(async()=>{try{let e=await gD.pendingApprovals();if(e.some(e=>!n.current.has(e.agentId))){let e=await gD.list().catch(()=>[]);for(let t of e)n.current.set(t.id,t.name)}r.current&&t(e.map(e=>({...e,...n.current.has(e.agentId)?{agentName:n.current.get(e.agentId)}:{}})))}catch{}},[]);return(0,J.useEffect)(()=>{r.current=!0,i();let e=window.setInterval(()=>{document.visibilityState!==`hidden`&&i()},UO);return()=>{r.current=!1,window.clearInterval(e)}},[i]),{approvals:e,refresh:()=>void i()}}function GO(e){return e.length===0?`No providers`:e.length<=2?e.join(` · `):`${e.slice(0,2).join(` · `)} · +${e.length-2}`}var KO=3e4,qO=null;function JO(){let[e,t]=(0,J.useState)(()=>qO?.value??{label:`—`,ready:!1,loading:!0,connectedCount:0,failed:!1}),n=(0,J.useCallback)(async()=>{let e=Date.now();if(qO&&e-qO.at<KO){t(qO.value);return}t(e=>({...e,loading:!0}));try{let{providers:n}=await ma();if(n.length===0){let n={label:`No providers`,ready:!1,loading:!1,connectedCount:0,failed:!1};qO={at:e,value:n},t(n);return}let r=await Promise.all(n.map(async e=>{try{let{provider:t}=await ga(e.id);return t.configured===!0}catch{return!1}})),i=n.filter((e,t)=>r[t]).map(e=>e.id),a=i.length>0&&i.length===n.length,o={label:i.length===0?`No providers`:GO(i),ready:a,loading:!1,connectedCount:i.length,failed:!1};qO={at:e,value:o},t(o)}catch{t({label:`Providers unavailable`,ready:!1,loading:!1,connectedCount:0,failed:!0})}},[]);return(0,J.useEffect)(()=>{n()},[n]),e}function YO(e,t){let n=Math.max(0,e.maxConcurrent),r=Math.min(n,Math.max(0,e.activeCount)),i=Math.min(r,Math.max(0,t)),a=Math.max(0,r-i),o=Math.max(0,n-r),s=[];for(let e=0;e<a;e++)s.push(`running`);for(let e=0;e<i;e++)s.push(`held`);for(let e=0;e<o;e++)s.push(`free`);return s}function XO(e){return e===`running`?`bg-[var(--sf-running)]`:e===`held`?`bg-[var(--sf-needs)]`:`bg-[var(--sf-track-empty)]`}function ZO(e){return e<=0?null:e===1?`1 slot held by a run waiting on you`:`${e} slots held by runs waiting on you`}var QO=6e4,$O=60*QO,ek=24*$O,tk=[`24h`,`7d`,`30d`];function nk(e){return os({runs:[...e],health:null})}function rk(e,t){if(!e)return``;let n=Date.parse(e);if(Number.isNaN(n))return``;let r=Math.max(0,t-n);return r<QO?`just now`:r<$O?`${Math.floor(r/QO)}m`:r<ek?`${Math.floor(r/$O)}h`:`${Math.floor(r/ek)}d`}function ik(e,t){let n=rk(e,t);return n===``||n===`just now`?n:`${n} ago`}function ak(e){if(e==null||!Number.isFinite(e))return`—`;let t=Math.round(e/1e3);if(t<60)return`${t}s`;let n=Math.floor(t/60);return n<60?`${n}m ${String(t%60).padStart(2,`0`)}s`:`${Math.floor(n/60)}h ${String(n%60).padStart(2,`0`)}m`}function ok(e){return`$${e.toFixed(2)}`}function sk(e){return e==null?`—`:`${Math.round(e*100)}%`}function ck(e){let t=Math.max(0,Math.floor(e/QO));if(t<60)return`${t}m`;let n=Math.floor(t/60);return t%60==0?`${n}h`:`${n}h ${t%60}m`}function lk(e){return e.task_id??e.run_id}function uk(e,t,n){return ED(nk(e).waiting,[...t]).map(e=>{if(e.kind===`run`){let t=e.run,r=t.waiting_stage_id?` · ${t.waiting_stage_id}`:``;return{kind:`gate`,key:e.key,runId:t.run_id,title:t.waiting_summary?.trim()||`${t.pipeline_id} is waiting on you`,meta:`${lk(t)} · ${t.pipeline_id}${r} · waiting ${rk(e.at,n)}`,since:e.at}}let t=e.approval,r=t.agentName??t.agentId,i=DD(t.payload,60);return{kind:`agent`,key:e.key,approvalId:t.id,agentId:t.agentId,sessionId:t.sessionId,title:`${r} wants to use ${t.tool}`,meta:`${i?`${i} · `:``}waiting ${rk(e.at,n)}`,since:e.at}})}function dk(e,t=3){return nk(e).broken.slice().sort((e,t)=>(t.updated_at??t.created_at).localeCompare(e.updated_at??e.created_at)).slice(0,t).map(e=>({key:e.run_id,runId:e.run_id,stageId:e.failed_stage_id??null,label:`${lk(e)}${e.failed_stage_id?` · ${e.failed_stage_id}`:``}`,reason:e.failed_reason?.split(`
121
- `)[0]?.trim()??``,at:e.updated_at??e.created_at}))}function fk(e,t){let n=null;for(let t of e)(!n||t.since<n.since)&&(n=t);return n?{ms:Math.max(0,t-Date.parse(n.since)),label:n.meta.split(` · waiting`)[0]??n.title}:null}function pk(e){return e===0?{tone:`ok`,accent:`All clear.`,rest:` Nothing needs you.`}:{tone:`needs`,accent:`${e} ${e===1?`thing`:`things`}`,rest:e===1?` needs you.`:` need you.`}}function mk(e,t){let n=nk(e);return{inFlight:n.inFlight.length+n.waiting.length,failedLastHour:n.broken.filter(e=>t-Date.parse(e.updated_at??e.created_at)<=$O).length}}var hk={"24h":`24 hours`,"7d":`7 days`,"30d":`30 days`},gk={"24h":`today`,"7d":`this week`,"30d":`this month`};function _k(e){let{totals:t,previous:n,range:r}=e,i=null;if(n.runs>0){let e=Math.round((t.runs-n.runs)/n.runs*100);i={text:`${e<0?`▼`:`▲`} ${Math.abs(e)}%`,direction:e===0?`flat`:e>0?`up`:`down`,good:null}}let a=null;if(t.success_rate!=null&&n.success_rate!=null){let e=Math.round((t.success_rate-n.success_rate)*1e3)/10;a={text:`${e<0?`▼`:`▲`} ${Math.abs(e)} pts`,direction:e===0?`flat`:e>0?`up`:`down`,good:e===0?null:e>0}}let o=t.cost_usd-n.cost_usd,s=Math.abs(o)<.005?null:{text:`${o>0?`▲`:`▼`} ${ok(Math.abs(o))}`,direction:o>0?`up`:`down`,good:null};return[{id:`runs`,label:`Runs ${gk[r]}`,value:String(t.runs),delta:i,note:`vs previous ${hk[r]}`,series:e.buckets.map(e=>e.succeeded+e.failed+e.cancelled)},{id:`success`,label:`Success rate`,value:sk(t.success_rate),delta:a,note:t.finished>0?`${t.succeeded} of ${t.finished} finished`:`no finished runs yet`,series:e.buckets.map(e=>{let t=e.succeeded+e.failed;return t>0?e.succeeded/t:0})},{id:`spend`,label:`Pipeline spend`,value:ok(t.cost_usd),delta:s,note:`vs previous ${hk[r]}`,series:[]}]}function vk(e,t,n){let r=new Date(e.start);return t===`24h`?`${String(r.getHours()).padStart(2,`0`)}:00`:t===`7d`?n?`Today`:r.toLocaleDateString(`en-US`,{weekday:`short`}):r.toLocaleDateString(`en-US`,{month:`short`,day:`numeric`})}function yk(e){if(e<=3)return 3;let t=e<=12?3:e<=45?15:e<=120?30:150;return Math.ceil(e/t)*t}function bk(e){let t=e.buckets.map((t,n)=>({key:t.start,label:vk(t,e.range,n===e.buckets.length-1),succeeded:t.succeeded,failed:t.failed,cancelled:t.cancelled,total:t.succeeded+t.failed+t.cancelled,current:n===e.buckets.length-1})),n=yk(Math.max(0,...t.map(e=>e.total)));return{bars:t,max:n,ticks:[n,n*2/3,n/3,0].map(e=>Math.round(e))}}function xk(e){return e.pipelines.map(e=>{let t=e.success_rate,n=e.succeeded+e.failed;return{...e,flaky:n>=2&&t!=null&&t<.7,tone:t==null?`none`:t>=.9?`ok`:t>=.7?`needs`:`fail`}})}function Sk(e,t=6){let n=nk(e),r=(e,t)=>{let n=e.stages.find(e=>e.status===`running`),r=t?`${e.waiting_stage_id??`gate`} · waiting on you`:n?`${n.id}${n.attempt_count>1?` · try ${n.attempt_count}`:``}`:`starting`;return{key:e.run_id,runId:e.run_id,name:lk(e),pipeline:e.pipeline_id,waiting:t,stage:r,stages:e.stages,startedAt:e.created_at}};return[...n.waiting.map(e=>r(e,!0)),...n.inFlight.map(e=>r(e,!1))].sort((e,t)=>Number(t.waiting)-Number(e.waiting)||t.startedAt.localeCompare(e.startedAt)).slice(0,t)}function Ck(e,t){return ak(Math.max(0,t-Date.parse(e)))}function wk(e,t,n=3){return e.filter(e=>e.status===`running`||e.status===`waiting`).slice(0,n).map(e=>({key:e.id,agentId:e.agentId,sessionId:e.id,name:t.get(e.agentId)??e.agentId,detail:`${e.source}${e.title?` · ${e.title}`:``}${e.status===`waiting`?` · waiting`:``}`,startedAt:e.createdAt}))}function Tk(e){if(!e||e.turnsFinished7d===0)return null;let t=Math.round(e.turnsSucceeded7d/e.turnsFinished7d*100),n=e.cost7d==null?``:` · ${ok(e.cost7d)}`;return`last 7d · ${e.turnsFinished7d} turns · ${t}% succeeded${n}`}function Ek(e,t,n=7){let r=[];for(let t of e){if(t.status!==`succeeded`&&t.status!==`failed`&&t.status!==`cancelled`)continue;let e=t.finished_at??t.updated_at??t.created_at,n={key:`run:${t.run_id}`,subject:lk(t),at:e,runId:t.run_id};t.status===`succeeded`?r.push({...n,tone:`ok`,text:`succeeded`}):t.status===`failed`?r.push({...n,tone:`fail`,text:t.failed_stage_id?`failed at ${t.failed_stage_id}`:`failed`}):r.push({...n,tone:`idle`,text:`cancelled`})}for(let e of t)e.last_fired_at&&r.push({key:`trigger:${e.project_root??``}:${e.id}`,tone:`idle`,subject:e.id,text:`trigger started ${e.pipeline}`,at:e.last_fired_at,...e.last_run_id?{runId:e.last_run_id}:{}});return r.sort((e,t)=>t.at.localeCompare(e.at)).slice(0,n)}function Dk(e,t){let n=Date.parse(e)-t;return Number.isNaN(n)?``:n<=0?`due`:n<$O?`in ${Math.max(1,Math.round(n/QO))}m`:n<ek?`in ${Math.round(n/$O)}h`:`in ${Math.round(n/ek)}d`}function Ok(e,t,n=4){let r=e=>e.enabled?+!e.next_run_at:2;return e.filter(e=>e.kind!==`manual`).slice().sort((e,t)=>r(e)-r(t)||(e.next_run_at??`￿`).localeCompare(t.next_run_at??`￿`)||e.id.localeCompare(t.id)).slice(0,n).map(e=>{let n=e.kind===`schedule`?`cron · ${e.schedule?.cron??``}`:`event · ${e.event?.source??``}`;return{key:`${e.project_root??``}:${e.id}`,id:e.id,...e.project_root?{project_root:e.project_root}:{},tone:e.enabled?e.adapter_status?.last_error==null?`ok`:`fail`:`idle`,detail:`${n} → ${e.pipeline}`,when:e.enabled?e.next_run_at?Dk(e.next_run_at,t):e.last_fired_at?`fired ${rk(e.last_fired_at,t)} ago`:`armed`:`off`}})}function kk(e){let t=e.filter(e=>e.kind!==`manual`);return{armed:t.filter(e=>e.enabled).length,total:t.length}}function Ak(e){return e<1048576?`${Math.max(0,Math.round(e/1024))} KB`:e<1024**3?`${Math.round(e/1024**2)} MB`:`${(e/1024**3).toFixed(+(e<10*1024**3))} GB`}function jk(e){let t=e?.disk;return t?`${Ak(t.runs_bytes+t.state_db_bytes+t.worktrees_bytes+t.repos_bytes+t.a2a_artifacts_bytes)} · ${Ak(t.free_bytes)} free`:null}var Mk=`font-['Geist_Mono',monospace]`;function Nk({children:e,accent:t,className:n=``}){return(0,Y.jsx)(`section`,{className:`flex min-w-0 flex-col overflow-hidden rounded-xl border bg-[var(--sf-panel)] ${t===`needs`?`border-[#f5b5444d]`:`border-[#ffffff12]`} ${n}`,children:e})}function Pk({title:e,count:t,lamp:n,link:r,children:i}){return(0,Y.jsxs)(`div`,{className:`flex h-[46px] shrink-0 items-center gap-2 border-b border-b-[#ffffff12] px-4`,children:[n?(0,Y.jsx)(`span`,{className:`block size-1.5 rounded-full ${n===`needs`?`bg-[var(--sf-needs)] shadow-[0px_0px_8px_rgba(245,181,68,0.8)]`:`bg-[var(--sf-running)]`}`,"aria-hidden":`true`}):null,(0,Y.jsx)(`h2`,{className:`text-[13px] font-semibold text-[var(--sf-text-1)]`,children:e}),t===void 0?null:(0,Y.jsx)(`span`,{className:`text-xs text-[var(--sf-text-3)] ${Mk}`,children:t}),(0,Y.jsx)(`div`,{className:`flex-1`}),i,r?(0,Y.jsxs)(`a`,{href:r.href,className:`text-xs text-[var(--sf-text-2)] no-underline hover:text-[var(--sf-text-1)]`,children:[r.label,` →`]}):null]})}function Fk({tone:e}){return(0,Y.jsx)(`span`,{className:`block size-1.5 shrink-0 rounded-full ${e===`ok`?`bg-[var(--sf-ok)]`:e===`needs`?`bg-[var(--sf-needs)]`:e===`fail`?`bg-[var(--sf-fail)]`:e===`running`?`bg-[var(--sf-running)]`:`bg-[#3a3d44]`}`,"aria-hidden":`true`})}var Ik=`flex h-7 shrink-0 items-center gap-1.5 rounded-md px-2.5 text-xs font-medium no-underline disabled:opacity-50`,Lk=`${Ik} border border-[#ffffff1a] bg-transparent text-[var(--sf-text-1)] hover:bg-[var(--sf-raised)]`;function Rk({rows:e,failed:t,busyKey:n,error:r,onDecide:i,onRetry:a}){let o=e.length===0&&t.length===0;return(0,Y.jsxs)(Nk,{accent:e.length>0?`needs`:void 0,className:`min-h-[200px] flex-1`,children:[(0,Y.jsx)(Pk,{title:`Needs you`,count:e.length,lamp:e.length>0?`needs`:void 0,link:{label:`Open Inbox`,href:`#/inbox`}}),o?(0,Y.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center gap-1 px-4 py-8 text-center`,children:[(0,Y.jsx)(`span`,{className:`text-sm font-medium text-[var(--sf-ok)]`,children:`You're clear.`}),(0,Y.jsx)(`span`,{className:`text-[13px] text-[var(--sf-text-2)]`,children:`No gates, approvals or failed runs are waiting.`})]}):null,e.map(e=>(0,Y.jsxs)(`div`,{className:`flex items-center gap-3 border-b border-b-[#ffffff12] px-4 py-3`,children:[e.kind===`gate`?(0,Y.jsxs)(`span`,{className:`flex h-6 shrink-0 items-center gap-1 rounded-full border border-[#f5b5444d] bg-[#f5b5441f] px-2 text-xs font-medium text-[var(--sf-needs)]`,children:[(0,Y.jsx)(Ze,{className:`size-3`,"aria-hidden":`true`}),`Gate`]}):(0,Y.jsxs)(`span`,{className:`flex h-6 shrink-0 items-center gap-1 rounded-full bg-[#6ca6ff1f] px-2 text-xs font-medium text-[var(--sf-running)]`,children:[(0,Y.jsx)(mt,{className:`size-3`,"aria-hidden":`true`}),`Agent`]}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-0.5`,children:[(0,Y.jsx)(`span`,{className:`truncate text-[13px] font-medium text-[var(--sf-text-1)]`,title:e.title,children:e.title}),(0,Y.jsx)(`span`,{className:`truncate text-xs text-[var(--sf-text-3)] ${Mk}`,title:e.meta,children:e.meta})]}),e.kind===`gate`?(0,Y.jsx)(`a`,{href:`#${hc(e.runId)}`,className:`${Ik} bg-[var(--sf-needs)] font-semibold text-[#1a1306]`,children:`Review`}):(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[(0,Y.jsx)(`button`,{type:`button`,className:`${Ik} bg-[#4cc38a1f] font-semibold text-[var(--sf-ok)]`,disabled:n===e.key,onClick:()=>i(e,`approve`),children:`Accept`}),(0,Y.jsx)(`button`,{type:`button`,className:Lk,disabled:n===e.key,onClick:()=>i(e,`deny`),children:`Reject`}),(0,Y.jsx)(`a`,{href:`#${Pc(e.agentId,e.sessionId)}`,className:Lk,children:`Open`})]})]},e.key)),t.map((e,r)=>(0,Y.jsxs)(`div`,{className:`flex items-center gap-3 bg-[var(--sf-active)] px-4 py-3 ${r===t.length-1?`mt-auto`:`border-b border-b-[#ffffff12]`}`,children:[(0,Y.jsx)(St,{className:`size-3.5 shrink-0 text-[var(--sf-fail)]`,"aria-hidden":`true`}),(0,Y.jsxs)(`span`,{className:`min-w-0 flex-1 truncate text-xs text-[var(--sf-text-2)] ${Mk}`,title:e.reason?`${e.label} · ${e.reason}`:e.label,children:[e.label,e.reason?` · ${e.reason}`:``]}),(0,Y.jsx)(`a`,{href:`#${hc(e.runId)}`,className:Lk,children:`Open`}),e.stageId?(0,Y.jsxs)(`button`,{type:`button`,className:`${Ik} bg-[#f2645a1f] font-semibold text-[var(--sf-fail)]`,disabled:n===e.key,onClick:()=>a(e),children:[(0,Y.jsx)(de,{className:`size-3`,"aria-hidden":`true`}),`Retry`]}):null]},e.key)),r?(0,Y.jsx)(`div`,{className:`border-t border-t-[#ffffff12] px-4 py-2 text-xs text-[var(--sf-fail)]`,children:r}):null]})}function zk({health:e,heldCount:t,rows:n}){let r=n.filter(e=>e.tone===`needs`||e.tone===`fail`).length,i=e?YO(e,t):[],a=ZO(t);return(0,Y.jsxs)(Nk,{className:`w-full shrink-0 xl:w-[340px]`,children:[(0,Y.jsx)(Pk,{title:`System health`,children:(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5 text-xs text-[var(--sf-text-3)]`,children:[(0,Y.jsx)(Fk,{tone:r>0?`needs`:`ok`}),r>0?`${r} need${r===1?`s`:``} a look`:`All reachable`]})}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2.5 border-b border-b-[#ffffff12] px-4 py-3.5`,children:[(0,Y.jsxs)(`div`,{className:`flex items-baseline justify-between`,children:[(0,Y.jsx)(`span`,{className:`text-xs text-[var(--sf-text-2)]`,children:`Agent slots`}),(0,Y.jsxs)(`span`,{className:`text-xl font-medium text-[var(--sf-text-1)] ${Mk}`,children:[e?e.activeCount:`—`,(0,Y.jsxs)(`span`,{className:`text-sm text-[var(--sf-text-3)]`,children:[` / `,e?e.maxConcurrent:`—`]})]})]}),(0,Y.jsx)(`div`,{className:`flex gap-[3px]`,"aria-hidden":`true`,children:i.map((e,t)=>(0,Y.jsx)(`span`,{className:`block h-2 flex-1 rounded-sm ${XO(e)}`},t))}),a?(0,Y.jsx)(`span`,{className:`text-xs text-[var(--sf-text-3)]`,children:a}):null]}),n.map(e=>{let t=(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(Fk,{tone:e.tone}),(0,Y.jsx)(`span`,{className:`flex-1 text-[13px] text-[var(--sf-text-1)]`,children:e.label}),(0,Y.jsx)(`span`,{className:`text-xs ${Mk} ${e.tone===`needs`?`text-[var(--sf-needs)]`:e.tone===`fail`?`text-[var(--sf-fail)]`:`text-[var(--sf-text-2)]`}`,children:e.value})]});return e.href?(0,Y.jsx)(`a`,{href:e.href,className:`flex h-10 items-center gap-2.5 border-b border-b-[#ffffff12] px-4 no-underline last:border-b-0 hover:bg-[var(--sf-active)]`,children:t},e.key):(0,Y.jsx)(`div`,{className:`flex h-10 items-center gap-2.5 border-b border-b-[#ffffff12] px-4 last:border-b-0`,children:t},e.key)})]})}function Bk({series:e,color:t}){if(e.length<2)return(0,Y.jsx)(`div`,{className:`mt-2 h-8`});let n=Math.max(...e),r=Math.min(...e),i=n-r||1,a=e.map((t,n)=>[n/(e.length-1)*100,28-(t-r)/i*24]).map(([e,t],n)=>`${n===0?`M`:`L`}${e.toFixed(1)} ${t.toFixed(1)}`).join(` `);return(0,Y.jsx)(`div`,{className:`mt-2 block h-8 w-full overflow-hidden`,style:{color:t},"aria-hidden":`true`,children:(0,Y.jsxs)(`svg`,{viewBox:`0 0 100 32`,preserveAspectRatio:`none`,width:`100%`,height:`100%`,fill:`none`,children:[(0,Y.jsx)(`path`,{d:`${a} L100 32 L0 32 Z`,fill:`currentColor`,fillOpacity:`0.12`}),(0,Y.jsx)(`path`,{d:a,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinejoin:`round`,vectorEffect:`non-scaling-stroke`})]})})}var Vk={runs:`var(--sf-running)`,success:`var(--sf-ok)`,spend:`var(--sf-running)`};function Hk({kpis:e,longestWaiting:t,loading:n}){let[r,i,a]=e,o=[r,i].filter(e=>e!==void 0);return(0,Y.jsxs)(`div`,{className:`grid grid-cols-2 gap-4 xl:grid-cols-4 ${n?`opacity-60`:``}`,children:[o.map(e=>(0,Y.jsx)(Uk,{kpi:e},e.id)),(0,Y.jsxs)(Nk,{accent:t?`needs`:void 0,className:`gap-1 p-4`,children:[(0,Y.jsx)(`span`,{className:`text-xs text-[var(--sf-text-2)]`,children:`Longest waiting on you`}),(0,Y.jsx)(`span`,{className:`text-[28px] font-medium leading-[1.2] tracking-tight ${Mk} ${t?`text-[var(--sf-needs)]`:`text-[var(--sf-text-1)]`}`,children:t?ck(t.ms):`—`}),(0,Y.jsx)(`span`,{className:`truncate text-xs text-[var(--sf-text-3)] ${Mk}`,title:t?.label,children:t?t.label:`nothing is waiting`}),t?(0,Y.jsx)(`a`,{href:t.href,className:`${Lk} mt-auto w-fit`,children:`Open it`}):null]}),a?(0,Y.jsx)(Uk,{kpi:a}):null]})}function Uk({kpi:e}){let t=e.delta?.good===!0?`text-[var(--sf-ok)]`:e.delta?.good===!1?`text-[var(--sf-fail)]`:`text-[var(--sf-text-2)]`;return(0,Y.jsxs)(Nk,{className:`gap-1 p-4`,children:[(0,Y.jsx)(`span`,{className:`text-xs text-[var(--sf-text-2)]`,children:e.label}),(0,Y.jsx)(`span`,{className:`text-[28px] font-medium leading-[1.2] tracking-tight text-[var(--sf-text-1)] ${Mk}`,children:e.value}),(0,Y.jsxs)(`span`,{className:`text-xs text-[var(--sf-text-3)]`,children:[e.delta?(0,Y.jsx)(`span`,{className:t,children:e.delta.text}):null,e.delta?` `:``,e.note]}),(0,Y.jsx)(Bk,{series:e.series,color:Vk[e.id]})]})}function Wk({rows:e,sessions:t,statsLine:n,now:r}){return(0,Y.jsxs)(Nk,{className:`min-w-0 flex-1`,children:[(0,Y.jsx)(Pk,{title:`Live now`,count:e.length,lamp:`running`,link:{label:`All runs`,href:`#/runs`}}),e.length===0?(0,Y.jsx)(`div`,{className:`px-4 py-6 text-[13px] text-[var(--sf-text-2)]`,children:`No runs in flight.`}):null,e.map(e=>(0,Y.jsxs)(`a`,{href:`#${hc(e.runId)}`,className:`flex h-[52px] items-center gap-3 border-b border-b-[#ffffff12] px-4 no-underline hover:bg-[var(--sf-active)]`,children:[(0,Y.jsx)(`span`,{className:`flex w-[96px] shrink-0`,children:(0,Y.jsx)(Il,{signal:e.waiting?`needs`:`running`,label:e.waiting?`Needs you`:`Running`})}),(0,Y.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,Y.jsx)(`span`,{className:`truncate text-[13px] font-medium text-[var(--sf-text-1)] ${Mk}`,children:e.name}),(0,Y.jsx)(`span`,{className:`truncate text-xs text-[var(--sf-text-3)] ${Mk}`,children:e.pipeline})]}),(0,Y.jsx)(`span`,{className:`hidden w-[120px] shrink-0 md:flex`,children:(0,Y.jsx)(zl,{stages:e.stages.map(e=>({id:e.id,status:e.status}))})}),(0,Y.jsx)(`span`,{className:`hidden w-[150px] shrink-0 truncate text-right text-xs text-[var(--sf-text-2)] lg:block ${Mk}`,children:e.stage}),(0,Y.jsx)(`span`,{className:`w-[64px] shrink-0 text-right text-xs ${Mk} ${e.waiting?`text-[var(--sf-text-3)]`:`text-[var(--sf-running)]`}`,children:Ck(e.startedAt,r)})]},e.key)),(0,Y.jsxs)(`div`,{className:`flex h-[42px] shrink-0 items-center gap-2 border-b border-b-[#ffffff12] bg-[var(--sf-active)] px-4`,children:[(0,Y.jsx)(Fk,{tone:`running`}),(0,Y.jsx)(`h2`,{className:`text-[13px] font-semibold text-[var(--sf-text-1)]`,children:`Agent sessions`}),(0,Y.jsx)(`span`,{className:`text-xs text-[var(--sf-text-3)] ${Mk}`,children:t.length}),(0,Y.jsx)(`div`,{className:`flex-1`}),(0,Y.jsx)(`a`,{href:`#/agent-sessions`,className:`text-xs text-[var(--sf-text-2)] no-underline hover:text-[var(--sf-text-1)]`,children:`All sessions →`})]}),t.length===0?(0,Y.jsx)(`div`,{className:`px-4 py-4 text-[13px] text-[var(--sf-text-2)]`,children:`No agent sessions running.`}):null,t.map(e=>(0,Y.jsxs)(`a`,{href:`#${Pc(e.agentId,e.sessionId)}`,className:`flex h-12 items-center gap-3 border-b border-b-[#ffffff12] px-4 no-underline hover:bg-[var(--sf-active)]`,children:[(0,Y.jsx)(`span`,{className:`flex size-6 shrink-0 items-center justify-center rounded-md border border-[#ffffff12] bg-[var(--sf-raised)] text-[11px] font-semibold text-[var(--sf-text-2)]`,children:e.name.charAt(0).toUpperCase()}),(0,Y.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,Y.jsx)(`span`,{className:`truncate text-[13px] font-medium text-[var(--sf-text-1)]`,children:e.name}),(0,Y.jsx)(`span`,{className:`truncate text-xs text-[var(--sf-text-3)]`,children:e.detail})]}),(0,Y.jsx)(`span`,{className:`text-xs text-[var(--sf-running)] ${Mk}`,children:Ck(e.startedAt,r)})]},e.key)),n?(0,Y.jsx)(`div`,{className:`mt-auto px-4 py-3 text-xs text-[var(--sf-text-3)] ${Mk}`,children:n}):null]})}function Gk({rows:e,now:t}){return(0,Y.jsxs)(Nk,{className:`w-full shrink-0 xl:w-[340px]`,children:[(0,Y.jsx)(Pk,{title:`Activity`,link:{label:`Run history`,href:`#/runs`}}),e.length===0?(0,Y.jsx)(`div`,{className:`px-4 py-6 text-[13px] text-[var(--sf-text-2)]`,children:`Nothing has finished yet.`}):null,e.map(e=>{let n=(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(Fk,{tone:e.tone}),(0,Y.jsxs)(`span`,{className:`min-w-0 flex-1 truncate text-[13px] text-[var(--sf-text-2)]`,children:[(0,Y.jsx)(`span`,{className:`font-medium text-[var(--sf-text-1)]`,children:e.subject}),` `,e.text]}),(0,Y.jsx)(`span`,{className:`shrink-0 text-xs text-[var(--sf-text-3)] ${Mk}`,children:rk(e.at,t)})]}),r=`flex h-[42px] items-center gap-2.5 border-b border-b-[#ffffff12] px-4 no-underline last:border-b-0`;return e.runId?(0,Y.jsx)(`a`,{href:`#${hc(e.runId)}`,className:`${r} hover:bg-[var(--sf-active)]`,children:n},e.key):(0,Y.jsx)(`div`,{className:r,children:n},e.key)})]})}var Kk=`font-['Geist_Mono',monospace]`,qk=144;function Jk({color:e,label:t}){return(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5 text-xs text-[var(--sf-text-2)]`,children:[(0,Y.jsx)(`span`,{className:`block size-2 rounded-sm`,style:{background:e},"aria-hidden":`true`}),t]})}function Yk({chart:e,subtitle:t,loading:n}){let[r,i]=(0,J.useState)(null),a=r==null?null:e.bars[r],o=e.bars.every(e=>e.total===0);return(0,Y.jsxs)(Nk,{className:n?`opacity-60`:``,children:[(0,Y.jsxs)(`div`,{className:`flex h-[46px] items-center gap-2.5 border-b border-b-[#ffffff12] px-4`,children:[(0,Y.jsx)(`h2`,{className:`text-[13px] font-semibold text-[var(--sf-text-1)]`,children:`Runs by outcome`}),(0,Y.jsx)(`span`,{className:`text-xs text-[var(--sf-text-3)] ${Kk}`,children:t}),(0,Y.jsx)(`div`,{className:`flex-1`}),(0,Y.jsx)(Jk,{color:`var(--sf-ok)`,label:`Succeeded`}),(0,Y.jsx)(Jk,{color:`var(--sf-fail)`,label:`Failed`}),(0,Y.jsx)(Jk,{color:`var(--sf-text-3)`,label:`Cancelled`})]}),(0,Y.jsxs)(`div`,{className:`flex gap-3 px-4 pb-3 pt-5`,children:[(0,Y.jsx)(`div`,{className:`flex w-5 shrink-0 flex-col items-end justify-between`,style:{height:qk},"aria-hidden":`true`,children:e.ticks.map(e=>(0,Y.jsx)(`span`,{className:`text-[11px] leading-none text-[var(--sf-text-3)] ${Kk}`,children:e},e))}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-2`,children:[(0,Y.jsxs)(`div`,{className:`relative`,style:{height:qk},role:`img`,"aria-label":`Runs by outcome, ${t}`,children:[[0,1,2].map(e=>(0,Y.jsx)(`span`,{className:`absolute inset-x-0 h-px bg-[#ffffff12]`,style:{top:qk/3*e},"aria-hidden":`true`},e)),(0,Y.jsx)(`span`,{className:`absolute inset-x-0 bottom-0 h-px bg-[#ffffff1a]`,"aria-hidden":`true`}),(0,Y.jsx)(`div`,{className:`relative flex h-full items-end justify-around`,children:e.bars.map((t,n)=>{let o=qk/e.max;return(0,Y.jsxs)(`div`,{className:`relative flex h-full max-w-[56px] flex-1 flex-col justify-end gap-px px-1`,onMouseEnter:()=>i(n),onMouseLeave:()=>i(null),children:[t.failed>0?(0,Y.jsx)(`span`,{className:`block w-full rounded-sm bg-[var(--sf-fail)]`,style:{height:t.failed*o}}):null,t.cancelled>0?(0,Y.jsx)(`span`,{className:`block w-full rounded-sm bg-[var(--sf-text-3)]`,style:{height:t.cancelled*o}}):null,t.succeeded>0?(0,Y.jsx)(`span`,{className:`block w-full rounded-sm bg-[var(--sf-ok)]`,style:{height:t.succeeded*o}}):null,r===n&&a?(0,Y.jsxs)(`div`,{className:`pointer-events-none absolute bottom-full left-1/2 z-10 mb-1 min-w-[132px] -translate-x-1/2 rounded-lg border border-[#ffffff1a] bg-[var(--sf-raised)] px-2.5 py-2 text-xs shadow-lg`,children:[(0,Y.jsx)(`div`,{className:`mb-1 font-medium text-[var(--sf-text-1)]`,children:a.label}),(0,Y.jsxs)(`div`,{className:`flex justify-between gap-3 text-[var(--sf-text-2)]`,children:[(0,Y.jsx)(`span`,{children:`Succeeded`}),(0,Y.jsx)(`span`,{className:Kk,children:a.succeeded})]}),(0,Y.jsxs)(`div`,{className:`flex justify-between gap-3 text-[var(--sf-text-2)]`,children:[(0,Y.jsx)(`span`,{children:`Failed`}),(0,Y.jsx)(`span`,{className:Kk,children:a.failed})]}),(0,Y.jsxs)(`div`,{className:`flex justify-between gap-3 text-[var(--sf-text-2)]`,children:[(0,Y.jsx)(`span`,{children:`Cancelled`}),(0,Y.jsx)(`span`,{className:Kk,children:a.cancelled})]})]}):null]},t.key)})}),o?(0,Y.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center text-[13px] text-[var(--sf-text-3)]`,children:`No runs in this window.`}):null]}),(0,Y.jsx)(`div`,{className:`flex justify-around`,children:e.bars.map(e=>(0,Y.jsx)(`span`,{className:`max-w-[56px] flex-1 text-center text-[11px] ${Kk} ${e.current?`text-[var(--sf-text-1)]`:`text-[var(--sf-text-3)]`}`,children:e.label},e.key))})]})]})]})}var Xk=`grid grid-cols-[minmax(0,1fr)_64px_150px_100px_80px_96px] items-center gap-4`,Zk=`text-[11px] font-medium uppercase tracking-[0.88px] text-[var(--sf-text-3)]`,Qk={ok:`bg-[var(--sf-ok)]`,needs:`bg-[var(--sf-needs)]`,fail:`bg-[var(--sf-fail)]`,none:`bg-[var(--sf-track-empty)]`};function $k({rows:e,now:t,loading:n}){return(0,Y.jsxs)(Nk,{className:n?`opacity-60`:``,children:[(0,Y.jsx)(Pk,{title:`Pipelines`,count:e.length===0?void 0:`${e.length} ran in this window`,link:{label:`Browse all`,href:`#/pipelines`}}),(0,Y.jsxs)(`div`,{className:`${Xk} h-9 border-b border-b-[#ffffff12] px-4`,children:[(0,Y.jsx)(`span`,{className:Zk,children:`Pipeline`}),(0,Y.jsx)(`span`,{className:`${Zk} text-right`,children:`Runs`}),(0,Y.jsx)(`span`,{className:`${Zk} text-right`,children:`Success`}),(0,Y.jsx)(`span`,{className:`${Zk} text-right`,children:`Median time`}),(0,Y.jsx)(`span`,{className:`${Zk} text-right`,children:`Cost`}),(0,Y.jsx)(`span`,{className:`${Zk} text-right`,children:`Last run`})]}),e.length===0?(0,Y.jsx)(`div`,{className:`px-4 py-6 text-[13px] text-[var(--sf-text-2)]`,children:`No pipeline has run in this window.`}):null,e.map(e=>(0,Y.jsxs)(`a`,{href:`#${yc(e.pipeline_id)}`,className:`${Xk} h-11 border-b border-b-[#ffffff12] px-4 no-underline last:border-b-0 hover:bg-[var(--sf-active)]`,children:[(0,Y.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2.5`,children:[(0,Y.jsx)(`span`,{className:`truncate text-[13px] text-[var(--sf-text-1)] ${Kk}`,children:e.pipeline_id}),e.flaky?(0,Y.jsx)(`span`,{className:`rounded bg-[#f2645a1f] px-1.5 text-[10px] font-semibold uppercase leading-[18px] tracking-wide text-[var(--sf-fail)] ${Kk}`,children:`flaky`}):null]}),(0,Y.jsx)(`span`,{className:`text-right text-xs text-[var(--sf-text-1)] ${Kk}`,children:e.runs}),(0,Y.jsxs)(`span`,{className:`flex items-center justify-end gap-2.5`,children:[(0,Y.jsx)(`span`,{className:`flex h-1 w-11 overflow-hidden rounded-full bg-[var(--sf-track-empty)]`,"aria-hidden":`true`,children:(0,Y.jsx)(`span`,{className:`block h-1 rounded-full ${Qk[e.tone]}`,style:{width:`${Math.round((e.success_rate??0)*100)}%`}})}),(0,Y.jsx)(`span`,{className:`w-9 text-right text-xs text-[var(--sf-text-1)] ${Kk}`,children:sk(e.success_rate)})]}),(0,Y.jsx)(`span`,{className:`text-right text-xs text-[var(--sf-text-2)] ${Kk}`,children:ak(e.median_duration_ms)}),(0,Y.jsx)(`span`,{className:`text-right text-xs text-[var(--sf-text-2)] ${Kk}`,children:e.cost_usd>0?ok(e.cost_usd):`—`}),(0,Y.jsx)(`span`,{className:`text-right text-xs text-[var(--sf-text-3)] ${Kk}`,children:ik(e.last_run_at,t)})]},e.pipeline_id))]})}function eA({rows:e,armed:t,total:n}){return(0,Y.jsxs)(Nk,{className:`min-w-0 flex-1`,children:[(0,Y.jsx)(Pk,{title:`Triggers`,count:n===0?void 0:`${t} armed`,link:{label:`Manage`,href:`#/triggers`}}),e.length===0?(0,Y.jsx)(`div`,{className:`px-4 py-6 text-[13px] text-[var(--sf-text-2)]`,children:`No schedule or event triggers yet.`}):null,e.map(e=>(0,Y.jsxs)(`a`,{href:`#${Sc(e.id,e.project_root)}`,className:`flex h-[50px] items-center gap-3 border-b border-b-[#ffffff12] px-4 no-underline last:border-b-0 hover:bg-[var(--sf-active)]`,children:[(0,Y.jsx)(Fk,{tone:e.tone}),(0,Y.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,Y.jsx)(`span`,{className:`truncate text-[13px] ${Kk} ${e.tone===`idle`?`text-[var(--sf-text-2)]`:`text-[var(--sf-text-1)]`}`,children:e.id}),(0,Y.jsx)(`span`,{className:`truncate text-xs text-[var(--sf-text-3)]`,children:e.detail})]}),(0,Y.jsx)(`span`,{className:`shrink-0 text-xs ${Kk} ${e.when===`off`?`text-[var(--sf-text-3)]`:`text-[var(--sf-text-2)]`}`,children:e.when})]},e.key))]})}function tA({rows:e,now:t}){let n=e.filter(e=>e.status.tone===`needs`).length,r=e.slice().sort((e,t)=>Number(t.status.tone===`needs`)-Number(e.status.tone===`needs`)).slice(0,4);return(0,Y.jsxs)(Nk,{className:`min-w-0 flex-1`,children:[(0,Y.jsx)(Pk,{title:`Connections`,count:e.length===0?void 0:`${e.length}${n>0?` · ${n} needs attention`:``}`,link:{label:`Manage`,href:`#/connections`}}),e.length===0?(0,Y.jsx)(`div`,{className:`px-4 py-6 text-[13px] text-[var(--sf-text-2)]`,children:`No channels or email accounts connected.`}):null,r.map(e=>(0,Y.jsxs)(`a`,{href:e.kind===`channel`?`#${kc(e.id)}`:`#/connections`,className:`flex h-[50px] items-center gap-3 border-b border-b-[#ffffff12] px-4 no-underline last:border-b-0 hover:bg-[var(--sf-active)]`,children:[(0,Y.jsx)(Fk,{tone:e.status.tone===`ok`?`ok`:e.status.tone===`needs`?`needs`:`idle`}),(0,Y.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,Y.jsx)(`span`,{className:`truncate text-[13px] font-medium text-[var(--sf-text-1)]`,children:e.name}),(0,Y.jsx)(`span`,{className:`truncate text-xs text-[var(--sf-text-3)] ${Kk}`,title:e.secondary,children:e.status.tone===`needs`?e.status.label:e.secondary})]}),(0,Y.jsx)(`span`,{className:`shrink-0 text-xs text-[var(--sf-text-3)] ${Kk}`,children:e.checkedAt?jO(e.checkedAt,t):``})]},e.key))]})}var nA=15e3;function rA(e){let[t,n]=(0,J.useState)(null),[r,i]=(0,J.useState)(!1),[a,o]=(0,J.useState)([]),[s,c]=(0,J.useState)([]),[l,u]=(0,J.useState)([]),[d,f]=(0,J.useState)([]),[p,m]=(0,J.useState)(null),[h,g]=(0,J.useState)(()=>new Map),[_,v]=(0,J.useState)(!1),y=(0,J.useRef)(!0),b=(0,J.useRef)(e);b.current=e;let x=(0,J.useCallback)(async()=>{let e=b.current,[t,r,a,s,l,d]=await Promise.allSettled([fa(e),Ii(),zi(),Ri(),gD.allSessions({limit:20}),gD.list()]);y.current&&(t.status===`fulfilled`&&b.current===e?(n(t.value),i(!1)):t.status===`rejected`&&i(!0),r.status===`fulfilled`&&o(r.value.triggers),a.status===`fulfilled`&&c(a.value.connections),s.status===`fulfilled`&&u(s.value),l.status===`fulfilled`&&(f(l.value.sessions),m(l.value.stats)),d.status===`fulfilled`&&g(new Map(d.value.map(e=>[e.id,e.name]))),v(!0))},[]);return(0,J.useEffect)(()=>{y.current=!0,x();let e=window.setInterval(()=>{document.visibilityState!==`hidden`&&x()},nA);return()=>{y.current=!1,window.clearInterval(e)}},[x,e]),{overview:t,overviewFailed:r,triggers:a,channels:s,email:l,sessions:d,sessionStats:p,agentNames:h,loaded:_,refresh:()=>void x()}}var iA=`stageflow.overview.range`,aA={"24h":`last 24 hours · 3h buckets`,"7d":`last 7 days · daily`,"30d":`last 30 days · 3-day buckets`};function oA(){try{let e=window.sessionStorage.getItem(iA);if(e===`24h`||e===`7d`||e===`30d`)return e}catch{}return`7d`}function sA(e=1e3){let[t,n]=(0,J.useState)(()=>Date.now());return(0,J.useEffect)(()=>{let t=window.setInterval(()=>{document.visibilityState!==`hidden`&&n(Date.now())},e);return()=>window.clearInterval(t)},[e]),t}function cA({range:e,onChange:t}){return(0,Y.jsx)(`div`,{className:`flex items-center rounded-lg border border-[#ffffff12] bg-[var(--sf-panel)] p-0.5`,role:`group`,"aria-label":`Time range`,children:tk.map(n=>(0,Y.jsx)(`button`,{type:`button`,"aria-pressed":n===e,onClick:()=>t(n),className:`rounded-md px-2.5 py-1 text-xs font-medium ${n===e?`bg-[var(--sf-raised)] text-[var(--sf-text-1)]`:`bg-transparent text-[var(--sf-text-2)] hover:text-[var(--sf-text-1)]`}`,children:n},n))})}function lA(){let[e,t]=(0,J.useState)(oA),n=sA(),{snapshot:r}=Jo(),i=Yo(),{approvals:a,refresh:o}=WO(),s=rA(e),c=JO(),{meta:l}=TO(),[u,d]=(0,J.useState)(null),[f,p]=(0,J.useState)(null),m=(0,J.useCallback)(e=>{t(e);try{window.sessionStorage.setItem(iA,e)}catch{}},[]),h=(0,J.useMemo)(()=>uk(r.runs,a,n),[r.runs,a,n]),g=(0,J.useMemo)(()=>dk(r.runs),[r.runs]),_=(0,J.useMemo)(()=>Sk(r.runs),[r.runs]),v=(0,J.useMemo)(()=>Ek(r.runs,s.triggers),[r.runs,s.triggers]),y=(0,J.useMemo)(()=>wk(s.sessions,s.agentNames),[s.sessions,s.agentNames]),b=(0,J.useMemo)(()=>MO(s.channels,s.email,l),[s.channels,s.email,l]),x=(0,J.useMemo)(()=>Ok(s.triggers,n),[s.triggers,n]),S=(0,J.useMemo)(()=>kk(s.triggers),[s.triggers]),C=s.overview,w=C!=null&&C.range!==e,T=fk(h,n),E=pk(h.length),D=mk(r.runs,n),O=h.length===0&&g.length>0?{...E,accent:`Nothing waits on you.`,rest:` Some runs failed.`}:E,k=(e,t)=>{d(e.key),p(null),gD.decide(e.agentId,e.sessionId,t).then(()=>o()).catch(e=>p(e instanceof Error?e.message:String(e))).finally(()=>d(null))},A=e=>{e.stageId&&(d(e.key),p(null),Fa(e.runId,e.stageId).then(e=>(e.ok||p(e.error),i.refresh())).finally(()=>d(null)))},j=b.filter(e=>e.status.tone===`needs`),M=[{key:`providers`,label:`Providers`,value:c.loading?`checking…`:c.failed?`unreachable`:c.label,tone:c.failed?`fail`:c.loading||c.connectedCount===0?`idle`:`ok`,href:`#/settings`},{key:`connections`,label:`Connections`,value:b.length===0?`none yet`:j.length>0?`${j.length} need${j.length===1?`s`:``} attention`:`${b.length} connected`,tone:b.length===0?`idle`:j.length>0?`needs`:`ok`,href:`#/connections`},{key:`triggers`,label:`Triggers armed`,value:S.total===0?`none yet`:`${S.armed} / ${S.total}`,tone:S.total===0?`idle`:`ok`,href:`#/triggers`}],N=jk(r.health);N&&M.push({key:`store`,label:`Run store`,value:N,tone:`idle`});let P=C?_k(C):[];return(0,Y.jsxs)(`div`,{className:`flex min-h-full flex-col`,children:[(0,Y.jsx)($c,{title:`Overview`,subtitle:`all projects`,actions:(0,Y.jsx)(cA,{range:e,onChange:m})}),(0,Y.jsxs)(`div`,{className:`mx-auto flex w-full max-w-[1360px] flex-col gap-4 px-6 pb-10 pt-5`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-baseline gap-x-4 gap-y-1`,children:[(0,Y.jsxs)(`h2`,{className:`text-[22px] font-semibold tracking-[-0.44px] text-[var(--sf-text-1)]`,children:[(0,Y.jsx)(`span`,{className:O.tone===`ok`?`text-[var(--sf-ok)]`:`text-[var(--sf-needs)]`,children:O.accent}),O.rest]}),(0,Y.jsxs)(`p`,{className:`text-[13px] text-[var(--sf-text-2)]`,children:[(0,Y.jsxs)(`span`,{className:`text-[var(--sf-running)]`,children:[D.inFlight,` `,D.inFlight===1?`run`:`runs`]}),` `,`in flight`,D.failedLastHour>0?(0,Y.jsxs)(Y.Fragment,{children:[` · `,(0,Y.jsxs)(`span`,{className:`text-[var(--sf-fail)]`,children:[D.failedLastHour,` failed`]}),` in the last hour`]}):null]})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col items-stretch gap-4 xl:flex-row`,children:[(0,Y.jsx)(Rk,{rows:h,failed:g,busyKey:u,error:f,onDecide:k,onRetry:A}),(0,Y.jsx)(zk,{health:r.health,heldCount:ls(r,r.health),rows:M})]}),C?(0,Y.jsx)(Hk,{kpis:P,loading:w,longestWaiting:T?{...T,href:h[0]?.kind===`gate`?`#${hc(h[0].runId)}`:`#/inbox`}:null}):s.overviewFailed?(0,Y.jsx)(`div`,{className:`rounded-xl border border-[#ffffff12] bg-[var(--sf-panel)] px-4 py-3 text-[13px] text-[var(--sf-text-2)]`,children:`Run statistics are unavailable right now. The rest of the page is live.`}):(0,Y.jsx)(`div`,{className:`h-[128px] rounded-xl border border-[#ffffff12] bg-[var(--sf-panel)]`,"aria-busy":`true`}),(0,Y.jsxs)(`div`,{className:`flex flex-col items-stretch gap-4 xl:flex-row`,children:[(0,Y.jsx)(Wk,{rows:_,sessions:y,statsLine:Tk(s.sessionStats),now:n}),(0,Y.jsx)(Gk,{rows:v,now:n})]}),C?(0,Y.jsx)(Yk,{chart:bk(C),subtitle:aA[C.range],loading:w}):null,C?(0,Y.jsx)($k,{rows:xk(C),now:n,loading:w}):null,(0,Y.jsxs)(`div`,{className:`flex flex-col items-stretch gap-4 xl:flex-row`,children:[(0,Y.jsx)(eA,{rows:x,armed:S.armed,total:S.total}),(0,Y.jsx)(tA,{rows:b,now:n})]})]})]})}function uA(e){return JSON.parse(JSON.stringify(e))}function dA(e,t){return typeof e.id==`string`&&e.id.trim()?e.id.trim():`stage-${t}`}var fA=`./stages/`;function pA(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function mA(e){if(typeof e==`string`&&e.trim())return[e.trim()];if(!Array.isArray(e))return[];let t=[];for(let n of e)typeof n==`string`&&n.trim()?t.push(n.trim()):pA(n)&&typeof n.id==`string`&&n.id.trim()&&t.push(n.id.trim());return t}function hA(e){return pA(e)&&e.type===void 0&&typeof e.to==`string`&&e.to.trim().length>0}function gA(e){return Array.isArray(e.route)?e.route.filter(hA):[]}function _A(e){return e.pipeline.stages.some(e=>e.entry===!0||gA(e).length>0)}function vA(e){return e.pipeline.stages.map((e,t)=>dA(e,t))}function yA(e){let t=e.pipeline.stages,n=vA(e),r=new Map(n.map((e,t)=>[e,t])),i=new Map(n.map(e=>[e,[]])),a=(e,t)=>{if(t===e||!r.has(t))return;let n=i.get(e);n&&!n.includes(t)&&n.push(t)};t.forEach((e,t)=>{for(let r of mA(e.needs))a(n[t],r)}),t.forEach((e,t)=>{for(let r of gA(e))a(r.to.trim(),n[t])}),_A(e)||t.forEach((e,t)=>{t===0||mA(e.needs).length>0||a(n[t],n[t-1])});for(let e of i.values())e.sort((e,t)=>(r.get(e)??0)-(r.get(t)??0));return i}function bA(e){let t=e.replace(/\\/g,`/`);for(;t.startsWith(`./`);)t=t.slice(2);return t}function xA(e,t){return e.pipeline.stages.findIndex((e,n)=>dA(e,n)===t)}function SA(e,t){let n=e.stages??[],r=e.pipeline.stages[xA(e,t)];if(r&&typeof r.uses==`string`&&r.uses.trim()){let e=bA(r.uses.trim()),t=n.findIndex(t=>bA(t.path)===e);if(t>=0)return t}return n.findIndex(e=>e.body.id===t)}function CA(e,t){return e.pipeline.stages[xA(e,t)]}function wA(e,t){let n=SA(e,t);return n>=0?e.stages[n].body:CA(e,t)}function TA(e,t){return e.length===t.length&&e.every(e=>t.includes(e))}function EA(e,t,n=yA(e)){let r=!_A(e),i=vA(e),a=new Set(i.filter(e=>r||!TA(n.get(e)??[],t.get(e)??[])));if(a.size===0)return e;let o=e.pipeline.stages.map((e,n)=>{let r=i[n],o=Array.isArray(e.route)?e.route:[],s=o.filter(e=>{if(!hA(e))return!0;let n=e.to.trim();return!a.has(n)||(t.get(n)??[]).includes(r)}),c=new Set(s.filter(hA).map(e=>e.to.trim())),l=i.filter(e=>a.has(e)&&!c.has(e)&&(t.get(e)??[]).includes(r)).map(e=>({to:e})),u={...e};if(s.length!==o.length||l.length>0){let e=[...s,...l];e.length>0?u.route=e:delete u.route}return a.has(r)&&(delete u.needs,(t.get(r)??[]).length===0?u.entry=!0:delete u.entry),u});return{...e,pipeline:{...e.pipeline,stages:o}}}function DA(e){let t=e.stages??[],n=new Set;for(let r of e.pipeline.stages){if(typeof r.uses!=`string`||!r.uses.trim())continue;let e=r.uses.trim().replace(/\\/g,`/`),i=bA(e);if(!t.some(e=>bA(e.path)===i))continue;let a=e.lastIndexOf(`/`);n.add(a>=0?e.slice(0,a+1):`./`)}return n.size===1?[...n][0]:fA}function OA(e,t){let n=new Set(vA(e));for(let t of e.stages??[])typeof t.body.id==`string`&&n.add(t.body.id);let r=t?.trim();if(r){if(!n.has(r))return r;for(let e=2;;e++)if(!n.has(`${r}-${e}`))return`${r}-${e}`}for(let e=1;;e++)if(!n.has(`stage-${e}`))return`stage-${e}`}function kA(e,t={}){let n=vA(e),r=OA(e,t.id),i=t.after&&n.includes(t.after)?t.after:n.at(-1),a=`${DA(e)}${r}.yaml`,o={id:r,system_prompt:`Describe what the ${r} stage should do.`,...t.model?.trim()?{model:t.model.trim()}:{},io:{input:{schema:{type:`object`}},output:{schema:{type:`object`}}}},s={id:r,uses:a},c=t.after&&n.includes(t.after)?n.indexOf(t.after)+1:n.length,l=[...e.pipeline.stages];l.splice(c,0,s);let u=new Map(yA(e));return u.set(r,i?[i]:[]),{draft:EA({...e,pipeline:{...e.pipeline,stages:l},stages:[...e.stages??[],{path:a,body:o}]},u),stageId:r}}function AA(e,t){if(typeof e==`string`)return e.trim()===t?void 0:e;if(!Array.isArray(e))return e;let n=e.filter(e=>mA([e])[0]!==t);return n.length>0?n:void 0}function jA(e,t){let n=xA(e,t);if(n<0)return e;let r=yA(e),i=r.get(t)??[],a=new Map;for(let[e,n]of r){if(e===t)continue;let r=n.filter(e=>e!==t);a.set(e,n.includes(t)&&r.length===0?[...i]:r)}let o=e.pipeline.stages[n],s=SA(e,t),c=typeof o.uses==`string`&&e.pipeline.stages.some((e,t)=>t!==n&&typeof e.uses==`string`&&bA(e.uses)===bA(o.uses)),l=e.pipeline.stages.filter((e,t)=>t!==n).map(e=>{let n={...e};if(Array.isArray(e.route)){let r=e.route.filter(e=>!(pA(e)&&e.to===t));r.length>0?n.route=r:delete n.route}if(e.needs!==void 0){let r=AA(e.needs,t);r===void 0?delete n.needs:n.needs=r}return n}),u=(e.stages??[]).filter((e,t)=>c||t!==s);return EA({...e,pipeline:{...e.pipeline,stages:l},...e.stages?{stages:u}:{}},a,r)}function MA(e,t,n){let r=e.lastIndexOf(`/`),i=r>=0?e.slice(0,r+1):``,a=r>=0?e.slice(r+1):e;for(let e of[`.stage.yaml`,`.stage.yml`,`.yaml`,`.yml`])if(a===`${t}${e}`)return`${i}${n}${e}`;return e}function NA(e,t,n){return typeof e==`string`?e.trim()===t?n:e:Array.isArray(e)?e.map(e=>typeof e==`string`?e.trim()===t?n:e:pA(e)&&e.id===t?{...e,id:n}:e):e}function PA(e,t,n){let r=n.trim(),i=xA(e,t);if(i<0||!r||r===t||vA(e).includes(r))return e;let a=e.pipeline.stages[i],o=SA(e,t),s=typeof a.uses==`string`?a.uses:void 0,c=s?MA(s,t,r):void 0,l=e.pipeline.stages.map((e,n)=>{let a={...e};return n===i&&(a.id=r,c&&(a.uses=c)),Array.isArray(e.route)&&(a.route=e.route.map(e=>pA(e)&&e.to===t?{...e,to:r}:e)),e.needs!==void 0&&(a.needs=NA(e.needs,t,r)),a}),u=e.stages?.map((e,n)=>n===o?{path:s&&c&&bA(e.path)===bA(s)?c:MA(e.path,t,r),body:{...e.body,id:r}}:e);return{...e,pipeline:{...e.pipeline,stages:l},...u?{stages:u}:{}}}var FA=`.pipeline.yaml`,IA=`.task.yaml`;function LA(e){let t=e.trim(),n=t.split(/[\\/]/);return n[n.length-1]?.trim()||t}function RA(e,t){let n=e.trim()||`untitled`,r=t?.trim()?LA(t):``;return r.endsWith(FA)&&r.slice(0,-14)===n?r:`${n}${FA}`}function zA(e){let t=e.body?.id;if(typeof t==`string`&&t.trim())return t.trim();let n=e.filename?.trim()?LA(e.filename):``;return n&&n.replace(/\.task\.ya?ml$/i,``).replace(/\.ya?ml$/i,``).trim()||`task`}function BA(e,t){let n=e.trim()||`task`,r=t?.trim()?LA(t):``;return r.endsWith(IA)&&r.slice(0,-10)===n?r:`${n}${IA}`}function VA(e,t){let n=RA(e.pipeline.id,t);if(!e.task)return{draft:e,pipelineFilename:n};let r=BA(zA(e.task),e.task.filename);return r===e.task.filename?{draft:e,pipelineFilename:n}:{draft:{...e,task:{...e.task,filename:r}},pipelineFilename:n}}var HA=`.txt,.md,.markdown,.yaml,.yml,.json,.jsonl,.csv,.tsv,.xml,.html,.css,.js,.mjs,.cjs,.ts,.tsx,.jsx,.py,.rb,.go,.rs,.java,.kt,.swift,.sh,.toml,.ini,.env,.log,.sql,.diff,.patch,text/*`,UA=new Set(HA.split(`,`).filter(e=>e.startsWith(`.`)).map(e=>e.slice(1))),WA=new Set([`application/json`,`application/x-ndjson`,`application/xml`,`application/yaml`,`application/x-yaml`,`application/toml`,`application/javascript`,`application/typescript`,`application/x-sh`,`application/sql`]);function GA(e){if(e.type.startsWith(`text/`)||WA.has(e.type))return!0;let t=e.name.lastIndexOf(`.`);return t<0?e.type===``:UA.has(e.name.slice(t+1).toLowerCase())}function KA(e){return e.type||`text/plain`}function qA(e){return e<1024?`${e} B`:e<1048576?`${Math.round(e/102.4)/10} KB`:`${Math.round(e/104857.6)/10} MB`}function JA(e,t){let n=[],r=[],i=new Set(e.map(e=>e.name)),a=5-e.length,o=0;for(let e of t){if(!GA(e)){r.push(`${e.name} is not a text file`);continue}if(e.size>262144){r.push(`${e.name} is over 256 KB`);continue}if(!i.has(e.name)){if(a<=0){o+=1;continue}n.push(e),i.add(e.name),--a}}return o>0&&r.push(`Up to 5 files per message`),{accepted:n,errors:r}}function YA(e){return e.includes(`\0`)}function XA(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){if(!n||typeof n!=`object`)continue;let e=n;typeof e.name!=`string`||!e.name||t.push({name:e.name,size:typeof e.size==`number`?e.size:0,mediaType:typeof e.mediaType==`string`?e.mediaType:`text/plain`})}return t}function ZA(e,t){return{...e.length>0?{attachments:[...e]}:{},...t?{context:{docs:!0}}:{}}}function QA(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function $A(e){return Array.isArray(e)?`[${e.map($A).join(`,`)}]`:QA(e)?`{${Object.keys(e).filter(t=>e[t]!==void 0).sort().map(t=>`${JSON.stringify(t)}:${$A(e[t])}`).join(`,`)}}`:JSON.stringify(e)??`undefined`}function ej(e){return Array.isArray(e)?e.length>0:QA(e)?Object.keys(e).length>0:e!=null&&e!==!1&&e!==``}function tj(e){if(e)return e.verify??e.completion??e.pre_emit_checks}function nj(e,t){return e?.on_verify_fail??e?.recovery??t?.on_verify_fail??t?.recovery}function rj(e){let t=e?.gate_kinds;return Array.isArray(t)?t.filter(e=>typeof e==`string`&&e.trim().length>0):[]}function ij(e,t){for(let n of[t?.model,e?.model])if(typeof n==`string`&&n.trim())return n.trim();return null}function aj(e){if(typeof e==`string`&&e.trim())return e.trim();if(!QA(e))return null;let t=typeof e.mode==`string`?e.mode.trim():``;return t===`repair`?`retry`:t===`manual`?`ask`:t||null}function oj(e){if(!e)return``;let{route:t,needs:n,...r}=e,i=Array.isArray(t)?t.filter(e=>!hA(e)):[];return $A({...r,loops:i})}function sj(e,t,n){let r=CA(e,t);if(!r)return null;let i=wA(e,t),a=[oj(r),i===r?``:$A(i)];return n!==void 0&&a.push(n),a.join(`
122
- `)}function cj(e,t,n){return n.map(n=>{let{to:r,...i}=gA(CA(e,n)??{}).find(e=>e.to.trim()===t)??{to:``};return`${n}|${$A(i)}`}).sort().join(`;`)}function lj(e){let t=yA(e),n=new Map;for(let r of vA(e)){let i=CA(e,r),a=wA(e,r),o=t.get(r)??[];n.set(r,{ref:i,body:a,preds:o,signature:sj(e,r,cj(e,r,o))??``})}return n}function uj(e,t){let n=lj(e),r=t?lj(t):new Map,i=new Map;for(let[e,t]of n){let n=r.get(e);n?i.set(e,n.signature===t.signature?`unchanged`:`edited`):i.set(e,`new`)}if(t)for(let e of r.keys())n.has(e)||i.set(e,`removed`);return i}function dj(e,t){return e.length===t.length&&e.every(e=>t.includes(e))}function fj(e,t,n){let r=n===`edited`&&t!==void 0,i=n=>r&&$A(n(e))!==$A(n(t)),a=[],o=ej(tj(e.body));o&&a.push({kind:`verify`,label:`verify`,variant:i(e=>tj(e.body))?`changed`:`default`});let s=aj(nj(e.ref,e.body));s&&a.push({kind:`on_fail`,label:`on_fail: ${s}`,variant:i(e=>nj(e.ref,e.body))?`changed`:`default`});let c=rj(e.body),l=i(e=>rj(e.body));return c.length>0?a.push({kind:`ask`,label:`ask: ${c[0]}${c.length>1?` +${c.length-1}`:``}`,variant:l?`changed`:`default`}):o&&!s&&a.push({kind:`no_gate`,label:`no gate`,variant:l||i(e=>nj(e.ref,e.body))?`dashed-changed`:`dashed`}),r&&!dj(e.preds,t.preds)&&a.push({kind:`needs`,label:`needs: ${e.preds.length>0?e.preds.join(`, `):`none`}`,variant:`changed`}),a}var pj=/\b(io\.(?:input|output)(?:\.schema)?|io|verify(?:\[\d+\])?|on_verify_fail|gate_kinds|system_prompt|model|timeout_ms|route|skill|mcp|secrets|requires|browser)(?![\w[])/,mj={"stage.invalid_io":`io`,"stage.invalid_payload_schema":`io.output`,"stage.invalid_clone_input_schema":`io.input`,"stage.unresolved_schema_ref":`io`,"stage.invalid_model":`model`,"stage.missing_model":`model`,"stage.invalid_gate_kinds":`gate_kinds`,"stage.invalid_pre_emit_checks":`verify`,"pipeline.invalid_completion":`verify`,"pipeline.invalid_verify":`verify`,"pipeline.invalid_recovery":`on_verify_fail`,"pipeline.route_if_invalid":`route`,"pipeline.dag_error":`route`,"pipeline.io_incompatible":`io`};function hj(e){let t=pj.exec(e.message)?.[1];return t?t.replace(/\.schema$/,``):mj[e.code]||(e.code.split(`.`).pop()??``).replace(/^invalid_|^missing_|^unknown_/,``)||`stage`}function gj(e){return e.stageId?e.stageId:/stage "([^"]+)"/.exec(e.message)?.[1]??null}function _j(e,t){let n=e.filter(e=>e.severity===`error`&&gj(e)===t);if(n.length===0)return{count:0,summary:null};let r=[];for(let e of n){let t=hj(e);r.includes(t)||r.push(t)}let i=n.length===1?`error`:`errors`,a=r.length>1?`${r[0]} +${r.length-1}`:r[0];return{count:n.length,summary:`${a} · ${n.length} ${i}`}}function vj(e,t){let n=new Map,r=new Set,i=e=>{let a=n.get(e);if(a!==void 0)return a;if(r.has(e))return-1;r.add(e);let o=(t.get(e)??[]).map(i).filter(e=>e>=0);r.delete(e);let s=o.length===0?0:Math.max(...o)+1;return n.set(e,s),s};for(let t of e)i(t);return n}function yj(e){return e.kind===`node`?`node:${e.id}`:`pass:${e.key}`}function bj(e){return e.kind===`node`?208:12}function xj(e,t={}){let n=t.baseline??null,r=t.findings??[],i=vA(e),a=new Map(i.map((e,t)=>[e,t])),o=yA(e),s=uj(e,n),c=lj(e),l=n?lj(n):new Map,u=(typeof e.pipeline.model==`string`&&e.pipeline.model.trim()?e.pipeline.model.trim():null)??t.defaultModel?.trim()??null,d=vj(i,o),f=i.map((e,t)=>{let n=c.get(e),i=s.get(e)??`new`,a=ij(n.ref,n.body),f=_j(r,e);return{id:e,index:t,layer:d.get(e)??0,status:i,model:a??`inherits · ${u||`default`}`,modelInherited:a===null,chips:fj(n,l.get(e),i),errorCount:f.count,errorSummary:f.summary,isEntry:(o.get(e)??[]).length===0,needs:o.get(e)??[]}}),p=n?yA(n):new Map,m=[];for(let e of i)for(let t of o.get(e)??[]){if((d.get(t)??0)>=(d.get(e)??0))continue;let n=s.get(e)===`new`||s.get(t)===`new`||!(p.get(e)??[]).includes(t);m.push({from:t,to:e,changed:n})}let h=i.length===0?0:Math.max(...i.map(e=>d.get(e)??0))+1,g=Array.from({length:h},()=>[]);for(let e of i)g[d.get(e)??0].push({kind:`node`,id:e,sortIndex:a.get(e)??0});let _=[];for(let e of m){let t=d.get(e.from)??0,n=d.get(e.to)??0,r=`node:${e.from}`;for(let i=t+1;i<n;i++){let t=`${e.from}->${e.to}#${i}`;g[i].push({kind:`pass`,key:t,changed:e.changed,sortIndex:a.get(e.to)??0}),_.push({fromLayer:i-1,from:r,to:`pass:${t}`,changed:e.changed}),r=`pass:${t}`}_.push({fromLayer:n-1,from:r,to:`node:${e.to}`,changed:e.changed})}let v=new Map;g.forEach((e,t)=>{if(t>0){let n=new Map;for(let r of e){let e=yj(r),i=_.filter(n=>n.fromLayer===t-1&&n.to===e).map(e=>v.get(e.from)??0);n.set(e,i.length>0?i.reduce((e,t)=>e+t,0)/i.length:0)}e.sort((e,t)=>(n.get(yj(e))??0)-(n.get(yj(t))??0)||e.sortIndex-t.sortIndex||(e.kind===t.kind?0:e.kind===`node`?-1:1))}e.forEach((e,t)=>v.set(yj(e),t))});let y=g.map(e=>{let t=0;return{items:e.map(e=>{let n=bj(e),r=e.kind===`node`?{kind:`node`,id:e.id,x:t,width:n}:{kind:`pass`,key:e.key,changed:e.changed,x:t,width:n};return t+=n+16,r}),width:Math.max(0,t-16)}}),b=Math.max(0,...y.map(e=>e.width)),x=y.map(e=>({...e,offset:Math.floor((b-e.width)/2)})),S=x.map(e=>{let t=new Map;for(let n of e.items){let r=n.kind===`node`?`node:${n.id}`:`pass:${n.key}`;t.set(r,e.offset+n.x+Math.floor(n.width/2))}return t}),C=[];for(let e=0;e<x.length-1;e++){let t=_.filter(t=>t.fromLayer===e),n=t.map(t=>({link:t,x1:S[e].get(t.from)??0,x2:S[e+1].get(t.to)??0})),r=n.every(e=>e.x1===e.x2),i=r?14:22,a=Math.floor(i/2),o=[];for(let{link:e,x1:t,x2:r}of n){if(t===r){o.push({x:t,y:0,width:1,height:i,changed:e.changed});continue}o.push({x:t,y:0,width:1,height:a,changed:e.changed}),o.push({x:Math.min(t,r),y:a,width:Math.abs(r-t)+1,height:1,changed:e.changed}),o.push({x:r,y:a,width:1,height:i-a,changed:e.changed})}o.sort((e,t)=>Number(e.changed)-Number(t.changed));let s=new Map,c=new Map;for(let e of t)s.set(e.from,(s.get(e.from)??0)+1),c.set(e.to,(c.get(e.to)??0)+1);let l=[...s.values()].some(e=>e>1),u=[...c.values()].some(e=>e>1),d=l&&u?`mixed`:l?`fork`:u?`merge`:r?`straight`:`shift`;C.push({kind:d,width:b,height:i,segments:o})}return{nodes:f,rows:x,connectors:C,edges:m,width:b,hasChanges:f.some(e=>e.status!==`unchanged`)}}var Sj=[`free_text`,`confirm`,`multi_question`,`artifact_backed`],Cj=[`id`,`model`,`system_prompt`,`io.inputs`,`io.outputs`,`verify.command`,`on_verify_fail`,`ask_operator`,`general`],wj=[`string`,`number`,`boolean`,`string[]`,`object`];function Tj(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Ej(e){return e.trim().replace(/\\/g,`/`).replace(/^\.\//,``)}function Dj(e){return typeof e.uses==`string`&&e.uses.trim()?Ej(e.uses):null}function Oj(e,t){let n=e.pipeline.stages.findIndex((e,n)=>dA(e,n)===t);if(n<0)return null;let r=e.pipeline.stages[n],i=Dj(r),a=e.stages??[],o=-1;return i&&(o=a.findIndex(e=>Ej(e.path)===i),o<0&&(o=a.findIndex(e=>{let t=Ej(e.path);return t.endsWith(`/${i}`)||i.endsWith(`/${t}`)})),o<0&&(o=a.findIndex(e=>e.body.id===t))),{index:n,ref:r,fileIndex:o}}function kj(e,t){return t.fileIndex>=0?e.stages[t.fileIndex].body:t.ref}function Aj(e,t){let n=e;for(let e of t){if(!Tj(n))return;n=n[e]}return n}function jj(e,t,n){if(t.length===0)return;let r=e;for(let e of t.slice(0,-1)){let t=r[e];Tj(t)||(r[e]={}),r=r[e]}r[t[t.length-1]]=n}function Mj(e,t){if(t.length===0)return;let n=[e],r=e;for(let e of t.slice(0,-1)){if(!Tj(r)||(r=r[e],!Tj(r)))return;n.push(r)}delete n[n.length-1][t[t.length-1]];for(let e=n.length-1;e>0&&!(Object.keys(n[e]).length>0);e--)delete n[e-1][t[e-1]]}function Nj(e,t,n){let r=uA(e),i=Oj(r,t);return i?(n(kj(r,i),i.ref),r):e}function Pj(e,t,n){let r=uA(e),i=Oj(r,t);return i?(n(i.ref),r):e}function Fj(e,t,n,r){return Nj(e,t,e=>{r===void 0?Mj(e,n):jj(e,n,r)})}function Ij(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`):[]}function Lj(e){return!Tj(e)||typeof e.$ref!=`string`?null:e.$ref.replace(/^#\/schemas\//,``)}function Rj(e){return!Tj(e)||!Tj(e.properties)?[]:Object.keys(e.properties)}function zj(e){return Tj(e)?e.type===`array`&&Tj(e.items)&&e.items.type===`string`?`string[]`:e.type===`integer`||e.type===`number`?`number`:e.type===`string`||e.type===`boolean`||e.type===`object`?e.type:`other`:`other`}function Bj(e){if(!Tj(e)||!Tj(e.properties))return[];let t=new Set(Ij(e.required));return Object.entries(e.properties).map(([e,n])=>({name:e,type:zj(n),required:t.has(e)}))}function Vj(e){return e.type===`string[]`?`${e.name}[]`:e.name}function Hj(e,t){let n=Aj(e,[`io`,t,`schema`]);return!Tj(n)||Lj(n)||!Tj(n.properties)?null:n}function Uj(e){let t=Lj(e);return t?[`$ref ${t}`]:!Tj(e)||!Tj(e.properties)?[]:Object.entries(e.properties).map(([e,t])=>Tj(t)&&t.type===`array`?`${e}[]`:e)}function Wj(e){return Array.isArray(e.verify)?e.verify.filter(Tj):[]}function Gj(e){let t=Ij(e.when);return t.length>0?t:e.type===`gate`?[`emit`]:[`after`]}function Kj(e){let t=[];for(let n of Wj(e)){if(n.type!==`artifact`)continue;let e=typeof n.basename==`string`?n.basename:typeof n.path==`string`?n.path:null;e&&!t.includes(e)&&t.push(e)}return t}function qj(e){let t=Wj(e).find(e=>e.type===`command`);return t&&typeof t.run==`string`?t.run:``}function Jj(e){return Sj.includes(e)}function Yj(e){let t=Tj(e.on_verify_fail)?e.on_verify_fail:null;if(!t)return{mode:null,maxAttempts:null,retrySafety:null};let n=t.retry_safety===`idempotent`||t.retry_safety===`side_effecting`?t.retry_safety:null;return t.mode===`repair`?{mode:`retry`,maxAttempts:typeof t.max_attempts==`number`?t.max_attempts:null,retrySafety:n}:t.mode===`manual`?{mode:`ask_operator`,maxAttempts:null,retrySafety:n}:{mode:null,maxAttempts:null,retrySafety:n}}function Xj(e,t){let n=Oj(e,t);return n?n.fileIndex>=0?Ej(e.stages[n.fileIndex].path):Dj(n.ref):null}function Zj(e,t){let n=Oj(e,t);if(!n)return null;let r=kj(e,n),i=Aj(r,[`io`,`input`,`schema`]),a=Aj(r,[`io`,`output`,`schema`]),o=Ij(r.gate_kinds),s=o.find(Jj)??null,c=Yj(n.ref);return{id:t,index:n.index,path:Xj(e,t),inline:Dj(n.ref)===null,model:typeof r.model==`string`&&r.model.trim()?r.model:null,systemPrompt:typeof r.system_prompt==`string`?r.system_prompt:``,inputs:Rj(i),outputs:Rj(a),inputFields:Bj(i),outputFields:Bj(a),inputsRef:Lj(i),outputsRef:Lj(a),verifyCommand:qj(r),onVerifyFail:c.mode,maxAttempts:c.maxAttempts,retrySafety:c.retrySafety,hitl:o.length>0,gateKind:s,gateKinds:o,envelope:{artifacts:Kj(r),payload:Uj(a),status:`success | failure`}}}function Qj(e,t,n){if(t.model)return t.model;let r=e.pipeline.model;return typeof r==`string`&&r.trim()?r:n&&n.trim()?n:null}function $j(e,t,n){return Fj(e,t,[`model`],n&&n.trim()?n.trim():void 0)}function eM(e,t,n){return Fj(e,t,[`system_prompt`],n)}function tM(e,t,n){let r=n.trim()?n.trim():void 0;return Nj(e,t,(e,t)=>{delete t.skill,r===void 0?delete e.skill:e.skill=r})}function nM(e,t){let n=Oj(e,t);if(!n)return[];let r=kj(e,n).channels;return Array.isArray(r)?r.filter(Tj).map(e=>({...typeof e.alias==`string`?{alias:e.alias}:{},connection:typeof e.connection==`string`?e.connection:``,to:Array.isArray(e.to)?e.to.map(String):e.to===void 0?``:String(e.to),...Array.isArray(e.cc)?{cc:e.cc.map(String)}:{},...Tj(e.template)?{template:e.template}:{},operations:Array.isArray(e.operations)?e.operations.map(String):[`send`]})):[]}function rM(e,t,n){return Nj(e,t,(e,t)=>{delete t.channels,n.length===0?delete e.channels:e.channels=n.map(e=>({...e}))})}function iM(e,t){let n=Aj(e,[`io`,t,`schema`]);if(Tj(n))return n;let r={type:`object`};return jj(e,[`io`,t,`schema`],r),r}function aM(e,t,n,r){let i=[];for(let e of r){let t=e.trim();t&&!i.includes(t)&&i.push(t)}return Nj(e,t,e=>{if(Lj(Aj(e,[`io`,n,`schema`])))return;iM(e,n===`input`?`output`:`input`);let t=iM(e,n);t.type===void 0&&(t.type=`object`);let r=Tj(t.properties)?t.properties:{},a=Ij(t.required),o={};for(let e of i)o[e]=r[e]??{type:`string`};let s=[...a.filter(e=>i.includes(e)),...i.filter(e=>!(e in r))];if(i.length===0){delete t.properties,delete t.required;return}t.properties=o,s.length>0?t.required=s:delete t.required})}function oM(e,t,n,r,i){let a=i.trim();return!a||a===r?e:Nj(e,t,e=>{let t=Hj(e,n);if(!t)return;let i=t.properties;if(!(r in i)||a in i)return;let o={};for(let e of Object.keys(i))o[e===r?a:e]=i[e];t.properties=o,Array.isArray(t.required)&&(t.required=Ij(t.required).map(e=>e===r?a:e))})}function sM(e,t,n,r,i){return Nj(e,t,e=>{let t=Hj(e,n);if(!t)return;let a=t.properties;!(r in a)||zj(a[r])===i||(a[r]=i===`string[]`?{type:`array`,items:{type:`string`}}:{type:i})})}function cM(e,t,n,r,i){return Nj(e,t,e=>{let t=Hj(e,n);if(!t||!t.properties[r])return;let a=Ij(t.required).filter(e=>e!==r);i&&a.push(r),a.length>0?t.required=a:delete t.required})}function lM(e,t){let n=new Set(e.map(e=>e.id));if(!n.has(t))return t;let r=2;for(;n.has(`${t}-${r}`);)r++;return`${t}-${r}`}function uM(e,t,n){let r=n.trim();return Nj(e,t,e=>{let t=Array.isArray(e.verify)?[...e.verify]:[],n=t.findIndex(e=>Tj(e)&&e.type===`command`);if(r)n>=0?t[n]={...t[n],run:r}:t.push({id:lM(t.filter(Tj),`command`),type:`command`,run:r});else{if(n<0)return;t.splice(n,1)}t.length>0?e.verify=t:delete e.verify})}function dM(e,t){let n=Oj(e,t);return n?Wj(kj(e,n)).some(e=>Gj(e).includes(`after`)):!1}function fM(e,t,n,r={}){return Pj(e,t,e=>{let t=Tj(e.on_verify_fail)?e.on_verify_fail:{};if(n===null||n===`fail`){delete e.on_verify_fail;return}if(n===`retry`){let n=t.mode===`repair`&&typeof t.max_attempts==`number`?t.max_attempts:2;e.on_verify_fail={mode:`repair`,max_attempts:Math.max(1,Math.floor(r.maxAttempts??n)),retry_safety:`idempotent`,include_failed_checks:typeof t.include_failed_checks!=`boolean`||t.include_failed_checks};return}let i=t.mode===`manual`&&(t.retry_safety===`idempotent`||t.retry_safety===`side_effecting`)?t.retry_safety:`side_effecting`;e.on_verify_fail={mode:`manual`,retry_safety:r.retrySafety??i}})}function pM(e,t,n){return Number.isFinite(n)?fM(e,t,`retry`,{maxAttempts:n}):e}function mM(e,t,n){return fM(e,t,`ask_operator`,{retrySafety:n})}function hM(e,t){if(!Array.isArray(e.verify))return;let n=t[0];e.verify=e.verify.map(e=>!Tj(e)||e.type!==`gate`||typeof e.kind==`string`&&t.includes(e.kind)?e:n?{...e,kind:n}:e)}function gM(e,t,n,r=`confirm`){return Nj(e,t,e=>{if(!n){delete e.gate_kinds;return}Ij(e.gate_kinds).length>0||(e.gate_kinds=[r],hM(e,[r]))})}function _M(e,t,n){let r=n.filter((e,t)=>e&&n.indexOf(e)===t);return Nj(e,t,e=>{if(r.length===0){delete e.gate_kinds;return}e.gate_kinds=r,hM(e,r)})}function vM(e,t,n){return _M(e,t,[n])}function yM(e){return e?{lines:e.replace(/\n$/,``).split(`
123
- `).length,chars:e.length}:{lines:0,chars:0}}function bM(e){let t=e.needs;if(typeof t==`string`&&t.trim())return[t.trim()];if(!Array.isArray(t))return[];let n=[];for(let e of t)typeof e==`string`&&e.trim()?n.push(e.trim()):Tj(e)&&typeof e.id==`string`&&e.id.trim()&&n.push(e.id.trim());return n}function xM(e){if(!Array.isArray(e.route))return[];let t=[];for(let n of e.route)!Tj(n)||n.type===`loop`||typeof n.to==`string`&&n.to.trim()&&t.push(n.to.trim());return t}function SM(e){return e.pipeline.stages.map((e,t)=>dA(e,t))}function CM(e,t){let n=SM(e),r=[];e.pipeline.stages.forEach((e,i)=>{n[i]!==t&&xM(e).includes(t)&&r.push(n[i])});let i=e.pipeline.stages[n.indexOf(t)];if(i)for(let e of bM(i))r.includes(e)||r.push(e);return r}function wM(e){let t=SM(e);return{id:e.pipeline.id,model:typeof e.pipeline.model==`string`&&e.pipeline.model.trim()?e.pipeline.model:null,stages:e.pipeline.stages.map((n,r)=>({id:t[r],index:r,path:Xj(e,t[r]),entry:n.entry===!0,needs:CM(e,t[r])}))}}function TM(e,t){return{...e,pipeline:{...e.pipeline,id:t}}}function EM(e,t){let n={...e.pipeline};return t&&t.trim()?n.model=t.trim():delete n.model,{...e,pipeline:n}}function DM(e,t){if(!e.some(e=>xM(e).length>0))return;let n=new Set(e.flatMap(e=>xM(e)));e.forEach((e,r)=>{n.has(t[r])?delete e.entry:e.entry=!0})}function OM(e,t,n){let r=uA(e),i=SM(r);if(!i.includes(t))return e;let a=new Set(n.filter(e=>e!==t&&i.includes(e))),o=r.pipeline.stages;return o.forEach((e,n)=>{let r=i[n];if(r===t){delete e.needs;return}let o=Array.isArray(e.route)?[...e.route]:[],s=xM(e).includes(t),c=o;a.has(r)&&!s&&(c=[...o,{to:t}]),!a.has(r)&&s&&(c=o.filter(e=>!(Tj(e)&&e.type!==`loop`&&e.to===t))),c.length>0?e.route=c:delete e.route}),DM(o,i),r}function kM(e,t,n){let r=SM(e),i=r.indexOf(t),a=i+n;if(i<0||a<0||a>=r.length||n===0)return e;let o=[...e.pipeline.stages],[s]=o.splice(i,1);return o.splice(a,0,s),{...e,pipeline:{...e.pipeline,stages:o}}}function AM(e){return Array.isArray(e)?`[${e.map(AM).join(`,`)}]`:Tj(e)?`{${Object.keys(e).filter(t=>e[t]!==void 0).sort().map(t=>`${JSON.stringify(t)}:${AM(e[t])}`).join(`,`)}}`:JSON.stringify(e)??`null`}function jM(e,t,n){if(!t)return`new`;let r=sj(t,n);return r===null?`new`:r===sj(e,n)?`unchanged`:`edited`}function MM(e,t){return!t||AM(e.pipeline)!==AM(t.pipeline)}function NM(e){let t=e.trim().toLowerCase();return t===``||t===`untitled`}function PM(e){return`${e.trim()||`untitled`}.yaml`}var FM={id:`id`,model:`model`,system_prompt:`system_prompt`,prompt:`system_prompt`,io:`io.inputs`,"io.input":`io.inputs`,"io.inputs":`io.inputs`,inputs:`io.inputs`,"io.output":`io.outputs`,"io.outputs":`io.outputs`,outputs:`io.outputs`,verify:`verify.command`,"verify.command":`verify.command`,on_verify_fail:`on_verify_fail`,recovery:`on_verify_fail`,ask_operator:`ask_operator`,gate_kinds:`ask_operator`,hitl:`ask_operator`,general:`general`};function IM(e){return FM[e.trim()]??`general`}function LM(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}var RM=/stage "([^"]+)" io\.input is not a structural subset of "([^"]+)" io\.output/;function zM(e,t){return RegExp(`(?<!pipeline )"${LM(t)}"`,`i`).test(e)}function BM(e,t,n){if(e.stageId===t||zM(e.message,t))return!0;if(!n)return!1;let r=Ej(n);return e.category===`stage`&&Ej(e.path).endsWith(r)?!0:e.message.replace(/\\/g,`/`).includes(r)}function VM(e){return/system_prompt/.test(e)?`system_prompt`:/on_verify_fail|recovery/.test(e)?`on_verify_fail`:/gate_kinds|ask_operator|gate kind/.test(e)?`ask_operator`:/\bverify\b|completion/.test(e)?`verify.command`:/io\.output|payload_schema/.test(e)?`io.outputs`:/\bio\b|io\.input|clone_input_schema/.test(e)?`io.inputs`:/\bmodel\b/.test(e)?`model`:/\bid\b/.test(e)?`id`:`general`}function HM(e){let{code:t,message:n}=e;switch(t){case`stage.invalid_model`:case`stage.missing_model`:case`pipeline.invalid_model`:case`pipeline.model_applies`:return`model`;case`stage.invalid_payload_schema`:return`io.outputs`;case`stage.invalid_clone_input_schema`:return`io.inputs`;case`stage.invalid_io`:case`stage.unresolved_schema_ref`:return/io\.output|payload_schema/.test(n)?`io.outputs`:`io.inputs`;case`pipeline.invalid_verify`:case`pipeline.invalid_completion`:case`stage.invalid_pre_emit_checks`:return/gate_kinds|\bgate\b|kind/.test(n)&&!/\bcommand\b/.test(n)?`ask_operator`:`verify.command`;case`pipeline.invalid_recovery`:return`on_verify_fail`;case`stage.invalid_gate_kinds`:return`ask_operator`;case`pipeline.stage_id_mismatch`:case`stage.id_filename_mismatch`:case`pipeline.include_duplicate_stage`:return`id`;default:return VM(n)}}function UM(e,t,n=null){if(e.code===`pipeline.io_incompatible`){let n=RM.exec(e.message);if(n)return n[1]===t?`io.inputs`:n[2]===t?`io.outputs`:null}return BM(e,t,n)?HM(e):null}function WM(){return Object.fromEntries(Cj.map(e=>[e,[]]))}function GM(e,t,n=null){let r=WM();for(let i of e){let e=UM(i,t,n);e&&r[e].push(i)}return r}function KM(e,t){let n=t.filter(e=>e.severity===`error`);if(n.length===0)return[];let r=e.filter(e=>n.some(t=>t.message.includes(e)));return r.length>0?r:e}function qM(e,t){let n=SM(t),r=e.stageId&&n.includes(e.stageId)?[e.stageId,...n.filter(t=>t!==e.stageId)]:n;for(let n of r){let r=UM(e,n,Xj(t,n));if(r)return{stageId:n,field:r}}return null}function JM(e,t){let n={id:[],model:[],stages:[],general:[]};for(let r of e)if(r.category===`pipeline`||r.category===`catalog`){if(qM(r,t)){(r.code===`pipeline.dag_error`||r.code===`pipeline.route_if_invalid`)&&n.stages.push(r);continue}if(r.code===`catalog.duplicate_pipeline_id`)n.id.push(r);else if(r.code===`pipeline.invalid_model`||r.code===`pipeline.model_applies`)n.model.push(r);else if(r.code===`pipeline.dag_error`||r.code===`pipeline.missing_stage`||r.code===`pipeline.route_if_invalid`||r.code===`pipeline.route_all_gated`||r.code===`pipeline.string_stage_ref`||r.code===`pipeline.io_incompatible`)n.stages.push(r);else if(r.category===`pipeline`){let e=VM(r.message);e===`id`?n.id.push(r):e===`model`?n.model.push(r):n.general.push(r)}}return n}var YM=2e3,XM=`Create a task for this pipeline: `,ZM=`workshop-attachment-chips`,QM=`workspace`;function $M(e){return Math.max(300,Math.min(560,e))}function eN(e,t){let n=0;for(let r of uj(e,t).values())r!==`unchanged`&&(n+=1);return n}function tN(e,t){return e?t===0?`clean`:`dirty`:`new`}function nN(e){return e.stageCount===0||e.saving?!0:e.hasDestination&&e.saveState===`clean`}function rN(e){return e?`package`:`session`}function iN(e){return e?{project_root:e}:{}}function aN(e){let t=e.project_root?.trim();return t?{project_root:t,kind:e.root_kind??`registered`,readOnly:e.read_only===!0}:null}function oN(){return{project_root:QM,kind:`workspace`,readOnly:!1}}function sN(e){let t=e.find(e=>e.kind===`workspace`&&e.available!==!1&&!e.read_only);return t?t.project_root:e.find(e=>!e.read_only&&e.available!==!1)?.project_root??`workspace`}function cN(e){return e.filter(e=>!e.read_only).map(e=>({value:e.project_root,label:e.label,available:e.available!==!1,...e.unavailable_reason?{unavailableReason:e.unavailable_reason}:{}}))}function lN(e,t){let n=e?.trim(),r=t.trim()||`workspace`;return!n||n===r?{}:{project_root:n}}function uN(e,t){let n=t.trim()||`untitled`;return e===`workspace`?n:`workshop/${n}`}function dN(e,t,n){let r=new Set,i=[],a=e=>{let t=e.trim();!t||r.has(t)||(r.add(t),i.push({value:t,label:t}))};return a(uN(e,t)),n&&a(n),i}function fN(e){return e?.project_root}function pN(e){return{path:e.path,...e.task?{task:e.task}:{},...iN(e.projectRoot)}}function mN(e){return e.trim().replace(/\\/g,`/`)}function hN(e,t){let n=mN(t);if(!n)return;let r=e.filter(e=>e.path&&mN(e.path)===n),i=[...new Set(r.map(e=>e.project_root?.trim()).filter(e=>!!e))];return i.length===1?i[0]:void 0}function gN(e){return e.originReadOnly?{kind:`dialog`,mode:`create`,allowInvalidInitial:!!e.invalid}:_N(e)}function _N(e){return e.invalid?{kind:`dialog`,mode:e.hasDestination?`overwrite`:`create`,allowInvalidInitial:!0}:e.hasDestination&&e.errorCount===0?{kind:`overwrite-direct`}:{kind:`dialog`,mode:e.hasDestination?`overwrite`:`create`,allowInvalidInitial:!1}}function vN(){return{kind:`dialog`,mode:`create`,allowInvalidInitial:!1}}function yN(){return{pipeline:{id:`untitled`,stages:[]}}}function bN(e){return e?structuredClone(e):yN()}function xN(e){return{id:e.id,summary:e.summary,affectedStageIds:[...e.affectedStageIds],artifacts:e.artifacts.map(e=>({...e})),baseDraft:bN(e.baseDraft),nextDraft:bN(e.nextDraft),baseFingerprint:e.baseFingerprint||e.id}}function SN(e){let t=new Map,n=0;for(let r of e)for(let e of r.mutations??[])t.set(e.id,{proposal:xN(e),status:e.status,...e.autoApplied?{auto:!0}:{},at:n}),n+=1;return t}function CN(e,t){let n=e.trim().replace(/\\/g,`/`);if(!n)return null;let r=n.split(`/`),i=r.pop();return i?{savedPipelinePath:n,saveDestination:{directory:r.join(`/`)||`.`,pipelineFilename:wN(t,{id:t,filename:i})}}:null}function wN(e,t){let n=e.trim()||`untitled`;return RA(n,t.filename&&t.id===n?t.filename:null)}function TN(e){return VA(e).draft}function EN(e){let t=e.destination.pipelineId.trim()||e.draft.pipeline.id,{draft:n,pipelineFilename:r}=VA(t===e.draft.pipeline.id?e.draft:TM(e.draft,t),wN(t,{id:e.draft.pipeline.id,filename:e.filename}));return{directory:e.destination.folder,draft:n,pipelineFilename:r,mode:e.mode,...lN(e.projectRoot,e.defaultWriteWireId??`workspace`)}}function DN(e){return 1+e.stagePaths.length+ +!!e.taskPath}function ON(e,t){return e.task||!t?.task?e:{...e,task:t.task}}async function kN(e){let t=e.draft,n=!1,r=null;if(t.task)return{draft:t,mergedTaskFromServer:n,adoptedBuildId:r};let i=e.buildId;if(!i&&e.resolveActiveBuildId&&(i=await e.resolveActiveBuildId()),!i)return{draft:t,mergedTaskFromServer:n,adoptedBuildId:r};let a=await e.loadBuild(i);if(!a.ok)return{draft:t,mergedTaskFromServer:n,adoptedBuildId:r};let o=ON(t,a.build.draft);return o!==t&&(t=o,n=!0),e.buildId||(r=i),{draft:t,mergedTaskFromServer:n,adoptedBuildId:r}}function AN(e,t){return e?{status:`pending`,auto:!0,at:t}:{status:`pending`,at:t}}function jN(e){let t=null,n=-1/0,r=0;for(let[i,a]of e){if(a.status!==`pending`){r+=1;continue}let e=a.at??r;(t===null||e>=n)&&(t=i,n=e),r+=1}return t}function MN(e){let t=XA(e.attachments);if(t.length>0)return t;let n=e.artifacts;return n&&typeof n==`object`&&!Array.isArray(n)&&n.kind===`workshop-attachment-chips`?XA(n.attachments):[]}function NN(e){return e.map(e=>{let t=MN(e);return{role:e.role,text:e.text,...e.createdAt?{createdAt:e.createdAt}:{},...t.length>0?{attachments:t}:{}}})}function PN(e){if(e.length!==0)return{kind:ZM,attachments:e.map(e=>({name:e.name,size:e.size,mediaType:e.mediaType}))}}function FN(e,t){return`Fix this validation error in ${e}: ${t}`}function IN(e){return e.pipeline.stages.length===0&&!e.task?`task`:`problems`}function LN(e){return e.bannerVisible?`dismiss-banner`:e.selectedStageId?`clear-selection`:`none`}function RN(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function zN(e){return Array.isArray(e)?`[${e.map(zN).join(`,`)}]`:RN(e)?`{${Object.keys(e).filter(t=>e[t]!==void 0).sort().map(t=>`${JSON.stringify(t)}:${zN(e[t])}`).join(`,`)}}`:JSON.stringify(e)??`null`}function BN(e,t){return!e||!t?!1:zN(e)!==zN(t)}function VN(e){return e.trim().replace(/\\/g,`/`).replace(/^\.\//,``)}function HN(e,t){return(e?.trim().replace(/\\/g,`/`).replace(/\/$/,``)??``)===(t?.trim().replace(/\\/g,`/`).replace(/\/$/,``)??``)}function UN(e,t){return e.filter(e=>e.pipeline_id===t.id&&HN(e.project_root,t.project_root))}function WN(e,t){let n=VN(e),r=VN(t);return!n||!r?!1:n===r||n.endsWith(`/${r}`)||r.endsWith(`/${n}`)}function GN(e,t){if(!e)return null;let n=new Set;for(let r of e)HN(r.project_root,t.projectRoot)&&r.stages.some(e=>e.id===t.id||t.path!=null&&e.uses_path!=null&&WN(e.uses_path,t.path))&&n.add(r.id);return n.size}function KN(e){let t=VN(e),n=t.lastIndexOf(`/`);return n===-1?t:t.slice(n+1)}function qN(e){return`${e.code}\0${KN(e.path)}\0${e.message}`}function JN(e,t){let n=new Set,r=[];for(let i of[...e,...t]){let e=qN(i);n.has(e)||(n.add(e),r.push(i))}return r}function YN(e,t){let n=qM(e,t);return n?{kind:`stage`,stageId:n.stageId,field:n.field}:{kind:`row`}}var XN=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],ZN=new Set([`succeeded`,`failed`,`cancelled`]);function QN(e){return!e.waiting_stage_id&&ZN.has(e.status)}function $N(e){let t=new Date(e),n=String(t.getMonth()+1).padStart(2,`0`),r=String(t.getDate()).padStart(2,`0`);return`${t.getFullYear()}-${n}-${r}`}function eP(e,t){if(e===$N(t))return`Today`;let n=new Date(t);if(n.setDate(n.getDate()-1),n.setHours(12,0,0,0),e===$N(n.getTime()))return`Yesterday`;let[r,i,a]=e.split(`-`),o=Number(r),s=Number(i),c=Number(a);if(!o||s<1||s>12||!c)return e;let l=o===new Date(t).getFullYear()?``:` ${o}`;return`${XN[s-1]} ${c}${l}`}function tP(e){if(!QN(e))return null;let t=e.finished_at??e.updated_at??e.created_at;return!t||!Number.isFinite(Date.parse(t))?null:t}function nP(e){let t=e.now??Date.now(),n=[];e.events.forEach((e,t)=>{Number.isFinite(Date.parse(e.at))&&n.push({source:`session`,id:e.id,at:e.at,label:e.label,...e.detail?{detail:e.detail}:{},seq:t})});let r=new Set;for(let t of e.runs){if(r.has(t.run_id))continue;let e=tP(t);e&&(r.add(t.run_id),n.push({source:`run`,id:`run:${t.run_id}`,at:e,runId:t.run_id,status:t.status,seq:-1}))}n.sort((e,t)=>{let n=Date.parse(t.at)-Date.parse(e.at);return n===0?e.source===t.source?t.seq-e.seq:e.source===`session`?-1:1:n});let i=[];for(let e of n){let n=$N(Date.parse(e.at)),r=rP(e),a=i[i.length-1];!a||a.day!==n?i.push({day:n,label:eP(n,t),entries:[r]}):a.entries.push(r)}return i}function rP(e){return e.source===`session`?{source:`session`,id:e.id,at:e.at,label:e.label,...e.detail?{detail:e.detail}:{}}:{source:`run`,id:e.id,at:e.at,runId:e.runId,status:e.status}}var iP=.5,aP=.1,oP={zoom:1,panX:0,panY:0};function sP(e){return Math.min(2,Math.max(iP,e))}function cP(e,t){return sP((Math.round(e/aP)+t)*aP)}function lP(e,t){if(e.width<=0||e.height<=0)return oP;let n=Math.max(1,t.width-24),r=Math.max(1,t.height-42-10),i=Math.min(n/e.width,r/e.height),a=sP(Math.floor(i/aP+1e-9)*aP),o=Math.max(0,Math.round((r-e.height*a)/2));return{zoom:Number(a.toFixed(1)),panX:0,panY:o}}function uP(e,t){return`${e} ${e===1?`stage`:`stages`} · ${t} parallel`}function dP(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function fP(e){return Array.isArray(e)?e.length>0:dP(e)?Object.keys(e).length>0:e!=null&&e!==!1&&e!==``}function pP(e){if(e)return e.verify??e.completion??e.pre_emit_checks}function mP(e,t){return e?.on_verify_fail??e?.recovery??t?.on_verify_fail??t?.recovery}function hP(e){let t=e?.gate_kinds;return Array.isArray(t)?t.filter(e=>typeof e==`string`&&e.trim().length>0):[]}function gP(e,t){let n=[],r=fP(pP(t));r&&n.push({kind:`verify`,label:`verify`});let i=aj(mP(e,t));i&&n.push({kind:`on_fail`,label:`on_fail: ${i}`});let a=hP(t);return a.length>0?n.push({kind:`ask`,label:`ask: ${a[0]}${a.length>1?` +${a.length-1}`:``}`}):r&&!i&&n.push({kind:`no_gate`,label:`no gate`}),n}function _P(e){return e.pipeline.stages.some(e=>mA(e.needs).length>0||Array.isArray(e.route)&&e.route.length>0)}function vP(e){if(!Array.isArray(e.route))return[];let t=[];for(let n of e.route)!dP(n)||n.type!==`loop`||typeof n.to==`string`&&n.to.trim()&&t.push(n.to.trim());return t}function yP(e,t){let n=new Map,r=new Set,i=e=>{let a=n.get(e);if(a!==void 0)return a;if(r.has(e))return-1;r.add(e);let o=(t.get(e)??[]).map(i).filter(e=>e>=0);r.delete(e);let s=o.length===0?0:Math.max(...o)+1;return n.set(e,s),s};for(let t of e)i(t);return n}function bP(e){let t=vA(e),n=yA(e),r=yP(t,n),i=new Map;t.forEach((e,t)=>{let n=r.get(e)??0,a=i.get(n)??[];a.push({key:e,stageId:e,loop:!1,sourceIndex:t}),i.set(n,a)});let a=[];for(let e of t)for(let t of n.get(e)??[])(r.get(t)??0)<(r.get(e)??0)&&a.push({from:t,to:e});e.pipeline.stages.forEach((e,n)=>{let o=t[n];if(!o)return;let s=r.get(o)??0;for(let t of vP(e)){if(!r.has(t)||(r.get(t)??0)>s)continue;let e=s+1,c=`loop:${o}>${t}`,l=i.get(e)??[];l.some(e=>e.key===c||e.stageId===t&&!e.loop)||(l.push({key:c,stageId:t,loop:!0,sourceIndex:n}),i.set(e,l),a.push({from:o,to:c}))}});let o=[...i.keys()].sort((e,t)=>e-t).map(t=>{let n=i.get(t)??[];return n.sort((e,t)=>Number(e.loop)-Number(t.loop)||e.sourceIndex-t.sourceIndex),n.map(t=>({key:t.key,stageId:t.stageId,loop:t.loop,chips:t.loop?[]:gP(CA(e,t.stageId),wA(e,t.stageId))}))}),s=t.length,c=o.reduce((e,t)=>Math.max(e,t.length),0);return{stageCount:s,lanes:c,summary:uP(s,c),useDag:_P(e),layers:o,edges:a}}function xP(e){return typeof e==`number`&&Number.isFinite(e)}function SP(e){let t=Math.max(0,Math.round(e/1e3)),n=e=>String(e).padStart(2,`0`);return t<60?`${t}s`:t<3600?`${Math.floor(t/60)}m ${n(t%60)}s`:`${Math.floor(t/3600)}h ${n(Math.floor(t%3600/60))}m`}function CP(e){if(!e||e.runs<=0)return`no runs yet`;let t=[];return xP(e.avgMs)&&t.push(`avg ${SP(e.avgMs)}`),xP(e.avgCostUsd)&&t.push(`$${e.avgCostUsd.toFixed(2)}`),xP(e.passRate)&&t.push(`${Math.round(e.passRate*100)}% pass`),t.length===0?`${e.runs} ${e.runs===1?`run`:`runs`}`:t.join(` · `)}function wP(e,t,n){let r=uP(e,t);return xP(n)?`${r} · p50 ${SP(n)}`:r}function TP(e,t,n){let r=Zj(e,t);return{model:r?Qj(e,r,n):null,gateKinds:r?.gateKinds??[],needs:mA(CA(e,t)?.needs)}}function EP(e){return e<=0?0:e*218+(e-1)*16}function DP(e,t){let n=(t-EP(e))/2;return Array.from({length:Math.max(0,e)},(e,t)=>n+t*234+109)}function OP(e){let t=new Map,n=e=>{let r=t.get(e)??e;if(r===e)return e;let i=n(r);return t.set(e,i),i};for(let r of e){let e=n(`t${r.top}`),i=n(`b${r.bottom}`);e!==i&&t.set(e,i)}let r=new Map;for(let t of e){let e=n(`t${t.top}`),i=r.get(e)??[];i.push(t),r.set(e,i)}return[...r.values()]}function kP(e,t,n){let r=e.map(e=>[...e]),i=!0;for(;i;){i=!1;for(let e=0;e<r.length&&!i;e+=1)for(let a=e+1;a<r.length&&!i;a+=1){if(n(r[e])||n(r[a]))continue;let o=t(r[e]),s=t(r[a]);o.min<s.max&&s.min<o.max&&(r[e]=[...r[e],...r[a]],r.splice(a,1),i=!0)}}return r}function AP(e,t,n){let r=[...new Set(e)].sort((e,t)=>e-t),i=[];for(let e=0;e<r.length-1;e+=1){let n=r[e],a=r[e+1],o=t.some(e=>e.highlighted&&e.min<=n&&e.max>=a),s=i[i.length-1];s&&s.highlighted===o?s.end=a:i.push({start:n,end:a,highlighted:o})}return i.map((e,t)=>({axis:`x`,left:e.start,top:n,length:e.end-e.start+ +(t===i.length-1),highlighted:e.highlighted}))}function jP(e,t,n,r={}){let i=r.rowsWidth??Math.max(EP(e),EP(t)),a=Math.max(r.width??i,i),o=r.rails??[],s=DP(e,i),c=DP(t,i),l=s.map(e=>({x:e})),u=c.map(e=>({x:e})),d=[],f=new Set;for(let r of n){if(r.from<0||r.from>=e||r.to<0||r.to>=t)continue;let n=`${r.from}>${r.to}`;f.has(n)||(f.add(n),d.push({top:r.from,bottom:r.to,highlighted:!!r.highlighted}))}let p=[];for(let n of o){let r=!!n.highlighted;if(n.kind===`pass`)p.push(n);else if(n.kind===`start`){if(n.node===void 0||n.node<0||n.node>=e)continue;u.push({x:n.x}),d.push({top:n.node,bottom:u.length-1,highlighted:r})}else{if(n.node===void 0||n.node<0||n.node>=t)continue;l.push({x:n.x}),d.push({top:l.length-1,bottom:n.node,highlighted:r})}}let m=e=>e.length===1&&l[e[0].top].x===u[e[0].bottom].x,h=kP(OP(d),e=>{let t=e.flatMap(e=>[l[e.top].x,u[e.bottom].x]);return{min:Math.min(...t),max:Math.max(...t)}},m),g=o.every(e=>e.kind===`pass`)&&h.every(m)?22:28,_=[];for(let e of p)_.push({axis:`y`,left:e.x,top:0,length:g,highlighted:!!e.highlighted});for(let e of h){if(m(e)){let t=e[0];_.push({axis:`y`,left:l[t.top].x,top:0,length:g,highlighted:t.highlighted});continue}let t=[...new Set(e.map(e=>e.top))],n=[...new Set(e.map(e=>e.bottom))];for(let n of t){let t=e.filter(e=>e.top===n);_.push({axis:`y`,left:l[n].x,top:0,length:14,highlighted:t.every(e=>e.highlighted)})}let r=[...t.map(e=>l[e].x),...n.map(e=>u[e].x)],i=e.map(e=>{let t=l[e.top].x,n=u[e.bottom].x;return{min:Math.min(t,n),max:Math.max(t,n),highlighted:e.highlighted}});_.push(...AP(r,i,14));for(let t of n){let n=e.filter(e=>e.bottom===t);_.push({axis:`y`,left:u[t].x,top:14,length:g-14,highlighted:n.every(e=>e.highlighted)})}}return _.sort((e,t)=>Number(e.highlighted)-Number(t.highlighted)),{width:a,height:g,segments:_}}function MP(e,t){return e+16+t*10}function NP(e,t){let n=new Map;for(let t of e.layers)for(let e of t)e.loop&&n.set(e.key,e.stageId);let r=new Map;for(let t of e.edges){let e=n.get(t.to);if(e===void 0)continue;let i=r.get(t.from)??[];i.includes(e)||i.push(e),r.set(t.from,i)}let i=e.layers.map(e=>e.filter(e=>!e.loop).map(e=>({key:e.key,stageId:e.stageId,loops:r.get(e.stageId)??[]}))).filter(e=>e.length>0),a=new Map;i.forEach((e,t)=>{e.forEach((e,n)=>a.set(e.key,{row:t,index:n}))});let o=[],s=[];for(let n of e.edges){let e=a.get(n.from),r=a.get(n.to);if(!e||!r||r.row<=e.row)continue;let i=t!==null&&(n.from===t||n.to===t);(r.row===e.row+1?o:s).push({from:e,to:r,highlighted:i})}s.sort((e,t)=>e.from.row-t.from.row||e.to.row-t.to.row||e.from.index-t.from.index);let c=[],l=s.map(e=>{let t=e.to.row-1,n=c.findIndex(t=>t<e.from.row);return n>=0?(c[n]=t,n):(c.push(t),c.length-1)}),u=i.reduce((e,t)=>Math.max(e,EP(t.length)),0),d=c.length,f=d>0?MP(u,d-1)+1:u,p=i.map((e,t)=>({nodes:e,rails:s.flatMap((e,n)=>e.from.row<t&&e.to.row>t?[{x:MP(u,l[n]),highlighted:e.highlighted}]:[])})),m=[];for(let e=0;e<i.length-1;e+=1){let t=o.filter(t=>t.from.row===e).map(e=>({from:e.from.index,to:e.to.index,highlighted:e.highlighted})),n=[];s.forEach((t,r)=>{let i=MP(u,l[r]);t.from.row===e?n.push({x:i,kind:`start`,node:t.from.index,highlighted:t.highlighted}):t.to.row===e+1?n.push({x:i,kind:`end`,node:t.to.index,highlighted:t.highlighted}):t.from.row<e&&t.to.row>e+1&&n.push({x:i,kind:`pass`,highlighted:t.highlighted})}),m.push(jP(i[e].length,i[e+1].length,t,{rowsWidth:u,width:f,rails:n}))}return{stageCount:e.stageCount,lanes:i.reduce((e,t)=>Math.max(e,t.length),0),rowsWidth:u,width:f,railCount:d,rows:p,connectors:m}}function PP({stageId:e,card:t,selected:n,finding:r,stats:i,loops:a=[],onSelect:o}){let s=n?`bg-[#131418]`:`bg-[#1a1c21]`;return(0,Y.jsxs)(`button`,{type:`button`,"aria-pressed":n,onClick:()=>o(e),className:`flex w-[218px] shrink-0 flex-col gap-[7px] rounded-[10px] border p-2.5 text-left focus-visible:outline focus-visible:outline-1 focus-visible:outline-offset-2 focus-visible:outline-[#ecedee8c] ${n?`border-[#ecedee8c] bg-[#1a1c21] shadow-[0px_0px_0px_3px_rgba(236,237,238,0.07)]`:`border-[#ffffff1a] bg-[#131418] hover:border-[#ffffff29]`}`,children:[(0,Y.jsxs)(`span`,{className:`flex w-full items-center gap-1.5`,children:[(0,Y.jsx)(`span`,{className:`min-w-0 truncate font-['Geist_Mono',monospace] text-[13px] font-medium text-[#ecedee]`,children:e}),r===`error`?(0,Y.jsx)(A,{"aria-label":`Has errors`,className:`size-3 shrink-0 text-[#e5484d]`}):r===`warning`?(0,Y.jsx)(je,{"aria-label":`Has warnings`,className:`size-3 shrink-0 text-[#a7aab2]`}):null,(0,Y.jsx)(`span`,{className:`min-w-0 flex-1`}),t.model?(0,Y.jsx)(`span`,{className:`max-w-[120px] truncate font-['Geist_Mono',monospace] text-[11px] text-[#8b8f98]`,title:t.model,children:t.model}):null]}),(0,Y.jsxs)(`span`,{className:`flex flex-wrap items-center gap-1`,children:[t.gateKinds.length>0?t.gateKinds.map(e=>(0,Y.jsx)(`span`,{className:`h-[18px] content-center rounded-sm border px-1.5 font-['Geist_Mono',monospace] text-[11px] text-[#a7aab2] ${s} ${e===`artifact_backed`?`border-dashed border-[#a7aab28c]`:`border-[#ffffff1a]`}`,children:e},e)):(0,Y.jsx)(`span`,{className:`h-[18px] content-center rounded-sm border border-dashed border-[#ffffff1f] px-1.5 text-[11px] text-[#8b8f98]`,children:`no gate · auto`}),a.map(e=>(0,Y.jsxs)(`span`,{className:`h-[18px] content-center rounded-sm border border-dashed border-[#ffffff1f] px-1.5 font-['Geist_Mono',monospace] text-[11px] text-[#8b8f98]`,title:`Loops back to ${e}`,children:[`↺ `,e]},`loop:${e}`)),t.needs.length>=2?(0,Y.jsxs)(`span`,{className:`h-[18px] content-center px-1 text-[11px] text-[#8b8f98]`,children:[`needs `,t.needs.join(` + `)]}):null]}),(0,Y.jsx)(`span`,{className:`truncate whitespace-nowrap border-t border-t-[#ffffff12] pt-1.5 font-['Geist_Mono',monospace] text-[11px] ${n?`text-[#a7aab2]`:`text-[#8b8f98]`}`,children:CP(i)})]})}var FP=new Map,IP=new Map;function LP(e){return`absolute ${e?`bg-[#a7aab2]`:`bg-[#ffffff33]`}`}function RP({geometry:e}){return(0,Y.jsx)(`div`,{className:`relative shrink-0`,style:{width:e.width,height:e.height},children:e.segments.map((e,t)=>(0,Y.jsx)(`div`,{className:LP(e.highlighted),style:e.axis===`x`?{left:e.left,top:e.top,width:e.length,height:1}:{left:e.left,top:e.top,width:1,height:e.length}},t))})}function zP({draft:e,selectedStageId:t,onSelectStage:n,onAddStage:r,defaultModel:a=null,stageFindings:o=FP,stageStats:s=IP,p50Ms:c=null,hideAddStage:l=!1}){let u=(0,J.useMemo)(()=>bP(e),[e]),d=(0,J.useMemo)(()=>NP(u,t),[u,t]),f=(0,J.useMemo)(()=>{let t=new Map;for(let n of d.rows)for(let r of n.nodes)t.set(r.stageId,TP(e,r.stageId,a));return t},[e,d,a]),[p,m]=(0,J.useState)(oP),[h,g]=(0,J.useState)(null),_=(0,J.useRef)(null),v=(0,J.useRef)(null),y=d.stageCount===0;(0,J.useLayoutEffect)(()=>{let e=v.current;if(!e)return;let t=e.offsetWidth,n=e.offsetHeight;g(e=>e&&e.width===t&&e.height===n?e:{width:t,height:n})});let b=()=>{let e=_.current,t=v.current;!e||!t||m(lP({width:t.offsetWidth,height:t.offsetHeight},{width:e.clientWidth,height:e.clientHeight}))},x=d.width-d.rowsWidth;return(0,Y.jsxs)(`div`,{className:`editor-live-graph flex min-h-0 min-w-0 flex-1 flex-col bg-[#0c0d0f]`,children:[(0,Y.jsxs)(`div`,{className:`flex h-9 w-full shrink-0 items-center gap-2.5 border-b border-b-[#ffffff12] px-3.5`,children:[(0,Y.jsx)(ut,{"aria-hidden":!0,className:`size-[13px] shrink-0 text-[#8b8f98]`}),(0,Y.jsx)(`span`,{className:`whitespace-nowrap text-xs font-medium text-[#ecedee]`,children:`Live graph`}),(0,Y.jsx)(`span`,{className:`truncate whitespace-nowrap font-['Geist_Mono',monospace] text-[11px] text-[#8b8f98]`,children:wP(d.stageCount,d.lanes,c)}),(0,Y.jsx)(`span`,{className:`min-w-0 flex-1`}),(0,Y.jsxs)(`div`,{className:`flex h-6 shrink-0 items-center rounded-md border border-[#ffffff1a] bg-[#131418]`,children:[(0,Y.jsx)(`button`,{type:`button`,className:`flex size-[22px] items-center justify-center rounded-md text-[#a7aab2] hover:bg-[#ffffff08] hover:text-[#ecedee] disabled:cursor-default disabled:opacity-40`,onClick:()=>m(e=>({...e,zoom:cP(e.zoom,-1)})),disabled:y||p.zoom<=.5,"aria-label":`Zoom out`,children:(0,Y.jsx)(k,{"aria-hidden":!0,className:`size-3`})}),(0,Y.jsxs)(`span`,{className:`px-1 font-['Geist_Mono',monospace] text-[11px] text-[#a7aab2]`,children:[Math.round(p.zoom*100),`%`]}),(0,Y.jsx)(`button`,{type:`button`,className:`flex size-[22px] items-center justify-center rounded-md text-[#a7aab2] hover:bg-[#ffffff08] hover:text-[#ecedee] disabled:cursor-default disabled:opacity-40`,onClick:()=>m(e=>({...e,zoom:cP(e.zoom,1)})),disabled:y||p.zoom>=2,"aria-label":`Zoom in`,children:(0,Y.jsx)(se,{"aria-hidden":!0,className:`size-3`})})]}),(0,Y.jsx)(`button`,{type:`button`,className:`flex size-6 shrink-0 items-center justify-center rounded-md border border-[#ffffff1a] bg-[#131418] text-[#a7aab2] hover:bg-[#ffffff08] hover:text-[#ecedee] disabled:cursor-default disabled:opacity-40`,onClick:b,disabled:y,"aria-label":`Fit`,title:`Fit`,children:(0,Y.jsx)(i,{"aria-hidden":!0,className:`size-3`})})]}),(0,Y.jsx)(`div`,{ref:_,className:`relative min-h-0 w-full min-w-0 flex-1 overflow-auto [background-image:radial-gradient(circle,_rgba(255,255,255,0.07)_0%,_rgba(0,0,0,0)_100%)]`,children:(0,Y.jsx)(`div`,{className:`flex min-h-full w-max min-w-full flex-col items-center justify-center py-4`,children:(0,Y.jsx)(`div`,{className:`overflow-hidden`,style:h?{width:h.width*p.zoom,height:h.height*p.zoom}:void 0,children:(0,Y.jsxs)(`div`,{ref:v,className:`flex w-max flex-col`,style:{transform:`scale(${p.zoom})`,transformOrigin:`top left`},children:[d.rows.map((e,r)=>(0,Y.jsxs)(`div`,{children:[(0,Y.jsxs)(`div`,{className:`relative`,style:{width:d.width},children:[(0,Y.jsx)(`div`,{className:`flex justify-center gap-4`,style:{width:d.rowsWidth},children:e.nodes.map(e=>(0,Y.jsx)(PP,{stageId:e.stageId,card:f.get(e.stageId)??{model:null,gateKinds:[],needs:[]},selected:e.stageId===t,finding:o.get(e.stageId),stats:s.get(e.stageId),loops:e.loops,onSelect:n},e.key))}),e.rails.map((e,t)=>(0,Y.jsx)(`div`,{className:`${LP(e.highlighted)} top-0 bottom-0 w-px`,style:{left:e.x}},t))]}),d.connectors[r]?(0,Y.jsx)(RP,{geometry:d.connectors[r]}):null]},e.nodes.map(e=>e.key).join(`|`))),l?null:(0,Y.jsx)(`div`,{className:`flex justify-center`,style:{width:d.rowsWidth||void 0,marginRight:x||void 0},children:(0,Y.jsxs)(`button`,{type:`button`,className:`mt-3.5 flex h-7 items-center gap-1.5 rounded-lg border border-dashed border-[#ffffff24] px-2.5 hover:bg-[#ffffff08]`,onClick:r,"aria-keyshortcuts":`A`,children:[(0,Y.jsx)(se,{"aria-hidden":!0,className:`size-3 text-[#8b8f98]`}),(0,Y.jsx)(`span`,{className:`whitespace-nowrap text-xs text-[#a7aab2]`,children:`Add stage`}),(0,Y.jsx)(`span`,{className:`rounded-sm border border-[#ffffff1a] bg-[#1a1c21] px-[5px] font-['Geist_Mono',monospace] text-[11px] leading-[1.45455] text-[#8b8f98]`,children:`A`})]})})]})})})})]})}var BP=`flex h-8 shrink-0 items-center rounded-lg border border-[#ffffff1a] bg-[#1a1c21] px-3 font-sans text-[13px] font-medium text-[#ecedee] hover:bg-[#ffffff08] disabled:cursor-default disabled:opacity-50`;function VP(e){return[`flex h-[38px] shrink-0 items-center border-b-2 font-sans text-[13px] leading-normal`,e?`border-b-[#ecedee] font-medium text-[#ecedee]`:`border-b-transparent text-[#a7aab2] hover:text-[#ecedee]`].join(` `)}function HP({pipelineId:e,filePath:t,unsavedCount:n,pills:r,discardDisabled:i,saveDisabled:a,saving:o,workshopHref:s,onDiscard:c,onStartRun:l,onSave:u,onCopyPath:d,activeTab:f,onTabChange:p,runsCount:m,autoValidate:h,onAutoValidateChange:g,onFormat:_,formatDisabled:v,readOnlyNotice:b,saveLabel:x=`Save`,mode:S=`pipeline`}){let C=S===`stage`;return(0,Y.jsxs)(`div`,{className:`flex h-fit w-full shrink-0 flex-col border-b border-b-[#ffffff12]`,children:[b?(0,Y.jsx)(`p`,{className:`border-b border-b-[#ffffff12] bg-[#f5b54414] px-5 py-2 text-[13px] text-[#f5b544]`,children:b}):null,(0,Y.jsxs)(`div`,{className:`flex h-16 w-full items-center gap-4 px-5 py-0`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-[3px]`,children:[(0,Y.jsx)(`div`,{className:`flex items-center gap-1.5`,children:C?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`a`,{href:`#${wc({tab:`stages`})}`,className:`text-xs leading-normal text-[#8b8f98] hover:text-[#ecedee]`,children:`Catalog`}),(0,Y.jsx)(`span`,{className:`text-xs leading-normal text-[#8b8f98]`,children:`/`}),(0,Y.jsx)(`span`,{className:`text-xs leading-normal text-[#a7aab2]`,children:`Stages`}),(0,Y.jsx)(`span`,{className:`text-xs leading-normal text-[#8b8f98]`,children:`/`}),(0,Y.jsx)(`span`,{className:`text-xs leading-normal text-[#a7aab2]`,children:e})]}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`a`,{href:`#/pipelines`,className:`text-xs leading-normal text-[#8b8f98] hover:text-[#ecedee]`,children:`Pipelines`}),(0,Y.jsx)(`span`,{className:`text-xs leading-normal text-[#8b8f98]`,children:`/`}),(0,Y.jsx)(`span`,{className:`text-xs leading-normal text-[#a7aab2]`,children:e})]})}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2.5`,children:[(0,Y.jsx)(`h1`,{className:`shrink-0 text-xl font-semibold leading-[1.2] tracking-[-0.4px] text-[#ecedee]`,children:e}),(0,Y.jsxs)(`button`,{type:`button`,onClick:d,title:t,className:`flex h-[22px] max-w-full min-w-0 shrink items-center gap-[5px] rounded-md border border-[#ffffff12] bg-[#131418] px-[7px] hover:bg-[#ffffff08]`,children:[(0,Y.jsx)(tt,{className:`size-3 shrink-0 text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`truncate font-['Geist_Mono',monospace] text-xs leading-normal text-[#a7aab2]`,children:t})]}),n>0?(0,Y.jsxs)(`span`,{className:`inline-flex shrink-0 items-center gap-1.5`,children:[(0,Y.jsx)(`span`,{className:`size-1.5 rounded-full bg-[#ecedee]`,"aria-hidden":!0}),(0,Y.jsxs)(`span`,{className:`text-xs leading-normal text-[#8b8f98]`,children:[n,` unsaved`]})]}):null]})]}),r?(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1.5`,children:[(0,Y.jsxs)(`span`,{className:`flex h-6 items-center gap-[5px] rounded-full px-2 ${r.strictOk?`bg-[#4cc38a1a] text-[#4cc38a]`:`bg-[#e5484d1a] text-[#e5484d]`}`,children:[r.strictOk?(0,Y.jsx)(G,{className:`size-3 shrink-0`,"aria-hidden":!0}):(0,Y.jsx)(A,{className:`size-3 shrink-0`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`font-sans text-xs font-medium`,children:r.strictLabel})]}),r.warningCount>0?(0,Y.jsxs)(`span`,{className:`flex h-6 items-center gap-[5px] rounded-full bg-[#a7aab21a] px-2 text-[#a7aab2]`,children:[(0,Y.jsx)(je,{className:`size-3 shrink-0`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`font-sans text-xs font-medium`,children:r.warningLabel})]}):null]}):null,(0,Y.jsx)(`div`,{className:`block h-5 w-px shrink-0 bg-[#ffffff12]`,"aria-hidden":!0}),(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[(0,Y.jsx)(`button`,{type:`button`,className:BP,disabled:i,onClick:c,children:`Discard`}),C?null:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`a`,{href:s,className:`${BP} gap-1.5`,children:[(0,Y.jsx)(ve,{className:`size-3.5 shrink-0 text-[#a7aab2]`,"aria-hidden":!0}),`Open in Workshop`]}),(0,Y.jsxs)(`button`,{type:`button`,className:`${BP} gap-1.5`,onClick:l,children:[(0,Y.jsx)(y,{className:`size-3.5 shrink-0 text-[#a7aab2]`,"aria-hidden":!0}),`Start a run`]})]}),(0,Y.jsxs)(`button`,{type:`button`,className:`flex h-8 shrink-0 items-center gap-2 rounded-lg bg-[#ecedee] px-3 font-sans text-[13px] font-medium text-[#0c0d0f] hover:bg-white disabled:cursor-default disabled:opacity-50`,disabled:a,onClick:u,children:[o?`Saving…`:x,(0,Y.jsx)(Nl,{className:`border-[#0c0d0f2e] text-[#4a4d55]`,children:`⌘S`})]})]})]}),(0,Y.jsxs)(`div`,{className:`flex h-[38px] w-full items-end gap-5 px-5 py-0`,role:`tablist`,children:[(0,Y.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":f===`editor`,className:VP(f===`editor`),onClick:()=>p(`editor`),children:`Editor`}),C?null:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":f===`runs`,className:`${VP(f===`runs`)} gap-1.5`,onClick:()=>p(`runs`),children:[`Runs`,m==null?null:(0,Y.jsx)(`span`,{className:`rounded-sm bg-[#1a1c21] px-[5px] font-['Geist_Mono',monospace] text-[11px] leading-[1.45455] text-[#a7aab2]`,children:m})]}),(0,Y.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":f===`history`,className:VP(f===`history`),onClick:()=>p(`history`),children:`History`})]}),(0,Y.jsx)(`div`,{className:`block flex-1`,"aria-hidden":!0}),f===`editor`?(0,Y.jsxs)(`div`,{className:`flex h-[38px] items-center gap-3.5`,children:[(0,Y.jsxs)(`button`,{type:`button`,role:`switch`,"aria-checked":h,"aria-label":`Validate as you type`,className:`flex items-center gap-1.5 hover:text-[#ecedee]`,onClick:()=>g(!h),children:[(0,Y.jsx)(`span`,{className:`flex h-3.5 w-6 items-center rounded-full px-0.5 ${h?`justify-end bg-[#ecedee]`:`justify-start bg-[#1a1c21]`}`,children:(0,Y.jsx)(`span`,{className:`size-2.5 rounded-full ${h?`bg-[#0c0d0f]`:`bg-[#8b8f98]`}`})}),(0,Y.jsx)(`span`,{className:`text-xs leading-normal text-[#a7aab2]`,children:`Validate as you type`})]}),(0,Y.jsxs)(`button`,{type:`button`,className:`flex items-center gap-[5px] hover:text-[#ecedee] disabled:cursor-default disabled:opacity-50`,disabled:v,onClick:_,children:[(0,Y.jsx)(W,{className:`size-[13px] shrink-0 text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`text-xs leading-normal text-[#a7aab2]`,children:`Format`}),(0,Y.jsx)(Nl,{className:`border-[#ffffff1a] bg-[#1a1c21] text-[#8b8f98]`,children:`⇧⌥F`})]})]}):null]})]})}function UP(e){let t=Date.parse(e);if(!Number.isFinite(t))return``;let n=new Date(t);return`${String(n.getHours()).padStart(2,`0`)}:${String(n.getMinutes()).padStart(2,`0`)}`}function WP(e){return e===`succeeded`||e===`failed`||e===`cancelled`||e===`created`||e===`queued`||e===`running`}function GP({events:e,runs:t,loading:n}){let r=(0,J.useMemo)(()=>nP({events:e,runs:t}),[e,t]);return(0,Y.jsxs)(`div`,{role:`tabpanel`,"aria-label":`History`,className:`flex min-h-0 flex-1 flex-col`,children:[(0,Y.jsx)(`p`,{className:`px-5 pt-4 text-[12px] text-[var(--sf-text-3)]`,children:`Not git history`}),r.length===0?(0,Y.jsx)(`p`,{className:`px-5 py-6 text-[13px] text-[var(--sf-text-3)]`,children:n?`Loading runs…`:`No history`}):(0,Y.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto pb-4`,children:r.map(e=>(0,Y.jsxs)(`section`,{children:[(0,Y.jsx)(`h2`,{className:`px-5 pb-1 pt-4 text-[11px] uppercase tracking-[0.04em] text-[var(--sf-text-3)]`,children:e.label}),e.entries.map(e=>{if(e.source===`run`){let t=`#${hc(e.runId)}`;return(0,Y.jsxs)(`a`,{href:t,onClick:t=>{t.preventDefault(),Z(hc(e.runId))},className:`flex h-11 items-center gap-4 border-b border-b-[#ffffff12] px-5 text-[13px] hover:bg-[var(--sf-raised)]`,children:[(0,Y.jsx)(`span`,{className:`w-12 shrink-0 font-['Geist_Mono',monospace] text-[var(--sf-text-3)]`,children:UP(e.at)}),(0,Y.jsx)(`span`,{className:`w-28 shrink-0 truncate font-['Geist_Mono',monospace] text-[var(--sf-text-1)]`,title:e.runId,children:Ss(e.runId)}),(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 text-[var(--sf-text-2)]`,children:`Run finished`}),WP(e.status)?(0,Y.jsx)(Il,{signal:zs(e.status),label:qs(e.status)}):(0,Y.jsx)(`span`,{className:`text-[var(--sf-text-3)]`,children:e.status})]},e.id)}return(0,Y.jsxs)(`div`,{className:`flex h-11 items-center gap-4 border-b border-b-[#ffffff12] px-5 text-[13px]`,children:[(0,Y.jsx)(`span`,{className:`w-12 shrink-0 font-['Geist_Mono',monospace] text-[var(--sf-text-3)]`,children:UP(e.at)}),(0,Y.jsx)(`span`,{className:`shrink-0 text-[var(--sf-text-1)]`,children:e.label}),(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-[var(--sf-text-2)]`,children:e.detail??``}),(0,Y.jsx)(`span`,{className:`shrink-0 rounded-[5px] border border-[#ffffff1a] bg-[var(--sf-raised)] px-1.5 py-0.5 text-[11px] text-[var(--sf-text-2)]`,children:`This session`})]},e.id)})]},e.day))})]})}var KP=`flex h-9 shrink-0 items-center gap-6 border-b border-b-[#ffffff12] px-5 text-[11px] uppercase tracking-[0.04em] text-[var(--sf-text-3)]`;function qP({runs:e,loading:t,error:n}){return(0,Y.jsxs)(`div`,{role:`tabpanel`,"aria-label":`Runs`,className:`flex min-h-0 flex-1 flex-col`,children:[(0,Y.jsxs)(`div`,{className:KP,children:[(0,Y.jsx)(`span`,{className:`w-28`,children:`Run`}),(0,Y.jsx)(`span`,{className:`w-36`,children:`Status`}),(0,Y.jsx)(`span`,{className:`min-w-0 flex-1`,children:`Task`}),(0,Y.jsx)(`span`,{className:`w-28`,children:`Created`}),(0,Y.jsx)(`span`,{className:`w-24 text-right`,children:`Duration`})]}),n?(0,Y.jsx)(`p`,{className:`px-5 py-2 text-[13px] text-[var(--sf-fail)]`,children:n}):null,t?(0,Y.jsx)(`p`,{className:`px-5 py-6 text-[13px] text-[var(--sf-text-3)]`,children:`Loading runs…`}):null,!t&&e.length===0?(0,Y.jsx)(`p`,{className:`px-5 py-6 text-[13px] text-[var(--sf-text-3)]`,children:`No runs`}):null,!t&&e.length>0?(0,Y.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto`,children:e.map(e=>{let t=`#${hc(e.run_id)}`;return(0,Y.jsxs)(`a`,{href:t,onClick:t=>{t.preventDefault(),Z(hc(e.run_id))},className:`flex h-11 items-center gap-6 border-b border-b-[#ffffff12] px-5 text-[13px] hover:bg-[var(--sf-raised)]`,children:[(0,Y.jsx)(`span`,{className:`w-28 truncate font-['Geist_Mono',monospace] text-[var(--sf-text-1)]`,title:e.run_id,children:Ss(e.run_id)}),(0,Y.jsx)(`span`,{className:`flex w-36`,children:(0,Y.jsx)(Il,{signal:Hs(e),label:qs(js(e))})}),(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-['Geist_Mono',monospace] text-[var(--sf-text-2)]`,children:es(e)}),(0,Y.jsx)(`span`,{className:`w-28 truncate text-[var(--sf-text-3)]`,children:Cs(e.created_at)}),(0,Y.jsx)(`span`,{className:`w-24 text-right font-['Geist_Mono',monospace] text-[var(--sf-text-2)]`,children:yl(e.created_at,e.finished_at,e.updated_at)})]},e.run_id)})}):null]})}var JP=t(V(),1);function YP(e){return e.flatMap(e=>e.models)}function XP(e,t){let n=t.toLowerCase().split(/\s+/).filter(Boolean);if(n.length===0)return!0;let r=`${e.id} ${e.name}`.toLowerCase();return n.every(e=>r.includes(e))}function ZP(e,t,n=150){let r=t.trim(),i=n,a=0,o=[];for(let t of e){let e=t.models.filter(e=>XP(e,r));if(a+=e.length,e.length===0||i<=0)continue;let n=e.slice(0,i);i-=n.length,o.push({provider:t,models:n})}let s=YP(e).some(e=>e.id===r);return{groups:o,total:a,shown:o.reduce((e,t)=>e+t.models.length,0),customId:r.length>0&&!/\s/.test(r)&&!s?r:null}}function QP(e,t){return!e||e.providers.length===0||YP(e.providers).some(e=>e.id===t.trim())}function $P(e){let t=e.indexOf(`/`);return t>0?e.slice(t+1):e}function eF(e){return e===void 0||!Number.isFinite(e)||e<=0?null:e>=1e6?`${+(e/1e6).toFixed(1)}M`:`${Math.round(e/1e3)}k`}var tF={status:`loading`,catalog:null,error:null,refreshing:!1},nF=null,rF=new Set;function iF(e){tF=e;for(let e of rF)e()}function aF(e){return nF||(!e&&tF.status===`ready`?Promise.resolve():(e&&iF({...tF,refreshing:!0}),nF=(e?ia():ra()).then(e=>iF({status:`ready`,catalog:e,error:null,refreshing:!1})).catch(e=>{let t=e instanceof Error?e.message:String(e);iF(tF.catalog?{...tF,refreshing:!1,error:t}:{status:`error`,catalog:null,error:t,refreshing:!1})}).finally(()=>{nF=null}),nF))}function oF(){let[e,t]=(0,J.useState)(tF);(0,J.useEffect)(()=>{let e=()=>t(tF);return rF.add(e),e(),aF(!1),()=>{rF.delete(e)}},[]);let n=(0,J.useCallback)(()=>aF(!0),[]);return{...e,refresh:n}}var sF=`font-['Geist_Mono',monospace]`;function cF({value:e,onChange:t,ariaLabel:n,variant:r=`field`,placement:i=`down`,inheritLabel:a,placeholder:o=`Select a model`,disabled:c=!1,defaultModel:l,error:u=!1,flash:d=!1,warnUnknown:f=!0,triggerRef:p,className:m=``}){let{status:h,catalog:g,error:_,refreshing:v,refresh:y}=oF(),[b,x]=(0,J.useState)(!1),[S,C]=(0,J.useState)(``),[w,T]=(0,J.useState)(null),E=(0,J.useRef)(null),D=(0,J.useRef)(null),O=(0,J.useRef)(null),k=(0,J.useId)(),A=g?.providers??[],j=e!==null&&e.trim()!==``?e:null,M=l??g?.default??null,N=j??(a?null:M),P=N===null||QP(g,N),F=(0,J.useMemo)(()=>ZP(A,S),[A,S]),I=h===`ready`&&A.length===0;(0,J.useLayoutEffect)(()=>{if(!b||!E.current)return;let e=E.current.getBoundingClientRect(),t=Math.min(360,window.innerWidth-16),n=Math.min(Math.max(8,e.left),window.innerWidth-t-8),r=window.innerHeight-e.bottom-14,a=e.top-14,o=i===`up`?a>=200||a>r:r<240&&a>r;T({position:`fixed`,left:n,width:t,maxHeight:Math.max(160,Math.min(340,o?a:r)),...o?{bottom:window.innerHeight-e.top+6}:{top:e.bottom+6}})},[b,i]),(0,J.useEffect)(()=>{if(!b)return;C(``),O.current?.focus();let e=e=>{let t=e.target;!E.current?.contains(t)&&!D.current?.contains(t)&&x(!1)},t=e=>{D.current?.contains(e.target)||x(!1)},n=()=>x(!1),r=e=>{e.key===`Escape`&&(e.stopPropagation(),x(!1))};return document.addEventListener(`pointerdown`,e),document.addEventListener(`keydown`,r,!0),window.addEventListener(`scroll`,t,!0),window.addEventListener(`resize`,n),()=>{document.removeEventListener(`pointerdown`,e),document.removeEventListener(`keydown`,r,!0),window.removeEventListener(`scroll`,t,!0),window.removeEventListener(`resize`,n)}},[b]);function L(e){t(e),x(!1)}function R(e){if(e.key!==`Enter`)return;e.preventDefault();let t=F.groups[0]?.models[0];t?L(t.id):F.customId&&L(F.customId)}let z=N??a??o,V=d?`border-[var(--sf-running)] shadow-[0px_0px_0px_3px_rgba(108,166,255,0.18)]`:u?`border-[var(--sf-fail)]`:`border-[var(--sf-hairline-strong)] hover:border-[#ffffff33]`,H=r===`chip`?`flex h-6 min-w-0 items-center gap-[5px] rounded-md border bg-[var(--sf-raised)] px-[7px] disabled:opacity-50 ${V}`:`flex h-[30px] w-full min-w-0 items-center gap-1.5 rounded-lg border bg-[var(--sf-raised)] px-2.5 transition-[border-color,box-shadow] duration-300 disabled:opacity-50 ${V}`;return(0,Y.jsxs)(`div`,{ref:E,className:`relative min-w-0 ${r===`field`?`w-full`:`flex items-center`} ${m}`.trim(),children:[(0,Y.jsxs)(`button`,{ref:p,type:`button`,"aria-haspopup":`listbox`,"aria-expanded":b,"aria-label":n,title:P?N??void 0:`${N} is not listed by a connected provider`,disabled:c,onClick:()=>x(e=>!e),className:H,children:[(0,Y.jsx)(s,{"aria-hidden":!0,className:`size-3 shrink-0 text-[var(--sf-text-3)]`}),(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-left ${sF} text-[11px] leading-normal ${N?`text-[var(--sf-text-1)]`:`text-[var(--sf-text-3)]`}`,children:r===`chip`&&N?$P(N):z}),P?null:(0,Y.jsx)(je,{"aria-label":`Not in connected providers`,className:`size-3 shrink-0 text-[var(--sf-needs)]`}),(0,Y.jsx)(B,{"aria-hidden":!0,className:`size-3 shrink-0 text-[var(--sf-text-3)]`})]}),!P&&f&&r===`field`?(0,Y.jsx)(`p`,{role:`note`,className:`mt-1 text-xs leading-normal text-[var(--sf-needs)]`,children:`Not in connected providers. It is still used as written.`}):null,b&&w?(0,JP.createPortal)((0,Y.jsxs)(`div`,{ref:D,style:w,className:`z-[300] flex flex-col overflow-hidden rounded-[10px] border border-[var(--sf-hairline-strong)] bg-[var(--sf-panel)] shadow-[0px_12px_32px_rgba(0,0,0,0.45)]`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 border-b border-[var(--sf-hairline)] px-3`,children:[(0,Y.jsx)(Oe,{"aria-hidden":!0,className:`size-3 shrink-0 text-[var(--sf-text-3)]`}),(0,Y.jsx)(`input`,{ref:O,role:`combobox`,"aria-expanded":!0,"aria-controls":k,"aria-label":`Search models`,value:S,onChange:e=>C(e.target.value),onKeyDown:R,placeholder:`Search or type provider/model`,className:`h-9 min-w-0 flex-1 bg-transparent ${sF} text-xs text-[var(--sf-text-1)] outline-none placeholder:text-[var(--sf-text-3)]`}),(0,Y.jsx)(`button`,{type:`button`,"aria-label":`Refresh models from providers`,title:`Ask connected providers for their current models`,disabled:v,onClick:()=>void y(),className:`flex size-6 shrink-0 items-center justify-center rounded-md text-[var(--sf-text-3)] hover:bg-[var(--sf-raised)] hover:text-[var(--sf-text-1)] disabled:opacity-50`,children:(0,Y.jsx)(nt,{"aria-hidden":!0,className:`size-3 ${v?`animate-spin`:``}`})})]}),(0,Y.jsxs)(`div`,{id:k,role:`listbox`,"aria-label":n,className:`min-h-0 flex-1 overflow-auto py-1`,children:[a&&S.trim()===``?(0,Y.jsx)(lF,{selected:N===null,onPick:()=>L(null),children:(0,Y.jsx)(`span`,{className:`text-xs text-[var(--sf-text-2)]`,children:a})}):null,h===`loading`?(0,Y.jsx)(dF,{children:`Loading models…`}):null,h===`error`?(0,Y.jsxs)(dF,{tone:`fail`,children:[`Couldn't load models`,_?`: ${_}`:``]}):null,I?(0,Y.jsxs)(dF,{children:[`No connected providers.`,` `,(0,Y.jsx)(`a`,{href:`#/settings`,className:`text-[var(--sf-running)] underline-offset-2 hover:underline`,onClick:()=>x(!1),children:`Connect one in Providers`}),` `,`to choose from its models, or type a provider/model id above.`]}):null,F.groups.map(({provider:e,models:t})=>(0,Y.jsxs)(`div`,{role:`group`,"aria-label":e.name,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 px-3 pb-0.5 pt-2 text-[11px] font-medium uppercase leading-normal tracking-[0.88px] text-[var(--sf-text-3)]`,children:[(0,Y.jsx)(`span`,{children:e.name}),e.source===`fallback`?(0,Y.jsx)(`span`,{title:e.error,className:`normal-case tracking-normal text-[var(--sf-needs)]`,children:`built-in list`}):null]}),t.map(e=>{let t=eF(e.contextWindow);return(0,Y.jsxs)(lF,{selected:e.id===N,onPick:()=>L(e.id),title:e.id,children:[(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate ${sF} text-xs leading-normal text-[var(--sf-text-1)]`,children:$P(e.id)}),e.free?(0,Y.jsx)(uF,{children:`free`}):null,t?(0,Y.jsx)(`span`,{className:`shrink-0 text-[11px] text-[var(--sf-text-3)]`,children:t}):null,e.id===M?(0,Y.jsx)(`span`,{className:`shrink-0 text-[11px] text-[var(--sf-text-3)]`,children:`default`}):null]},e.id)})]},e.id)),F.shown<F.total?(0,Y.jsxs)(dF,{children:[`Showing `,F.shown,` of `,F.total,`. Keep typing to narrow.`]}):null,h===`ready`&&!I&&F.total===0&&!F.customId&&S.trim()!==``?(0,Y.jsx)(dF,{children:`No models match.`}):null,F.customId?(0,Y.jsxs)(lF,{selected:!1,onPick:()=>L(F.customId),children:[(0,Y.jsxs)(`span`,{className:`min-w-0 flex-1 truncate ${sF} text-xs text-[var(--sf-text-1)]`,children:[`Use “`,F.customId,`”`]}),(0,Y.jsx)(`span`,{className:`shrink-0 text-[11px] text-[var(--sf-needs)]`,children:`not in connected providers`})]}):null]})]}),document.body):null]})}function lF({selected:e,onPick:t,title:n,children:r}){return(0,Y.jsxs)(`button`,{type:`button`,role:`option`,"aria-selected":e,title:n,onClick:t,className:`flex h-7 w-full min-w-0 items-center gap-2 px-3 text-left hover:bg-[var(--sf-raised)] ${e?`bg-[var(--sf-raised)]`:``}`,children:[(0,Y.jsx)(`span`,{className:`flex size-3 shrink-0 items-center justify-center`,children:e?(0,Y.jsx)(G,{"aria-hidden":!0,className:`size-3 text-[var(--sf-text-1)]`}):null}),r]})}function uF({children:e}){return(0,Y.jsx)(`span`,{className:`shrink-0 rounded-sm bg-[var(--sf-ok-bg)] px-1 text-[10px] leading-4 text-[var(--sf-ok)]`,children:e})}function dF({children:e,tone:t}){return(0,Y.jsx)(`div`,{className:`px-3 py-1.5 text-xs leading-normal ${t===`fail`?`text-[var(--sf-fail)]`:`text-[var(--sf-text-3)]`}`,children:e})}var fF=`font-['Geist_Mono',monospace]`,pF=`w-fit text-[11px] font-medium uppercase leading-normal tracking-[0.88px] text-[#8b8f98]`,mF=`w-[66px] shrink-0 text-xs leading-normal text-[#a7aab2]`,hF=`flex min-w-0 items-center rounded-lg border bg-[#1a1c21] transition-[border-color,box-shadow] duration-300 focus-within:border-[#ffffff33] focus-within:shadow-[0px_0px_0px_3px_rgba(236,237,238,0.06)]`;function gF({error:e=!1,flash:t=!1,className:n=``}){return`${hF} ${t?`border-[#6ca6ff] shadow-[0px_0px_0px_3px_rgba(108,166,255,0.18)]`:e?`border-[#f2645aa6]`:`border-[#ffffff1a]`} ${n}`.trim()}function _F({children:e,className:t=``}){return(0,Y.jsx)(`div`,{className:`${pF} ${t}`.trim(),children:e})}function vF({findings:e,indent:t=!1}){return e.length===0?null:(0,Y.jsx)(`div`,{className:`flex flex-col gap-1 ${t?`pl-[58px]`:``}`,children:e.map((e,t)=>{let n=e.severity===`error`;return(0,Y.jsxs)(`div`,{className:`flex items-start gap-[5px]`,children:[(0,Y.jsx)(n?St:je,{className:`mt-0.5 size-3 shrink-0 ${n?`text-[#f2645a]`:`text-[#a7aab2]`}`,"aria-hidden":!0}),(0,Y.jsx)(`div`,{className:`min-w-0 text-[11px] leading-[1.45] [overflow-wrap:anywhere] ${n?`text-[#f2645a]`:`text-[#a7aab2]`}`,children:e.message})]},`${e.code}-${t}`)})})}function yF(e){return e.some(e=>e.severity===`error`)}function bF({kind:e}){return e===`unchanged`?null:(0,Y.jsx)(`span`,{className:`inline-flex h-4 shrink-0 items-center rounded-sm border border-[#6ca6ff99] px-[5px] text-[10px] font-medium leading-normal text-[#6ca6ff] ${e===`new`?`bg-[#6ca6ff24] border-solid`:`border-dashed`}`,children:e})}function xF(e){let[t,n]=(0,J.useState)(e),[r,i]=(0,J.useState)(!1);return(0,J.useEffect)(()=>{r||n(e)},[e,r]),{text:t,setText:n,editing:r,setEditing:i}}function SF({value:e,options:t,onChange:n,children:r,ariaLabel:i,error:a=!1,flash:o=!1,selectRef:s,className:c=``}){return(0,Y.jsxs)(`div`,{className:gF({error:a,flash:o,className:`relative h-[30px] gap-1.5 px-2.5 ${c}`}),children:[r,(0,Y.jsx)(B,{className:`size-3 shrink-0 text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsx)(`select`,{ref:s,"aria-label":i,className:`absolute inset-0 size-full cursor-pointer appearance-none rounded-lg opacity-0`,value:e,onChange:e=>n(e.target.value),children:t.map(e=>(0,Y.jsx)(`option`,{value:e.value,children:e.label},e.value))})]})}function CF({on:e,onChange:t,ariaLabel:n,buttonRef:r}){return(0,Y.jsx)(`button`,{ref:r,type:`button`,role:`switch`,"aria-checked":e,"aria-label":n,onClick:()=>t(!e),className:e?`flex h-4 w-[26px] shrink-0 items-center justify-end rounded-full bg-[#ecedee] px-0.5`:`flex h-4 w-[26px] shrink-0 items-center justify-start rounded-full border border-[#ffffff1a] bg-[#2a2d33] px-0.5`,children:(0,Y.jsx)(`span`,{className:e?`block size-3 rounded-full bg-[#0c0d0f]`:`block size-2.5 rounded-full bg-[#8b8f98]`})})}function wF({values:e,onAdd:t,onRemove:n,error:r=!1,errorValues:i=[],lockedLabel:a=null,addLabel:o,flash:s=!1,focusRef:c,suggestions:l}){let[u,d]=(0,J.useState)(!1),[f,p]=(0,J.useState)(``),m=(0,J.useRef)(null),h=(0,J.useId)();(0,J.useEffect)(()=>{u&&m.current?.focus()},[u]);function g(n){let r=[];for(let t of f.split(/[\s,]+/)){let n=t.trim();n&&!e.includes(n)&&!r.includes(n)&&r.push(n)}r.length>0&&t(r),p(``),n||d(!1)}function _(t){t.key===`Enter`?(t.preventDefault(),g(!0)):t.key===`Escape`?(t.preventDefault(),t.stopPropagation(),p(``),d(!1)):t.key===`Backspace`&&f===``&&e.length>0&&n(e[e.length-1])}return(0,Y.jsxs)(`div`,{className:gF({error:r,flash:s,className:`min-h-[30px] flex-1 flex-wrap gap-1.5 px-1.5 py-[4px]`}),children:[a?(0,Y.jsx)(`span`,{className:`inline-flex h-5 min-w-0 items-center truncate rounded-sm border border-dashed border-[#ffffff26] px-1.5 text-[11px] leading-normal text-[#a7aab2] ${fF}`,title:`Defined by a shared pipeline schema`,children:a}):null,e.map(e=>{let t=i.includes(e);return(0,Y.jsxs)(`span`,{className:t?`group inline-flex h-5 min-w-0 items-center gap-1 rounded-sm bg-[#f2645a1a] px-1.5 text-[11px] leading-normal text-[#f2645a] ${fF}`:`group inline-flex h-5 min-w-0 items-center gap-1 rounded-sm border border-[#ffffff1a] bg-[#131418] px-1.5 text-[11px] leading-normal text-[#ecedee] ${fF}`,children:[(0,Y.jsx)(`span`,{className:`truncate`,children:e}),(0,Y.jsx)(`button`,{type:`button`,"aria-label":`Remove ${e}`,onClick:()=>n(e),className:`-mr-0.5 hidden size-3 items-center justify-center rounded-sm text-[#8b8f98] hover:text-[#ecedee] group-hover:flex`,children:(0,Y.jsx)(St,{className:`size-2.5`,"aria-hidden":!0})})]},e)}),u?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`input`,{ref:m,value:f,"aria-label":o,list:l?h:void 0,onChange:e=>p(e.target.value),onKeyDown:_,onBlur:()=>g(!1),placeholder:`name`,className:`h-5 w-[96px] min-w-0 bg-transparent text-[11px] leading-normal text-[#ecedee] outline-none placeholder:text-[#8b8f98] ${fF}`}),l?(0,Y.jsx)(`datalist`,{id:h,children:l.filter(t=>!e.includes(t)).map(e=>(0,Y.jsx)(`option`,{value:e},e))}):null]}):null,(0,Y.jsx)(`span`,{className:`block flex-1`}),a?null:(0,Y.jsx)(`button`,{ref:c,type:`button`,"aria-label":o,onClick:()=>d(!0),className:`flex size-5 shrink-0 items-center justify-center rounded-sm text-[#8b8f98] hover:bg-[#ffffff0d] hover:text-[#ecedee]`,children:(0,Y.jsx)(se,{className:`size-3`,"aria-hidden":!0})})]})}var TF=[{value:`string`,label:`string`},{value:`number`,label:`number`},{value:`boolean`,label:`boolean`},{value:`string[]`,label:`list of strings`},{value:`object`,label:`object`}];function EF(e,t){return t?`Uses the shared schema ${t}.`:e===`input`?`Fields this stage needs before it starts. They must already be on the previous stage’s output.`:`Fields this stage must include when it finishes.`}function DF({value:e,extra:t,onChange:n,ariaLabel:r}){let i=t?[t,...TF]:TF,a=i.find(t=>t.value===e)??i[0];return(0,Y.jsx)(SF,{value:a.value,options:i,ariaLabel:r,onChange:e=>{wj.includes(e)&&n(e)},className:`h-[30px] w-full`,children:(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-xs text-[#ecedee] ${fF}`,children:a.label})})}function OF({on:e,onChange:t}){return(0,Y.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Y.jsx)(`span`,{className:`text-[11px] leading-normal text-[#a7aab2]`,children:`required`}),(0,Y.jsx)(CF,{on:e,onChange:t,ariaLabel:`Required`})]})}function kF({side:e,fields:t,schemaName:n,error:r=!1,errorValues:i=[],flash:a=!1,onAdd:o,onRename:s,onType:c,onRequired:l,onRemove:u}){let[d,f]=(0,J.useState)(null),[p,m]=(0,J.useState)(null),h=(0,J.useRef)(null),g=t.map(e=>e.name).join(`\0`);(0,J.useEffect)(()=>{d&&d!==`__none__`&&!t.some(e=>e.name===d)&&f(null)},[g,d,t]);let _=p!==null;(0,J.useEffect)(()=>{_&&h.current?.focus()},[_]);function v(e){if(!e)return;let n=e.name.trim();if(!n||t.some(e=>e.name===n)){n||m(null);return}o(e.name.trim()===n?{...e,name:n}:e),m(null),f(n)}let y=t.find(e=>e.name===d)??null;return(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1.5`,children:[(0,Y.jsxs)(`div`,{className:gF({error:r,flash:a,className:`min-h-[30px] flex-wrap gap-1.5 px-1.5 py-[4px]`}),children:[n?(0,Y.jsx)(`span`,{className:`inline-flex h-5 min-w-0 items-center truncate rounded-sm border border-dashed border-[#ffffff26] px-1.5 text-[11px] leading-normal text-[#a7aab2] ${fF}`,title:`Defined by a shared pipeline schema`,children:n}):null,t.map(e=>{let t=i.includes(e.name),n=d===e.name;return(0,Y.jsxs)(`span`,{className:t?`group inline-flex h-5 min-w-0 items-center gap-1 rounded-sm bg-[#f2645a1a] px-1.5 text-[11px] leading-normal text-[#f2645a] ${fF}`:n?`group inline-flex h-5 min-w-0 items-center gap-1 rounded-sm border border-[#6ca6ff73] bg-[#6ca6ff1a] px-1.5 text-[11px] leading-normal text-[#6ca6ff] ${fF}`:`group inline-flex h-5 min-w-0 items-center gap-1 rounded-sm border border-[#ffffff1a] bg-[#131418] px-1.5 text-[11px] leading-normal text-[#ecedee] ${fF}`,children:[(0,Y.jsx)(`button`,{type:`button`,"aria-pressed":n,"aria-label":`Edit ${e.name}`,onClick:()=>{m(null),f(n?null:e.name)},className:`min-w-0 truncate`,children:Vj(e)}),(0,Y.jsx)(`button`,{type:`button`,"aria-label":`Remove ${e.name}`,onClick:()=>{d===e.name&&f(null),u(e.name)},className:`-mr-0.5 hidden size-3 shrink-0 items-center justify-center rounded-sm text-current hover:opacity-100 group-hover:flex`,children:(0,Y.jsx)(St,{className:`size-2.5`,"aria-hidden":!0})})]},e.name)}),(0,Y.jsx)(`span`,{className:`block flex-1`}),n?null:(0,Y.jsx)(`button`,{type:`button`,"aria-label":`Add ${e===`input`?`input`:`output`} field`,onClick:()=>{f(null),m({name:``,type:`string`,required:!0})},className:`flex size-5 shrink-0 items-center justify-center rounded-sm text-[#8b8f98] hover:bg-[#ffffff0d] hover:text-[#ecedee]`,children:(0,Y.jsx)(se,{className:`size-3`,"aria-hidden":!0})})]}),p?(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1.5 rounded-lg border border-[#ffffff1a] bg-[#1a1c21] p-2`,onBlur:e=>{e.currentTarget.contains(e.relatedTarget)||v(p)},children:[(0,Y.jsx)(`input`,{ref:h,value:p.name,"aria-label":`Field name`,placeholder:`story_id`,onChange:e=>m({...p,name:e.target.value}),onKeyDown:e=>{e.key===`Enter`?(e.preventDefault(),v(p)):e.key===`Escape`&&(e.preventDefault(),m(null))},className:`h-[30px] rounded-lg border border-[#ffffff1a] bg-[#131418] px-2.5 text-xs text-[#ecedee] outline-none placeholder:text-[#8b8f98] focus:border-[#ffffff33] ${fF}`}),(0,Y.jsx)(DF,{value:p.type,ariaLabel:`Field type`,onChange:e=>m({...p,type:e})}),(0,Y.jsx)(OF,{on:p.required,onChange:e=>m({...p,required:e})})]}):null,y?(0,Y.jsx)(AF,{field:y,onRename:e=>{f(e),s(y.name,e)},onType:e=>c(y.name,e),onRequired:e=>l(y.name,e)}):null,(0,Y.jsx)(`p`,{className:`text-[11px] leading-[1.4] text-[#8b8f98]`,children:EF(e,n)})]})}function AF({field:e,onRename:t,onType:n,onRequired:r}){let i=xF(e.name);function a(){let n=i.text.trim();if(i.setEditing(!1),!n||n===e.name){i.setText(e.name);return}t(n)}return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1.5 rounded-lg border border-[#ffffff1a] bg-[#1a1c21] p-2`,children:[(0,Y.jsx)(`input`,{value:i.text,"aria-label":`Name for ${e.name}`,onFocus:()=>i.setEditing(!0),onChange:e=>i.setText(e.target.value),onBlur:a,onKeyDown:t=>{t.key===`Enter`?(t.preventDefault(),t.target.blur()):t.key===`Escape`&&(t.preventDefault(),i.setText(e.name),i.setEditing(!1))},className:`h-[30px] rounded-lg border border-[#ffffff1a] bg-[#131418] px-2.5 text-xs text-[#ecedee] outline-none focus:border-[#ffffff33] ${fF}`}),(0,Y.jsx)(DF,{value:e.type===`other`?`other`:e.type,extra:e.type===`other`?{value:`other`,label:`custom`}:void 0,ariaLabel:`Type for ${e.name}`,onChange:n}),(0,Y.jsx)(OF,{on:e.required,onChange:r})]})}function jF({stageId:e,value:t,onChange:n,onClose:r}){let i=(0,J.useRef)(null),a=yM(t);return(0,J.useEffect)(()=>{let e=i.current;e&&(e.focus(),e.setSelectionRange(e.value.length,e.value.length))},[]),(0,JP.createPortal)((0,Y.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-[#040506a8] [font-family:Geist,_sans-serif]`,onMouseDown:e=>{e.target===e.currentTarget&&r()},onKeyDown:e=>{e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),r())},children:(0,Y.jsxs)(`div`,{role:`dialog`,"aria-modal":`true`,"aria-label":`system_prompt for ${e}`,className:`flex h-[min(640px,calc(100vh-96px))] w-[min(760px,calc(100vw-48px))] flex-col overflow-clip rounded-[14px] border border-[#ffffff1a] bg-[#131418] shadow-[0px_32px_96px_rgba(0,0,0,0.65),0px_8px_24px_rgba(0,0,0,0.45)]`,children:[(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-center gap-3 px-5 pb-3.5 pt-[18px]`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-0.5`,children:[(0,Y.jsx)(`div`,{className:`text-[15px] font-semibold tracking-[-0.15px] text-[#ecedee] ${fF}`,children:`system_prompt`}),(0,Y.jsx)(`div`,{className:`truncate text-xs text-[#a7aab2] ${fF}`,children:e})]}),(0,Y.jsx)(Nl,{children:`esc`}),(0,Y.jsx)(`button`,{type:`button`,"aria-label":`Close`,onClick:r,className:`flex size-7 items-center justify-center rounded-lg text-[#8b8f98] hover:bg-[#ffffff0d] hover:text-[#ecedee]`,children:(0,Y.jsx)(St,{className:`size-4`,"aria-hidden":!0})})]}),(0,Y.jsx)(`div`,{className:`flex min-h-0 flex-1 px-5`,children:(0,Y.jsx)(`textarea`,{ref:i,value:t,onChange:e=>n(e.target.value),spellCheck:!1,placeholder:`Describe what this stage does, what it reads, and what it must emit.`,className:`min-h-0 flex-1 resize-none rounded-lg border border-[#ffffff1a] bg-[#1a1c21] px-3 py-2.5 text-[13px] leading-[1.55] text-[#ecedee] outline-none transition-[border-color,box-shadow] placeholder:text-[#8b8f98] focus:border-[#ffffff33] focus:shadow-[0px_0px_0px_3px_rgba(236,237,238,0.06)]`})}),(0,Y.jsxs)(`div`,{className:`mt-3.5 flex shrink-0 items-center gap-2 border-t border-t-[#ffffff12] bg-[#101114] px-5 py-3.5`,children:[(0,Y.jsxs)(`div`,{className:`flex-1 text-[11px] text-[#8b8f98] ${fF}`,children:[a.lines,` lines · `,a.chars,` chars`]}),(0,Y.jsx)(`button`,{type:`button`,onClick:r,className:`flex h-8 items-center gap-2 rounded-lg bg-[#ecedee] px-3 text-[13px] font-medium text-[#0c0d0f]`,children:`Done`})]})]})}),document.body)}var MF={toLabel:`To`,toPlaceholder:``,multiple:!1,cc:!1,template:!1};function NF(e,t){let n=EO(t,e??``)?.recipient;return n?{toLabel:n.label,toPlaceholder:n.placeholder,multiple:n.multiple,cc:n.cc,template:n.template}:MF}function PF(e){return e.split(/[,\n]/).map(e=>e.trim()).filter(Boolean)}function FF(e){return e===void 0?``:Array.isArray(e)?e.join(`, `):e}function IF(e,t){if(!t)return e.trim();let n=PF(e);return n.length===1?n[0]:n}function LF(e){return{connection:(e.find(e=>e.enabled)??e[0])?.id??``,to:``,operations:[`send`]}}function RF(e){return e.alias??e.connection}function zF(e){let t=new Set,n=new Set;for(let r of e){let e=RF(r);e&&(t.has(e)&&n.add(e),t.add(e))}return[...n]}function BF(e){return!!e.connection&&(Array.isArray(e.to)?e.to.length>0:e.to.trim().length>0)}function VF(e){return{to:e.to,...e.cc&&e.cc.length>0?{cc:e.cc}:{},...e.template?{template:e.template}:{}}}function HF(e){return{name:typeof e?.name==`string`?e.name:``,languageCode:typeof e?.languageCode==`string`?e.languageCode:``,bodyParams:Array.isArray(e?.bodyParams)?e.bodyParams.map(String).join(`, `):``}}function UF(e){if(!e.name.trim()&&!e.languageCode.trim()&&!e.bodyParams.trim())return;let t=e.bodyParams.split(`,`).map(e=>e.trim()).filter(Boolean);return{name:e.name.trim(),languageCode:e.languageCode.trim(),...t.length>0?{bodyParams:t}:{}}}function WF(e,t){return t?e?e.enabled?e.health?e.health.state===`ok`?{tone:`ok`,text:`Connected`}:{tone:`warn`,text:e.health.error?.code===`CHANNEL_SECRET_UNAVAILABLE`?`Not connected`:`Connection broken`}:{tone:`muted`,text:`Not checked yet`}:{tone:`warn`,text:`Disabled in connections.yaml`}:{tone:`warn`,text:`"${t}" is not defined in connections`}:{tone:`warn`,text:`Choose a connection`}}var GF=`w-fit text-[11px] font-medium uppercase leading-normal tracking-[0.88px] text-[#8b8f98]`,KF=`font-['Geist_Mono',monospace]`,qF=`h-[30px] w-full min-w-0 rounded-lg border border-[#ffffff1a] bg-[#1a1c21] px-2.5 text-xs text-[#ecedee] outline-none placeholder:text-[#8b8f98] hover:bg-[#ffffff08] focus:border-[#ecedee73] ${KF}`,JF=`h-[30px] w-full min-w-0 appearance-none rounded-lg border border-[#ffffff1a] bg-[#1a1c21] pl-2.5 pr-7 text-xs text-[#ecedee] outline-none hover:bg-[#ffffff08] ${KF}`;function YF(e,t){let[n,r]=(0,J.useState)({state:`idle`}),i=JSON.stringify([e.connection,VF(e)]);return(0,J.useEffect)(()=>{if(!t||!BF(e)){r({state:`idle`});return}let n=!1;r({state:`checking`});let i=window.setTimeout(()=>{qi(e.connection,VF(e)).then(e=>{n||r({state:e.ok?`ok`:`bad`})},()=>{n||r({state:`unknown`})})},400);return()=>{n=!0,window.clearTimeout(i)}},[i,t]),n}function XF({entry:e,connections:t,meta:n,duplicate:r,showName:i,onChange:a,onRemove:o}){let s=t.find(t=>t.id===e.connection),c=NF(s?.provider,n),l=WF(s,e.connection),u=YF(e,!!s),d=HF(e.template),f=l.tone===`ok`?`text-[#4cc38a]`:l.tone===`warn`?`text-[#f5b544]`:`text-[#8b8f98]`,p=s||!e.connection?t:[{id:e.connection},...t],m=t=>a({...e,...t}),h=t=>{let n=UF({...d,...t}),{template:r,...i}=e;a(n?{...i,template:n}:i)};return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2 rounded-lg border border-[#ffffff12] bg-[#16171b] p-2.5`,"data-testid":`stage-channel`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsxs)(`div`,{className:`relative flex h-[30px] min-w-0 flex-1 items-center`,children:[(0,Y.jsxs)(`select`,{"aria-label":`connection`,value:e.connection,onChange:e=>m({connection:e.target.value}),className:JF,children:[e.connection?null:(0,Y.jsx)(`option`,{value:``,children:`Choose a connection…`}),p.map(t=>(0,Y.jsxs)(`option`,{value:t.id,children:[t.displayName?`${DO(n,t.provider)} · ${t.id}`:`${e.connection} (missing)`,t.enabled===!1?` (disabled)`:``]},t.id))]}),(0,Y.jsx)(B,{className:`pointer-events-none absolute right-2.5 size-[13px] text-[#8b8f98]`,"aria-hidden":!0})]}),(0,Y.jsx)(`button`,{type:`button`,onClick:o,"aria-label":`Remove channel`,className:`flex size-[26px] shrink-0 items-center justify-center rounded-md text-[#8b8f98] hover:bg-[#1a1c21] hover:text-[#ecedee]`,children:(0,Y.jsx)(St,{className:`size-3.5`,"aria-hidden":!0})})]}),(0,Y.jsx)(`div`,{className:`text-[11px] leading-normal ${f}`,children:l.text}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Y.jsx)(`div`,{className:GF,children:c.toLabel}),(0,Y.jsx)(`input`,{"aria-label":c.toLabel,value:FF(e.to),placeholder:c.toPlaceholder,spellCheck:!1,onChange:e=>m({to:IF(e.target.value,c.multiple)}),className:qF}),u.state===`bad`?(0,Y.jsxs)(`div`,{className:`flex items-center gap-1 text-[11px] text-[#f5b544]`,role:`alert`,children:[(0,Y.jsx)(je,{className:`size-3 shrink-0`,"aria-hidden":!0}),`Not a valid `,s?DO(n,s.provider):``,` recipient`]}):null,u.state===`unknown`?(0,Y.jsx)(`div`,{className:`text-[11px] text-[#8b8f98]`,children:`Could not check this recipient`}):null]}),c.cc?(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Y.jsx)(`div`,{className:GF,children:`Cc (optional)`}),(0,Y.jsx)(`input`,{"aria-label":`Cc`,value:(e.cc??[]).join(`, `),spellCheck:!1,onChange:t=>{let n=PF(t.target.value),{cc:r,...i}=e;a(n.length?{...i,cc:n}:i)},className:qF})]}):null,c.template?(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Y.jsx)(`div`,{className:GF,children:`Template (needed outside the 24-hour window)`}),(0,Y.jsxs)(`div`,{className:`flex gap-1.5`,children:[(0,Y.jsx)(`input`,{"aria-label":`Template name`,value:d.name,placeholder:`order_update`,spellCheck:!1,onChange:e=>h({name:e.target.value}),className:qF}),(0,Y.jsx)(`input`,{"aria-label":`Template language`,value:d.languageCode,placeholder:`en_US`,spellCheck:!1,onChange:e=>h({languageCode:e.target.value}),className:`${qF} max-w-[84px]`})]}),(0,Y.jsx)(`input`,{"aria-label":`Template parameters`,value:d.bodyParams,placeholder:`{{message}}`,spellCheck:!1,onChange:e=>h({bodyParams:e.target.value}),className:qF})]}):null,i?(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Y.jsxs)(`div`,{className:GF,children:[`Name `,r?`(must be unique)`:`(optional)`]}),(0,Y.jsx)(`input`,{"aria-label":`Channel name`,value:e.alias??``,placeholder:e.connection||`connection id`,spellCheck:!1,onChange:t=>{let{alias:n,...r}=e,i=t.target.value.trim();a(i?{...r,alias:i}:r)},className:`${qF} ${r?`border-[#f5b544]`:``}`}),(0,Y.jsxs)(`div`,{className:`text-[11px] leading-[1.4] text-[#8b8f98]`,children:[`The agent calls send_message with this name: `,RF(e)||`…`]})]}):null]})}function ZF({entries:e,connections:t,meta:n=null,loadFailed:r,limit:i=1,onChange:a}){let o=new Set(zF(e)),s=e.length>=i,c=e.length>i;return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1.5`,"data-testid":`stage-channels`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center`,children:[(0,Y.jsx)(`div`,{className:`${GF} flex-1`,children:`channels`}),(0,Y.jsx)(`div`,{className:`text-[11px] leading-normal text-[#8b8f98]`,children:`send only`})]}),r?(0,Y.jsx)(`div`,{className:`text-[11px] text-[#f5b544]`,children:`Could not load connections`}):null,e.length===0?(0,Y.jsxs)(`div`,{className:`text-[11px] leading-[1.45] text-[#8b8f98]`,children:[`No channels. This stage cannot send messages`,t.length===0?`, and no connections exist yet`:``,`.`]}):null,e.map((r,s)=>(0,Y.jsx)(XF,{entry:r,connections:t,meta:n,duplicate:o.has(RF(r)),showName:i>1,onChange:t=>a(e.map((e,n)=>n===s?t:e)),onRemove:()=>a(e.filter((e,t)=>t!==s))},s)),c?(0,Y.jsxs)(`div`,{className:`flex items-start gap-1 text-[11px] leading-[1.4] text-[#f5b544]`,role:`alert`,children:[(0,Y.jsx)(je,{className:`mt-0.5 size-3 shrink-0`,"aria-hidden":!0}),`This stage lists `,e.length,` channels but can use `,i,`. Remove the extra ones or the run will not start.`]}):null,s?(0,Y.jsxs)(`div`,{className:`text-[11px] leading-[1.45] text-[#8b8f98]`,"data-testid":`channel-limit-note`,children:[i===1?`A stage can use one channel for now.`:`A stage can use up to ${i} channels.`,` To use another, split the work into a separate stage.`]}):(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>a([...e,LF(t)]),disabled:t.length===0,className:`flex h-7 w-fit items-center gap-1.5 rounded-md border border-[#ffffff1a] px-2 text-xs text-[#a7aab2] hover:bg-[#1a1c21] disabled:opacity-50`,title:t.length===0?`Connect a provider on the Connections page first`:void 0,children:[(0,Y.jsx)(se,{className:`size-3`,"aria-hidden":!0}),`Add channel`]})]})}function QF(e,t){let n=t.length>0?t:void 0;return{...e,pipeline:{...e.pipeline,memories:n}}}function $F(e){let t=e.pipeline.memories;return Array.isArray(t)?t.filter(e=>typeof e==`string`):[]}function eI({draft:e,onDraftChange:t}){let[n,r]=(0,J.useState)(null),[i,a]=(0,J.useState)(!1);(0,J.useEffect)(()=>{let e=!0;return Oo().then(t=>{e&&r(t.memories)},()=>{e&&a(!0)}),()=>{e=!1}},[]);let o=$F(e);function s(n){t(QF(e,o.includes(n)?o.filter(e=>e!==n):[...o,n]))}return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2 px-4 py-3`,"data-testid":`pipeline-memories`,children:[(0,Y.jsx)(`span`,{className:`text-[11px] font-medium uppercase tracking-[0.88px] text-[#8b8f98]`,children:`Memories`}),(0,Y.jsx)(`p`,{className:`text-xs leading-[1.45] text-[#8b8f98]`,children:`Every stage in this pipeline can read and replace these pages.`}),i?(0,Y.jsx)(`p`,{className:`text-xs text-[#e8a0a0]`,children:`Memories could not be loaded.`}):null,n&&n.length===0?(0,Y.jsxs)(`p`,{className:`text-xs text-[#8b8f98]`,children:[`No memories yet.`,` `,(0,Y.jsx)(`a`,{href:`#/memories`,className:`text-[#ecedee] underline-offset-2 hover:underline`,children:`Create one from Memories`}),`.`]}):null,(0,Y.jsx)(`ul`,{className:`flex flex-col gap-1`,children:(n??[]).map(e=>(0,Y.jsx)(`li`,{children:(0,Y.jsxs)(`label`,{className:`flex items-start gap-2 text-xs text-[#ecedee]`,children:[(0,Y.jsx)(`input`,{type:`checkbox`,checked:o.includes(e.id),onChange:()=>s(e.id)}),(0,Y.jsxs)(`span`,{children:[(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace]`,children:e.id}),(0,Y.jsx)(`span`,{className:`mt-0.5 block text-[#8b8f98]`,children:e.description})]})]})},e.id))})]})}var tI=[`confirm`,`artifact_backed`,`free_text`,`multi_question`],nI=/^[a-z0-9][a-z0-9_-]*$/i;function rI(e){return e.trim().replace(/\\/g,`/`).replace(/^\.\//,``)}function iI(e,t){return(e?.trim().replace(/\\/g,`/`).replace(/\/$/,``)??``)===(t?.trim().replace(/\\/g,`/`).replace(/\/$/,``)??``)}function aI(e,t){let n=rI(e),r=rI(t);return!n||!r?!1:n===r||n.endsWith(`/${r}`)||r.endsWith(`/${n}`)}function oI(e){return typeof e==`string`&&e.trim()?e.trim():null}function sI(e,t){return iI(e.project_root,t.projectRoot)?e.stages.some(e=>e.id===t.id||t.path!=null&&e.uses_path!=null&&aI(e.uses_path,t.path)):!1}function cI(e){return`${Math.ceil(e.length/4).toLocaleString(`en-US`)} tok`}function lI(e,t,n){if(!e)return[];let r=[];for(let i of e)(n===void 0||i.id!==n)&&sI(i,t)&&(r.includes(i.id)||r.push(i.id));return r}function uI(e){return e.length===0?null:`Edits here also change ${dI(e)}.`}function dI(e){if(e.length===1)return e[0];if(e.length===2)return`${e[0]} and ${e[1]}`;if(e.length===3)return`${e[0]}, ${e[1]} and ${e[2]}`;let t=e.length-3;return`${e[0]}, ${e[1]}, ${e[2]} and ${t} more`}function fI(e){return`Used by ${e} ${e===1?`pipeline`:`pipelines`}`}function pI(e,t){let n=new Set(e.filter(e=>e.length>0));n.has(t)?n.delete(t):n.add(t);let r=tI.filter(e=>n.has(e)),i=[];for(let t of e)!t||i.includes(t)||tI.includes(t)||n.has(t)&&i.push(t);return[...r,...i]}function mI(e,t,n){let r=Zj(e,t);return r?_M(e,t,pI(r.gateKinds,n)):e}function hI(e,t){return oI(wA(e,t)?.skill)??``}function gI(e,t,n){return tM(e,t,n)}function _I(e){if(e.outputsRef)return e.outputsRef;let t=e.outputFields.length;return t===0?`none`:`inline · ${t} ${t===1?`field`:`fields`}`}function vI(e){return nI.test(e)}function yI(e){let t=e.trim();if(t===`payload`||t===`payload_schema`)return`payload`;let n=IM(t);return n===`id`||n===`model`||n===`system_prompt`?n:n===`ask_operator`?`gate_kinds`:n===`io.inputs`||n===`io.outputs`?`payload`:`header`}function bI(e,t){return tI.filter(n=>e.some(e=>xI(e,t)&&e.message.includes(n)))}function xI(e,t){return e.stageId?e.stageId===t:e.message.includes(`"${t}"`)}var SI=`w-fit text-[11px] font-medium uppercase leading-normal tracking-[0.88px] text-[#8b8f98]`,CI=`font-['Geist_Mono',monospace]`,wI=`h-full w-full min-w-0 appearance-none rounded-lg border border-[#ffffff1a] bg-[#1a1c21] py-0 pl-2.5 pr-7 text-xs text-[#ecedee] outline-none hover:bg-[#ffffff08]`;function TI({draft:e,selectedStageId:t,findings:n,defaultModel:r,skills:i=[],pipelines:a,currentPipelineId:o,projectRoot:s,workshopHref:c,onDraftChange:l,onRenameStage:u,onOpenYaml:d=()=>{},focusRequest:f=null,width:p=300}){let m=t?Zj(e,t):null,h=`${t??``}\0${m?.id??``}`,[_,v]=(0,J.useState)(null),[y,b]=(0,J.useState)(null),x=_&&_.key===h?_.text:m?.id??``,S=y?.stageId===t&&y.open,C=(0,J.useRef)({}),w=(0,J.useRef)(null),[T,E]=(0,J.useState)([]),[D,O]=(0,J.useState)(!1),[k,A]=(0,J.useState)(1),{meta:j}=TO();(0,J.useEffect)(()=>{let e=!1;return zi().then(t=>{e||(E(t.connections),O(!!t.error),A(t.limits.channelsPerStage))},()=>{e||O(!0)}),()=>{e=!0}},[]);function M(e){return t=>{t?C.current[e]=t:delete C.current[e]}}if((0,J.useLayoutEffect)(()=>{if(!f||!m||w.current===f.nonce)return;let e=C.current[yI(f.field)];e&&(w.current=f.nonce,e.scrollIntoView({block:`nearest`}),e.focus({preventScroll:!0}))},[f?.field,f?.nonce,m?.id,t]),!t||!m)return(0,Y.jsxs)(`aside`,{"aria-label":`Stage inspector`,className:`flex min-h-0 shrink-0 flex-col bg-[#131418] [font-family:Geist,_sans-serif]`,style:{width:p},children:[(0,Y.jsx)(eI,{draft:e,onDraftChange:l}),(0,Y.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center gap-2 px-6 text-center`,children:[(0,Y.jsx)(`p`,{className:`text-[13px] font-medium text-[#ecedee]`,children:`Click a stage on the graph`}),(0,Y.jsx)(`p`,{className:`text-xs leading-[1.45] text-[#8b8f98]`,children:`Prompt, io, verify, on_verify_fail, and HITL settings show here.`})]})]});let N={id:m.id,path:m.path,projectRoot:s},P=GN(a,N),F=lI(a,N,o??e.pipeline.id),I=P!=null&&P>=2?uI(F):null,L=hI(e,m.id),R=EI(i,L),z=Qj(e,m,r),V=new Set(bI(n,m.id)),H=_I({outputsRef:m.outputsRef,outputFields:m.outputFields}),ee=m.systemPrompt;function te(){let e=x.trim();if(e===m.id){v({key:h,text:m.id});return}if(!vI(e)){v({key:h,text:m.id});return}u(m.id,e)}return(0,Y.jsxs)(`aside`,{"aria-label":`Stage inspector`,className:`flex min-h-0 shrink-0 flex-col overflow-hidden bg-[#131418] [font-family:Geist,_sans-serif]`,style:{width:p},children:[(0,Y.jsx)(eI,{draft:e,onDraftChange:l}),(0,Y.jsxs)(`div`,{ref:M(`header`),tabIndex:-1,className:`flex w-full shrink-0 flex-col gap-2 border-b border-b-[#ffffff12] px-3.5 py-3 outline-none`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(`div`,{className:`${SI} flex-1`,children:`Stage`}),c?(0,Y.jsx)(`a`,{href:c,"aria-label":`Open stage in Workshop`,className:`text-[#8b8f98] hover:text-[#ecedee]`,children:(0,Y.jsx)(g,{className:`size-[13px]`,"aria-hidden":!0})}):null]}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-baseline gap-2`,children:[(0,Y.jsx)(`div`,{className:`shrink-0 text-[15px] font-semibold text-[#ecedee] ${CI}`,children:m.id}),(0,Y.jsx)(`div`,{className:`min-w-0 truncate text-[11px] text-[#8b8f98] ${CI}`,title:m.inline?`inline`:m.path??`inline`,children:m.inline?`inline`:m.path})]}),P!=null&&P>=1?(0,Y.jsxs)(`div`,{className:`flex h-[22px] w-fit items-center gap-[5px] rounded-md border border-[#ffffff1a] bg-[#1a1c21] px-[7px]`,children:[(0,Y.jsx)(et,{className:`size-3 text-[#a7aab2]`,"aria-hidden":!0}),(0,Y.jsx)(`div`,{className:`text-xs text-[#ecedee]`,children:fI(P)})]}):null]}),(0,Y.jsxs)(`div`,{className:`flex min-h-0 w-full flex-1 flex-col gap-3.5 overflow-y-auto p-3.5`,children:[(0,Y.jsxs)(`div`,{className:`flex gap-2.5`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1.5`,children:[(0,Y.jsx)(`div`,{className:SI,children:`id`}),(0,Y.jsx)(`input`,{ref:M(`id`),"aria-label":`id`,value:x,spellCheck:!1,onChange:e=>v({key:h,text:e.target.value}),onBlur:te,onKeyDown:e=>{e.key===`Enter`?(e.preventDefault(),te()):e.key===`Escape`&&(e.preventDefault(),v({key:h,text:m.id}))},className:`h-[30px] w-full min-w-0 rounded-lg border border-[#ffffff1a] bg-[#1a1c21] px-2.5 text-xs text-[#ecedee] outline-none hover:bg-[#ffffff08] ${CI}`})]}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1.5`,children:[(0,Y.jsx)(`div`,{className:SI,children:`skill`}),(0,Y.jsxs)(`div`,{className:`relative flex h-[30px] items-center`,children:[(0,Y.jsxs)(`select`,{"aria-label":`skill`,value:L,onChange:t=>l(gI(e,m.id,t.target.value)),className:`${wI} ${CI}`,children:[(0,Y.jsx)(`option`,{value:``,children:`— none —`}),R.map(e=>(0,Y.jsx)(`option`,{value:e,children:e},e))]}),(0,Y.jsx)(B,{className:`pointer-events-none absolute right-2.5 size-[13px] text-[#8b8f98]`,"aria-hidden":!0})]})]})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center`,children:[(0,Y.jsx)(`div`,{className:`${SI} flex-1`,children:`model`}),m.model?null:(0,Y.jsx)(`div`,{className:`text-[11px] leading-normal text-[#8b8f98]`,children:`from defaults`})]}),(0,Y.jsx)(cF,{triggerRef:M(`model`),ariaLabel:`model`,value:m.model??null,inheritLabel:z?`Inherit (${z})`:`Inherit`,defaultModel:r,onChange:t=>l($j(e,m.id,t))})]}),(0,Y.jsx)(ZF,{entries:nM(e,m.id),connections:T,meta:j,loadFailed:D,limit:k,onChange:t=>l(rM(e,m.id,t))}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center`,children:[(0,Y.jsx)(`div`,{className:`${SI} flex-1`,children:`system_prompt`}),(0,Y.jsx)(`div`,{className:`text-[11px] leading-normal text-[#8b8f98] ${CI}`,children:cI(ee)})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-0.5 rounded-lg border border-[#ffffff1a] bg-[#1a1c21] px-2.5 py-2`,children:[ee?(0,Y.jsx)(`div`,{className:`line-clamp-4 text-[11px] leading-[1.54545] text-[#a7aab2] ${CI}`,children:ee}):(0,Y.jsx)(`div`,{className:`text-[11px] leading-[1.54545] text-[#8b8f98] ${CI}`,children:`No system prompt`}),(0,Y.jsxs)(`button`,{ref:M(`system_prompt`),type:`button`,onClick:()=>b({stageId:m.id,open:!0}),className:`flex items-center gap-1 pt-1 text-left text-xs text-[#ecedee] hover:text-[#ecedee]`,children:[ee?`Open full prompt`:`Write prompt`,(0,Y.jsx)(Ge,{className:`size-3`,"aria-hidden":!0})]})]})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Y.jsx)(`div`,{className:SI,children:`gate_kinds`}),(0,Y.jsx)(`div`,{ref:M(`gate_kinds`),tabIndex:-1,className:`grid grid-cols-2 gap-1.5 outline-none`,children:tI.map(t=>{let n=m.gateKinds.includes(t),r=V.has(t);return(0,Y.jsxs)(`button`,{type:`button`,"aria-pressed":n,onClick:()=>l(mI(e,m.id,t)),className:`flex h-7 min-w-0 items-center gap-[7px] rounded-[7px] border px-2 hover:bg-[#ffffff08] ${n?`border-[#ffffff29] bg-[#1a1c21]`:`border-[#ffffff12]`}`,children:[n?(0,Y.jsx)(`span`,{className:`flex size-3.5 shrink-0 items-center justify-center rounded-sm bg-[#ecedee]`,children:(0,Y.jsx)(G,{className:`size-2.5 text-[#0c0d0f]`,"aria-hidden":!0})}):(0,Y.jsx)(`span`,{className:`size-3.5 shrink-0 rounded-sm border border-[#ffffff33]`}),(0,Y.jsx)(`span`,{className:`text-[11px] ${CI} ${n?`text-[#ecedee]`:`text-[#a7aab2]`} ${r?`min-w-0 flex-1 truncate`:``}`,children:t}),r?(0,Y.jsx)(je,{className:`size-[11px] shrink-0 text-[#a7aab2]`,"aria-hidden":!0}):null]},t)})})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Y.jsx)(`div`,{className:SI,children:`payload_schema`}),(0,Y.jsxs)(`button`,{ref:M(`payload`),type:`button`,onClick:()=>d(m.path??``),className:`flex min-w-0 items-center gap-1.5 text-left hover:text-[#ecedee]`,children:[(0,Y.jsx)(xt,{className:`size-[13px] shrink-0 text-[#a7aab2]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-xs text-[#ecedee] underline decoration-[#ecedee59] underline-offset-[3px] ${CI}`,children:H}),(0,Y.jsx)(Ge,{className:`size-3 shrink-0 text-[#8b8f98]`,"aria-hidden":!0})]})]})]}),I?(0,Y.jsxs)(`div`,{className:`flex w-full shrink-0 items-start gap-2 border-t border-t-[#ffffff12] px-3.5 py-2.5`,children:[(0,Y.jsx)(pt,{className:`mx-0 mt-0.5 mb-0 size-[13px] shrink-0 text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsx)(`div`,{className:`text-xs leading-[1.41667] text-[#a7aab2]`,children:I})]}):null,S?(0,Y.jsx)(jF,{stageId:m.id,value:ee,onChange:t=>l(eM(e,m.id,t)),onClose:()=>b({stageId:m.id,open:!1})}):null]})}function EI(e,t){let n=[],r=new Set;for(let t of e){let e=t.trim();!e||r.has(e)||(r.add(e),n.push(e))}let i=t.trim();return i&&!r.has(i)&&n.unshift(i),n}var DI=Symbol.for(`yaml.alias`),OI=Symbol.for(`yaml.document`),kI=Symbol.for(`yaml.map`),AI=Symbol.for(`yaml.pair`),jI=Symbol.for(`yaml.scalar`),MI=Symbol.for(`yaml.seq`),NI=Symbol.for(`yaml.node.type`),PI=e=>!!e&&typeof e==`object`&&e[NI]===DI,FI=e=>!!e&&typeof e==`object`&&e[NI]===OI,II=e=>!!e&&typeof e==`object`&&e[NI]===kI,LI=e=>!!e&&typeof e==`object`&&e[NI]===AI,RI=e=>!!e&&typeof e==`object`&&e[NI]===jI,zI=e=>!!e&&typeof e==`object`&&e[NI]===MI;function BI(e){if(e&&typeof e==`object`)switch(e[NI]){case kI:case MI:return!0}return!1}function VI(e){if(e&&typeof e==`object`)switch(e[NI]){case DI:case kI:case jI:case MI:return!0}return!1}var HI=e=>(RI(e)||BI(e))&&!!e.anchor,UI=Symbol(`break visit`),WI=Symbol(`skip children`),GI=Symbol(`remove node`);function KI(e,t){let n=JI(t);FI(e)?qI(null,e.contents,n,Object.freeze([e]))===GI&&(e.contents=null):qI(null,e,n,Object.freeze([]))}KI.BREAK=UI,KI.SKIP=WI,KI.REMOVE=GI;function qI(e,t,n,r){let i=YI(e,t,n,r);if(VI(i)||LI(i))return XI(e,r,i),qI(e,i,n,r);if(typeof i!=`symbol`){if(BI(t)){r=Object.freeze(r.concat(t));for(let e=0;e<t.items.length;++e){let i=qI(e,t.items[e],n,r);if(typeof i==`number`)e=i-1;else if(i===UI)return UI;else i===GI&&(t.items.splice(e,1),--e)}}else if(LI(t)){r=Object.freeze(r.concat(t));let e=qI(`key`,t.key,n,r);if(e===UI)return UI;e===GI&&(t.key=null);let i=qI(`value`,t.value,n,r);if(i===UI)return UI;i===GI&&(t.value=null)}}return i}function JI(e){return typeof e==`object`&&(e.Collection||e.Node||e.Value)?Object.assign({Alias:e.Node,Map:e.Node,Scalar:e.Node,Seq:e.Node},e.Value&&{Map:e.Value,Scalar:e.Value,Seq:e.Value},e.Collection&&{Map:e.Collection,Seq:e.Collection},e):e}function YI(e,t,n,r){if(typeof n==`function`)return n(e,t,r);if(II(t))return n.Map?.(e,t,r);if(zI(t))return n.Seq?.(e,t,r);if(LI(t))return n.Pair?.(e,t,r);if(RI(t))return n.Scalar?.(e,t,r);if(PI(t))return n.Alias?.(e,t,r)}function XI(e,t,n){let r=t[t.length-1];if(BI(r))r.items[e]=n;else if(LI(r))e===`key`?r.key=n:r.value=n;else if(FI(r))r.contents=n;else{let e=PI(r)?`alias`:`scalar`;throw Error(`Cannot replace node with ${e} parent`)}}var ZI={"!":`%21`,",":`%2C`,"[":`%5B`,"]":`%5D`,"{":`%7B`,"}":`%7D`},QI=e=>e.replace(/[!,[\]{}]/g,e=>ZI[e]),$I=class e{constructor(t,n){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},e.defaultYaml,t),this.tags=Object.assign({},e.defaultTags,n)}clone(){let t=new e(this.yaml,this.tags);return t.docStart=this.docStart,t}atDocument(){let t=new e(this.yaml,this.tags);switch(this.yaml.version){case`1.1`:this.atNextDocument=!0;break;case`1.2`:this.atNextDocument=!1,this.yaml={explicit:e.defaultYaml.explicit,version:`1.2`},this.tags=Object.assign({},e.defaultTags)}return t}add(t,n){this.atNextDocument&&=(this.yaml={explicit:e.defaultYaml.explicit,version:`1.1`},this.tags=Object.assign({},e.defaultTags),!1);let r=t.trim().split(/[ \t]+/),i=r.shift();switch(i){case`%TAG`:{if(r.length!==2&&(n(0,`%TAG directive should contain exactly two parts`),r.length<2))return!1;let[e,t]=r;return this.tags[e]=t,!0}case`%YAML`:{if(this.yaml.explicit=!0,r.length!==1)return n(0,`%YAML directive should contain exactly one part`),!1;let[e]=r;if(e===`1.1`||e===`1.2`)return this.yaml.version=e,!0;{let t=/^\d+\.\d+$/.test(e);return n(6,`Unsupported YAML version ${e}`,t),!1}}default:return n(0,`Unknown directive ${i}`,!0),!1}}tagName(e,t){if(e===`!`)return`!`;if(e[0]!==`!`)return t(`Not a valid tag: ${e}`),null;if(e[1]===`<`){let n=e.slice(2,-1);return n===`!`||n===`!!`?(t(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==`>`&&t(`Verbatim tags must end with a >`),n)}let[,n,r]=e.match(/^(.*!)([^!]*)$/s);r||t(`The ${e} tag has no suffix`);let i=this.tags[n];if(i)try{return i+decodeURIComponent(r)}catch(e){return t(String(e)),null}return n===`!`?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,n]of Object.entries(this.tags))if(e.startsWith(n))return t+QI(e.substring(n.length));return e[0]===`!`?e:`!<${e}>`}toString(e){let t=this.yaml.explicit?[`%YAML ${this.yaml.version||`1.2`}`]:[],n=Object.entries(this.tags),r;if(e&&n.length>0&&VI(e.contents)){let t={};KI(e.contents,(e,n)=>{VI(n)&&n.tag&&(t[n.tag]=!0)}),r=Object.keys(t)}else r=[];for(let[i,a]of n)(i!==`!!`||a!==`tag:yaml.org,2002:`)&&(!e||r.some(e=>e.startsWith(a)))&&t.push(`%TAG ${i} ${a}`);return t.join(`
124
- `)}};$I.defaultYaml={explicit:!1,version:`1.2`},$I.defaultTags={"!!":`tag:yaml.org,2002:`};function eL(e){if(/[\x00-\x19\s,[\]{}]/.test(e)){let t=`Anchor must not contain whitespace or control characters: ${JSON.stringify(e)}`;throw Error(t)}return!0}function tL(e){let t=new Set;return KI(e,{Value(e,n){n.anchor&&t.add(n.anchor)}}),t}function nL(e,t){for(let n=1;;++n){let r=`${e}${n}`;if(!t.has(r))return r}}function rL(e,t){let n=[],r=new Map,i=null;return{onAnchor:r=>{n.push(r),i??=tL(e);let a=nL(t,i);return i.add(a),a},setAnchors:()=>{for(let e of n){let t=r.get(e);if(typeof t==`object`&&t.anchor&&(RI(t.node)||BI(t.node)))t.node.anchor=t.anchor;else{let t=Error(`Failed to resolve repeated object (this should not happen)`);throw t.source=e,t}}},sourceObjects:r}}function iL(e,t,n,r){if(r&&typeof r==`object`){if(Array.isArray(r))for(let t=0,n=r.length;t<n;++t){let n=r[t],i=iL(e,r,String(t),n);i===void 0?delete r[t]:i!==n&&(r[t]=i)}else if(r instanceof Map)for(let t of Array.from(r.keys())){let n=r.get(t),i=iL(e,r,t,n);i===void 0?r.delete(t):i!==n&&r.set(t,i)}else if(r instanceof Set)for(let t of Array.from(r)){let n=iL(e,r,t,t);n===void 0?r.delete(t):n!==t&&(r.delete(t),r.add(n))}else for(let[t,n]of Object.entries(r)){let i=iL(e,r,t,n);i===void 0?delete r[t]:i!==n&&(r[t]=i)}}return e.call(t,n,r)}function aL(e,t,n){if(Array.isArray(e))return e.map((e,t)=>aL(e,String(t),n));if(e&&typeof e.toJSON==`function`){if(!n||!HI(e))return e.toJSON(t,n);let r={aliasCount:0,count:1,res:void 0};n.anchors.set(e,r),n.onCreate=e=>{r.res=e,delete n.onCreate};let i=e.toJSON(t,n);return n.onCreate&&n.onCreate(i),i}return typeof e==`bigint`&&!n?.keep?Number(e):e}var oL=class{constructor(e){Object.defineProperty(this,NI,{value:e})}clone(){let e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(e.range=this.range.slice()),e}toJS(e,{mapAsMap:t,maxAliasCount:n,onAnchor:r,reviver:i}={}){if(!FI(e))throw TypeError(`A document argument is required`);let a={anchors:new Map,doc:e,keep:!0,mapAsMap:t===!0,mapKeyWarned:!1,maxAliasCount:typeof n==`number`?n:100},o=aL(this,``,a);if(typeof r==`function`)for(let{count:e,res:t}of a.anchors.values())r(t,e);return typeof i==`function`?iL(i,{"":o},``,o):o}},sL=class extends oL{constructor(e){super(DI),this.source=e,Object.defineProperty(this,"tag",{set(){throw Error(`Alias nodes cannot have tags`)}})}resolve(e,t){if(t?.maxAliasCount===0)throw ReferenceError(`Alias resolution is disabled`);let n;t?.aliasResolveCache?n=t.aliasResolveCache:(n=[],KI(e,{Node:(e,t)=>{(PI(t)||HI(t))&&n.push(t)}}),t&&(t.aliasResolveCache=n));let r;for(let e of n){if(e===this)break;e.anchor===this.source&&(r=e)}if(r&&t){let{anchors:e,doc:n,maxAliasCount:i}=t,a=e.get(r);if(a||=(aL(r,null,t),e.get(r)),a?.res===void 0)throw ReferenceError(`This should not happen: Alias anchor was not resolved?`);if(i>=0&&(a.count+=1,a.aliasCount===0&&(a.aliasCount=cL(n,r,e)),a.count*a.aliasCount>i))throw ReferenceError(`Excessive alias count indicates a resource exhaustion attack`)}return r}toJSON(e,t){if(!t)return{source:this.source};let n=this.resolve(t.doc,t);if(!n){let e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw ReferenceError(e)}return t.anchors.get(n).res}toString(e,t,n){let r=`*${this.source}`;if(e){if(eL(this.source),e.options.verifyAliasOrder&&!e.anchors.has(this.source)){let e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw Error(e)}if(e.implicitKey)return`${r} `}return r}};function cL(e,t,n){if(PI(t)){let r=t.resolve(e),i=n&&r&&n.get(r);return i?i.count*i.aliasCount:0}if(BI(t)){let r=0;for(let i of t.items){let t=cL(e,i,n);t>r&&(r=t)}return r}if(LI(t)){let r=cL(e,t.key,n),i=cL(e,t.value,n);return Math.max(r,i)}return 1}var lL=e=>!e||typeof e!=`function`&&typeof e!=`object`,uL=class extends oL{constructor(e){super(jI),this.value=e}toJSON(e,t){return t?.keep?this.value:aL(this.value,e,t)}toString(){return String(this.value)}};uL.BLOCK_FOLDED=`BLOCK_FOLDED`,uL.BLOCK_LITERAL=`BLOCK_LITERAL`,uL.PLAIN=`PLAIN`,uL.QUOTE_DOUBLE=`QUOTE_DOUBLE`,uL.QUOTE_SINGLE=`QUOTE_SINGLE`;var dL=`tag:yaml.org,2002:`;function fL(e,t,n){if(t){let e=n.filter(e=>e.tag===t),r=e.find(e=>!e.format)??e[0];if(!r)throw Error(`Tag ${t} not found`);return r}return n.find(t=>t.identify?.(e)&&!t.format)}function pL(e,t,n){if(FI(e)&&(e=e.contents),VI(e))return e;if(LI(e)){let t=n.schema[kI].createNode?.(n.schema,null,n);return t.items.push(e),t}(e instanceof String||e instanceof Number||e instanceof Boolean||typeof BigInt<`u`&&e instanceof BigInt)&&(e=e.valueOf());let{aliasDuplicateObjects:r,onAnchor:i,onTagObj:a,schema:o,sourceObjects:s}=n,c;if(r&&e&&typeof e==`object`){if(c=s.get(e),c)return c.anchor??(c.anchor=i(e)),new sL(c.anchor);c={anchor:null,node:null},s.set(e,c)}t?.startsWith(`!!`)&&(t=dL+t.slice(2));let l=fL(e,t,o.tags);if(!l){if(e&&typeof e.toJSON==`function`&&(e=e.toJSON()),!e||typeof e!=`object`){let t=new uL(e);return c&&(c.node=t),t}l=e instanceof Map?o[kI]:Symbol.iterator in Object(e)?o[MI]:o[kI]}a&&(a(l),delete n.onTagObj);let u=l?.createNode?l.createNode(n.schema,e,n):typeof l?.nodeClass?.from==`function`?l.nodeClass.from(n.schema,e,n):new uL(e);return t?u.tag=t:l.default||(u.tag=l.tag),c&&(c.node=u),u}function mL(e,t,n){let r=n;for(let e=t.length-1;e>=0;--e){let n=t[e];if(typeof n==`number`&&Number.isInteger(n)&&n>=0){let e=[];e[n]=r,r=e}else r=new Map([[n,r]])}return pL(r,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw Error(`This should not happen, please report a bug.`)},schema:e,sourceObjects:new Map})}var hL=e=>e==null||typeof e==`object`&&!!e[Symbol.iterator]().next().done,gL=class extends oL{constructor(e,t){super(e),Object.defineProperty(this,"schema",{value:t,configurable:!0,enumerable:!1,writable:!0})}clone(e){let t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return e&&(t.schema=e),t.items=t.items.map(t=>VI(t)||LI(t)?t.clone(e):t),this.range&&(t.range=this.range.slice()),t}addIn(e,t){if(hL(e))this.add(t);else{let[n,...r]=e,i=this.get(n,!0);if(BI(i))i.addIn(r,t);else if(i===void 0&&this.schema)this.set(n,mL(this.schema,r,t));else throw Error(`Expected YAML collection at ${n}. Remaining path: ${r}`)}}deleteIn(e){let[t,...n]=e;if(n.length===0)return this.delete(t);let r=this.get(t,!0);if(BI(r))return r.deleteIn(n);throw Error(`Expected YAML collection at ${t}. Remaining path: ${n}`)}getIn(e,t){let[n,...r]=e,i=this.get(n,!0);return r.length===0?!t&&RI(i)?i.value:i:BI(i)?i.getIn(r,t):void 0}hasAllNullValues(e){return this.items.every(t=>{if(!LI(t))return!1;let n=t.value;return n==null||e&&RI(n)&&n.value==null&&!n.commentBefore&&!n.comment&&!n.tag})}hasIn(e){let[t,...n]=e;if(n.length===0)return this.has(t);let r=this.get(t,!0);return BI(r)?r.hasIn(n):!1}setIn(e,t){let[n,...r]=e;if(r.length===0)this.set(n,t);else{let e=this.get(n,!0);if(BI(e))e.setIn(r,t);else if(e===void 0&&this.schema)this.set(n,mL(this.schema,r,t));else throw Error(`Expected YAML collection at ${n}. Remaining path: ${r}`)}}},_L=e=>e.replace(/^(?!$)(?: $)?/gm,`#`);function vL(e,t){return/^\n+$/.test(e)?e.substring(1):t?e.replace(/^(?! *$)/gm,t):e}var yL=(e,t,n)=>e.endsWith(`
125
- `)?vL(n,t):n.includes(`
126
- `)?`
127
- `+vL(n,t):(e.endsWith(` `)?``:` `)+n,bL=`flow`,xL=`block`,SL=`quoted`;function CL(e,t,n=`flow`,{indentAtStart:r,lineWidth:i=80,minContentWidth:a=20,onFold:o,onOverflow:s}={}){if(!i||i<0)return e;i<a&&(a=0);let c=Math.max(1+a,1+i-t.length);if(e.length<=c)return e;let l=[],u={},d=i-t.length;typeof r==`number`&&(r>i-Math.max(2,a)?l.push(0):d=i-r);let f,p,m=!1,h=-1,g=-1,_=-1;n===`block`&&(h=wL(e,h,t.length),h!==-1&&(d=h+c));for(let r;r=e[h+=1];){if(n===`quoted`&&r===`\\`){switch(g=h,e[h+1]){case`x`:h+=3;break;case`u`:h+=5;break;case`U`:h+=9;break;default:h+=1}_=h}if(r===`
128
- `)n===`block`&&(h=wL(e,h,t.length)),d=h+t.length+c,f=void 0;else{if(r===` `&&p&&p!==` `&&p!==`
129
- `&&p!==` `){let t=e[h+1];t&&t!==` `&&t!==`
130
- `&&t!==` `&&(f=h)}if(h>=d){if(f)l.push(f),d=f+c,f=void 0;else if(n===`quoted`){for(;p===` `||p===` `;)p=r,r=e[h+=1],m=!0;let t=h>_+1?h-2:g-1;if(u[t])return e;l.push(t),u[t]=!0,d=t+c,f=void 0}else m=!0}}p=r}if(m&&s&&s(),l.length===0)return e;o&&o();let v=e.slice(0,l[0]);for(let r=0;r<l.length;++r){let i=l[r],a=l[r+1]||e.length;i===0?v=`\n${t}${e.slice(0,a)}`:(n===`quoted`&&u[i]&&(v+=`${e[i]}\\`),v+=`\n${t}${e.slice(i+1,a)}`)}return v}function wL(e,t,n){let r=t,i=t+1,a=e[i];for(;a===` `||a===` `;)if(t<i+n)a=e[++t];else{do a=e[++t];while(a&&a!==`
131
- `);r=t,i=t+1,a=e[i]}return r}var TL=(e,t)=>({indentAtStart:t?e.indent.length:e.indentAtStart,lineWidth:e.options.lineWidth,minContentWidth:e.options.minContentWidth}),EL=e=>/^(%|---|\.\.\.)/m.test(e);function DL(e,t,n){if(!t||t<0)return!1;let r=t-n,i=e.length;if(i<=r)return!1;for(let t=0,n=0;t<i;++t)if(e[t]===`
132
- `){if(t-n>r)return!0;if(n=t+1,i-n<=r)return!1}return!0}function OL(e,t){let n=JSON.stringify(e);if(t.options.doubleQuotedAsJSON)return n;let{implicitKey:r}=t,i=t.options.doubleQuotedMinMultiLineLength,a=t.indent||(EL(e)?` `:``),o=``,s=0;for(let e=0,t=n[e];t;t=n[++e])if(t===` `&&n[e+1]===`\\`&&n[e+2]===`n`&&(o+=n.slice(s,e)+`\\ `,e+=1,s=e,t=`\\`),t===`\\`)switch(n[e+1]){case`u`:{o+=n.slice(s,e);let t=n.substr(e+2,4);switch(t){case`0000`:o+=`\\0`;break;case`0007`:o+=`\\a`;break;case`000b`:o+=`\\v`;break;case`001b`:o+=`\\e`;break;case`0085`:o+=`\\N`;break;case`00a0`:o+=`\\_`;break;case`2028`:o+=`\\L`;break;case`2029`:o+=`\\P`;break;default:t.substr(0,2)===`00`?o+=`\\x`+t.substr(2):o+=n.substr(e,6)}e+=5,s=e+1}break;case`n`:if(r||n[e+2]===`"`||n.length<i)e+=1;else{for(o+=n.slice(s,e)+`
133
-
134
- `;n[e+2]===`\\`&&n[e+3]===`n`&&n[e+4]!==`"`;)o+=`
135
- `,e+=2;o+=a,n[e+2]===` `&&(o+=`\\`),e+=1,s=e+1}break;default:e+=1}return o=s?o+n.slice(s):n,r?o:CL(o,a,SL,TL(t,!1))}function kL(e,t){if(t.options.singleQuote===!1||t.implicitKey&&e.includes(`
136
- `)||/[ \t]\n|\n[ \t]/.test(e))return OL(e,t);let n=t.indent||(EL(e)?` `:``),r=`'`+e.replace(/'/g,`''`).replace(/\n+/g,`$&\n${n}`)+`'`;return t.implicitKey?r:CL(r,n,bL,TL(t,!1))}function AL(e,t){let{singleQuote:n}=t.options,r;if(n===!1)r=OL;else{let t=e.includes(`"`),i=e.includes(`'`);r=t&&!i?kL:i&&!t?OL:n?kL:OL}return r(e,t)}var jL;try{jL=RegExp(`(^|(?<!
137
- ))
138
- +(?!
139
- |$)`,`g`)}catch{jL=/\n+(?!\n|$)/g}function ML({comment:e,type:t,value:n},r,i,a){let{blockQuote:o,commentString:s,lineWidth:c}=r.options;if(!o||/\n[\t ]+$/.test(n))return AL(n,r);let l=r.indent||(r.forceBlockIndent||EL(n)?` `:``),u=o===`literal`?!0:o===`folded`||t===uL.BLOCK_FOLDED?!1:t===uL.BLOCK_LITERAL||!DL(n,c,l.length);if(!n)return u?`|
140
- `:`>
141
- `;let d,f;for(f=n.length;f>0;--f){let e=n[f-1];if(e!==`
142
- `&&e!==` `&&e!==` `)break}let p=n.substring(f),m=p.indexOf(`
143
- `);m===-1?d=`-`:n===p||m!==p.length-1?(d=`+`,a&&a()):d=``,p&&=(n=n.slice(0,-p.length),p[p.length-1]===`
144
- `&&(p=p.slice(0,-1)),p.replace(jL,`$&${l}`));let h=!1,g,_=-1;for(g=0;g<n.length;++g){let e=n[g];if(e===` `)h=!0;else if(e===`
145
- `)_=g;else break}let v=n.substring(0,_<g?_+1:g);v&&=(n=n.substring(v.length),v.replace(/\n+/g,`$&${l}`));let y=(h?l?`2`:`1`:``)+d;if(e&&(y+=` `+s(e.replace(/ ?[\r\n]+/g,` `)),i&&i()),!u){let e=n.replace(/\n+/g,`
146
- $&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,`$1$2`).replace(/\n+/g,`$&${l}`),i=!1,a=TL(r,!0);o!==`folded`&&t!==uL.BLOCK_FOLDED&&(a.onOverflow=()=>{i=!0});let s=CL(`${v}${e}${p}`,l,xL,a);if(!i)return`>${y}\n${l}${s}`}return n=n.replace(/\n+/g,`$&${l}`),`|${y}\n${l}${v}${n}${p}`}function NL(e,t,n,r){let{type:i,value:a}=e,{actualString:o,implicitKey:s,indent:c,indentStep:l,inFlow:u}=t;if(s&&a.includes(`
147
- `)||u&&/[[\]{},]/.test(a))return AL(a,t);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(a))return s||u||!a.includes(`
148
- `)?AL(a,t):ML(e,t,n,r);if(!s&&!u&&i!==uL.PLAIN&&a.includes(`
149
- `))return ML(e,t,n,r);if(EL(a)){if(c===``)return t.forceBlockIndent=!0,ML(e,t,n,r);if(s&&c===l)return AL(a,t)}let d=a.replace(/\n+/g,`$&\n${c}`);if(o){let e=e=>e.default&&e.tag!==`tag:yaml.org,2002:str`&&e.test?.test(d),{compat:n,tags:r}=t.doc.schema;if(r.some(e)||n?.some(e))return AL(a,t)}return s?d:CL(d,c,bL,TL(t,!1))}function PL(e,t,n,r){let{implicitKey:i,inFlow:a}=t,o=typeof e.value==`string`?e:Object.assign({},e,{value:String(e.value)}),{type:s}=e;s!==uL.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value)&&(s=uL.QUOTE_DOUBLE);let c=e=>{switch(e){case uL.BLOCK_FOLDED:case uL.BLOCK_LITERAL:return i||a?AL(o.value,t):ML(o,t,n,r);case uL.QUOTE_DOUBLE:return OL(o.value,t);case uL.QUOTE_SINGLE:return kL(o.value,t);case uL.PLAIN:return NL(o,t,n,r);default:return null}},l=c(s);if(l===null){let{defaultKeyType:e,defaultStringType:n}=t.options,r=i&&e||n;if(l=c(r),l===null)throw Error(`Unsupported default string type ${r}`)}return l}function FL(e,t){let n=Object.assign({blockQuote:!0,commentString:_L,defaultKeyType:null,defaultStringType:`PLAIN`,directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:`false`,flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:`null`,simpleKeys:!1,singleQuote:null,trailingComma:!1,trueStr:`true`,verifyAliasOrder:!0},e.schema.toStringOptions,t),r;switch(n.collectionStyle){case`block`:r=!1;break;case`flow`:r=!0;break;default:r=null}return{anchors:new Set,doc:e,flowCollectionPadding:n.flowCollectionPadding?` `:``,indent:``,indentStep:typeof n.indent==`number`?` `.repeat(n.indent):` `,inFlow:r,options:n}}function IL(e,t){if(t.tag){let n=e.filter(e=>e.tag===t.tag);if(n.length>0)return n.find(e=>e.format===t.format)??n[0]}let n,r;if(RI(t)){r=t.value;let i=e.filter(e=>e.identify?.(r));if(i.length>1){let e=i.filter(e=>e.test);e.length>0&&(i=e)}n=i.find(e=>e.format===t.format)??i.find(e=>!e.format)}else r=t,n=e.find(e=>e.nodeClass&&r instanceof e.nodeClass);if(!n){let e=r?.constructor?.name??(r===null?`null`:typeof r);throw Error(`Tag not resolved for ${e} value`)}return n}function LL(e,t,{anchors:n,doc:r}){if(!r.directives)return``;let i=[],a=(RI(e)||BI(e))&&e.anchor;a&&eL(a)&&(n.add(a),i.push(`&${a}`));let o=e.tag??(t.default?null:t.tag);return o&&i.push(r.directives.tagString(o)),i.join(` `)}function RL(e,t,n,r){if(LI(e))return e.toString(t,n,r);if(PI(e)){if(t.doc.directives)return e.toString(t);if(t.resolvedAliases?.has(e))throw TypeError(`Cannot stringify circular structure without alias nodes`);t.resolvedAliases?t.resolvedAliases.add(e):t.resolvedAliases=new Set([e]),e=e.resolve(t.doc)}let i,a=VI(e)?e:t.doc.createNode(e,{onTagObj:e=>i=e});i??=IL(t.doc.schema.tags,a);let o=LL(a,i,t);o.length>0&&(t.indentAtStart=(t.indentAtStart??0)+o.length+1);let s=typeof i.stringify==`function`?i.stringify(a,t,n,r):RI(a)?PL(a,t,n,r):a.toString(t,n,r);return o?RI(a)||s[0]===`{`||s[0]===`[`?`${o} ${s}`:`${o}\n${t.indent}${s}`:s}function zL({key:e,value:t},n,r,i){let{allNullValues:a,doc:o,indent:s,indentStep:c,options:{commentString:l,indentSeq:u,simpleKeys:d}}=n,f=VI(e)&&e.comment||null;if(d){if(f)throw Error(`With simple keys, key nodes cannot have comments`);if(BI(e)||!VI(e)&&typeof e==`object`)throw Error(`With simple keys, collection cannot be used as a key value`)}let p=!d&&(!e||f&&t==null&&!n.inFlow||BI(e)||(RI(e)?e.type===uL.BLOCK_FOLDED||e.type===uL.BLOCK_LITERAL:typeof e==`object`));n=Object.assign({},n,{allNullValues:!1,implicitKey:!p&&(d||!a),indent:s+c});let m=!1,h=!1,g=RL(e,n,()=>m=!0,()=>h=!0);if(!p&&!n.inFlow&&g.length>1024){if(d)throw Error(`With simple keys, single line scalar must not span more than 1024 characters`);p=!0}if(n.inFlow){if(a||t==null)return m&&r&&r(),g===``?`?`:p?`? ${g}`:g}else if(a&&!d||t==null&&p)return g=`? ${g}`,f&&!m?g+=yL(g,n.indent,l(f)):h&&i&&i(),g;m&&(f=null),p?(f&&(g+=yL(g,n.indent,l(f))),g=`? ${g}\n${s}:`):(g=`${g}:`,f&&(g+=yL(g,n.indent,l(f))));let _,v,y;VI(t)?(_=!!t.spaceBefore,v=t.commentBefore,y=t.comment):(_=!1,v=null,y=null,t&&typeof t==`object`&&(t=o.createNode(t))),n.implicitKey=!1,!p&&!f&&RI(t)&&(n.indentAtStart=g.length+1),h=!1,!u&&c.length>=2&&!n.inFlow&&!p&&zI(t)&&!t.flow&&!t.tag&&!t.anchor&&(n.indent=n.indent.substring(2));let b=!1,x=RL(t,n,()=>b=!0,()=>h=!0),S=` `;if(f||_||v){if(S=_?`
150
- `:``,v){let e=l(v);S+=`\n${vL(e,n.indent)}`}x===``&&!n.inFlow?S===`
151
- `&&y&&(S=`
152
-
153
- `):S+=`\n${n.indent}`}else if(!p&&BI(t)){let e=x[0],r=x.indexOf(`
154
- `),i=r!==-1,a=n.inFlow??t.flow??t.items.length===0;if(i||!a){let t=!1;if(i&&(e===`&`||e===`!`)){let n=x.indexOf(` `);e===`&`&&n!==-1&&n<r&&x[n+1]===`!`&&(n=x.indexOf(` `,n+1)),(n===-1||r<n)&&(t=!0)}t||(S=`\n${n.indent}`)}}else(x===``||x[0]===`
155
- `)&&(S=``);return g+=S+x,n.inFlow?b&&r&&r():y&&!b?g+=yL(g,n.indent,l(y)):h&&i&&i(),g}function BL(e,t){(e===`debug`||e===`warn`)&&console.warn(t)}var VL=`<<`,HL={identify:e=>e===VL||typeof e==`symbol`&&e.description===VL,default:`key`,tag:`tag:yaml.org,2002:merge`,test:/^<<$/,resolve:()=>Object.assign(new uL(Symbol(VL)),{addToJSMap:WL}),stringify:()=>VL},UL=(e,t)=>(HL.identify(t)||RI(t)&&(!t.type||t.type===uL.PLAIN)&&HL.identify(t.value))&&e?.doc.schema.tags.some(e=>e.tag===HL.tag&&e.default);function WL(e,t,n){let r=KL(e,n);if(zI(r))for(let n of r.items)GL(e,t,n);else if(Array.isArray(r))for(let n of r)GL(e,t,n);else GL(e,t,r)}function GL(e,t,n){let r=KL(e,n);if(!II(r))throw Error(`Merge sources must be maps or map aliases`);let i=r.toJSON(null,e,Map);for(let[e,n]of i)t instanceof Map?t.has(e)||t.set(e,n):t instanceof Set?t.add(e):Object.prototype.hasOwnProperty.call(t,e)||Object.defineProperty(t,e,{value:n,writable:!0,enumerable:!0,configurable:!0});return t}function KL(e,t){return e&&PI(t)?t.resolve(e.doc,e):t}function qL(e,t,{key:n,value:r}){if(VI(n)&&n.addToJSMap)n.addToJSMap(e,t,r);else if(UL(e,n))WL(e,t,r);else{let i=aL(n,``,e);if(t instanceof Map)t.set(i,aL(r,i,e));else if(t instanceof Set)t.add(i);else{let a=JL(n,i,e),o=aL(r,a,e);a in t?Object.defineProperty(t,a,{value:o,writable:!0,enumerable:!0,configurable:!0}):t[a]=o}}return t}function JL(e,t,n){if(t===null)return``;if(typeof t!=`object`)return String(t);if(VI(e)&&n?.doc){let t=FL(n.doc,{});t.anchors=new Set;for(let e of n.anchors.keys())t.anchors.add(e.anchor);t.inFlow=!0,t.inStringifyKey=!0;let r=e.toString(t);if(!n.mapKeyWarned){let e=JSON.stringify(r);e.length>40&&(e=e.substring(0,36)+`..."`),BL(n.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${e}. Set mapAsMap: true to use object keys.`),n.mapKeyWarned=!0}return r}return JSON.stringify(t)}function YL(e,t,n){return new XL(pL(e,void 0,n),pL(t,void 0,n))}var XL=class e{constructor(e,t=null){Object.defineProperty(this,NI,{value:AI}),this.key=e,this.value=t}clone(t){let{key:n,value:r}=this;return VI(n)&&(n=n.clone(t)),VI(r)&&(r=r.clone(t)),new e(n,r)}toJSON(e,t){return qL(t,t?.mapAsMap?new Map:{},this)}toString(e,t,n){return e?.doc?zL(this,e,t,n):JSON.stringify(this)}};function ZL(e,t,n){return(t.inFlow??e.flow?$L:QL)(e,t,n)}function QL({comment:e,items:t},n,{blockItemPrefix:r,flowChars:i,itemIndent:a,onChompKeep:o,onComment:s}){let{indent:c,options:{commentString:l}}=n,u=Object.assign({},n,{indent:a,type:null}),d=!1,f=[];for(let e=0;e<t.length;++e){let i=t[e],o=null;if(VI(i))!d&&i.spaceBefore&&f.push(``),eR(n,f,i.commentBefore,d),i.comment&&(o=i.comment);else if(LI(i)){let e=VI(i.key)?i.key:null;e&&(!d&&e.spaceBefore&&f.push(``),eR(n,f,e.commentBefore,d))}d=!1;let s=RL(i,u,()=>o=null,()=>d=!0);o&&(s+=yL(s,a,l(o))),d&&o&&(d=!1),f.push(r+s)}let p;if(f.length===0)p=i.start+i.end;else{p=f[0];for(let e=1;e<f.length;++e){let t=f[e];p+=t?`\n${c}${t}`:`
156
- `}}return e?(p+=`
157
- `+vL(l(e),c),s&&s()):d&&o&&o(),p}function $L({items:e},t,{flowChars:n,itemIndent:r}){let{indent:i,indentStep:a,flowCollectionPadding:o,options:{commentString:s}}=t;r+=a;let c=Object.assign({},t,{indent:r,inFlow:!0,type:null}),l=!1,u=0,d=[];for(let n=0;n<e.length;++n){let i=e[n],a=null;if(VI(i))i.spaceBefore&&d.push(``),eR(t,d,i.commentBefore,!1),i.comment&&(a=i.comment);else if(LI(i)){let e=VI(i.key)?i.key:null;e&&(e.spaceBefore&&d.push(``),eR(t,d,e.commentBefore,!1),e.comment&&(l=!0));let n=VI(i.value)?i.value:null;n?(n.comment&&(a=n.comment),n.commentBefore&&(l=!0)):i.value==null&&e?.comment&&(a=e.comment)}a&&(l=!0);let o=RL(i,c,()=>a=null);l||=d.length>u||o.includes(`
158
- `),n<e.length-1?o+=`,`:t.options.trailingComma&&(t.options.lineWidth>0&&(l||=d.reduce((e,t)=>e+t.length+2,2)+(o.length+2)>t.options.lineWidth),l&&(o+=`,`)),a&&(o+=yL(o,r,s(a))),d.push(o),u=d.length}let{start:f,end:p}=n;if(d.length===0)return f+p;if(!l){let e=d.reduce((e,t)=>e+t.length+2,2);l=t.options.lineWidth>0&&e>t.options.lineWidth}if(l){let e=f;for(let t of d)e+=t?`\n${a}${i}${t}`:`
159
- `;return`${e}\n${i}${p}`}return`${f}${o}${d.join(` `)}${o}${p}`}function eR({indent:e,options:{commentString:t}},n,r,i){if(r&&i&&(r=r.replace(/^\n+/,``)),r){let i=vL(t(r),e);n.push(i.trimStart())}}function tR(e,t){let n=RI(t)?t.value:t;for(let r of e)if(LI(r)&&(r.key===t||r.key===n||RI(r.key)&&r.key.value===n))return r}var nR=class extends gL{static get tagName(){return`tag:yaml.org,2002:map`}constructor(e){super(kI,e),this.items=[]}static from(e,t,n){let{keepUndefined:r,replacer:i}=n,a=new this(e),o=(e,o)=>{if(typeof i==`function`)o=i.call(t,e,o);else if(Array.isArray(i)&&!i.includes(e))return;(o!==void 0||r)&&a.items.push(YL(e,o,n))};if(t instanceof Map)for(let[e,n]of t)o(e,n);else if(t&&typeof t==`object`)for(let e of Object.keys(t))o(e,t[e]);return typeof e.sortMapEntries==`function`&&a.items.sort(e.sortMapEntries),a}add(e,t){let n;n=LI(e)?e:!e||typeof e!=`object`||!(`key`in e)?new XL(e,e?.value):new XL(e.key,e.value);let r=tR(this.items,n.key),i=this.schema?.sortMapEntries;if(r){if(!t)throw Error(`Key ${n.key} already set`);RI(r.value)&&lL(n.value)?r.value.value=n.value:r.value=n.value}else if(i){let e=this.items.findIndex(e=>i(n,e)<0);e===-1?this.items.push(n):this.items.splice(e,0,n)}else this.items.push(n)}delete(e){let t=tR(this.items,e);return t?this.items.splice(this.items.indexOf(t),1).length>0:!1}get(e,t){let n=tR(this.items,e)?.value;return(!t&&RI(n)?n.value:n)??void 0}has(e){return!!tR(this.items,e)}set(e,t){this.add(new XL(e,t),!0)}toJSON(e,t,n){let r=n?new n:t?.mapAsMap?new Map:{};t?.onCreate&&t.onCreate(r);for(let e of this.items)qL(t,r,e);return r}toString(e,t,n){if(!e)return JSON.stringify(this);for(let e of this.items)if(!LI(e))throw Error(`Map items must all be pairs; found ${JSON.stringify(e)} instead`);return!e.allNullValues&&this.hasAllNullValues(!1)&&(e=Object.assign({},e,{allNullValues:!0})),ZL(this,e,{blockItemPrefix:``,flowChars:{start:`{`,end:`}`},itemIndent:e.indent||``,onChompKeep:n,onComment:t})}},rR={collection:`map`,default:!0,nodeClass:nR,tag:`tag:yaml.org,2002:map`,resolve(e,t){return II(e)||t(`Expected a mapping for this tag`),e},createNode:(e,t,n)=>nR.from(e,t,n)},iR=class extends gL{static get tagName(){return`tag:yaml.org,2002:seq`}constructor(e){super(MI,e),this.items=[]}add(e){this.items.push(e)}delete(e){let t=aR(e);return typeof t==`number`&&this.items.splice(t,1).length>0}get(e,t){let n=aR(e);if(typeof n!=`number`)return;let r=this.items[n];return!t&&RI(r)?r.value:r}has(e){let t=aR(e);return typeof t==`number`&&t<this.items.length}set(e,t){let n=aR(e);if(typeof n!=`number`)throw Error(`Expected a valid index, not ${e}.`);let r=this.items[n];RI(r)&&lL(t)?r.value=t:this.items[n]=t}toJSON(e,t){let n=[];t?.onCreate&&t.onCreate(n);let r=0;for(let e of this.items)n.push(aL(e,String(r++),t));return n}toString(e,t,n){return e?ZL(this,e,{blockItemPrefix:`- `,flowChars:{start:`[`,end:`]`},itemIndent:(e.indent||``)+` `,onChompKeep:n,onComment:t}):JSON.stringify(this)}static from(e,t,n){let{replacer:r}=n,i=new this(e);if(t&&Symbol.iterator in Object(t)){let e=0;for(let a of t){if(typeof r==`function`){let n=t instanceof Set?a:String(e++);a=r.call(t,n,a)}i.items.push(pL(a,void 0,n))}}return i}};function aR(e){let t=RI(e)?e.value:e;return t&&typeof t==`string`&&(t=Number(t)),typeof t==`number`&&Number.isInteger(t)&&t>=0?t:null}var oR={collection:`seq`,default:!0,nodeClass:iR,tag:`tag:yaml.org,2002:seq`,resolve(e,t){return zI(e)||t(`Expected a sequence for this tag`),e},createNode:(e,t,n)=>iR.from(e,t,n)},sR={identify:e=>typeof e==`string`,default:!0,tag:`tag:yaml.org,2002:str`,resolve:e=>e,stringify(e,t,n,r){return t=Object.assign({actualString:!0},t),PL(e,t,n,r)}},cR={identify:e=>e==null,createNode:()=>new uL(null),default:!0,tag:`tag:yaml.org,2002:null`,test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new uL(null),stringify:({source:e},t)=>typeof e==`string`&&cR.test.test(e)?e:t.options.nullStr},lR={identify:e=>typeof e==`boolean`,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:e=>new uL(e[0]===`t`||e[0]===`T`),stringify({source:e,value:t},n){return e&&lR.test.test(e)&&t===(e[0]===`t`||e[0]===`T`)?e:t?n.options.trueStr:n.options.falseStr}};function uR({format:e,minFractionDigits:t,tag:n,value:r}){if(typeof r==`bigint`)return String(r);let i=typeof r==`number`?r:Number(r);if(!isFinite(i))return isNaN(i)?`.nan`:i<0?`-.inf`:`.inf`;let a=Object.is(r,-0)?`-0`:JSON.stringify(r);if(!e&&t&&(!n||n===`tag:yaml.org,2002:float`)&&/^-?\d/.test(a)&&!a.includes(`e`)){let e=a.indexOf(`.`);e<0&&(e=a.length,a+=`.`);let n=t-(a.length-e-1);for(;n-->0;)a+=`0`}return a}var dR={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()===`nan`?NaN:e[0]===`-`?-1/0:1/0,stringify:uR},fR={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,format:`EXP`,test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e),stringify(e){let t=Number(e.value);return isFinite(t)?t.toExponential():uR(e)}},pR={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(e){let t=new uL(parseFloat(e)),n=e.indexOf(`.`);return n!==-1&&e[e.length-1]===`0`&&(t.minFractionDigits=e.length-n-1),t},stringify:uR},mR=e=>typeof e==`bigint`||Number.isInteger(e),hR=(e,t,n,{intAsBigInt:r})=>r?BigInt(e):parseInt(e.substring(t),n);function gR(e,t,n){let{value:r}=e;return mR(r)&&r>=0?n+r.toString(t):uR(e)}var _R={identify:e=>mR(e)&&e>=0,default:!0,tag:`tag:yaml.org,2002:int`,format:`OCT`,test:/^0o[0-7]+$/,resolve:(e,t,n)=>hR(e,2,8,n),stringify:e=>gR(e,8,`0o`)},vR={identify:mR,default:!0,tag:`tag:yaml.org,2002:int`,test:/^[-+]?[0-9]+$/,resolve:(e,t,n)=>hR(e,0,10,n),stringify:uR},yR={identify:e=>mR(e)&&e>=0,default:!0,tag:`tag:yaml.org,2002:int`,format:`HEX`,test:/^0x[0-9a-fA-F]+$/,resolve:(e,t,n)=>hR(e,2,16,n),stringify:e=>gR(e,16,`0x`)},bR=[rR,oR,sR,cR,lR,_R,vR,yR,dR,fR,pR];function xR(e){return typeof e==`bigint`||Number.isInteger(e)}var SR=({value:e})=>JSON.stringify(e),CR=[{identify:e=>typeof e==`string`,default:!0,tag:`tag:yaml.org,2002:str`,resolve:e=>e,stringify:SR},{identify:e=>e==null,createNode:()=>new uL(null),default:!0,tag:`tag:yaml.org,2002:null`,test:/^null$/,resolve:()=>null,stringify:SR},{identify:e=>typeof e==`boolean`,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^true$|^false$/,resolve:e=>e===`true`,stringify:SR},{identify:xR,default:!0,tag:`tag:yaml.org,2002:int`,test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(e,t,{intAsBigInt:n})=>n?BigInt(e):parseInt(e,10),stringify:({value:e})=>xR(e)?e.toString():JSON.stringify(e)},{identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:e=>parseFloat(e),stringify:SR}],wR=[rR,oR].concat(CR,{default:!0,tag:``,test:/^/,resolve(e,t){return t(`Unresolved plain scalar ${JSON.stringify(e)}`),e}}),TR={identify:e=>e instanceof Uint8Array,default:!1,tag:`tag:yaml.org,2002:binary`,resolve(e,t){if(typeof atob==`function`){let t=atob(e.replace(/[\n\r]/g,``)),n=new Uint8Array(t.length);for(let e=0;e<t.length;++e)n[e]=t.charCodeAt(e);return n}return t(`This environment does not support reading binary tags; either Buffer or atob is required`),e},stringify({comment:e,type:t,value:n},r,i,a){if(!n)return``;let o=n,s;if(typeof btoa==`function`){let e=``;for(let t=0;t<o.length;++t)e+=String.fromCharCode(o[t]);s=btoa(e)}else throw Error(`This environment does not support writing binary tags; either Buffer or btoa is required`);if(t??=uL.BLOCK_LITERAL,t!==uL.QUOTE_DOUBLE){let e=Math.max(r.options.lineWidth-r.indent.length,r.options.minContentWidth),n=Math.ceil(s.length/e),i=Array(n);for(let t=0,r=0;t<n;++t,r+=e)i[t]=s.substr(r,e);s=i.join(t===uL.BLOCK_LITERAL?`
160
- `:` `)}return PL({comment:e,type:t,value:s},r,i,a)}};function ER(e,t){if(zI(e))for(let n=0;n<e.items.length;++n){let r=e.items[n];if(!LI(r)){if(II(r)){r.items.length>1&&t(`Each pair must have its own sequence indicator`);let e=r.items[0]||new XL(new uL(null));if(r.commentBefore&&(e.key.commentBefore=e.key.commentBefore?`${r.commentBefore}\n${e.key.commentBefore}`:r.commentBefore),r.comment){let t=e.value??e.key;t.comment=t.comment?`${r.comment}\n${t.comment}`:r.comment}r=e}e.items[n]=LI(r)?r:new XL(r)}}else t(`Expected a sequence for this tag`);return e}function DR(e,t,n){let{replacer:r}=n,i=new iR(e);i.tag=`tag:yaml.org,2002:pairs`;let a=0;if(t&&Symbol.iterator in Object(t))for(let e of t){typeof r==`function`&&(e=r.call(t,String(a++),e));let o,s;if(Array.isArray(e)){if(e.length===2)o=e[0],s=e[1];else throw TypeError(`Expected [key, value] tuple: ${e}`)}else if(e&&e instanceof Object){let t=Object.keys(e);if(t.length===1)o=t[0],s=e[o];else throw TypeError(`Expected tuple with one key, not ${t.length} keys`)}else o=e;i.items.push(YL(o,s,n))}return i}var OR={collection:`seq`,default:!1,tag:`tag:yaml.org,2002:pairs`,resolve:ER,createNode:DR},kR=class e extends iR{constructor(){super(),this.add=nR.prototype.add.bind(this),this.delete=nR.prototype.delete.bind(this),this.get=nR.prototype.get.bind(this),this.has=nR.prototype.has.bind(this),this.set=nR.prototype.set.bind(this),this.tag=e.tag}toJSON(e,t){if(!t)return super.toJSON(e);let n=new Map;t?.onCreate&&t.onCreate(n);for(let e of this.items){let r,i;if(LI(e)?(r=aL(e.key,``,t),i=aL(e.value,r,t)):r=aL(e,``,t),n.has(r))throw Error(`Ordered maps must not include duplicate keys`);n.set(r,i)}return n}static from(e,t,n){let r=DR(e,t,n),i=new this;return i.items=r.items,i}};kR.tag=`tag:yaml.org,2002:omap`;var AR={collection:`seq`,identify:e=>e instanceof Map,nodeClass:kR,default:!1,tag:`tag:yaml.org,2002:omap`,resolve(e,t){let n=ER(e,t),r=[];for(let{key:e}of n.items)RI(e)&&(r.includes(e.value)?t(`Ordered maps must not include duplicate keys: ${e.value}`):r.push(e.value));return Object.assign(new kR,n)},createNode:(e,t,n)=>kR.from(e,t,n)};function jR({value:e,source:t},n){return t&&(e?MR:NR).test.test(t)?t:e?n.options.trueStr:n.options.falseStr}var MR={identify:e=>e===!0,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new uL(!0),stringify:jR},NR={identify:e=>e===!1,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new uL(!1),stringify:jR},PR={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()===`nan`?NaN:e[0]===`-`?-1/0:1/0,stringify:uR},FR={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,format:`EXP`,test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e.replace(/_/g,``)),stringify(e){let t=Number(e.value);return isFinite(t)?t.toExponential():uR(e)}},IR={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(e){let t=new uL(parseFloat(e.replace(/_/g,``))),n=e.indexOf(`.`);if(n!==-1){let r=e.substring(n+1).replace(/_/g,``);r[r.length-1]===`0`&&(t.minFractionDigits=r.length)}return t},stringify:uR},LR=e=>typeof e==`bigint`||Number.isInteger(e);function RR(e,t,n,{intAsBigInt:r}){let i=e[0];if((i===`-`||i===`+`)&&(t+=1),e=e.substring(t).replace(/_/g,``),r){switch(n){case 2:e=`0b${e}`;break;case 8:e=`0o${e}`;break;case 16:e=`0x${e}`}let t=BigInt(e);return i===`-`?BigInt(-1)*t:t}let a=parseInt(e,n);return i===`-`?-1*a:a}function zR(e,t,n){let{value:r}=e;if(LR(r)){let e=r.toString(t);return r<0?`-`+n+e.substr(1):n+e}return uR(e)}var BR={identify:LR,default:!0,tag:`tag:yaml.org,2002:int`,format:`BIN`,test:/^[-+]?0b[0-1_]+$/,resolve:(e,t,n)=>RR(e,2,2,n),stringify:e=>zR(e,2,`0b`)},VR={identify:LR,default:!0,tag:`tag:yaml.org,2002:int`,format:`OCT`,test:/^[-+]?0[0-7_]+$/,resolve:(e,t,n)=>RR(e,1,8,n),stringify:e=>zR(e,8,`0`)},HR={identify:LR,default:!0,tag:`tag:yaml.org,2002:int`,test:/^[-+]?[0-9][0-9_]*$/,resolve:(e,t,n)=>RR(e,0,10,n),stringify:uR},UR={identify:LR,default:!0,tag:`tag:yaml.org,2002:int`,format:`HEX`,test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(e,t,n)=>RR(e,2,16,n),stringify:e=>zR(e,16,`0x`)},WR=class e extends nR{constructor(t){super(t),this.tag=e.tag}add(e){let t;t=LI(e)?e:e&&typeof e==`object`&&`key`in e&&`value`in e&&e.value===null?new XL(e.key,null):new XL(e,null),tR(this.items,t.key)||this.items.push(t)}get(e,t){let n=tR(this.items,e);return!t&&LI(n)?RI(n.key)?n.key.value:n.key:n}set(e,t){if(typeof t!=`boolean`)throw Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof t}`);let n=tR(this.items,e);n&&!t?this.items.splice(this.items.indexOf(n),1):!n&&t&&this.items.push(new XL(e))}toJSON(e,t){return super.toJSON(e,t,Set)}toString(e,t,n){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},e,{allNullValues:!0}),t,n);throw Error(`Set items must all have null values`)}static from(e,t,n){let{replacer:r}=n,i=new this(e);if(t&&Symbol.iterator in Object(t))for(let e of t)typeof r==`function`&&(e=r.call(t,e,e)),i.items.push(YL(e,null,n));return i}};WR.tag=`tag:yaml.org,2002:set`;var GR={collection:`map`,identify:e=>e instanceof Set,nodeClass:WR,default:!1,tag:`tag:yaml.org,2002:set`,createNode:(e,t,n)=>WR.from(e,t,n),resolve(e,t){if(II(e)){if(e.hasAllNullValues(!0))return Object.assign(new WR,e);t(`Set items must all have null values`)}else t(`Expected a mapping for this tag`);return e}};function KR(e,t){let n=e[0],r=n===`-`||n===`+`?e.substring(1):e,i=e=>t?BigInt(e):Number(e),a=r.replace(/_/g,``).split(`:`).reduce((e,t)=>e*i(60)+i(t),i(0));return n===`-`?i(-1)*a:a}function qR(e){let{value:t}=e,n=e=>e;if(typeof t==`bigint`)n=e=>BigInt(e);else if(isNaN(t)||!isFinite(t))return uR(e);let r=``;t<0&&(r=`-`,t*=n(-1));let i=n(60),a=[t%i];return t<60?a.unshift(0):(t=(t-a[0])/i,a.unshift(t%i),t>=60&&(t=(t-a[0])/i,a.unshift(t))),r+a.map(e=>String(e).padStart(2,`0`)).join(`:`).replace(/000000\d*$/,``)}var JR={identify:e=>typeof e==`bigint`||Number.isInteger(e),default:!0,tag:`tag:yaml.org,2002:int`,format:`TIME`,test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(e,t,{intAsBigInt:n})=>KR(e,n),stringify:qR},YR={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,format:`TIME`,test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:e=>KR(e,!1),stringify:qR},XR={identify:e=>e instanceof Date,default:!0,tag:`tag:yaml.org,2002:timestamp`,test:RegExp(`^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$`),resolve(e){let t=e.match(XR.test);if(!t)throw Error(`!!timestamp expects a date, starting with yyyy-mm-dd`);let[,n,r,i,a,o,s]=t.map(Number),c=t[7]?Number((t[7]+`00`).substr(1,3)):0,l=Date.UTC(n,r-1,i,a||0,o||0,s||0,c),u=t[8];if(u&&u!==`Z`){let e=KR(u,!1);Math.abs(e)<30&&(e*=60),l-=6e4*e}return new Date(l)},stringify:({value:e})=>e?.toISOString().replace(/(T00:00:00)?\.000Z$/,``)??``},ZR=[rR,oR,sR,cR,MR,NR,BR,VR,HR,UR,PR,FR,IR,TR,HL,AR,OR,GR,JR,YR,XR],QR=new Map([[`core`,bR],[`failsafe`,[rR,oR,sR]],[`json`,wR],[`yaml11`,ZR],[`yaml-1.1`,ZR]]),$R={binary:TR,bool:lR,float:pR,floatExp:fR,floatNaN:dR,floatTime:YR,int:vR,intHex:yR,intOct:_R,intTime:JR,map:rR,merge:HL,null:cR,omap:AR,pairs:OR,seq:oR,set:GR,timestamp:XR},ez={"tag:yaml.org,2002:binary":TR,"tag:yaml.org,2002:merge":HL,"tag:yaml.org,2002:omap":AR,"tag:yaml.org,2002:pairs":OR,"tag:yaml.org,2002:set":GR,"tag:yaml.org,2002:timestamp":XR};function tz(e,t,n){let r=QR.get(t);if(r&&!e)return n&&!r.includes(HL)?r.concat(HL):r.slice();let i=r;if(!i){if(Array.isArray(e))i=[];else{let e=Array.from(QR.keys()).filter(e=>e!==`yaml11`).map(e=>JSON.stringify(e)).join(`, `);throw Error(`Unknown schema "${t}"; use one of ${e} or define customTags array`)}}if(Array.isArray(e))for(let t of e)i=i.concat(t);else typeof e==`function`&&(i=e(i.slice()));return n&&(i=i.concat(HL)),i.reduce((e,t)=>{let n=typeof t==`string`?$R[t]:t;if(!n){let e=JSON.stringify(t),n=Object.keys($R).map(e=>JSON.stringify(e)).join(`, `);throw Error(`Unknown custom tag ${e}; use one of ${n}`)}return e.includes(n)||e.push(n),e},[])}var nz=(e,t)=>e.key<t.key?-1:+(e.key>t.key),rz=class e{constructor({compat:e,customTags:t,merge:n,resolveKnownTags:r,schema:i,sortMapEntries:a,toStringDefaults:o}){this.compat=Array.isArray(e)?tz(e,`compat`):e?tz(null,e):null,this.name=typeof i==`string`&&i||`core`,this.knownTags=r?ez:{},this.tags=tz(t,this.name,n),this.toStringOptions=o??null,Object.defineProperty(this,kI,{value:rR}),Object.defineProperty(this,jI,{value:sR}),Object.defineProperty(this,MI,{value:oR}),this.sortMapEntries=typeof a==`function`?a:a===!0?nz:null}clone(){let t=Object.create(e.prototype,Object.getOwnPropertyDescriptors(this));return t.tags=this.tags.slice(),t}};function iz(e,t){let n=[],r=t.directives===!0;if(t.directives!==!1&&e.directives){let t=e.directives.toString(e);t?(n.push(t),r=!0):e.directives.docStart&&(r=!0)}r&&n.push(`---`);let i=FL(e,t),{commentString:a}=i.options;if(e.commentBefore){n.length!==1&&n.unshift(``);let t=a(e.commentBefore);n.unshift(vL(t,``))}let o=!1,s=null;if(e.contents){if(VI(e.contents)){if(e.contents.spaceBefore&&r&&n.push(``),e.contents.commentBefore){let t=a(e.contents.commentBefore);n.push(vL(t,``))}i.forceBlockIndent=!!e.comment,s=e.contents.comment}let t=s?void 0:()=>o=!0,c=RL(e.contents,i,()=>s=null,t);s&&(c+=yL(c,``,a(s))),(c[0]===`|`||c[0]===`>`)&&n[n.length-1]===`---`?n[n.length-1]=`--- ${c}`:n.push(c)}else n.push(RL(e.contents,i));if(e.directives?.docEnd){if(e.comment){let t=a(e.comment);t.includes(`
161
- `)?(n.push(`...`),n.push(vL(t,``))):n.push(`... ${t}`)}else n.push(`...`)}else{let t=e.comment;t&&o&&(t=t.replace(/^\n+/,``)),t&&((!o||s)&&n[n.length-1]!==``&&n.push(``),n.push(vL(a(t),``)))}return n.join(`
162
- `)+`
163
- `}var az=class e{constructor(e,t,n){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,NI,{value:OI});let r=null;typeof t==`function`||Array.isArray(t)?r=t:n===void 0&&t&&(n=t,t=void 0);let i=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:`warn`,prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:`1.2`},n);this.options=i;let{version:a}=i;n?._directives?(this.directives=n._directives.atDocument(),this.directives.yaml.explicit&&(a=this.directives.yaml.version)):this.directives=new $I({version:a}),this.setSchema(a,n),this.contents=e===void 0?null:this.createNode(e,r,n)}clone(){let t=Object.create(e.prototype,{[NI]:{value:OI}});return t.commentBefore=this.commentBefore,t.comment=this.comment,t.errors=this.errors.slice(),t.warnings=this.warnings.slice(),t.options=Object.assign({},this.options),this.directives&&(t.directives=this.directives.clone()),t.schema=this.schema.clone(),t.contents=VI(this.contents)?this.contents.clone(t.schema):this.contents,this.range&&(t.range=this.range.slice()),t}add(e){oz(this.contents)&&this.contents.add(e)}addIn(e,t){oz(this.contents)&&this.contents.addIn(e,t)}createAlias(e,t){if(!e.anchor){let n=tL(this);e.anchor=!t||n.has(t)?nL(t||`a`,n):t}return new sL(e.anchor)}createNode(e,t,n){let r;if(typeof t==`function`)e=t.call({"":e},``,e),r=t;else if(Array.isArray(t)){let e=t.filter(e=>typeof e==`number`||e instanceof String||e instanceof Number).map(String);e.length>0&&(t=t.concat(e)),r=t}else n===void 0&&t&&(n=t,t=void 0);let{aliasDuplicateObjects:i,anchorPrefix:a,flow:o,keepUndefined:s,onTagObj:c,tag:l}=n??{},{onAnchor:u,setAnchors:d,sourceObjects:f}=rL(this,a||`a`),p={aliasDuplicateObjects:i??!0,keepUndefined:s??!1,onAnchor:u,onTagObj:c,replacer:r,schema:this.schema,sourceObjects:f},m=pL(e,l,p);return o&&BI(m)&&(m.flow=!0),d(),m}createPair(e,t,n={}){return new XL(this.createNode(e,null,n),this.createNode(t,null,n))}delete(e){return oz(this.contents)?this.contents.delete(e):!1}deleteIn(e){return hL(e)?this.contents!=null&&(this.contents=null,!0):oz(this.contents)?this.contents.deleteIn(e):!1}get(e,t){return BI(this.contents)?this.contents.get(e,t):void 0}getIn(e,t){return hL(e)?!t&&RI(this.contents)?this.contents.value:this.contents:BI(this.contents)?this.contents.getIn(e,t):void 0}has(e){return BI(this.contents)?this.contents.has(e):!1}hasIn(e){return hL(e)?this.contents!==void 0:BI(this.contents)?this.contents.hasIn(e):!1}set(e,t){this.contents==null?this.contents=mL(this.schema,[e],t):oz(this.contents)&&this.contents.set(e,t)}setIn(e,t){hL(e)?this.contents=t:this.contents==null?this.contents=mL(this.schema,Array.from(e),t):oz(this.contents)&&this.contents.setIn(e,t)}setSchema(e,t={}){typeof e==`number`&&(e=String(e));let n;switch(e){case`1.1`:this.directives?this.directives.yaml.version=`1.1`:this.directives=new $I({version:`1.1`}),n={resolveKnownTags:!1,schema:`yaml-1.1`};break;case`1.2`:case`next`:this.directives?this.directives.yaml.version=e:this.directives=new $I({version:e}),n={resolveKnownTags:!0,schema:`core`};break;case null:this.directives&&delete this.directives,n=null;break;default:{let t=JSON.stringify(e);throw Error(`Expected '1.1', '1.2' or null as first argument, but found: ${t}`)}}if(t.schema instanceof Object)this.schema=t.schema;else if(n)this.schema=new rz(Object.assign(n,t));else throw Error(`With a null YAML version, the { schema: Schema } option is required`)}toJS({json:e,jsonArg:t,mapAsMap:n,maxAliasCount:r,onAnchor:i,reviver:a}={}){let o={anchors:new Map,doc:this,keep:!e,mapAsMap:n===!0,mapKeyWarned:!1,maxAliasCount:typeof r==`number`?r:100},s=aL(this.contents,t??``,o);if(typeof i==`function`)for(let{count:e,res:t}of o.anchors.values())i(t,e);return typeof a==`function`?iL(a,{"":s},``,s):s}toJSON(e,t){return this.toJS({json:!0,jsonArg:e,mapAsMap:!1,onAnchor:t})}toString(e={}){if(this.errors.length>0)throw Error(`Document with errors cannot be stringified`);if(`indent`in e&&(!Number.isInteger(e.indent)||Number(e.indent)<=0)){let t=JSON.stringify(e.indent);throw Error(`"indent" option must be a positive integer, not ${t}`)}return iz(this,e)}};function oz(e){if(BI(e))return!0;throw Error(`Expected a YAML collection as document contents`)}var sz=class extends Error{constructor(e,t,n,r){super(),this.name=e,this.code=n,this.message=r,this.pos=t}},cz=class extends sz{constructor(e,t,n){super(`YAMLParseError`,e,t,n)}},lz=class extends sz{constructor(e,t,n){super(`YAMLWarning`,e,t,n)}},uz=(e,t)=>n=>{if(n.pos[0]===-1)return;n.linePos=n.pos.map(e=>t.linePos(e));let{line:r,col:i}=n.linePos[0];n.message+=` at line ${r}, column ${i}`;let a=i-1,o=e.substring(t.lineStarts[r-1],t.lineStarts[r]).replace(/[\n\r]+$/,``);if(a>=60&&o.length>80){let e=Math.min(a-39,o.length-79);o=`…`+o.substring(e),a-=e-1}if(o.length>80&&(o=o.substring(0,79)+`…`),r>1&&/^ *$/.test(o.substring(0,a))){let n=e.substring(t.lineStarts[r-2],t.lineStarts[r-1]);n.length>80&&(n=n.substring(0,79)+`…
164
- `),o=n+o}if(/[^ ]/.test(o)){let e=1,t=n.linePos[1];t?.line===r&&t.col>i&&(e=Math.max(1,Math.min(t.col-i,80-a)));let s=` `.repeat(a)+`^`.repeat(e);n.message+=`:\n\n${o}\n${s}\n`}};function dz(e,{flow:t,indicator:n,next:r,offset:i,onError:a,parentIndent:o,startOnNewline:s}){let c=!1,l=s,u=s,d=``,f=``,p=!1,m=!1,h=null,g=null,_=null,v=null,y=null,b=null,x=null;for(let i of e)switch(m&&=(i.type!==`space`&&i.type!==`newline`&&i.type!==`comma`&&a(i.offset,`MISSING_CHAR`,`Tags and anchors must be separated from the next token by white space`),!1),h&&=(l&&i.type!==`comment`&&i.type!==`newline`&&a(h,`TAB_AS_INDENT`,`Tabs are not allowed as indentation`),null),i.type){case`space`:!t&&(n!==`doc-start`||r?.type!==`flow-collection`)&&i.source.includes(` `)&&(h=i),u=!0;break;case`comment`:{u||a(i,`MISSING_CHAR`,`Comments must be separated from other tokens by white space characters`);let e=i.source.substring(1)||` `;d?d+=f+e:d=e,f=``,l=!1;break}case`newline`:l?d?d+=i.source:(!b||n!==`seq-item-ind`)&&(c=!0):f+=i.source,l=!0,p=!0,(g||_)&&(v=i),u=!0;break;case`anchor`:g&&a(i,`MULTIPLE_ANCHORS`,`A node can have at most one anchor`),i.source.endsWith(`:`)&&a(i.offset+i.source.length-1,`BAD_ALIAS`,`Anchor ending in : is ambiguous`,!0),g=i,x??=i.offset,l=!1,u=!1,m=!0;break;case`tag`:_&&a(i,`MULTIPLE_TAGS`,`A node can have at most one tag`),_=i,x??=i.offset,l=!1,u=!1,m=!0;break;case n:(g||_)&&a(i,`BAD_PROP_ORDER`,`Anchors and tags must be after the ${i.source} indicator`),b&&a(i,`UNEXPECTED_TOKEN`,`Unexpected ${i.source} in ${t??`collection`}`),b=i,l=n===`seq-item-ind`||n===`explicit-key-ind`,u=!1;break;case`comma`:if(t){y&&a(i,`UNEXPECTED_TOKEN`,`Unexpected , in ${t}`),y=i,l=!1,u=!1;break}default:a(i,`UNEXPECTED_TOKEN`,`Unexpected ${i.type} token`),l=!1,u=!1}let S=e[e.length-1],C=S?S.offset+S.source.length:i;return m&&r&&r.type!==`space`&&r.type!==`newline`&&r.type!==`comma`&&(r.type!==`scalar`||r.source!==``)&&a(r.offset,`MISSING_CHAR`,`Tags and anchors must be separated from the next token by white space`),h&&(l&&h.indent<=o||r?.type===`block-map`||r?.type===`block-seq`)&&a(h,`TAB_AS_INDENT`,`Tabs are not allowed as indentation`),{comma:y,found:b,spaceBefore:c,comment:d,hasNewline:p,anchor:g,tag:_,newlineAfterProp:v,end:C,start:x??C}}function fz(e){if(!e)return null;switch(e.type){case`alias`:case`scalar`:case`double-quoted-scalar`:case`single-quoted-scalar`:if(e.source.includes(`
165
- `))return!0;if(e.end){for(let t of e.end)if(t.type===`newline`)return!0}return!1;case`flow-collection`:for(let t of e.items){for(let e of t.start)if(e.type===`newline`)return!0;if(t.sep){for(let e of t.sep)if(e.type===`newline`)return!0}if(fz(t.key)||fz(t.value))return!0}return!1;default:return!0}}function pz(e,t,n){if(t?.type===`flow-collection`){let r=t.end[0];r.indent===e&&(r.source===`]`||r.source===`}`)&&fz(t)&&n(r,`BAD_INDENT`,`Flow end indicator should be more indented than parent`,!0)}}function mz(e,t,n){let{uniqueKeys:r}=e.options;if(r===!1)return!1;let i=typeof r==`function`?r:(e,t)=>e===t||RI(e)&&RI(t)&&e.value===t.value;return t.some(e=>i(e.key,n))}var hz=`All mapping items must start at the same column`;function gz({composeNode:e,composeEmptyNode:t},n,r,i,a){let o=new((a?.nodeClass)??nR)(n.schema);n.atRoot&&=!1;let s=r.offset,c=null;for(let a of r.items){let{start:l,key:u,sep:d,value:f}=a,p=dz(l,{indicator:`explicit-key-ind`,next:u??d?.[0],offset:s,onError:i,parentIndent:r.indent,startOnNewline:!0}),m=!p.found;if(m){if(u&&(u.type===`block-seq`?i(s,`BLOCK_AS_IMPLICIT_KEY`,`A block sequence may not be used as an implicit map key`):`indent`in u&&u.indent!==r.indent&&i(s,`BAD_INDENT`,hz)),!p.anchor&&!p.tag&&!d){c=p.end,p.comment&&(o.comment?o.comment+=`
166
- `+p.comment:o.comment=p.comment);continue}(p.newlineAfterProp||fz(u))&&i(u??l[l.length-1],`MULTILINE_IMPLICIT_KEY`,`Implicit keys need to be on a single line`)}else p.found?.indent!==r.indent&&i(s,`BAD_INDENT`,hz);n.atKey=!0;let h=p.end,g=u?e(n,u,p,i):t(n,h,l,null,p,i);n.schema.compat&&pz(r.indent,u,i),n.atKey=!1,mz(n,o.items,g)&&i(h,`DUPLICATE_KEY`,`Map keys must be unique`);let _=dz(d??[],{indicator:`map-value-ind`,next:f,offset:g.range[2],onError:i,parentIndent:r.indent,startOnNewline:!u||u.type===`block-scalar`});if(s=_.end,_.found){m&&(f?.type===`block-map`&&!_.hasNewline&&i(s,`BLOCK_AS_IMPLICIT_KEY`,`Nested mappings are not allowed in compact mappings`),n.options.strict&&p.start<_.found.offset-1024&&i(g.range,`KEY_OVER_1024_CHARS`,`The : indicator must be at most 1024 chars after the start of an implicit block mapping key`));let c=f?e(n,f,_,i):t(n,s,d,null,_,i);n.schema.compat&&pz(r.indent,f,i),s=c.range[2];let l=new XL(g,c);n.options.keepSourceTokens&&(l.srcToken=a),o.items.push(l)}else{m&&i(g.range,`MISSING_CHAR`,`Implicit map keys need to be followed by map values`),_.comment&&(g.comment?g.comment+=`
167
- `+_.comment:g.comment=_.comment);let e=new XL(g);n.options.keepSourceTokens&&(e.srcToken=a),o.items.push(e)}}return c&&c<s&&i(c,`IMPOSSIBLE`,`Map comment with trailing content`),o.range=[r.offset,s,c??s],o}function _z({composeNode:e,composeEmptyNode:t},n,r,i,a){let o=new((a?.nodeClass)??iR)(n.schema);n.atRoot&&=!1,n.atKey&&=!1;let s=r.offset,c=null;for(let{start:a,value:l}of r.items){let u=dz(a,{indicator:`seq-item-ind`,next:l,offset:s,onError:i,parentIndent:r.indent,startOnNewline:!0});if(!u.found){if(u.anchor||u.tag||l)l?.type===`block-seq`?i(u.end,`BAD_INDENT`,`All sequence items must start at the same column`):i(s,`MISSING_CHAR`,`Sequence item without - indicator`);else{c=u.end,u.comment&&(o.comment=u.comment);continue}}let d=l?e(n,l,u,i):t(n,u.end,a,null,u,i);n.schema.compat&&pz(r.indent,l,i),s=d.range[2],o.items.push(d)}return o.range=[r.offset,s,c??s],o}function vz(e,t,n,r){let i=``;if(e){let a=!1,o=``;for(let s of e){let{source:e,type:c}=s;switch(c){case`space`:a=!0;break;case`comment`:{n&&!a&&r(s,`MISSING_CHAR`,`Comments must be separated from other tokens by white space characters`);let t=e.substring(1)||` `;i?i+=o+t:i=t,o=``;break}case`newline`:i&&(o+=e),a=!0;break;default:r(s,`UNEXPECTED_TOKEN`,`Unexpected ${c} at node end`)}t+=e.length}}return{comment:i,offset:t}}var yz=`Block collections are not allowed within flow collections`,bz=e=>e&&(e.type===`block-map`||e.type===`block-seq`);function xz({composeNode:e,composeEmptyNode:t},n,r,i,a){let o=r.start.source===`{`,s=o?`flow map`:`flow sequence`,c=new((a?.nodeClass)??(o?nR:iR))(n.schema);c.flow=!0;let l=n.atRoot;l&&(n.atRoot=!1),n.atKey&&=!1;let u=r.offset+r.start.source.length;for(let a=0;a<r.items.length;++a){let l=r.items[a],{start:d,key:f,sep:p,value:m}=l,h=dz(d,{flow:s,indicator:`explicit-key-ind`,next:f??p?.[0],offset:u,onError:i,parentIndent:r.indent,startOnNewline:!1});if(!h.found){if(!h.anchor&&!h.tag&&!p&&!m){a===0&&h.comma?i(h.comma,`UNEXPECTED_TOKEN`,`Unexpected , in ${s}`):a<r.items.length-1&&i(h.start,`UNEXPECTED_TOKEN`,`Unexpected empty item in ${s}`),h.comment&&(c.comment?c.comment+=`
168
- `+h.comment:c.comment=h.comment),u=h.end;continue}!o&&n.options.strict&&fz(f)&&i(f,`MULTILINE_IMPLICIT_KEY`,`Implicit keys of flow sequence pairs need to be on a single line`)}if(a===0)h.comma&&i(h.comma,`UNEXPECTED_TOKEN`,`Unexpected , in ${s}`);else if(h.comma||i(h.start,`MISSING_CHAR`,`Missing , between ${s} items`),h.comment){let e=``;loop:for(let t of d)switch(t.type){case`comma`:case`space`:break;case`comment`:e=t.source.substring(1);break loop;default:break loop}if(e){let t=c.items[c.items.length-1];LI(t)&&(t=t.value??t.key),t.comment?t.comment+=`
169
- `+e:t.comment=e,h.comment=h.comment.substring(e.length+1)}}if(!o&&!p&&!h.found){let r=m?e(n,m,h,i):t(n,h.end,p,null,h,i);c.items.push(r),u=r.range[2],bz(m)&&i(r.range,`BLOCK_IN_FLOW`,yz)}else{n.atKey=!0;let a=h.end,g=f?e(n,f,h,i):t(n,a,d,null,h,i);bz(f)&&i(g.range,`BLOCK_IN_FLOW`,yz),n.atKey=!1;let _=dz(p??[],{flow:s,indicator:`map-value-ind`,next:m,offset:g.range[2],onError:i,parentIndent:r.indent,startOnNewline:!1});if(_.found){if(!o&&!h.found&&n.options.strict){if(p)for(let e of p){if(e===_.found)break;if(e.type===`newline`){i(e,`MULTILINE_IMPLICIT_KEY`,`Implicit keys of flow sequence pairs need to be on a single line`);break}}h.start<_.found.offset-1024&&i(_.found,`KEY_OVER_1024_CHARS`,`The : indicator must be at most 1024 chars after the start of an implicit flow sequence key`)}}else m&&(`source`in m&&m.source?.[0]===`:`?i(m,`MISSING_CHAR`,`Missing space after : in ${s}`):i(_.start,`MISSING_CHAR`,`Missing , or : between ${s} items`));let v=m?e(n,m,_,i):_.found?t(n,_.end,p,null,_,i):null;v?bz(m)&&i(v.range,`BLOCK_IN_FLOW`,yz):_.comment&&(g.comment?g.comment+=`
170
- `+_.comment:g.comment=_.comment);let y=new XL(g,v);if(n.options.keepSourceTokens&&(y.srcToken=l),o){let e=c;mz(n,e.items,g)&&i(a,`DUPLICATE_KEY`,`Map keys must be unique`),e.items.push(y)}else{let e=new nR(n.schema);e.flow=!0,e.items.push(y);let t=(v??g).range;e.range=[g.range[0],t[1],t[2]],c.items.push(e)}u=v?v.range[2]:_.end}}let d=o?`}`:`]`,[f,...p]=r.end,m=u;if(f?.source===d)m=f.offset+f.source.length;else{let e=s[0].toUpperCase()+s.substring(1),t=l?`${e} must end with a ${d}`:`${e} in block collection must be sufficiently indented and end with a ${d}`;i(u,l?`MISSING_CHAR`:`BAD_INDENT`,t),f&&f.source.length!==1&&p.unshift(f)}if(p.length>0){let e=vz(p,m,n.options.strict,i);e.comment&&(c.comment?c.comment+=`
171
- `+e.comment:c.comment=e.comment),c.range=[r.offset,m,e.offset]}else c.range=[r.offset,m,m];return c}function Sz(e,t,n,r,i,a){let o=n.type===`block-map`?gz(e,t,n,r,a):n.type===`block-seq`?_z(e,t,n,r,a):xz(e,t,n,r,a),s=o.constructor;return i===`!`||i===s.tagName?(o.tag=s.tagName,o):(i&&(o.tag=i),o)}function Cz(e,t,n,r,i){let a=r.tag,o=a?t.directives.tagName(a.source,e=>i(a,`TAG_RESOLVE_FAILED`,e)):null;if(n.type===`block-seq`){let{anchor:e,newlineAfterProp:t}=r,n=e&&a?e.offset>a.offset?e:a:e??a;n&&(!t||t.offset<n.offset)&&i(n,`MISSING_CHAR`,`Missing newline after block sequence props`)}let s=n.type===`block-map`?`map`:n.type===`block-seq`?`seq`:n.start.source===`{`?`map`:`seq`;if(!a||!o||o===`!`||o===nR.tagName&&s===`map`||o===iR.tagName&&s===`seq`)return Sz(e,t,n,i,o);let c=t.schema.tags.find(e=>e.tag===o&&e.collection===s);if(!c){let r=t.schema.knownTags[o];if(r?.collection===s)t.schema.tags.push(Object.assign({},r,{default:!1})),c=r;else return r?i(a,`BAD_COLLECTION_TYPE`,`${r.tag} used for ${s} collection, but expects ${r.collection??`scalar`}`,!0):i(a,`TAG_RESOLVE_FAILED`,`Unresolved tag: ${o}`,!0),Sz(e,t,n,i,o)}let l=Sz(e,t,n,i,o,c),u=c.resolve?.(l,e=>i(a,`TAG_RESOLVE_FAILED`,e),t.options)??l,d=VI(u)?u:new uL(u);return d.range=l.range,d.tag=o,c?.format&&(d.format=c.format),d}function wz(e,t,n){let r=t.offset,i=Tz(t,e.options.strict,n);if(!i)return{value:``,type:null,comment:``,range:[r,r,r]};let a=i.mode===`>`?uL.BLOCK_FOLDED:uL.BLOCK_LITERAL,o=t.source?Ez(t.source):[],s=o.length;for(let e=o.length-1;e>=0;--e){let t=o[e][1];if(t===``||t===`\r`)s=e;else break}if(s===0){let e=i.chomp===`+`&&o.length>0?`
172
- `.repeat(Math.max(1,o.length-1)):``,n=r+i.length;return t.source&&(n+=t.source.length),{value:e,type:a,comment:i.comment,range:[r,n,n]}}let c=t.indent+i.indent,l=t.offset+i.length,u=0;for(let t=0;t<s;++t){let[r,a]=o[t];if(a===``||a===`\r`)i.indent===0&&r.length>c&&(c=r.length);else{r.length<c&&n(l+r.length,`MISSING_CHAR`,`Block scalars with more-indented leading empty lines must use an explicit indentation indicator`),i.indent===0&&(c=r.length),u=t,c===0&&!e.atRoot&&n(l,`BAD_INDENT`,`Block scalar values in collections must be indented`);break}l+=r.length+a.length+1}for(let e=o.length-1;e>=s;--e)o[e][0].length>c&&(s=e+1);let d=``,f=``,p=!1;for(let e=0;e<u;++e)d+=o[e][0].slice(c)+`
173
- `;for(let e=u;e<s;++e){let[t,r]=o[e];l+=t.length+r.length+1;let s=r[r.length-1]===`\r`;if(s&&(r=r.slice(0,-1)),r&&t.length<c){let e=`Block scalar lines must not be less indented than their ${i.indent?`explicit indentation indicator`:`first line`}`;n(l-r.length-(s?2:1),`BAD_INDENT`,e),t=``}a===uL.BLOCK_LITERAL?(d+=f+t.slice(c)+r,f=`
174
- `):t.length>c||r[0]===` `?(f===` `?f=`
175
- `:!p&&f===`
176
- `&&(f=`
177
-
178
- `),d+=f+t.slice(c)+r,f=`
179
- `,p=!0):r===``?f===`
180
- `?d+=`
181
- `:f=`
182
- `:(d+=f+r,f=` `,p=!1)}switch(i.chomp){case`-`:break;case`+`:for(let e=s;e<o.length;++e)d+=`
183
- `+o[e][0].slice(c);d[d.length-1]!==`
184
- `&&(d+=`
185
- `);break;default:d+=`
186
- `}let m=r+i.length+t.source.length;return{value:d,type:a,comment:i.comment,range:[r,m,m]}}function Tz({offset:e,props:t},n,r){if(t[0].type!==`block-scalar-header`)return r(t[0],`IMPOSSIBLE`,`Block scalar header not found`),null;let{source:i}=t[0],a=i[0],o=0,s=``,c=-1;for(let t=1;t<i.length;++t){let n=i[t];if(!s&&(n===`-`||n===`+`))s=n;else{let r=Number(n);!o&&r?o=r:c===-1&&(c=e+t)}}c!==-1&&r(c,`UNEXPECTED_TOKEN`,`Block scalar header includes extra characters: ${i}`);let l=!1,u=``,d=i.length;for(let e=1;e<t.length;++e){let i=t[e];switch(i.type){case`space`:l=!0;case`newline`:d+=i.source.length;break;case`comment`:n&&!l&&r(i,`MISSING_CHAR`,`Comments must be separated from other tokens by white space characters`),d+=i.source.length,u=i.source.substring(1);break;case`error`:r(i,`UNEXPECTED_TOKEN`,i.message),d+=i.source.length;break;default:{r(i,`UNEXPECTED_TOKEN`,`Unexpected token in block scalar header: ${i.type}`);let e=i.source;e&&typeof e==`string`&&(d+=e.length)}}}return{mode:a,indent:o,chomp:s,comment:u,length:d}}function Ez(e){let t=e.split(/\n( *)/),n=t[0],r=n.match(/^( *)/),i=[r?.[1]?[r[1],n.slice(r[1].length)]:[``,n]];for(let e=1;e<t.length;e+=2)i.push([t[e],t[e+1]]);return i}function Dz(e,t,n){let{offset:r,type:i,source:a,end:o}=e,s,c,l=(e,t,i)=>n(r+e,t,i);switch(i){case`scalar`:s=uL.PLAIN,c=Oz(a,l);break;case`single-quoted-scalar`:s=uL.QUOTE_SINGLE,c=kz(a,l);break;case`double-quoted-scalar`:s=uL.QUOTE_DOUBLE,c=jz(a,l);break;default:return n(e,`UNEXPECTED_TOKEN`,`Expected a flow scalar value, but found: ${i}`),{value:``,type:null,comment:``,range:[r,r+a.length,r+a.length]}}let u=r+a.length,d=vz(o,u,t,n);return{value:c,type:s,comment:d.comment,range:[r,u,d.offset]}}function Oz(e,t){let n=``;switch(e[0]){case` `:n=`a tab character`;break;case`,`:n=`flow indicator character ,`;break;case`%`:n=`directive indicator character %`;break;case`|`:case`>`:n=`block scalar indicator ${e[0]}`;break;case`@`:case"`":n=`reserved character ${e[0]}`}return n&&t(0,`BAD_SCALAR_START`,`Plain value cannot start with ${n}`),Az(e)}function kz(e,t){return(e[e.length-1]!==`'`||e.length===1)&&t(e.length,`MISSING_CHAR`,`Missing closing 'quote`),Az(e.slice(1,-1)).replace(/''/g,`'`)}function Az(e){let t=/(.*?)\r?\n/sy,n=t.exec(e);if(!n)return e;let r,i;try{r=RegExp(`(?<![ ])[ ]+$`),i=RegExp(`^[ ]+|(?<![ ])[ ]+$`,`g`)}catch{r=/[ \t]+$/,i=/^[ \t]+|[ \t]+$/g}let a=n[1].replace(r,``),o=` `,s=t.lastIndex;for(;n=t.exec(e);){let e=n[1].replace(i,``);e===``?o===`
187
- `?a+=o:o=`
188
- `:(a+=o+e,o=` `),s=t.lastIndex}let c=/[ \t]*(.*)/sy;return c.lastIndex=s,n=c.exec(e),a+o+(n?.[1]??``)}function jz(e,t){let n=``;for(let r=1;r<e.length-1;++r){let i=e[r];if(i!==`\r`||e[r+1]!==`
189
- `){if(i===`
190
- `){let{fold:t,offset:i}=Mz(e,r);n+=t,r=i}else if(i===`\\`){let i=e[++r],a=Nz[i];if(a)n+=a;else if(i===`
191
- `)for(i=e[r+1];i===` `||i===` `;)i=e[++r+1];else if(i===`\r`&&e[r+1]===`
192
- `)for(i=e[++r+1];i===` `||i===` `;)i=e[++r+1];else if(i===`x`||i===`u`||i===`U`){let a=i===`x`?2:i===`u`?4:8;n+=Pz(e,r+1,a,t),r+=a}else{let i=e.substr(r-1,2);t(r-1,`BAD_DQ_ESCAPE`,`Invalid escape sequence ${i}`),n+=i}}else if(i===` `||i===` `){let t=r,a=e[r+1];for(;a===` `||a===` `;)a=e[++r+1];a!==`
193
- `&&(a!==`\r`||e[r+2]!==`
194
- `)&&(n+=r>t?e.slice(t,r+1):i)}else n+=i}}return(e[e.length-1]!==`"`||e.length===1)&&t(e.length,`MISSING_CHAR`,`Missing closing "quote`),n}function Mz(e,t){let n=``,r=e[t+1];for(;(r===` `||r===` `||r===`
195
- `||r===`\r`)&&(r!==`\r`||e[t+2]===`
196
- `);)r===`
197
- `&&(n+=`
198
- `),t+=1,r=e[t+1];return n||=` `,{fold:n,offset:t}}var Nz={0:`\0`,a:`\x07`,b:`\b`,e:`\x1B`,f:`\f`,n:`
199
- `,r:`\r`,t:` `,v:`\v`,N:`…`,_:`\xA0`,L:`\u2028`,P:`\u2029`," ":` `,'"':`"`,"/":`/`,"\\":`\\`," ":` `};function Pz(e,t,n,r){let i=e.substr(t,n),a=i.length===n&&/^[0-9a-fA-F]+$/.test(i)?parseInt(i,16):NaN;try{return String.fromCodePoint(a)}catch{let i=e.substr(t-2,n+2);return r(t-2,`BAD_DQ_ESCAPE`,`Invalid escape sequence ${i}`),i}}function Fz(e,t,n,r){let{value:i,type:a,comment:o,range:s}=t.type===`block-scalar`?wz(e,t,r):Dz(t,e.options.strict,r),c=n?e.directives.tagName(n.source,e=>r(n,`TAG_RESOLVE_FAILED`,e)):null,l;l=e.options.stringKeys&&e.atKey?e.schema[jI]:c?Iz(e.schema,i,c,n,r):t.type===`scalar`?Lz(e,i,t,r):e.schema[jI];let u;try{let a=l.resolve(i,e=>r(n??t,`TAG_RESOLVE_FAILED`,e),e.options);u=RI(a)?a:new uL(a)}catch(e){let a=e instanceof Error?e.message:String(e);r(n??t,`TAG_RESOLVE_FAILED`,a),u=new uL(i)}return u.range=s,u.source=i,a&&(u.type=a),c&&(u.tag=c),l.format&&(u.format=l.format),o&&(u.comment=o),u}function Iz(e,t,n,r,i){if(n===`!`)return e[jI];let a=[];for(let t of e.tags)if(!t.collection&&t.tag===n){if(t.default&&t.test)a.push(t);else return t}for(let e of a)if(e.test?.test(t))return e;let o=e.knownTags[n];return o&&!o.collection?(e.tags.push(Object.assign({},o,{default:!1,test:void 0})),o):(i(r,`TAG_RESOLVE_FAILED`,`Unresolved tag: ${n}`,n!==`tag:yaml.org,2002:str`),e[jI])}function Lz({atKey:e,directives:t,schema:n},r,i,a){let o=n.tags.find(t=>(t.default===!0||e&&t.default===`key`)&&t.test?.test(r))||n[jI];if(n.compat){let e=n.compat.find(e=>e.default&&e.test?.test(r))??n[jI];o.tag!==e.tag&&a(i,`TAG_RESOLVE_FAILED`,`Value may be parsed as either ${t.tagString(o.tag)} or ${t.tagString(e.tag)}`,!0)}return o}function Rz(e,t,n){if(t){n??=t.length;for(let r=n-1;r>=0;--r){let n=t[r];switch(n.type){case`space`:case`comment`:case`newline`:e-=n.source.length;continue}for(n=t[++r];n?.type===`space`;)e+=n.source.length,n=t[++r];break}}return e}var zz={composeNode:Bz,composeEmptyNode:Vz};function Bz(e,t,n,r){let i=e.atKey,{spaceBefore:a,comment:o,anchor:s,tag:c}=n,l,u=!0;switch(t.type){case`alias`:l=Hz(e,t,r),(s||c)&&r(t,`ALIAS_PROPS`,`An alias node must not specify any properties`);break;case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:case`block-scalar`:l=Fz(e,t,c,r),s&&(l.anchor=s.source.substring(1));break;case`block-map`:case`block-seq`:case`flow-collection`:try{l=Cz(zz,e,t,n,r),s&&(l.anchor=s.source.substring(1))}catch(e){r(t,`RESOURCE_EXHAUSTION`,e instanceof Error?e.message:String(e))}break;default:r(t,`UNEXPECTED_TOKEN`,t.type===`error`?t.message:`Unsupported token (type: ${t.type})`),u=!1}return l??=Vz(e,t.offset,void 0,null,n,r),s&&l.anchor===``&&r(s,`BAD_ALIAS`,`Anchor cannot be an empty string`),i&&e.options.stringKeys&&(!RI(l)||typeof l.value!=`string`||l.tag&&l.tag!==`tag:yaml.org,2002:str`)&&r(c??t,`NON_STRING_KEY`,`With stringKeys, all keys must be strings`),a&&(l.spaceBefore=!0),o&&(t.type===`scalar`&&t.source===``?l.comment=o:l.commentBefore=o),e.options.keepSourceTokens&&u&&(l.srcToken=t),l}function Vz(e,t,n,r,{spaceBefore:i,comment:a,anchor:o,tag:s,end:c},l){let u=Fz(e,{type:`scalar`,offset:Rz(t,n,r),indent:-1,source:``},s,l);return o&&(u.anchor=o.source.substring(1),u.anchor===``&&l(o,`BAD_ALIAS`,`Anchor cannot be an empty string`)),i&&(u.spaceBefore=!0),a&&(u.comment=a,u.range[2]=c),u}function Hz({options:e},{offset:t,source:n,end:r},i){let a=new sL(n.substring(1));a.source===``&&i(t,`BAD_ALIAS`,`Alias cannot be an empty string`),a.source.endsWith(`:`)&&i(t+n.length-1,`BAD_ALIAS`,`Alias ending in : is ambiguous`,!0);let o=t+n.length,s=vz(r,o,e.strict,i);return a.range=[t,o,s.offset],s.comment&&(a.comment=s.comment),a}function Uz(e,t,{offset:n,start:r,value:i,end:a},o){let s=new az(void 0,Object.assign({_directives:t},e)),c={atKey:!1,atRoot:!0,directives:s.directives,options:s.options,schema:s.schema},l=dz(r,{indicator:`doc-start`,next:i??a?.[0],offset:n,onError:o,parentIndent:0,startOnNewline:!0});l.found&&(s.directives.docStart=!0,i&&(i.type===`block-map`||i.type===`block-seq`)&&!l.hasNewline&&o(l.end,`MISSING_CHAR`,`Block collection cannot start on same line with directives-end marker`)),s.contents=i?Bz(c,i,l,o):Vz(c,l.end,r,null,l,o);let u=s.contents.range[2],d=vz(a,u,!1,o);return d.comment&&(s.comment=d.comment),s.range=[n,u,d.offset],s}function Wz(e){if(typeof e==`number`)return[e,e+1];if(Array.isArray(e))return e.length===2?e:[e[0],e[1]];let{offset:t,source:n}=e;return[t,t+(typeof n==`string`?n.length:1)]}function Gz(e){let t=``,n=!1,r=!1;for(let i=0;i<e.length;++i){let a=e[i];switch(a[0]){case`#`:t+=(t===``?``:r?`
200
-
201
- `:`
202
- `)+(a.substring(1)||` `),n=!0,r=!1;break;case`%`:e[i+1]?.[0]!==`#`&&(i+=1),n=!1;break;default:n||(r=!0),n=!1}}return{comment:t,afterEmptyLine:r}}var Kz=class{constructor(e={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(e,t,n,r)=>{let i=Wz(e);r?this.warnings.push(new lz(i,t,n)):this.errors.push(new cz(i,t,n))},this.directives=new $I({version:e.version||`1.2`}),this.options=e}decorate(e,t){let{comment:n,afterEmptyLine:r}=Gz(this.prelude);if(n){let i=e.contents;if(t)e.comment=e.comment?`${e.comment}\n${n}`:n;else if(r||e.directives.docStart||!i)e.commentBefore=n;else if(BI(i)&&!i.flow&&i.items.length>0){let e=i.items[0];LI(e)&&(e=e.key);let t=e.commentBefore;e.commentBefore=t?`${n}\n${t}`:n}else{let e=i.commentBefore;i.commentBefore=e?`${n}\n${e}`:n}}if(t){for(let t=0;t<this.errors.length;++t)e.errors.push(this.errors[t]);for(let t=0;t<this.warnings.length;++t)e.warnings.push(this.warnings[t])}else e.errors=this.errors,e.warnings=this.warnings;this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:Gz(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(e,t=!1,n=-1){for(let t of e)yield*this.next(t);yield*this.end(t,n)}*next(e){switch(e.type){case`directive`:this.directives.add(e.source,(t,n,r)=>{let i=Wz(e);i[0]+=t,this.onError(i,`BAD_DIRECTIVE`,n,r)}),this.prelude.push(e.source),this.atDirectives=!0;break;case`document`:{let t=Uz(this.options,this.directives,e,this.onError);this.atDirectives&&!t.directives.docStart&&this.onError(e,`MISSING_CHAR`,`Missing directives-end/doc-start indicator line`),this.decorate(t,!1),this.doc&&(yield this.doc),this.doc=t,this.atDirectives=!1;break}case`byte-order-mark`:case`space`:break;case`comment`:case`newline`:this.prelude.push(e.source);break;case`error`:{let t=e.source?`${e.message}: ${JSON.stringify(e.source)}`:e.message,n=new cz(Wz(e),`UNEXPECTED_TOKEN`,t);this.atDirectives||!this.doc?this.errors.push(n):this.doc.errors.push(n);break}case`doc-end`:{if(!this.doc){this.errors.push(new cz(Wz(e),`UNEXPECTED_TOKEN`,`Unexpected doc-end without preceding document`));break}this.doc.directives.docEnd=!0;let t=vz(e.end,e.offset+e.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),t.comment){let e=this.doc.comment;this.doc.comment=e?`${e}\n${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.push(new cz(Wz(e),`UNEXPECTED_TOKEN`,`Unsupported token ${e.type}`))}}*end(e=!1,t=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(e){let e=new az(void 0,Object.assign({_directives:this.directives},this.options));this.atDirectives&&this.onError(t,`MISSING_CHAR`,`Missing directives-end indicator line`),e.range=[0,t,t],this.decorate(e,!1),yield e}}},qz=Symbol(`break visit`),Jz=Symbol(`skip children`),Yz=Symbol(`remove item`);function Xz(e,t){`type`in e&&e.type===`document`&&(e={start:e.start,value:e.value}),Zz(Object.freeze([]),e,t)}Xz.BREAK=qz,Xz.SKIP=Jz,Xz.REMOVE=Yz,Xz.itemAtPath=(e,t)=>{let n=e;for(let[e,r]of t){let t=n?.[e];if(t&&`items`in t)n=t.items[r];else return}return n},Xz.parentCollection=(e,t)=>{let n=Xz.itemAtPath(e,t.slice(0,-1)),r=t[t.length-1][0],i=n?.[r];if(i&&`items`in i)return i;throw Error(`Parent collection not found`)};function Zz(e,t,n){let r=n(t,e);if(typeof r==`symbol`)return r;for(let i of[`key`,`value`]){let a=t[i];if(a&&`items`in a){for(let t=0;t<a.items.length;++t){let r=Zz(Object.freeze(e.concat([[i,t]])),a.items[t],n);if(typeof r==`number`)t=r-1;else if(r===qz)return qz;else r===Yz&&(a.items.splice(t,1),--t)}typeof r==`function`&&i===`key`&&(r=r(t,e))}}return typeof r==`function`?r(t,e):r}function Qz(e){switch(e){case``:return`byte-order-mark`;case``:return`doc-mode`;case``:return`flow-error-end`;case``:return`scalar`;case`---`:return`doc-start`;case`...`:return`doc-end`;case``:case`
203
- `:case`\r
204
- `:return`newline`;case`-`:return`seq-item-ind`;case`?`:return`explicit-key-ind`;case`:`:return`map-value-ind`;case`{`:return`flow-map-start`;case`}`:return`flow-map-end`;case`[`:return`flow-seq-start`;case`]`:return`flow-seq-end`;case`,`:return`comma`}switch(e[0]){case` `:case` `:return`space`;case`#`:return`comment`;case`%`:return`directive-line`;case`*`:return`alias`;case`&`:return`anchor`;case`!`:return`tag`;case`'`:return`single-quoted-scalar`;case`"`:return`double-quoted-scalar`;case`|`:case`>`:return`block-scalar-header`}return null}function $z(e){switch(e){case void 0:case` `:case`
205
- `:case`\r`:case` `:return!0;default:return!1}}var eB=new Set(`0123456789ABCDEFabcdef`),tB=new Set(`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()`),nB=new Set(`,[]{}`),rB=new Set(` ,[]{}
206
- \r `),iB=e=>!e||rB.has(e),aB=class{constructor(){this.atEnd=!1,this.blockScalarIndent=-1,this.blockScalarKeep=!1,this.buffer=``,this.flowKey=!1,this.flowLevel=0,this.indentNext=0,this.indentValue=0,this.lineEndPos=null,this.next=null,this.pos=0}*lex(e,t=!1){if(e){if(typeof e!=`string`)throw TypeError(`source is not a string`);this.buffer=this.buffer?this.buffer+e:e,this.lineEndPos=null}this.atEnd=!t;let n=this.next??`stream`;for(;n&&(t||this.hasChars(1));)n=yield*this.parseNext(n)}atLineEnd(){let e=this.pos,t=this.buffer[e];for(;t===` `||t===` `;)t=this.buffer[++e];return!t||t===`#`||t===`
207
- `||t===`\r`&&this.buffer[e+1]===`
208
- `}charAt(e){return this.buffer[this.pos+e]}continueScalar(e){let t=this.buffer[e];if(this.indentNext>0){let n=0;for(;t===` `;)t=this.buffer[++n+e];if(t===`\r`){let t=this.buffer[n+e+1];if(t===`
209
- `||!t&&!this.atEnd)return e+n+1}return t===`
210
- `||n>=this.indentNext||!t&&!this.atEnd?e+n:-1}if(t===`-`||t===`.`){let t=this.buffer.substr(e,3);if((t===`---`||t===`...`)&&$z(this.buffer[e+3]))return-1}return e}getLine(){let e=this.lineEndPos;return(typeof e!=`number`||e!==-1&&e<this.pos)&&(e=this.buffer.indexOf(`
211
- `,this.pos),this.lineEndPos=e),e===-1?this.atEnd?this.buffer.substring(this.pos):null:(this.buffer[e-1]===`\r`&&--e,this.buffer.substring(this.pos,e))}hasChars(e){return this.pos+e<=this.buffer.length}setNext(e){return this.buffer=this.buffer.substring(this.pos),this.pos=0,this.lineEndPos=null,this.next=e,null}peek(e){return this.buffer.substr(this.pos,e)}*parseNext(e){switch(e){case`stream`:return yield*this.parseStream();case`line-start`:return yield*this.parseLineStart();case`block-start`:return yield*this.parseBlockStart();case`doc`:return yield*this.parseDocument();case`flow`:return yield*this.parseFlowCollection();case`quoted-scalar`:return yield*this.parseQuotedScalar();case`block-scalar`:return yield*this.parseBlockScalar();case`plain-scalar`:return yield*this.parsePlainScalar()}}*parseStream(){let e=this.getLine();if(e===null)return this.setNext(`stream`);if(e[0]===``&&(yield*this.pushCount(1),e=e.substring(1)),e[0]===`%`){let t=e.length,n=e.indexOf(`#`);for(;n!==-1;){let r=e[n-1];if(r===` `||r===` `){t=n-1;break}n=e.indexOf(`#`,n+1)}for(;;){let n=e[t-1];if(n===` `||n===` `)--t;else break}let r=(yield*this.pushCount(t))+(yield*this.pushSpaces(!0));return yield*this.pushCount(e.length-r),this.pushNewline(),`stream`}if(this.atLineEnd()){let t=yield*this.pushSpaces(!0);return yield*this.pushCount(e.length-t),yield*this.pushNewline(),`stream`}return yield``,yield*this.parseLineStart()}*parseLineStart(){let e=this.charAt(0);if(!e&&!this.atEnd)return this.setNext(`line-start`);if(e===`-`||e===`.`){if(!this.atEnd&&!this.hasChars(4))return this.setNext(`line-start`);let e=this.peek(3);if((e===`---`||e===`...`)&&$z(this.charAt(3)))return yield*this.pushCount(3),this.indentValue=0,this.indentNext=0,e===`---`?`doc`:`stream`}return this.indentValue=yield*this.pushSpaces(!1),this.indentNext>this.indentValue&&!$z(this.charAt(1))&&(this.indentNext=this.indentValue),yield*this.parseBlockStart()}*parseBlockStart(){let[e,t]=this.peek(2);if(!t&&!this.atEnd)return this.setNext(`block-start`);if((e===`-`||e===`?`||e===`:`)&&$z(t)){let e=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=e,`block-start`}return`doc`}*parseDocument(){yield*this.pushSpaces(!0);let e=this.getLine();if(e===null)return this.setNext(`doc`);let t=yield*this.pushIndicators();switch(e[t]){case`#`:yield*this.pushCount(e.length-t);case void 0:return yield*this.pushNewline(),yield*this.parseLineStart();case`{`:case`[`:return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel=1,`flow`;case`}`:case`]`:return yield*this.pushCount(1),`doc`;case`*`:return yield*this.pushUntil(iB),`doc`;case`"`:case`'`:return yield*this.parseQuotedScalar();case`|`:case`>`:return t+=yield*this.parseBlockScalarHeader(),t+=yield*this.pushSpaces(!0),yield*this.pushCount(e.length-t),yield*this.pushNewline(),yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let e,t,n=-1;do e=yield*this.pushNewline(),e>0?(t=yield*this.pushSpaces(!1),this.indentValue=n=t):t=0,t+=yield*this.pushSpaces(!0);while(e+t>0);let r=this.getLine();if(r===null)return this.setNext(`flow`);if((n!==-1&&n<this.indentNext&&r[0]!==`#`||n===0&&(r.startsWith(`---`)||r.startsWith(`...`))&&$z(r[3]))&&(n!==this.indentNext-1||this.flowLevel!==1||r[0]!==`]`&&r[0]!==`}`))return this.flowLevel=0,yield``,yield*this.parseLineStart();let i=0;for(;r[i]===`,`;)i+=yield*this.pushCount(1),i+=yield*this.pushSpaces(!0),this.flowKey=!1;switch(i+=yield*this.pushIndicators(),r[i]){case void 0:return`flow`;case`#`:return yield*this.pushCount(r.length-i),`flow`;case`{`:case`[`:return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel+=1,`flow`;case`}`:case`]`:return yield*this.pushCount(1),this.flowKey=!0,--this.flowLevel,this.flowLevel?`flow`:`doc`;case`*`:return yield*this.pushUntil(iB),`flow`;case`"`:case`'`:return this.flowKey=!0,yield*this.parseQuotedScalar();case`:`:{let e=this.charAt(1);if(this.flowKey||$z(e)||e===`,`)return this.flowKey=!1,yield*this.pushCount(1),yield*this.pushSpaces(!0),`flow`}default:return this.flowKey=!1,yield*this.parsePlainScalar()}}*parseQuotedScalar(){let e=this.charAt(0),t=this.buffer.indexOf(e,this.pos+1);if(e===`'`)for(;t!==-1&&this.buffer[t+1]===`'`;)t=this.buffer.indexOf(`'`,t+2);else for(;t!==-1;){let e=0;for(;this.buffer[t-1-e]===`\\`;)e+=1;if(e%2==0)break;t=this.buffer.indexOf(`"`,t+1)}let n=this.buffer.substring(0,t),r=n.indexOf(`
212
- `,this.pos);if(r!==-1){for(;r!==-1;){let e=this.continueScalar(r+1);if(e===-1)break;r=n.indexOf(`
213
- `,e)}r!==-1&&(t=r-(n[r-1]===`\r`?2:1))}if(t===-1){if(!this.atEnd)return this.setNext(`quoted-scalar`);t=this.buffer.length}return yield*this.pushToIndex(t+1,!1),this.flowLevel?`flow`:`doc`}*parseBlockScalarHeader(){this.blockScalarIndent=-1,this.blockScalarKeep=!1;let e=this.pos;for(;;){let t=this.buffer[++e];if(t===`+`)this.blockScalarKeep=!0;else if(t>`0`&&t<=`9`)this.blockScalarIndent=Number(t)-1;else if(t!==`-`)break}return yield*this.pushUntil(e=>$z(e)||e===`#`)}*parseBlockScalar(){let e=this.pos-1,t=0,n;loop:for(let r=this.pos;n=this.buffer[r];++r)switch(n){case` `:t+=1;break;case`
214
- `:e=r,t=0;break;case`\r`:{let e=this.buffer[r+1];if(!e&&!this.atEnd)return this.setNext(`block-scalar`);if(e===`
215
- `)break}default:break loop}if(!n&&!this.atEnd)return this.setNext(`block-scalar`);if(t>=this.indentNext){this.indentNext=this.blockScalarIndent===-1?t:this.blockScalarIndent+(this.indentNext===0?1:this.indentNext);do{let t=this.continueScalar(e+1);if(t===-1)break;e=this.buffer.indexOf(`
216
- `,t)}while(e!==-1);if(e===-1){if(!this.atEnd)return this.setNext(`block-scalar`);e=this.buffer.length}}let r=e+1;for(n=this.buffer[r];n===` `;)n=this.buffer[++r];if(n===` `){for(;n===` `||n===` `||n===`\r`||n===`
217
- `;)n=this.buffer[++r];e=r-1}else if(!this.blockScalarKeep)do{let n=e-1,r=this.buffer[n];r===`\r`&&(r=this.buffer[--n]);let i=n;for(;r===` `;)r=this.buffer[--n];if(r===`
218
- `&&n>=this.pos&&n+1+t>i)e=n;else break}while(!0);return yield``,yield*this.pushToIndex(e+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){let e=this.flowLevel>0,t=this.pos-1,n=this.pos-1,r;for(;r=this.buffer[++n];)if(r===`:`){let r=this.buffer[n+1];if($z(r)||e&&nB.has(r))break;t=n}else if($z(r)){let i=this.buffer[n+1];if(r===`\r`&&(i===`
219
- `?(n+=1,r=`
220
- `,i=this.buffer[n+1]):t=n),i===`#`||e&&nB.has(i))break;if(r===`
221
- `){let e=this.continueScalar(n+1);if(e===-1)break;n=Math.max(n,e-2)}}else{if(e&&nB.has(r))break;t=n}return!r&&!this.atEnd?this.setNext(`plain-scalar`):(yield``,yield*this.pushToIndex(t+1,!0),e?`flow`:`doc`)}*pushCount(e){return e>0?(yield this.buffer.substr(this.pos,e),this.pos+=e,e):0}*pushToIndex(e,t){let n=this.buffer.slice(this.pos,e);return n?(yield n,this.pos+=n.length,n.length):(t&&(yield``),0)}*pushIndicators(){let e=0;loop:for(;;){switch(this.charAt(0)){case`!`:e+=yield*this.pushTag(),e+=yield*this.pushSpaces(!0);continue loop;case`&`:e+=yield*this.pushUntil(iB),e+=yield*this.pushSpaces(!0);continue loop;case`-`:case`?`:case`:`:{let t=this.flowLevel>0,n=this.charAt(1);if($z(n)||t&&nB.has(n)){t?this.flowKey&&=!1:this.indentNext=this.indentValue+1,e+=yield*this.pushCount(1),e+=yield*this.pushSpaces(!0);continue loop}}}break loop}return e}*pushTag(){if(this.charAt(1)===`<`){let e=this.pos+2,t=this.buffer[e];for(;!$z(t)&&t!==`>`;)t=this.buffer[++e];return yield*this.pushToIndex(t===`>`?e+1:e,!1)}{let e=this.pos+1,t=this.buffer[e];for(;t;)if(tB.has(t))t=this.buffer[++e];else if(t===`%`&&eB.has(this.buffer[e+1])&&eB.has(this.buffer[e+2]))t=this.buffer[e+=3];else break;return yield*this.pushToIndex(e,!1)}}*pushNewline(){let e=this.buffer[this.pos];return e===`
222
- `?yield*this.pushCount(1):e===`\r`&&this.charAt(1)===`
223
- `?yield*this.pushCount(2):0}*pushSpaces(e){let t=this.pos-1,n;do n=this.buffer[++t];while(n===` `||e&&n===` `);let r=t-this.pos;return r>0&&(yield this.buffer.substr(this.pos,r),this.pos=t),r}*pushUntil(e){let t=this.pos,n=this.buffer[t];for(;!e(n);)n=this.buffer[++t];return yield*this.pushToIndex(t,!1)}},oB=class{constructor(){this.lineStarts=[],this.addNewLine=e=>this.lineStarts.push(e),this.linePos=e=>{let t=0,n=this.lineStarts.length;for(;t<n;){let r=t+n>>1;this.lineStarts[r]<e?t=r+1:n=r}if(this.lineStarts[t]===e)return{line:t+1,col:1};if(t===0)return{line:0,col:e};let r=this.lineStarts[t-1];return{line:t,col:e-r+1}}}};function sB(e,t){for(let n=0;n<e.length;++n)if(e[n].type===t)return!0;return!1}function cB(e){for(let t=0;t<e.length;++t)switch(e[t].type){case`space`:case`comment`:case`newline`:break;default:return t}return-1}function lB(e){switch(e?.type){case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:case`flow-collection`:return!0;default:return!1}}function uB(e){switch(e.type){case`document`:return e.start;case`block-map`:{let t=e.items[e.items.length-1];return t.sep??t.start}case`block-seq`:return e.items[e.items.length-1].start;default:return[]}}function dB(e){if(e.length===0)return[];let t=e.length;loop:for(;--t>=0;)switch(e[t].type){case`doc-start`:case`explicit-key-ind`:case`map-value-ind`:case`seq-item-ind`:case`newline`:break loop}for(;e[++t]?.type===`space`;);return e.splice(t,e.length)}function fB(e,t){if(t.length<1e5)Array.prototype.push.apply(e,t);else for(let n=0;n<t.length;++n)e.push(t[n])}function pB(e){if(e.start.type===`flow-seq-start`)for(let t of e.items)t.sep&&!t.value&&!sB(t.start,`explicit-key-ind`)&&!sB(t.sep,`map-value-ind`)&&(t.key&&(t.value=t.key),delete t.key,lB(t.value)?t.value.end?fB(t.value.end,t.sep):t.value.end=t.sep:fB(t.start,t.sep),delete t.sep)}var mB=class{constructor(e){this.atNewLine=!0,this.atScalar=!1,this.indent=0,this.offset=0,this.onKeyLine=!1,this.stack=[],this.source=``,this.type=``,this.lexer=new aB,this.onNewLine=e}*parse(e,t=!1){this.onNewLine&&this.offset===0&&this.onNewLine(0);for(let n of this.lexer.lex(e,t))yield*this.next(n);t||(yield*this.end())}*next(e){if(this.source=e,this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=e.length;return}let t=Qz(e);if(!t){let t=`Not a YAML token: ${e}`;yield*this.pop({type:`error`,offset:this.offset,message:t,source:e}),this.offset+=e.length}else if(t===`scalar`)this.atNewLine=!1,this.atScalar=!0,this.type=`scalar`;else{switch(this.type=t,yield*this.step(),t){case`newline`:this.atNewLine=!0,this.indent=0,this.onNewLine&&this.onNewLine(this.offset+e.length);break;case`space`:this.atNewLine&&e[0]===` `&&(this.indent+=e.length);break;case`explicit-key-ind`:case`map-value-ind`:case`seq-item-ind`:this.atNewLine&&(this.indent+=e.length);break;case`doc-mode`:case`flow-error-end`:return;default:this.atNewLine=!1}this.offset+=e.length}}*end(){for(;this.stack.length>0;)yield*this.pop()}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){let e=this.peek(1);if(this.type===`doc-end`&&e?.type!==`doc-end`){for(;this.stack.length>0;)yield*this.pop();this.stack.push({type:`doc-end`,offset:this.offset,source:this.source});return}if(!e)return yield*this.stream();switch(e.type){case`document`:return yield*this.document(e);case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:return yield*this.scalar(e);case`block-scalar`:return yield*this.blockScalar(e);case`block-map`:return yield*this.blockMap(e);case`block-seq`:return yield*this.blockSequence(e);case`flow-collection`:return yield*this.flowCollection(e);case`doc-end`:return yield*this.documentEnd(e)}yield*this.pop()}peek(e){return this.stack[this.stack.length-e]}*pop(e){let t=e??this.stack.pop();if(!t)yield{type:`error`,offset:this.offset,source:``,message:`Tried to pop an empty stack`};else if(this.stack.length===0)yield t;else{let e=this.peek(1);switch(t.type===`block-scalar`?t.indent=`indent`in e?e.indent:0:t.type===`flow-collection`&&e.type===`document`&&(t.indent=0),t.type===`flow-collection`&&pB(t),e.type){case`document`:e.value=t;break;case`block-scalar`:e.props.push(t);break;case`block-map`:{let n=e.items[e.items.length-1];if(n.value){e.items.push({start:[],key:t,sep:[]}),this.onKeyLine=!0;return}if(n.sep)n.value=t;else{Object.assign(n,{key:t,sep:[]}),this.onKeyLine=!n.explicitKey;return}break}case`block-seq`:{let n=e.items[e.items.length-1];n.value?e.items.push({start:[],value:t}):n.value=t;break}case`flow-collection`:{let n=e.items[e.items.length-1];!n||n.value?e.items.push({start:[],key:t,sep:[]}):n.sep?n.value=t:Object.assign(n,{key:t,sep:[]});return}default:yield*this.pop(),yield*this.pop(t)}if((e.type===`document`||e.type===`block-map`||e.type===`block-seq`)&&(t.type===`block-map`||t.type===`block-seq`)){let n=t.items[t.items.length-1];n&&!n.sep&&!n.value&&n.start.length>0&&cB(n.start)===-1&&(t.indent===0||n.start.every(e=>e.type!==`comment`||e.indent<t.indent))&&(e.type===`document`?e.end=n.start:e.items.push({start:n.start}),t.items.splice(-1,1))}}}*stream(){switch(this.type){case`directive-line`:yield{type:`directive`,offset:this.offset,source:this.source};return;case`byte-order-mark`:case`space`:case`comment`:case`newline`:yield this.sourceToken;return;case`doc-mode`:case`doc-start`:{let e={type:`document`,offset:this.offset,start:[]};this.type===`doc-start`&&e.start.push(this.sourceToken),this.stack.push(e);return}}yield{type:`error`,offset:this.offset,message:`Unexpected ${this.type} token in YAML stream`,source:this.source}}*document(e){if(e.value)return yield*this.lineEnd(e);switch(this.type){case`doc-start`:cB(e.start)===-1?e.start.push(this.sourceToken):(yield*this.pop(),yield*this.step());return;case`anchor`:case`tag`:case`space`:case`comment`:case`newline`:e.start.push(this.sourceToken);return}let t=this.startBlockValue(e);t?this.stack.push(t):yield{type:`error`,offset:this.offset,message:`Unexpected ${this.type} token in YAML document`,source:this.source}}*scalar(e){if(this.type===`map-value-ind`){let t=dB(uB(this.peek(2))),n;e.end?(n=e.end,n.push(this.sourceToken),delete e.end):n=[this.sourceToken];let r={type:`block-map`,offset:e.offset,indent:e.indent,items:[{start:t,key:e,sep:n}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=r}else yield*this.lineEnd(e)}*blockScalar(e){switch(this.type){case`space`:case`comment`:case`newline`:e.props.push(this.sourceToken);return;case`scalar`:if(e.source=this.source,this.atNewLine=!0,this.indent=0,this.onNewLine){let e=this.source.indexOf(`
224
- `)+1;for(;e!==0;)this.onNewLine(this.offset+e),e=this.source.indexOf(`
225
- `,e)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(e){let t=e.items[e.items.length-1];switch(this.type){case`newline`:if(this.onKeyLine=!1,t.value){let n=`end`in t.value?t.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type===`comment`?n?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case`space`:case`comment`:if(t.value)e.items.push({start:[this.sourceToken]});else if(t.sep)t.sep.push(this.sourceToken);else{if(this.atIndentedComment(t.start,e.indent)){let n=e.items[e.items.length-2]?.value?.end;if(Array.isArray(n)){fB(n,t.start),n.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return}if(this.indent>=e.indent){let n=!this.onKeyLine&&this.indent===e.indent,r=n&&(t.sep||t.explicitKey)&&this.type!==`seq-item-ind`,i=[];if(r&&t.sep&&!t.value){let n=[];for(let r=0;r<t.sep.length;++r){let i=t.sep[r];switch(i.type){case`newline`:n.push(r);break;case`space`:break;case`comment`:i.indent>e.indent&&(n.length=0);break;default:n.length=0}}n.length>=2&&(i=t.sep.splice(n[1]))}switch(this.type){case`anchor`:case`tag`:r||t.value?(i.push(this.sourceToken),e.items.push({start:i}),this.onKeyLine=!0):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case`explicit-key-ind`:!t.sep&&!t.explicitKey?(t.start.push(this.sourceToken),t.explicitKey=!0):r||t.value?(i.push(this.sourceToken),e.items.push({start:i,explicitKey:!0})):this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case`map-value-ind`:if(t.explicitKey){if(!t.sep){if(sB(t.start,`newline`))Object.assign(t,{key:null,sep:[this.sourceToken]});else{let e=dB(t.start);this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:e,key:null,sep:[this.sourceToken]}]})}}else if(t.value)e.items.push({start:[],key:null,sep:[this.sourceToken]});else if(sB(t.sep,`map-value-ind`))this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:i,key:null,sep:[this.sourceToken]}]});else if(lB(t.key)&&!sB(t.sep,`newline`)){let e=dB(t.start),n=t.key,r=t.sep;r.push(this.sourceToken),delete t.key,delete t.sep,this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:e,key:n,sep:r}]})}else i.length>0?t.sep=t.sep.concat(i,this.sourceToken):t.sep.push(this.sourceToken)}else t.sep?t.value||r?e.items.push({start:i,key:null,sep:[this.sourceToken]}):sB(t.sep,`map-value-ind`)?this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:{let n=this.flowScalar(this.type);r||t.value?(e.items.push({start:i,key:n,sep:[]}),this.onKeyLine=!0):t.sep?this.stack.push(n):(Object.assign(t,{key:n,sep:[]}),this.onKeyLine=!0);return}default:{let r=this.startBlockValue(e);if(r){if(r.type===`block-seq`){if(!t.explicitKey&&t.sep&&!sB(t.sep,`newline`)){yield*this.pop({type:`error`,offset:this.offset,message:`Unexpected block-seq-ind on same line with key`,source:this.source});return}}else n&&e.items.push({start:i});this.stack.push(r);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(e){let t=e.items[e.items.length-1];switch(this.type){case`newline`:if(t.value){let n=`end`in t.value?t.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type===`comment`?n?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.start.push(this.sourceToken);return;case`space`:case`comment`:if(t.value)e.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(t.start,e.indent)){let n=e.items[e.items.length-2]?.value?.end;if(Array.isArray(n)){fB(n,t.start),n.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return;case`anchor`:case`tag`:if(t.value||this.indent<=e.indent)break;t.start.push(this.sourceToken);return;case`seq-item-ind`:if(this.indent!==e.indent)break;t.value||sB(t.start,`seq-item-ind`)?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return}if(this.indent>e.indent){let t=this.startBlockValue(e);if(t){this.stack.push(t);return}}yield*this.pop(),yield*this.step()}*flowCollection(e){let t=e.items[e.items.length-1];if(this.type===`flow-error-end`){let e;do yield*this.pop(),e=this.peek(1);while(e?.type===`flow-collection`)}else if(e.end.length===0){switch(this.type){case`comma`:case`explicit-key-ind`:!t||t.sep?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return;case`map-value-ind`:!t||t.value?e.items.push({start:[],key:null,sep:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});return;case`space`:case`comment`:case`newline`:case`anchor`:case`tag`:!t||t.value?e.items.push({start:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:{let n=this.flowScalar(this.type);!t||t.value?e.items.push({start:[],key:n,sep:[]}):t.sep?this.stack.push(n):Object.assign(t,{key:n,sep:[]});return}case`flow-map-end`:case`flow-seq-end`:e.end.push(this.sourceToken);return}let n=this.startBlockValue(e);n?this.stack.push(n):(yield*this.pop(),yield*this.step())}else{let t=this.peek(2);if(t.type===`block-map`&&(this.type===`map-value-ind`&&t.indent===e.indent||this.type===`newline`&&!t.items[t.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type===`map-value-ind`&&t.type!==`flow-collection`){let n=dB(uB(t));pB(e);let r=e.end.splice(1,e.end.length);r.push(this.sourceToken);let i={type:`block-map`,offset:e.offset,indent:e.indent,items:[{start:n,key:e,sep:r}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=i}else yield*this.lineEnd(e)}}flowScalar(e){if(this.onNewLine){let e=this.source.indexOf(`
226
- `)+1;for(;e!==0;)this.onNewLine(this.offset+e),e=this.source.indexOf(`
227
- `,e)+1}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){switch(this.type){case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:return this.flowScalar(this.type);case`block-scalar-header`:return{type:`block-scalar`,offset:this.offset,indent:this.indent,props:[this.sourceToken],source:``};case`flow-map-start`:case`flow-seq-start`:return{type:`flow-collection`,offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case`seq-item-ind`:return{type:`block-seq`,offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case`explicit-key-ind`:{this.onKeyLine=!0;let t=dB(uB(e));return t.push(this.sourceToken),{type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:t,explicitKey:!0}]}}case`map-value-ind`:{this.onKeyLine=!0;let t=dB(uB(e));return{type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:t,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,t){return this.type!==`comment`||this.indent<=t?!1:e.every(e=>e.type===`newline`||e.type===`space`)}*documentEnd(e){this.type!==`doc-mode`&&(e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type===`newline`&&(yield*this.pop()))}*lineEnd(e){switch(this.type){case`comma`:case`doc-start`:case`doc-end`:case`flow-seq-end`:case`flow-map-end`:case`map-value-ind`:yield*this.pop(),yield*this.step();break;case`newline`:this.onKeyLine=!1;default:e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type===`newline`&&(yield*this.pop())}}};function hB(e){let t=e.prettyErrors!==!1;return{lineCounter:e.lineCounter||t&&new oB||null,prettyErrors:t}}function gB(e,t={}){let{lineCounter:n,prettyErrors:r}=hB(t),i=new mB(n?.addNewLine),a=new Kz(t),o=null;for(let t of a.compose(i.parse(e),!0,e.length))if(!o)o=t;else if(o.options.logLevel!==`silent`){o.errors.push(new cz(t.range.slice(0,2),`MULTIPLE_DOCS`,`Source contains multiple documents; please use YAML.parseAllDocuments()`));break}return r&&n&&(o.errors.forEach(uz(e,n)),o.warnings.forEach(uz(e,n))),o}function _B(e,t,n){let r;typeof t==`function`?r=t:n===void 0&&t&&typeof t==`object`&&(n=t);let i=gB(e,n);if(!i)return null;if(i.warnings.forEach(e=>BL(i.options.logLevel,e)),i.errors.length>0){if(i.options.logLevel!==`silent`)throw i.errors[0];i.errors=[]}return i.toJS(Object.assign({reviver:r},n))}function vB(e,t,n){let r=null;if(typeof t==`function`||Array.isArray(t)?r=t:n===void 0&&t&&(n=t),typeof n==`string`&&(n=n.length),typeof n==`number`){let e=Math.round(n);n=e<1?void 0:e>8?{indent:8}:{indent:e}}if(e===void 0){let{keepUndefined:e}=n??t??{};if(!e)return}return FI(e)&&!r?e.toString(n):new az(e,r,n).toString(n)}function yB(e){let t=vB(e,{indent:2,lineWidth:0});return t?t.endsWith(`
228
- `)?t:`${t}\n`:``}function bB(e){let t={id:e.id,stages:e.stages};return e.agent!==void 0&&(t.agent=e.agent),e.model!==void 0&&(t.model=e.model),e.schemas!==void 0&&(t.schemas=e.schemas),e.requires!==void 0&&(t.requires=e.requires),e.channels!==void 0&&(t.channels=e.channels),e.memories!==void 0&&(t.memories=e.memories),t}function xB(e){return e.trim().replace(/\\/g,`/`).replace(/^\.\//,``)}function SB(e,t){let n=xB(e),r=xB(t);return!n||!r?!1:n===r||n.endsWith(`/${r}`)||r.endsWith(`/${n}`)}function CB(e,t,n){if(!t)return``;if(n&&xB(t)===xB(n))return yB(bB(e.pipeline));let r=(e.stages??[]).find(e=>SB(e.path,t));return r?yB(r.body):``}function wB(e){if(!e)return[];let t=e.split(`
229
- `);return t[t.length-1]===``&&t.pop(),t}function TB(e){if(!(typeof e!=`number`||!Number.isInteger(e)||e<1))return e}function EB(e,t){if(!(!e||!t||!SB(e.path,t)))return TB(e.line)}function DB(e,t){let n=Xj(e,t);return n?(e.stages??[]).find(e=>SB(e.path,n))?.path??null:null}var OB={id:[`id`],model:[`model`],system_prompt:[`system_prompt`],"verify.command":[`verify`,`completion`,`pre_emit_checks`],on_verify_fail:[`on_verify_fail`,`recovery`],ask_operator:[`gate_kinds`,`ask_operator`]};function kB(e){if(!(typeof e!=`number`||!Number.isInteger(e)||e<1))return e}function AB(e){let t=e.trim().replace(/\\/g,`/`).replace(/^\.\//,``),n=t.lastIndexOf(`/`);return n===-1?t:t.slice(n+1)}function jB(e){let t=e.trim().replace(/\\/g,`/`);if(!t)return``;let n=t.lastIndexOf(`/`);return n===-1?t:t.slice(n+1)}function MB(e){return{severity:e.severity===`info`?`warning`:e.severity,code:e.code,path:e.path,message:e.message,category:e.category,...e.pipelineId===void 0?{}:{pipelineId:e.pipelineId},...e.stageId===void 0?{}:{stageId:e.stageId},...e.line===void 0?{}:{line:e.line},...e.column===void 0?{}:{column:e.column}}}function NB(e,t){return!e||!t?!1:xB(e)===xB(t)}function PB(e,t){return e.linePos(t).line}function FB(e,t){return e.linePos(t).col}function IB(e,t){return{start:PB(e,t[0]),end:PB(e,Math.max(t[0],t[1]-1))}}function LB(e){let t=new oB,n=gB(e,{lineCounter:t});return II(n.contents)?{counter:t,map:n.contents}:null}function RB(e){return RI(e)&&typeof e.value==`string`?e.value:null}function zB(e,t){return e.items.find(e=>RB(e.key)===t)}function BB(e,t,n){let r=zB(t,n),i=r&&RI(r.key)?r.key.range:void 0;if(i)return{line:PB(e,i[0]),column:FB(e,i[0])}}function VB(e,t){let n=zB(e,t);return n&&II(n.value)?n.value:null}function HB(e,t,n){for(let r of n){let n=BB(e,t,r);if(n)return n}}function UB(e,t,n){if(n===`io.inputs`||n===`io.outputs`){let r=n===`io.inputs`?[`input`,`inputs`]:[`output`,`outputs`],i=VB(t,`io`);if(i){let t=HB(e,i,r);if(t)return t}return BB(e,t,`io`)}let r=OB[n];if(r)return HB(e,t,r)}function WB(e,t,n){let r=zB(t,`stages`);if(!r||!zI(r.value))return[];let i=[];return r.value.items.forEach((t,r)=>{if(!t?.range)return;let a=IB(e,t.range),o=n.pipeline.stages[r]??{};i.push({stageId:dA(o,r),startLine:a.start,endLine:a.end,map:II(t)?t:null})}),i}function GB(e){return e.length===2?`${e[0]} and ${e[1]}`:`${e.slice(0,-1).join(`, `)} and ${e[e.length-1]}`}function KB(e){let t=e.line??``,n=e.lineEnd??``;return`${e.code}\0${AB(e.path)}\0${e.message}\0${t}\0${n}`}function qB(e){if(!Number.isFinite(e))return`just now`;let t=Math.floor(Math.max(0,e)/1e3);if(t<2)return`just now`;if(t<60)return`${t}s ago`;let n=Math.floor(t/60);if(n<60)return`${n}m ago`;let r=Math.floor(n/60);return r<24?`${r}h ago`:`${Math.floor(r/24)}d ago`}function JB(e,t,n){let r=jB(e);if(!r)return`—`;let i=kB(t);if(!i)return r;let a=kB(n);return a&&a!==i?`${r}:${i}\u2013${a}`:`${r}:${i}`}function YB(e,t){let n=YN(MB(e),t);if(n.kind===`stage`)return`Go to ${n.field} in ${n.stageId}`}function XB(e,t){let n=CB(e,t,t),r=n?LB(n):null,i=r?WB(r.counter,r.map,e):[],a=[];for(let n of vA(e)){let o=mA(CA(e,n)?.needs);if(o.length<2)continue;let s=o.length>2?`all ${o.length} finish`:`both finish`,c=`${n} needs [${o.join(`, `)}]: ${n} runs only after ${s}`,l=i.find(e=>e.stageId===n),u=l?.map&&r?BB(r.counter,l.map,`needs`):void 0,d={severity:`info`,code:`graph/needs`,path:t,message:c,category:`graph`,stageId:n};u&&(d.line=u.line),a.push(d)}for(let n of bP(e).layers){let e=n.filter(e=>!e.loop).map(e=>e.stageId);if(e.length<2)continue;let r=`${GB(e)} run in parallel and hold ${e.length} agent slots at once`,o=i.filter(t=>e.includes(t.stageId)),s={severity:`info`,code:`graph/parallel`,path:t,message:r,category:`graph`};o.length>0&&(s.line=Math.min(...o.map(e=>e.startLine)),s.lineEnd=Math.max(...o.map(e=>e.endLine))),a.push(s)}return a}function ZB(e,t,n){let r=n.path,i=kB(n.line);if(i){let e=kB(n.lineEnd),t=kB(n.column);return{path:r,line:i,...e?{lineEnd:e}:{},...t?{column:t}:{}}}let a=CB(e,r,t),o=a?LB(a):null;if(!o)return{path:r};let s=YN(MB(n),e),c=s.kind===`stage`?s.stageId:n.stageId,l=s.kind===`stage`?s.field:void 0;if(NB(r,t)){if(!c)return{path:r};let t=WB(o.counter,o.map,e).find(e=>e.stageId===c);if(!t)return{path:r};if(l&&l!==`general`&&t.map){let e=UB(o.counter,t.map,l);if(e)return{path:r,line:e.line,column:e.column}}return{path:r,line:t.startLine}}if(l&&l!==`general`){let e=UB(o.counter,o.map,l);if(e)return{path:r,line:e.line,column:e.column}}let u=BB(o.counter,o.map,`id`);return u?{path:r,line:u.line,column:u.column}:{path:r}}function QB(e){return e>0?`text-[#ecedee]`:`text-[#8b8f98]`}function $B(e){return e===`error`?`text-[#e5484d]`:e===`warning`?`text-[#a7aab2]`:`text-[#8b8f98]`}function eV({severity:e,className:t}){return e===`error`?(0,Y.jsx)(A,{className:t,"aria-hidden":!0}):e===`warning`?(0,Y.jsx)(je,{className:t,"aria-hidden":!0}):(0,Y.jsx)(pt,{className:t,"aria-hidden":!0})}function tV(e,t,n){return e?`Validating…`:t===null?`Not validated yet`:`Last validated ${qB(n-t)}`}var nV=[{id:`all`,label:`All`},{id:`file`,label:`This file`},{id:`stages`,label:`Stages`}];function rV({findings:e,activeFilePath:t,loading:n,error:r,collapsed:i,onCollapsedChange:a,selectedKey:o,onSelectFinding:s,onQuickFix:c,onValidate:l,validatedAt:u,validatedMs:d,stageCount:f,schemaCount:p,findingKey:m,quickFixFor:h}){let[g,_]=(0,J.useState)(`all`),[v,y]=(0,J.useState)(()=>Date.now()),b=(0,J.useRef)(o),x=(0,J.useMemo)(()=>g===`file`&&t?e.filter(e=>SB(e.path,t)):g===`stages`?e.filter(e=>!!e.stageId):e,[t,g,e]),S=e.filter(e=>e.severity===`error`).length,C=e.filter(e=>e.severity===`warning`).length,w=e.filter(e=>e.severity===`info`).length;(0,J.useEffect)(()=>{let e=window.setInterval(()=>y(Date.now()),1e3);return()=>window.clearInterval(e)},[]),(0,J.useEffect)(()=>{b.current!==o&&(b.current=o,o&&!x.some(e=>m(e)===o)&&e.some(e=>m(e)===o)&&_(`all`))},[x,m,e,o]),(0,J.useEffect)(()=>{if(!o||i)return;let e=document.querySelector(`[data-problem-key="${CSS.escape(o)}"]`);e instanceof HTMLElement&&e.scrollIntoView({block:`nearest`})},[i,g,o]);let T=!!r||x.length>0,E=!n&&!r&&x.length===0;return(0,Y.jsxs)(`section`,{className:`flex w-full shrink-0 flex-col border-t border-t-[#ffffff12] bg-[#131418]`,"aria-label":`Problems`,children:[(0,Y.jsxs)(`div`,{className:`flex h-[34px] w-full items-center gap-2.5 border-b border-b-[#ffffff12] px-3.5 py-0`,children:[(0,Y.jsx)(`button`,{type:`button`,"aria-expanded":!i,"aria-label":i?`Expand problems`:`Collapse problems`,className:`flex size-[13px] shrink-0 items-center justify-center text-[#8b8f98] hover:text-[#ecedee]`,onClick:()=>a(!i),children:(0,Y.jsx)(B,{className:`size-[13px] ${i?`-rotate-90`:``}`,"aria-hidden":!0})}),(0,Y.jsx)(`span`,{className:`font-sans text-xs font-medium leading-normal text-[#ecedee]`,children:`Problems`}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-2.5`,children:[(0,Y.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,Y.jsx)(A,{className:`size-3 shrink-0 text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace] text-[11px] leading-normal ${QB(S)}`,children:S})]}),(0,Y.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,Y.jsx)(je,{className:`size-3 shrink-0 text-[#a7aab2]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace] text-[11px] leading-normal ${QB(C)}`,children:C})]}),(0,Y.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,Y.jsx)(pt,{className:`size-3 shrink-0 text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace] text-[11px] leading-normal ${QB(w)}`,children:w})]})]}),(0,Y.jsx)(`span`,{className:`flex-1`}),(0,Y.jsx)(`div`,{className:`flex h-[22px] items-center rounded-md border border-[#ffffff12] bg-[#0c0d0f] p-0.5`,children:nV.map(e=>{let t=g===e.id;return(0,Y.jsx)(`button`,{type:`button`,"aria-pressed":t,className:t?`inline-flex h-4 items-center rounded-sm bg-[#1a1c21] px-[7px] py-0 font-sans text-[11px] leading-normal text-[#ecedee]`:`inline-flex h-4 items-center px-[7px] py-0 font-sans text-[11px] leading-normal text-[#8b8f98] hover:text-[#ecedee]`,onClick:()=>_(e.id),children:e.label},e.id)})}),(0,Y.jsx)(`button`,{type:`button`,"aria-label":i?`Expand problems`:`Collapse problems`,className:`flex size-3.5 shrink-0 items-center justify-center text-[#8b8f98] hover:text-[#ecedee]`,onClick:()=>a(!i),children:(0,Y.jsx)(z,{className:`size-3.5`,"aria-hidden":!0})})]}),i?null:(0,Y.jsxs)(Y.Fragment,{children:[T||E?(0,Y.jsxs)(`div`,{className:`flex max-h-[150px] w-full flex-col overflow-y-auto px-0 py-1`,children:[r?(0,Y.jsx)(`div`,{className:`flex h-[30px] items-center px-3.5 text-[13px] leading-normal text-[#e5484d]`,children:r}):null,E?(0,Y.jsx)(`div`,{className:`flex h-[30px] items-center px-3.5 text-xs leading-normal text-[#8b8f98]`,children:`No problems`}):x.map((e,t)=>{let n=m(e),r=o===n,i=r?h?.(e):void 0,a=e.severity===`info`;return(0,Y.jsxs)(`div`,{"data-problem-key":n,className:`flex h-[30px] w-full items-center gap-3 px-3.5 py-0 ${r?`bg-[#ffffff0a]`:`hover:bg-[#ffffff08]`}`,children:[(0,Y.jsxs)(`button`,{type:`button`,"aria-selected":r,className:`flex min-w-0 flex-1 items-center gap-3 text-left`,onClick:()=>s(e),children:[(0,Y.jsxs)(`span`,{className:`flex w-[78px] shrink-0 items-center gap-1.5`,children:[(0,Y.jsx)(eV,{severity:e.severity,className:`size-[13px] shrink-0 ${$B(e.severity)}`}),(0,Y.jsx)(`span`,{className:a?`font-sans text-xs leading-normal text-[#a7aab2]`:`font-sans text-xs font-medium leading-normal text-[#ecedee]`,children:e.severity})]}),(0,Y.jsx)(`span`,{className:`w-[210px] shrink-0 truncate font-['Geist_Mono',monospace] text-xs leading-normal ${a?`text-[#8b8f98]`:`text-[#a7aab2]`}`,title:JB(e.path,e.line,e.lineEnd),children:JB(e.path,e.line,e.lineEnd)}),(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-sans text-[13px] leading-normal ${a?`text-[#a7aab2]`:`text-[#ecedee]`}`,title:e.message,children:e.message})]}),i?(0,Y.jsxs)(`button`,{type:`button`,title:i,className:`flex h-[22px] shrink-0 items-center gap-[5px] rounded-md border border-[#ffffff1a] bg-[#1a1c21] px-[7px] py-0 hover:bg-[#ffffff08]`,onClick:()=>c(e),children:[(0,Y.jsx)(Pe,{className:`size-3 shrink-0 text-[#ecedee]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`font-sans text-xs leading-normal text-[#ecedee]`,children:`Quick fix`}),(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace] text-[11px] leading-normal text-[#8b8f98]`,children:`⌘.`})]}):null]},`${n}:${t}`)})]}):null,(0,Y.jsxs)(`footer`,{className:`flex h-7 w-full items-center gap-2.5 border-t border-t-[#ffffff12] bg-[#0c0d0f] px-3.5 py-0`,children:[S===0?(0,Y.jsx)(G,{className:`size-3 shrink-0 text-[#4cc38a]`,"aria-hidden":!0}):(0,Y.jsx)(A,{className:`size-3 shrink-0 text-[#e5484d]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`font-sans text-xs leading-normal text-[#a7aab2]`,children:tV(n,u,v)}),(0,Y.jsx)(`span`,{className:`font-sans text-xs leading-normal text-[#8b8f98]`,children:`·`}),(0,Y.jsxs)(`button`,{type:`button`,title:`Run validation now`,className:`flex items-center gap-[5px] hover:text-[#ecedee]`,onClick:l,children:[(0,Y.jsx)(ft,{className:`size-3 shrink-0 text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace] text-[11px] leading-normal text-[#a7aab2]`,children:`sf validate --strict`})]}),(0,Y.jsx)(`span`,{className:`flex-1`}),d==null?null:(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace] text-[11px] leading-normal text-[#8b8f98]`,children:`checked ${f} stages, ${p} schemas in ${d}ms`})]})]})]})}function iV(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function aV(e){return Array.isArray(e)?`[${e.map(aV).join(`,`)}]`:iV(e)?`{${Object.keys(e).filter(t=>e[t]!==void 0).sort().map(t=>`${JSON.stringify(t)}:${aV(e[t])}`).join(`,`)}}`:JSON.stringify(e)??`null`}function oV(e){let t=new Map;for(let n of e.stages??[])t.set(xB(n.path),aV(n.body));return t}function sV(e,t){if(!e||!t)return 0;let n=0;aV(bB(e.pipeline))!==aV(bB(t.pipeline))&&(n+=1);let r=oV(e),i=oV(t),a=new Set([...r.keys(),...i.keys()]);for(let e of a)r.get(e)!==i.get(e)&&(n+=1);return n}function cV(e){return e===1?`1 error`:`${e} errors`}function lV(e){return e===1?`1 warning`:`${e} warnings`}function uV(e){return e?`Examples are read-only — Save copy to Workspace`:null}function dV(e,t){return e&&t?`Save copy to Workspace`:`Save`}function fV(e){if(!e)return null;let t=e.summary.errors,n=e.summary.warnings,r=t===0;return{strictLabel:r?`Valid · strict`:cV(t),strictOk:r,warningLabel:lV(n),warningCount:n,errorCount:t}}function pV({label:e,value:t,min:n,max:r,step:i=32,invert:a=!1,onChange:o}){let s=e=>Math.max(n,Math.min(r,e));function c(e){if(e.button!==0)return;e.preventDefault();let n=e.currentTarget;n.setPointerCapture(e.pointerId);let r=e.clientX,i=t,c=t=>{if(t.pointerId!==e.pointerId)return;let n=t.clientX-r;o(s(a?i-n:i+n))},l=t=>{t.pointerId===e.pointerId&&(n.removeEventListener(`pointermove`,c),n.removeEventListener(`pointerup`,l),n.removeEventListener(`pointercancel`,l))};n.addEventListener(`pointermove`,c),n.addEventListener(`pointerup`,l),n.addEventListener(`pointercancel`,l)}function l(e){e.key===`ArrowLeft`?(e.preventDefault(),o(s(a?t+i:t-i))):e.key===`ArrowRight`?(e.preventDefault(),o(s(a?t-i:t+i))):e.key===`Home`?(e.preventDefault(),o(a?r:n)):e.key===`End`&&(e.preventDefault(),o(a?n:r))}return(0,Y.jsx)(`div`,{role:`separator`,"aria-orientation":`vertical`,"aria-label":e,"aria-valuemin":n,"aria-valuemax":r,"aria-valuenow":Math.round(t),tabIndex:0,className:`w-1.5 shrink-0 cursor-col-resize bg-[#ffffff12] hover:bg-[#ffffff24] focus-visible:bg-[#ffffff24] focus-visible:outline-none`,onPointerDown:c,onKeyDown:l})}function mV(e){return Math.max(280,Math.min(720,e))}function hV(e){return Math.max(240,Math.min(480,e))}function gV(e){let t=xB(e),n=t.lastIndexOf(`/`);return n===-1?t:t.slice(n+1)}function _V(e,t){if(SB(e,t))return!0;let n=gV(e);return n!==``&&n===gV(t)}function vV(e,t,n){return _V(e,t)?t:n.find(t=>_V(e,t))??e}function yV(e){return{severity:`error`,code:`yaml/parse`,category:`yaml`,path:e.path,message:e.message,line:e.line,column:e.column}}function bV(e,t,n,r){let i=(e.stages??[]).map(e=>e.path);return[...r?[yV(r)]:[],...n,...XB(e,t)].map(n=>{let r={...n,path:vV(n.path,t,i)},a=ZB(e,t,r),o={...r,path:a.path};return delete o.line,delete o.lineEnd,delete o.column,a.line!==void 0&&(o.line=a.line),a.lineEnd!==void 0&&(o.lineEnd=a.lineEnd),a.column!==void 0&&(o.column=a.column),o})}function xV(e,t,n){let r=new Set;if(!e||!t)return r;CB(e,n,n)!==CB(t,n,n)&&r.add(xB(n));for(let n of e.stages??[]){let e=(t.stages??[]).find(e=>SB(e.path,n.path));(!e||yB(e.body)!==yB(n.body))&&r.add(xB(n.path))}return r}function SV(e,t){let n=YN({...e,severity:e.severity===`info`?`warning`:e.severity},t);return n.kind===`stage`?{stageId:n.stageId,field:n.field}:e.stageId?{stageId:e.stageId,field:null}:null}function CV(e){let t=new Map;for(let n of e)!n.stageId||n.severity===`info`||t.get(n.stageId)!==`error`&&t.set(n.stageId,n.severity);return t}function wV(e,t){if(!t)return fV(e);let n=e?.summary??{errors:0,warnings:0};return fV({scope:e?.scope??`full`,ok:!1,summary:{errors:n.errors+1,warnings:n.warnings},findings:e?.findings??[]})}function TV(e){let t=e?.pipeline.schemas;return!t||typeof t!=`object`||Array.isArray(t)?0:Object.keys(t).length}function EV(e){let t=xB(e).split(`/`).pop()??e;return t.replace(/\.ya?ml$/i,``)||t}function DV(e){let t=xB(e);return t.startsWith(`./`)?t:`./${t}`}function OV(e,t,n){let r=xB(e),i;try{i=_B(t)}catch(e){throw Error(e instanceof Error?e.message:String(e))}if(typeof i!=`object`||!i||Array.isArray(i))throw Error(`Stage YAML must be a mapping at the document root`);let a=i,o=typeof a.id==`string`&&a.id.trim()?a.id.trim():null,s=o??EV(r),c=o?a:{...a,id:s};return{draft:{pipeline:{id:s,stages:[{id:s,uses:DV(r)}]},stages:[{path:r,body:c}]},listing:{path:r,id:s,stages:[{id:s,uses_path:r}],...n?{project_root:n}:{}},stageId:s}}function kV(e){return Number.isFinite(e)?e:null}function AV(e){return typeof e!=`string`||e.trim()===``?null:kV(Date.parse(e))}function jV(e){return AV(e.created_at)??-1/0}function MV(e){let t=new Map;for(let n of e){let e=new Set;for(let r of n.stages){if(r.status!==`succeeded`&&r.status!==`failed`||e.has(r.id))continue;e.add(r.id);let n=t.get(r.id)??{runs:0,succeeded:0,costSum:0,costCount:0};n.runs+=1,r.status===`succeeded`&&(n.succeeded+=1),r.cost_usd!==void 0&&Number.isFinite(r.cost_usd)&&(n.costSum+=r.cost_usd,n.costCount+=1),t.set(r.id,n)}}let n=new Map;for(let[e,r]of t){let t={runs:r.runs};r.runs>0&&(t.passRate=r.succeeded/r.runs),r.costCount>0&&(t.avgCostUsd=r.costSum/r.costCount),n.set(e,t)}return n}function NV(e){let t=[];for(let n of e){if(n.status!==`succeeded`||n.finished_at==null)continue;let e=AV(n.created_at),r=AV(n.finished_at);if(e==null||r==null)continue;let i=r-e;!Number.isFinite(i)||i<0||t.push(i)}if(t.length===0)return null;t.sort((e,t)=>e-t);let n=Math.floor(t.length/2);if(t.length%2==1)return t[n]??null;let r=t[n-1],i=t[n];return r==null||i==null?null:(r+i)/2}function PV(e){let t=new Map;for(let n of e.stages){let e=[];for(let t of n.events){let n=AV(t.at);n!=null&&e.push(n)}if(e.length<2)continue;let r=Math.max(...e)-Math.min(...e);!Number.isFinite(r)||r<0||t.set(n.stage_id,r)}return t}function FV(e,t){let n=new Map;for(let e of t)for(let[t,r]of e){if(!Number.isFinite(r)||r<0)continue;let e=n.get(t)??{sum:0,count:0};e.sum+=r,e.count+=1,n.set(t,e)}let r=new Map;for(let[t,n]of e)r.set(t,{...n});for(let[e,t]of n){if(t.count===0)continue;let n=t.sum/t.count,i=r.get(e);i?r.set(e,{...i,avgMs:n}):r.set(e,{runs:0,avgMs:n})}return r}function IV(e,t=8){return e.filter(e=>e.status===`succeeded`||e.status===`failed`).slice().sort((e,t)=>jV(t)-jV(e)||e.run_id.localeCompare(t.run_id)).slice(0,t)}function LV(e){let t=(0,J.useMemo)(()=>MV(e),[e]),n=(0,J.useMemo)(()=>NV(e),[e]),r=(0,J.useMemo)(()=>IV(e).map(e=>e.run_id).join(`
230
- `),[e]),i=(0,J.useRef)(new Map),[a,o]=(0,J.useState)([]);return(0,J.useEffect)(()=>{let e=!0,t=(r===``?[]:r.split(`
231
- `)).map(e=>{let t=i.current.get(e);if(t)return t;let n=Di(e).then(e=>e,()=>null);return i.current.set(e,n),n});return Promise.all(t).then(t=>{if(!e)return;let n=[];for(let e of t)e&&n.push(PV(e));o(n)}),()=>{e=!1}},[r]),{stageStats:(0,J.useMemo)(()=>FV(t,a),[t,a]),p50Ms:n}}function RV(e,t){let n=Math.max(0,Math.min(t,e.length)),r=1,i=0;for(let t=0;t<n;t+=1)e[t]===`
232
- `&&(r+=1,i=t+1);return{line:r,column:n-i+1}}function zV(e,t){return!e||!t?!1:xB(e)===xB(t)}function BV(e,t){for(let n of e.items)if(!(!RI(n.key)||n.key.value!==t))return(n.value??n.key).range?.[0]??n.key.range?.[0]??0;return 0}function VV(e,t,n){return{ok:!1,error:{message:t,...RV(e,n)}}}function HV(e,t,n,r){let i=gB(r,{prettyErrors:!1}),a=i.errors[0];if(a)return VV(r,a.message,a.pos[0]);if(!II(i.contents))return VV(r,`Expected a mapping at the document root`,0);let o=i.contents,s=i.toJS();if(zV(t,n))return typeof s.id!=`string`||s.id.trim()===``?VV(r,`Pipeline needs a string id`,BV(o,`id`)):Array.isArray(s.stages)?{ok:!0,draft:{...e,pipeline:s}}:VV(r,`Pipeline needs a stages list`,BV(o,`stages`));let c=e.stages??[],l=c.findIndex(e=>SB(e.path,t));return l<0?VV(r,`Unknown stage file ${t}`,0):{ok:!0,draft:{...e,stages:c.map((e,t)=>t===l?{...e,body:s}:e)}}}function UV(e,t,n,r){let i=HV(e,t,n,r);return i.ok?CB(i.draft,t,n)===CB(e,t,n):!1}function WV(e,t){return JSON.stringify(e.pipeline)!==JSON.stringify(t.pipeline)||JSON.stringify(e.stages??[])!==JSON.stringify(t.stages??[])}function GV(e){return e.length-e.trimStart().length}function KV(e){return e.trim()===``}function qV(e){return e.trim().startsWith(`#`)}function JV(e){let t=e.replace(/\s+#.*$/,``).trim();return t.length>=2&&(t.startsWith(`"`)&&t.endsWith(`"`)||t.startsWith(`'`)&&t.endsWith(`'`))?t.slice(1,-1):t}function YV(e,t){let n=e.split(`
233
- `),r=n.findIndex(e=>/^stages:\s*(#.*)?$/.test(e));if(r<0)return null;let i=null,a=n.length,o=[];for(let e=r+1;e<n.length;e+=1){let t=n[e];if(KV(t)||qV(t))continue;let r=GV(t),s=t.trimStart().startsWith(`- `)||t.trim()===`-`;if(i===null){if(!s)return null;i=r}if(r<i||r===i&&!s){a=e;break}r===i&&s&&o.push(e)}if(i===null)return null;let s=/^id:\s*(.*)$/;for(let e=0;e<o.length;e+=1){let r=o[e],c=(o[e+1]??a)-1;for(;c>r&&KV(n[c]);)--c;let l=null;for(let e=r;e<=c&&l===null;e+=1){let t=n[e],a=e===r?t.slice(i).replace(/^-\s*/,``):t.trimStart();if(e!==r&&GV(t)!==i+2)continue;let o=s.exec(a);o&&(l=JV(o[1]))}if(l===t)return{start:r+1,end:c+1}}return null}function XV(e){return(e.kind===`plain`||e.kind===`string`)&&e.text.trim()!==``}function ZV(e,t){let n=e.findIndex(e=>e.kind===`key`),r=e.findIndex((e,t)=>t>n&&XV(e));if(typeof t!=`number`||!Number.isInteger(t)||t<1)return r;let i=t-1,a=0;for(let t=0;t<e.length;t+=1){let n=e[t],r=a+n.text.length;if(r>i&&XV(n))return t;a=r}return r}function QV(e,t){let n=xB(e);if(zV(e,t))return n.split(`/`).pop()??n;if(t){let e=xB(t),r=e.lastIndexOf(`/`),i=r>=0?e.slice(0,r+1):``;if(i&&n.startsWith(i))return n.slice(i.length)}return n}function $V(e,t){let n=[e],r=new Set([xB(e)]);for(let e of t){if(!e)continue;let t=xB(e);!t||r.has(t)||(r.add(t),n.push(e))}return n}function eH(e,t){if(e.has(xB(t)))return!0;for(let n of e)if(SB(n,t))return!0;return!1}function tH(e,t){let n=wB(e).length;return`${n} ${n===1?`line`:`lines`} · ${t} ${t===1?`stage`:`stages`}`}function nH(e){return 10+(e-1)*20}function rH(e,t,n){let r=nH(e),i=r+20;return r-10<t?Math.max(0,r-10):i+10>t+n?Math.max(0,i+10-n):t}function iH(e,t,n,r,i){let a=n+(e-1)*t;return a<r+n?Math.max(0,a-n):a+t*2>r+i?Math.max(0,a+t*2-i):r}function aH(e,t){return Math.max(0,nH(e)+10-t/2)}function oH(e,t,n){if(!n)return;let r=e[e.length-1];r&&r.kind===t?r.text+=n:e.push({kind:t,text:n})}function sH(e){let t=[],n=0;function r(r){for(;n<e.length&&e[n]===` `;)oH(t,r,` `),n+=1}for(;n<e.length&&(e[n]===` `||e[n]===` `);)oH(t,`plain`,e[n]),n+=1;for(;e[n]===`-`&&(e[n+1]===` `||e[n+1]===void 0);)oH(t,`punct`,`-`),n+=1,r(`punct`);if(e[n]===`#`)return oH(t,`comment`,e.slice(n)),t;let i=/^([A-Za-z_][A-Za-z0-9_-]*)(:)(?=\s|$)/.exec(e.slice(n));i&&(oH(t,`key`,i[1]),oH(t,`punct`,`:`),n+=i[0].length,r(`punct`));let a=0,o=!0;for(;n<e.length;){let i=e[n];if((i===`"`||i===`'`)&&o){let r=i,a=n+1;for(;a<e.length;){if(r===`"`&&e[a]===`\\`){a+=2;continue}if(e[a]===r){a+=1;break}a+=1}oH(t,`string`,e.slice(n,a)),n=a,o=!1;continue}if(i===`#`&&(n===0||e[n-1]===` `)){oH(t,`comment`,e.slice(n));break}if((i===`[`||i===`{`)&&(o||a>0)){oH(t,`punct`,i),a+=1,n+=1,o=!0;continue}if((i===`]`||i===`}`)&&a>0){oH(t,`punct`,i),--a,n+=1;continue}if(a>0&&(i===`,`||i===`:`&&(e[n+1]===` `||e[n+1]===void 0))){oH(t,`punct`,i),n+=1,r(`punct`),o=!0;continue}oH(t,`plain`,i),i!==` `&&(o=!1),n+=1}return t}function cH(e){let t=0;for(;t<e.length&&(e[t]===` `||e[t]===` `);)t+=1;return t}function lH(e){let t=e.replace(/(^|\s+)#.*$/,``);return/:\s*[|>][+-]?\s*$/.test(t)}function uH(e){let t=e.split(`
234
- `);t.length>0&&t[t.length-1]===``&&t.pop();let n=[],r=null;for(let e of t){if(r!==null){if(e.trim()===``||cH(e)>=r){n.push(e.length>0?[{kind:`string`,text:e}]:[]);continue}r=null}n.push(sH(e)),lH(e)&&(r=cH(e)+1)}return n}var dH=40,fH=new Set,pH={plain:`text-[#ecedee]`,key:`text-[#a7aab2]`,punct:`text-[#8b8f98]`,string:`text-[#8fc7a8]`,comment:`text-[#8b8f98]`},mH=`font-['Geist_Mono',monospace] text-xs leading-5 tracking-normal [font-variant-ligatures:none] [tab-size:2]`;function hH(e,t){let n=!1,r={};for(let[i,a]of Object.entries(e))t(i,a)?n=!0:r[i]=a;return n?r:e}function gH({draft:e,pipelinePath:t,activePath:n,onActivePathChange:r,openPaths:i,onClosePath:a,dirtyPaths:o=fH,highlightRange:s,selectedStageId:c=null,activeFinding:l=null,onQuickFix:u,onDraftChange:d,onParseError:f,formatNonce:p=0,readOnly:m,width:h=400}){let g=!(m??!d),[_,v]=(0,J.useState)(null),y=n??_??t,b=y?xB(y):``,x=zV(y,t),S=(0,J.useMemo)(()=>t?$V(t,[...i??[],y]):[],[t,i,y]),C=S.map(xB).join(`
235
- `),[w,T]=(0,J.useState)({}),[E,D]=(0,J.useState)({key:``,line:1,column:1}),O=(0,J.useRef)(null),k=(0,J.useRef)(null),j=(0,J.useRef)(p),M=(0,J.useRef)(``),N=(0,J.useMemo)(()=>e&&y?CB(e,y,t):``,[e,y,t]),P=w[b]?.text??N,F=P.split(`
236
- `),I=(0,J.useMemo)(()=>uH(P),[P]);(0,J.useEffect)(()=>{e&&T(n=>hH(n,(n,r)=>r.error===null&&!UV(e,r.path,t,r.text)))},[e,t]),(0,J.useEffect)(()=>{let e=new Set(C.split(`
237
- `));T(t=>hH(t,t=>!e.has(t)))},[C]),(0,J.useEffect)(()=>{j.current!==p&&(j.current=p,T(e=>hH(e,(e,t)=>e===b&&t.error===null)))},[p,b]);let L=(0,J.useMemo)(()=>{let e=w[b],t=e?.error?e:Object.values(w).find(e=>e.error!==null);return t?.error?{path:t.path,...t.error}:null},[w,b]),R=L?JSON.stringify(L):``;(0,J.useEffect)(()=>{M.current!==R&&(M.current=R,f?.(L))},[R,L,f]);let z=EB(l,y),B=z!==void 0&&z<=F.length?z:void 0,V=l?.severity??`warning`,H=B!==void 0&&u?l?.quickFixLabel:void 0;(0,J.useEffect)(()=>{let e=O.current;!e||B===void 0||(e.scrollTop=aH(B,e.clientHeight))},[B,b]);let ee=x?s===void 0?c?YV(P,c):null:s:null,te=E.key===b?`Ln ${E.line}, Col ${E.column}`:`Ln 1, Col 1`;function ne(e){r?r(e):v(e)}function re(e){t&&y&&xB(e)===b&&ne(t),a?.(e)}function ie(n){if(!g||!e||!y)return;let r=HV(e,y,t,n);T(e=>({...e,[b]:{path:y,text:n,error:r.ok?null:r.error}})),r.ok&&WV(e,r.draft)&&d?.(r.draft)}function ae(e){let t=e.selectionDirection===`backward`?e.selectionStart:e.selectionEnd;return RV(e.value,t)}function oe(e){let{line:t,column:n}=ae(e.currentTarget);D({key:b,line:t,column:n})}function se(e){let t=O.current;if(!t)return;let{line:n,column:r}=ae(e),i=(k.current?.getBoundingClientRect().width??72)/10;t.scrollTop=rH(n,t.scrollTop,t.clientHeight),t.scrollLeft=iH(r,i,dH,t.scrollLeft,t.clientWidth)}function ce(e){if((e.metaKey||e.ctrlKey)&&e.key===`.`){H&&u&&(e.preventDefault(),u());return}if(e.key!==`Tab`||e.shiftKey||e.metaKey||e.ctrlKey||e.altKey||!g)return;e.preventDefault();let t=e.currentTarget;if(document.execCommand(`insertText`,!1,` `))return;let n=t.selectionStart;ie(`${t.value.slice(0,n)} ${t.value.slice(t.selectionEnd)}`),requestAnimationFrame(()=>t.setSelectionRange(n+2,n+2))}function le(e){e.currentTarget.scrollTop=0,e.currentTarget.scrollLeft=0}return t?(0,Y.jsxs)(`div`,{className:`flex min-h-0 shrink-0 flex-col bg-[#131418]`,style:{width:h},children:[(0,Y.jsxs)(`div`,{className:`flex h-9 w-full shrink-0 items-end gap-0.5 overflow-x-auto border-b border-b-[#ffffff12] px-2 [scrollbar-width:none]`,role:`tablist`,children:[S.map(e=>{let n=xB(e)===b,r=zV(e,t),i=eH(o,e),a=QV(e,t);return(0,Y.jsxs)(`div`,{className:`flex h-[30px] shrink-0 items-center gap-1.5 px-2.5${n?` rounded-t-md bg-[#1a1c21]`:``}`,children:[(0,Y.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":n,title:e,className:`flex items-center gap-1.5 border-0 bg-transparent p-0 font-['Geist_Mono',monospace] text-xs leading-[1.33333] whitespace-nowrap${n?` text-[#ecedee]`:` text-[#a7aab2] hover:text-[#ecedee]`}`,onClick:()=>ne(e),children:[(0,Y.jsx)(tt,{"aria-hidden":!0,className:`size-3 shrink-0 ${n?`text-[#a7aab2]`:`text-[#8b8f98]`}`}),a,i?(0,Y.jsx)(`span`,{"aria-label":`Unsaved changes`,className:`size-1.5 shrink-0 rounded-full bg-[#ecedee]`}):null]}),r?null:(0,Y.jsx)(`button`,{type:`button`,"aria-label":`Close tab`,className:`flex size-[11px] items-center justify-center rounded-sm border-0 bg-transparent p-0 text-[#8b8f98] hover:text-[#ecedee]`,onClick:()=>re(e),children:(0,Y.jsx)(St,{"aria-hidden":!0,className:`size-[11px]`})})]},xB(e))}),(0,Y.jsx)(`div`,{className:`flex-1`})]}),(0,Y.jsx)(`div`,{ref:O,className:`relative min-h-0 flex-1 overflow-auto`,children:(0,Y.jsxs)(`div`,{className:`relative min-h-full w-max min-w-full py-2.5 ${mH}`,children:[(0,Y.jsx)(`span`,{ref:k,"aria-hidden":!0,className:`pointer-events-none invisible absolute top-0 left-0 whitespace-pre`,children:`0000000000`}),F.map((e,t)=>{let n=t+1,r=I[t]??[],i=B===n,a=ee!=null&&n>=ee.start&&n<=ee.end,o=i?ZV(r,l?.column):-1;return(0,Y.jsxs)(`div`,{"data-yaml-line":n,className:`flex h-5 items-center pr-6${i?` border-l-2 border-l-[#a7aab2] bg-[#ffffff0f]`:a?` bg-[#ffffff06]`:``}`,children:[i?(0,Y.jsxs)(`span`,{className:`flex w-[38px] shrink-0 items-center justify-end gap-[3px] pr-3.5 select-none`,children:[V===`error`?(0,Y.jsx)(A,{"aria-hidden":!0,className:`size-[11px] shrink-0 text-[#e5484d]`}):(0,Y.jsx)(je,{"aria-hidden":!0,className:`size-[11px] shrink-0 text-[#a7aab2]`}),(0,Y.jsx)(`span`,{className:`text-[#ecedee]`,children:n})]}):(0,Y.jsx)(`span`,{className:`w-10 shrink-0 pr-3.5 text-right select-none ${a?`text-[#a7aab2]`:`text-[#8b8f98]`}`,children:n}),(0,Y.jsx)(`span`,{className:`whitespace-pre`,children:r.map((e,t)=>(0,Y.jsx)(`span`,{className:`${pH[e.kind]}${t===o?` underline decoration-[#a7aab2] decoration-wavy underline-offset-4`:``}`,children:e.text},t))})]},n)}),(0,Y.jsx)(`textarea`,{"aria-label":`YAML source`,value:P,readOnly:!g,spellCheck:!1,autoCapitalize:`off`,autoComplete:`off`,autoCorrect:`off`,wrap:`off`,className:`absolute top-0 right-0 bottom-0 left-10 z-[1] m-0 block resize-none appearance-none overflow-hidden border-0 bg-transparent px-0 py-2.5 whitespace-pre text-transparent caret-[#ecedee] outline-none selection:bg-[#ffffff1f] ${mH}`,onChange:e=>{ie(e.target.value),oe(e)},onSelect:oe,onMouseUp:oe,onKeyDown:ce,onKeyUp:e=>{oe(e),se(e.currentTarget)},onScroll:le}),B!==void 0&&l?(0,Y.jsxs)(`div`,{className:`absolute right-3 left-10 z-[2] mt-1 flex max-w-[348px] flex-col gap-1.5 rounded-lg border border-[#ffffff1a] bg-[#1a1c21] p-2.5 font-sans shadow-[0px_8px_24px_rgba(0,0,0,0.45)]`,style:{top:nH(B)+20},role:`status`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[V===`error`?(0,Y.jsx)(A,{"aria-hidden":!0,className:`size-[13px] shrink-0 text-[#e5484d]`}):(0,Y.jsx)(je,{"aria-hidden":!0,className:`size-[13px] shrink-0 text-[#a7aab2]`}),(0,Y.jsx)(`span`,{className:`text-xs leading-[1.66667] font-medium text-[#ecedee]`,children:V===`error`?`Error`:`Warning`}),l.code?(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace] text-[11px] leading-[1.81818] text-[#8b8f98]`,children:l.code}):null]}),(0,Y.jsx)(`p`,{className:`m-0 text-xs leading-[1.41667] whitespace-normal text-[#a7aab2]`,children:l.message}),H?(0,Y.jsxs)(`button`,{type:`button`,className:`flex items-center gap-1.5 self-start rounded-sm border-0 bg-transparent p-0 text-left hover:opacity-80`,onClick:()=>u?.(),children:[(0,Y.jsx)(Pe,{"aria-hidden":!0,className:`size-3 shrink-0 text-[#ecedee]`}),(0,Y.jsx)(`span`,{className:`text-xs leading-[1.66667] font-medium text-[#ecedee]`,children:H}),(0,Y.jsx)(`span`,{className:`rounded-sm border border-[#ffffff1a] bg-[#131418] px-[5px] font-['Geist_Mono',monospace] text-[11px] leading-[1.45455] text-[#8b8f98]`,children:`⌘.`})]}):null]}):null]})}),(0,Y.jsxs)(`footer`,{className:`flex h-[30px] w-full shrink-0 items-center gap-3 border-t border-t-[#ffffff12] px-3 font-['Geist_Mono',monospace] text-[11px] leading-normal text-[#8b8f98]`,children:[(0,Y.jsx)(`span`,{children:te}),(0,Y.jsx)(`span`,{children:`Spaces: 2`}),(0,Y.jsx)(`span`,{className:`flex-1`}),(0,Y.jsx)(`span`,{children:tH(P,e?.pipeline.stages.length??0)})]})]}):(0,Y.jsx)(`div`,{className:`flex shrink-0 flex-col bg-[#131418]`,style:{width:h},children:(0,Y.jsx)(`p`,{className:`p-3 text-xs text-[#8b8f98]`,children:`YAML unavailable`})})}function _H(e){return`${e.id}\0${e.project_root??``}\0${e.path}`}function vH(e,t){let n=t.summary.errors===1?`1 error`:`${t.summary.errors} errors`,r=t.summary.warnings===1?`1 warning`:`${t.summary.warnings} warnings`,i=t.ok?`valid`:n;return t.summary.warnings>0?`${e} · ${i} · ${r}`:`${e} · ${i}`}function yH(e,t){let n=e.path.replace(/\\/g,`/`),r=n.lastIndexOf(`/`),i=r>=0?n.slice(0,r):`.`;return t.filter(e=>i===`.`?!e.path.includes(`/`):e.path.startsWith(`${i}/`))[0]?.path??t[0]?.path}function bH(e,t){let n=(e.stages??[]).find(e=>SB(e.path,t));return n?yB(n.body):CB(e,t,null)}function xH({pipelineId:e,pipeline:t,pipelines:n=null,tasks:r,onNew:i,mode:a=`pipeline`,stagePath:o,projectRoot:s}){let c=a===`stage`,l=xB(o||t.path),[u,d]=(0,J.useState)(null),[f,p]=(0,J.useState)(null),[m,h]=(0,J.useState)(null),[g,_]=(0,J.useState)(null),[v,y]=(0,J.useState)(!0),[b,x]=(0,J.useState)(null),[S,C]=(0,J.useState)(c?l:t.path),[w,T]=(0,J.useState)(c?[l]:[t.path]),[E,D]=(0,J.useState)(null),[O,k]=(0,J.useState)(0),[A,j]=(0,J.useState)(0),[M,N]=(0,J.useState)(400),[P,F]=(0,J.useState)(300),[I,L]=(0,J.useState)(`editor`),[R,z]=(0,J.useState)(!0),[B,V]=(0,J.useState)(null),[H,ee]=(0,J.useState)([]),[te,ne]=(0,J.useState)(!1),[re,ie]=(0,J.useState)(null),[ae,oe]=(0,J.useState)(null),[se,ce]=(0,J.useState)(null),[le,ue]=(0,J.useState)(!1),[de,fe]=(0,J.useState)(null),[pe,me]=(0,J.useState)(null),he=(0,J.useRef)(0),[ge,_e]=(0,J.useState)(!1),[ve,ye]=(0,J.useState)([]),be=(0,J.useRef)(0),xe=_H(t),[Se,Ce]=(0,J.useState)(null),we=s??t.project_root,Te=!c&&Se?.readOnly===!0,[Ee,De]=(0,J.useState)(null),[Oe,ke]=(0,J.useState)([]),Ae=(0,J.useRef)(null),je=(0,J.useRef)(0),Me=(0,J.useRef)(0),U=c?`${l}.stage-editor.pipeline.yaml`:t.path,Ne=c?b??u?.pipeline.id??e:e,Pe=c?Xo(l,we):t.path,Fe=BN(u,f),W=sV(u,f),Ie=(0,J.useMemo)(()=>xV(u,f,U),[f,u,U]),{snapshot:Le,error:Re,loading:ze}=Jo(),Be=(0,J.useMemo)(()=>UN(Le.runs,{id:t.id,project_root:t.project_root}),[t.id,t.project_root,Le.runs]),{stageStats:Ve,p50Ms:He}=LV(Be),Ue=(0,J.useMemo)(()=>ve.filter(e=>e.pipelineKey===xe),[xe,ve]),We=(0,J.useCallback)((e,t)=>{let n=`session-${be.current}`;be.current+=1,ye(r=>[...r,{pipelineKey:xe,id:n,at:new Date().toISOString(),label:e,...t?{detail:t}:{}}])},[xe]),Ge=(0,J.useCallback)(async()=>{if(je.current+=1,Me.current+=1,V(null),ee([]),ie(null),fe(null),D(null),k(e=>e+1),y(!0),_(null),c){T([l]),C(l);try{let e=await Eo({path:l,...we?{project_root:we}:{}}),t=OV(l,e.content,we);d(t.draft),p(uA(t.draft)),h(null),Ce(null),x(t.stageId),y(!1)}catch(e){_(e instanceof Error?e.message:String(e)),d(null),p(null),y(!1)}return}T([t.path]),C(t.path);let e=await ro({path:t.path,...we?{project_root:we}:{}});if(y(!1),!e.ok){_(e.error),d(null),p(null);return}let n=aN(e);n&&Ce(n),d(e.draft),p(uA(e.draft)),h(e.destination)},[we,t.path,l,c]);(0,J.useEffect)(()=>{Ge()},[Ge]),(0,J.useEffect)(()=>{let e=!1;return(async()=>{try{let t=await Ca();if(e)return;let n=t.defaultModel?.trim()??``;De(n.length>0?n:null)}catch{if(e)return;De(null)}})(),()=>{e=!0}},[]),(0,J.useEffect)(()=>{let e=!1;return sa().then(t=>{e||ke(t.skills.map(e=>e.name))},()=>{}),()=>{e=!0}},[]);let Ke=(0,J.useCallback)(async()=>{if(c)return;let e=++Me.current;ne(!0),ie(null);try{let n=Date.now(),r=await To({pipeline:t.path,strict:!0,...we?{project_root:we}:{}});if(e!==Me.current)return;ee(r.findings),oe(Date.now()-n),ce(Date.now()),We(`Validated`,vH(`catalog`,r))}catch(t){if(e!==Me.current)return;ie(t instanceof Error?t.message:String(t))}finally{e===Me.current&&ne(!1)}},[We,we,t.path,c]),qe=(0,J.useCallback)(async e=>{if(c){let t=++Me.current;ne(!0),ie(null);try{let n=Date.now(),r=await To({stage:l,content:bH(e,l),strict:!0,...we?{project_root:we}:{}});if(t!==Me.current)return;ee(r.findings),V(r),oe(Date.now()-n),ce(Date.now()),We(`Validated`,vH(`catalog`,r))}catch(e){if(t!==Me.current)return;ie(e instanceof Error?e.message:String(e))}finally{t===Me.current&&ne(!1)}return}let t=++je.current,n=Date.now(),r=await $a(e,we);t===je.current&&(V(r),oe(Date.now()-n),ce(Date.now()),We(`Validated`,vH(`draft`,r)))},[We,we,l,c]);(0,J.useEffect)(()=>{c||Ke()},[Ke,c]),(0,J.useEffect)(()=>{if(!(!R||!u))return Ae.current&&clearTimeout(Ae.current),Ae.current=setTimeout(()=>{qe(u)},400),()=>{Ae.current&&clearTimeout(Ae.current)}},[R,u,qe]);let Je=(0,J.useCallback)(e=>{d(e)},[]),Ye=(0,J.useCallback)(()=>{Ge(),c||Ke(),SD(`Discarded local edits`)},[Ge,Ke,c]),Xe=(0,J.useCallback)(async()=>{if(!u)return;if(_e(!0),c){let e=bH(u,l),t=await Do({path:l,content:e,...we?{project_root:we}:{}});if(_e(!1),!t.ok){SD(t.error??`Save failed`),t.findings&&(ee(t.findings),V({scope:`full`,ok:!1,summary:{errors:t.findings.filter(e=>e.severity===`error`).length,warnings:t.findings.filter(e=>e.severity===`warning`).length},findings:t.findings}),ue(!1));return}let n=u;try{let e=OV(l,t.content,we);n=e.draft,d(e.draft),p(uA(e.draft)),x(e.stageId),T([l]),C(l),k(e=>e+1)}catch{p(uA(u))}SD(`Saved`),We(`Saved`),qe(n);return}let e;if(Te){if(e=await eo({directory:uN(`workspace`,u.pipeline.id),pipelineFilename:m?.pipelineFilename,draft:u,...lN(QM,QM)}),!e.ok&&e.status===409){let t=window.prompt(`A pipeline with this id already exists in Workspace. Enter a new pipeline id:`,`${u.pipeline.id}-copy`);if(t?.trim()){let n={...u,pipeline:{...u.pipeline,id:t.trim()}};e=await eo({directory:uN(`workspace`,t.trim()),draft:n,...lN(QM,QM)}),e.ok&&d(n)}}}else{if(!m){_e(!1);return}e=await to({directory:m.directory,pipelineFilename:m.pipelineFilename,draft:u,...we?{project_root:we}:{}})}if(_e(!1),!e.ok){SD(e.error??`Save failed`),e.findings&&V({scope:`full`,ok:!1,summary:{errors:e.findings.filter(e=>e.severity===`error`).length,warnings:e.findings.filter(e=>e.severity===`warning`).length},findings:e.findings});return}let t=aN(e);t&&Ce(t),p(uA(u)),SD(Te?`Saved copy to Workspace`:`Saved`),We(Te?`Saved copy`:`Saved`),Ke()},[We,we,m,u,Te,Ke,qe,l,c]),Ze=(0,J.useCallback)(e=>{T(t=>t.some(t=>xB(t)===xB(e))?t:[...t,e]),C(e)},[]),Qe=(0,J.useCallback)((e,t)=>{let n=DB(e,t);n?Ze(n):C(U)},[Ze,U]),$e=(0,J.useCallback)(e=>{if(c&&SB(e,l))return;let t=xB(e);T(e=>e.filter(e=>xB(e)!==t)),C(e=>e&&xB(e)===t?U:e)},[U,l,c]),et=(0,J.useCallback)(e=>{!e||zV(e,U)?C(U):Ze(e)},[Ze,U]),tt=(0,J.useCallback)(e=>{x(e),u&&Qe(u,e)},[u,Qe]),nt=(0,J.useCallback)(()=>{if(!u)return;let e=kA(u);d(e.draft),x(e.stageId),Qe(e.draft,e.stageId)},[u,Qe]),rt=(0,J.useCallback)((e,t)=>{if(!u)return;let n=Xj(u,e),r=PA(u,e,t);if(r===u)return;let i=Xj(r,t);d(r),x(n=>n===e?t:n),n&&i&&n!==i&&(T(e=>e.map(e=>SB(e,n)?i:e)),C(e=>e&&SB(e,n)?i:e))},[u]),it=(0,J.useMemo)(()=>JN(B?.findings??[],H),[H,B]),at=(0,J.useMemo)(()=>u?bV(u,U,it,E):[],[it,u,U,E]),ot=(0,J.useMemo)(()=>CV(at),[at]),st=de?at.find(e=>KB(e)===de)??null:null,ct=(0,J.useCallback)(e=>u?YB(e,u):void 0,[u]),lt=(0,J.useCallback)(e=>{if(fe(KB(e)),!u)return;let t=SV(e,u);if(t&&(x(t.stageId),Qe(u,t.stageId)),zV(e.path,U)){C(U);return}let n=(u.stages??[]).find(t=>SB(t.path,e.path));n&&Ze(n.path)},[u,Ze,U,Qe]),ut=(0,J.useCallback)(e=>{if(lt(e),ue(!1),!u)return;let t=SV(e,u);t?.field&&(he.current+=1,me({stageId:t.stageId,field:t.field,nonce:he.current}))},[u,lt]),dt=!Fe||ge||v||!u||E!==null;Yc([{key:`mod+s`,scope:`pipelines`,allowInInput:!0,handler:e=>{e.preventDefault(),!dt&&Xe()}},{key:`a`,scope:`pipelines`,when:()=>!c&&I===`editor`&&!!u&&!v,handler:e=>{e.preventDefault(),nt()}},{key:`alt+shift+f`,scope:`pipelines`,allowInInput:!0,when:()=>I===`editor`&&!!u&&!v,handler:e=>{e.preventDefault(),!E&&j(e=>e+1)}},{key:`mod+.`,scope:`pipelines`,allowInInput:!0,when:()=>I===`editor`&&!v,handler:e=>{e.preventDefault();let t=st&&ct(st)?st:at.find(e=>ct(e));t&&ut(t)}}],`pipelines`);let ft=yH(t,r),pt=wV(B,E!==null),mt=c?``:`#${Oc({pipeline:t.path,...we?{project_root:we}:{}})}`,ht=(0,J.useCallback)(()=>{let e=c?l:t.path;navigator.clipboard.writeText(e).then(()=>SD(`Copied path`),()=>SD(`Could not copy path`))},[t.path,l,c]),gt=st?ct(st):void 0,_t=st&&st.severity!==`info`?{path:st.path,message:st.message,severity:st.severity,code:st.code,...st.line===void 0?{}:{line:st.line},...st.column===void 0?{}:{column:st.column},...gt?{quickFixLabel:gt}:{}}:null,vt=st?.severity===`info`&&st.line!==void 0?{start:st.line,end:st.lineEnd??st.line}:void 0;return(0,Y.jsxs)(`div`,{className:`flex h-screen min-w-0 flex-1 flex-col overflow-hidden`,children:[(0,Y.jsx)(HP,{mode:a,pipelineId:Ne,filePath:Pe,unsavedCount:W,pills:pt,discardDisabled:v||W===0&&E===null,saveDisabled:dt,saving:ge,workshopHref:mt,readOnlyNotice:uV(Te),saveLabel:dV(Te,Fe),onDiscard:Ye,onStartRun:()=>i(Ic({pipeline:t.path,...ft?{task:ft}:{},...we?{project_root:we}:{}})),onSave:()=>void Xe(),onCopyPath:ht,activeTab:I,onTabChange:L,runsCount:ze?null:Be.length,autoValidate:R,onAutoValidateChange:z,onFormat:()=>j(e=>e+1),formatDisabled:E!==null||!u||v}),!c&&I===`runs`?(0,Y.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto`,children:(0,Y.jsx)(qP,{runs:Be,loading:ze,error:Re})}):null,!c&&I===`history`?(0,Y.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto`,children:(0,Y.jsx)(GP,{events:Ue,runs:Be,loading:ze})}):null,I===`editor`&&g?(0,Y.jsx)(`p`,{className:`px-5 pt-3 text-[13px] text-[var(--sf-fail)]`,children:g}):null,I===`editor`&&v?(0,Y.jsx)(`p`,{className:`px-5 py-4 text-[13px] text-[var(--sf-text-3)]`,children:c?`Loading stage…`:`Loading package…`}):null,I===`editor`&&!v&&u?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1`,role:`tabpanel`,"aria-label":`Editor`,children:[(0,Y.jsx)(gH,{draft:u,pipelinePath:U,activePath:S,onActivePathChange:C,openPaths:w,onClosePath:$e,dirtyPaths:Ie,highlightRange:vt,selectedStageId:b,activeFinding:_t,onQuickFix:()=>{st&&ut(st)},onDraftChange:Je,onParseError:D,formatNonce:A,readOnly:!1,width:M},O),(0,Y.jsx)(pV,{label:`Resize YAML panel`,value:M,min:280,max:720,onChange:e=>N(mV(e))}),(0,Y.jsx)(zP,{draft:u,selectedStageId:b,onSelectStage:tt,onAddStage:nt,defaultModel:Ee,stageFindings:ot,stageStats:Ve,p50Ms:He,hideAddStage:c}),(0,Y.jsx)(pV,{label:`Resize stage inspector`,value:P,min:240,max:480,invert:!0,onChange:e=>F(hV(e))}),(0,Y.jsx)(TI,{draft:u,baseline:f,selectedStageId:b,findings:it,defaultModel:Ee,skills:Oe,pipelines:n,currentPipelineId:t.id,projectRoot:we,workshopHref:c?void 0:mt,onDraftChange:Je,onRenameStage:rt,onOpenYaml:et,width:P,focusRequest:pe&&pe.stageId===b?{field:pe.field,nonce:pe.nonce}:null})]}),(0,Y.jsx)(rV,{findings:at,activeFilePath:S,loading:te,error:re,collapsed:le,onCollapsedChange:ue,selectedKey:de,onSelectFinding:lt,onQuickFix:ut,onValidate:()=>{if(c){u&&qe(u);return}Ke(),u&&qe(u)},validatedAt:se,validatedMs:ae,stageCount:u.pipeline.stages.length,schemaCount:TV(u),findingKey:KB,quickFixFor:ct})]}):null]})}function SH(e,t){return e===null?null:typeof e==`string`&&t.includes(e)?e:t[0]??null}function CH(e,t,n){if(e.length===0)return null;if(t==null)return e[0]??null;let r=e.indexOf(t);return r<0?e[0]??null:e[Math.min(Math.max(r+n,0),e.length-1)]??null}function wH(e){if(!e)return null;let t=e.pipeline.project_root;return yc(e.pipeline.id,t?{project_root:t}:void 0)}function TH(e){if(!e)return null;let t=e.project_root??e.pipeline?.project_root;return Ic({pipeline:e.catalogPath,...e.defaultTaskPath?{task:e.defaultTaskPath}:{},...t?{project_root:t}:{}})}function EH(e){if(!e)return null;let t=e.project_root??e.pipeline?.project_root;return Oc({pipeline:e.catalogPath,...t?{project_root:t}:{}})}var DH=`—`;function OH(e){return`${e.path}:${e.project_root??``}:${e.id}`}function kH(e){return/^([A-Za-z]:[\\/]|\/)/.test(e)}function AH(e){let t=Zo(e).replace(/\/$/,``).split(`/`);return t[t.length-1]??e}function jH(e){switch(e){case`free_text`:return`free text`;case`confirm`:return`confirm`;case`multi_question`:return`multi-question`;case`artifact_backed`:return`artifact`}}function MH(e){let t=[];for(let n of e)for(let e of n.gate_kinds??[])t.push(jH(e));return t}function NH(e){let t=e[0];return t===void 0?{kind:`none`}:{kind:`gates`,firstLabel:t,extraCount:e.length-1}}function PH(e){let t=e.replace(/\\/g,`/`),n=t.lastIndexOf(`/`);return n>=0?t.slice(0,n):`.`}function FH(e,t){let n=PH(e.path);return t.filter(e=>n===`.`?!e.path.includes(`/`):e.path.startsWith(`${n}/`))}function IH(e){let t=Zo(e.path);return kH(t)?Zo(Xo(t,e.project_root)):t}function LH(e){return e?AH(e):``}function RH(e){if(e!==void 0&&e!==``)return Zo(e).replace(/\/$/,``)}function zH(e,t){return RH(e)===RH(t)}function BH(e){if(!e.pipeline_path)return;let t=Zo(e.pipeline_path);return kH(t)?Zo(Xo(t,e.project_root)):t}function VH(e,t){return OH(e)===OH(t)}function HH(e,t){if(e.pipeline_path){let n=BH(e);if(!n)return[];let r=t.filter(e=>Zo(e.path)===n);return r.length===1?r:r.length>1?r.filter(t=>zH(t.project_root,e.project_root)):[]}let n=t.filter(t=>t.id===e.pipeline_id);return n.length===1?n:[]}function UH(e,t,n){return n.filter(n=>HH(n,t).some(t=>VH(t,e))).sort((e,t)=>{let n=t.created_at.localeCompare(e.created_at);return n===0?t.run_id.localeCompare(e.run_id):n})}function WH(e){let t=Date.parse(e.created_at),n=e.finished_at??e.updated_at;if(!n)return;let r=Date.parse(n);if(!(!Number.isFinite(t)||!Number.isFinite(r)))return Math.max(0,r-t)}function GH(e){let t=cc(e);return t.startsWith(`~`)?t.slice(1):t}function KH(e,t){if(e===void 0)return DH;let n=_l(e);return t===void 0?n:`${n} · ${GH(t)}`}function qH(e){let t=e.filter(e=>e.status===`succeeded`),n=t.map(WH).filter(e=>e!=null),r=n.length>0?n.reduce((e,t)=>e+t,0)/n.length:void 0,i=0,a=!1;for(let e of t)e.total_cost_usd!==void 0&&(i+=e.total_cost_usd,a=!0);let o=a&&t.length>0?i/t.length:void 0,s=e[0];return{runCount:e.length,runsLabel:e.length===0?DH:String(e.length),...s?{lastRun:s}:{},neverRun:s===void 0,...r===void 0?{}:{avgDurationMs:r},...o===void 0?{}:{avgCostUsd:o},tableAvg:KH(r,o),...r===void 0?{}:{inspectorDuration:`avg ${_l(r)}`},...o===void 0?{}:{inspectorCost:`${GH(o)} / run`}}}function JH(e,t){let n=t.trim().toLowerCase();if(!n)return!0;let r=Zo(Xo(e.path,e.project_root)).toLowerCase(),i=Zo(e.path).toLowerCase();return e.id.toLowerCase().includes(n)||r.includes(n)||i.includes(n)||LH(e.project_root).toLowerCase().includes(n)?!0:e.stages.some(e=>e.id.toLowerCase().includes(n))}function YH(e,t,n){if(n===`id`)return e.pipeline.id.localeCompare(t.pipeline.id);if(n===`stage-count`){let n=t.stageCount-e.stageCount;return n===0?e.pipeline.id.localeCompare(t.pipeline.id):n}let r=e.stats.lastRun?.created_at,i=t.stats.lastRun?.created_at;if(r&&i){let e=i.localeCompare(r);if(e!==0)return e}else if(r)return-1;else if(i)return 1;return e.pipeline.id.localeCompare(t.pipeline.id)}function XH(e){let t=e[0]?.project_root;return e.some(e=>e.project_root!==t)}function ZH(e){return e.map(e=>{let t=MH([e]);return{id:e.id,gateLabels:t,gates:NH(t)}})}function QH(e){let t=e.tasks??[],n=e.runs??[],r=e.sort??`last-run`,i=e.search??``,a=e.pipelines.map(r=>{let i=MH(r.stages),a=FH(r,t),o=UH(r,e.pipelines,n);return{key:OH(r),pipeline:r,stageChain:r.stages.map(e=>e.id).join(` → `),stageCount:r.stages.length,catalogPath:IH(r),catalogRootBasename:LH(r.project_root),stages:ZH(r.stages),gateLabels:i,gates:NH(i),tasks:a,...a.length===1?{defaultTaskPath:a[0].path}:{},matchedRuns:o,stats:qH(o)}}).sort((e,t)=>YH(e,t,r)),o=a.filter(e=>JH(e.pipeline,i));return{rows:a,filteredRows:o,filteredCount:o.length,catalogRootsVisible:XH(e.pipelines),sort:r}}var $H=`—`,eU=`text-[11px] font-medium uppercase tracking-[0.88px] text-[var(--sf-text-3)]`;function tU(e){let t=cc(e);return t.startsWith(`~`)?t.slice(1):t}function nU(e,t){if(t)return`${$H} · ${$H} · ${$H} runs`;let n=[];return e.stats.inspectorDuration&&n.push(e.stats.inspectorDuration),e.stats.inspectorCost&&n.push(e.stats.inspectorCost),n.push(`${e.stats.runCount} runs`),n.join(` · `)}function rU(e){return(0,Y.jsx)(`span`,{className:`inline-flex h-5 shrink-0 items-center whitespace-nowrap rounded-[5px] border border-[#ffffff1a] bg-[var(--sf-raised)] px-1.5 font-['Geist_Mono',monospace] text-[11px] text-[var(--sf-text-2)]`,children:e})}function iU({children:e}){return(0,Y.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:e})}function aU({row:e,initialLoadDone:t,catalogFailed:n,onOpenEditor:r,onStartRun:i,onOpenWorkshop:a}){if(!t)return(0,Y.jsx)(iU,{children:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-3 p-4`,"aria-hidden":`true`,children:[(0,Y.jsx)(`div`,{className:`h-3 w-16 animate-pulse rounded bg-[var(--sf-raised)]`}),(0,Y.jsx)(`div`,{className:`h-5 w-40 animate-pulse rounded bg-[var(--sf-raised)]`}),(0,Y.jsx)(`div`,{className:`h-4 w-full animate-pulse rounded bg-[var(--sf-raised)]`}),(0,Y.jsx)(`div`,{className:`mt-2 h-3 w-24 animate-pulse rounded bg-[var(--sf-raised)]`}),(0,Y.jsx)(`div`,{className:`h-3 w-32 animate-pulse rounded bg-[var(--sf-raised)]`}),(0,Y.jsx)(`div`,{className:`h-3 w-28 animate-pulse rounded bg-[var(--sf-raised)]`})]})});if(!e)return(0,Y.jsx)(iU,{children:(0,Y.jsx)(`p`,{className:`p-4 text-[13px] text-[var(--sf-text-3)]`,children:`Select a pipeline to inspect it.`})});let o=n?0:e.matchedRuns.filter(e=>Hs(e)===`needs`).length,s=n?[]:e.matchedRuns.slice(0,5),c=!n&&e.matchedRuns.length===0;return(0,Y.jsxs)(iU,{children:[(0,Y.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-4 py-4`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Y.jsx)(`div`,{className:eU,children:`Pipeline`}),(0,Y.jsx)(`h2`,{className:`text-[18px] font-semibold text-[var(--sf-text-1)]`,children:e.pipeline.id}),e.catalogRootBasename?(0,Y.jsx)(`p`,{className:`truncate text-[13px] text-[var(--sf-text-2)]`,title:e.pipeline.project_root,children:e.catalogRootBasename}):null,(0,Y.jsx)(`div`,{className:`max-w-full truncate rounded-[5px] border border-[#ffffff1a] bg-[var(--sf-raised)] px-1.5 py-0.5 font-['Geist_Mono',monospace] text-xs text-[var(--sf-text-2)]`,title:e.catalogPath,children:e.catalogPath}),(0,Y.jsx)(`p`,{className:`font-['Geist_Mono',monospace] text-xs ${n?`text-[var(--sf-text-3)]`:`text-[var(--sf-text-2)]`}`,children:nU(e,n)})]}),(0,Y.jsxs)(`section`,{className:`mt-5 flex flex-col gap-2`,children:[(0,Y.jsx)(`h3`,{className:eU,children:`Stages`}),(0,Y.jsx)(`ul`,{className:`m-0 flex list-none flex-col gap-1.5 p-0`,children:e.stages.map((e,t)=>(0,Y.jsxs)(`li`,{className:`flex min-w-0 items-center gap-1.5`,children:[(0,Y.jsx)(`span`,{className:`min-w-0 truncate font-['Geist_Mono',monospace] text-[13px] text-[var(--sf-text-1)]`,children:e.id}),e.gates.kind===`gates`?(0,Y.jsxs)(Y.Fragment,{children:[rU(e.gates.firstLabel),e.gates.extraCount>0?rU(`+${e.gates.extraCount}`):null]}):null]},`${e.id}:${t}`))})]}),(0,Y.jsxs)(`section`,{className:`mt-5 flex flex-col gap-2`,children:[(0,Y.jsx)(`h3`,{className:eU,children:`Tasks using this pipeline`}),e.tasks.length===0?(0,Y.jsx)(`p`,{className:`text-[13px] text-[var(--sf-text-3)]`,children:`none`}):(0,Y.jsx)(`ul`,{className:`m-0 flex list-none flex-col gap-1 p-0`,children:e.tasks.map(e=>(0,Y.jsx)(`li`,{className:`truncate font-['Geist_Mono',monospace] text-[13px] text-[var(--sf-text-1)]`,children:e.id},`${e.project_root??``}:${e.path}`))})]}),(0,Y.jsxs)(`section`,{className:`mt-5 flex flex-col gap-2`,children:[(0,Y.jsxs)(`div`,{className:`flex items-baseline justify-between gap-2`,children:[(0,Y.jsx)(`h3`,{className:eU,children:`Recent runs`}),o>0?(0,Y.jsxs)(`span`,{className:`text-[11px] text-[var(--sf-needs)]`,children:[o,` waiting`]}):null]}),c?(0,Y.jsx)(`p`,{className:`text-[13px] text-[var(--sf-text-3)]`,children:`No runs yet.`}):null,s.length>0?(0,Y.jsx)(`ul`,{className:`m-0 flex list-none flex-col gap-3 p-0`,children:s.map(e=>(0,Y.jsxs)(`li`,{className:`flex flex-col gap-1.5`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-['Geist_Mono',monospace] text-xs text-[var(--sf-text-1)]`,children:e.run_id}),(0,Y.jsx)(`span`,{className:`shrink-0 font-['Geist_Mono',monospace] text-xs text-[var(--sf-text-3)]`,children:Cs(e.created_at)})]}),(0,Y.jsx)(Il,{signal:Hs(e),label:qs(js(e))}),(0,Y.jsx)(zl,{stages:e.stages}),(0,Y.jsxs)(`span`,{className:`font-['Geist_Mono',monospace] text-xs text-[var(--sf-text-2)]`,children:[yl(e.created_at,e.finished_at,e.updated_at),` · `,e.total_cost_usd===void 0?$H:tU(e.total_cost_usd)]})]},e.run_id))}):null]})]}),(0,Y.jsxs)(`div`,{className:`flex shrink-0 flex-col gap-2 border-t border-t-[#ffffff12] px-4 py-3`,children:[(0,Y.jsxs)(`button`,{type:`button`,className:`sf-btn sf-btn--primary w-full`,onClick:r,children:[`Open editor`,(0,Y.jsx)(Nl,{className:`border-[#0c0d0f2e] text-[#5a5d66]`,children:`Enter`})]}),(0,Y.jsxs)(`button`,{type:`button`,className:`sf-btn sf-btn--secondary w-full`,onClick:i,children:[`Start a run`,(0,Y.jsx)(Nl,{children:`S`})]}),(0,Y.jsx)(`button`,{type:`button`,className:`sf-btn sf-btn--secondary w-full`,onClick:a,children:`Open in Workshop`})]})]})}function oU(){return(0,Y.jsxs)(`span`,{className:`flex h-6 items-center gap-[5px] rounded-full border border-dashed border-[#a7aab266] px-2 text-[#a7aab2]`,"aria-label":`Never run`,children:[(0,Y.jsx)(m,{className:`size-3 shrink-0`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`text-xs font-medium leading-normal`,children:`Never run`})]})}var sU=`—`,cU=`whitespace-nowrap text-[11px] font-medium uppercase tracking-[0.88px] text-[var(--sf-text-3)]`,lU=`min-w-0 flex-1`,uU=`w-14 shrink-0`,dU=`w-6 shrink-0 text-right`,fU=`w-[112px] min-w-0 shrink-0`,pU=`w-[152px] shrink-0`,mU=`w-8 shrink-0 text-right`,hU=`w-[112px] shrink-0`,gU=`w-[108px] shrink-0 text-right`,_U=`flex w-full items-center gap-2 px-5`;function vU(e){return`font-['Geist_Mono',monospace] text-xs ${e===sU?`text-[var(--sf-text-3)]`:`text-[var(--sf-text-2)]`}`}function yU(e){return(0,Y.jsx)(`span`,{className:`inline-flex h-5 shrink-0 items-center whitespace-nowrap rounded-[5px] border border-[#ffffff1a] bg-[var(--sf-raised)] px-1.5 font-['Geist_Mono',monospace] text-[11px] text-[var(--sf-text-2)]`,children:e})}function bU({showRoot:e}){return(0,Y.jsxs)(`div`,{className:`${_U} h-8 shrink-0 border-b border-b-[#ffffff12]`,children:[(0,Y.jsx)(`div`,{className:`${lU} ${cU}`,children:`Pipeline`}),(0,Y.jsx)(`div`,{className:`${uU} ${cU}`,children:`Stages`}),(0,Y.jsx)(`div`,{className:`${dU} ${cU}`,children:`#`}),e?(0,Y.jsx)(`div`,{className:`${fU} ${cU}`,children:`Catalog root`}):null,(0,Y.jsx)(`div`,{className:`${pU} ${cU}`,children:`Gates`}),(0,Y.jsx)(`div`,{className:`${mU} ${cU}`,children:`Runs`}),(0,Y.jsx)(`div`,{className:`${hU} ${cU}`,children:`Last run`}),(0,Y.jsx)(`div`,{className:`${gU} ${cU}`,children:`Avg`})]})}function xU({row:e,catalogFailed:t}){if(t)return(0,Y.jsx)(`span`,{className:vU(sU),children:sU});if(e.stats.neverRun||!e.stats.lastRun)return(0,Y.jsx)(oU,{});let n=e.stats.lastRun,r=js(n);return(0,Y.jsxs)(`span`,{className:`flex flex-col items-start gap-0.5`,children:[(0,Y.jsx)(Il,{signal:Hs(n),label:qs(r)}),(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace] text-xs text-[var(--sf-text-3)]`,children:Cs(n.created_at)})]})}function SU({row:e,selected:t,showRoot:n,catalogFailed:r,onSelect:i,onOpen:a}){let o=r?sU:e.stats.runsLabel,s=r?sU:e.stats.tableAvg,c=e.pipeline.stages.map(e=>({id:e.id,status:bs(e.gate_kinds)?`waiting_for_input`:`pending`}));return(0,Y.jsxs)(`button`,{type:`button`,"data-pipeline-row":e.key,onClick:i,onDoubleClick:a,"aria-pressed":t,className:`${_U} min-h-[44px] cursor-pointer border-b border-b-[#ffffff12] text-left ${t?`bg-[var(--sf-active)]`:`bg-transparent hover:bg-[var(--sf-raised)]`}`,children:[(0,Y.jsxs)(`div`,{className:`${lU} flex flex-col gap-0.5`,children:[(0,Y.jsx)(`div`,{className:`truncate text-[13px] font-medium text-[var(--sf-text-1)]`,title:e.pipeline.id,children:e.pipeline.id}),(0,Y.jsx)(`div`,{className:`truncate font-['Geist_Mono',monospace] text-xs text-[var(--sf-text-3)]`,title:e.catalogPath,children:e.stageChain})]}),(0,Y.jsx)(`div`,{className:uU,children:(0,Y.jsx)(Ys,{stages:c,variant:`bar`})}),(0,Y.jsx)(`div`,{className:`${dU} font-['Geist_Mono',monospace] text-xs text-[var(--sf-text-2)]`,children:e.stageCount}),n?(0,Y.jsxs)(`div`,{className:`${fU} flex flex-col gap-0.5`,children:[(0,Y.jsx)(`div`,{className:`truncate text-[13px] text-[var(--sf-text-2)]`,title:e.pipeline.project_root,children:e.catalogRootBasename||sU}),t?(0,Y.jsx)(`div`,{className:`truncate font-['Geist_Mono',monospace] text-xs text-[var(--sf-text-3)]`,title:e.catalogPath,children:e.catalogPath}):null]}):null,(0,Y.jsx)(`div`,{className:`${pU} flex items-center gap-1`,children:e.gates.kind===`none`?(0,Y.jsx)(`span`,{className:`text-[13px] text-[var(--sf-text-3)]`,children:`none`}):(0,Y.jsxs)(Y.Fragment,{children:[yU(e.gates.firstLabel),e.gates.extraCount>0?yU(`+${e.gates.extraCount}`):null]})}),(0,Y.jsx)(`div`,{className:`${mU} ${vU(o)}`,children:o}),(0,Y.jsx)(`div`,{className:hU,children:(0,Y.jsx)(xU,{row:e,catalogFailed:r})}),(0,Y.jsx)(`div`,{className:`${gU} ${vU(s)}`,children:s})]})}var CU=[`last-run`,`id`,`stage-count`],wU={"last-run":`Last run`,id:`Id`,"stage-count":`Stage count`};function TU(e){return CU[(CU.indexOf(e)+1)%CU.length]??`last-run`}function EU(){let{snapshot:e,error:t,loading:n}=Jo(),[r,i]=(0,J.useState)([]),[a,o]=(0,J.useState)([]),[s,c]=(0,J.useState)(null),[l,u]=(0,J.useState)(!1),[d,f]=(0,J.useState)(!1),[p,m]=(0,J.useState)(!1),[h,g]=(0,J.useState)(``),[_,v]=(0,J.useState)(`last-run`),[y,b]=(0,J.useState)(void 0),[x,S]=(0,J.useState)(null),C=(0,J.useRef)(!1),w=(0,J.useRef)(0),T=(0,J.useRef)(null),E=(0,J.useRef)(null);!p&&l&&!n&&m(!0);let D=(0,J.useCallback)(async()=>{let e=++w.current;C.current&&f(!0);try{let[t,n]=await Promise.all([Fi(),ki()]);if(e!==w.current)return;i(t.pipelines),o(n.tasks),c(null),S(new Date().toISOString())}catch(t){if(e!==w.current)return;c(t instanceof Error?t.message:String(t))}finally{if(e!==w.current)return;C.current=!0,u(!0),f(!1)}},[]);(0,J.useEffect)(()=>{D()},[D]);let O=(0,J.useMemo)(()=>QH({pipelines:r,tasks:a,runs:e.runs,search:h,sort:_}),[r,a,e.runs,h,_]),k=p?SH(y,O.filteredRows.map(e=>e.key)):null,A=O.filteredRows.find(e=>e.key===k)??null,j=p&&!!t,M=!p||r.length>0,N=p&&r.length===0&&!!s,P=p&&r.length===0&&!s,F=p&&r.length>0&&O.filteredRows.length===0;function I(e){let t=E.current;if(!t)return;let n=t.querySelectorAll(`[data-pipeline-row]`);for(let t of n)if(t.dataset.pipelineRow===e){t.scrollIntoView({block:`nearest`});return}}function L(e){let t=CH(O.filteredRows.map(e=>e.key),k,e);t&&(b(t),I(t))}function R(e){let t=wH(e);t&&Z(t)}function z(e){let t=TH(e);t&&Z(t)}function B(){Z(Oc())}function V(e){let t=EH(e);t&&Z(t)}return Yc([{key:`j`,scope:`pipelines`,handler:()=>L(1)},{key:`k`,scope:`pipelines`,handler:()=>L(-1)},{key:`enter`,scope:`pipelines`,handler:e=>{A&&(e.preventDefault(),R(A))}},{key:`s`,scope:`pipelines`,handler:e=>{A&&(e.preventDefault(),z(A))}},{key:`w`,scope:`pipelines`,handler:e=>{A&&(e.preventDefault(),V(A))}},{key:`n`,scope:`pipelines`,handler:e=>{e.preventDefault(),B()}},{key:`/`,scope:`pipelines`,handler:e=>{e.preventDefault(),T.current?.focus()}},{key:`escape`,scope:`pipelines`,allowInInput:!0,handler:e=>{if(T.current!==null&&(e.target===T.current||document.activeElement===T.current)){e.preventDefault(),g(``);return}e.preventDefault(),b(null)}}],`pipelines`),(0,Y.jsxs)(`div`,{className:`flex h-full min-h-0 min-w-0 flex-1 flex-col overflow-hidden`,children:[(0,Y.jsx)($c,{title:`Pipelines`,titleAddon:(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace] text-xs text-[var(--sf-text-2)]`,children:O.filteredCount}),actions:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`button`,{type:`button`,className:`sf-btn sf-btn--secondary shrink-0 disabled:cursor-not-allowed disabled:opacity-50`,disabled:A===null,onClick:()=>V(A),children:[(0,Y.jsx)(ht,{className:`size-3.5`,"aria-hidden":!0}),`Open in Workshop`]}),(0,Y.jsxs)(`button`,{type:`button`,className:`sf-btn sf-btn--primary shrink-0`,onClick:B,children:[(0,Y.jsx)(se,{className:`size-3.5`,"aria-hidden":!0}),`New pipeline`,(0,Y.jsx)(Nl,{className:`border-[#0c0d0f2e] text-[#5a5d66]`,children:`N`})]})]}),children:(0,Y.jsxs)(`label`,{className:`flex h-9 min-w-[240px] max-w-[420px] flex-1 items-center gap-2 rounded-lg border border-[#ffffff12] bg-[var(--sf-ground)] px-3`,children:[(0,Y.jsx)(Oe,{className:`size-3.5 shrink-0 text-[var(--sf-text-3)]`,"aria-hidden":!0}),(0,Y.jsx)(`input`,{ref:T,type:`search`,value:h,onChange:e=>g(e.target.value),placeholder:`Search pipelines by id, path, or stage`,"aria-label":`Search pipelines`,className:`min-w-0 flex-1 border-none bg-transparent text-[13px] text-[var(--sf-text-1)] outline-none placeholder:text-[var(--sf-text-3)]`}),(0,Y.jsx)(Nl,{children:`/`})]})}),M?(0,Y.jsx)(`div`,{className:`flex h-10 w-full shrink-0 items-center border-b border-b-[#ffffff12] px-5`,children:(0,Y.jsxs)(`button`,{type:`button`,className:`flex items-center gap-1.5 text-[13px]`,onClick:()=>v(e=>TU(e)),children:[(0,Y.jsx)(`span`,{className:`text-[var(--sf-text-3)]`,children:`Sort:`}),(0,Y.jsx)(`span`,{className:`text-[var(--sf-text-1)]`,children:wU[_]})]})}):null,(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1`,children:[(0,Y.jsxs)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden`,children:[M?(0,Y.jsx)(bU,{showRoot:O.catalogRootsVisible}):null,(0,Y.jsxs)(`div`,{ref:E,className:`min-h-0 flex-1 overflow-y-auto`,"aria-busy":!p,children:[p?null:(0,Y.jsx)(OU,{showRoot:O.catalogRootsVisible}),N?(0,Y.jsxs)(`div`,{className:`px-5 py-8`,children:[(0,Y.jsx)(`p`,{className:`mb-3 text-[13px] text-[var(--sf-fail)]`,children:s}),(0,Y.jsx)(`button`,{type:`button`,className:`sf-btn sf-btn--secondary`,onClick:()=>void D(),children:`Retry`})]}):null,P?(0,Y.jsxs)(`div`,{className:`px-5 py-8`,children:[(0,Y.jsxs)(`p`,{className:`mb-3 text-[13px] text-[var(--sf-text-2)]`,children:[`No pipelines in the manifest yet. Add a`,` `,(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace]`,children:`stageflow.yaml`}),` `,`catalog entry or run`,` `,(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace]`,children:`sf init`}),`.`]}),(0,Y.jsx)(`button`,{type:`button`,className:`sf-btn sf-btn--primary`,onClick:B,children:`New pipeline`})]}):null,F?(0,Y.jsx)(`p`,{className:`px-5 py-4 text-[13px] text-[var(--sf-text-2)]`,children:`No pipelines match this search.`}):null,p&&O.filteredRows.length>0?O.filteredRows.map(e=>(0,Y.jsx)(SU,{row:e,selected:e.key===k,showRoot:O.catalogRootsVisible,catalogFailed:j,onSelect:()=>b(e.key),onOpen:()=>R(e)},e.key)):null]}),(0,Y.jsxs)(`footer`,{className:`flex h-10 w-full shrink-0 items-center gap-3 border-t border-t-[#ffffff12] px-5 text-[11px] text-[var(--sf-text-3)]`,children:[(0,Y.jsxs)(`span`,{className:`inline-flex shrink-0 items-center gap-1`,children:[(0,Y.jsx)(Nl,{children:`J`}),(0,Y.jsx)(`span`,{children:`/`}),(0,Y.jsx)(Nl,{children:`K`}),(0,Y.jsx)(`span`,{children:`move`})]}),(0,Y.jsxs)(`span`,{className:`inline-flex shrink-0 items-center gap-1`,children:[(0,Y.jsx)(Nl,{children:`Enter`}),(0,Y.jsx)(`span`,{children:`open editor`})]}),(0,Y.jsxs)(`span`,{className:`inline-flex shrink-0 items-center gap-1`,children:[(0,Y.jsx)(Nl,{children:`S`}),(0,Y.jsx)(`span`,{children:`start run`})]}),(0,Y.jsxs)(`span`,{className:`inline-flex shrink-0 items-center gap-1`,children:[(0,Y.jsx)(Nl,{children:`N`}),(0,Y.jsx)(`span`,{children:`new pipeline`})]}),(0,Y.jsx)(`span`,{className:`ml-auto flex min-w-0 items-center justify-end gap-2`,children:(0,Y.jsx)(DU,{refreshing:d,initialLoadDone:p,pipelineCount:r.length,pipelinesError:s,catalogError:j?t:null,loadedAt:x,onRetry:()=>void D()})})]})]}),(0,Y.jsx)(`aside`,{className:`flex min-h-0 w-[420px] shrink-0 flex-col overflow-hidden border-l border-[#ffffff12]`,"aria-label":`Pipeline inspector`,children:(0,Y.jsx)(aU,{row:A,initialLoadDone:p,catalogFailed:j,onOpenEditor:()=>R(A),onStartRun:()=>z(A),onOpenWorkshop:()=>V(A)})})]})]})}function DU({refreshing:e,initialLoadDone:t,pipelineCount:n,pipelinesError:r,catalogError:i,loadedAt:a,onRetry:o}){return e?(0,Y.jsx)(`span`,{children:`Refreshing…`}):t&&n>0&&r?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`span`,{className:`truncate text-[var(--sf-fail)]`,children:i?`${r} · ${i}`:r}),(0,Y.jsx)(`button`,{type:`button`,className:`sf-btn sf-btn--secondary shrink-0`,onClick:o,children:`Retry`})]}):t&&i?(0,Y.jsx)(`span`,{className:`truncate text-[var(--sf-fail)]`,children:i}):t&&!r&&a?(0,Y.jsxs)(`span`,{children:[n,` pipelines · refreshed `,Cs(a)]}):null}function OU({showRoot:e}){return(0,Y.jsx)(`div`,{"aria-hidden":`true`,children:Array.from({length:6},(t,n)=>(0,Y.jsxs)(`div`,{className:`flex min-h-[44px] w-full items-center gap-2 border-b border-b-[#ffffff12] px-5`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1.5`,children:[(0,Y.jsx)(`div`,{className:`h-3 w-32 animate-pulse rounded bg-[var(--sf-raised)]`}),(0,Y.jsx)(`div`,{className:`h-2.5 w-48 max-w-full animate-pulse rounded bg-[var(--sf-raised)]`})]}),(0,Y.jsx)(`div`,{className:`h-1.5 w-14 shrink-0 animate-pulse rounded-full bg-[var(--sf-raised)]`}),(0,Y.jsx)(`div`,{className:`h-3 w-4 shrink-0 animate-pulse rounded bg-[var(--sf-raised)]`}),e?(0,Y.jsx)(`div`,{className:`h-3 w-[88px] shrink-0 animate-pulse rounded bg-[var(--sf-raised)]`}):null,(0,Y.jsx)(`div`,{className:`h-5 w-16 shrink-0 animate-pulse rounded bg-[var(--sf-raised)]`}),(0,Y.jsx)(`div`,{className:`h-3 w-4 shrink-0 animate-pulse rounded bg-[var(--sf-raised)]`}),(0,Y.jsx)(`div`,{className:`h-6 w-20 shrink-0 animate-pulse rounded-full bg-[var(--sf-raised)]`}),(0,Y.jsx)(`div`,{className:`h-3 w-12 shrink-0 animate-pulse rounded bg-[var(--sf-raised)]`})]},n))})}function kU({pipelineId:e,projectRoot:t,onNew:n}){let[r,i]=(0,J.useState)([]),[a,o]=(0,J.useState)([]),[s,c]=(0,J.useState)(!0),l=(0,J.useCallback)(async()=>{try{let[e,t]=await Promise.all([Fi(),ki()]);i(e.pipelines),o(t.tasks)}catch{}finally{c(!1)}},[]);if((0,J.useEffect)(()=>{e&&l()},[e,l]),!e)return(0,Y.jsx)(EU,{});if(s)return(0,Y.jsx)(`p`,{className:`px-5 py-4 text-[13px] text-[var(--sf-text-3)]`,children:`Loading pipeline…`});let u=bc(r,e,t);return u?(0,Y.jsx)(xH,{pipelineId:e,pipeline:u,pipelines:r,tasks:a,onNew:n}):(0,Y.jsx)(`div`,{className:`px-5 py-8`,children:(0,Y.jsxs)(`p`,{className:`text-[13px] text-[var(--sf-text-2)]`,children:[e,` is not in the current manifest catalog.`]})})}var AU=`[font-family:'Geist_Mono',_monospace]`,jU=`text-[#a7aab2] font-sans text-xs leading-normal`,MU=`h-8 w-full rounded-lg border border-[#ffffff1a] bg-[#1a1c21] px-2.5 text-xs text-[#ecedee] outline-none placeholder:text-[#8b8f98] focus:border-[#ecedee73] read-only:text-[#8b8f98]`,NU=`min-h-[72px] w-full rounded-lg border border-[#ffffff1a] bg-[#1a1c21] px-2.5 py-2 text-xs leading-[1.55] text-[#ecedee] outline-none placeholder:text-[#8b8f98] focus:border-[#ecedee73]`,PU=`text-[11px] text-[#f2645a]`,FU={create:`New task`,duplicate:`Duplicate task`,edit:`Edit task`,import:`Import from issue`},IU={create:`Create task`,duplicate:`Create task`,edit:`Save task`,import:`Import task`};function LU(e){return{directory:e?.directory??`tasks`,id:e?.id??``,goal:e?.goal??``,context:e?.context??``,constraints:e?.constraints??``,checkout:e?.checkout??``,repository:e?.repository??``,ref:e?.ref??``,repo:``,number:``}}function RU(e){return e.trim()||void 0}function zU(e,t){return t.directory.trim()?e===`import`?/^[^/\s]+\/[^/\s]+$/.test(t.repo.trim())?!/^\d+$/.test(t.number.trim())||Number(t.number)<=0?`Issue number must be a positive integer.`:null:`Repository must be owner/name.`:t.id.trim()?t.goal.trim()?t.checkout.trim()&&t.repository.trim()?`Set checkout or repository, not both.`:null:`Goal is required.`:`Task id is required.`:`Directory is required.`}function BU({open:e,mode:t,initial:n,onClose:r,onSaved:i}){let[a,o]=(0,J.useState)(()=>LU(n)),[s,c]=(0,J.useState)(null),[l,u]=(0,J.useState)(!1);if((0,J.useEffect)(()=>{e&&(o(LU(n)),c(null),u(!1))},[e,n,t]),(0,J.useEffect)(()=>{if(!e)return;function t(e){e.key===`Escape`&&(e.preventDefault(),r())}return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[e,r]),!e)return null;let d=t===`edit`,f=t===`import`,p=n?.project_root,m=d&&p===`examples`;function h(e,t){o(n=>({...n,[e]:t}))}async function g(){if(m){c(`Tasks in the examples catalog are read-only. Duplicate into Workspace to edit.`);return}let e=zU(t,a);if(c(e),e)return;u(!0);let n=p?{project_root:p}:{},r={goal:a.goal.trim(),context:RU(a.context),constraints:RU(a.constraints),checkout:RU(a.checkout),repository:RU(a.repository),ref:RU(a.ref)},o=f?await Pi({repo:a.repo.trim(),number:Number(a.number.trim()),directory:a.directory.trim(),...n}):d?await Ni(a.id.trim(),r):await Mi({directory:a.directory.trim(),id:a.id.trim(),...r,...n});if(u(!1),!o.ok){c(o.error);return}i(o.task,p)}return(0,JP.createPortal)((0,Y.jsx)(`div`,{className:`fixed inset-0 z-[200] flex items-center justify-center bg-[#040506a8] p-4`,role:`presentation`,onClick:r,children:(0,Y.jsxs)(`form`,{className:`flex max-h-[90vh] w-full max-w-[560px] flex-col overflow-y-auto rounded-xl border border-[#ffffff1a] bg-[#131418] shadow-[0px_32px_96px_rgba(0,0,0,0.65),0px_8px_24px_rgba(0,0,0,0.45)]`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`task-form-title`,onClick:e=>e.stopPropagation(),onSubmit:e=>{e.preventDefault(),g()},children:[(0,Y.jsxs)(`div`,{className:`flex w-full items-start gap-3 px-5 pb-2.5 pt-3.5`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-1 flex-col gap-[3px]`,children:[(0,Y.jsx)(`h2`,{id:`task-form-title`,className:`text-lg font-semibold tracking-[-0.36px] text-[#ecedee]`,children:FU[t]}),(0,Y.jsx)(`p`,{className:`text-[13px] text-[#a7aab2]`,children:f?`Reads a public GitHub issue, or a private one if GITHUB_TOKEN is set on the host.`:d?`Rewrites this task YAML file.`:`Writes a task YAML file into the catalog.`})]}),(0,Y.jsx)(`button`,{type:`button`,"aria-label":`Close`,onClick:r,className:`flex size-7 items-center justify-center rounded-md text-[#8b8f98] hover:bg-[#1a1c21]`,children:(0,Y.jsx)(St,{className:`size-4`,"aria-hidden":!0})})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-3.5 px-5 py-3`,children:[f?(0,Y.jsxs)(`div`,{className:`flex gap-3`,children:[(0,Y.jsxs)(`label`,{className:`flex flex-[2] flex-col gap-[5px]`,children:[(0,Y.jsx)(`span`,{className:jU,children:`Repository`}),(0,Y.jsx)(`input`,{className:`${MU} ${AU}`,value:a.repo,onChange:e=>h(`repo`,e.target.value),placeholder:`owner/name`,autoComplete:`off`,spellCheck:!1,autoFocus:!0})]}),(0,Y.jsxs)(`label`,{className:`flex flex-1 flex-col gap-[5px]`,children:[(0,Y.jsx)(`span`,{className:jU,children:`Issue number`}),(0,Y.jsx)(`input`,{className:`${MU} ${AU}`,value:a.number,onChange:e=>h(`number`,e.target.value),placeholder:`123`,inputMode:`numeric`,autoComplete:`off`})]})]}):null,(0,Y.jsxs)(`div`,{className:`flex gap-3`,children:[(0,Y.jsxs)(`label`,{className:`flex flex-1 flex-col gap-[5px]`,children:[(0,Y.jsx)(`span`,{className:jU,children:`Directory`}),(0,Y.jsx)(`input`,{className:`${MU} ${AU}`,value:a.directory,onChange:e=>h(`directory`,e.target.value),placeholder:`examples`,readOnly:d,autoComplete:`off`,spellCheck:!1})]}),f?null:(0,Y.jsxs)(`label`,{className:`flex flex-1 flex-col gap-[5px]`,children:[(0,Y.jsx)(`span`,{className:jU,children:`Task id`}),(0,Y.jsx)(`input`,{className:`${MU} ${AU}`,value:a.id,onChange:e=>h(`id`,e.target.value),placeholder:`fix-login-redirect`,readOnly:d,autoComplete:`off`,spellCheck:!1,autoFocus:!d})]})]}),(0,Y.jsx)(`p`,{className:`text-[11px] leading-normal text-[#8b8f98]`,children:n?.project_root?`Project: ${n.project_root.split(/[/\\]/).filter(Boolean).at(-1)}`:`Project: this host`}),f?null:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`label`,{className:`flex flex-col gap-[5px]`,children:[(0,Y.jsx)(`span`,{className:jU,children:`Goal`}),(0,Y.jsx)(`input`,{className:MU,value:a.goal,onChange:e=>h(`goal`,e.target.value),placeholder:`What should this task accomplish?`,autoFocus:d})]}),(0,Y.jsxs)(`label`,{className:`flex flex-col gap-[5px]`,children:[(0,Y.jsx)(`span`,{className:jU,children:`Context (optional)`}),(0,Y.jsx)(`textarea`,{className:NU,value:a.context,onChange:e=>h(`context`,e.target.value)})]}),(0,Y.jsxs)(`label`,{className:`flex flex-col gap-[5px]`,children:[(0,Y.jsx)(`span`,{className:jU,children:`Constraints (optional, one per line)`}),(0,Y.jsx)(`textarea`,{className:`${NU} ${AU}`,value:a.constraints,onChange:e=>h(`constraints`,e.target.value),spellCheck:!1})]}),(0,Y.jsxs)(`div`,{className:`flex gap-3`,children:[(0,Y.jsxs)(`label`,{className:`flex flex-1 flex-col gap-[5px]`,children:[(0,Y.jsx)(`span`,{className:jU,children:`Checkout`}),(0,Y.jsx)(`input`,{className:`${MU} ${AU}`,value:a.checkout,onChange:e=>h(`checkout`,e.target.value),placeholder:`../path/to/repo`,autoComplete:`off`,spellCheck:!1})]}),(0,Y.jsxs)(`label`,{className:`flex flex-1 flex-col gap-[5px]`,children:[(0,Y.jsx)(`span`,{className:jU,children:`Repository`}),(0,Y.jsx)(`input`,{className:`${MU} ${AU}`,value:a.repository,onChange:e=>h(`repository`,e.target.value),placeholder:`https://github.com/owner/name`,autoComplete:`off`,spellCheck:!1})]}),(0,Y.jsxs)(`label`,{className:`flex w-[120px] shrink-0 flex-col gap-[5px]`,children:[(0,Y.jsx)(`span`,{className:jU,children:`Ref`}),(0,Y.jsx)(`input`,{className:`${MU} ${AU}`,value:a.ref,onChange:e=>h(`ref`,e.target.value),autoComplete:`off`,spellCheck:!1})]})]}),(0,Y.jsx)(`p`,{className:`text-[11px] text-[#8b8f98]`,children:`Checkout and repository cannot both be set.`})]}),s?(0,Y.jsx)(`p`,{className:PU,children:s}):null]}),(0,Y.jsxs)(`div`,{className:`flex items-center justify-end gap-2 border-t border-t-[#ffffff12] px-5 py-3`,children:[(0,Y.jsx)(`button`,{type:`button`,onClick:r,className:`flex h-8 items-center rounded-lg border border-[#ffffff1a] bg-[#1a1c21] px-3 text-[13px] font-medium text-[#ecedee]`,children:`Cancel`}),(0,Y.jsx)(`button`,{type:`submit`,disabled:l,className:`flex h-8 items-center rounded-lg bg-[#ecedee] px-3 text-[13px] font-medium text-[#0c0d0f] disabled:opacity-50`,children:l?`Saving…`:IU[t]})]})]})}),document.body)}function VU(e){return/^([A-Za-z]:[\\/]|\/)/.test(e)}function HU(e){let t=Zo(e).split(`/`);return t[t.length-1]??e}function UU(e){let t=Zo(e).replace(/^\.\//,``);return t.endsWith(`.task.yaml`)?t=t.slice(0,-10):t.endsWith(`.yaml`)&&(t=t.slice(0,-5)),t}function WU(e){return UU(e)}function GU(e){let t=Zo(e);return t.includes(`/`)||/\.ya?ml$/i.test(t)}function KU(e,t){if(!e||!t)return!0;let n=Zo(e).replace(/\/$/,``),r=Zo(t).replace(/\/$/,``);return n===r?!0:VU(n)?!VU(r)&&!!(n.endsWith(`/${r}`)||HU(n)===r):!!(r.endsWith(`/${n}`)||HU(r)===n)}function qU(e){let t=e.task_path??(e.task_id&&GU(e.task_id)?e.task_id:``);if(!t)return``;let n=Zo(t);return VU(n)&&e.project_root?Zo(Xo(n,e.project_root)):n}function JU(e,t){let n=WU(e),r=WU(t);if(n===r)return!0;let i=HU(n),a=HU(r);return i===a?r.includes(`/`)?n.includes(`/`)?!1:r===i||r.endsWith(`/${i}`):n===a||n.endsWith(`/${a}`):!1}function YU(e,t){if(t.project_root&&e.project_root&&!KU(t.project_root,e.project_root))return!1;let n=t.path?Zo(t.path):``,r=qU(e),i=n.length>0,a=!!e.task_path||!!(e.task_id&&GU(e.task_id));if(i&&a&&r)return!!JU(n,r);if(n&&r&&JU(n,r))return!0;let o=t.id,s=e.task_id??``;return!!(s&&!GU(s)&&s===o||s&&(WU(s)===o||HU(UU(s))===o)||r&&HU(WU(r))===o)}function XU(e){return e.slice().sort((e,t)=>t.created_at.localeCompare(e.created_at))}function ZU(e){if(!e)return[];if(Array.isArray(e))return e.map(String).filter(e=>e.trim().length>0);let t=e.split(/\r?\n/).map(e=>e.trim()).filter(e=>e.length>0).filter(e=>/^[-*]\s+/.test(e));return t.length===0?[e.trim()].filter(e=>e.length>0):t.map(e=>e.replace(/^[-*]\s+/,``).trim()).filter(e=>e.length>0)}function QU(e){return`${e.project_root??``}\0${e.path}`}function $U(e,t){return XU(e.runs.filter(e=>YU(e,t)))}function eW(e){if(!e)return`none`;if(e.waiting_stage_id)return`waiting`;switch(e.status){case`failed`:return`failed`;case`succeeded`:return`succeeded`;case`cancelled`:return`cancelled`;default:return`running`}}var tW=[`waiting`,`failed`,`running`,`succeeded`,`cancelled`,`none`];function nW(e){return tW.indexOf(eW(e))}function rW(e,t){let n=new Map;for(let r of e)n.set(QU(r),$U(t,r)[0]);return[...e].sort((e,t)=>{let r=n.get(QU(e)),i=n.get(QU(t)),a=nW(r)-nW(i);if(a!==0)return a;if(r&&i){let e=i.created_at.localeCompare(r.created_at);if(e!==0)return e}let o=e.id.localeCompare(t.id);return o===0?e.path.localeCompare(t.path):o})}function iW(e,t){let n=t.trim().toLowerCase();return n?e.filter(e=>e.id.toLowerCase().includes(n)||(e.goal??``).toLowerCase().includes(n)):e}function aW(e,t){let n=Zo(e).replace(/^\.\//,``);return VU(n)&&t?Zo(Xo(n,t)):n}function oW(e){let t=Zo(e),n=t.lastIndexOf(`/`);return n>=0?t.slice(0,n):`.`}function sW(e){if(e.length===0)return`tasks/`;let t=new Set(e.map(e=>oW(aW(e.path,e.project_root))));if(t.size!==1)return`multiple folders`;let[n]=[...t];return n===`.`?`./`:`${n}/`}function cW(e){return{id:e.id,path:e.path,...e.project_root?{project_root:e.project_root}:{}}}function lW(e,t,n){if(t){let r=n.filter(n=>n.id===t.pipeline_id&&KU(e.project_root,n.project_root)).sort((e,t)=>e.path.localeCompare(t.path))[0];return r?cW(r):{id:t.pipeline_id}}let r=oW(aW(e.path,e.project_root)),i=n.filter(t=>KU(e.project_root,t.project_root)&&oW(aW(t.path,t.project_root))===r).sort((e,t)=>e.id.localeCompare(t.id)||e.path.localeCompare(t.path))[0];return i?cW(i):null}function uW(e,t,n){return rW(e,t).map(e=>{let r=$U(t,e),i=r[0];return{key:QU(e),task:e,runs:r,last:i,kind:eW(i),pipeline:lW(e,i,n),costUsd:hW(r)}})}function dW(e,t){return t===`all`?e:e.filter(e=>t===`no_runs`?e.runs.length===0:t===`has_open_gate`?mW(e.runs)>0:t===`has_failed_run`?e.runs.some(e=>js(e)===`failed`):t!==`failing`||e.kind===`failed`)}function fW(e){return e===void 0?`—`:`$${e.toFixed(2)}`}function pW(e){return e.length>10?`run_${e.slice(-6)}`:e}function mW(e){return e.filter(e=>!!e.waiting_stage_id).length}function hW(e){let t=0,n=!1;for(let r of e)r.total_cost_usd!==void 0&&(t+=r.total_cost_usd,n=!0);return n?t:void 0}function gW(e){let t=[];e.length>0&&t.push({kind:`runs`,text:`${e.length} ${e.length===1?`run`:`runs`}`});let n=hW(e);n!==void 0&&n>0&&t.push({kind:`cost`,text:fW(n)});let r=mW(e);return r>0&&t.push({kind:`gates`,text:`${r} open ${r===1?`gate`:`gates`}`}),t}function _W(e){return XU(e).find(e=>!!e.waiting_stage_id)}function vW(e){if(!e.finished_at||!e.created_at)return;let t=Date.parse(e.created_at),n=Date.parse(e.finished_at);if(!(!Number.isFinite(t)||!Number.isFinite(n)))return Math.max(0,n-t)}function yW(e){if(!e)return null;let t=e.checkout?.trim(),n=e.repository?.trim();if(!t&&!n)return null;let r=e.ref?.trim(),i=t||r||void 0;return{...i?{target:i}:{},...n?{repository:n}:{}}}function bW(e,t,n=Date.now()){if(!e||!t)return null;let r=e.summary.errors;return r>0?`${r} ${r===1?`error`:`errors`}`:`validated ${xW(t,n)}`}function xW(e,t=Date.now()){let n=Cs(e,t);return n===`just now`||n.endsWith(` ago`)?n:/^\d+m$/.test(n)?`${n} ago`:n}var SW=`[font-family:'Geist_Mono',_monospace]`,CW=`[white-space-collapse:collapse] [text-wrap-mode:nowrap]`,wW=`text-[#8b8f98] font-sans text-[11px] font-medium leading-normal tracking-[0.88px] uppercase ${CW}`,TW={waiting:{label:`Needs you`,icon:Ze,pill:`bg-[#f5b5441f] border border-[#f5b5444d] shadow-[0px_0px_10px_rgba(245,181,68,0.25)]`,tone:`text-[#f5b544]`},running:{label:`Running`,icon:bt,pill:`bg-[#6ca6ff1a]`,tone:`text-[#6ca6ff]`},failed:{label:`Failed`,icon:St,pill:`bg-[#f2645a1a]`,tone:`text-[#f2645a]`},succeeded:{label:`Succeeded`,icon:G,pill:`bg-[#4cc38a1a]`,tone:`text-[#4cc38a]`},cancelled:{label:`Abandoned`,icon:Fe,pill:`bg-[#8b8f981a]`,tone:`text-[#8b8f98] line-through`},none:{label:`Never run`,icon:m,pill:`border border-dashed border-[#a7aab266]`,tone:`text-[#a7aab2]`}};function EW({kind:e,suffix:t}){let n=TW[e],r=n.icon,i=t?`${n.label} · ${t}`:n.label;return(0,Y.jsxs)(`span`,{className:`flex h-6 shrink-0 items-center rounded-full px-2 py-0 gap-[5px] ${n.pill}`,"aria-label":i,children:[(0,Y.jsx)(r,{className:`size-3 block shrink-0 ${n.tone}`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`w-fit font-sans text-xs font-medium leading-normal ${CW} ${n.tone}`,children:i})]})}function DW(){return(0,Y.jsxs)(`div`,{className:`flex w-full h-8 shrink-0 items-center border-b px-5 py-0 gap-3 border-b-[#ffffff12]`,children:[(0,Y.jsx)(`div`,{className:`min-w-0 flex-1 text-left ${wW}`,children:`Task`}),(0,Y.jsx)(`div`,{className:`w-[108px] shrink-0 text-left ${wW}`,children:`Last run`}),(0,Y.jsx)(`div`,{className:`w-[92px] shrink-0 text-left ${wW}`,children:`Pipeline`}),(0,Y.jsx)(`div`,{className:`w-9 shrink-0 text-right ${wW}`,children:`Runs`}),(0,Y.jsx)(`div`,{className:`w-[60px] shrink-0 text-right ${wW}`,children:`When`}),(0,Y.jsx)(`div`,{className:`w-[52px] shrink-0 text-right ${wW}`,children:`Cost`})]})}function OW({row:e,selected:t,rootLabel:n,onSelect:r}){let{task:i,runs:a,last:o,kind:s,pipeline:c,costUsd:l}=e,u=s===`cancelled`,d=s===`none`,f=u?`text-[#a7aab2]`:`text-[#ecedee]`,p=u?`text-[#8b8f98]`:`text-[#a7aab2]`,m=d?`text-[#8b8f98]`:p,h=l===void 0?`text-[#8b8f98]`:u?`text-[#a7aab2]`:`text-[#ecedee]`;return(0,Y.jsxs)(`button`,{type:`button`,onClick:r,"aria-current":t?`true`:void 0,"data-task-row":``,className:`flex relative w-full h-12 shrink-0 items-center border-b px-5 py-0 gap-3 border-b-[#ffffff12] text-left ${t?`bg-[#131418]`:`bg-transparent hover:bg-[#131418]`}`,children:[t?(0,Y.jsx)(`span`,{className:`block absolute w-0.5 h-12 left-0 top-0 bg-[#ecedee]`,"aria-hidden":`true`}):null,(0,Y.jsxs)(`span`,{className:`flex min-w-0 flex-col flex-1 gap-0.5`,children:[(0,Y.jsxs)(`span`,{className:`flex min-w-0 items-baseline gap-1.5`,title:i.id,children:[(0,Y.jsx)(`span`,{className:`min-w-0 truncate ${SW} text-[13px] leading-normal ${f}`,children:i.id}),n?(0,Y.jsx)(`span`,{className:`shrink-0 truncate ${SW} text-[11px] leading-normal text-[#8b8f98]`,children:n}):null]}),(0,Y.jsx)(`span`,{className:`min-w-0 truncate font-sans text-xs leading-normal ${u?`text-[#8b8f98]`:`text-[#a7aab2]`}`,title:i.goal,children:i.goal})]}),(0,Y.jsx)(`span`,{className:`flex w-[108px] shrink-0`,children:(0,Y.jsx)(EW,{kind:s})}),(0,Y.jsx)(`span`,{className:`w-[92px] min-w-0 shrink-0 truncate ${SW} text-xs leading-normal ${p}`,title:c?.id,children:c?.id??`—`}),(0,Y.jsx)(`span`,{className:`w-9 shrink-0 text-right ${SW} text-xs leading-normal ${m}`,children:a.length}),(0,Y.jsx)(`span`,{className:`w-[60px] shrink-0 text-right ${SW} text-xs leading-normal ${CW} ${m}`,children:o?xW(o.created_at):`—`}),(0,Y.jsx)(`span`,{className:`w-[52px] shrink-0 text-right ${SW} text-xs leading-normal ${h}`,children:fW(l)})]})}var kW=`[font-family:'Geist_Mono',_monospace]`,AW=`[white-space-collapse:collapse] [text-wrap-mode:nowrap]`;function jW(e){return e===`succeeded`||e===`skipped`?`bg-[#4cc38a]`:e===`failed`?`bg-[#f2645a]`:e===`running`||e===`waiting_for_input`||e===`interrupted`?`bg-[#f5b544]`:`bg-[#ffffff24]`}function MW(e){if(e)return e.split(/[/\\]/).filter(Boolean).at(-1)}var NW=`text-[#8b8f98] font-sans text-[11px] font-medium leading-normal tracking-[0.88px] uppercase ${AW}`,PW=`bg-[#1a1c21] border border-[#ffffff1a] text-[#8b8f98] ${kW} text-[11px] leading-normal rounded-sm px-[5px] py-0`,FW=`border border-[#0c0d0f2e] text-[#5a5d66] ${kW} text-[11px] leading-normal rounded-sm px-[5px] py-0`,IW=`bg-[#1a1c21] border border-[#ffffff1a] text-[#a7aab2] ${kW} text-[11px] leading-normal rounded-sm px-[5px] py-0`,LW=`flex h-8 shrink-0 items-center bg-[#1a1c21] border border-[#ffffff1a] rounded-lg py-0`;function RW({active:e,label:t,icon:n,count:r,onClick:i}){return(0,Y.jsxs)(`button`,{type:`button`,onClick:i,"aria-pressed":e,className:`flex h-7 items-center rounded-md px-2.5 py-0 gap-1.5 ${e?`bg-[#1a1c21] border border-[#ffffff1a]`:`border border-transparent`}`,children:[n,(0,Y.jsx)(`span`,{className:`font-sans text-[13px] leading-normal ${AW} ${e?`font-medium text-[#ecedee]`:`text-[#a7aab2]`}`,children:t}),r]})}function zW({keys:e,label:t}){return(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[e.map((e,t)=>(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[t>0?(0,Y.jsx)(`span`,{className:`text-[#8b8f98] font-sans text-xs leading-normal`,children:`/`}):null,(0,Y.jsx)(`span`,{className:IW,children:e})]},e)),(0,Y.jsx)(`span`,{className:`text-[#8b8f98] font-sans text-xs leading-normal ${AW}`,children:t})]})}function BW(){return(0,Y.jsx)(`span`,{className:`text-[#8b8f98] font-sans text-xs leading-normal`,children:`·`})}function VW({row:e,detail:t,detailLoading:n,onEdit:r,onStartRun:i,onDuplicate:a}){let{task:o,runs:s,pipeline:l}=e,u=t?.goal??o.goal,d=t?.context?.trim(),f=ZU(t?.constraints),p=yW(t),m=gW(s),h=_W(s),g=mW(s),_=s.slice(0,8),v=l?.path?`#${Oc({pipeline:l.path,task:o.path,...o.project_root?{project_root:o.project_root}:{}})}`:null;return(0,Y.jsxs)(`div`,{className:`flex w-full min-h-0 flex-col flex-1`,children:[(0,Y.jsxs)(`div`,{className:`flex w-full flex-col border-b px-4 py-2.5 gap-1 border-b-[#ffffff12]`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(`div`,{className:`flex-1 ${NW}`,children:`Task`}),(0,Y.jsxs)(`button`,{type:`button`,onClick:r,className:`flex h-[26px] items-center rounded-md px-2 py-0 gap-1.5 hover:bg-[#1a1c21]`,children:[(0,Y.jsx)(c,{className:`size-3 block text-[#a7aab2]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`text-[#a7aab2] font-sans text-xs font-medium leading-normal ${AW}`,children:`Edit YAML`}),(0,Y.jsx)(`span`,{className:PW,children:`E`})]})]}),(0,Y.jsx)(`div`,{className:`truncate text-[#ecedee] ${kW} text-[15px] font-semibold leading-normal`,children:o.id}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1.5`,children:[(0,Y.jsx)(tt,{className:`size-3 block shrink-0 text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`truncate text-[#8b8f98] ${kW} text-xs leading-normal`,title:o.path,children:o.path})]})]}),(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto`,children:[(0,Y.jsxs)(`div`,{className:`flex w-full flex-col border-b px-4 py-3 gap-3 border-b-[#ffffff12]`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Y.jsx)(`div`,{className:NW,children:`Goal`}),(0,Y.jsx)(`div`,{className:`text-[#ecedee] font-sans text-sm font-medium leading-[1.4]`,children:u})]}),n?(0,Y.jsx)(`div`,{className:`text-[#8b8f98] font-sans text-xs leading-normal`,children:`Loading…`}):null,d?(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Y.jsx)(`div`,{className:NW,children:`Context`}),(0,Y.jsx)(`div`,{className:`whitespace-pre-wrap text-[#a7aab2] font-sans text-[13px] leading-normal`,children:d})]}):null,f.length>0?(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(`div`,{className:NW,children:`Constraints`}),(0,Y.jsx)(`div`,{className:`text-[#8b8f98] ${kW} text-[11px] leading-normal`,children:f.length})]}),f.map((e,t)=>(0,Y.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,Y.jsx)(k,{className:`mt-[3px] size-3 block shrink-0 text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`text-[#ecedee] font-sans text-[13px] leading-normal`,children:e})]},`${t}-${e}`))]}):null,p?(0,Y.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,Y.jsx)(`div`,{className:NW,children:`Checkout`}),(0,Y.jsxs)(`div`,{className:`flex w-fit min-w-0 h-[26px] items-center bg-[#1a1c21] border border-[#ffffff1a] rounded-md px-2 py-0 gap-1.5`,children:[(0,Y.jsx)(ut,{className:`size-3 block shrink-0 text-[#a7aab2]`,"aria-hidden":!0}),p.target?(0,Y.jsx)(`span`,{className:`truncate text-[#ecedee] ${kW} text-xs leading-normal`,children:p.target}):null,p.repository?(0,Y.jsxs)(Y.Fragment,{children:[p.target?(0,Y.jsx)(`span`,{className:`text-[#8b8f98] font-sans text-xs leading-normal ${AW}`,children:`from`}):null,(0,Y.jsx)(`span`,{className:`truncate text-[#a7aab2] ${kW} text-xs leading-normal`,children:p.repository})]}):null]})]}):null]}),(0,Y.jsxs)(`div`,{className:`flex w-full flex-col`,children:[(0,Y.jsxs)(`div`,{className:`flex w-full h-8 shrink-0 justify-between items-center px-4 py-0`,children:[(0,Y.jsx)(`div`,{className:NW,children:`Run history`}),(0,Y.jsx)(`div`,{className:`flex items-center gap-1.5`,children:m.map((e,t)=>(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[t>0?(0,Y.jsx)(`span`,{className:`text-[#8b8f98] font-sans text-xs leading-normal`,children:`·`}):null,(0,Y.jsx)(`span`,{className:`${kW} text-xs leading-normal ${AW} ${e.kind===`runs`?`text-[#a7aab2]`:e.kind===`cost`?`text-[#ecedee]`:`text-[#f5b544]`}`,children:e.text})]},e.kind))})]}),_.length===0?(0,Y.jsx)(`div`,{className:`border-t border-t-[#ffffff12] px-4 py-[7px] text-[#8b8f98] font-sans text-xs leading-normal`,children:`No runs yet.`}):null,_.map((e,t)=>{let n=eW(e),r=vW(e),i=n===`cancelled`,a=t===_.length-1;return(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>Z(hc(e.run_id)),className:`flex w-full flex-col border-t px-4 py-[7px] gap-1.5 border-t-[#ffffff12] text-left hover:bg-[#1a1c21]${a?` border-b border-b-[#ffffff12]`:``}${n===`waiting`?` bg-[#f5b5440a]`:``}`,children:[(0,Y.jsxs)(`span`,{className:`flex w-full items-center gap-2`,children:[(0,Y.jsx)(`span`,{className:`${kW} text-xs leading-normal ${AW} ${i?`text-[#a7aab2]`:`text-[#ecedee]`}`,title:e.run_id,children:pW(e.run_id)}),(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-[#8b8f98] ${kW} text-xs leading-normal`,children:e.pipeline_id}),(0,Y.jsx)(`span`,{className:`text-[#8b8f98] ${kW} text-xs leading-normal ${AW}`,children:xW(e.created_at)}),(0,Y.jsx)(EW,{kind:n,suffix:n===`failed`?e.failed_stage_id:void 0})]}),e.stages.length>0||r!==void 0||e.total_cost_usd!==void 0?(0,Y.jsxs)(`span`,{className:`flex w-full items-center gap-2.5`,children:[e.stages.length>0?(0,Y.jsx)(`span`,{className:`flex min-w-0 flex-1 items-center gap-0.5`,"aria-hidden":!0,children:e.stages.slice(0,12).map(e=>(0,Y.jsx)(`span`,{title:`${e.id} ${e.status}`,className:`h-1 min-w-1 flex-1 rounded-sm ${jW(e.status)}`},e.id))}):(0,Y.jsx)(`span`,{className:`flex-1`}),r===void 0?null:(0,Y.jsx)(`span`,{className:`w-14 shrink-0 text-right ${kW} text-xs leading-normal ${AW} ${i?`text-[#8b8f98]`:`text-[#a7aab2]`}`,children:SP(r)}),e.total_cost_usd===void 0?null:(0,Y.jsx)(`span`,{className:`w-11 shrink-0 text-right ${kW} text-xs leading-normal ${i?`text-[#a7aab2]`:`text-[#ecedee]`}`,children:fW(e.total_cost_usd)})]}):null,n===`failed`&&e.failed_reason?(0,Y.jsx)(`span`,{className:`w-full min-w-0 truncate text-[#a7aab2] font-sans text-xs leading-normal`,children:e.failed_reason}):null]},e.run_id)})]})]}),(0,Y.jsxs)(`div`,{className:`flex w-full flex-col shrink-0 border-t px-4 py-2.5 gap-2 border-t-[#ffffff12]`,children:[h?(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>Z(hc(h.run_id)),className:`flex w-full h-8 justify-center items-center bg-[#f5b544] shadow-[0px_0px_10px_rgba(245,181,68,0.35)] rounded-lg px-3 py-0 gap-2`,children:[(0,Y.jsx)(Ze,{className:`size-3.5 block text-[#1a1306]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`text-[#1a1306] font-sans text-[13px] font-medium leading-normal ${AW}`,children:`Answer open gate`}),(0,Y.jsx)(`span`,{className:`bg-[#1a130629] text-[#1a1306] ${kW} text-[11px] font-semibold leading-normal rounded-full px-1.5 py-0`,children:g}),(0,Y.jsx)(`span`,{className:`truncate text-[#1a1306b3] ${kW} text-[11px] leading-normal`,children:h.waiting_kind?`${h.waiting_stage_id} · ${h.waiting_kind}`:h.waiting_stage_id})]}):null,(0,Y.jsxs)(`div`,{className:`flex w-full items-center gap-1.5`,children:[(0,Y.jsxs)(`button`,{type:`button`,onClick:i,className:`flex h-8 justify-center items-center bg-[#ecedee] flex-1 rounded-lg px-2.5 py-0 gap-1.5`,children:[(0,Y.jsx)(y,{className:`size-3.5 block text-[#0c0d0f]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`text-[#0c0d0f] font-sans text-[13px] font-medium leading-normal ${AW}`,children:`Start a run`}),(0,Y.jsx)(`span`,{className:FW,children:`S`})]}),v?(0,Y.jsxs)(`a`,{href:v,className:`${LW} px-2.5 gap-1.5`,children:[(0,Y.jsx)(ve,{className:`size-3.5 block text-[#a7aab2]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`text-[#ecedee] font-sans text-[13px] font-medium leading-normal ${AW}`,children:`Open in Workshop`})]}):null,(0,Y.jsxs)(`button`,{type:`button`,onClick:a,className:`${LW} px-2.5 gap-1.5`,children:[(0,Y.jsx)(R,{className:`size-3.5 block text-[#a7aab2]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`text-[#ecedee] font-sans text-[13px] font-medium leading-normal ${AW}`,children:`Duplicate`})]})]})]})]})}function HW({taskId:e,onNew:t}){let{snapshot:n,error:r,loading:i}=Jo(),[a,o]=(0,J.useState)([]),[s,c]=(0,J.useState)([]),[l,u]=(0,J.useState)(null),[d,f]=(0,J.useState)(!0),[p,m]=(0,J.useState)(`all`),[h,g]=(0,J.useState)(``),[_,v]=(0,J.useState)(null),[y,b]=(0,J.useState)(null),[x,S]=(0,J.useState)(!1),[C,w]=(0,J.useState)(0),[T,E]=(0,J.useState)(null),[D,O]=(0,J.useState)(null),[k,A]=(0,J.useState)(null),[j,M]=(0,J.useState)(()=>Date.now()),N=(0,J.useRef)(null),P=(0,J.useCallback)(async()=>{try{let e=await ki();return o(e.tasks),u(null),e.tasks}catch(e){return u(e instanceof Error?e.message:String(e)),[]}finally{f(!1)}},[]);(0,J.useEffect)(()=>{P()},[P]),(0,J.useEffect)(()=>{let e=!1;Fi().then(t=>{e||c(t.pipelines)}).catch(()=>{e||c([])}),To({strict:!0}).then(t=>{e||(O(t),A(new Date().toISOString()))}).catch(()=>void 0);let t=window.setInterval(()=>M(Date.now()),3e4);return()=>{e=!0,window.clearInterval(t)}},[]);let F=(0,J.useMemo)(()=>uW(a,n,s),[a,n,s]),L=(0,J.useMemo)(()=>{let e=new Set(iW(a,h).map(QU));return F.filter(t=>e.has(t.key))},[F,a,h]),R=(0,J.useMemo)(()=>dW(L,p),[L,p]),z=(0,J.useMemo)(()=>({all:L.length,has_open_gate:dW(L,`has_open_gate`).length,failing:dW(L,`failing`).length,no_runs:dW(L,`no_runs`).length}),[L]),B=(0,J.useMemo)(()=>new Set(a.map(e=>e.project_root??``)).size>1,[a]),V=(0,J.useMemo)(()=>_?R.find(e=>e.key===_)??null:e?R.find(t=>t.task.id===e)??null:null,[R,_,e]);(0,J.useEffect)(()=>{if(R.length===0){v(null);return}V||v(R[0].key)},[R,V]),(0,J.useEffect)(()=>{if(!e||a.length===0||a.find(e=>QU(e)===_)?.id===e)return;let t=a.find(t=>t.id===e);t&&v(QU(t))},[e,a,_]);let H=V?.task??null;(0,J.useEffect)(()=>{if(!H){b(null),S(!1);return}b(null),S(!0);let e=!1;return Ai(H.id).then(t=>{e||b(t.task)}).catch(()=>{e||b(null)}).finally(()=>{e||S(!1)}),()=>{e=!0}},[H?.id,H?.path,H?.project_root,C]);let ee=(0,J.useCallback)(e=>{v(e.key),Z(xc(e.task.id))},[]),te=(0,J.useCallback)(()=>{if(!V)return;let e=V.pipeline?.project_root??V.task.project_root;t(Ic({task:V.task.path,...V.pipeline?.path?{pipeline:V.pipeline.path}:{},...e?{project_root:e}:{}}))},[V,t]),ne=(0,J.useCallback)(()=>{E({mode:`create`,initial:{directory:`tasks`}})},[]),re=(0,J.useCallback)(()=>{E({mode:`import`,initial:{directory:`tasks`}})},[]),ie=(e,t)=>({directory:oW(aW(e.path,e.project_root)),goal:t?.goal??e.goal,...t?.context?{context:t.context}:{},...t?.constraints?{constraints:t.constraints}:{},...t?.checkout?{checkout:t.checkout}:{},...t?.repository?{repository:t.repository}:{},...t?.ref?{ref:t.ref}:{},...e.project_root?{project_root:e.project_root}:{}}),ae=(0,J.useCallback)(()=>{H&&E({mode:`edit`,initial:{...ie(H,y),id:H.id}})},[H,y]),oe=(0,J.useCallback)(()=>{H&&E({mode:`duplicate`,initial:{...ie(H,y),id:`${H.id}-copy`}})},[H,y]),ce=(0,J.useCallback)(()=>E(null),[]),le=(0,J.useCallback)(async(e,t)=>{E(null),SD(`Task saved · ${e.id}`),m(`all`),g(``);let n=await P(),r=aW(e.path,t),i=n.find(t=>t.id===e.id&&aW(t.path,t.project_root)===r)??n.find(t=>t.id===e.id);i&&(v(QU(i)),Z(xc(i.id))),w(e=>e+1)},[P]),ue=V?R.findIndex(e=>e.key===V.key):-1,de=T!==null;Yc([{key:`j`,scope:`tasks`,when:()=>!de&&R.length>0,handler:e=>{e.preventDefault(),ee(R[Math.min(ue<0?0:ue+1,R.length-1)])}},{key:`k`,scope:`tasks`,when:()=>!de&&R.length>0,handler:e=>{e.preventDefault(),ee(R[Math.max(ue<=0?0:ue-1,0)])}},{key:`enter`,scope:`tasks`,when:()=>!de&&!!V?.last,handler:e=>{let t=e.target instanceof HTMLElement?e.target:null;t?.closest(`button, a`)&&!t.closest(`[data-task-row]`)||(e.preventDefault(),V?.last&&Z(hc(V.last.run_id)))}},{key:`s`,scope:`tasks`,when:()=>!de&&!!V,handler:e=>{e.preventDefault(),te()}},{key:`n`,scope:`tasks`,when:()=>!de,handler:e=>{e.preventDefault(),ne()}},{key:`e`,scope:`tasks`,when:()=>!de&&!!V,handler:e=>{e.preventDefault(),ae()}},{key:`/`,scope:`tasks`,when:()=>!de,handler:e=>{e.preventDefault(),N.current?.focus()}}],`tasks`);let fe=d||i,pe=l??r,me=sW(a),he=bW(D,k,j);return(0,Y.jsxs)(`div`,{className:`flex h-full min-h-0 min-w-0 flex-1 flex-col bg-[#0c0d0f]`,children:[(0,Y.jsx)($c,{title:`Tasks`,titleAddon:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`span`,{className:`text-[#8b8f98] ${kW} text-[13px] leading-normal`,children:a.length}),(0,Y.jsxs)(`span`,{className:`flex items-center gap-[5px] self-center`,children:[(0,Y.jsx)(I,{className:`size-3 block text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`text-[#8b8f98] ${kW} text-xs leading-normal ${AW}`,children:me})]})]}),actions:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`button`,{type:`button`,onClick:re,className:`${LW} px-3 gap-2`,children:[(0,Y.jsx)(it,{className:`size-3.5 block text-[#a7aab2]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`text-[#ecedee] font-sans text-[13px] font-medium leading-normal ${AW}`,children:`Import from issue`})]}),(0,Y.jsxs)(`button`,{type:`button`,onClick:ne,className:`flex h-8 shrink-0 items-center bg-[#ecedee] rounded-lg px-3 py-0 gap-2`,children:[(0,Y.jsx)(se,{className:`size-3.5 block text-[#0c0d0f]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`text-[#0c0d0f] font-sans text-[13px] font-medium leading-normal ${AW}`,children:`New task`}),(0,Y.jsx)(`span`,{className:FW,children:`N`})]})]}),children:(0,Y.jsxs)(`label`,{className:`flex w-[280px] h-8 items-center bg-[#1a1c21] border border-[#ffffff1a] rounded-lg px-2.5 py-0 gap-2`,children:[(0,Y.jsx)(Oe,{className:`size-3.5 block shrink-0 text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsx)(`input`,{ref:N,value:h,onChange:e=>g(e.target.value),onKeyDown:e=>{e.key===`Escape`&&(g(``),e.currentTarget.blur())},placeholder:`Search tasks by id or goal`,"aria-label":`Search tasks by id or goal`,className:`min-w-0 flex-1 bg-transparent text-[#ecedee] font-sans text-[13px] leading-normal outline-none placeholder:text-[#8b8f98]`,spellCheck:!1}),(0,Y.jsx)(`span`,{className:`bg-[#131418] border border-[#ffffff1a] text-[#8b8f98] ${kW} text-[11px] leading-normal rounded-sm px-[5px] py-0`,children:`/`})]})}),(0,Y.jsxs)(`div`,{className:`flex w-full h-12 shrink-0 justify-between items-center border-b px-5 py-0 border-b-[#ffffff12]`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-0.5`,children:[(0,Y.jsx)(RW,{active:p===`all`,label:`All`,onClick:()=>m(`all`),count:(0,Y.jsx)(`span`,{className:`${kW} text-xs leading-normal ${p===`all`?`text-[#a7aab2]`:`text-[#8b8f98]`}`,children:z.all})}),(0,Y.jsx)(RW,{active:p===`has_open_gate`,label:`Has open gate`,onClick:()=>m(`has_open_gate`),icon:(0,Y.jsx)(Ze,{className:`size-[13px] block text-[#f5b544]`,"aria-hidden":!0}),count:z.has_open_gate>0?(0,Y.jsx)(`span`,{className:`bg-[#f5b544] shadow-[0px_0px_10px_rgba(245,181,68,0.45)] text-[#1a1306] ${kW} text-[11px] font-semibold leading-normal rounded-full px-1.5 py-0`,children:z.has_open_gate}):(0,Y.jsx)(`span`,{className:`text-[#8b8f98] ${kW} text-xs leading-normal`,children:`0`})}),(0,Y.jsx)(RW,{active:p===`failing`,label:`Failing`,onClick:()=>m(`failing`),icon:(0,Y.jsx)(St,{className:`size-[13px] block text-[#f2645a]`,"aria-hidden":!0}),count:(0,Y.jsx)(`span`,{className:`${kW} text-xs leading-normal ${z.failing>0?`text-[#f2645a]`:`text-[#8b8f98]`}`,children:z.failing})}),(0,Y.jsx)(RW,{active:p===`no_runs`,label:`Never run`,onClick:()=>m(`no_runs`),icon:(0,Y.jsx)(Ve,{className:`size-[13px] block text-[#a7aab2]`,"aria-hidden":!0}),count:(0,Y.jsx)(`span`,{className:`text-[#8b8f98] ${kW} text-xs leading-normal`,children:z.no_runs})})]}),(0,Y.jsxs)(`div`,{className:`flex h-[30px] items-center rounded-lg px-2.5 py-0 gap-1.5`,children:[(0,Y.jsx)(Qe,{className:`size-[13px] block text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`text-[#8b8f98] font-sans text-[13px] leading-normal ${AW}`,children:`Sort:`}),(0,Y.jsx)(`span`,{className:`text-[#ecedee] font-sans text-[13px] leading-normal ${AW}`,children:`Needs attention`})]})]}),(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-col border-r flex-1 border-r-[#ffffff12]`,children:[(0,Y.jsx)(DW,{}),(0,Y.jsxs)(`div`,{className:`flex min-h-0 w-full flex-1 flex-col overflow-y-auto`,children:[pe?(0,Y.jsx)(`p`,{className:`px-5 py-3 text-xs text-[#f2645a]`,children:pe}):null,fe&&a.length===0?(0,Y.jsx)(`p`,{className:`px-5 py-3 text-xs text-[#8b8f98]`,children:`Loading tasks…`}):null,!fe&&a.length===0&&!pe?(0,Y.jsx)(`p`,{className:`px-5 py-3 text-xs text-[#8b8f98]`,children:`No tasks in this catalog.`}):null,a.length>0&&R.length===0?(0,Y.jsx)(`p`,{className:`px-5 py-3 text-xs text-[#8b8f98]`,children:`No tasks match this filter.`}):null,R.map(e=>(0,Y.jsx)(OW,{row:e,selected:V?.key===e.key,rootLabel:B?MW(e.task.project_root):void 0,onSelect:()=>ee(e)},e.key))]})]}),(0,Y.jsx)(`aside`,{className:`flex w-[440px] min-w-0 min-h-0 flex-col shrink-0 bg-[#131418] overflow-clip`,children:V?(0,Y.jsx)(VW,{row:V,detail:y,detailLoading:x,onEdit:ae,onStartRun:te,onDuplicate:oe},V.key):(0,Y.jsx)(`div`,{className:`flex flex-1 items-center justify-center text-[#8b8f98] font-sans text-[13px] leading-normal`,children:`Select a task`})})]}),(0,Y.jsxs)(`div`,{className:`flex w-full h-8 shrink-0 items-center bg-[#08090a] border-t px-5 py-0 gap-4 border-t-[#ffffff12]`,children:[(0,Y.jsx)(zW,{keys:[`J`,`K`],label:`move`}),(0,Y.jsx)(BW,{}),(0,Y.jsx)(zW,{keys:[`Enter`],label:`open`}),(0,Y.jsx)(BW,{}),(0,Y.jsx)(zW,{keys:[`S`],label:`start run`}),(0,Y.jsx)(BW,{}),(0,Y.jsx)(zW,{keys:[`N`],label:`new task`}),(0,Y.jsx)(`div`,{className:`block flex-1`}),(0,Y.jsxs)(`div`,{className:`text-[#8b8f98] ${kW} text-[11px] leading-normal ${AW}`,children:[`${a.length} ${a.length===1?`file`:`files`} in ${me}`,he?` · ${he}`:``]})]}),(0,Y.jsx)(BU,{open:de,mode:T?.mode??`create`,initial:T?.initial??null,onClose:ce,onSaved:(e,t)=>void le(e,t)})]})}function UW({taskId:e,onNew:t}){return(0,Y.jsx)(HW,{taskId:e,onNew:t})}var WW=/^[a-z][a-z0-9]*(-[a-z0-9]+)*$/;function GW(e){let t={};e.directory.trim()||(t.directory=`Directory is required.`);let n=e.id.trim();return n?(n.length>64||!WW.test(n))&&(t.id=`Id must be lowercase kebab-case.`):t.id=`Id is required.`,e.pipeline||(t.pipeline=`Select a pipeline.`),e.taskMode===`catalog`&&!e.task&&(t.task=`Select a task.`),e.kind===`schedule`&&!e.cron.trim()&&(t.cron=`Cron expression is required.`),e.kind===`event`&&!e.source.trim()&&(t.source=`Event source is required.`),t}function KW(e,t){let n=t?.trim(),r;return r=e===409?`Could not create trigger: this id already exists.`:e===422?`Could not create trigger: invalid reference or schedule.`:e===400?`Could not create trigger: invalid input.`:`Could not create trigger. Try again.`,n?`${r} ${n}`:r}function qW(e){let t=e.replace(/\\/g,`/`),n=t.lastIndexOf(`/`);return n>=0?t.slice(0,n):`.`}var JW=()=>({directory:``,directoryTouched:!1,id:``,pipeline:``,task:``,taskMode:`catalog`,kind:`manual`,cron:``,timezone:``,source:``,enabled:!0});function YW({isOpen:e,onClose:t,onCreated:n}){let[r,i]=(0,J.useState)(JW),[a,o]=(0,J.useState)(null),[s,c]=(0,J.useState)(null),[l,u]=(0,J.useState)({}),[d,f]=(0,J.useState)(null),[p,m]=(0,J.useState)(!1);(0,J.useEffect)(()=>{if(!e)return;i(JW()),u({}),f(null),o(null),c(null);let t=!1;return(async()=>{try{let[e,n]=await Promise.all([Fi(),ki()]);if(t)return;o(e.pipelines),c(n.tasks)}catch{if(t)return;o([]),c([])}})(),()=>{t=!0}},[e]),(0,J.useEffect)(()=>{if(!e)return;function t(e){e.key===`Escape`&&_()}return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[e]);function h(e){i(t=>{let n={...t,pipeline:e};if(!t.directoryTouched&&a){let t=a.find(t=>t.id===e);t&&(n.directory=qW(t.path))}return n})}async function g(){let e={directory:r.directory.trim(),id:r.id.trim(),pipeline:r.pipeline,task:r.task,taskMode:r.taskMode,kind:r.kind,cron:r.cron.trim(),source:r.source.trim()},t=GW(e);if(u(t),f(null),Object.keys(t).length>0)return;m(!0);let i=await na({directory:e.directory,id:e.id,pipeline:e.pipeline,...e.taskMode===`catalog`?{task:e.task}:{},kind:e.kind,...e.kind===`schedule`?{schedule:{cron:e.cron,...r.timezone.trim()?{timezone:r.timezone.trim()}:{}}}:{},...e.kind===`event`?{event:{source:e.source}}:{},enabled:r.enabled});if(m(!1),i.ok){n(i.trigger);return}f(KW(i.status,i.error))}function _(){i(JW()),u({}),f(null),t()}if(!e)return null;let v=a===null,y=s===null;return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`button`,{type:`button`,className:`drawer-scrim`,"aria-label":`Close panel`,onClick:_}),(0,Y.jsxs)(`aside`,{className:`drawer drawer--right`,"aria-labelledby":`new-trigger-title`,children:[(0,Y.jsxs)(`div`,{className:`drawer__head`,children:[(0,Y.jsx)(`h2`,{id:`new-trigger-title`,style:{margin:0,fontSize:`var(--font-size-lg)`},children:`New trigger`}),(0,Y.jsx)(`span`,{style:{marginLeft:`auto`}}),(0,Y.jsx)(`button`,{type:`button`,className:`btn btn--sm`,onClick:_,children:`Close`})]}),(0,Y.jsxs)(`div`,{className:`drawer__body`,children:[d?(0,Y.jsx)(`div`,{className:`gate`,style:{padding:`var(--spacing-4)`,marginBottom:`var(--spacing-5)`,borderColor:`var(--color-border-red)`,borderLeftColor:`var(--color-error)`,background:`var(--color-background-red)`,color:`var(--color-text-red)`},children:(0,Y.jsx)(`p`,{className:`gate__question`,style:{color:`var(--color-text-primary)`,margin:0},children:d})}):null,(0,Y.jsxs)(`div`,{className:`form-field`,children:[(0,Y.jsx)(`label`,{htmlFor:`new-trigger-pipeline`,children:`Pipeline`}),(0,Y.jsxs)(`select`,{id:`new-trigger-pipeline`,className:`select`,value:r.pipeline,disabled:v,onChange:e=>h(e.target.value),children:[(0,Y.jsx)(`option`,{value:``,children:v?`Loading pipelines…`:`Select a pipeline`}),(a??[]).map(e=>(0,Y.jsx)(`option`,{value:e.id,children:e.id},e.id))]}),l.pipeline?(0,Y.jsx)(`p`,{className:`field-error`,children:l.pipeline}):!v&&a?.length===0?(0,Y.jsx)(`p`,{className:`muted`,style:{fontSize:`var(--font-size-sm)`,marginTop:`var(--spacing-1)`},children:`No pipelines in the manifest yet.`}):null]}),(0,Y.jsxs)(`div`,{className:`form-field`,children:[(0,Y.jsx)(`span`,{className:`eyebrow`,children:`Task`}),(0,Y.jsxs)(`div`,{className:`pick`,style:{marginTop:`var(--spacing-2)`},children:[(0,Y.jsxs)(`label`,{className:`pick__opt`,children:[(0,Y.jsx)(`input`,{type:`radio`,name:`new-trigger-task-mode`,checked:r.taskMode===`catalog`,onChange:()=>i(e=>({...e,taskMode:`catalog`}))}),(0,Y.jsxs)(`span`,{children:[(0,Y.jsx)(`strong`,{children:`Pick from catalog`}),(0,Y.jsx)(`span`,{className:`muted`,children:` Runs the same catalog task on every fire.`})]})]}),(0,Y.jsxs)(`label`,{className:`pick__opt`,children:[(0,Y.jsx)(`input`,{type:`radio`,name:`new-trigger-task-mode`,checked:r.taskMode===`dynamic`,onChange:()=>i(e=>({...e,taskMode:`dynamic`}))}),(0,Y.jsxs)(`span`,{children:[(0,Y.jsx)(`strong`,{children:`Dynamic — supplied when fired`}),(0,Y.jsx)(`span`,{className:`muted`,children:` No fixed task; the caller must supply one.`})]})]})]}),r.taskMode===`catalog`?(0,Y.jsxs)(`div`,{style:{marginTop:`var(--spacing-3)`},children:[(0,Y.jsxs)(`select`,{id:`new-trigger-task`,className:`select`,value:r.task,disabled:y,onChange:e=>i(t=>({...t,task:e.target.value})),children:[(0,Y.jsx)(`option`,{value:``,children:y?`Loading tasks…`:`Select a task`}),(s??[]).map(e=>(0,Y.jsx)(`option`,{value:e.id,children:e.id},e.path))]}),l.task?(0,Y.jsx)(`p`,{className:`field-error`,children:l.task}):!y&&s?.length===0?(0,Y.jsx)(`p`,{className:`muted`,style:{fontSize:`var(--font-size-sm)`,marginTop:`var(--spacing-1)`},children:`No tasks in the manifest yet.`}):null]}):(0,Y.jsxs)(`p`,{className:`muted`,style:{fontSize:`var(--font-size-sm)`,marginTop:`var(--spacing-3)`},children:[`This trigger has no fixed task. Whoever fires it — a webhook, a script,`,` `,(0,Y.jsx)(`span`,{className:`mono`,children:`sf trigger fire --task-inline`}),`, or the`,` `,(0,Y.jsx)(`span`,{className:`mono`,children:`fire_trigger`}),` MCP tool — must supply one, or the fire is rejected.`]})]}),(0,Y.jsxs)(`div`,{className:`form-field`,children:[(0,Y.jsx)(`label`,{htmlFor:`new-trigger-directory`,children:`Directory`}),(0,Y.jsx)(`input`,{id:`new-trigger-directory`,className:`input`,value:r.directory,onChange:e=>i(t=>({...t,directory:e.target.value,directoryTouched:!0})),autoComplete:`off`,spellCheck:!1}),l.directory?(0,Y.jsx)(`p`,{className:`field-error`,children:l.directory}):(0,Y.jsxs)(`p`,{className:`muted`,style:{fontSize:`var(--font-size-sm)`,marginTop:`var(--spacing-1)`},children:[`Repo-relative folder for `,(0,Y.jsxs)(`span`,{className:`mono`,children:[r.id.trim()||`id`,`.trigger.yaml`]}),`.`]})]}),(0,Y.jsxs)(`div`,{className:`form-field`,children:[(0,Y.jsx)(`label`,{htmlFor:`new-trigger-id`,children:`Id`}),(0,Y.jsx)(`input`,{id:`new-trigger-id`,className:`input`,value:r.id,onChange:e=>i(t=>({...t,id:e.target.value})),autoComplete:`off`,spellCheck:!1}),l.id?(0,Y.jsx)(`p`,{className:`field-error`,children:l.id}):null]}),(0,Y.jsxs)(`div`,{className:`form-field`,children:[(0,Y.jsx)(`label`,{htmlFor:`new-trigger-kind`,children:`Kind`}),(0,Y.jsxs)(`select`,{id:`new-trigger-kind`,className:`select`,value:r.kind,onChange:e=>i(t=>({...t,kind:e.target.value})),children:[(0,Y.jsx)(`option`,{value:`manual`,children:`Manual`}),(0,Y.jsx)(`option`,{value:`schedule`,children:`Schedule`}),(0,Y.jsx)(`option`,{value:`event`,children:`Event`})]})]}),r.kind===`schedule`?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`div`,{className:`form-field`,children:[(0,Y.jsx)(`label`,{htmlFor:`new-trigger-cron`,children:`Cron expression`}),(0,Y.jsx)(`input`,{id:`new-trigger-cron`,className:`input mono`,value:r.cron,onChange:e=>i(t=>({...t,cron:e.target.value})),placeholder:`0 * * * *`,autoComplete:`off`,spellCheck:!1}),l.cron?(0,Y.jsx)(`p`,{className:`field-error`,children:l.cron}):(0,Y.jsx)(`p`,{className:`muted`,style:{fontSize:`var(--font-size-sm)`,marginTop:`var(--spacing-1)`},children:`Validated server-side against real cron syntax.`})]}),(0,Y.jsxs)(`div`,{className:`form-field`,children:[(0,Y.jsx)(`label`,{htmlFor:`new-trigger-timezone`,children:`Timezone (optional)`}),(0,Y.jsx)(`input`,{id:`new-trigger-timezone`,className:`input`,value:r.timezone,onChange:e=>i(t=>({...t,timezone:e.target.value})),placeholder:`UTC`,autoComplete:`off`,spellCheck:!1})]})]}):null,r.kind===`event`?(0,Y.jsxs)(`div`,{className:`form-field`,children:[(0,Y.jsx)(`label`,{htmlFor:`new-trigger-source`,children:`Event source`}),(0,Y.jsx)(`input`,{id:`new-trigger-source`,className:`input`,value:r.source,onChange:e=>i(t=>({...t,source:e.target.value})),autoComplete:`off`,spellCheck:!1}),l.source?(0,Y.jsx)(`p`,{className:`field-error`,children:l.source}):(0,Y.jsx)(`p`,{className:`muted`,style:{fontSize:`var(--font-size-sm)`,marginTop:`var(--spacing-1)`},children:`No event adapter reads this yet; the trigger will not fire on its own until one lands.`}),(0,Y.jsxs)(`p`,{className:`muted`,style:{fontSize:`var(--font-size-sm)`,marginTop:`var(--spacing-1)`},children:[`Adapter-specific settings (a GitHub poller's `,(0,Y.jsx)(`span`,{className:`mono`,children:`repo`}),`, a webhook's `,(0,Y.jsx)(`span`,{className:`mono`,children:`secretRef`}),`/`,(0,Y.jsx)(`span`,{className:`mono`,children:`header`}),`, an email adapter's `,(0,Y.jsx)(`span`,{className:`mono`,children:`host`}),`/`,(0,Y.jsx)(`span`,{className:`mono`,children:`port`}),`/`,(0,Y.jsx)(`span`,{className:`mono`,children:`user`}),`/`,(0,Y.jsx)(`span`,{className:`mono`,children:`secretRef`}),`) live in`,` `,(0,Y.jsx)(`span`,{className:`mono`,children:`event.config`}),`, which this console doesn't have a builder for yet — author it via YAML, HTTP, or MCP directly.`]})]}):null,(0,Y.jsx)(`div`,{className:`form-field`,children:(0,Y.jsxs)(`label`,{className:`pick__opt`,style:{display:`flex`,alignItems:`center`,gap:`var(--spacing-2)`},children:[(0,Y.jsx)(`input`,{type:`checkbox`,checked:r.enabled,onChange:e=>i(t=>({...t,enabled:e.target.checked}))}),(0,Y.jsx)(`span`,{children:`Enabled`})]})}),(0,Y.jsxs)(`div`,{className:`form-actions`,children:[(0,Y.jsx)(`button`,{type:`button`,className:`btn btn--primary`,disabled:p,onClick:()=>void g(),children:p?`Creating…`:`Create trigger`}),(0,Y.jsx)(`button`,{type:`button`,className:`btn btn--ghost`,onClick:_,children:`Cancel`})]})]})]})]})}function XW(e,t){return t===`all`?e:t===`disabled`?e.filter(e=>!e.enabled):t===`needs_attention`?e.filter(e=>e.kind===`schedule`&&!e.task||e.adapter_status?.state===`error`):e.filter(e=>e.enabled&&e.kind===t)}function ZW(e){let t=[`schedule`,`event`,`manual`],n=new Map;for(let t of e){let e=n.get(t.kind)??[];e.push(t),n.set(t.kind,e)}return t.filter(e=>(n.get(e)?.length??0)>0).map(e=>({kind:e,items:(n.get(e)??[]).sort((e,t)=>e.id.localeCompare(t.id))}))}function QW(e,t){let n=t.trim().toLowerCase();return!n||[e.id,e.pipeline,e.task??``,yq(e),e.event?.source??``].join(` `).toLowerCase().includes(n)}function $W(e){return e.kind===`schedule`&&!e.task||e.adapter_status?.state===`error`}function eG(e){return Date.UTC(e.y,e.m-1,e.d,e.h,e.i,e.s)}function tG(e,t){return e.y===t.y&&e.m===t.m&&e.d===t.d&&e.h===t.h&&e.i===t.i&&e.s===t.s}function nG(e,t){let n=new Date(Date.parse(e));if(isNaN(n))throw Error(`Invalid ISO8601 passed to timezone parser.`);let r=e.substring(9);return r.includes(`Z`)||r.includes(`+`)||r.includes(`-`)?oG(n.getUTCFullYear(),n.getUTCMonth()+1,n.getUTCDate(),n.getUTCHours(),n.getUTCMinutes(),n.getUTCSeconds(),`Etc/UTC`):oG(n.getFullYear(),n.getMonth()+1,n.getDate(),n.getHours(),n.getMinutes(),n.getSeconds(),t)}function rG(e,t,n){return iG(nG(e,t),n)}function iG(e,t){let n=new Date(eG(e)),r=aG(n,e.tz),i=eG(e)-eG(r),a=new Date(n.getTime()+i),o=aG(a,e.tz);if(tG(o,e)){let t=new Date(a.getTime()-36e5);return tG(aG(t,e.tz),e)?t:a}let s=new Date(a.getTime()+eG(e)-eG(o));if(tG(aG(s,e.tz),e))return s;if(t)throw Error(`Invalid date passed to fromTZ()`);return a.getTime()>s.getTime()?a:s}function aG(e,t){let n,r;try{n=new Intl.DateTimeFormat(`en-US`,{timeZone:t,year:`numeric`,month:`numeric`,day:`numeric`,hour:`numeric`,minute:`numeric`,second:`numeric`,hour12:!1}),r=n.formatToParts(e)}catch(e){let n=e instanceof Error?e.message:String(e);throw RangeError(`toTZ: Invalid timezone '${t}' or date. Please provide a valid IANA timezone (e.g., 'America/New_York', 'Europe/Stockholm'). Original error: ${n}`)}let i={year:0,month:0,day:0,hour:0,minute:0,second:0};for(let e of r)(e.type===`year`||e.type===`month`||e.type===`day`||e.type===`hour`||e.type===`minute`||e.type===`second`)&&(i[e.type]=parseInt(e.value,10));if(isNaN(i.year)||isNaN(i.month)||isNaN(i.day)||isNaN(i.hour)||isNaN(i.minute)||isNaN(i.second))throw Error(`toTZ: Failed to parse all date components from timezone '${t}'. This may indicate an invalid date or timezone configuration. Parsed components: ${JSON.stringify(i)}`);return i.hour===24&&(i.hour=0),{y:i.year,m:i.month,d:i.day,h:i.hour,i:i.minute,s:i.second,tz:t}}function oG(e,t,n,r,i,a,o){return{y:e,m:t,d:n,h:r,i,s:a,tz:o}}var sG=[1,2,4,8,16],cG=class{pattern;timezone;mode;alternativeWeekdays;sloppyRanges;second;minute;hour;day;month;dayOfWeek;year;lastDayOfMonth;lastWeekday;nearestWeekdays;starDOM;starDOW;starYear;useAndLogic;constructor(e,t,n){this.pattern=e,this.timezone=t,this.mode=n?.mode??`auto`,this.alternativeWeekdays=n?.alternativeWeekdays??!1,this.sloppyRanges=n?.sloppyRanges??!1,this.second=Array(60).fill(0),this.minute=Array(60).fill(0),this.hour=Array(24).fill(0),this.day=Array(31).fill(0),this.month=Array(12).fill(0),this.dayOfWeek=Array(7).fill(0),this.year=Array(1e4).fill(0),this.lastDayOfMonth=!1,this.lastWeekday=!1,this.nearestWeekdays=Array(31).fill(0),this.starDOM=!1,this.starDOW=!1,this.starYear=!1,this.useAndLogic=!1,this.parse()}parse(){if(!(typeof this.pattern==`string`||this.pattern instanceof String))throw TypeError(`CronPattern: Pattern has to be of type string.`);this.pattern.indexOf(`@`)>=0&&(this.pattern=this.handleNicknames(this.pattern).trim());let e=this.pattern.match(/\S+/g)||[``],t=e.length;if(e.length<5||e.length>7)throw TypeError(`CronPattern: invalid configuration format ('`+this.pattern+`'), exactly five, six, or seven space separated parts are required.`);if(this.mode!==`auto`){let e;switch(this.mode){case`5-part`:e=5;break;case`6-part`:e=6;break;case`7-part`:e=7;break;case`5-or-6-parts`:e=[5,6];break;case`6-or-7-parts`:e=[6,7];break;default:e=0}if(!(Array.isArray(e)?e.includes(t):t===e)){let n=Array.isArray(e)?e.join(` or `):e.toString();throw TypeError(`CronPattern: mode '${this.mode}' requires exactly ${n} parts, but pattern '${this.pattern}' has ${t} parts.`)}}if(e.length===5&&e.unshift(`0`),e.length===6&&e.push(`*`),e[3].toUpperCase()===`LW`?(this.lastWeekday=!0,e[3]=``):e[3].toUpperCase().indexOf(`L`)>=0&&(e[3]=e[3].replace(/L/gi,``),this.lastDayOfMonth=!0),e[3]==`*`&&(this.starDOM=!0),e[6]==`*`&&(this.starYear=!0),e[4].length>=3&&(e[4]=this.replaceAlphaMonths(e[4])),e[5].length>=3&&(e[5]=this.alternativeWeekdays?this.replaceAlphaDaysQuartz(e[5]):this.replaceAlphaDays(e[5])),e[5].startsWith(`+`)&&(this.useAndLogic=!0,e[5]=e[5].substring(1),e[5]===``))throw TypeError(`CronPattern: Day-of-week field cannot be empty after '+' modifier.`);switch(e[5]==`*`&&(this.starDOW=!0),this.pattern.indexOf(`?`)>=0&&(e[0]=e[0].replace(/\?/g,`*`),e[1]=e[1].replace(/\?/g,`*`),e[2]=e[2].replace(/\?/g,`*`),e[3]=e[3].replace(/\?/g,`*`),e[4]=e[4].replace(/\?/g,`*`),e[5]=e[5].replace(/\?/g,`*`),e[6]&&=e[6].replace(/\?/g,`*`)),this.mode){case`5-part`:e[0]=`0`,e[6]=`*`;break;case`6-part`:e[6]=`*`;break;case`5-or-6-parts`:e[6]=`*`}this.throwAtIllegalCharacters(e),this.partToArray(`second`,e[0],0,1),this.partToArray(`minute`,e[1],0,1),this.partToArray(`hour`,e[2],0,1),this.partToArray(`day`,e[3],-1,1),this.partToArray(`month`,e[4],-1,1);let n=this.alternativeWeekdays?-1:0;this.partToArray(`dayOfWeek`,e[5],n,63),this.partToArray(`year`,e[6],0,1),!this.alternativeWeekdays&&this.dayOfWeek[7]&&(this.dayOfWeek[0]=this.dayOfWeek[7])}partToArray(e,t,n,r){let i=this[e],a=e===`day`&&this.lastDayOfMonth,o=e===`day`&&this.lastWeekday;if(t===``&&!a&&!o)throw TypeError(`CronPattern: configuration entry `+e+` (`+t+`) is empty, check for trailing spaces.`);if(t===`*`)return i.fill(r);let s=t.split(`,`);if(s.length>1)for(let t=0;t<s.length;t++)this.partToArray(e,s[t],n,r);else t.indexOf(`-`)!==-1&&t.indexOf(`/`)!==-1?this.handleRangeWithStepping(t,e,n,r):t.indexOf(`-`)===-1?t.indexOf(`/`)===-1?t!==``&&this.handleNumber(t,e,n,r):this.handleStepping(t,e,n,r):this.handleRange(t,e,n,r)}throwAtIllegalCharacters(e){for(let t=0;t<e.length;t++)if((t===3?/[^/*0-9,\-WwLl]+/:t===5?/[^/*0-9,\-#Ll]+/:/[^/*0-9,\-]+/).test(e[t]))throw TypeError(`CronPattern: configuration entry `+t+` (`+e[t]+`) contains illegal characters.`)}handleNumber(e,t,n,r){let i=this.extractNth(e,t),a=e.toUpperCase().includes(`W`);if(t!==`day`&&a)throw TypeError(`CronPattern: Nearest weekday modifier (W) only allowed in day-of-month.`);a&&(t=`nearestWeekdays`);let o=parseInt(i[0],10)+n;if(isNaN(o))throw TypeError(`CronPattern: `+t+` is not a number: '`+e+`'`);this.setPart(t,o,i[1]||r)}setPart(e,t,n){if(!Object.prototype.hasOwnProperty.call(this,e))throw TypeError(`CronPattern: Invalid part specified: `+e);if(e===`dayOfWeek`){if(t===7&&(t=0),t<0||t>6)throw RangeError(`CronPattern: Invalid value for dayOfWeek: `+t);this.setNthWeekdayOfMonth(t,n);return}if(e===`second`||e===`minute`){if(t<0||t>=60)throw RangeError(`CronPattern: Invalid value for `+e+`: `+t)}else if(e===`hour`){if(t<0||t>=24)throw RangeError(`CronPattern: Invalid value for `+e+`: `+t)}else if(e===`day`||e===`nearestWeekdays`){if(t<0||t>=31)throw RangeError(`CronPattern: Invalid value for `+e+`: `+t)}else if(e===`month`){if(t<0||t>=12)throw RangeError(`CronPattern: Invalid value for `+e+`: `+t)}else if(e===`year`&&(t<1||t>=1e4))throw RangeError(`CronPattern: Invalid value for `+e+`: `+t+` (supported range: 1-9999)`);this[e][t]=n}validateNotNaN(e,t){if(isNaN(e))throw TypeError(t)}validateRange(e,t,n,r,i){if(e>t)throw TypeError(`CronPattern: From value is larger than to value: '`+i+`'`);if(n!==void 0){if(n===0)throw TypeError(`CronPattern: Syntax error, illegal stepping: 0`);if(n>this[r].length)throw TypeError(`CronPattern: Syntax error, steps cannot be greater than maximum value of part (`+this[r].length+`)`)}}handleRangeWithStepping(e,t,n,r){if(e.toUpperCase().includes(`W`))throw TypeError(`CronPattern: Syntax error, W is not allowed in ranges with stepping.`);let i=this.extractNth(e,t),a=i[0].match(/^(\d+)-(\d+)\/(\d+)$/);if(a===null)throw TypeError(`CronPattern: Syntax error, illegal range with stepping: '`+e+`'`);let[,o,s,c]=a,l=parseInt(o,10)+n,u=parseInt(s,10)+n,d=parseInt(c,10);this.validateNotNaN(l,`CronPattern: Syntax error, illegal lower range (NaN)`),this.validateNotNaN(u,`CronPattern: Syntax error, illegal upper range (NaN)`),this.validateNotNaN(d,`CronPattern: Syntax error, illegal stepping: (NaN)`),this.validateRange(l,u,d,t,e);for(let e=l;e<=u;e+=d)this.setPart(t,e,i[1]||r)}extractNth(e,t){let n=e,r;if(n.includes(`#`)){if(t!==`dayOfWeek`)throw Error(`CronPattern: nth (#) only allowed in day-of-week field`);r=n.split(`#`)[1],n=n.split(`#`)[0]}else if(n.toUpperCase().endsWith(`L`)){if(t!==`dayOfWeek`)throw Error(`CronPattern: L modifier only allowed in day-of-week field (use L alone for day-of-month)`);r=`L`,n=n.slice(0,-1)}return[n,r]}handleRange(e,t,n,r){if(e.toUpperCase().includes(`W`))throw TypeError(`CronPattern: Syntax error, W is not allowed in a range.`);let i=this.extractNth(e,t),a=i[0].split(`-`);if(a.length!==2)throw TypeError(`CronPattern: Syntax error, illegal range: '`+e+`'`);let o=parseInt(a[0],10)+n,s=parseInt(a[1],10)+n;this.validateNotNaN(o,`CronPattern: Syntax error, illegal lower range (NaN)`),this.validateNotNaN(s,`CronPattern: Syntax error, illegal upper range (NaN)`),this.validateRange(o,s,void 0,t,e);for(let e=o;e<=s;e++)this.setPart(t,e,i[1]||r)}handleStepping(e,t,n,r){if(e.toUpperCase().includes(`W`))throw TypeError(`CronPattern: Syntax error, W is not allowed in parts with stepping.`);let i=this.extractNth(e,t),a=i[0].split(`/`);if(a.length!==2)throw TypeError(`CronPattern: Syntax error, illegal stepping: '`+e+`'`);if(this.sloppyRanges)a[0]===``&&(a[0]=`*`);else{if(a[0]===``)throw TypeError(`CronPattern: Syntax error, stepping with missing prefix ('`+e+`') is not allowed. Use wildcard (*/step) or range (min-max/step) instead.`);if(a[0]!==`*`)throw TypeError(`CronPattern: Syntax error, stepping with numeric prefix ('`+e+`') is not allowed. Use wildcard (*/step) or range (min-max/step) instead.`)}let o=0;a[0]!==`*`&&(o=parseInt(a[0],10)+n);let s=parseInt(a[1],10);this.validateNotNaN(s,`CronPattern: Syntax error, illegal stepping: (NaN)`),this.validateRange(0,this[t].length-1,s,t,e);for(let e=o;e<this[t].length;e+=s)this.setPart(t,e,i[1]||r)}replaceAlphaDays(e){return e.replace(/-sun/gi,`-7`).replace(/sun/gi,`0`).replace(/mon/gi,`1`).replace(/tue/gi,`2`).replace(/wed/gi,`3`).replace(/thu/gi,`4`).replace(/fri/gi,`5`).replace(/sat/gi,`6`)}replaceAlphaDaysQuartz(e){return e.replace(/sun/gi,`1`).replace(/mon/gi,`2`).replace(/tue/gi,`3`).replace(/wed/gi,`4`).replace(/thu/gi,`5`).replace(/fri/gi,`6`).replace(/sat/gi,`7`)}replaceAlphaMonths(e){return e.replace(/jan/gi,`1`).replace(/feb/gi,`2`).replace(/mar/gi,`3`).replace(/apr/gi,`4`).replace(/may/gi,`5`).replace(/jun/gi,`6`).replace(/jul/gi,`7`).replace(/aug/gi,`8`).replace(/sep/gi,`9`).replace(/oct/gi,`10`).replace(/nov/gi,`11`).replace(/dec/gi,`12`)}handleNicknames(e){let t=e.trim().toLowerCase();if(t===`@yearly`||t===`@annually`)return`0 0 1 1 *`;if(t===`@monthly`)return`0 0 1 * *`;if(t===`@weekly`)return`0 0 * * 0`;if(t===`@daily`||t===`@midnight`)return`0 0 * * *`;if(t===`@hourly`)return`0 * * * *`;if(t===`@reboot`)throw TypeError(`CronPattern: @reboot is not supported in this environment. This is an event-based trigger that requires system startup detection.`);return e}setNthWeekdayOfMonth(e,t){if(typeof t!=`number`&&t.toUpperCase()===`L`)this.dayOfWeek[e]=this.dayOfWeek[e]|32;else if(t===63)this.dayOfWeek[e]=63;else if(t<6&&t>0)this.dayOfWeek[e]=this.dayOfWeek[e]|sG[t-1];else throw TypeError(`CronPattern: nth weekday out of range, should be 1-5 or L. Value: ${t}, Type: ${typeof t}`)}},lG=[31,28,31,30,31,30,31,31,30,31,30,31],uG=[[`month`,`year`,0],[`day`,`month`,-1],[`hour`,`day`,0],[`minute`,`hour`,0],[`second`,`minute`,0]],dG=class e{tz;ms;second;minute;hour;day;month;year;constructor(t,n){if(this.tz=n,t&&t instanceof Date){if(!isNaN(t))this.fromDate(t);else throw TypeError(`CronDate: Invalid date passed to CronDate constructor`)}else if(t==null)this.fromDate(new Date);else if(t&&typeof t==`string`)this.fromString(t);else if(t instanceof e)this.fromCronDate(t);else throw TypeError(`CronDate: Invalid type (`+typeof t+`) passed to CronDate constructor`)}getLastDayOfMonth(e,t){return t===1?new Date(Date.UTC(e,t+1,0)).getUTCDate():lG[t]}getLastWeekday(e,t){let n=this.getLastDayOfMonth(e,t),r=new Date(Date.UTC(e,t,n)).getUTCDay();return r===0?n-2:r===6?n-1:n}getNearestWeekday(e,t,n){let r=this.getLastDayOfMonth(e,t);if(n>r)return-1;let i=new Date(Date.UTC(e,t,n)).getUTCDay();return i===0?n===r?n-2:n+1:i===6?n===1?n+2:n-1:n}isNthWeekdayOfMonth(e,t,n,r){let i=new Date(Date.UTC(e,t,n)).getUTCDay(),a=0;for(let r=1;r<=n;r++)new Date(Date.UTC(e,t,r)).getUTCDay()===i&&a++;if(r&63&&sG[a-1]&r)return!0;if(r&32){let r=this.getLastDayOfMonth(e,t);for(let a=n+1;a<=r;a++)if(new Date(Date.UTC(e,t,a)).getUTCDay()===i)return!1;return!0}return!1}fromDate(e){if(this.tz!==void 0){if(typeof this.tz==`number`)this.ms=e.getUTCMilliseconds(),this.second=e.getUTCSeconds(),this.minute=e.getUTCMinutes()+this.tz,this.hour=e.getUTCHours(),this.day=e.getUTCDate(),this.month=e.getUTCMonth(),this.year=e.getUTCFullYear(),this.apply();else try{let t=aG(e,this.tz);this.ms=e.getMilliseconds(),this.second=t.s,this.minute=t.i,this.hour=t.h,this.day=t.d,this.month=t.m-1,this.year=t.y}catch(e){let t=e instanceof Error?e.message:String(e);throw TypeError(`CronDate: Failed to convert date to timezone '${this.tz}'. This may happen with invalid timezone names or dates. Original error: ${t}`)}}else this.ms=e.getMilliseconds(),this.second=e.getSeconds(),this.minute=e.getMinutes(),this.hour=e.getHours(),this.day=e.getDate(),this.month=e.getMonth(),this.year=e.getFullYear()}fromCronDate(e){this.tz=e.tz,this.year=e.year,this.month=e.month,this.day=e.day,this.hour=e.hour,this.minute=e.minute,this.second=e.second,this.ms=e.ms}apply(){if(this.month>11||this.month<0||this.day>lG[this.month]||this.day<1||this.hour>59||this.minute>59||this.second>59||this.hour<0||this.minute<0||this.second<0){let e=new Date(Date.UTC(this.year,this.month,this.day,this.hour,this.minute,this.second,this.ms));return this.ms=e.getUTCMilliseconds(),this.second=e.getUTCSeconds(),this.minute=e.getUTCMinutes(),this.hour=e.getUTCHours(),this.day=e.getUTCDate(),this.month=e.getUTCMonth(),this.year=e.getUTCFullYear(),!0}return!1}fromString(e){if(typeof this.tz==`number`){let t=rG(e);this.ms=t.getUTCMilliseconds(),this.second=t.getUTCSeconds(),this.minute=t.getUTCMinutes(),this.hour=t.getUTCHours(),this.day=t.getUTCDate(),this.month=t.getUTCMonth(),this.year=t.getUTCFullYear(),this.apply()}else return this.fromDate(rG(e,this.tz))}findNext(e,t,n,r){return this._findMatch(e,t,n,r,1)}_findMatch(e,t,n,r,i){let a=this[t],o;n.lastDayOfMonth&&(o=this.getLastDayOfMonth(this.year,this.month));let s=!n.starDOW&&t==`day`?new Date(Date.UTC(this.year,this.month,1,0,0,0,0)).getUTCDay():void 0,c=this[t]+r,l=i===1?e=>e<n[t].length:e=>e>=0;for(let u=c;l(u);u+=i){let i=n[t][u];if(t===`day`&&!i){for(let e=0;e<n.nearestWeekdays.length;e++)if(n.nearestWeekdays[e]){let t=this.getNearestWeekday(this.year,this.month,e-r);if(t===-1)continue;if(t===u-r){i=1;break}}}if(t===`day`&&n.lastWeekday){let e=this.getLastWeekday(this.year,this.month);u-r===e&&(i=1)}if(t===`day`&&n.lastDayOfMonth&&u-r==o&&(i=1),t===`day`&&!n.starDOW){let t=n.dayOfWeek[(s+(u-r-1))%7];if(t&&t&63)t=+!!this.isNthWeekdayOfMonth(this.year,this.month,u-r,t);else if(t)throw Error(`CronDate: Invalid value for dayOfWeek encountered. ${t}`);n.useAndLogic?i&&=t:!e.domAndDow&&!n.starDOM?i||=t:i&&=t}if(i)return this[t]=u-r,a===this[t]?1:2}return 3}recurse(e,t,n){if(n===0&&!e.starYear){if(this.year>=0&&this.year<e.year.length&&e.year[this.year]===0){let t=-1;for(let n=this.year+1;n<e.year.length&&n<1e4;n++)if(e.year[n]===1){t=n;break}if(t===-1)return null;this.year=t,this.month=0,this.day=1,this.hour=0,this.minute=0,this.second=0,this.ms=0}if(this.year>=1e4)return null}let r=this.findNext(t,uG[n][0],e,uG[n][2]);if(r>1){let i=n+1;for(;i<uG.length;)this[uG[i][0]]=-uG[i][2],i++;if(r===3){if(this[uG[n][1]]++,this[uG[n][0]]=-uG[n][2],this.apply(),n===0&&!e.starYear){for(;this.year>=0&&this.year<e.year.length&&e.year[this.year]===0&&this.year<1e4;)this.year++;if(this.year>=1e4||this.year>=e.year.length)return null}return this.recurse(e,t,0)}if(this.apply())return this.recurse(e,t,n-1)}return n+=1,n>=uG.length?this:(e.starYear?this.year>=3e3:this.year>=1e4)?null:this.recurse(e,t,n)}increment(e,t,n){return this.second+=t.interval!==void 0&&t.interval>1&&n?t.interval:1,this.ms=0,this.apply(),this.recurse(e,t,0)}decrement(e,t){return this.second-=t.interval!==void 0&&t.interval>1?t.interval:1,this.ms=0,this.apply(),this.recurseBackward(e,t,0,0)}recurseBackward(e,t,n,r=0){if(r>1e4)return null;if(n===0&&!e.starYear){if(this.year>=0&&this.year<e.year.length&&e.year[this.year]===0){let t=-1;for(let n=this.year-1;n>=0;n--)if(e.year[n]===1){t=n;break}if(t===-1)return null;this.year=t,this.month=11,this.day=31,this.hour=23,this.minute=59,this.second=59,this.ms=0}if(this.year<0)return null}let i=this.findPrevious(t,uG[n][0],e,uG[n][2]);if(i>1){let a=n+1;for(;a<uG.length;){let t=uG[a][0],n=uG[a][2],r=this.getMaxPatternValue(t,e,n);this[t]=r,a++}if(i===3){if(this[uG[n][1]]--,n===0){let e=this.getLastDayOfMonth(this.year,this.month);this.day>e&&(this.day=e)}if(n===1){if(this.day<=0)this.day=1;else{let e=this.year,t=this.month;for(;t<0;)t+=12,e--;for(;t>11;)t-=12,e++;let n=t===1?new Date(Date.UTC(e,t+1,0)).getUTCDate():lG[t];this.day>n&&(this.day=n)}}this.apply();let i=uG[n][0],a=uG[n][2],o=this.getMaxPatternValue(i,e,a);if(i===`day`){let e=this.getLastDayOfMonth(this.year,this.month);this[i]=Math.min(o,e)}else this[i]=o;if(this.apply(),n===0){let t=uG[1][2],n=this.getMaxPatternValue(`day`,e,t),r=this.getLastDayOfMonth(this.year,this.month),i=Math.min(n,r);i!==this.day&&(this.day=i,this.hour=this.getMaxPatternValue(`hour`,e,uG[2][2]),this.minute=this.getMaxPatternValue(`minute`,e,uG[3][2]),this.second=this.getMaxPatternValue(`second`,e,uG[4][2]))}if(n===0&&!e.starYear){for(;this.year>=0&&this.year<e.year.length&&e.year[this.year]===0;)this.year--;if(this.year<0)return null}return this.recurseBackward(e,t,0,r+1)}if(this.apply())return this.recurseBackward(e,t,n-1,r+1)}return n+=1,n>=uG.length?this:this.year<0?null:this.recurseBackward(e,t,n,r+1)}getMaxPatternValue(e,t,n){if(e===`day`&&t.lastDayOfMonth||e===`day`&&!t.starDOW)return this.getLastDayOfMonth(this.year,this.month);for(let r=t[e].length-1;r>=0;r--)if(t[e][r])return r-n;return t[e].length-1-n}findPrevious(e,t,n,r){return this._findMatch(e,t,n,r,-1)}getDate(e){return e||this.tz===void 0?new Date(this.year,this.month,this.day,this.hour,this.minute,this.second,this.ms):typeof this.tz==`number`?new Date(Date.UTC(this.year,this.month,this.day,this.hour,this.minute-this.tz,this.second,this.ms)):iG(oG(this.year,this.month+1,this.day,this.hour,this.minute,this.second,this.tz),!1)}getTime(){return this.getDate(!1).getTime()}match(e,t){if(!e.starYear&&(this.year<0||this.year>=e.year.length||e.year[this.year]===0))return!1;for(let n=0;n<uG.length;n++){let r=uG[n][0],i=uG[n][2],a=this[r];if(a+i<0||a+i>=e[r].length)return!1;let o=e[r][a+i];if(r===`day`){if(!o){for(let t=0;t<e.nearestWeekdays.length;t++)if(e.nearestWeekdays[t]){let e=this.getNearestWeekday(this.year,this.month,t-i);if(e!==-1&&e===a){o=1;break}}}if(e.lastWeekday&&a===this.getLastWeekday(this.year,this.month)&&(o=1),e.lastDayOfMonth&&a===this.getLastDayOfMonth(this.year,this.month)&&(o=1),!e.starDOW){let n=new Date(Date.UTC(this.year,this.month,1,0,0,0,0)).getUTCDay(),r=e.dayOfWeek[(n+(a-1))%7];r&&r&63&&(r=+!!this.isNthWeekdayOfMonth(this.year,this.month,a,r)),e.useAndLogic?o&&=r:!t.domAndDow&&!e.starDOM?o||=r:o&&=r}}if(!o)return!1}return!0}};function fG(e){if(e===void 0&&(e={}),delete e.name,e.legacyMode!==void 0&&e.domAndDow===void 0?e.domAndDow=!e.legacyMode:e.domAndDow===void 0&&(e.domAndDow=!1),e.legacyMode=!e.domAndDow,e.paused=e.paused!==void 0&&e.paused,e.maxRuns=e.maxRuns===void 0?1/0:e.maxRuns,e.catch=e.catch!==void 0&&e.catch,e.interval=e.interval===void 0?0:parseInt(e.interval.toString(),10),e.utcOffset=e.utcOffset===void 0?void 0:parseInt(e.utcOffset.toString(),10),e.dayOffset=e.dayOffset===void 0?0:parseInt(e.dayOffset.toString(),10),e.unref=e.unref!==void 0&&e.unref,e.mode=e.mode===void 0?`auto`:e.mode,e.alternativeWeekdays=e.alternativeWeekdays!==void 0&&e.alternativeWeekdays,e.sloppyRanges=e.sloppyRanges!==void 0&&e.sloppyRanges,![`auto`,`5-part`,`6-part`,`7-part`,`5-or-6-parts`,`6-or-7-parts`].includes(e.mode))throw Error(`CronOptions: mode must be one of 'auto', '5-part', '6-part', '7-part', '5-or-6-parts', or '6-or-7-parts'.`);if(e.startAt&&(e.startAt=new dG(e.startAt,e.timezone)),e.stopAt&&(e.stopAt=new dG(e.stopAt,e.timezone)),e.interval!==null){if(isNaN(e.interval))throw Error(`CronOptions: Supplied value for interval is not a number`);if(e.interval<0)throw Error(`CronOptions: Supplied value for interval can not be negative`)}if(e.utcOffset!==void 0){if(isNaN(e.utcOffset))throw Error(`CronOptions: Invalid value passed for utcOffset, should be number representing minutes offset from UTC.`);if(e.utcOffset<-870||e.utcOffset>870)throw Error(`CronOptions: utcOffset out of bounds.`);if(e.utcOffset!==void 0&&e.timezone)throw Error(`CronOptions: Combining 'utcOffset' with 'timezone' is not allowed.`)}if(e.unref!==!0&&e.unref!==!1)throw Error(`CronOptions: Unref should be either true, false or undefined(false).`);if(e.dayOffset!==void 0&&e.dayOffset!==0&&isNaN(e.dayOffset))throw Error(`CronOptions: Invalid value passed for dayOffset, should be a number representing days to offset.`);return e}function pG(e){return Object.prototype.toString.call(e)===`[object Function]`||typeof e==`function`||e instanceof Function}function mG(e){return pG(e)}function hG(e){typeof Deno<`u`&&typeof Deno.unrefTimer<`u`?Deno.unrefTimer(e):e&&typeof e.unref<`u`&&e.unref()}var gG=3e4,_G=[],vG=class{name;options;_states;fn;getTz(){return this.options.timezone||this.options.utcOffset}applyDayOffset(e){if(this.options.dayOffset!==void 0&&this.options.dayOffset!==0){let t=this.options.dayOffset*24*60*60*1e3;return new Date(e.getTime()+t)}return e}constructor(e,t,n){let r,i;if(pG(t))i=t;else if(typeof t==`object`)r=t;else if(t!==void 0)throw Error(`Cron: Invalid argument passed for optionsIn. Should be one of function, or object (options).`);if(pG(n))i=n;else if(typeof n==`object`)r=n;else if(n!==void 0)throw Error(`Cron: Invalid argument passed for funcIn. Should be one of function, or object (options).`);if(this.name=r?.name,this.options=fG(r),this._states={kill:!1,blocking:!1,previousRun:void 0,currentRun:void 0,once:void 0,currentTimeout:void 0,maxRuns:r?r.maxRuns:void 0,paused:r?r.paused:!1,pattern:new cG(`* * * * *`,void 0,{mode:`auto`})},e&&(e instanceof Date||typeof e==`string`&&e.indexOf(`:`)>0)?this._states.once=new dG(e,this.getTz()):this._states.pattern=new cG(e,this.options.timezone,{mode:this.options.mode,alternativeWeekdays:this.options.alternativeWeekdays,sloppyRanges:this.options.sloppyRanges}),this.name){if(_G.find(e=>e.name===this.name))throw Error(`Cron: Tried to initialize new named job '`+this.name+`', but name already taken.`);_G.push(this)}return i!==void 0&&mG(i)&&(this.fn=i,this.schedule()),this}nextRun(e){let t=this._next(e);return t?this.applyDayOffset(t.getDate(!1)):null}nextRuns(e,t){this._states.maxRuns!==void 0&&e>this._states.maxRuns&&(e=this._states.maxRuns);let n=t||this._states.currentRun||void 0;return this._enumerateRuns(e,n,`next`)}previousRuns(e,t){return this._enumerateRuns(e,t||void 0,`previous`)}_enumerateRuns(e,t,n){let r=[],i=t?new dG(t,this.getTz()):null,a=n===`next`?this._next:this._previous;for(;e--;){let e=a.call(this,i);if(!e)break;let t=e.getDate(!1);r.push(this.applyDayOffset(t)),i=e}return r}match(e){if(this._states.once){let t=new dG(e,this.getTz());t.ms=0;let n=new dG(this._states.once,this.getTz());return n.ms=0,t.getTime()===n.getTime()}let t=new dG(e,this.getTz());return t.ms=0,t.match(this._states.pattern,this.options)}getPattern(){if(!this._states.once)return this._states.pattern?this._states.pattern.pattern:void 0}getOnce(){return this._states.once?this._states.once.getDate():null}isRunning(){let e=this.nextRun(this._states.currentRun),t=!this._states.paused,n=this.fn!==void 0,r=!this._states.kill;return t&&n&&r&&e!==null}isStopped(){return this._states.kill}isBusy(){return this._states.blocking}currentRun(){return this._states.currentRun?this._states.currentRun.getDate():null}previousRun(){return this._states.previousRun?this._states.previousRun.getDate():null}msToNext(e){let t=this._next(e);return t?e instanceof dG||e instanceof Date?t.getTime()-e.getTime():t.getTime()-new dG(e).getTime():null}stop(){this._states.kill=!0,this._states.currentTimeout&&clearTimeout(this._states.currentTimeout);let e=_G.indexOf(this);e>=0&&_G.splice(e,1)}pause(){return this._states.paused=!0,!this._states.kill}resume(){return this._states.paused=!1,!this._states.kill}schedule(e){if(e&&this.fn)throw Error(`Cron: It is not allowed to schedule two functions using the same Croner instance.`);e&&(this.fn=e);let t=this.msToNext(),n=this.nextRun(this._states.currentRun);return t==null||isNaN(t)||n===null?this:(t>gG&&(t=gG),this._states.currentTimeout=setTimeout(()=>this._checkTrigger(n),t),this._states.currentTimeout&&this.options.unref&&hG(this._states.currentTimeout),this)}async _trigger(e){this._states.blocking=!0,this._states.currentRun=new dG(void 0,this.getTz());try{if(this.options.catch)try{this.fn!==void 0&&await this.fn(this,this.options.context)}catch(e){if(pG(this.options.catch))try{this.options.catch(e,this)}catch{}}else this.fn!==void 0&&await this.fn(this,this.options.context)}finally{this._states.previousRun=new dG(e,this.getTz()),this._states.blocking=!1}}async trigger(){await this._trigger()}runsLeft(){return this._states.maxRuns}_checkTrigger(e){let t=new Date,n=!this._states.paused&&t.getTime()>=e.getTime(),r=this._states.blocking&&this.options.protect;n&&!r?(this._states.maxRuns!==void 0&&this._states.maxRuns--,this._trigger()):n&&r&&pG(this.options.protect)&&setTimeout(()=>this.options.protect(this),0),this.schedule()}_next(e){let t=!!(e||this._states.currentRun),n=!1;!e&&this.options.startAt&&this.options.interval&&([e,t]=this._calculatePreviousRun(e,t),n=!e),e=new dG(e,this.getTz()),this.options.startAt&&e&&e.getTime()<this.options.startAt.getTime()&&(e=this.options.startAt);let r=this._states.once||new dG(e,this.getTz());return!n&&r!==this._states.once&&(r=r.increment(this._states.pattern,this.options,t)),this._states.once&&this._states.once.getTime()<=e.getTime()||r===null||this._states.maxRuns!==void 0&&this._states.maxRuns<=0||this._states.kill||this.options.stopAt&&r.getTime()>=this.options.stopAt.getTime()?null:r}_previous(e){let t=new dG(e,this.getTz());this.options.stopAt&&t.getTime()>this.options.stopAt.getTime()&&(t=this.options.stopAt);let n=new dG(t,this.getTz());return this._states.once?this._states.once.getTime()<t.getTime()?this._states.once:null:(n=n.decrement(this._states.pattern,this.options),n===null||this.options.startAt&&n.getTime()<this.options.startAt.getTime()?null:n)}_calculatePreviousRun(e,t){let n=new dG(void 0,this.getTz()),r=e;if(this.options.startAt.getTime()<=n.getTime()){r=this.options.startAt;let e=r.getTime()+this.options.interval*1e3;for(;e<=n.getTime();)r=new dG(r,this.getTz()).increment(this._states.pattern,this.options,!0),e=r.getTime()+this.options.interval*1e3;t=!0}return r===null&&(r=void 0),[r,t]}};function yG(e,t,n){if(!e.cron.trim()||n<=0)return[];let r=new vG(e.cron,e.timezone===void 0?{}:{timezone:e.timezone}),i=[],a=t;for(let e=0;e<n;e++){let e=r.nextRun(a);if(!e)break;i.push(e),a=new Date(e.getTime()+1e3)}return i}var bG={schedule:`Schedule`,event:`Event`,manual:`Manual`},xG={schedule:`Cron, checked on every scheduler tick`,event:`GitHub poll, webhook, or email`,manual:`Fired from the UI, CLI, or MCP`},SG=`GitHub is polled every 60s (the first poll only seeds, no backfill). Email uses IMAP IDLE. Webhooks POST to /api/triggers/:id/webhook and must pass the HMAC check. Dynamic-task triggers build the task from the event payload.`;function CG(e){if(e.kind===`schedule`)return`schedule`;if(e.kind===`manual`)return`manual`;let t=e.event?.source??``;return t.startsWith(`github.`)?`github`:t===`webhook`?`webhook`:t.startsWith(`email.`)?`email`:`event`}var wG=[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`];function TG(e){return String(e).padStart(2,`0`)}function EG(e){return/^\d+$/.test(e)}function DG(e){let t=e.trim().split(/\s+/);if(t.length!==5)return e.trim();let[n,r,i,a,o]=t,s=/^\*\/(\d+)$/.exec(n);if(s&&r===`*`&&i===`*`&&a===`*`&&o===`*`)return s[1]===`1`?`Every minute`:`Every ${s[1]} minutes`;if(n===`*`&&r===`*`&&i===`*`&&a===`*`&&o===`*`)return`Every minute`;let c=/^\*\/(\d+)$/.exec(r);if(EG(n)&&c&&i===`*`&&a===`*`&&o===`*`)return c[1]===`1`?`Every hour at :${TG(Number(n))}`:`Every ${c[1]} hours at :${TG(Number(n))}`;if(EG(n)&&r===`*`&&i===`*`&&a===`*`&&o===`*`)return`Every hour at :${TG(Number(n))}`;if(!EG(n)||!EG(r))return e.trim();let l=`${TG(Number(r))}:${TG(Number(n))}`;if(i===`*`&&a===`*`){if(o===`*`)return`Every day at ${l}`;if(o===`1-5`)return`Weekdays at ${l}`;if(o===`0,6`||o===`6,0`)return`Weekends at ${l}`;if(EG(o)&&Number(o)<=7)return`Every ${wG[Number(o)%7]} at ${l}`}return EG(i)&&a===`*`&&o===`*`?`Monthly on day ${Number(i)} at ${l}`:e.trim()}function OG(e){return(e.split(`/`).pop()??e).replace(/_/g,` `)}function kG(e,t){let n=e?.[t];return typeof n==`string`&&n.length>0?n:void 0}function AG(e){if(e.kind===`schedule`){if(!e.task)return{text:`cannot auto-fire: dynamic task on a schedule`,warning:!0};if(!e.schedule)return{text:`No schedule`,warning:!1};let t=DG(e.schedule.cron);return{text:e.schedule.timezone?`${t} ${OG(e.schedule.timezone)}`:t,warning:!1}}if(e.kind===`manual`)return{text:`Fired by hand`,warning:!1};if(e.adapter_status?.state===`error`&&e.adapter_status.detail)return{text:e.adapter_status.detail,warning:!0};let t=e.event?.source??``,n=e.event?.config;if(t.startsWith(`github.`)){let t=kG(e.event?.match,`action`),r=kG(n,`repo`);return{text:`GitHub PR${t?` ${t}`:``}${r?` in ${r}`:``}`,warning:!1}}if(t===`webhook`)return{text:`Signed webhook`,warning:!1};if(t.startsWith(`email.`)){let e=kG(n,`host`)??kG(n,`folder`);return{text:e?`Email ${e}`:`Email`,warning:!1}}return{text:t||`Event`,warning:!1}}function jG(e,t){let n=e.getTime()-t.getTime();if(n<=0)return`now`;let r=Math.round(n/6e4);if(r<1)return`in <1m`;if(r<60)return`in ${r}m`;let i=Math.floor(r/60);if(i<24)return`in ${i}h`;let a=Math.floor(i/24),o=i%24;return o>0?`in ${a}d ${o}h`:`in ${a}d`}function MG(e,t,n){if(e.kind!==`schedule`||!e.schedule)return[];try{return yG(e.schedule,t,n)}catch{return[]}}function NG(e,t){let n={label:`—`,dot:!1,muted:!0};if(!e.enabled)return n;if(e.kind===`schedule`){if(!e.task)return n;let[r]=MG(e,t,1);return r?{label:jG(r,t),dot:!1,muted:!1}:e.next_run_at?{label:jG(new Date(e.next_run_at),t),dot:!1,muted:!1}:n}if(e.kind===`event`){let t=CG(e);return t===`github`?{label:`polling 60s`,dot:!0,muted:!1}:t===`webhook`?{label:`webhook`,dot:!1,muted:!1}:t===`email`?{label:`imap`,dot:!1,muted:!1}:n}return n}function PG(e){return e.enabled?e.task?{enabled:!0}:{enabled:!1,title:`needs a task payload`}:{enabled:!1,title:`Trigger is disabled`}}function FG(e){if(e){if(e.status===`succeeded`)return`succeeded`;if(e.status===`failed`||e.status===`cancelled`)return`failed`}}function IG(e){if(!Number.isFinite(e)||e<0)return``;let t=Math.round(e/1e3);if(t<60)return`${t}s`;let n=Math.floor(t/60),r=t%60;return n<60?`${n}m ${TG(r)}s`:`${Math.floor(n/60)}h ${TG(n%60)}m`}function LG(e){if(e?.finished_at)return IG(Date.parse(e.finished_at)-Date.parse(e.created_at))||void 0}function RG(e){if(!(e===void 0||!Number.isFinite(e)))return`$${e.toFixed(2)}`}function zG(e){return`${wG[e.getDay()]} ${TG(e.getMonth()+1)}-${TG(e.getDate())} ${TG(e.getHours())}:${TG(e.getMinutes())}`}function BG(e){let t=e.replace(/\\/g,`/`),n=t.lastIndexOf(`/`);return n>=0?t.slice(0,n+1):void 0}function VG(e){if(e.length===0)return`triggers/`;let t=new Set(e.map(e=>BG(e.definition_ref??``)));if(t.size!==1)return`triggers/`;let[n]=[...t];return n??`triggers/`}function HG(e){return e.definition_ref||`triggers/${e.id}.trigger.yaml`}function UG(e){return e===`schedule`?[`If all agent slots are busy the run is queued.`,`After downtime, one missed run is caught up on start.`]:e===`event`?[`If all agent slots are busy the run is queued.`]:[`Nothing runs until you fire it.`]}var WG=[`repo`,`secretRef`,`host`,`header`,`folder`,`url`,`mailbox`];function GG(e){let t=e.event?.config,n=[];for(let e of WG){let r=kG(t,e);r&&n.push([e,r])}return n}function KG(e){let t=e.event?.match;if(!t)return;let n=Object.entries(t).map(([e,t])=>`${e}: ${Array.isArray(t)?t.join(`, `):typeof t==`object`?JSON.stringify(t):String(t)}`);return n.length>0?n.join(` · `):void 0}function qG(e){return{...e,id:`${e.id}-copy`}}var JG=`font-['Geist_Mono',monospace]`;function YG({icon:e,className:t}){return e===`schedule`?(0,Y.jsx)(m,{className:t,"aria-hidden":!0}):e===`manual`?(0,Y.jsx)(F,{className:t,"aria-hidden":!0}):e===`github`?(0,Y.jsx)(it,{className:t,"aria-hidden":!0}):e===`webhook`?(0,Y.jsx)(Ne,{className:t,"aria-hidden":!0}):e===`email`?(0,Y.jsx)(u,{className:t,"aria-hidden":!0}):(0,Y.jsx)(T,{className:t,"aria-hidden":!0})}function XG({on:e,disabled:t,label:n,onToggle:r}){return(0,Y.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":e,"aria-label":n,disabled:t,onClick:e=>{e.stopPropagation(),r()},className:`flex h-4 w-7 shrink-0 items-center rounded-full p-0.5 disabled:opacity-50 ${e?`justify-end bg-[#ecedee]`:`justify-start bg-[#1a1c21]`}`,children:(0,Y.jsx)(`span`,{className:`block size-3 rounded-full ${e?`bg-[#0c0d0f]`:`bg-[#8b8f98]`}`})})}function ZG({outcome:e}){let t=e===`succeeded`;return(0,Y.jsxs)(`span`,{className:`flex h-6 w-fit shrink-0 items-center gap-[5px] rounded-full px-2 ${t?`bg-[#4cc38a1a] text-[#4cc38a]`:`bg-[#f2645a1a] text-[#f2645a]`}`,children:[t?(0,Y.jsx)(G,{className:`size-3`,"aria-hidden":!0}):(0,Y.jsx)(St,{className:`size-3`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`whitespace-nowrap text-xs font-medium`,children:t?`Succeeded`:`Failed`})]})}function QG({trigger:e,selected:t,lastRun:n,now:r,toggling:i,firing:a,onSelect:o,onToggle:s,onFire:c}){let l=AG(e),u=NG(e,r),d=PG(e),f=FG(n),p=e.last_fired_at??n?.created_at,m=[p?Cs(p,r.getTime()):void 0,e.last_run_id?Ss(e.last_run_id):void 0].filter(Boolean).join(` · `),h=CG(e);return(0,Y.jsxs)(`div`,{role:`row`,"aria-selected":t,"data-trigger-id":e.id,onClick:o,className:`flex h-14 w-full shrink-0 cursor-pointer items-center gap-2.5 border-b border-l-2 border-b-[#ffffff12] py-0 pl-3.5 pr-4 ${t?`border-l-[#ecedee] bg-[#131418]`:`border-l-transparent hover:bg-[#ffffff05]`}`,children:[(0,Y.jsx)(`div`,{className:`flex w-5 shrink-0 justify-center`,children:(0,Y.jsx)(YG,{icon:h,className:`size-4 ${t?`text-[#ecedee]`:`text-[#a7aab2]`}`})}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-0.5`,children:[(0,Y.jsx)(`div`,{className:`min-w-0 truncate ${JG} text-[13px] text-[#ecedee] ${t?`font-medium`:`font-normal`}`,title:e.id,children:e.id}),l.warning?(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1.5 text-xs text-[#a7aab2]`,children:[(0,Y.jsx)(je,{className:`size-3 shrink-0 text-[#f2a65a]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`min-w-0 truncate`,title:l.text,children:l.text})]}):(0,Y.jsx)(`div`,{className:`min-w-0 truncate text-xs text-[#a7aab2]`,title:l.text,children:l.text})]}),(0,Y.jsxs)(`div`,{className:`flex w-[120px] min-w-0 shrink-0 flex-col gap-0.5`,children:[(0,Y.jsx)(`div`,{className:`min-w-0 truncate ${JG} text-xs text-[#ecedee]`,title:e.pipeline,children:e.pipeline}),e.task?(0,Y.jsx)(`div`,{className:`min-w-0 truncate ${JG} text-[11px] text-[#8b8f98]`,title:e.task,children:e.task}):(0,Y.jsx)(`span`,{className:`flex h-[18px] w-fit items-center rounded-sm border border-[#ffffff1a] bg-[#1a1c21] px-1.5 text-[11px] text-[#a7aab2]`,children:`dynamic task`})]}),(0,Y.jsxs)(`div`,{className:`flex w-20 shrink-0 items-center gap-1.5`,children:[u.dot?(0,Y.jsx)(`span`,{className:`block size-1.5 shrink-0 rounded-full bg-[#4cc38a]`}):null,(0,Y.jsx)(`span`,{className:`truncate ${JG} text-xs ${u.muted?`text-[#8b8f98]`:`text-[#ecedee]`}`,children:u.label})]}),(0,Y.jsxs)(`div`,{className:`flex w-[136px] shrink-0 flex-col gap-1`,children:[f?(0,Y.jsx)(ZG,{outcome:f}):null,m?(0,Y.jsx)(`span`,{className:`truncate ${JG} text-[11px] text-[#8b8f98]`,children:m}):(0,Y.jsx)(`span`,{className:`${JG} text-xs text-[#8b8f98]`,children:`never`})]}),(0,Y.jsx)(`div`,{className:`flex w-8 shrink-0`,children:(0,Y.jsx)(XG,{on:e.enabled,disabled:i,label:e.enabled?`Disable ${e.id}`:`Enable ${e.id}`,onToggle:s})}),(0,Y.jsx)(`div`,{className:`flex w-[60px] shrink-0 justify-end`,children:(0,Y.jsxs)(`button`,{type:`button`,disabled:!d.enabled||a,title:d.title,onClick:e=>{e.stopPropagation(),c()},className:`flex h-[26px] items-center gap-1.5 rounded-md px-2 ${d.enabled?`bg-[#1a1c21] text-[#ecedee]`:`cursor-not-allowed text-[#a7aab2]`}`,children:[(0,Y.jsx)(y,{className:`size-3`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`text-xs font-medium`,children:`Fire`})]})})]})}var $G=`font-['Geist_Mono',monospace]`,eK=`text-[11px] font-medium uppercase leading-normal tracking-[0.88px] text-[#8b8f98]`,tK=8;function nK({label:e,children:t}){return(0,Y.jsxs)(`div`,{className:`flex w-full flex-col gap-1.5 border-b border-b-[#ffffff12] px-4 py-2.5`,children:[(0,Y.jsx)(`div`,{className:eK,children:e}),t]})}function rK(){return(0,Y.jsx)(`aside`,{className:`flex w-[420px] min-w-0 shrink-0 items-center justify-center bg-[#131418]`,children:(0,Y.jsx)(`p`,{className:`text-[13px] text-[#8b8f98]`,children:`Select a trigger`})})}function iK({trigger:e,snapshot:t,stageCount:n,now:r,toggling:i,firing:a,onToggle:o,onFire:s,onEdit:u,onDuplicate:d}){let[f,p]=(0,J.useState)({status:`loading`});(0,J.useEffect)(()=>{let t=!1;return p({status:`loading`}),Qi(e.id,e.project_root).then(e=>{t||p({status:`ready`,fires:Array.isArray(e.fires)?e.fires:[]})},()=>{t||p({status:`unavailable`})}),()=>{t=!0}},[e.id,e.project_root,e.last_fired_at]);let m=(0,J.useMemo)(()=>{let e=new Map;for(let n of t.runs)e.set(n.run_id,n);return e},[t.runs]),h=PG(e),g=e.last_run_id?m.get(e.last_run_id):void 0,v=FG(g),b=LG(g),x=RG(g?.total_cost_usd),S=e.last_fired_at??g?.created_at,C=e.kind===`schedule`&&e.task?MG(e,r,4):[],w=GG(e),T=KG(e),E=`sf trigger fire ${e.id}`;async function D(){try{await navigator.clipboard.writeText(E),SD(`Copied`)}catch{SD(`Copy failed`)}}return(0,Y.jsxs)(`aside`,{className:`flex w-[420px] min-h-0 min-w-0 shrink-0 flex-col overflow-hidden bg-[#131418]`,children:[(0,Y.jsxs)(`div`,{className:`flex w-full shrink-0 flex-col gap-1 border-b border-b-[#ffffff12] px-4 py-2.5`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(`div`,{className:`${eK} flex-1`,children:`Trigger`}),(0,Y.jsxs)(`button`,{type:`button`,onClick:u,className:`flex h-[26px] items-center gap-1.5 rounded-md px-2 text-[#a7aab2] hover:bg-[#1a1c21]`,children:[(0,Y.jsx)(c,{className:`size-3`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`text-xs font-medium`,children:`Edit`})]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5 pl-1`,children:[(0,Y.jsx)(`span`,{className:`text-xs text-[#a7aab2]`,children:`Enabled`}),(0,Y.jsx)(XG,{on:e.enabled,disabled:i,label:e.enabled?`Disable trigger`:`Enable trigger`,onToggle:o})]})]}),(0,Y.jsx)(`h2`,{className:`${$G} truncate text-[15px] font-semibold text-[#ecedee]`,children:e.id}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1.5`,children:[(0,Y.jsx)(tt,{className:`size-3 shrink-0 text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`${$G} truncate text-xs text-[#8b8f98]`,children:HG(e)})]})]}),(0,Y.jsxs)(`div`,{className:`flex min-h-0 w-full min-w-0 flex-1 flex-col overflow-y-auto`,children:[(0,Y.jsxs)(`div`,{className:`grid w-full grid-cols-[84px_1fr] items-center gap-x-3 gap-y-2 border-b border-b-[#ffffff12] px-4 py-3`,children:[(0,Y.jsx)(`div`,{className:eK,children:`Kind`}),(0,Y.jsxs)(`div`,{className:`flex h-[22px] w-fit items-center gap-1.5 rounded-md border border-[#ffffff1a] bg-[#1a1c21] px-1.5`,children:[(0,Y.jsx)(YG,{icon:CG(e),className:`size-3 text-[#a7aab2]`}),(0,Y.jsx)(`span`,{className:`${$G} text-xs text-[#ecedee]`,children:e.kind})]}),e.kind===`schedule`&&e.schedule?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{className:eK,children:`Cron`}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,Y.jsx)(`span`,{className:`${$G} whitespace-nowrap text-[13px] text-[#ecedee]`,children:e.schedule.cron}),(0,Y.jsx)(`span`,{className:`truncate text-[13px] text-[#a7aab2]`,children:DG(e.schedule.cron)})]}),(0,Y.jsx)(`div`,{className:eK,children:`Timezone`}),(0,Y.jsx)(`div`,{className:`${$G} text-xs text-[#ecedee]`,children:e.schedule.timezone??`local`})]}):null,e.kind===`event`?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{className:eK,children:`Source`}),(0,Y.jsx)(`div`,{className:`${$G} truncate text-xs text-[#ecedee]`,children:e.event?.source??`—`}),w.map(([e,t])=>(0,Y.jsx)(aK,{label:e,value:t},e)),T?(0,Y.jsx)(aK,{label:`Match`,value:T}):null]}):null]}),e.kind===`manual`?(0,Y.jsx)(`div`,{className:`border-b border-b-[#ffffff12] px-4 py-2.5 text-[13px] text-[#a7aab2]`,children:`Fires only when you run it.`}):null,C.length>0?(0,Y.jsx)(nK,{label:`Next runs`,children:(0,Y.jsx)(`div`,{className:`grid w-full grid-cols-[minmax(0px,1fr)_minmax(0px,1fr)] gap-x-3 gap-y-1`,children:C.map((e,t)=>(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,Y.jsx)(`span`,{className:`${$G} whitespace-nowrap text-xs ${t===0?`text-[#ecedee]`:`text-[#a7aab2]`}`,children:zG(e)}),(0,Y.jsx)(`span`,{className:`${$G} whitespace-nowrap text-[11px] ${t===0?`text-[#a7aab2]`:`text-[#8b8f98]`}`,children:jG(e,r)})]},e.toISOString()))})}):null,(0,Y.jsxs)(`div`,{className:`flex w-full flex-col gap-2 border-b border-b-[#ffffff12] px-4 py-2.5`,children:[(0,Y.jsx)(`div`,{className:eK,children:`Target`}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,Y.jsx)(`span`,{className:`w-[60px] shrink-0 text-xs text-[#8b8f98]`,children:`pipeline`}),(0,Y.jsx)(`span`,{className:`${$G} shrink-0 text-[13px] text-[#ecedee]`,children:e.pipeline}),n!==void 0&&n>0?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`span`,{className:`flex flex-1 gap-[3px]`,children:Array.from({length:n},(e,t)=>(0,Y.jsx)(`span`,{className:`block h-1.5 flex-1 rounded-full bg-[#4cc38a]`},t))}),(0,Y.jsxs)(`span`,{className:`${$G} shrink-0 whitespace-nowrap text-[11px] text-[#8b8f98]`,children:[n,` `,n===1?`stage`:`stages`]})]}):null]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,Y.jsx)(`span`,{className:`w-[60px] shrink-0 text-xs text-[#8b8f98]`,children:`task`}),e.task?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`span`,{className:`${$G} truncate text-[13px] text-[#ecedee]`,children:e.task}),(0,Y.jsx)(oK,{children:`catalog task`})]}):(0,Y.jsx)(oK,{children:`dynamic task`})]})]}),(0,Y.jsxs)(nK,{label:`Last fired`,children:[e.last_run_id?(0,Y.jsxs)(`a`,{href:`#${hc(e.last_run_id)}`,className:`flex h-9 items-center gap-2 rounded-lg border border-[#ffffff12] bg-[#1a1c21] px-2.5 hover:border-[#ffffff26]`,children:[S?(0,Y.jsx)(`span`,{className:`${$G} whitespace-nowrap text-xs text-[#a7aab2]`,children:Cs(S,r.getTime())}):null,(0,Y.jsx)(Te,{className:`size-3 shrink-0 text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`${$G} min-w-0 truncate text-xs text-[#ecedee]`,children:e.last_run_id}),v?(0,Y.jsx)(ZG,{outcome:v}):null,(0,Y.jsx)(`span`,{className:`block flex-1`}),b?(0,Y.jsx)(`span`,{className:`${$G} whitespace-nowrap text-xs text-[#a7aab2]`,children:b}):null,x?(0,Y.jsx)(`span`,{className:`${$G} whitespace-nowrap text-xs text-[#ecedee]`,children:x}):null,(0,Y.jsx)(l,{className:`size-3.5 shrink-0 text-[#8b8f98]`,"aria-hidden":!0})]}):S?(0,Y.jsx)(`span`,{className:`${$G} text-xs text-[#a7aab2]`,children:Cs(S,r.getTime())}):(0,Y.jsx)(`span`,{className:`text-xs text-[#8b8f98]`,children:`Never fired`}),(0,Y.jsx)(`div`,{className:`flex flex-col gap-0.5 pt-0.5`,children:UG(e.kind).map(e=>(0,Y.jsxs)(`div`,{className:`flex items-start gap-1.5`,children:[(0,Y.jsx)(pt,{className:`mt-0.5 size-3 shrink-0 text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`text-xs leading-[1.4] text-[#8b8f98]`,children:e})]},e))})]}),(0,Y.jsxs)(`div`,{className:`flex w-full flex-col gap-1.5 px-4 py-2.5`,children:[(0,Y.jsx)(`div`,{className:eK,children:`Recent fires`}),f.status===`loading`?(0,Y.jsx)(`p`,{className:`text-xs text-[#8b8f98]`,children:`Loading…`}):f.status===`unavailable`?(0,Y.jsx)(`p`,{className:`text-xs text-[#8b8f98]`,children:`Fire history isn't available yet`}):(0,Y.jsx)(`div`,{className:`flex w-full flex-col rounded-lg border border-dashed border-[#ffffff1a]`,children:f.fires.length===0?(0,Y.jsx)(`p`,{className:`px-2.5 py-2 text-xs text-[#8b8f98]`,children:`No fires yet`}):f.fires.slice(0,tK).map((e,t,n)=>{let r=m.get(e.run_id),i=FG(r),a=LG(r),o=new Date(e.fired_at);return(0,Y.jsxs)(`div`,{className:`flex h-8 items-center gap-2.5 px-2.5 ${t<n.length-1?`border-b border-b-[#ffffff0d]`:``}`,children:[(0,Y.jsx)(`span`,{className:`${$G} w-[104px] shrink-0 whitespace-nowrap text-xs text-[#a7aab2]`,children:Number.isFinite(o.getTime())?zG(o):e.fired_at}),(0,Y.jsx)(`a`,{href:`#${hc(e.run_id)}`,className:`${$G} min-w-0 flex-1 truncate text-xs text-[#ecedee] hover:underline`,children:e.run_id}),i?(0,Y.jsx)(ZG,{outcome:i}):null,a?(0,Y.jsx)(`span`,{className:`${$G} w-12 shrink-0 whitespace-nowrap text-right text-xs text-[#a7aab2]`,children:a}):null]},`${e.run_id}-${e.fired_at}`)})})]})]}),(0,Y.jsxs)(`div`,{className:`flex w-full shrink-0 flex-col gap-2 border-t border-t-[#ffffff12] px-4 py-2.5`,children:[(0,Y.jsxs)(`div`,{className:`flex w-full items-center gap-1.5`,children:[(0,Y.jsxs)(`button`,{type:`button`,disabled:!h.enabled||a,title:h.title,onClick:s,className:`flex h-8 flex-1 items-center justify-center gap-2 rounded-lg bg-[#ecedee] px-3 text-[#0c0d0f] disabled:cursor-not-allowed disabled:opacity-50`,children:[(0,Y.jsx)(y,{className:`size-3.5`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`text-[13px] font-medium`,children:a?`Firing…`:`Fire now`}),(0,Y.jsx)(`span`,{className:`${$G} rounded-sm border border-[#0c0d0f2e] px-[5px] text-[11px] text-[#5a5d66]`,children:`F`})]}),(0,Y.jsxs)(`button`,{type:`button`,onClick:d,className:`flex h-8 shrink-0 items-center gap-1.5 rounded-lg border border-[#ffffff1a] bg-[#1a1c21] px-3`,children:[(0,Y.jsx)(R,{className:`size-3.5 text-[#a7aab2]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`text-[13px] font-medium text-[#ecedee]`,children:`Duplicate`})]}),(0,Y.jsxs)(`button`,{type:`button`,disabled:i,onClick:o,className:`flex h-8 shrink-0 items-center gap-1.5 rounded-lg px-3 text-[#a7aab2] hover:bg-[#1a1c21] disabled:opacity-50`,children:[(0,Y.jsx)(_,{className:`size-3.5`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`text-[13px] font-medium`,children:e.enabled?`Disable`:`Enable`})]})]}),(0,Y.jsxs)(`div`,{className:`flex h-8 w-full items-center gap-2 rounded-lg border border-[#ffffff12] bg-[#0c0d0f] px-2.5`,children:[(0,Y.jsx)(`span`,{className:`${$G} text-xs text-[#8b8f98]`,children:`$`}),(0,Y.jsx)(`span`,{className:`${$G} min-w-0 flex-1 truncate text-xs text-[#ecedee]`,children:E}),(0,Y.jsx)(`button`,{type:`button`,"aria-label":`Copy command`,onClick:()=>void D(),className:`flex size-5 shrink-0 items-center justify-center text-[#8b8f98] hover:text-[#ecedee]`,children:(0,Y.jsx)(R,{className:`size-3.5`,"aria-hidden":!0})})]})]})]})}function aK({label:e,value:t}){return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{className:`${eK} truncate`,children:e}),(0,Y.jsx)(`div`,{className:`${$G} truncate text-xs text-[#ecedee]`,title:t,children:t})]})}function oK({children:e}){return(0,Y.jsx)(`span`,{className:`flex h-[18px] shrink-0 items-center whitespace-nowrap rounded-sm border border-[#ffffff1a] bg-[#1a1c21] px-1.5 text-[11px] text-[#a7aab2]`,children:e})}var sK=/^[a-z][a-z0-9]*(-[a-z0-9]+)*$/,cK=/^[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+$/,lK=[`opened`,`merged`,`closed`,`updated`],uK={github:`github.pull_request`,webhook:`webhook`,email:`email.message`},dK=`0 2 * * *`,fK=[`UTC`,`America/New_York`,`America/Los_Angeles`,`Europe/London`,`Asia/Kolkata`];function pK(){return{id:``,enabled:!0,kind:`event`,pipeline:``,taskMode:`catalog`,task:``,cron:dK,timezone:`UTC`,source:`github`,github:{repo:``,secretRef:`GITHUB_TOKEN`,action:`opened`,author:``},webhook:{secretRef:`WEBHOOK_SECRET`,header:`X-Hub-Signature-256`,scheme:`hex`},email:{host:``,port:`993`,user:``,secretRef:`EMAIL_PASSWORD`,subject:``},preserved:null}}function mK(e){return e===`webhook`?`webhook`:e?.startsWith(`email`)?`email`:`github`}function hK(e){return typeof e==`string`?e:typeof e==`number`?String(e):``}function gK(e,t){let n={};for(let[r,i]of Object.entries(e))t.includes(r)||(n[r]=i);return n}var _K={github:[`repo`,`secretRef`],webhook:[`secretRef`,`header`,`scheme`],email:[`host`,`port`,`user`,`secretRef`]},vK={github:[`action`,`author`],webhook:[],email:[`subject`]};function yK(e){let t=pK();if(!e)return t;if(t.id=e.id,t.enabled=e.enabled,t.kind=e.kind,t.pipeline=e.pipeline,t.taskMode=e.task?`catalog`:`dynamic`,t.task=e.task??``,e.schedule&&(t.cron=e.schedule.cron??`0 2 * * *`,t.timezone=e.schedule.timezone??``),e.event){let n=mK(e.event.source),r=e.event.match??{},i=e.event.config??{};t.source=n,n===`github`?t.github={repo:hK(i.repo),secretRef:hK(i.secretRef),action:lK.includes(r.action)?r.action:`opened`,author:hK(r.author)}:n===`webhook`?t.webhook={secretRef:hK(i.secretRef),header:hK(i.header),scheme:i.scheme===`base64`?`base64`:`hex`}:t.email={host:hK(i.host),port:hK(i.port),user:hK(i.user),secretRef:hK(i.secretRef),subject:hK(r.subject)},t.preserved={source:n,match:gK(r,vK[n]),config:gK(i,_K[n])}}return t}function bK(e){let t=e.trim();if(!/^\d+$/.test(t))return null;let n=Number(t);return n>=1&&n<=65535?n:null}function xK(e,t){let n={};if(t===`create`){let t=e.id.trim();t?(t.length>64||!sK.test(t))&&(n.id=`Id must be lowercase kebab-case.`):n.id=`Id is required.`}return e.pipeline||(n.pipeline=`Select a pipeline.`),e.taskMode===`catalog`&&!e.task&&(n.task=`Select a task.`),e.kind===`schedule`&&(e.cron.trim()||(n.cron=`Cron expression is required.`),e.taskMode===`dynamic`&&(n.schedule=`Schedule + Dynamic task cannot auto-fire. Pick a catalog task.`)),e.kind===`event`&&(e.source===`github`?cK.test(e.github.repo.trim())||(n.repo=`Repo must be owner/name.`):e.source===`webhook`?(e.webhook.secretRef.trim()||(n.secretRef=`secretRef is required.`),e.webhook.header.trim()||(n.header=`Header is required.`)):(e.email.host.trim()||(n.host=`Host is required.`),bK(e.email.port)===null&&(n.port=`Port must be 1–65535.`),e.email.user.trim()||(n.user=`User is required.`),e.email.secretRef.trim()||(n.secretRef=`secretRef is required.`))),n}function SK(e){let t=e.source,n=e.preserved?.source===t?e.preserved:null,r={...n?.match??{}},i={...n?.config??{}};return t===`github`?(i.repo=e.github.repo.trim(),e.github.secretRef.trim()&&(i.secretRef=e.github.secretRef.trim()),r.action=e.github.action,e.github.author.trim()&&(r.author=e.github.author.trim())):t===`webhook`?(i.secretRef=e.webhook.secretRef.trim(),i.header=e.webhook.header.trim(),e.webhook.scheme!==`hex`&&(i.scheme=e.webhook.scheme)):(i.host=e.email.host.trim(),i.port=bK(e.email.port)??e.email.port.trim(),i.user=e.email.user.trim(),i.secretRef=e.email.secretRef.trim(),e.email.subject.trim()&&(r.subject=e.email.subject.trim())),{source:uK[t],...Object.keys(r).length>0?{match:r}:{},config:i}}function CK(e){let t=e.timezone.trim();return{cron:e.cron.trim(),...t?{timezone:t}:{}}}function wK(e){let t=e.replace(/\\/g,`/`),n=t.lastIndexOf(`/`);return n>=0?t.slice(0,n):`.`}function TK(e,t){let n=e.find(e=>e.id===t);return n?wK(n.path):`.`}function EK(e,t,n){return{directory:t,id:e.id.trim(),pipeline:e.pipeline,...n?{project_root:n}:{},...e.taskMode===`catalog`?{task:e.task}:{},kind:e.kind,...e.kind===`schedule`?{schedule:CK(e)}:{},...e.kind===`event`?{event:SK(e)}:{},enabled:e.enabled}}function DK(e){return{pipeline:e.pipeline,task:e.taskMode===`catalog`?e.task:null,kind:e.kind,schedule:e.kind===`schedule`?CK(e):null,event:e.kind===`event`?SK(e):null,enabled:e.enabled}}function OK(e,t){if(t){let e=t.replace(/\\/g,`/`),n=e.slice(e.lastIndexOf(`/`)+1);if(n)return`triggers/${n}`}return`triggers/${e.trim()||`…`}.trigger.yaml`}function kK(e){return`sf trigger fire ${e.trim()||`…`}`}function AK(e){return e<10?`0${e}`:String(e)}var jK=[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`];function MK(e,t){if(!/^\d+$/.test(e))return null;let n=Number(e);return n<=t?n:null}function NK(e){let t=e.trim().split(/\s+/);if(t.length!==5)return null;let[n,r,i,a,o]=t,s=MK(n,59),c=MK(r,23),l=i===`*`&&a===`*`;if(n===`*`&&r===`*`&&l&&o===`*`)return`Every minute`;let u=/^\*\/(\d+)$/.exec(n);if(u&&r===`*`&&l&&o===`*`)return`Every ${u[1]} minutes`;if(s!==null&&r===`*`&&l&&o===`*`)return`Every hour at :${AK(s)}`;if(s===null||c===null||!l)return null;let d=`${AK(c)}:${AK(s)}`;if(o===`*`)return`Every day at ${d}`;if(o===`1-5`)return`Weekdays at ${d}`;let f=MK(o,7);return f===null?null:`Every ${jK[f%7]} at ${d}`}function PK(e,t){let n={weekday:`short`,month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`,hourCycle:`h23`},r;try{r=new Intl.DateTimeFormat(`en-US`,t?{...n,timeZone:t}:n)}catch{r=new Intl.DateTimeFormat(`en-US`,n)}let i={};for(let t of r.formatToParts(e))i[t.type]=t.value;return i}function FK(e,t,n){let r=PK(e,n),i=`${r.weekday} ${r.month} ${r.day} · ${r.hour}:${r.minute}`,a=Math.max(0,Math.round((e.getTime()-t.getTime())/6e4)),o;if(a<60)o=`in ${a}m`;else if(a<1440)o=`in ${Math.floor(a/60)}h`;else{let e=Math.floor(a/1440),t=Math.floor(a%1440/60);o=t>0?`in ${e}d ${t}h`:`in ${e}d`}return{date:i,relative:o}}function IK(e){let t=e.trim();return!t||fK.includes(t)?fK:[...fK,t]}var LK=/^[A-Za-z_][A-Za-z0-9_./-]*$/,RK=new Set([`true`,`false`,`null`,`yes`,`no`,`on`,`off`,`~`]);function zK(e){return typeof e==`number`||typeof e==`boolean`?String(e):e==null?`null`:typeof e==`string`&&LK.test(e)&&!RK.has(e.toLowerCase())?e:JSON.stringify(e)}function BK(e,t,n){for(let[r,i]of Object.entries(t))typeof i==`object`&&i&&!Array.isArray(i)?(e.push(`${n}${r}:`),BK(e,i,n+` `)):e.push(`${n}${r}: ${zK(i)}`)}function VK(e){let t=[`id: ${zK(e.id.trim()||`my-trigger`)}`];return t.push(`pipeline: ${zK(e.pipeline||`pipeline-id`)}`),e.task&&t.push(`task: ${zK(e.task)}`),t.push(`kind: ${e.kind}`),t.push(`enabled: ${e.enabled?`true`:`false`}`),e.kind===`schedule`&&e.schedule&&(t.push(`schedule:`),BK(t,e.schedule,` `)),e.kind===`event`&&e.event&&(t.push(`event:`),BK(t,e.event,` `)),t.join(`
238
- `)+`
239
- `}var HK=`[font-family:'Geist_Mono',_monospace]`,UK=`w-fit text-[#8b8f98] font-sans text-[11px] font-medium leading-normal tracking-[0.88px] uppercase`,WK=`w-fit text-[#a7aab2] font-sans text-xs leading-normal`,GK=`flex h-8 items-center bg-[#1a1c21] border rounded-lg px-2.5 gap-2 border-[#ffffff1a] focus-within:border-[#ecedee73] focus-within:shadow-[0px_0px_0px_3px_rgba(236,237,238,0.06)]`,KK=`min-w-0 flex-1 bg-transparent text-[#ecedee] ${HK} text-xs leading-normal outline-none placeholder:text-[#8b8f98]`,qK=`text-[11px] text-[var(--sf-fail)]`,JK=[{kind:`schedule`,title:`Schedule`,hint:`cron + timezone`,icon:m},{kind:`event`,title:`Event`,hint:`PR, webhook, email`,icon:be},{kind:`manual`,title:`Manual`,hint:`UI, CLI, MCP`,icon:h}],YK=[{source:`github`,title:`GitHub pull request`,meta:`polls every 60s`,metaMono:!1,icon:it},{source:`webhook`,title:`Signed webhook`,meta:`POST /api/triggers/:id/webhook`,metaMono:!0,icon:Ne},{source:`email`,title:`Email`,meta:`IMAP IDLE`,metaMono:!1,icon:u}],XK={github:`GitHub pull request`,webhook:`Signed webhook`,email:`Email`},ZK=`Schedule + Dynamic task cannot auto-fire. Pick a catalog task.`;function QK({message:e}){return e?(0,Y.jsx)(`p`,{className:qK,children:e}):null}function $K({label:e,labelExtra:t,icon:n,value:r,onChange:i,placeholder:a,error:o,inputMode:s,ariaLabel:c}){return(0,Y.jsxs)(`label`,{className:`flex flex-col gap-[5px]`,children:[(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(`span`,{className:WK,children:e}),t]}),(0,Y.jsxs)(`span`,{className:GK,children:[n?(0,Y.jsx)(n,{className:`size-3.5 shrink-0 text-[#8b8f98]`,"aria-hidden":!0}):null,(0,Y.jsx)(`input`,{className:KK,value:r,onChange:e=>i(e.target.value),placeholder:a,inputMode:s,"aria-label":c??e,autoComplete:`off`,spellCheck:!1})]}),(0,Y.jsx)(QK,{message:o})]})}function eq({hint:e}){return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`span`,{className:`w-fit text-[#8b8f98] ${HK} text-[11px] leading-normal`,children:`secretRef`}),e?(0,Y.jsx)(`span`,{className:`flex-1 text-right text-[#8b8f98] font-sans text-[11px] leading-normal`,children:e}):null]})}function tq({selected:e,size:t}){let n=t===`md`?`size-3.5`:`size-3`,r=t===`md`?`size-1.5`:`size-[5px]`;return e?(0,Y.jsx)(`span`,{className:`${n} flex shrink-0 items-center justify-center rounded-full bg-[#ecedee]`,children:(0,Y.jsx)(`span`,{className:`${r} block rounded-full bg-[#0c0d0f]`})}):(0,Y.jsx)(`span`,{className:`${n} block shrink-0 rounded-full border border-[#ffffff2e]`})}var nq=[``,`pl-4`,`pl-8`,`pl-12`,`pl-16`];function rq({index:e,line:t}){let n=Math.floor((t.length-t.trimStart().length)/2),r=t.trimStart(),i=r.indexOf(`: `),a=i>=0?r.slice(0,i+2):r,o=i>=0?r.slice(i+2):``,s=o===`true`||o===`false`||a===`kind: `;return(0,Y.jsxs)(`div`,{className:`flex gap-3.5 px-3`,children:[(0,Y.jsx)(`span`,{className:`w-3.5 shrink-0 text-right text-[#3a3d44] ${HK} text-xs leading-[1.33333]`,children:e+1}),(0,Y.jsxs)(`span`,{className:`block whitespace-pre text-[#8b8f98] ${HK} text-xs leading-[1.33333] ${nq[Math.min(n,nq.length-1)]}`,children:[a,o?(0,Y.jsx)(`span`,{className:s?`text-[#b7c7e8]`:`text-[#ecedee]`,children:o}):null]})]})}function iq({open:e,isOpen:t,mode:n=`create`,initial:r=null,existingIds:i=[],onClose:a,onCreated:o}){let s=e??t??!1,c=n===`edit`,[l,f]=(0,J.useState)(()=>yK(r)),[p,h]=(0,J.useState)(null),[g,_]=(0,J.useState)(null),[v,y]=(0,J.useState)(!1),[b,x]=(0,J.useState)(null),[S,C]=(0,J.useState)(!1),[w,T]=(0,J.useState)(!1),E=(0,J.useRef)(null),D=(0,J.useRef)(r);D.current=r;let O=r?`${n}:${r.id}`:n;(0,J.useEffect)(()=>{if(!s)return;f(yK(D.current)),y(!1),x(null),C(!1),T(!1),h(null),_(null);let e=!1;return(async()=>{try{let[t,n]=await Promise.all([Fi(),ki()]);if(e)return;h(t.pipelines),_(n.tasks)}catch{if(e)return;h([]),_([])}})(),()=>{e=!0}},[s,O]),(0,J.useEffect)(()=>{s&&!c&&E.current?.focus()},[s,c]);let k=(0,J.useMemo)(()=>xK(l,n),[l,n]),A=!c&&i.includes(l.id.trim()),j=Object.keys(k).length===0&&!A,M=e=>v?k[e]:void 0,N=(0,J.useMemo)(()=>VK({id:l.id,pipeline:l.pipeline,task:l.taskMode===`catalog`?l.task:void 0,kind:l.kind,enabled:l.enabled,schedule:l.kind===`schedule`?{cron:l.cron.trim(),...l.timezone.trim()?{timezone:l.timezone.trim()}:{}}:void 0,event:l.kind===`event`?SK(l):void 0}),[l]),P=(0,J.useMemo)(()=>N.replace(/\n$/,``).split(`
240
- `),[N]),F=(0,J.useMemo)(()=>{if(l.kind!==`schedule`)return{runs:[],error:null};try{let e=l.timezone.trim();return{runs:yG({cron:l.cron.trim(),...e?{timezone:e}:{}},new Date,3),error:null}}catch{return{runs:[],error:`Invalid cron expression.`}}},[l.kind,l.cron,l.timezone]),I=(0,J.useMemo)(()=>{let e=p??[];return l.pipeline&&!e.some(e=>e.id===l.pipeline)?[{id:l.pipeline,stages:null},...e.map(e=>({id:e.id,stages:e.stages.length}))]:e.map(e=>({id:e.id,stages:e.stages.length}))},[p,l.pipeline]),L=I.find(e=>e.id===l.pipeline)?.stages??null,z=(0,J.useMemo)(()=>{let e=(g??[]).map(e=>e.id);return l.task&&!e.includes(l.task)&&e.unshift(l.task),e},[g,l.task]),V=(0,J.useCallback)(()=>{S||a()},[a,S]),H=(0,J.useCallback)(async()=>{if(y(!0),x(null),!j||S)return;if(C(!0),c){try{let e=await ea(r?.id??l.id,DK(l),r?.project_root);C(!1),o(e),a()}catch(e){C(!1),x(e instanceof Error?e.message:String(e))}return}let e=(p??[]).find(e=>e.id===l.pipeline),t=TK(p??[],l.pipeline),n=await na(EK(l,t,e?.project_root));if(C(!1),n.ok){o(n.trigger),a();return}x(KW(n.status,n.error))},[j,S,c,r,l,p,o,a]);if(Yc([{key:`escape`,scope:`global`,when:()=>s,allowInInput:!0,handler:e=>{e.preventDefault(),V()}},{key:`mod+enter`,scope:`global`,when:()=>s,allowInInput:!0,handler:e=>{e.preventDefault(),H()}}],`global`),!s)return null;let ee=e=>f(t=>({...t,...e})),te=e=>f(t=>({...t,github:{...t.github,...e}})),ne=e=>f(t=>({...t,webhook:{...t.webhook,...e}})),re=e=>f(t=>({...t,email:{...t.email,...e}})),ie=e=>{e.key===`Escape`?(e.preventDefault(),V()):e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),H())},ae=()=>{navigator.clipboard?.writeText(N).then(()=>{T(!0),window.setTimeout(()=>T(!1),1200)},()=>void 0)},oe=l.kind===`schedule`||l.kind===`event`&&(l.source===`github`||l.source===`email`),se=NK(l.cron),ce=IK(l.timezone),le=l.id.trim(),ue=!c&&le!==``&&!k.id;return(0,JP.createPortal)((0,Y.jsx)(`div`,{className:`fixed inset-0 z-[200] flex items-center justify-center bg-[#040506a8] p-4`,role:`presentation`,onClick:V,children:(0,Y.jsxs)(`div`,{className:`flex max-h-[90vh] w-full max-w-[740px] flex-col overflow-y-auto rounded-xl border border-[#ffffff1a] bg-[#131418] shadow-[0px_32px_96px_rgba(0,0,0,0.65),0px_8px_24px_rgba(0,0,0,0.45)]`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`new-trigger-title`,onClick:e=>e.stopPropagation(),onKeyDown:ie,children:[(0,Y.jsxs)(`div`,{className:`flex w-full items-start gap-3 px-5 pb-2.5 pt-3.5`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-1 flex-col gap-[3px]`,children:[(0,Y.jsx)(`h2`,{id:`new-trigger-title`,className:`w-fit text-[#ecedee] font-sans text-lg font-semibold leading-normal tracking-[-0.36px]`,children:c?`Edit trigger`:`New trigger`}),(0,Y.jsxs)(`p`,{className:`text-[#a7aab2] font-sans text-[13px] leading-normal`,children:[`Starts a pipeline on a schedule, on an event, or by hand. Saved as a`,` `,(0,Y.jsx)(`span`,{className:`text-[#ecedee] ${HK} text-xs`,children:`.trigger.yaml`}),` file.`]})]}),(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 pt-0.5`,children:[(0,Y.jsx)(`span`,{className:`rounded-sm border border-[#ffffff1a] bg-[#1a1c21] px-[5px] py-px text-[#8b8f98] ${HK} text-[11px] leading-normal`,children:`esc`}),(0,Y.jsx)(`button`,{type:`button`,className:`flex size-7 items-center justify-center rounded-lg text-[#a7aab2] hover:bg-[#1a1c21]`,onClick:V,"aria-label":`Close`,children:(0,Y.jsx)(St,{className:`size-4`,"aria-hidden":!0})})]})]}),b?(0,Y.jsx)(`div`,{className:`px-5 pb-3`,children:(0,Y.jsx)(`p`,{className:`rounded-lg border border-[#ffffff1a] bg-[#1a1c21] px-2.5 py-2 text-xs text-[var(--sf-fail)]`,role:`alert`,children:b})}):null,(0,Y.jsxs)(`div`,{className:`flex w-full flex-col gap-3 px-5 pb-3`,children:[(0,Y.jsxs)(`div`,{className:`flex w-full items-end gap-4`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-1 flex-col gap-1.5`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Y.jsx)(`label`,{htmlFor:`new-trigger-id`,className:UK,children:`Id`}),c?(0,Y.jsx)(`span`,{className:`text-[#8b8f98] font-sans text-[11px] leading-normal`,children:`read-only`}):A?(0,Y.jsx)(`span`,{className:`text-[var(--sf-fail)] font-sans text-[11px] leading-normal`,children:`id is taken`}):ue?(0,Y.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,Y.jsx)(G,{className:`size-3 text-[#4cc38a]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`text-[#4cc38a] font-sans text-[11px] leading-normal`,children:`id is free`})]}):null]}),(0,Y.jsxs)(`div`,{className:`${GK} gap-0.5`,children:[(0,Y.jsx)(`input`,{id:`new-trigger-id`,ref:E,className:`min-w-0 flex-1 bg-transparent text-[#ecedee] ${HK} text-[13px] leading-normal outline-none placeholder:text-[#8b8f98] read-only:text-[#a7aab2]`,value:l.id,readOnly:c,onChange:e=>ee({id:e.target.value}),placeholder:`kebab-case`,autoComplete:`off`,spellCheck:!1}),(0,Y.jsx)(`span`,{className:`text-[#8b8f98] ${HK} text-xs leading-normal`,children:`kebab-case`})]}),(0,Y.jsx)(QK,{message:M(`id`)})]}),(0,Y.jsxs)(`button`,{type:`button`,role:`switch`,"aria-checked":l.enabled,className:`flex h-8 shrink-0 items-center gap-2.5 rounded-lg border border-[#ffffff12] bg-[#0f1013] px-2.5`,onClick:()=>ee({enabled:!l.enabled}),children:[(0,Y.jsx)(`span`,{className:`text-[#ecedee] font-sans text-[13px] leading-normal`,children:`Enabled`}),(0,Y.jsx)(`span`,{className:`flex h-[18px] w-[30px] items-center rounded-full px-0.5 ${l.enabled?`justify-end bg-[#ecedee]`:`justify-start bg-[#2a2d33]`}`,children:(0,Y.jsx)(`span`,{className:`block size-3.5 rounded-full bg-[#0c0d0f]`})})]})]}),(0,Y.jsxs)(`div`,{className:`flex w-full flex-col gap-2`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Y.jsx)(`span`,{className:UK,children:`When`}),(0,Y.jsxs)(`span`,{className:`w-fit text-[#8b8f98] ${HK} text-[11px] leading-normal`,children:[`kind: `,l.kind]})]}),(0,Y.jsx)(`div`,{className:`grid w-full grid-cols-3 gap-2`,role:`radiogroup`,"aria-label":`When`,children:JK.map(({kind:e,title:t,hint:n,icon:r})=>{let i=l.kind===e;return(0,Y.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":i,className:`flex h-9 items-center gap-2 rounded-[10px] border px-3 text-left ${i?`border-[#ecedee] bg-[#1a1c21] shadow-[0px_0px_0px_3px_rgba(236,237,238,0.06)]`:`border-[#ffffff1a] bg-[#0f1013]`}`,onClick:()=>ee({kind:e}),children:[(0,Y.jsx)(r,{className:`size-[15px] shrink-0 ${i?`text-[#ecedee]`:`text-[#8b8f98]`}`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`w-fit text-[#ecedee] font-sans text-[13px] font-medium leading-normal`,children:t}),(0,Y.jsx)(`span`,{className:`flex-1 truncate font-sans text-[11px] leading-normal ${i?`text-[#a7aab2]`:`text-[#8b8f98]`}`,children:n}),(0,Y.jsx)(tq,{selected:i,size:`md`})]},e)})}),l.kind===`event`?(0,Y.jsx)(`div`,{className:`grid w-full grid-cols-3 gap-2`,role:`radiogroup`,"aria-label":`Event source`,children:YK.map(({source:e,title:t,meta:n,metaMono:r,icon:i})=>{let a=l.source===e;return(0,Y.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":a,className:`flex flex-col gap-0.5 rounded-lg border px-2.5 py-[7px] text-left ${a?`border-[#ecedee59] bg-[#1a1c21] shadow-[inset_0px_2px_0px_rgb(236,237,238)]`:`border-[#ffffff14] bg-[#0f1013]`}`,onClick:()=>ee({source:e}),children:[(0,Y.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(tq,{selected:a,size:`sm`}),(0,Y.jsx)(i,{className:`size-3.5 shrink-0 ${a?`text-[#ecedee]`:`text-[#8b8f98]`}`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`w-fit font-sans text-[13px] leading-normal ${a?`font-medium text-[#ecedee]`:`text-[#a7aab2]`}`,children:t})]}),(0,Y.jsx)(`span`,{className:`block truncate pl-5 leading-normal ${r?`${HK} text-[10px]`:`font-sans text-[11px]`} ${a?`text-[#a7aab2]`:`text-[#8b8f98]`}`,children:n})]},e)})}):null]})]}),l.kind===`event`?(0,Y.jsxs)(`div`,{className:`flex w-full flex-col gap-2 px-5 pb-3`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,Y.jsx)(`span`,{className:`${UK} flex-1`,children:XK[l.source]}),l.source===`github`?(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(pt,{className:`size-3 shrink-0 text-[#a7aab2]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`text-[#a7aab2] font-sans text-[11px] leading-normal`,children:`First poll only records existing PRs. Nothing old is started.`})]}):null]}),(0,Y.jsxs)(`div`,{className:`flex w-full flex-col gap-2 rounded-[10px] border border-[#ffffff12] bg-[#0f1013] p-2.5`,children:[l.source===`github`?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`div`,{className:`grid w-full grid-cols-2 gap-3`,children:[(0,Y.jsx)($K,{label:`Repo`,icon:it,value:l.github.repo,onChange:e=>te({repo:e}),placeholder:`owner/name`,error:M(`repo`)}),(0,Y.jsx)($K,{label:`Token`,ariaLabel:`Token secretRef`,labelExtra:(0,Y.jsx)(eq,{hint:`env var name, not the token`}),icon:Me,value:l.github.secretRef,onChange:e=>te({secretRef:e}),placeholder:`GITHUB_TOKEN`})]}),(0,Y.jsxs)(`div`,{className:`flex w-full items-center gap-3`,children:[(0,Y.jsx)(`span`,{className:`${WK} w-[52px] shrink-0`,children:`Action`}),(0,Y.jsx)(`div`,{className:`flex items-center gap-1.5`,role:`radiogroup`,"aria-label":`Action`,children:lK.map(e=>{let t=l.github.action===e;return(0,Y.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":t,className:`flex h-[26px] items-center gap-[5px] rounded-full px-2.5 ${HK} text-xs leading-normal ${t?`bg-[#ecedee] font-medium text-[#0c0d0f]`:`border border-[#ffffff1a] text-[#a7aab2]`}`,onClick:()=>te({action:e}),children:[t?(0,Y.jsx)(G,{className:`size-3`,"aria-hidden":!0}):null,e]},e)})}),(0,Y.jsx)(`span`,{className:`block h-[18px] w-px bg-[#ffffff12]`}),(0,Y.jsx)(`span`,{className:`${WK} shrink-0`,children:`Author`}),(0,Y.jsx)(`span`,{className:`flex h-7 flex-1 items-center gap-1.5 rounded-lg border border-[#ffffff1a] bg-[#1a1c21] px-2.5`,children:(0,Y.jsx)(`input`,{className:`min-w-0 flex-1 bg-transparent text-[#ecedee] font-sans text-xs leading-normal outline-none placeholder:text-[#8b8f98]`,value:l.github.author,onChange:e=>te({author:e.target.value}),placeholder:`any author (optional)`,"aria-label":`Author`,autoComplete:`off`,spellCheck:!1})})]})]}):null,l.source===`webhook`?(0,Y.jsxs)(`div`,{className:`grid w-full grid-cols-[minmax(0px,_1fr)_minmax(0px,_1fr)_120px] gap-3`,children:[(0,Y.jsx)($K,{label:`Secret`,ariaLabel:`Webhook secretRef`,labelExtra:(0,Y.jsx)(eq,{}),icon:Me,value:l.webhook.secretRef,onChange:e=>ne({secretRef:e}),placeholder:`WEBHOOK_SECRET`,error:M(`secretRef`)}),(0,Y.jsx)($K,{label:`Header`,value:l.webhook.header,onChange:e=>ne({header:e}),placeholder:`X-Hub-Signature-256`,error:M(`header`)}),(0,Y.jsxs)(`label`,{className:`flex flex-col gap-[5px]`,children:[(0,Y.jsx)(`span`,{className:WK,children:`Scheme`}),(0,Y.jsxs)(`span`,{className:GK,children:[(0,Y.jsxs)(`select`,{className:`${KK} appearance-none`,value:l.webhook.scheme,onChange:e=>ne({scheme:e.target.value===`base64`?`base64`:`hex`}),"aria-label":`Scheme`,children:[(0,Y.jsx)(`option`,{value:`hex`,children:`hex`}),(0,Y.jsx)(`option`,{value:`base64`,children:`base64`})]}),(0,Y.jsx)(B,{className:`size-3.5 shrink-0 text-[#8b8f98]`,"aria-hidden":!0})]})]})]}):null,l.source===`email`?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`div`,{className:`grid w-full grid-cols-[minmax(0px,_1fr)_96px] gap-3`,children:[(0,Y.jsx)($K,{label:`Host`,icon:u,value:l.email.host,onChange:e=>re({host:e}),placeholder:`imap.example.com`,error:M(`host`)}),(0,Y.jsx)($K,{label:`Port`,value:l.email.port,onChange:e=>re({port:e}),placeholder:`993`,inputMode:`numeric`,error:M(`port`)})]}),(0,Y.jsxs)(`div`,{className:`grid w-full grid-cols-2 gap-3`,children:[(0,Y.jsx)($K,{label:`User`,value:l.email.user,onChange:e=>re({user:e}),placeholder:`agent@example.com`,error:M(`user`)}),(0,Y.jsx)($K,{label:`Password`,ariaLabel:`Email secretRef`,labelExtra:(0,Y.jsx)(eq,{hint:`env var name, not the password`}),icon:Me,value:l.email.secretRef,onChange:e=>re({secretRef:e}),placeholder:`EMAIL_PASSWORD`,error:M(`secretRef`)})]}),(0,Y.jsx)($K,{label:`Subject`,labelExtra:(0,Y.jsx)(`span`,{className:`text-[#8b8f98] font-sans text-[11px] leading-normal`,children:`exact match, optional`}),value:l.email.subject,onChange:e=>re({subject:e}),placeholder:`any subject`})]}):null]})]}):null,l.kind===`schedule`?(0,Y.jsx)(`div`,{className:`flex w-full flex-col px-5 pb-3`,children:(0,Y.jsxs)(`div`,{className:`flex w-full flex-col gap-2.5 rounded-xl border border-dashed border-[#ffffff24] bg-[#131418] p-3 shadow-[0px_16px_48px_rgba(0,0,0,0.5)]`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(m,{className:`size-3.5 text-[#ecedee]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`flex-1 text-[#ecedee] font-sans text-[13px] font-medium leading-normal`,children:`Schedule`}),(0,Y.jsx)(`span`,{className:`text-[#8b8f98] ${HK} text-[11px] leading-normal`,children:`kind: schedule`})]}),(0,Y.jsxs)(`label`,{className:`flex flex-col gap-[5px]`,children:[(0,Y.jsx)(`span`,{className:WK,children:`Cron`}),(0,Y.jsx)(`span`,{className:GK,children:(0,Y.jsx)(`input`,{className:`min-w-0 flex-1 bg-transparent text-[#ecedee] ${HK} text-[13px] leading-normal tracking-[1.56px] outline-none placeholder:text-[#8b8f98]`,value:l.cron,onChange:e=>ee({cron:e.target.value}),placeholder:`0 2 * * *`,"aria-label":`Cron`,autoComplete:`off`,spellCheck:!1})}),(0,Y.jsx)(`span`,{className:`grid grid-cols-5 gap-1 px-0.5`,children:[`min`,`hour`,`day`,`month`,`wkday`].map(e=>(0,Y.jsx)(`span`,{className:`w-fit text-[#8b8f98] ${HK} text-[10px] leading-normal`,children:e},e))}),(0,Y.jsx)(`span`,{className:`w-fit text-[#ecedee] font-sans text-[13px] leading-normal`,children:se??(l.cron.trim()||`No cron set`)}),(0,Y.jsx)(QK,{message:M(`cron`)})]}),(0,Y.jsxs)(`label`,{className:`flex flex-col gap-[5px]`,children:[(0,Y.jsx)(`span`,{className:WK,children:`Timezone`}),(0,Y.jsxs)(`span`,{className:GK,children:[(0,Y.jsx)(Re,{className:`size-[13px] shrink-0 text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsxs)(`select`,{className:`${KK} appearance-none`,value:l.timezone,onChange:e=>ee({timezone:e.target.value}),"aria-label":`Timezone`,children:[l.timezone===``?(0,Y.jsx)(`option`,{value:``,children:`host default`}):null,ce.map(e=>(0,Y.jsx)(`option`,{value:e,children:e},e))]}),(0,Y.jsx)(B,{className:`size-[13px] shrink-0 text-[#8b8f98]`,"aria-hidden":!0})]})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1 border-t border-t-[#ffffff0f] pt-2`,children:[(0,Y.jsx)(`span`,{className:UK,children:`Next 3 runs`}),F.error?(0,Y.jsx)(`span`,{className:`text-[#a7aab2] font-sans text-xs leading-normal`,children:F.error}):F.runs.length===0?(0,Y.jsx)(`span`,{className:`text-[#8b8f98] font-sans text-xs leading-normal`,children:`No upcoming runs.`}):F.runs.map((e,t)=>{let n=FK(e,new Date,l.timezone.trim());return(0,Y.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Y.jsx)(`span`,{className:`w-fit ${HK} text-xs leading-normal ${t===0?`text-[#ecedee]`:`text-[#a7aab2]`}`,children:n.date}),(0,Y.jsx)(`span`,{className:`w-fit text-[#8b8f98] font-sans text-[11px] leading-normal`,children:n.relative})]},e.toISOString())})]}),l.taskMode===`dynamic`?(0,Y.jsxs)(`div`,{className:`flex items-start gap-2 rounded-lg border border-[#ffffff1a] bg-[#1a1c21] px-2.5 py-2`,children:[(0,Y.jsx)(d,{className:`mt-px size-3.5 shrink-0 text-[#a7aab2]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`text-[#a7aab2] font-sans text-xs leading-[1.4]`,children:ZK})]}):null]})}):null,l.kind===`manual`?(0,Y.jsx)(`div`,{className:`px-5 pb-3`,children:(0,Y.jsx)(`p`,{className:`rounded-[10px] border border-[#ffffff12] bg-[#0f1013] px-3 py-2.5 text-[#a7aab2] font-sans text-xs leading-normal`,children:`Nothing runs until you fire it from the UI, CLI, or MCP.`})}):null,(0,Y.jsxs)(`div`,{className:`flex w-full flex-col gap-2 px-5 pb-3`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Y.jsx)(`span`,{className:UK,children:`Then run`}),(0,Y.jsx)(`span`,{className:`w-fit text-[#8b8f98] ${HK} text-[11px] leading-normal`,children:l.taskMode===`dynamic`?`pipeline · task (omitted)`:`pipeline · task`})]}),(0,Y.jsxs)(`div`,{className:`grid w-full grid-cols-2 gap-3`,children:[(0,Y.jsxs)(`label`,{className:`flex h-9 items-center gap-2.5 rounded-lg border border-[#ffffff1a] bg-[#1a1c21] px-2.5 focus-within:border-[#ecedee73]`,children:[(0,Y.jsx)(he,{className:`size-3.5 shrink-0 text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsxs)(`select`,{className:`min-w-0 flex-1 appearance-none bg-transparent text-[#ecedee] ${HK} text-[13px] leading-normal outline-none`,value:l.pipeline,onChange:e=>ee({pipeline:e.target.value}),disabled:p===null,"aria-label":`Pipeline`,children:[(0,Y.jsx)(`option`,{value:``,children:p===null?`Loading pipelines…`:`Select a pipeline`}),I.map(e=>(0,Y.jsx)(`option`,{value:e.id,children:e.id},e.id))]}),L===null?null:(0,Y.jsxs)(`span`,{className:`w-fit shrink-0 text-[#8b8f98] font-sans text-[11px] leading-normal`,children:[L,` `,L===1?`stage`:`stages`]}),(0,Y.jsx)(B,{className:`size-3.5 shrink-0 text-[#8b8f98]`,"aria-hidden":!0})]}),(0,Y.jsx)(`div`,{className:`flex h-9 items-center gap-[3px] rounded-lg border border-[#ffffff1a] bg-[#0f1013] p-[3px]`,role:`radiogroup`,"aria-label":`Task mode`,children:[`catalog`,`dynamic`].map(e=>{let t=l.taskMode===e;return(0,Y.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":t,className:`flex h-full flex-1 items-center justify-center gap-1.5 rounded-md font-sans text-[13px] leading-normal ${t?`border border-[#ffffff1f] bg-[#1a1c21] font-medium text-[#ecedee]`:`text-[#a7aab2]`}`,onClick:()=>ee({taskMode:e}),children:[e===`dynamic`&&t?(0,Y.jsx)(ot,{className:`size-[13px]`,"aria-hidden":!0}):null,e===`catalog`?`Catalog task`:`Dynamic task`]},e)})})]}),(0,Y.jsx)(QK,{message:M(`pipeline`)}),l.taskMode===`catalog`?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`label`,{className:`flex h-9 items-center gap-2.5 rounded-lg border border-[#ffffff1a] bg-[#1a1c21] px-2.5 focus-within:border-[#ecedee73]`,children:[(0,Y.jsx)(tt,{className:`size-3.5 shrink-0 text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsxs)(`select`,{className:`min-w-0 flex-1 appearance-none bg-transparent text-[#ecedee] ${HK} text-[13px] leading-normal outline-none`,value:l.task,onChange:e=>ee({task:e.target.value}),disabled:g===null,"aria-label":`Task`,children:[(0,Y.jsx)(`option`,{value:``,children:g===null?`Loading tasks…`:`Select a task`}),z.map(e=>(0,Y.jsx)(`option`,{value:e,children:e},e))]}),(0,Y.jsx)(B,{className:`size-3.5 shrink-0 text-[#8b8f98]`,"aria-hidden":!0})]}),(0,Y.jsx)(QK,{message:M(`task`)})]}):(0,Y.jsxs)(`div`,{className:`flex w-full gap-3`,children:[(0,Y.jsxs)(`div`,{className:`flex w-[236px] shrink-0 flex-col justify-center gap-1`,children:[(0,Y.jsx)(`span`,{className:`text-[#a7aab2] font-sans text-xs leading-[1.4]`,children:`Each event becomes the task. Title, number, url, author and repo are passed in when the source provides them.`}),l.kind===`event`&&l.source===`github`?(0,Y.jsx)(`span`,{className:`w-fit text-[#8b8f98] font-sans text-[11px] leading-normal`,children:`Preview from sample PR #482 →`}):null]}),l.kind===`schedule`?(0,Y.jsxs)(`div`,{className:`flex flex-1 items-start gap-2 rounded-lg border border-[#ffffff1a] bg-[#1a1c21] px-2.5 py-2`,children:[(0,Y.jsx)(d,{className:`mt-px size-3.5 shrink-0 text-[#a7aab2]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`text-[#a7aab2] font-sans text-xs leading-[1.4]`,children:ZK})]}):l.kind===`event`&&l.source===`github`?(0,Y.jsxs)(`div`,{className:`flex flex-1 flex-col gap-1 rounded-[10px] border border-dashed border-[#ffffff1f] bg-[#0f1013] px-3 py-2`,children:[(0,Y.jsxs)(`div`,{className:`flex items-baseline gap-2`,children:[(0,Y.jsx)(`span`,{className:`w-[52px] shrink-0 text-[#8b8f98] ${HK} text-[11px] leading-normal`,children:`goal`}),(0,Y.jsx)(`span`,{className:`w-fit text-[#ecedee] font-sans text-[13px] font-medium leading-normal`,children:`Review PR #482: Add trigger history table`})]}),(0,Y.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,Y.jsx)(`span`,{className:`w-[52px] shrink-0 text-[#8b8f98] ${HK} text-[11px] leading-[1.45455]`,children:`context`}),(0,Y.jsxs)(`div`,{className:`flex flex-1 flex-col`,children:[(0,Y.jsx)(`span`,{className:`w-fit text-[#a7aab2] ${HK} text-[11px] leading-[1.45455]`,children:`number: 482 · author: tejasghutukade · action: opened`}),(0,Y.jsx)(`span`,{className:`w-fit text-[#a7aab2] ${HK} text-[11px] leading-[1.45455]`,children:`url: github.com/tejasghutukade/software-factory/pull/482`})]})]})]}):null]})]}),(0,Y.jsxs)(`div`,{className:`flex w-full gap-3 px-5 pb-3`,children:[(0,Y.jsxs)(`div`,{className:`flex w-[236px] shrink-0 flex-col gap-2 rounded-[10px] border border-[#ffffff12] bg-[#0f1013] px-3 py-2.5`,children:[(0,Y.jsx)(`span`,{className:UK,children:j?`Ready`:`Not ready`}),l.pipeline?(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(G,{className:`size-3.5 shrink-0 text-[#4cc38a]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`w-fit text-[#ecedee] font-sans text-xs leading-normal`,children:`Pipeline valid`}),(0,Y.jsx)(`span`,{className:`w-fit text-[#4cc38a] ${HK} text-[11px] leading-normal`,children:`(strict)`})]}):null,(0,Y.jsx)(`div`,{className:`block h-px w-full bg-[#ffffff0f]`}),l.kind===`event`&&l.source===`github`?(0,Y.jsxs)(`div`,{className:`flex items-start gap-1.5`,children:[(0,Y.jsx)(Me,{className:`mt-px size-3.5 shrink-0 text-[#a7aab2]`,"aria-hidden":!0}),(0,Y.jsxs)(`span`,{className:`text-[#a7aab2] font-sans text-xs leading-[1.33333]`,children:[(0,Y.jsx)(`span`,{className:`text-[#ecedee] ${HK} text-[11px]`,children:l.github.secretRef.trim()||`GITHUB_TOKEN`}),` `,`— name only, checked on the host`]})]}):null,(0,Y.jsxs)(`div`,{className:`flex items-start gap-1.5`,children:[(0,Y.jsx)(pt,{className:`mt-px size-3.5 shrink-0 text-[#a7aab2]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`text-[#a7aab2] font-sans text-xs leading-[1.33333]`,children:`Runs queue when all agent slots are busy`})]}),oe?(0,Y.jsxs)(`div`,{className:`flex items-start gap-1.5`,children:[(0,Y.jsx)(pt,{className:`mt-px size-3.5 shrink-0 text-[#a7aab2]`,"aria-hidden":!0}),(0,Y.jsxs)(`span`,{className:`text-[#a7aab2] font-sans text-xs leading-[1.33333]`,children:[`Needs the `,(0,Y.jsx)(`span`,{className:`text-[#ecedee] ${HK} text-[11px]`,children:`sf ui`}),` host running to poll`]})]}):null]}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col overflow-clip rounded-[10px] border border-[#ffffff12] bg-[#0c0d0f]`,children:[(0,Y.jsxs)(`div`,{className:`flex h-8 w-full items-center gap-2 border-b border-b-[#ffffff0f] px-3`,children:[(0,Y.jsx)(`span`,{className:`w-fit text-[#ecedee] font-sans text-xs font-medium leading-normal`,children:`YAML preview`}),(0,Y.jsx)(tt,{className:`ml-1.5 size-3 shrink-0 text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-[#8b8f98] ${HK} text-[11px] leading-normal`,children:OK(l.id,r?.path)}),(0,Y.jsxs)(`button`,{type:`button`,className:`flex h-[22px] items-center gap-[5px] rounded-md px-1.5 text-[#8b8f98] hover:bg-[#1a1c21]`,onClick:ae,"aria-label":`Copy YAML`,children:[(0,Y.jsx)(R,{className:`size-3`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`font-sans text-[11px] leading-normal`,children:w?`Copied`:`Copy`})]})]}),(0,Y.jsx)(`div`,{className:`flex w-full flex-col overflow-x-auto py-1.5`,"aria-label":`YAML preview`,children:P.map((e,t)=>(0,Y.jsx)(rq,{index:t,line:e},t))})]})]}),(0,Y.jsxs)(`div`,{className:`sticky bottom-0 mt-auto flex w-full items-center gap-2 border-t border-t-[#ffffff12] bg-[#101114] px-5 py-3`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-1.5`,children:[(0,Y.jsx)(ft,{className:`size-3 shrink-0 text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`truncate text-[#8b8f98] ${HK} text-[11px] leading-normal`,children:kK(c?r?.id??l.id:l.id)})]}),(0,Y.jsxs)(`button`,{type:`button`,className:`flex h-8 items-center gap-2 rounded-lg px-3 hover:bg-[#1a1c21]`,onClick:V,children:[(0,Y.jsx)(`span`,{className:`text-[#a7aab2] font-sans text-[13px] font-medium leading-normal`,children:`Cancel`}),(0,Y.jsx)(`span`,{className:`text-[#8b8f98] ${HK} text-[11px] leading-normal`,children:`esc`})]}),(0,Y.jsxs)(`button`,{type:`button`,className:`flex h-8 items-center gap-2 rounded-lg bg-[#ecedee] px-3 disabled:opacity-50`,onClick:()=>void H(),disabled:S||p===null||g===null,children:[(0,Y.jsx)(`span`,{className:`text-[#0c0d0f] font-sans text-[13px] font-medium leading-normal`,children:S?c?`Saving…`:`Creating…`:c?`Save`:`Create trigger`}),c?null:(0,Y.jsx)(`span`,{className:`text-[#5a5e66] ${HK} text-[11px] leading-normal`,children:`⌘↵`})]})]})]})}),document.body)}var aq=`font-['Geist_Mono',monospace]`,oq=`text-[11px] font-medium uppercase tracking-[0.88px] text-[#8b8f98]`,sq=3e4;function cq({kind:e,className:t}){return e===`schedule`?(0,Y.jsx)(m,{className:t,"aria-hidden":!0}):e===`event`?(0,Y.jsx)(T,{className:t,"aria-hidden":!0}):(0,Y.jsx)(F,{className:t,"aria-hidden":!0})}function lq({children:e}){return(0,Y.jsx)(`span`,{className:`rounded-sm border border-[#ffffff1a] bg-[#1a1c21] px-[5px] ${aq} text-[11px] text-[#a7aab2]`,children:e})}function uq({active:e,label:t,count:n,icon:r,countClassName:i,onClick:a}){return(0,Y.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":e,onClick:a,className:`flex h-7 items-center gap-1.5 rounded-md px-2.5 ${e?`border border-[#ffffff1a] bg-[#1a1c21]`:`border border-transparent hover:bg-[#ffffff08]`}`,children:[r,(0,Y.jsx)(`span`,{className:`whitespace-nowrap text-[13px] ${e?`font-medium text-[#ecedee]`:`text-[#a7aab2]`}`,children:t}),(0,Y.jsx)(`span`,{className:`${aq} text-xs ${e?`text-[#a7aab2]`:i??`text-[#8b8f98]`}`,children:n})]})}function dq(e){return`${e.project_root??``}\0${e.id}`}function fq({triggerId:e,projectRoot:t}){let{snapshot:n}=Jo(),[r,i]=(0,J.useState)([]),[a,o]=(0,J.useState)(null),[s,c]=(0,J.useState)(!0),[l,u]=(0,J.useState)(`all`),[d,f]=(0,J.useState)(``),[p,m]=(0,J.useState)(null),[h,g]=(0,J.useState)(null),[v,y]=(0,J.useState)(new Map),[b,x]=(0,J.useState)(null),[S,C]=(0,J.useState)(null),[w,T]=(0,J.useState)(()=>new Date),E=(0,J.useRef)(null),D=(0,J.useCallback)(async()=>{try{let e=await Ii();i(e.triggers),o(null)}catch(e){o(e instanceof Error?e.message:String(e))}finally{c(!1)}},[]);(0,J.useEffect)(()=>{D()},[D]),(0,J.useEffect)(()=>{let e=!1;return Fi().then(t=>{e||y(new Map(t.pipelines.map(e=>[e.id,e.stages.length])))},()=>{}),()=>{e=!0}},[]),(0,J.useEffect)(()=>{let e=window.setInterval(()=>T(new Date),sq);return()=>window.clearInterval(e)},[]),(0,J.useEffect)(()=>{if(!e)return;let n=r.find(n=>n.id===e&&(t===void 0||n.project_root===t));n&&m(dq(n))},[e,t,r]);let O=(0,J.useMemo)(()=>ZW(XW(r,l).filter(e=>QW(e,d))),[r,l,d]),k=(0,J.useMemo)(()=>O.flatMap(e=>e.items),[O]);(0,J.useEffect)(()=>{if(!s){if(k.length===0){m(null);return}(!p||!k.some(e=>dq(e)===p))&&m(dq(k[0]))}},[k,p,s]);let A=(0,J.useMemo)(()=>{let e=new Map;for(let t of n.runs)e.set(t.run_id,t);return e},[n.runs]),j=k.find(e=>dq(e)===p)??null,M=j?k.indexOf(j):-1,N=VG(r),P=!s&&!a;function F(e){m(dq(e)),Z(Sc(e.id,e.project_root))}async function L(e){let t=h?.mode===`edit`;g(null),await D(),SD(`${t?`Trigger updated`:`Trigger created`} · ${e.id}`),F(e)}async function R(e){if(!b){x(dq(e));try{let t=await $i(e.id,{enabled:!e.enabled},e.project_root);i(e=>e.map(e=>dq(e)===dq(t)?t:e))}catch(e){SD(e instanceof Error?e.message:String(e))}finally{x(null)}}}async function z(e){if(!(S||!PG(e).enabled)){C(dq(e));try{let t=await ta(e.id,e.project_root);SD(t.queued?`Trigger queued · ${e.id}`:`Trigger fired · ${e.id} · ${t.runId}`),await D()}catch(e){SD(e instanceof Error?e.message:String(e))}finally{C(null)}}}let B=(0,J.useMemo)(()=>({all:r.length,schedule:r.filter(e=>e.enabled&&e.kind===`schedule`).length,event:r.filter(e=>e.enabled&&e.kind===`event`).length,manual:r.filter(e=>e.enabled&&e.kind===`manual`).length,disabled:r.filter(e=>!e.enabled).length,needs_attention:r.filter(e=>$W(e)).length}),[r]);Yc([{key:`n`,scope:`triggers`,handler:e=>{e.preventDefault(),g({mode:`create`,initial:null})}},{key:`/`,scope:`triggers`,handler:e=>{e.preventDefault(),E.current?.focus()}},{key:`j`,scope:`triggers`,handler:()=>{if(k.length===0)return;let e=Math.min(M<0?0:M+1,k.length-1);F(k[e])}},{key:`k`,scope:`triggers`,handler:()=>{if(k.length===0)return;let e=Math.max(M<=0?0:M-1,0);F(k[e])}},{key:`f`,scope:`triggers`,handler:e=>{!j||!PG(j).enabled||(e.preventDefault(),z(j))}},{key:`e`,scope:`triggers`,handler:e=>{j&&(e.preventDefault(),R(j))}}],`triggers`);let V=!s&&r.length===0&&!a,H=!s&&r.length>0&&k.length===0,ee=[{id:`schedule`,kind:`schedule`,count:B.schedule},{id:`event`,kind:`event`,count:B.event},{id:`manual`,kind:`manual`,count:B.manual}];return(0,Y.jsxs)(`div`,{className:`flex h-full min-h-0 min-w-0 flex-1 flex-col bg-[#0c0d0f]`,children:[(0,Y.jsx)($c,{title:`Triggers`,titleAddon:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`span`,{className:`${aq} text-[13px] text-[#8b8f98]`,children:r.length}),P?(0,Y.jsxs)(`span`,{className:`flex h-6 shrink-0 items-center gap-1.5 rounded-full border border-[#ffffff12] bg-[#131418] px-2.5`,children:[(0,Y.jsx)(`span`,{className:`block size-1.5 rounded-full bg-[#4cc38a] shadow-[0px_0px_6px_rgba(76,195,138,0.6)]`}),(0,Y.jsx)(`span`,{className:`whitespace-nowrap text-xs text-[#a7aab2]`,children:`Scheduler running · ticks every 30s`})]}):null,(0,Y.jsxs)(`span`,{className:`flex shrink-0 items-center gap-[5px]`,children:[(0,Y.jsx)(I,{className:`size-3 text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`${aq} whitespace-nowrap text-xs text-[#8b8f98]`,children:N})]})]}),actions:(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>g({mode:`create`,initial:null}),className:`flex h-8 shrink-0 items-center gap-2 rounded-lg bg-[#ecedee] px-3 text-[#0c0d0f]`,children:[(0,Y.jsx)(se,{className:`size-3.5`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`whitespace-nowrap text-[13px] font-medium`,children:`New trigger`}),(0,Y.jsx)(`span`,{className:`rounded-sm border border-[#0c0d0f2e] px-[5px] ${aq} text-[11px] text-[#5a5d66]`,children:`N`})]}),children:(0,Y.jsxs)(`label`,{className:`flex h-8 w-[260px] items-center gap-2 rounded-lg border border-[#ffffff1a] bg-[#1a1c21] px-2.5`,children:[(0,Y.jsx)(Oe,{className:`size-3.5 shrink-0 text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsx)(`input`,{ref:E,type:`search`,value:d,onChange:e=>f(e.target.value),onKeyDown:e=>{e.key===`Escape`&&e.currentTarget.blur()},placeholder:`Search by id, pipeline or source`,className:`min-w-0 flex-1 border-none bg-transparent text-[13px] text-[#ecedee] outline-none placeholder:text-[#8b8f98]`}),(0,Y.jsx)(`span`,{className:`rounded-sm border border-[#ffffff1a] bg-[#131418] px-[5px] ${aq} text-[11px] text-[#8b8f98]`,children:`/`})]})}),(0,Y.jsxs)(`div`,{className:`flex h-12 w-full shrink-0 items-center justify-between border-b border-b-[#ffffff12] px-5`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-0.5`,role:`tablist`,"aria-label":`Trigger filters`,children:[(0,Y.jsx)(uq,{active:l===`all`,label:`All`,count:B.all,onClick:()=>u(`all`)}),ee.map(e=>(0,Y.jsx)(uq,{active:l===e.id,label:bG[e.kind],count:e.count,icon:(0,Y.jsx)(cq,{kind:e.kind,className:`size-[13px] ${l===e.id?`text-[#ecedee]`:`text-[#a7aab2]`}`}),onClick:()=>u(e.id)},e.id)),(0,Y.jsx)(`span`,{className:`mx-1.5 block h-4 w-px bg-[#ffffff12]`}),(0,Y.jsx)(uq,{active:l===`disabled`,label:`Disabled`,count:B.disabled,icon:(0,Y.jsx)(_,{className:`size-[13px] ${l===`disabled`?`text-[#ecedee]`:`text-[#8b8f98]`}`,"aria-hidden":!0}),onClick:()=>u(`disabled`)}),(0,Y.jsx)(uq,{active:l===`needs_attention`,label:`Needs attention`,count:B.needs_attention,countClassName:B.needs_attention>0?`text-[#ecedee]`:void 0,icon:(0,Y.jsx)(je,{className:`size-[13px] ${l===`needs_attention`||B.needs_attention>0?`text-[#ecedee]`:`text-[#8b8f98]`}`,"aria-hidden":!0}),onClick:()=>u(`needs_attention`)})]}),(0,Y.jsxs)(`div`,{className:`flex h-[30px] shrink-0 items-center gap-1.5 rounded-lg px-2.5`,children:[(0,Y.jsx)(pe,{className:`size-[13px] text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`text-[13px] text-[#8b8f98]`,children:`Group:`}),(0,Y.jsx)(`span`,{className:`text-[13px] text-[#ecedee]`,children:`Kind`})]})]}),(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1`,children:[(0,Y.jsxs)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col overflow-y-auto border-r border-r-[#ffffff12]`,children:[a?(0,Y.jsx)(`p`,{className:`px-5 py-3 text-xs text-[#f2645a]`,children:a}):null,s?(0,Y.jsx)(`p`,{className:`px-5 py-3 text-xs text-[#8b8f98]`,children:`Loading triggers…`}):null,V?(0,Y.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center gap-3 px-5 py-12`,children:[(0,Y.jsx)(`p`,{className:`text-[13px] text-[#a7aab2]`,children:`No triggers in this catalog yet.`}),(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>g({mode:`create`,initial:null}),className:`flex h-8 items-center gap-2 rounded-lg bg-[#ecedee] px-3 text-[13px] font-medium text-[#0c0d0f]`,children:[(0,Y.jsx)(se,{className:`size-3.5`,"aria-hidden":!0}),`New trigger`]})]}):null,H?(0,Y.jsx)(`div`,{className:`flex flex-1 flex-col items-center justify-center px-5 py-12`,children:(0,Y.jsx)(`p`,{className:`text-[13px] text-[#a7aab2]`,children:`No triggers match this filter.`})}):null,!s&&k.length>0?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`div`,{className:`flex h-8 w-full shrink-0 items-center gap-2.5 border-b border-b-[#ffffff12] px-4`,children:[(0,Y.jsx)(`span`,{className:`block w-5 shrink-0`}),(0,Y.jsx)(`span`,{className:`${oq} min-w-0 flex-1`,children:`Trigger`}),(0,Y.jsx)(`span`,{className:`${oq} w-[120px] shrink-0`,children:`Target`}),(0,Y.jsx)(`span`,{className:`${oq} w-20 shrink-0`,children:`Next run`}),(0,Y.jsx)(`span`,{className:`${oq} w-[136px] shrink-0`,children:`Last fired`}),(0,Y.jsx)(`span`,{className:`${oq} w-8 shrink-0`,children:`On`}),(0,Y.jsx)(`span`,{className:`block w-[60px] shrink-0`})]}),(0,Y.jsx)(`div`,{role:`grid`,"aria-label":`Triggers`,children:O.map(e=>(0,Y.jsxs)(`div`,{role:`rowgroup`,children:[(0,Y.jsxs)(`div`,{className:`flex h-8 w-full items-center gap-2 border-b border-b-[#ffffff12] px-4`,children:[(0,Y.jsx)(cq,{kind:e.kind,className:`size-[13px] text-[#a7aab2]`}),(0,Y.jsx)(`span`,{className:`text-[13px] font-semibold text-[#ecedee]`,children:bG[e.kind]}),(0,Y.jsx)(`span`,{className:`${aq} text-xs text-[#8b8f98]`,children:e.items.length}),(0,Y.jsx)(`span`,{className:`truncate text-xs text-[#8b8f98]`,children:xG[e.kind]})]}),e.items.map(e=>(0,Y.jsx)(QG,{trigger:e,selected:p===dq(e),lastRun:e.last_run_id?A.get(e.last_run_id):void 0,now:w,toggling:b===dq(e),firing:S===dq(e),onSelect:()=>F(e),onToggle:()=>void R(e),onFire:()=>void z(e)},dq(e)))]},e.kind))}),(0,Y.jsxs)(`div`,{className:`flex items-start gap-2 px-4 py-3`,children:[(0,Y.jsx)(pt,{className:`mt-px size-3.5 shrink-0 text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsx)(`p`,{className:`text-xs leading-[1.5] text-[#8b8f98]`,children:SG})]})]}):null]}),j?(0,Y.jsx)(iK,{trigger:j,snapshot:n,stageCount:v.get(j.pipeline),now:w,toggling:b===j.id,firing:S===j.id,onToggle:()=>void R(j),onFire:()=>void z(j),onEdit:()=>g({mode:`edit`,initial:j}),onDuplicate:()=>g({mode:`create`,initial:qG(j)})}):(0,Y.jsx)(rK,{})]}),(0,Y.jsxs)(`footer`,{className:`flex h-8 w-full shrink-0 items-center gap-4 border-t border-t-[#ffffff12] bg-[#08090a] px-5 text-xs text-[#8b8f98]`,children:[(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(lq,{children:`J`}),(0,Y.jsx)(`span`,{children:`/`}),(0,Y.jsx)(lq,{children:`K`}),(0,Y.jsx)(`span`,{children:`move`})]}),(0,Y.jsx)(`span`,{children:`·`}),(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(lq,{children:`F`}),(0,Y.jsx)(`span`,{children:`fire`})]}),(0,Y.jsx)(`span`,{children:`·`}),(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(lq,{children:`E`}),(0,Y.jsx)(`span`,{children:`toggle`})]}),(0,Y.jsx)(`span`,{children:`·`}),(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(lq,{children:`N`}),(0,Y.jsx)(`span`,{children:`new trigger`})]}),(0,Y.jsx)(`span`,{className:`block flex-1`}),P?(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(`span`,{className:`block size-1.5 rounded-full bg-[#4cc38a]`}),(0,Y.jsxs)(`span`,{className:`${aq} whitespace-nowrap text-[11px]`,children:[r.length,` files in `,N,` · sf ui host running`]})]}):null]}),(0,Y.jsx)(iq,{isOpen:h!==null,mode:h?.mode??`create`,initial:h?.initial??null,existingIds:r.map(e=>e.id),onClose:()=>g(null),onCreated:e=>void L(e)})]})}function pq(e){return e.task.id}function mq(e){let t=[`${e.accountId} / ${e.folder}`];return e.from&&t.push(`from ${e.from}`),e.subjectContains&&t.push(`subject contains “${e.subjectContains}”`),t.join(` · `)}function hq({trigger:e}){let t=`#${Sc(`email:${e.triggerId}`)}`;return(0,Y.jsxs)(`tr`,{children:[(0,Y.jsxs)(`td`,{children:[(0,Y.jsx)(`a`,{href:t,children:pq(e)}),(0,Y.jsx)(`div`,{className:`muted`,style:{fontSize:`var(--font-size-xs)`},children:e.pipeline}),(0,Y.jsx)(`div`,{className:`muted`,style:{fontSize:`var(--font-size-xs)`},children:mq(e)})]}),(0,Y.jsx)(`td`,{className:`mono`,children:`Email`}),(0,Y.jsx)(`td`,{className:e.enabled?void 0:`muted`,children:e.enabled?`Enabled`:`Disabled`}),(0,Y.jsx)(`td`,{className:`muted`,children:`Not tracked here`}),(0,Y.jsx)(`td`,{style:{textAlign:`right`},children:(0,Y.jsx)(`a`,{className:`btn btn--sm`,href:t,children:`Open`})})]})}function gq({trigger:e}){return(0,Y.jsxs)(`dl`,{className:`kv`,children:[(0,Y.jsx)(`dt`,{children:`Pipeline`}),(0,Y.jsx)(`dd`,{children:e.pipeline}),(0,Y.jsx)(`dt`,{children:`Task`}),(0,Y.jsx)(`dd`,{children:e.task.id}),(0,Y.jsx)(`dt`,{children:`Goal`}),(0,Y.jsx)(`dd`,{children:e.task.goal}),(0,Y.jsx)(`dt`,{children:`Kind`}),(0,Y.jsx)(`dd`,{children:`Email`}),(0,Y.jsx)(`dt`,{children:`Inbox`}),(0,Y.jsx)(`dd`,{children:e.accountId}),(0,Y.jsx)(`dt`,{children:`Folder`}),(0,Y.jsx)(`dd`,{children:e.folder}),(0,Y.jsx)(`dt`,{children:`Sender`}),(0,Y.jsx)(`dd`,{children:e.from??`Any sender`}),(0,Y.jsx)(`dt`,{children:`Subject contains`}),(0,Y.jsx)(`dd`,{children:e.subjectContains??`Any subject`}),(0,Y.jsx)(`dt`,{children:`Status`}),(0,Y.jsx)(`dd`,{children:e.enabled?`Enabled`:`Disabled`}),(0,Y.jsx)(`dt`,{children:`Active after`}),(0,Y.jsx)(`dd`,{children:e.activeAfter}),(0,Y.jsx)(`dt`,{children:`Rule ID`}),(0,Y.jsx)(`dd`,{className:`mono`,children:e.triggerId}),(0,Y.jsx)(`dt`,{children:`Version`}),(0,Y.jsx)(`dd`,{children:e.version}),(0,Y.jsx)(`dt`,{children:`Message body in task`}),(0,Y.jsx)(`dd`,{children:e.includeBody?`Included`:`Not included`})]})}function _q({triggerId:e}){let[t,n]=(0,J.useState)(null),[r,i]=(0,J.useState)(null),[a,o]=(0,J.useState)(!0);return(0,J.useEffect)(()=>{let t=!1;return o(!0),n(null),i(null),Yi(e).then(e=>{t||n(e)},e=>{t||i(e instanceof Error?e.message:String(e))}).finally(()=>{t||o(!1)}),()=>{t=!0}},[e]),(0,Y.jsxs)(`div`,{className:`main__inner`,children:[(0,Y.jsxs)(`p`,{className:`crumbs`,children:[(0,Y.jsx)(`a`,{href:`#/triggers`,children:`Triggers`}),` / Email`]}),(0,Y.jsx)(`div`,{className:`page-head`,children:(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`h1`,{children:t?pq(t):`Email trigger`}),(0,Y.jsx)(`p`,{children:`Runs automatically when an incoming email matches this rule. A real message is required; this trigger cannot be fired manually.`})]})}),r?(0,Y.jsx)(`p`,{style:{color:`var(--color-text-red)`},children:r}):null,a?(0,Y.jsx)(`p`,{className:`muted`,children:`Loading email trigger…`}):null,t?(0,Y.jsx)(gq,{trigger:t}):null]})}function vq(e){return e===`schedule`?`Schedule`:e===`event`?`Event`:`Manual`}function yq(e){return e.kind===`schedule`&&e.schedule?e.schedule.timezone?`${e.schedule.cron} (${e.schedule.timezone})`:e.schedule.cron:e.kind===`event`&&e.event?`on ${e.event.source}`:`Fired manually only`}function bq(e){return e?`Enabled`:`Disabled`}function xq(e){return e??`Dynamic (task supplied at fire time)`}function Sq(e){return e??`Dynamic`}function Cq({triggerId:e,projectRoot:t}){return Es()?(0,Y.jsx)(fq,{triggerId:e,projectRoot:t}):(0,Y.jsx)(wq,{triggerId:e})}function wq({triggerId:e}){let[t,n]=(0,J.useState)([]),[r,i]=(0,J.useState)([]),[a,o]=(0,J.useState)(null),[s,c]=(0,J.useState)(!0),[l,u]=(0,J.useState)(!1),d=(0,J.useCallback)(async()=>{let[e,t]=await Promise.allSettled([Ii(),Li()]);n(e.status===`fulfilled`?e.value.triggers:[]),i(t.status===`fulfilled`?t.value.triggers:[]);let r=[];e.status===`rejected`&&r.push(`Catalog triggers: ${String(e.reason)}`),t.status===`rejected`&&r.push(`Email triggers: ${String(t.reason)}`),o(r.length?r.join(` · `):null),c(!1)},[]);(0,J.useEffect)(()=>{d()},[d]);async function f(e){u(!1),await d(),SD(`Trigger created · ${e.id}`)}return e?e.startsWith(`email:`)?(0,Y.jsx)(_q,{triggerId:e.slice(6)},e):(0,Y.jsx)(Tq,{triggerId:e,onRefreshList:d}):(0,Y.jsxs)(`div`,{className:`main__inner main__inner--wide`,children:[(0,Y.jsxs)(`div`,{className:`page-head`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`h1`,{children:`Triggers`}),(0,Y.jsx)(`p`,{children:`Catalog and email triggers and what they run. Email triggers run automatically when a matching message arrives in a connected inbox.`})]}),(0,Y.jsx)(`button`,{type:`button`,className:`btn btn--primary`,onClick:()=>u(!0),children:`New trigger`})]}),a?(0,Y.jsx)(`p`,{style:{color:`var(--color-text-red)`},children:a}):null,s?(0,Y.jsx)(`p`,{className:`muted`,children:`Loading triggers…`}):null,!s&&!a&&t.length===0&&r.length===0?(0,Y.jsxs)(`div`,{className:`empty-hint`,children:[(0,Y.jsxs)(`p`,{style:{margin:`0 0 var(--spacing-3)`},children:[`No triggers yet. Add a `,(0,Y.jsx)(`span`,{className:`mono`,children:`*.trigger.yaml`}),` `,`file to this project's catalog.`]}),(0,Y.jsx)(`button`,{type:`button`,className:`btn btn--primary`,onClick:()=>u(!0),children:`New trigger`})]}):null,!s&&(t.length>0||r.length>0)?(0,Y.jsxs)(`table`,{className:`table`,children:[(0,Y.jsx)(`thead`,{children:(0,Y.jsxs)(`tr`,{children:[(0,Y.jsx)(`th`,{children:`Trigger`}),(0,Y.jsx)(`th`,{children:`Kind`}),(0,Y.jsx)(`th`,{children:`Status`}),(0,Y.jsx)(`th`,{children:`Last fired`}),(0,Y.jsx)(`th`,{})]})}),(0,Y.jsxs)(`tbody`,{children:[t.map(e=>(0,Y.jsxs)(`tr`,{children:[(0,Y.jsxs)(`td`,{children:[(0,Y.jsx)(`a`,{href:`#${Sc(e.id)}`,children:e.id}),(0,Y.jsxs)(`div`,{className:`muted`,style:{fontSize:`var(--font-size-xs)`},children:[e.pipeline,` · `,Sq(e.task)]})]}),(0,Y.jsx)(`td`,{className:`mono`,children:vq(e.kind)}),(0,Y.jsx)(`td`,{children:(0,Y.jsx)(`span`,{className:e.enabled?void 0:`muted`,children:bq(e.enabled)})}),(0,Y.jsx)(`td`,{className:`muted`,children:e.last_fired_at?Cs(e.last_fired_at):`never`}),(0,Y.jsx)(`td`,{style:{textAlign:`right`},children:(0,Y.jsx)(`a`,{className:`btn btn--sm`,href:`#${Sc(e.id)}`,children:`Open`})})]},e.id)),r.map(e=>(0,Y.jsx)(hq,{trigger:e},`email:${e.triggerId}`))]})]}):null,(0,Y.jsx)(YW,{isOpen:l,onClose:()=>u(!1),onCreated:e=>void f(e)})]})}function Tq({triggerId:e,onRefreshList:t}){let[n,r]=(0,J.useState)(null),[i,a]=(0,J.useState)(!0),[o,s]=(0,J.useState)(null),[c,l]=(0,J.useState)(!1),u=(0,J.useCallback)(async()=>{try{let t=await Zi(e);r(t),s(null)}catch(e){s(e instanceof Error?e.message:String(e)),r(null)}finally{a(!1)}},[e]);(0,J.useEffect)(()=>{a(!0),u()},[u]);async function d(){l(!0);try{let n=await ta(e);SD(n.queued?`Trigger queued · ${e}`:`Trigger fired · ${e} · ${n.runId}`),await u(),t()}catch(e){s(e instanceof Error?e.message:String(e))}finally{l(!1)}}let f=n?`${n.definition_ref} · ${vq(n.kind)}`:e;return(0,Y.jsxs)(`div`,{className:`main__inner`,children:[(0,Y.jsxs)(`p`,{className:`crumbs`,children:[(0,Y.jsx)(`a`,{href:`#/triggers`,children:`Triggers`}),` / `,e]}),(0,Y.jsxs)(`div`,{className:`page-head`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`h1`,{children:e}),(0,Y.jsx)(`p`,{className:`mono`,children:f})]}),n?(0,Y.jsx)(`button`,{className:`btn btn--primary`,disabled:c,onClick:()=>void d(),children:c?`Firing…`:`Fire`}):null]}),o?(0,Y.jsx)(`p`,{style:{color:`var(--color-text-red)`},children:o}):null,i?(0,Y.jsx)(`p`,{className:`muted`,children:`Loading…`}):null,!i&&!n?(0,Y.jsxs)(`p`,{className:`muted`,children:[e,` is not in the current manifest catalog.`]}):null,n?(0,Y.jsxs)(`dl`,{className:`kv`,children:[(0,Y.jsx)(`dt`,{children:`Pipeline`}),(0,Y.jsx)(`dd`,{children:n.pipeline}),(0,Y.jsx)(`dt`,{children:`Task`}),(0,Y.jsx)(`dd`,{className:n.task?void 0:`muted`,children:xq(n.task)}),(0,Y.jsx)(`dt`,{children:`Kind`}),(0,Y.jsx)(`dd`,{children:vq(n.kind)}),(0,Y.jsx)(`dt`,{children:`Schedule`}),(0,Y.jsx)(`dd`,{children:yq(n)}),(0,Y.jsx)(`dt`,{children:`Status`}),(0,Y.jsx)(`dd`,{children:bq(n.enabled)}),(0,Y.jsx)(`dt`,{children:`Last fired`}),(0,Y.jsx)(`dd`,{children:n.last_fired_at?Cs(n.last_fired_at):`never`}),n.last_run_id?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`dt`,{children:`Last run`}),(0,Y.jsx)(`dd`,{children:(0,Y.jsx)(`a`,{href:`#${hc(n.last_run_id)}`,children:n.last_run_id})})]}):null,n.next_run_at?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`dt`,{children:`Next run`}),(0,Y.jsx)(`dd`,{className:`mono`,children:n.next_run_at})]}):null]}):null]})}var Eq={mail:u,hash:st,"message-circle":f,phone:ae,send:lt};function Dq(e){return e&&Eq[e]||re}var Oq=`[font-family:'Geist_Mono',_monospace]`,kq=`[white-space-collapse:collapse] [text-wrap-mode:nowrap]`,Aq=`text-[#8b8f98] font-sans text-[11px] font-medium leading-normal tracking-[0.88px] uppercase ${kq}`,jq=`h-9 w-full rounded-lg border border-[#ffffff1a] bg-[#1a1c21] px-3 text-[13px] text-[#ecedee] outline-none placeholder:text-[#8b8f98] focus:border-[#ecedee73]`;function Mq({via:e}){return(0,Y.jsxs)(`span`,{className:`rounded-[4px] border border-[#ffffff1a] bg-[#1a1c21] px-1.5 text-[11px] leading-[18px] text-[#a7aab2] ${kq}`,children:[`via `,e]})}function Nq({field:e,value:t,onChange:n}){let r=`connection-field-${e.key}`;return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Y.jsx)(`label`,{htmlFor:r,className:`text-[13px] font-medium leading-normal text-[#ecedee]`,children:e.label}),e.input===`select`?(0,Y.jsx)(`select`,{id:r,value:t||e.defaultValue||``,onChange:e=>n(e.target.value),className:jq,children:e.options?.map(e=>(0,Y.jsx)(`option`,{value:e.value,children:e.label},e.value))}):(0,Y.jsxs)(`div`,{className:`relative`,children:[e.input===`password`?(0,Y.jsx)(Me,{className:`pointer-events-none absolute left-3 top-1/2 size-3.5 -translate-y-1/2 text-[#8b8f98]`,"aria-hidden":!0}):null,(0,Y.jsx)(`input`,{id:r,type:e.input===`password`?`password`:`text`,value:t,onChange:e=>n(e.target.value),placeholder:e.placeholder,autoComplete:`off`,spellCheck:!1,className:`${jq} ${e.input===`password`?`pl-9 ${Oq}`:``}`})]}),e.hint?(0,Y.jsx)(`span`,{className:`text-xs leading-[1.4] text-[#8b8f98]`,children:e.hint}):null]})}function Pq({health:e,meta:t}){if(e.state===`ok`)return(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 text-[13px] text-[#4cc38a]`,role:`status`,children:[(0,Y.jsx)(G,{className:`size-3.5 block`,"aria-hidden":!0}),`The provider accepted the credentials.`]});let n=e.error?.code,r=RO(n,t);return(0,Y.jsxs)(`div`,{className:`flex items-start gap-2 text-[13px] text-[#f5b544]`,role:`alert`,children:[(0,Y.jsx)(je,{className:`mt-0.5 size-3.5 shrink-0`,"aria-hidden":!0}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,Y.jsx)(`span`,{children:n?OO(t,n):`The check failed.`}),r?(0,Y.jsx)(`span`,{className:`text-xs text-[#a7aab2]`,children:r}):null]})]})}function Fq({initial:e,existing:t,onClose:n,onSaved:r}){let{meta:i,failed:a}=TO(),[o,s]=(0,J.useState)(e),[c,l]=(0,J.useState)({}),[u,d]=(0,J.useState)(!0),[f,p]=(0,J.useState)(null),[m,h]=(0,J.useState)(null),[g,_]=(0,J.useState)(null),[v,y]=(0,J.useState)(!1),[b,x]=(0,J.useState)(!1),S=i?.providers??[],C=S.find(e=>e.id===o)??S[0],w=C?.fields.some(e=>e.target===`credential`)?t.find(e=>e.credential)?.credential:void 0,T=!!w&&u,E=C?BO(C,c,T):[];(0,J.useEffect)(()=>{let e=e=>{e.key===`Escape`&&!g&&n()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[n,g]);let D=e=>{s(e),l({}),p(null),h(null)},O=()=>VO(C,c,T&&w?{savedCredential:w}:{}),k=async e=>{if(C){if(E.length>0){h(`Fill in the required fields first.`);return}_(e),h(null);try{e===`test`?p(await Hi(O())):r((await Ui(O())).id)}catch(e){h(HO(e instanceof Bi?e.code:`unknown`,i))}finally{_(null)}}};return(0,JP.createPortal)((0,Y.jsx)(`div`,{className:`fixed inset-0 z-[200] flex items-center justify-center bg-[#040506a8] p-4`,role:`presentation`,onClick:()=>{g||n()},children:(0,Y.jsxs)(`form`,{className:`flex max-h-[90vh] w-full max-w-[600px] flex-col overflow-y-auto rounded-xl border border-[#ffffff1a] bg-[#131418] shadow-[0px_32px_96px_rgba(0,0,0,0.65),0px_8px_24px_rgba(0,0,0,0.45)]`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`add-connection-title`,onClick:e=>e.stopPropagation(),onSubmit:e=>{e.preventDefault(),k(`save`)},children:[(0,Y.jsxs)(`div`,{className:`flex items-start gap-3 border-b border-b-[#ffffff12] px-5 py-4`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-1 flex-col gap-1`,children:[(0,Y.jsxs)(`h2`,{id:`add-connection-title`,className:`text-lg font-semibold tracking-[-0.36px] text-[#ecedee]`,children:[`Connect `,C?.label??`a provider`]}),(0,Y.jsx)(`p`,{className:`text-[13px] leading-normal text-[#a7aab2]`,children:`Secrets are stored on this host and never written to connections.yaml.`})]}),(0,Y.jsx)(`button`,{type:`button`,onClick:n,"aria-label":`Close`,className:`flex size-7 items-center justify-center rounded-md text-[#8b8f98] hover:bg-[#1a1c21]`,children:(0,Y.jsx)(St,{className:`size-4 block`,"aria-hidden":!0})})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-4 px-5 py-4`,children:[(0,Y.jsx)(`div`,{className:`flex flex-wrap gap-2`,role:`tablist`,"aria-label":`Provider`,children:S.map(e=>{let t=Dq(e.icon);return(0,Y.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":e.id===o,onClick:()=>D(e.id),className:`flex h-8 items-center gap-2 rounded-lg border px-2.5 text-[13px] ${e.id===o?`border-[#6ca6ff] bg-[#1a1c21] text-[#ecedee]`:`border-[#ffffff1a] text-[#a7aab2] hover:bg-[#1a1c21]`}`,children:[(0,Y.jsx)(t,{className:`size-3.5 block text-[#a7aab2]`,"aria-hidden":!0}),e.label,e.via?(0,Y.jsx)(Mq,{via:e.via}):null]},e.id)})}),w?(0,Y.jsxs)(`label`,{className:`flex items-center gap-2 text-[13px] text-[#a7aab2]`,children:[(0,Y.jsx)(`input`,{type:`checkbox`,checked:u,onChange:e=>d(e.target.checked)}),`Use the Photon project already saved (`,(0,Y.jsx)(`span`,{className:Oq,children:w}),`)`]}):null,C?null:(0,Y.jsx)(`p`,{className:`text-[13px] text-[#8b8f98]`,role:a?`alert`:void 0,children:a?`Could not load provider details from the host.`:`Loading providers…`}),C?.fields.filter(e=>!(T&&e.target===`credential`)).map(e=>(0,Y.jsx)(Nq,{field:e,value:c[e.key]??``,onChange:t=>l(n=>({...n,[e.key]:t}))},e.key)),C?.note?(0,Y.jsx)(`p`,{className:`text-xs leading-[1.5] text-[#8b8f98]`,children:C.note}):null,f?(0,Y.jsx)(Pq,{health:f,meta:i}):null,m?(0,Y.jsxs)(`div`,{className:`flex items-start gap-2 text-[13px] text-[#f2645a]`,role:`alert`,children:[(0,Y.jsx)(je,{className:`mt-0.5 size-3.5 shrink-0`,"aria-hidden":!0}),m]}):null,(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2 border-t border-t-[#ffffff12] pt-3`,children:[(0,Y.jsx)(`button`,{type:`button`,onClick:()=>y(e=>!e),className:`w-fit text-xs text-[#8b8f98] underline hover:text-[#ecedee]`,"aria-expanded":v,children:v?`Hide`:`Prefer to edit connections.yaml yourself?`}),v&&C?(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Y.jsx)(`span`,{className:Aq,children:`connections.yaml`}),(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>{navigator.clipboard?.writeText(C?.yamlExample??``).then(()=>{x(!0),window.setTimeout(()=>x(!1),1500)},()=>void 0)},className:`flex h-7 items-center gap-1.5 rounded-md border border-[#ffffff1a] px-2 text-xs text-[#a7aab2] hover:bg-[#1a1c21]`,children:[b?(0,Y.jsx)(G,{className:`size-3 block text-[#4cc38a]`,"aria-hidden":!0}):(0,Y.jsx)(R,{className:`size-3 block`,"aria-hidden":!0}),b?`Copied`:`Copy`]})]}),(0,Y.jsx)(`pre`,{className:`overflow-x-auto rounded-lg border border-[#ffffff12] bg-[#0c0d0f] p-3 text-xs leading-[1.6] text-[#ecedee] ${Oq}`,children:C?.yamlExample}),(0,Y.jsxs)(`p`,{className:`text-xs leading-[1.5] text-[#8b8f98]`,children:[`Set `,C?.envNames.join(`, `),` on the host, then restart. Values written as `,(0,Y.jsx)(`span`,{className:Oq,children:`env:NAME`}),` are read from the host environment.`]})]}):null]})]}),(0,Y.jsxs)(`div`,{className:`flex items-center justify-between border-t border-t-[#ffffff12] px-5 py-3`,children:[(0,Y.jsx)(`button`,{type:`button`,onClick:()=>void k(`test`),disabled:g!==null||!C,className:`flex h-8 items-center rounded-lg border border-[#ffffff1a] bg-[#1a1c21] px-3 text-[13px] font-medium text-[#ecedee] disabled:opacity-60`,children:g===`test`?`Testing…`:`Test connection`}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(`button`,{type:`button`,onClick:n,disabled:g===`save`,className:`flex h-8 items-center rounded-lg px-3 text-[13px] text-[#a7aab2] hover:bg-[#1a1c21]`,children:`Cancel`}),(0,Y.jsx)(`button`,{type:`submit`,disabled:g!==null||!C,className:`flex h-8 items-center rounded-lg bg-[#ecedee] px-3 text-[13px] font-medium text-[#0c0d0f] disabled:opacity-60`,children:g===`save`?`Connecting…`:`Connect ${C?.label??``}`})]})]})]})}),document.body)}var Iq=`[font-family:'Geist_Mono',_monospace]`,Lq=`[white-space-collapse:collapse] [text-wrap-mode:nowrap]`,Rq=`text-[#8b8f98] font-sans text-[11px] font-medium leading-normal tracking-[0.88px] uppercase ${Lq}`,zq=`flex size-9 shrink-0 items-center justify-center rounded-lg border border-[#ffffff1a] bg-[#1a1c21]`,Bq=`grid grid-cols-[minmax(0,1fr)_240px_132px_112px] items-center gap-4`;function Vq({icon:e,size:t=`size-4`}){let n=Dq(e);return(0,Y.jsx)(n,{className:`${t} block text-[#a7aab2]`,"aria-hidden":!0})}function Hq({via:e}){return(0,Y.jsxs)(`span`,{className:`rounded-[4px] border border-[#ffffff1a] bg-[#1a1c21] px-1.5 text-[11px] leading-[18px] text-[#a7aab2] ${Lq}`,children:[`via `,e]})}function Uq({title:e,subtitle:t,aside:n}){return(0,Y.jsxs)(`div`,{className:`flex items-end justify-between gap-4`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1`,children:[(0,Y.jsx)(`h2`,{className:`text-[15px] font-semibold leading-normal text-[#ecedee]`,children:e}),(0,Y.jsx)(`p`,{className:`text-[13px] leading-normal text-[#a7aab2]`,children:t})]}),n?(0,Y.jsx)(`span`,{className:`shrink-0 text-xs leading-normal text-[#8b8f98] ${Iq}`,children:n}):null]})}function Wq({row:e}){let{status:t}=e,n=t.tone===`ok`?`text-[#4cc38a]`:t.tone===`needs`?`text-[#f5b544]`:`text-[#8b8f98]`;return(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-start gap-2`,children:[(0,Y.jsx)(`span`,{className:`mt-[3px] shrink-0 ${n}`,children:t.tone===`ok`?(0,Y.jsx)(G,{className:`size-3.5 block`,"aria-hidden":!0}):t.tone===`needs`?(0,Y.jsx)(je,{className:`size-3.5 block`,"aria-hidden":!0}):(0,Y.jsx)(k,{className:`size-3.5 block`,"aria-hidden":!0})}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-col`,children:[(0,Y.jsx)(`span`,{className:`text-[13px] leading-normal ${t.tone===`muted`?`text-[#a7aab2]`:`text-[#ecedee]`}`,children:t.label}),t.detail?(0,Y.jsx)(`span`,{className:`text-xs leading-[1.4] text-[#8b8f98]`,children:t.detail}):null]})]})}function Gq({row:e,checking:t,onCheck:n,now:r}){return(0,Y.jsxs)(`div`,{className:`${Bq} border-t border-t-[#ffffff12] px-4 py-3 ${e.kind===`channel`?`cursor-pointer hover:bg-[#16171b]`:``}`,...e.kind===`channel`?{role:`link`,tabIndex:0,"aria-label":`Open ${e.name} ${e.id}`,onClick:()=>Z(kc(e.id)),onKeyDown:t=>{t.key===`Enter`&&Z(kc(e.id))}}:{},children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,Y.jsx)(`div`,{className:zq,children:(0,Y.jsx)(Vq,{icon:e.icon})}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-0.5`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(`span`,{className:`truncate text-[13px] font-medium leading-normal text-[#ecedee]`,children:e.name}),e.via?(0,Y.jsx)(Hq,{via:e.via}):null]}),(0,Y.jsx)(`span`,{className:`truncate text-xs leading-normal text-[#8b8f98] ${Iq}`,title:e.secondary,children:e.secondary})]})]}),(0,Y.jsx)(Wq,{row:e}),(0,Y.jsx)(`span`,{className:`text-xs leading-normal text-[#a7aab2] ${Iq}`,children:e.checkedAt?jO(e.checkedAt,r):`—`}),(0,Y.jsx)(`div`,{className:`flex justify-end`,children:e.checkable?(0,Y.jsxs)(`button`,{type:`button`,disabled:t,onClick:t=>{t.stopPropagation(),n(e.id)},className:`flex h-7 items-center gap-1.5 rounded-md border border-[#ffffff1a] bg-transparent px-2 text-xs text-[#a7aab2] hover:bg-[#1a1c21] disabled:opacity-60`,children:[(0,Y.jsx)(nt,{className:`size-3 block ${t?`animate-spin`:``}`,"aria-hidden":!0}),t?`Checking`:`Check now`]}):null})]})}function Kq({rows:e,checking:t,onCheck:n,now:r}){return(0,Y.jsxs)(`div`,{className:`overflow-hidden rounded-lg border border-[#ffffff12] bg-[#131418]`,children:[(0,Y.jsxs)(`div`,{className:`${Bq} px-4 py-2.5`,children:[(0,Y.jsx)(`span`,{className:Rq,children:`Connection`}),(0,Y.jsx)(`span`,{className:Rq,children:`Status`}),(0,Y.jsx)(`span`,{className:Rq,children:`Last checked`}),(0,Y.jsx)(`span`,{})]}),e.map(e=>(0,Y.jsx)(Gq,{row:e,checking:t.has(e.id),onCheck:n,now:r},e.key))]})}function qq({provider:e,onConnect:t}){return(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3 rounded-lg border border-dashed border-[#ffffff1a] px-4 py-3`,children:[(0,Y.jsx)(`div`,{className:zq,children:(0,Y.jsx)(Vq,{icon:e.icon})}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-0.5`,children:[(0,Y.jsx)(`span`,{className:`truncate text-[13px] font-medium leading-normal text-[#ecedee]`,children:e.label}),(0,Y.jsx)(`span`,{className:`truncate text-xs leading-normal text-[#8b8f98]`,children:e.blurb})]}),(0,Y.jsx)(`button`,{type:`button`,onClick:t,className:`flex h-7 shrink-0 items-center rounded-md border border-[#ffffff1a] bg-transparent px-2.5 text-xs font-medium text-[#ecedee] hover:bg-[#1a1c21]`,children:`Connect`})]})}function Jq({name:e,detail:t}){return(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-3 rounded-lg border border-[#ffffff12] bg-[#131418] p-4`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Y.jsx)(`div`,{className:zq,children:(0,Y.jsx)(ht,{className:`size-4 block text-[#a7aab2]`,"aria-hidden":!0})}),(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5 text-xs text-[#8b8f98]`,children:[(0,Y.jsx)(k,{className:`size-3 block`,"aria-hidden":!0}),`Configured`]})]}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-0.5`,children:[(0,Y.jsx)(`span`,{className:`truncate text-[13px] font-medium leading-normal text-[#ecedee] ${Iq}`,children:e}),(0,Y.jsx)(`span`,{className:`truncate text-xs leading-normal text-[#8b8f98]`,children:t})]})]})}function Yq(){let[e,t]=(0,J.useState)([]),[n,r]=(0,J.useState)(null),[i,a]=(0,J.useState)([]),[o,s]=(0,J.useState)(null),[c,l]=(0,J.useState)(!1),[u,d]=(0,J.useState)(new Set),[f,p]=(0,J.useState)(null),[m,h]=(0,J.useState)(()=>Date.now());(0,J.useEffect)(()=>{let e=!1;Promise.allSettled([zi(),Ri(),Ra()]).then(([n,i,o])=>{e||(n.status===`fulfilled`?(t(n.value.connections),r(n.value.error??null)):r(n.reason instanceof Error?n.reason.message:String(n.reason)),i.status===`fulfilled`&&a(i.value),o.status===`fulfilled`&&s(o.value),l(!0))});let n=window.setInterval(()=>h(Date.now()),3e4);return()=>{e=!0,window.clearInterval(n)}},[]);let g=(0,J.useCallback)(e=>{d(t=>new Set(t).add(e)),Ji(e).then(n=>{t(t=>t.map(t=>t.id===e?{...t,health:n}:t)),h(Date.now())}).catch(e=>r(e instanceof Error?e.message:String(e))).finally(()=>d(t=>{let n=new Set(t);return n.delete(e),n}))},[]),{meta:_}=TO(),v=MO(e,i,_),y=NO(v,_),b=PO(o?.status===`ok`?o.servers:[]),x=FO(v,b);return(0,Y.jsxs)(`div`,{className:`flex h-full min-h-0 min-w-0 flex-1 flex-col bg-[#0c0d0f]`,children:[(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto`,children:[(0,Y.jsx)($c,{title:`Connections`,actions:(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>p(_?.providers[0]?.id??``),className:`flex h-8 shrink-0 items-center rounded-lg bg-[#ecedee] px-3 py-0 gap-2`,children:[(0,Y.jsx)(se,{className:`size-3.5 block text-[#0c0d0f]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`font-sans text-[13px] font-medium leading-normal text-[#0c0d0f] ${Lq}`,children:`Add connection`})]})}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-10 px-5 py-7`,children:[(0,Y.jsx)(`p`,{className:`text-[13px] leading-normal text-[#a7aab2]`,children:`Connect an account once, then let stages send through it. Channels carry messages from a stage; tools let an agent reach other services.`}),(0,Y.jsxs)(`section`,{className:`flex flex-col gap-4`,"aria-label":`Communication channels`,children:[(0,Y.jsx)(Uq,{title:`Communication channels`,subtitle:`Where a stage can send messages. Send-only: nothing is received yet.`,aside:c&&v.length>0?`${x.connectedChannels} of ${v.length} connected`:void 0}),n?(0,Y.jsxs)(`div`,{className:`flex items-start gap-2 rounded-lg border border-[#f5b54447] bg-[#16140f] px-3 py-2.5 text-[13px] text-[#f5b544]`,role:`alert`,children:[(0,Y.jsx)(je,{className:`mt-0.5 size-3.5 shrink-0`,"aria-hidden":!0}),`Could not load channels: `,OO(_,n)]}):null,c?null:(0,Y.jsx)(`div`,{className:`text-[13px] text-[#8b8f98]`,children:`Loading connections…`}),c&&v.length===0?(0,Y.jsxs)(`div`,{className:`flex flex-col items-center gap-2 rounded-lg border border-[#ffffff12] bg-[#131418] px-6 py-8 text-center`,"data-testid":`connections-empty`,children:[(0,Y.jsx)(`div`,{className:zq,children:(0,Y.jsx)(re,{className:`size-4 block text-[#a7aab2]`,"aria-hidden":!0})}),(0,Y.jsx)(`h3`,{className:`text-[15px] font-semibold leading-normal text-[#ecedee]`,children:`You haven't connected anything yet`}),(0,Y.jsx)(`p`,{className:`max-w-[520px] text-[13px] leading-[1.5] text-[#a7aab2]`,children:`Connect a channel and your stages can send messages through it, for example a Slack post when a run finishes. Pick a provider below to see how to set it up.`})]}):null,c&&v.length>0?(0,Y.jsx)(Kq,{rows:v,checking:u,onCheck:g,now:m}):null,c&&y.length>0?(0,Y.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[v.length>0?(0,Y.jsx)(`span`,{className:Rq,children:`Available to connect`}):null,(0,Y.jsx)(`div`,{className:`grid grid-cols-1 gap-3 md:grid-cols-2`,children:y.map(e=>(0,Y.jsx)(qq,{provider:e,onConnect:()=>p(e.id)},e.id))})]}):null]}),(0,Y.jsxs)(`section`,{className:`flex flex-col gap-4`,"aria-label":`Tools`,children:[(0,Y.jsx)(Uq,{title:`Tools`,subtitle:`MCP servers agents call during a run. Not a way to talk to them.`,aside:c?`${b.length} configured`:void 0}),o?.status===`invalid_config`?(0,Y.jsx)(`div`,{className:`rounded-lg border border-[#f5b54447] bg-[#16140f] px-3 py-2.5 text-[13px] text-[#f5b544]`,role:`alert`,children:`.mcp.json could not be read.`}):null,b.length>0?(0,Y.jsx)(`div`,{className:`grid grid-cols-1 gap-3 sm:grid-cols-2 xl:grid-cols-4`,children:b.map(e=>(0,Y.jsx)(Jq,{...e},e.name))}):null,c?(0,Y.jsxs)(`a`,{href:`#/settings`,className:`flex items-center justify-center gap-2 rounded-lg border border-dashed border-[#ffffff1a] px-4 py-3 text-[13px] text-[#8b8f98] hover:text-[#c9ccd3]`,children:[(0,Y.jsx)(se,{className:`size-3.5 block`,"aria-hidden":!0}),`Add an MCP server in Settings — a form, or paste JSON from its docs`]}):null]})]})]}),(0,Y.jsxs)(`footer`,{className:`flex h-10 shrink-0 items-center justify-between border-t border-t-[#ffffff12] px-7`,children:[(0,Y.jsx)(`span`,{className:`text-xs leading-normal text-[#8b8f98] ${Iq}`,children:c?IO(x):``}),(0,Y.jsx)(`span`,{className:`text-xs leading-normal text-[#8b8f98]`,children:`Changes apply immediately. connections.yaml never holds a secret.`})]}),f?(0,Y.jsx)(Fq,{initial:f,existing:e,onClose:()=>p(null),onSaved:e=>{p(null),Z(kc(e))}}):null]})}function Xq(){return(0,Y.jsx)(Yq,{})}function Zq(e,t){let n=e.split(`
241
- `),r=t.split(`
242
- `),i=Array.from({length:n.length+1},()=>Array(r.length+1).fill(0));for(let e=n.length-1;e>=0;e--)for(let t=r.length-1;t>=0;t--)i[e][t]=n[e]===r[t]?i[e+1][t+1]+1:Math.max(i[e+1][t],i[e][t+1]);let a=[],o=0,s=0;for(;o<n.length&&s<r.length;)n[o]===r[s]?(a.push({kind:`same`,text:n[o]}),o++,s++):i[o+1][s]>=i[o][s+1]?(a.push({kind:`removed`,text:n[o]}),o++):(a.push({kind:`added`,text:r[s]}),s++);for(;o<n.length;)a.push({kind:`removed`,text:n[o++]});for(;s<r.length;)a.push({kind:`added`,text:r[s++]});return a}var Qq=`sf-mono`,$q=`flex h-7 items-center gap-1.5 rounded-md border border-[var(--sf-hairline-strong)] px-2.5 text-xs font-medium leading-[1.33333]`,eJ=`flex h-7 items-center gap-1.5 rounded-md bg-[var(--sf-text-1)] px-3 text-xs font-medium leading-[1.33333] text-[var(--sf-ground)] disabled:opacity-40`,tJ=64e3;function nJ(e){return e.length.toLocaleString(`en-US`)}function rJ({previous:e,onChange:t}){return(0,Y.jsxs)(`div`,{className:`flex h-7 items-center rounded-md bg-[var(--sf-ground)] p-0.5`,children:[(0,Y.jsx)(`button`,{type:`button`,"aria-pressed":!e,onClick:()=>t(!1),className:`h-6 rounded-sm px-2.5 text-xs leading-[1.33333] ${e?`text-[var(--sf-text-3)]`:`bg-[var(--sf-raised)] font-medium text-[var(--sf-text-1)]`}`,children:`Current`}),(0,Y.jsx)(`button`,{type:`button`,"aria-pressed":e,onClick:()=>t(!0),className:`h-6 rounded-sm px-2.5 text-xs leading-[1.33333] ${e?`bg-[var(--sf-raised)] font-medium text-[var(--sf-text-1)]`:`text-[var(--sf-text-3)]`}`,children:`Previous`})]})}function iJ({before:e,after:t}){let n=Zq(e,t),r=n.filter(e=>e.kind===`added`).length,i=n.filter(e=>e.kind===`removed`).length;return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-3 border-b border-b-[var(--sf-hairline)] bg-[var(--sf-ground)] px-4 py-2`,children:[(0,Y.jsxs)(`span`,{className:`${Qq} text-xs leading-[1.33333] text-[var(--sf-ok)]`,children:[`+`,r,` added`]}),(0,Y.jsxs)(`span`,{className:`${Qq} text-xs leading-[1.33333] text-[var(--sf-fail)]`,children:[`−`,i,` removed`]}),(0,Y.jsx)(`span`,{className:`flex-1 text-right text-xs leading-[1.33333] text-[var(--sf-text-3)]`,children:`Read-only — agents cannot open this copy`})]}),(0,Y.jsx)(`div`,{className:`flex flex-1 flex-col overflow-auto bg-[var(--sf-ground)] py-2`,"data-testid":`memory-diff`,children:n.map((e,t)=>(0,Y.jsxs)(`div`,{className:`flex min-h-6 items-center gap-3 px-4 ${e.kind===`added`?`bg-[var(--sf-ok-bg)]`:e.kind===`removed`?`bg-[var(--sf-fail-bg)]`:``}`,children:[(0,Y.jsx)(`span`,{className:`${Qq} w-3 text-center text-[13px] leading-normal ${e.kind===`added`?`text-[var(--sf-ok)]`:e.kind===`removed`?`text-[var(--sf-fail)]`:`text-[var(--sf-queued-dim)]`}`,children:e.kind===`added`?`+`:e.kind===`removed`?`−`:` `}),(0,Y.jsx)(`span`,{className:`${Qq} flex-1 whitespace-pre-wrap break-words text-[13px] leading-normal ${e.kind===`same`?`text-[var(--sf-text-3)]`:`text-[var(--sf-text-1)]`}`,children:e.text})]},t))})]})}function aJ({value:e,onChange:t,testId:n}){let r=Math.max(1,e.split(`
243
- `).length),i=(0,J.useRef)(null);return(0,J.useEffect)(()=>{i.current?.focus()},[]),(0,Y.jsxs)(`div`,{className:`flex min-h-48 flex-1 gap-4 bg-[var(--sf-ground)] px-4 py-3`,children:[(0,Y.jsx)(`div`,{className:`${Qq} w-5 shrink-0 select-none text-right text-xs leading-[22px] text-[var(--sf-queued-dim)]`,"aria-hidden":!0,children:Array.from({length:r},(e,t)=>(0,Y.jsx)(`div`,{children:t+1},t))}),(0,Y.jsx)(`textarea`,{ref:i,value:e,onChange:e=>t(e.target.value),spellCheck:!1,rows:r,className:`${Qq} min-w-0 flex-1 resize-none bg-transparent text-[13px] leading-[22px] text-[var(--sf-text-1)] outline-none`,"data-testid":n})]})}function oJ({body:e,draft:t,previous:n,editing:r,showPrevious:i,saving:a,onDraft:o,onEdit:s,onCancel:l,onShowPrevious:u,onSubmit:d}){let f=i&&n!==null&&!r;return(0,Y.jsxs)(`form`,{onSubmit:d,className:`flex flex-col overflow-hidden rounded-lg border bg-[var(--sf-panel)] ${r?`border-[var(--sf-needs-border)]`:`border-[var(--sf-hairline-strong)]`}`,"data-testid":`memory-cover-panel`,children:[(0,Y.jsxs)(`div`,{className:`flex h-10 items-center gap-2.5 border-b border-b-[var(--sf-hairline)] px-4`,children:[(0,Y.jsx)(me,{className:`size-3.5 text-[var(--sf-text-2)]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`text-[13px] font-medium leading-normal text-[var(--sf-text-1)]`,children:`Cover page`}),r?(0,Y.jsx)(`span`,{className:`rounded-full bg-[var(--sf-needs-bg)] px-2 py-px text-[11px] font-medium leading-normal text-[var(--sf-needs)]`,children:`Editing`}):null,(0,Y.jsx)(`span`,{className:`flex-1`}),(0,Y.jsxs)(`span`,{className:`${Qq} text-xs leading-[1.33333] text-[var(--sf-text-3)]`,children:[nJ(r?t:e),` / `,tJ.toLocaleString(`en-US`)]}),r?(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsxs)(`button`,{type:`button`,onClick:l,className:`${$q} text-[var(--sf-text-2)]`,children:[(0,Y.jsx)(St,{className:`size-3`,"aria-hidden":!0}),`Cancel`]}),(0,Y.jsxs)(`button`,{type:`submit`,disabled:a,className:eJ,children:[(0,Y.jsx)(L,{className:`size-3`,"aria-hidden":!0}),`Save cover`]})]},`cover-editing`):(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[n===null?null:(0,Y.jsx)(rJ,{previous:i,onChange:u}),(0,Y.jsxs)(`button`,{type:`button`,onClick:e=>{e.preventDefault(),s()},className:`${$q} text-[var(--sf-text-1)]`,children:[(0,Y.jsx)(c,{className:`size-3`,"aria-hidden":!0}),`Edit cover`]})]},`cover-reading`)]}),r?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(aJ,{value:t,onChange:o,testId:`memory-cover`}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 border-t border-t-[var(--sf-hairline)] px-4 py-2.5`,children:[(0,Y.jsx)(H,{className:`size-3 text-[var(--sf-text-3)]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`text-xs leading-[1.33333] text-[var(--sf-text-3)]`,children:`Every stage reads the cover. Saving keeps today's text as the previous copy.`})]})]}):f?(0,Y.jsx)(`div`,{className:`flex flex-col`,"data-testid":`memory-previous-cover`,children:(0,Y.jsx)(iJ,{before:n,after:e})}):(0,Y.jsx)(`div`,{className:`flex flex-col px-5 py-4`,"data-testid":`memory-cover`,children:e.trim()?(0,Y.jsx)(jb,{headingLevelStart:2,density:`compact`,contentWidth:`680px`,children:e}):(0,Y.jsx)(`p`,{className:`text-[13px] leading-[1.55] text-[var(--sf-text-3)]`,children:`The cover page is empty. Write what every stage should know first.`})})]})}function sJ({keys:e,filter:t,selectedKey:n,body:r,previous:i,draft:a,editing:o,showPrevious:s,saving:l,loading:u,onFilter:d,onOpen:f,onDraft:p,onEdit:h,onCancel:g,onShowPrevious:_,onSubmit:v,onRestore:y,onDelete:b}){let x=t.trim().toLowerCase(),S=x?e.filter(e=>e.toLowerCase().includes(x)):e,C=s&&i!==null&&!o;return(0,Y.jsxs)(`section`,{className:`flex flex-1 flex-col gap-3`,"data-testid":`memory-cards`,children:[(0,Y.jsxs)(`div`,{className:`flex items-end justify-between`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,Y.jsx)(`h3`,{className:`text-sm font-semibold leading-[1.42857] text-[var(--sf-text-1)]`,children:`Cards`}),(0,Y.jsx)(`p`,{className:`text-xs leading-[1.33333] text-[var(--sf-text-3)]`,children:`Detail an agent filed by key. You can correct or remove any card.`})]}),(0,Y.jsxs)(`span`,{className:`${Qq} text-xs leading-[1.33333] text-[var(--sf-text-3)]`,children:[e.length,` of `,200]})]}),(0,Y.jsxs)(`div`,{className:`grid flex-1 grid-cols-[236px_1fr] gap-4`,children:[(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-col gap-2`,children:[(0,Y.jsxs)(`label`,{className:`flex h-8 items-center gap-2 rounded-lg border border-[var(--sf-hairline)] bg-[var(--sf-panel)] px-2.5`,children:[(0,Y.jsx)(Oe,{className:`size-3.5 shrink-0 text-[var(--sf-text-3)]`,"aria-hidden":!0}),(0,Y.jsx)(`input`,{value:t,onChange:e=>d(e.target.value),placeholder:`Search cards…`,"aria-label":`Filter cards`,className:`min-w-0 flex-1 bg-transparent text-xs leading-[1.33333] text-[var(--sf-text-1)] outline-none placeholder:text-[var(--sf-text-3)]`})]}),e.length===0?(0,Y.jsx)(`p`,{className:`px-2.5 text-xs leading-[1.4] text-[var(--sf-text-3)]`,children:`No cards yet. Agents file them as they work.`}):(0,Y.jsxs)(`ul`,{className:`flex flex-col gap-0.5`,"data-testid":`memory-card-list`,children:[S.map(e=>{let t=e===n;return(0,Y.jsx)(`li`,{children:(0,Y.jsx)(`button`,{type:`button`,onClick:()=>f(e),className:`flex w-full flex-col rounded-lg border px-2.5 py-2 text-left ${t?`border-[var(--sf-hairline-strong)]`:`border-transparent`}`,"data-testid":`memory-card-key`,children:(0,Y.jsx)(`span`,{className:`${Qq} truncate text-[13px] leading-normal ${t?`font-medium text-[var(--sf-text-1)]`:`text-[var(--sf-text-2)]`}`,children:e})})},e)}),S.length===0?(0,Y.jsx)(`li`,{className:`px-2.5 text-xs leading-[1.33333] text-[var(--sf-text-3)]`,children:`No cards match.`}):null]})]}),n?(0,Y.jsxs)(`form`,{onSubmit:v,className:`flex min-w-0 flex-col overflow-hidden rounded-lg border bg-[var(--sf-panel)] ${o?`border-[var(--sf-needs-border)]`:`border-[var(--sf-hairline-strong)]`}`,"data-testid":`memory-open-card`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-3 border-b border-b-[var(--sf-hairline)] px-4 py-3`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(`h4`,{className:`${Qq} truncate text-[15px] font-semibold leading-normal text-[var(--sf-text-1)]`,children:n}),o?(0,Y.jsx)(`span`,{className:`rounded-full bg-[var(--sf-needs-bg)] px-2 py-px text-[11px] font-medium leading-normal text-[var(--sf-needs)]`,children:`Editing`}):null]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(m,{className:`size-3 text-[var(--sf-text-3)]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`text-xs leading-[1.33333] text-[var(--sf-text-3)]`,children:o?`Markdown source · saving keeps today's text as the previous copy`:`${nJ(r??``)} chars`})]})]}),o?(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsxs)(`button`,{type:`button`,onClick:g,className:`${$q} text-[var(--sf-text-2)]`,children:[(0,Y.jsx)(St,{className:`size-3`,"aria-hidden":!0}),`Cancel`]}),(0,Y.jsxs)(`button`,{type:`submit`,disabled:l,className:eJ,children:[(0,Y.jsx)(L,{className:`size-3`,"aria-hidden":!0}),`Save card`]})]},`card-editing`):(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[i===null?null:(0,Y.jsx)(rJ,{previous:s,onChange:_}),C?(0,Y.jsxs)(`button`,{type:`button`,disabled:l,onClick:y,className:`${$q} text-[var(--sf-text-1)] disabled:opacity-40`,children:[(0,Y.jsx)(de,{className:`size-3`,"aria-hidden":!0}),`Restore this copy`]}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`button`,{type:`button`,disabled:u,onClick:h,className:`${$q} text-[var(--sf-text-1)] disabled:opacity-40`,children:[(0,Y.jsx)(c,{className:`size-3`,"aria-hidden":!0}),`Edit`]}),(0,Y.jsxs)(`button`,{type:`button`,disabled:l,onClick:b,className:`${$q} text-[var(--sf-fail)] disabled:opacity-40`,children:[(0,Y.jsx)(Ee,{className:`size-3`,"aria-hidden":!0}),`Delete`]})]})]},`card-reading`)]}),u?(0,Y.jsx)(`div`,{className:`flex flex-1 items-center justify-center px-5 py-10`,"data-testid":`memory-card-loading`,children:(0,Y.jsx)(`p`,{className:`text-[13px] leading-normal text-[var(--sf-text-3)]`,children:`Opening card…`})}):o?(0,Y.jsx)(aJ,{value:a,onChange:p,testId:`memory-card-draft`}):C?(0,Y.jsx)(`div`,{className:`flex flex-1 flex-col`,"data-testid":`memory-previous-card`,children:(0,Y.jsx)(iJ,{before:i,after:r??``})}):(0,Y.jsx)(`div`,{className:`flex flex-1 flex-col px-5 py-4`,"data-testid":`memory-card-body`,children:(0,Y.jsx)(jb,{headingLevelStart:3,density:`compact`,contentWidth:`680px`,children:r??``})}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 border-t border-t-[var(--sf-hairline)] px-4 py-2.5 ${o||C?`bg-[var(--sf-panel)]`:`bg-[var(--sf-ground)]`}`,children:[(0,Y.jsx)(H,{className:`size-3 text-[var(--sf-text-3)]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`flex-1 text-xs leading-[1.33333] text-[var(--sf-text-3)]`,children:o?`Agents see your correction the next time they read this card.`:C?`Only the last copy is kept. Restoring swaps it with the current text.`:`Agents can read and update this card. Only you can delete it or open the previous copy.`}),o?(0,Y.jsxs)(`span`,{className:`${Qq} text-xs leading-[1.33333] text-[var(--sf-text-3)]`,children:[nJ(a),` / `,tJ.toLocaleString(`en-US`)]}):null]})]}):(0,Y.jsx)(`div`,{className:`flex items-center justify-center rounded-lg border border-dashed border-[var(--sf-hairline-strong)] px-6 py-10`,children:(0,Y.jsx)(`p`,{className:`text-[13px] leading-normal text-[var(--sf-text-3)]`,children:e.length===0?`Nothing to open yet.`:`Pick a card to read it.`})})]})]})}function cJ({memoryId:e,cardKey:t,busy:n,onKeep:r,onDelete:i}){return(0,J.useEffect)(()=>{function e(e){e.key===`Escape`&&r()}return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[r]),typeof document>`u`?null:(0,JP.createPortal)((0,Y.jsx)(`div`,{className:`fixed inset-0 z-[200] flex items-center justify-center bg-[#000000a6]`,onMouseDown:e=>{e.target===e.currentTarget&&r()},"data-testid":`memory-delete-dialog`,children:(0,Y.jsxs)(`div`,{className:`flex w-[440px] max-w-[calc(100%-32px)] flex-col overflow-hidden rounded-xl border border-[var(--sf-hairline-strong)] bg-[var(--sf-panel)] shadow-[0px_24px_64px_rgba(0,0,0,0.55)]`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`memory-delete-title`,children:[(0,Y.jsxs)(`div`,{className:`flex gap-4 p-5`,children:[(0,Y.jsx)(`div`,{className:`flex size-9 shrink-0 items-center justify-center rounded-full bg-[var(--sf-fail-bg)]`,children:(0,Y.jsx)(je,{className:`size-4 text-[var(--sf-fail)]`,"aria-hidden":!0})}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-2`,children:[(0,Y.jsxs)(`h2`,{id:`memory-delete-title`,className:`break-words text-base font-semibold leading-[1.3] text-[var(--sf-text-1)]`,children:[`Delete ‘`,t,`’?`]}),(0,Y.jsxs)(`p`,{className:`text-[13px] leading-[1.55] text-[var(--sf-text-2)]`,children:[`This removes the card and its previous copy from `,e,`. Agents lose it the next time they read this memory. This can’t be undone.`]})]})]}),(0,Y.jsxs)(`div`,{className:`flex items-center justify-end gap-2 border-t border-t-[var(--sf-hairline)] bg-[var(--sf-ground)] px-5 py-3`,children:[(0,Y.jsx)(`button`,{type:`button`,onClick:r,className:`flex h-8 items-center rounded-lg border border-[var(--sf-hairline-strong)] px-3 text-[13px] font-medium leading-normal text-[var(--sf-text-1)]`,children:`Keep card`}),(0,Y.jsx)(`button`,{type:`button`,disabled:n,onClick:i,className:`flex h-8 items-center rounded-lg bg-[var(--sf-fail)] px-3 text-[13px] font-medium leading-normal text-[var(--sf-ground)] disabled:opacity-40`,children:`Delete card`})]})]})}),document.body)}var lJ=`sf-mono`,uJ=[{title:`Cover page`,text:`One short page of what matters most. Every stage reads it.`},{title:`Cards`,text:`Details filed by key — a ticket, an order, a release.`},{title:`Attach`,text:`Point a pipeline at the memory and its stages can use it.`}];function dJ(e){if(typeof e==`object`&&e&&`code`in e){let t=e.code;if(typeof t==`string`)return t}}function fJ({memoryId:e,loaded:t}){let[n,r]=(0,J.useState)(null),[i,a]=(0,J.useState)(t?.detail??null),[o,s]=(0,J.useState)(null),[c,l]=(0,J.useState)(null),[u,d]=(0,J.useState)(``),[f,p]=(0,J.useState)(``),[m,h]=(0,J.useState)(!1),[g,_]=(0,J.useState)(t?.detail.body??``),[v,y]=(0,J.useState)(t?.previousCover??null),[b,x]=(0,J.useState)(!1),[S,C]=(0,J.useState)(t?.keys??[]),[w,T]=(0,J.useState)(t?.card?.key??null),[E,D]=(0,J.useState)(t?.card?.body??null),[O,k]=(0,J.useState)(t?.card?.previous??null),[A,j]=(0,J.useState)(t?.card?.body??``),[M,N]=(0,J.useState)(!1),[P,F]=(0,J.useState)(``),[I,L]=(0,J.useState)(!1),[R,z]=(0,J.useState)(!1),[B,V]=(0,J.useState)(!1),[H,ee]=(0,J.useState)(!1),[te,ne]=(0,J.useState)(!1),[re,ie]=(0,J.useState)(!1),[ae,oe]=(0,J.useState)(!1),[ce,le]=(0,J.useState)(``),[ue,de]=(0,J.useState)(!1),fe=(0,J.useRef)(e),pe=(0,J.useRef)(t?.card?.key??null);fe.current=e,(0,J.useEffect)(()=>{let e=!0;return Oo().then(t=>{e&&r(t.memories)},()=>{e&&s(`Memories could not be loaded.`)}),()=>{e=!1}},[]),(0,J.useEffect)(()=>{s(null)},[e]),(0,J.useEffect)(()=>{if(t)return;if(!e){a(null),_(``),y(null),C([]),T(null),D(null),k(null),j(``);return}let n=!0;return ee(!1),ne(!1),ie(!1),oe(!1),le(``),de(!1),a(null),_(``),y(null),C([]),T(null),pe.current=null,D(null),k(null),j(``),(async()=>{try{let[t,r]=await Promise.all([ko(e),No(e)]);if(!n)return;a(t),_(t.body),C(r.keys)}catch{n&&s(`Memory "${e}" could not be opened.`);return}try{let t=await Bo(e);n&&y(t)}catch{n&&y(null)}})(),()=>{n=!1}},[e,t]);function me(){return i?!!(H&&g!==i.body||re&&E!==null&&A!==E):!1}function he(t){t!==e&&(me()&&!window.confirm(`Discard unsaved edits?`)||Z(`#${Ac(t)}`))}async function ge(e){e.preventDefault(),h(!0),l(null);try{let e=await Ao({id:u.trim(),description:f.trim()});r(t=>{let n=[...(t??[]).filter(t=>t.id!==e.id),{id:e.id,description:e.description,cardCount:e.cardCount??0}];return n.sort((e,t)=>e.id.localeCompare(t.id)),n}),d(``),p(``),L(!1),Z(`#${Ac(e.id)}`)}catch(e){l(e instanceof Error?e.message:`That memory could not be created. Check the id and description.`)}finally{h(!1)}}async function _e(t){if(t.preventDefault(),!e||!i||i.id!==e)return;let n=e,r=g;if(r.length>64e3){s(`That text is too long.`);return}let o=i.body;x(!0),s(null);try{let e=await zo(n,r);if(fe.current!==n)return;y(o),a(e),_(e.body),ee(!1),ne(!1)}catch(e){s(dJ(e)===`MEMORY_TOO_LARGE`?`That text is too long.`:`That cover could not be saved.`)}finally{x(!1)}}async function ve(t){if(e){T(t),ie(!1),oe(!1),pe.current=t,j(``),D(null),k(null),s(null),V(!0);try{let n=await Po(e,t);if(pe.current!==t)return;D(n.body),j(n.body)}catch{if(pe.current!==t)return;D(null),k(null),s(`That card could not be opened.`);return}finally{pe.current===t&&V(!1)}try{let n=await Io(e,t);if(pe.current!==t)return;k(n)}catch{if(pe.current!==t)return;k(null)}}}async function ye(t){if(t.preventDefault(),!e||!w)return;let n=e,r=w,i=A;if(i.length>64e3){s(`That text is too long.`);return}let a=E;N(!0),s(null);try{let e=await Lo(n,r,i);if(fe.current!==n||pe.current!==r)return;k(a),D(e.body),j(e.body),ie(!1),oe(!1)}catch(e){s(dJ(e)===`MEMORY_TOO_LARGE`?`That text is too long.`:`That card could not be saved.`)}finally{N(!1)}}async function be(){if(!e||!w||O===null)return;let t=e,n=w,r=O,i=E;N(!0),s(null);try{let e=await Lo(t,n,r);if(fe.current!==t||pe.current!==n)return;k(i),D(e.body),j(e.body),oe(!1)}catch(e){s(dJ(e)===`MEMORY_TOO_LARGE`?`That text is too long.`:`That card could not be restored.`)}finally{N(!1)}}async function xe(){if(!e||!w)return;let t=w;N(!0),s(null);try{await Ro(e,t);let n=S.filter(e=>e!==t);C(n),r(t=>t?.map(t=>t.id===e?{...t,cardCount:n.length}:t)??null),pe.current=null,T(null),D(null),k(null),j(``),ie(!1),oe(!1),de(!1)}catch{de(!1),s(`That card could not be deleted.`)}finally{N(!1)}}let Se=(0,J.useMemo)(()=>{let e=P.trim().toLowerCase();return(n??[]).filter(t=>!e||t.id.toLowerCase().includes(e)||t.description.toLowerCase().includes(e))},[P,n]),Ce=n!==null&&n.length===0,we=n===null?null:n.reduce((t,n)=>t+(n.id===e&&i?S.length:n.cardCount),0);return(0,J.useEffect)(()=>{!e||!i||r(t=>t?.map(t=>t.id===e?{...t,cardCount:S.length}:t)??null)},[e,i,S.length]),(0,J.useEffect)(()=>{function t(t){let r=t.target;if(r instanceof HTMLElement){let e=r.tagName;if(e===`INPUT`||e===`TEXTAREA`||r.isContentEditable)return}if(!n||n.length===0||Se.length===0)return;let a=Se.findIndex(t=>t.id===e);if(t.key===`ArrowDown`||t.key===`ArrowUp`){t.preventDefault();let e=t.key===`ArrowDown`?Math.min(Se.length-1,a<0?0:a+1):Math.max(0,a<0?0:a-1),n=Se[e];n&&he(n.id)}if(t.key===`Enter`&&a<0){let e=Se[0];e&&he(e.id)}if(t.key===`e`||t.key===`E`){if(!i||I||ue||R)return;if(w&&E!==null&&!B&&!re){t.preventDefault(),j(E),ie(!0);return}!H&&(!w||E===null)&&(t.preventDefault(),_(i.body),ee(!0))}}return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[E,A,re,B,g,H,I,ue,i,P,R,n,e,w,Se]),(0,Y.jsxs)(`div`,{className:`flex h-full min-h-0 flex-1 flex-col bg-[var(--sf-ground)] text-[var(--sf-text-1)]`,"data-testid":`memories-page`,children:[(0,Y.jsxs)(`header`,{className:`flex flex-col gap-3 border-b border-b-[var(--sf-hairline)] px-7 pb-4 pt-5`,children:[(0,Y.jsx)(`p`,{className:`text-xs leading-[1.33333] text-[var(--sf-text-3)]`,children:`Connect`}),(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-6`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1.5`,children:[(0,Y.jsx)(`h1`,{className:`text-2xl font-semibold leading-[1.33] tracking-[-0.5px] text-[var(--sf-text-1)]`,children:`Memories`}),(0,Y.jsx)(`p`,{className:`text-[13px] leading-normal text-[var(--sf-text-2)]`,children:`A filing cabinet your pipelines and agents keep reading — a cover page for the gist, cards for the details.`})]}),(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>L(!0),className:`flex h-8 shrink-0 items-center gap-1.5 rounded-lg bg-[var(--sf-text-1)] px-3 text-[13px] font-medium text-[var(--sf-ground)]`,children:[(0,Y.jsx)(se,{className:`size-3.5`,"aria-hidden":!0}),`New memory`]})]})]}),(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1`,children:[(0,Y.jsx)(mJ,{items:Se,selectedId:e,openCardCount:i&&e?S.length:null,filter:P,disabled:Ce,empty:Ce,onFilter:F,onSelect:he}),Ce?(0,Y.jsx)(hJ,{onCreate:()=>L(!0),onHelp:()=>z(!0)}):(0,Y.jsxs)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col gap-5 overflow-auto px-7 py-6`,"data-testid":`memory-page`,children:[o?(0,Y.jsx)(`p`,{className:`text-xs text-[var(--sf-fail)]`,children:o}):null,i?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{className:`flex items-start justify-between gap-6`,children:(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1.5`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2.5`,children:[(0,Y.jsx)(`h2`,{className:`${lJ} text-xl font-semibold leading-[1.4] tracking-[-0.3px]`,children:i.id}),(0,Y.jsx)(`span`,{className:`${lJ} rounded-full border border-[var(--sf-hairline-strong)] px-2 py-px text-[11px] leading-normal text-[var(--sf-text-3)]`,children:`v1`})]}),(0,Y.jsx)(`p`,{className:`text-[13px] leading-normal text-[var(--sf-text-2)]`,children:i.description})]})}),(0,Y.jsx)(oJ,{body:i.body,draft:g,previous:v,editing:H,showPrevious:te,saving:b,onDraft:_,onEdit:()=>{_(i.body),ee(!0)},onCancel:()=>{_(i.body),ee(!1)},onShowPrevious:ne,onSubmit:e=>void _e(e)}),(0,Y.jsx)(sJ,{keys:S,filter:ce,selectedKey:w,body:E,previous:O,draft:A,editing:re,showPrevious:ae,saving:M,loading:B,onFilter:le,onOpen:e=>void ve(e),onDraft:j,onEdit:()=>{j(E??``),ie(!0)},onCancel:()=>{j(E??``),ie(!1)},onShowPrevious:oe,onSubmit:e=>void ye(e),onRestore:()=>void be(),onDelete:()=>de(!0)})]}):(0,Y.jsx)(`p`,{className:`text-sm text-[var(--sf-text-3)]`,children:`Open a memory to read its page.`})]})]}),(0,Y.jsxs)(`footer`,{className:`flex h-11 shrink-0 items-center justify-between border-t border-t-[var(--sf-hairline)] px-7`,children:[(0,Y.jsx)(`p`,{className:`text-xs leading-[1.33333] text-[var(--sf-text-3)]`,children:n===null?``:`${pJ(n.length,`memory`,`memories`)}${we===null?``:` · ${pJ(we,`card`,`cards`)}`}`}),(0,Y.jsx)(`p`,{className:`text-xs leading-[1.33333] text-[var(--sf-text-3)]`,children:`↑ ↓ to move · ↵ to open · E edit`})]}),ue&&e&&w?(0,Y.jsx)(cJ,{memoryId:e,cardKey:w,busy:M,onKeep:()=>de(!1),onDelete:()=>void xe()}):null,I?(0,Y.jsx)(vJ,{id:u,description:f,creating:m,createError:c,onId:d,onDescription:p,onClose:()=>{L(!1),l(null)},onSubmit:e=>void ge(e)}):null,R?(0,Y.jsx)(_J,{onClose:()=>z(!1)}):null]})}function pJ(e,t,n){return`${e} ${e===1?t:n}`}function mJ({items:e,selectedId:t,openCardCount:n,filter:r,disabled:i,empty:a,onFilter:o,onSelect:s}){return(0,Y.jsxs)(`aside`,{className:`flex w-[272px] shrink-0 flex-col gap-3 border-r border-r-[var(--sf-hairline)] p-4`,children:[(0,Y.jsxs)(`label`,{className:`flex h-8 items-center gap-2 rounded-lg border border-[var(--sf-hairline)] bg-[var(--sf-panel)] px-2.5`,children:[(0,Y.jsx)(Oe,{className:`size-3.5 shrink-0 text-[var(--sf-text-3)]`,"aria-hidden":!0}),(0,Y.jsx)(`input`,{value:r,disabled:i,onChange:e=>o(e.target.value),placeholder:`Filter memories…`,className:`min-w-0 flex-1 bg-transparent text-[13px] leading-normal text-[var(--sf-text-1)] outline-none placeholder:text-[var(--sf-text-3)] disabled:cursor-default`})]}),a?(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1 rounded-lg border border-dashed border-[var(--sf-hairline-strong)] px-3 py-4`,children:[(0,Y.jsx)(`p`,{className:`text-[13px] font-medium leading-normal text-[var(--sf-text-2)]`,children:`Nothing filed yet`}),(0,Y.jsx)(`p`,{className:`text-xs leading-[1.4] text-[var(--sf-text-3)]`,children:`Memories you create will list here with their card counts.`})]}):(0,Y.jsx)(`ul`,{className:`flex min-h-0 flex-1 flex-col gap-1 overflow-auto`,"data-testid":`memory-list`,children:e.map(e=>{let r=e.id===t,i=r&&n!==null?n:e.cardCount;return(0,Y.jsx)(`li`,{children:(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>s(e.id),"aria-current":r?`true`:void 0,className:`flex w-full flex-col gap-1.5 rounded-lg p-3 text-left ${r?`border border-[var(--sf-hairline-strong)] bg-[var(--sf-panel)]`:`border border-transparent`}`,children:[(0,Y.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(`span`,{className:`size-1.5 shrink-0 rounded-full ${r?`bg-[var(--sf-needs)]`:`bg-[#3a3d44]`}`}),(0,Y.jsx)(`span`,{className:`${lJ} min-w-0 flex-1 truncate text-[13px] leading-normal ${r?`font-medium text-[var(--sf-text-1)]`:`text-[var(--sf-text-2)]`}`,children:e.id}),(0,Y.jsx)(`span`,{className:`${lJ} text-xs leading-[1.33333] text-[var(--sf-text-3)]`,children:i})]}),(0,Y.jsx)(`span`,{className:`text-xs leading-[1.4] text-[var(--sf-text-3)]`,children:e.description})]})},e.id)})})]})}function hJ({onCreate:e,onHelp:t}){return(0,Y.jsx)(`div`,{className:`flex min-w-0 flex-1 items-center justify-center px-7 py-10`,children:(0,Y.jsxs)(`div`,{className:`flex w-[560px] max-w-full flex-col items-center gap-6`,children:[(0,Y.jsx)(`div`,{className:`flex size-14 items-center justify-center rounded-xl border border-[var(--sf-hairline-strong)] bg-[var(--sf-raised)]`,children:(0,Y.jsx)(He,{className:`size-6 text-[var(--sf-text-2)]`,"aria-hidden":!0})}),(0,Y.jsxs)(`div`,{className:`flex flex-col items-center gap-2`,children:[(0,Y.jsx)(`h2`,{className:`text-xl font-semibold leading-[1.4] tracking-[-0.3px] text-[var(--sf-text-1)]`,children:`No memories yet`}),(0,Y.jsx)(`p`,{className:`max-w-[440px] text-center text-[13px] leading-[1.55] text-[var(--sf-text-2)]`,children:`A memory is a page your pipelines and agents can keep reading, plus cards for the details. Create one, then attach it to a pipeline.`})]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsxs)(`button`,{type:`button`,onClick:e,className:`flex h-8 items-center gap-1.5 rounded-lg bg-[var(--sf-text-1)] px-3 text-[13px] font-medium text-[var(--sf-ground)]`,children:[(0,Y.jsx)(se,{className:`size-3.5`,"aria-hidden":!0}),`Create your first memory`]}),(0,Y.jsxs)(`button`,{type:`button`,onClick:t,className:`flex h-8 items-center gap-1.5 rounded-lg border border-[var(--sf-hairline-strong)] px-3 text-[13px] font-medium text-[var(--sf-text-2)]`,children:[(0,Y.jsx)(me,{className:`size-3.5`,"aria-hidden":!0}),`How memory works`]})]}),(0,Y.jsx)(`div`,{className:`grid w-full grid-cols-3 gap-3 pt-2`,children:uJ.map(e=>(0,Y.jsx)(gJ,{title:e.title,text:e.text},e.title))})]})})}function gJ({title:e,text:t}){return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1.5 rounded-lg border border-[var(--sf-hairline)] bg-[var(--sf-panel)] p-3.5`,children:[(0,Y.jsx)(`p`,{className:`text-[13px] font-medium leading-normal text-[var(--sf-text-1)]`,children:e}),(0,Y.jsx)(`p`,{className:`text-xs leading-[1.45] text-[var(--sf-text-3)]`,children:t})]})}function _J({onClose:e}){return(0,J.useEffect)(()=>{function t(t){t.key===`Escape`&&e()}return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[e]),typeof document>`u`?null:(0,JP.createPortal)((0,Y.jsx)(`div`,{className:`fixed inset-0 z-[200] flex items-center justify-center bg-[#000000a6] p-4`,onMouseDown:t=>{t.target===t.currentTarget&&e()},children:(0,Y.jsxs)(`div`,{className:`flex w-[560px] max-w-full flex-col gap-5 rounded-xl border border-[var(--sf-hairline-strong)] bg-[var(--sf-panel)] p-6 shadow-[0px_24px_64px_rgba(0,0,0,0.55)]`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`memory-help-title`,children:[(0,Y.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,Y.jsx)(`h2`,{id:`memory-help-title`,className:`text-base font-semibold leading-normal text-[var(--sf-text-1)]`,children:`How memory works`}),(0,Y.jsx)(`button`,{type:`button`,onClick:e,className:`text-[var(--sf-text-3)]`,"aria-label":`Close`,children:(0,Y.jsx)(St,{className:`size-4`})})]}),(0,Y.jsx)(`div`,{className:`grid grid-cols-1 gap-3 sm:grid-cols-3`,children:uJ.map(e=>(0,Y.jsx)(gJ,{title:e.title,text:e.text},e.title))})]})}),document.body)}function vJ({id:e,description:t,creating:n,createError:r,onId:i,onDescription:a,onClose:o,onSubmit:s}){return(0,J.useEffect)(()=>{function e(e){e.key===`Escape`&&o()}return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[o]),typeof document>`u`?null:(0,JP.createPortal)((0,Y.jsx)(`div`,{className:`fixed inset-0 z-[200] flex items-center justify-center bg-[#000000a6]`,onMouseDown:e=>{e.target===e.currentTarget&&o()},children:(0,Y.jsxs)(`form`,{onSubmit:s,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`new-memory-title`,className:`flex w-[480px] max-w-[calc(100%-32px)] flex-col overflow-hidden rounded-xl border border-[var(--sf-hairline-strong)] bg-[var(--sf-panel)] shadow-[0px_24px_64px_rgba(0,0,0,0.55)]`,children:[(0,Y.jsxs)(`div`,{className:`flex items-start gap-3 border-b border-b-[var(--sf-hairline)] px-5 py-4`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-1 flex-col gap-1`,children:[(0,Y.jsx)(`h2`,{id:`new-memory-title`,className:`text-base font-semibold leading-normal text-[var(--sf-text-1)]`,children:`New memory`}),(0,Y.jsx)(`p`,{className:`text-[13px] leading-normal text-[var(--sf-text-2)]`,children:`Give it an id pipelines can refer to, and say what it is for.`})]}),(0,Y.jsx)(`button`,{type:`button`,onClick:o,className:`text-[var(--sf-text-3)]`,"aria-label":`Close`,children:(0,Y.jsx)(St,{className:`size-4`})})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-4 p-5`,children:[(0,Y.jsxs)(`label`,{className:`flex flex-col gap-1.5`,children:[(0,Y.jsx)(`span`,{className:`text-xs font-medium leading-[1.33333] text-[var(--sf-text-2)]`,children:`Id`}),(0,Y.jsx)(`input`,{value:e,onChange:e=>i(e.target.value),"data-testid":`memory-id`,className:`${lJ} h-9 rounded-lg border border-[var(--sf-hairline-strong)] bg-[var(--sf-raised)] px-3 text-[13px] leading-normal text-[var(--sf-text-1)] outline-none`}),(0,Y.jsx)(`span`,{className:`text-xs leading-[1.33333] text-[var(--sf-text-3)]`,children:`Lowercase letters, numbers and dashes. Can't be changed later.`})]}),(0,Y.jsxs)(`label`,{className:`flex flex-col gap-1.5`,children:[(0,Y.jsx)(`span`,{className:`text-xs font-medium leading-[1.33333] text-[var(--sf-text-2)]`,children:`Description`}),(0,Y.jsx)(`input`,{value:t,onChange:e=>a(e.target.value),placeholder:`People this pipeline has already sourced.`,"data-testid":`memory-description`,className:`h-9 rounded-lg border border-[var(--sf-hairline-strong)] bg-[var(--sf-raised)] px-3 text-[13px] leading-normal text-[var(--sf-text-1)] outline-none placeholder:text-[var(--sf-text-3)]`})]}),(0,Y.jsxs)(`div`,{className:`flex items-start gap-2 rounded-lg bg-[var(--sf-running-bg)] px-3 py-2.5`,children:[(0,Y.jsx)(pt,{className:`mt-px size-3.5 shrink-0 text-[var(--sf-running)]`,"aria-hidden":!0}),(0,Y.jsx)(`p`,{className:`text-xs leading-[1.45] text-[var(--sf-text-2)]`,children:`The memory starts empty. Write its cover page after you create it, then attach it to a pipeline.`})]}),r?(0,Y.jsx)(`p`,{className:`text-xs text-[var(--sf-fail)]`,children:r}):null]}),(0,Y.jsxs)(`div`,{className:`flex items-center justify-end gap-2 border-t border-t-[var(--sf-hairline)] bg-[var(--sf-ground)] px-5 py-3`,children:[(0,Y.jsx)(`button`,{type:`button`,onClick:o,className:`flex h-8 items-center rounded-lg border border-[var(--sf-hairline-strong)] px-3 text-[13px] font-medium text-[var(--sf-text-2)]`,children:`Cancel`}),(0,Y.jsx)(`button`,{type:`submit`,disabled:n||e.trim().length===0||t.trim().length===0,className:`flex h-8 items-center rounded-lg bg-[var(--sf-text-1)] px-3 text-[13px] font-medium text-[var(--sf-ground)] disabled:opacity-40`,children:`Create memory`})]})]})}),document.body)}var yJ=`[font-family:'Geist_Mono',_monospace]`,bJ=`text-[#8b8f98] font-sans text-[11px] font-medium leading-normal tracking-[0.88px] uppercase [white-space-collapse:collapse] [text-wrap-mode:nowrap]`,xJ=`rounded-lg border border-[#ffffff12] bg-[#131418]`;function SJ({connection:e,meta:t}){let n=AO(e,t),r=n.tone===`ok`?`border-[#4cc38a40] bg-[#4cc38a14] text-[#4cc38a]`:n.tone===`needs`?`border-[#f5b54447] bg-[#f5b54414] text-[#f5b544]`:`border-[#ffffff1a] bg-[#1a1c21] text-[#a7aab2]`,i=n.tone===`ok`?G:n.tone===`needs`?je:k;return(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5 rounded-full border px-2.5 py-0.5 text-xs ${r}`,children:[(0,Y.jsx)(i,{className:`size-3 block`,"aria-hidden":!0}),n.label]})}function CJ({connectionId:e}){let{meta:t}=TO(),[n,r]=(0,J.useState)(null),[i,a]=(0,J.useState)(`loading`),[o,s]=(0,J.useState)(null),[c,l]=(0,J.useState)(!1),[u,d]=(0,J.useState)(!1),[f,p]=(0,J.useState)(()=>Date.now()),[m,h]=(0,J.useState)(null),[g,_]=(0,J.useState)(``),[v,y]=(0,J.useState)(!1),[b,x]=(0,J.useState)(!1),[S,C]=(0,J.useState)(null);(0,J.useEffect)(()=>{let t=!1;return zi().then(n=>{if(t)return;let i=n.connections.find(t=>t.id===e);r(i??null),s(n.error??null),a(i?`ready`:n.error?`error`:`missing`)},e=>{t||(s(e instanceof Error?e.message:String(e)),a(`error`))}),()=>{t=!0}},[e]);let w=(0,J.useCallback)(()=>{l(!0),Ji(e).then(e=>{r(t=>t&&{...t,health:e}),p(Date.now())}).catch(e=>s(e instanceof Error?e.message:String(e))).finally(()=>l(!1))},[e]),T=()=>Z(`/connections`),E=async e=>{x(!0),C(null);try{await e()}catch(e){C(HO(e instanceof Bi?e.code:`unknown`,t))}finally{x(!1)}},D=t=>E(async()=>{let n=await Wi(e,{secrets:{[t]:g.trim()}});r(e=>e&&{...e,secrets:{...e.secrets??{},[t]:`store`},...n.health?{health:n.health}:{}}),h(null),_(``),p(Date.now())}),O=t=>E(async()=>{let n=await Wi(e,{enabled:t});r(e=>e&&{...e,enabled:t,...n.health?{health:n.health}:{}}),p(Date.now())}),k=()=>E(async()=>{await Gi(e),Z(`/connections`)}),A=n?EO(t,n.provider)?.fields.filter(e=>e.target===`secret`)??[]:[],j=n?DO(t,n.provider):void 0,M=n?AO(n,t):null,N=n?.health?.state===`failed`?RO(n.health.error?.code,t):void 0,P=n?LO(n.provider,n.id,t):``;return(0,Y.jsx)(`div`,{className:`flex h-full min-h-0 min-w-0 flex-1 flex-col bg-[#0c0d0f]`,children:(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto`,children:[(0,Y.jsx)($c,{crumbs:[{label:`Connections`,onClick:T}],title:(0,Y.jsx)(`span`,{className:yJ,children:n?.identity??e}),titleAddon:n?(0,Y.jsx)(SJ,{connection:n,meta:t}):null,description:n?`${j??n.provider} · Communication channel · ${n.health?`Last checked ${jO(n.health.checkedAt,f)}`:`Not checked yet`}`:void 0,actions:n?(0,Y.jsxs)(Y.Fragment,{children:[n.enabled?(0,Y.jsxs)(`button`,{type:`button`,onClick:w,disabled:c||b,className:`flex h-8 items-center gap-2 rounded-lg border border-[#ffffff1a] bg-[#1a1c21] px-3 text-[13px] font-medium text-[#ecedee] disabled:opacity-60`,children:[(0,Y.jsx)(nt,{className:`size-3.5 block ${c?`animate-spin`:``}`,"aria-hidden":!0}),c?`Checking`:`Test connection`]}):null,(0,Y.jsx)(`button`,{type:`button`,onClick:()=>void O(!n.enabled),disabled:b,className:`flex h-8 items-center rounded-lg border border-[#ffffff1a] px-3 text-[13px] text-[#a7aab2] hover:bg-[#1a1c21] disabled:opacity-60`,children:n.enabled?`Disable`:`Enable`})]}):void 0}),i===`loading`?(0,Y.jsx)(`div`,{className:`px-7 py-7 text-[13px] text-[#8b8f98]`,children:`Loading…`}):null,i===`missing`?(0,Y.jsxs)(`div`,{className:`px-7 py-7 text-[13px] text-[#a7aab2]`,children:[`No connection named `,(0,Y.jsx)(`span`,{className:yJ,children:e}),` in connections.yaml.`,` `,(0,Y.jsx)(`button`,{type:`button`,onClick:T,className:`text-[#6ca6ff] underline`,children:`Back to Connections`})]}):null,i===`error`?(0,Y.jsxs)(`div`,{className:`mx-7 mt-7 flex items-start gap-2 rounded-lg border border-[#f5b54447] bg-[#16140f] px-3 py-2.5 text-[13px] text-[#f5b544]`,role:`alert`,children:[(0,Y.jsx)(je,{className:`mt-0.5 size-3.5 shrink-0`,"aria-hidden":!0}),`Could not load this connection: `,o?OO(t,o):`unknown error`]}):null,n&&M?(0,Y.jsxs)(`div`,{className:`grid grid-cols-1 gap-6 px-7 py-7 lg:grid-cols-[minmax(0,1fr)_340px]`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-6`,children:[(0,Y.jsxs)(`section`,{className:`${xJ} flex flex-col gap-3 p-4`,"aria-label":`Status`,children:[(0,Y.jsx)(`span`,{className:bJ,children:`Status`}),(0,Y.jsx)(`div`,{className:`flex items-start gap-2`,children:(0,Y.jsx)(`span`,{className:`text-[15px] font-semibold text-[#ecedee]`,children:M.label})}),M.detail?(0,Y.jsx)(`p`,{className:`text-[13px] leading-normal text-[#a7aab2]`,children:M.detail}):null,N?(0,Y.jsx)(`p`,{className:`text-[13px] leading-[1.5] text-[#a7aab2]`,children:N}):null,n.health?null:(0,Y.jsx)(`p`,{className:`text-[13px] leading-[1.5] text-[#a7aab2]`,children:`Stageflow has not checked this connection yet. The host checks every few minutes, or run a check now.`}),n.health?.state===`ok`?(0,Y.jsx)(`p`,{className:`text-[13px] leading-[1.5] text-[#a7aab2]`,children:`The provider accepted the credential. A passing check does not prove a message will be delivered to a particular recipient.`}):null,n.enabled?null:(0,Y.jsx)(`p`,{className:`text-[13px] leading-[1.5] text-[#a7aab2]`,children:`This connection is disabled in connections.yaml, so stages cannot use it.`})]}),(0,Y.jsxs)(`section`,{className:`${xJ} flex flex-col gap-3 p-4`,"aria-label":`Use in a stage`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Y.jsx)(`span`,{className:bJ,children:`Use in a stage`}),(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>{navigator.clipboard?.writeText(P).then(()=>{d(!0),window.setTimeout(()=>d(!1),1500)},()=>void 0)},className:`flex h-7 items-center gap-1.5 rounded-md border border-[#ffffff1a] px-2 text-xs text-[#a7aab2] hover:bg-[#1a1c21]`,children:[u?(0,Y.jsx)(G,{className:`size-3 block text-[#4cc38a]`,"aria-hidden":!0}):(0,Y.jsx)(R,{className:`size-3 block`,"aria-hidden":!0}),u?`Copied`:`Copy`]})]}),(0,Y.jsxs)(`p`,{className:`text-[13px] leading-[1.5] text-[#a7aab2]`,children:[`A stage sends through this connection by declaring it under `,(0,Y.jsx)(`span`,{className:yJ,children:`channels:`}),` with the recipient pinned. The agent gets a `,(0,Y.jsx)(`span`,{className:yJ,children:`send_message`}),` tool and cannot choose another recipient.`]}),(0,Y.jsx)(`pre`,{className:`overflow-x-auto rounded-lg border border-[#ffffff12] bg-[#0c0d0f] p-3 text-xs leading-[1.6] text-[#ecedee] ${yJ}`,children:P})]})]}),(0,Y.jsxs)(`aside`,{className:`flex min-w-0 flex-col gap-6`,"aria-label":`Details`,children:[(0,Y.jsxs)(`section`,{className:`${xJ} flex flex-col gap-3 p-4`,children:[(0,Y.jsx)(`span`,{className:bJ,children:`Connection`}),(0,Y.jsx)(`dl`,{className:`flex flex-col gap-2.5`,children:zO(n,t).map(e=>(0,Y.jsxs)(`div`,{className:`flex items-baseline justify-between gap-3`,children:[(0,Y.jsx)(`dt`,{className:`text-xs text-[#8b8f98]`,children:e.label}),(0,Y.jsx)(`dd`,{className:`min-w-0 truncate text-[13px] text-[#ecedee] ${e.mono?yJ:``}`,title:e.value,children:e.value})]},e.label))})]}),(0,Y.jsxs)(`section`,{className:`${xJ} flex flex-col gap-3 p-4`,"aria-label":`Credential`,children:[(0,Y.jsx)(`span`,{className:bJ,children:`Credential`}),n.credential?(0,Y.jsxs)(`p`,{className:`text-xs leading-[1.5] text-[#8b8f98]`,children:[`Uses the shared credential `,(0,Y.jsx)(`span`,{className:yJ,children:n.credential}),`. Its values are never shown or written to connections.yaml.`]}):null,A.map(e=>{let t=n.secrets?.[e.key];return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2 text-[13px] text-[#ecedee]`,children:[(0,Y.jsx)(re,{className:`size-3.5 block shrink-0 text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`truncate`,children:e.label})]}),m===e.key?null:(0,Y.jsx)(`button`,{type:`button`,onClick:()=>{h(e.key),_(``),C(null)},className:`shrink-0 rounded-md border border-[#ffffff1a] px-2 py-1 text-xs text-[#a7aab2] hover:bg-[#1a1c21]`,children:`Replace`})]}),(0,Y.jsx)(`span`,{className:`text-xs leading-[1.4] text-[#8b8f98]`,children:t===`store`?`Stored on this host. Never written to connections.yaml.`:`Read from the host environment (an env: reference in connections.yaml). Replacing it stores the new value on this host instead.`}),m===e.key?(0,Y.jsxs)(`form`,{className:`flex flex-col gap-2`,onSubmit:t=>{t.preventDefault(),g.trim()&&D(e.key)},children:[(0,Y.jsx)(`input`,{type:`password`,value:g,onChange:e=>_(e.target.value),autoComplete:`off`,autoFocus:!0,"aria-label":`New ${e.label}`,placeholder:e.placeholder,className:`h-9 w-full rounded-lg border border-[#ffffff1a] bg-[#1a1c21] px-3 text-[13px] text-[#ecedee] outline-none placeholder:text-[#8b8f98] focus:border-[#ecedee73] ${yJ}`}),(0,Y.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Y.jsx)(`button`,{type:`submit`,disabled:b||!g.trim(),className:`h-8 rounded-lg bg-[#ecedee] px-3 text-[13px] font-medium text-[#0c0d0f] disabled:opacity-60`,children:b?`Saving…`:`Save and check`}),(0,Y.jsx)(`button`,{type:`button`,onClick:()=>{h(null),_(``)},className:`h-8 rounded-lg px-3 text-[13px] text-[#a7aab2] hover:bg-[#1a1c21]`,children:`Cancel`})]})]}):null]},e.key)}),A.length===0&&!n.credential?(0,Y.jsx)(`p`,{className:`text-xs leading-[1.5] text-[#8b8f98]`,children:`This provider needs no secret of its own.`}):null]}),S?(0,Y.jsxs)(`div`,{className:`flex items-start gap-2 text-[13px] text-[#f2645a]`,role:`alert`,children:[(0,Y.jsx)(je,{className:`mt-0.5 size-3.5 shrink-0`,"aria-hidden":!0}),S]}):null,(0,Y.jsxs)(`section`,{className:`flex flex-col gap-2 rounded-lg border border-[#f2645a40] p-4`,"aria-label":`Disconnect`,children:[(0,Y.jsx)(`span`,{className:bJ,children:`Disconnect`}),(0,Y.jsxs)(`p`,{className:`text-xs leading-[1.5] text-[#a7aab2]`,children:[`Removes this entry from connections.yaml and deletes its stored secret. Stages that still list it will fail validation. Nothing is deleted at `,j??`the provider`,`.`]}),v?(0,Y.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Y.jsx)(`button`,{type:`button`,onClick:()=>void k(),disabled:b,className:`h-8 rounded-lg border border-[#f2645a] bg-[#f2645a1f] px-3 text-[13px] font-medium text-[#f2645a] disabled:opacity-60`,children:b?`Removing…`:`Yes, disconnect`}),(0,Y.jsx)(`button`,{type:`button`,onClick:()=>y(!1),className:`h-8 rounded-lg px-3 text-[13px] text-[#a7aab2] hover:bg-[#1a1c21]`,children:`Cancel`})]}):(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>y(!0),className:`h-8 w-fit rounded-lg border border-[#f2645a66] px-3 text-[13px] text-[#f2645a] hover:bg-[#f2645a14]`,children:[`Disconnect `,j??`connection`]})]})]})]}):null]})})}function wJ({skillName:e}){let[t,n]=(0,J.useState)([]),[r,i]=(0,J.useState)(null),[a,o]=(0,J.useState)(!0),s=(0,J.useCallback)(async()=>{try{let e=await sa();n(e.skills),i(null)}catch(e){i(e instanceof Error?e.message:String(e))}finally{o(!1)}},[]);(0,J.useEffect)(()=>{s()},[s]);let c=e?t.find(t=>t.name===e)??null:null;return e?(0,Y.jsx)(TJ,{skillName:e,skill:c,loading:a,error:r}):(0,Y.jsxs)(`div`,{className:`main__inner main__inner--wide`,children:[(0,Y.jsx)(`div`,{className:`page-head`,children:(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`h1`,{children:`Skills`}),(0,Y.jsx)(`p`,{children:`Skills the Pi SDK can discover on this machine. Factory stages do not load them.`})]})}),r?(0,Y.jsx)(`p`,{style:{color:`var(--color-text-red)`},children:r}):null,a?(0,Y.jsx)(`p`,{className:`muted`,children:`Loading skills…`}):null,!a&&t.length===0?(0,Y.jsx)(`p`,{className:`muted`,children:`No skills found under ~/.pi/agent/skills, ~/.agents/skills, or this project's .pi/skills / .agents/skills.`}):null,!a&&t.length>0?(0,Y.jsxs)(`table`,{className:`data-table`,children:[(0,Y.jsx)(`thead`,{children:(0,Y.jsxs)(`tr`,{children:[(0,Y.jsx)(`th`,{children:`Skill`}),(0,Y.jsx)(`th`,{children:`Scope`}),(0,Y.jsx)(`th`,{children:`Source`}),(0,Y.jsx)(`th`,{children:`Invocation`})]})}),(0,Y.jsx)(`tbody`,{children:t.map(e=>(0,Y.jsxs)(`tr`,{children:[(0,Y.jsxs)(`td`,{children:[(0,Y.jsx)(`a`,{href:`#${Cc(e.name)}`,children:e.name}),(0,Y.jsx)(`div`,{className:`muted`,style:{fontSize:`var(--font-size-xs)`},children:e.description})]}),(0,Y.jsx)(`td`,{className:`mono`,children:e.scope}),(0,Y.jsx)(`td`,{className:`mono`,children:e.source}),(0,Y.jsx)(`td`,{className:`mono`,children:e.disableModelInvocation?`command-only`:`model`})]},`${e.scope}:${e.filePath}`))})]}):null]})}function TJ({skillName:e,skill:t,loading:n,error:r}){return(0,Y.jsxs)(`div`,{className:`main__inner`,children:[(0,Y.jsxs)(`p`,{className:`crumbs`,children:[(0,Y.jsx)(`a`,{href:`#/skills`,children:`Skills`}),` / `,e]}),(0,Y.jsx)(`div`,{className:`page-head`,children:(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`h1`,{children:e}),(0,Y.jsx)(`p`,{className:`mono`,children:t?`${t.scope} · ${t.source}`:e})]})}),r?(0,Y.jsx)(`p`,{style:{color:`var(--color-text-red)`},children:r}):null,n?(0,Y.jsx)(`p`,{className:`muted`,children:`Loading…`}):null,!n&&!t?(0,Y.jsxs)(`p`,{className:`muted`,children:[e,` is not in the Pi skill catalog on this machine.`]}):null,t?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`h3`,{children:`Description`}),(0,Y.jsx)(`p`,{children:t.description}),(0,Y.jsx)(`p`,{className:`muted`,style:{fontSize:`var(--font-size-sm)`},children:`Invocation`}),(0,Y.jsx)(`p`,{className:`mono`,children:t.disableModelInvocation?`command-only`:`model`}),(0,Y.jsx)(`p`,{className:`muted`,style:{fontSize:`var(--font-size-sm)`},children:`File path`}),(0,Y.jsx)(`p`,{className:`mono`,children:t.filePath}),(0,Y.jsx)(`p`,{className:`muted`,style:{fontSize:`var(--font-size-sm)`},children:`Base dir`}),(0,Y.jsx)(`p`,{className:`mono`,children:t.baseDir})]}):null]})}function EJ({embedded:e,packageScope:t,packageSource:n,filePath:r}){let[i,a]=(0,J.useState)([]),[o,s]=(0,J.useState)([]),[c,l]=(0,J.useState)(null),[u,d]=(0,J.useState)(!0),f=(0,J.useCallback)(async()=>{try{let e=await ua();a(e.packages),s(e.extensions),l(null)}catch(e){l(e instanceof Error?e.message:String(e))}finally{d(!1)}},[]);if((0,J.useEffect)(()=>{f()},[f]),t&&n){let e=i.find(e=>e.scope===t&&e.source===n)??null;return(0,Y.jsx)(DJ,{scope:t,source:n,pkg:e,loading:u,error:c})}if(r){let e=o.find(e=>e.path===r)??null;return(0,Y.jsx)(OJ,{filePath:r,file:e,loading:u,error:c})}let p=!u&&i.length===0&&o.length===0;return(0,Y.jsxs)(`div`,{className:e?`sf-extensions-embedded`:`main__inner main__inner--wide`,children:[e?null:(0,Y.jsx)(`div`,{className:`page-head`,children:(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`h1`,{children:`Extensions`}),(0,Y.jsx)(`p`,{children:`Extensions the Pi SDK can discover on this machine. Factory stages do not load them.`})]})}),c?(0,Y.jsx)(`p`,{style:{color:`var(--color-text-red)`},children:c}):null,u?(0,Y.jsx)(`p`,{className:`muted`,children:`Loading extensions…`}):null,p?(0,Y.jsx)(`p`,{className:`muted`,children:`No extensions found under ~/.pi/agent/extensions, this project's .pi/extensions, or packages in Pi settings.`}):null,!u&&i.length>0?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`h3`,{children:`Packages`}),(0,Y.jsxs)(`table`,{className:`data-table`,children:[(0,Y.jsx)(`thead`,{children:(0,Y.jsxs)(`tr`,{children:[(0,Y.jsx)(`th`,{children:`Source`}),(0,Y.jsx)(`th`,{children:`Scope`}),(0,Y.jsx)(`th`,{children:`Installed`})]})}),(0,Y.jsx)(`tbody`,{children:i.map(e=>(0,Y.jsxs)(`tr`,{children:[(0,Y.jsx)(`td`,{children:(0,Y.jsx)(`a`,{href:`#${Ec(e.scope,e.source)}`,children:e.source})}),(0,Y.jsx)(`td`,{className:`mono`,children:e.scope}),(0,Y.jsx)(`td`,{className:`mono`,children:e.installedPath??`not installed`})]},`${e.scope}:${e.source}`))})]})]}):null,!u&&o.length>0?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`h3`,{children:`Files`}),(0,Y.jsxs)(`table`,{className:`data-table`,children:[(0,Y.jsx)(`thead`,{children:(0,Y.jsxs)(`tr`,{children:[(0,Y.jsx)(`th`,{children:`Name`}),(0,Y.jsx)(`th`,{children:`Scope`}),(0,Y.jsx)(`th`,{children:`Source`}),(0,Y.jsx)(`th`,{children:`Origin`})]})}),(0,Y.jsx)(`tbody`,{children:o.map(e=>(0,Y.jsxs)(`tr`,{children:[(0,Y.jsx)(`td`,{children:(0,Y.jsx)(`a`,{href:`#${Dc(e.path)}`,children:e.name})}),(0,Y.jsx)(`td`,{className:`mono`,children:e.scope}),(0,Y.jsx)(`td`,{className:`mono`,children:e.source}),(0,Y.jsx)(`td`,{className:`mono`,children:e.origin})]},`${e.scope}:${e.path}`))})]})]}):null]})}function DJ({scope:e,source:t,pkg:n,loading:r,error:i}){return(0,Y.jsxs)(`div`,{className:`main__inner`,children:[(0,Y.jsxs)(`p`,{className:`crumbs`,children:[(0,Y.jsx)(`a`,{href:`#/extensions`,children:`Extensions`}),` / `,t]}),(0,Y.jsx)(`div`,{className:`page-head`,children:(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`h1`,{children:t}),(0,Y.jsx)(`p`,{className:`mono`,children:n?`${n.scope} · package`:`${e} · package`})]})}),i?(0,Y.jsx)(`p`,{style:{color:`var(--color-text-red)`},children:i}):null,r?(0,Y.jsx)(`p`,{className:`muted`,children:`Loading…`}):null,!r&&!n?(0,Y.jsxs)(`p`,{className:`muted`,children:[t,` is not in the Pi package catalog on this machine.`]}):null,n?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`p`,{className:`muted`,style:{fontSize:`var(--font-size-sm)`},children:`Scope`}),(0,Y.jsx)(`p`,{className:`mono`,children:n.scope}),(0,Y.jsx)(`p`,{className:`muted`,style:{fontSize:`var(--font-size-sm)`},children:`Source`}),(0,Y.jsx)(`p`,{className:`mono`,children:n.source}),(0,Y.jsx)(`p`,{className:`muted`,style:{fontSize:`var(--font-size-sm)`},children:`Filtered`}),(0,Y.jsx)(`p`,{className:`mono`,children:n.filtered?`yes`:`no`}),(0,Y.jsx)(`p`,{className:`muted`,style:{fontSize:`var(--font-size-sm)`},children:`Installed path`}),(0,Y.jsx)(`p`,{className:`mono`,children:n.installedPath??`not installed`})]}):null]})}function OJ({filePath:e,file:t,loading:n,error:r}){let i=t?.name??e;return(0,Y.jsxs)(`div`,{className:`main__inner`,children:[(0,Y.jsxs)(`p`,{className:`crumbs`,children:[(0,Y.jsx)(`a`,{href:`#/extensions`,children:`Extensions`}),` / `,i]}),(0,Y.jsx)(`div`,{className:`page-head`,children:(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`h1`,{children:i}),(0,Y.jsx)(`p`,{className:`mono`,children:t?`${t.scope} · ${t.source}`:e})]})}),r?(0,Y.jsx)(`p`,{style:{color:`var(--color-text-red)`},children:r}):null,n?(0,Y.jsx)(`p`,{className:`muted`,children:`Loading…`}):null,!n&&!t?(0,Y.jsx)(`p`,{className:`muted`,children:`This path is not in the Pi extension catalog on this machine.`}):null,t?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`p`,{className:`muted`,style:{fontSize:`var(--font-size-sm)`},children:`Scope`}),(0,Y.jsx)(`p`,{className:`mono`,children:t.scope}),(0,Y.jsx)(`p`,{className:`muted`,style:{fontSize:`var(--font-size-sm)`},children:`Source`}),(0,Y.jsx)(`p`,{className:`mono`,children:t.source}),(0,Y.jsx)(`p`,{className:`muted`,style:{fontSize:`var(--font-size-sm)`},children:`Origin`}),(0,Y.jsx)(`p`,{className:`mono`,children:t.origin}),(0,Y.jsx)(`p`,{className:`muted`,style:{fontSize:`var(--font-size-sm)`},children:`File path`}),(0,Y.jsx)(`p`,{className:`mono`,children:t.path}),t.baseDir?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`p`,{className:`muted`,style:{fontSize:`var(--font-size-sm)`},children:`Base dir`}),(0,Y.jsx)(`p`,{className:`mono`,children:t.baseDir})]}):null]}):null]})}var kJ=`[font-family:'Geist_Mono',_monospace]`,AJ=`rounded-sm border border-[#0c0d0f2e] px-[5px] py-0 ${kJ} text-[11px] leading-normal text-[#5a5d66]`,jJ={stages:`Filter stages…`,skills:`Filter skills…`};function MJ({active:e,label:t,count:n,onClick:r}){return(0,Y.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":e,onClick:r,className:`flex h-full items-center gap-1.5 rounded-md px-2.5 py-0 text-[13px] leading-normal ${e?`border border-[#ffffff1a] bg-[#1a1c21] font-medium text-[#ecedee]`:`border border-transparent text-[#a7aab2] hover:text-[#ecedee]`}`,children:[(0,Y.jsx)(`span`,{children:t}),n==null?null:(0,Y.jsx)(`span`,{className:`${kJ} text-xs leading-normal ${e?`text-[#a7aab2]`:`text-[#8b8f98]`}`,children:n})]})}function NJ({active:e,stageCount:t,skillCount:n,query:r,onQueryChange:i,searchRef:a,onNewStage:o,onInstallSkill:s}){let c=e===`skills`?`skills`:`stages`;function l(e){Z(wc({tab:e}))}return(0,Y.jsx)($c,{title:`Catalog`,titleAddon:(0,Y.jsxs)(`div`,{className:`flex h-8 shrink-0 items-center gap-0.5 rounded-lg border border-[#ffffff12] bg-[#131418] p-0.5`,role:`tablist`,children:[(0,Y.jsx)(MJ,{active:c===`stages`,label:`Stages`,count:t,onClick:()=>l(`stages`)}),(0,Y.jsx)(MJ,{active:c===`skills`,label:`Skills`,count:n,onClick:()=>l(`skills`)})]}),actions:(0,Y.jsxs)(Y.Fragment,{children:[e===`stages`?(0,Y.jsxs)(`button`,{type:`button`,onClick:o,className:`flex h-8 shrink-0 items-center gap-2 rounded-lg bg-[#ecedee] px-3 py-0`,children:[(0,Y.jsx)(se,{className:`size-3.5 text-[#0c0d0f]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`font-sans text-[13px] font-medium leading-normal text-[#0c0d0f]`,children:`New stage`}),(0,Y.jsx)(`span`,{className:AJ,children:`N`})]}):null,e===`skills`?(0,Y.jsxs)(`button`,{type:`button`,onClick:s,className:`flex h-8 shrink-0 items-center gap-2 rounded-lg bg-[#ecedee] px-3 py-0`,children:[(0,Y.jsx)(v,{className:`size-3.5 text-[#0c0d0f]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`font-sans text-[13px] font-medium leading-normal text-[#0c0d0f]`,children:`Install skill`}),(0,Y.jsx)(`span`,{className:AJ,children:`I`})]}):null]}),children:(0,Y.jsxs)(`label`,{className:`flex h-8 w-[200px] shrink-0 items-center gap-2 rounded-lg border border-[#ffffff1a] bg-[#131418] px-2.5 py-0 focus-within:border-[#ecedee73]`,children:[(0,Y.jsx)(Oe,{className:`size-3.5 shrink-0 text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsx)(`input`,{ref:a,"data-catalog-search":!0,type:`search`,value:r,onChange:e=>i(e.target.value),onKeyDown:e=>{e.key===`Escape`&&(i(``),e.currentTarget.blur())},placeholder:jJ[c],"aria-label":jJ[c],autoComplete:`off`,spellCheck:!1,className:`min-w-0 flex-1 bg-transparent font-sans text-[13px] leading-normal text-[#ecedee] outline-none placeholder:text-[#8b8f98]`}),(0,Y.jsx)(`span`,{className:`rounded-sm border border-[#ffffff1a] bg-[#1a1c21] px-[5px] py-0 ${kJ} text-[11px] leading-normal text-[#8b8f98]`,children:`/`})]})})}function PJ(e){return typeof e==`number`?e:e instanceof Date?e.getTime():Date.parse(e)}function FJ(e,t=Date.now()){let n=PJ(e);if(!Number.isFinite(n))return``;let r=Math.floor(Math.max(0,t-n)/1e3);if(r<2)return`just now`;if(r<60)return`${r}s ago`;let i=Math.floor(r/60);if(i<60)return`${i}m ago`;let a=Math.floor(i/60);return a<24?`${a}h ago`:`${Math.floor(a/24)}d ago`}function IJ(e=5e3,t=!0){let[n,r]=(0,J.useState)(()=>Date.now());return(0,J.useEffect)(()=>{if(!t)return;r(Date.now());let n=window.setInterval(()=>r(Date.now()),e);return()=>window.clearInterval(n)},[t,e]),n}var LJ=/^[a-z][a-z0-9]*(-[a-z0-9]+)*$/,RJ=[`free_text`,`confirm`,`multi_question`,`artifact_backed`],zJ=2592e6;function BJ(e){return!e||e.length===0?{first:null,extra:0}:{first:e[0],extra:e.length-1}}function VJ(e){return e===void 0||!Number.isFinite(e)?`—`:`${Math.round(e*100)}%`}function HJ(e){if(!e||e.runs<=0)return`no runs`;let t=e.avgMs!==void 0&&Number.isFinite(e.avgMs),n=e.avgCostUsd!==void 0&&Number.isFinite(e.avgCostUsd)?`$${e.avgCostUsd.toFixed(2)}`:null;if(t){let t=SP(e.avgMs);return n?`${t} · ${n}`:t}return n??`no runs`}function UJ(e,t){let n=t.trim().toLowerCase();return!n||[e.id,e.model,e.skill,...e.used_by_pipeline_ids].some(e=>typeof e==`string`&&e.toLowerCase().includes(n))}function WJ(e,t){return e.filter(e=>UJ(e,t))}function GJ(e){return{inUse:e.filter(e=>e.used_by_pipeline_ids.length>0).sort((e,t)=>t.used_by_pipeline_ids.length-e.used_by_pipeline_ids.length||e.id.localeCompare(t.id)||(e.project_root??``).localeCompare(t.project_root??``)),unused:e.filter(e=>e.used_by_pipeline_ids.length===0).sort((e,t)=>e.id.localeCompare(t.id))}}function KJ(e){return[...e.inUse,...e.unused].map(e=>e.rowKey)}function qJ(e,t,n){if(e.length===0)return null;let r=t?e.indexOf(t):-1;return r<0?e[0]:e[Math.min(e.length-1,Math.max(0,r+n))]}function JJ(e){let t=e.filter(e=>e.used_by_pipeline_ids.length>0).length,n=e.filter(e=>e.skill).length;return`${e.length} stages · ${t} in use · ${e.length-t} unused · ${n} use a skill`}function YJ(e,t){for(let n of e.used_by_pipeline_ids){let r=t.find(t=>t.id===n&&(t.project_root??``)===(e.project_root??``));if(r)return r}return null}function XJ(e){let t=e.replace(/\\/g,`/`);return t.slice(t.lastIndexOf(`/`)+1)}function ZJ(e){let t=e.replace(/\\/g,`/`),n=t.lastIndexOf(`/`);return n>=0?t.slice(0,n):`.`}function QJ(e){return`${e.project_root??``}\0${ZJ(e.path)}`}function $J(e){let t=new Map;for(let n of e){let e=ZJ(n.path),r=QJ(n);t.has(r)||t.set(r,{key:r,directory:e,...n.project_root?{project_root:n.project_root}:{}})}return[...t.values()].sort((e,t)=>e.directory.localeCompare(t.directory))}function eY(e,t){let n=$J(e),r=new Set(n.map(e=>e.project_root).filter(Boolean));for(let e of t){if(e.read_only||e.available===!1||r.has(e.project_root))continue;let t=e.kind===`workspace`?`workspace`:`.`;n.push({key:`${e.project_root}:${t}`,directory:t,project_root:e.project_root}),r.add(e.project_root)}return n.sort((e,t)=>e.directory.localeCompare(t.directory))}function tY(e,t){let n=null,r=-1/0;for(let i of e){if(i.pipeline_id!==t)continue;let e=Date.parse(i.created_at),a=Number.isFinite(e)?e:-1/0;(!n||a>r)&&(n=i,r=a)}return n}function nY(e){if(!e)return null;if(e.waiting_stage_id)return{label:`Needs you`,color:`#f5b544`};switch(e.status){case`succeeded`:return{label:`Succeeded`,color:`#4cc38a`};case`failed`:return{label:`Failed`,color:`#f2645a`};case`running`:case`created`:case`queued`:return{label:`Running`,color:`#6ca6ff`};case`cancelled`:return{label:`Cancelled`,color:`#8b8f98`};default:return null}}function rY(e,t,n,r,i=zJ){let a=new Set(n),o=e.filter(e=>{if(!a.has(e.pipeline_id))return!1;let n=Date.parse(e.created_at);return!Number.isFinite(n)||r-n>i?!1:e.stages.some(e=>e.id===t)});return{runs:o.length,stats:MV(o).get(t)??null}}function iY(e){if(typeof e==`string`&&e.trim()!==``)return e;if(e&&typeof e==`object`&&!Array.isArray(e)){let t=e.$ref;return typeof t==`string`&&t.trim()!==``?t:`inline`}return null}function aY(e){let t;try{t=_B(e)}catch{return{systemPrompt:null,payloadSchema:`none`}}if(!t||typeof t!=`object`||Array.isArray(t))return{systemPrompt:null,payloadSchema:`none`};let n=t,r=typeof n.system_prompt==`string`&&n.system_prompt.trim()!==``?n.system_prompt:null,i=n.io,a=i&&typeof i==`object`?i.output:void 0;return{systemPrompt:r,payloadSchema:(a&&typeof a==`object`?iY(a.schema):null)??iY(n.payload_schema)??`none`}}function oY(e,t=4){return e.split(/\r?\n/).map(e=>e.trimEnd()).filter(e=>e.trim()!==``).slice(0,t)}function sY(e){return`${Math.ceil(e.length/4).toLocaleString(`en-US`)} tok`}function cY(e,t,n,r=6){let i=new Set(n.map(e=>e.id)),a=[];for(let o of e){let e=t?.usages[o.name]?.stage_ids.find(e=>i.has(e)),s=n.find(e=>e.skill===o.name)?.id,c=e??s;if(c&&a.push({name:o.name,stageId:c}),a.length>=r)break}return a}function lY(e){let t=e?.id??``,n=e?.model??``;return{directoryKey:e?.directoryKey??``,id:t,filename:t?`${t}.yaml`:``,filenameTouched:!1,systemPrompt:e?.systemPrompt??``,model:n,skill:e?.skill??``,gateKinds:e?.gateKinds?[...e.gateKinds]:[]}}function uY(e){let t={},n=e.id.trim();return n?n.length>64?t.id=`id must be 1-64 characters`:LJ.test(n)||(t.id=`id must be lowercase kebab-case`):t.id=`Stage id is required`,e.systemPrompt.trim()||(t.systemPrompt=`System prompt is required`),t}function dY(e,t){return e===`all`?{}:e===`none`?{gate_kinds:[]}:e===`chips`?t.length>0?{gate_kinds:[...t]}:{}:{gate_kinds:[...t]}}function fY(e){let t=e.trim();return t?{skill:t}:{}}function pY(e){let t={},n=uY({id:e.id,systemPrompt:e.systemPrompt});e.directoryKey||(t.directory=`Pick a pipeline directory`),n.id&&(t.id=n.id);let r=e.filename.trim();return r?(!/\.ya?ml$/.test(r)||r.includes(`/`))&&(t.filename=`Filename must be a .yaml file name`):t.filename=`Filename is required`,n.systemPrompt&&(t.systemPrompt=n.systemPrompt),t}function mY(e){return typeof e==`string`&&e.trim()!==``?e:void 0}function hY(e){let t=new Map;for(let n of e)for(let e of n.stages){let r=e,i=`${n.project_root??``}:${r.id}`,a=mY(r.model),o=mY(r.skill),s=t.get(i);s?(s.used_by_pipeline_ids.includes(n.id)||s.used_by_pipeline_ids.push(n.id),!s.uses_path&&r.uses_path&&(s.uses_path=r.uses_path),!s.model&&a&&(s.model=a),!s.skill&&o&&(s.skill=o),s.gate_kinds===void 0&&r.gate_kinds!==void 0&&(s.gate_kinds=[...r.gate_kinds])):t.set(i,{rowKey:i,id:r.id,project_root:n.project_root,...r.uses_path?{uses_path:r.uses_path}:{},...r.gate_kinds===void 0?{}:{gate_kinds:[...r.gate_kinds]},...a?{model:a}:{},...o?{skill:o}:{},used_by_pipeline_ids:[n.id]})}return[...t.values()].sort((e,t)=>{let n=e.project_root??``,r=t.project_root??``,i=n.localeCompare(r);return i===0?e.id.localeCompare(t.id):i})}var gY=`[font-family:'Geist_Mono',_monospace]`,_Y=`font-sans text-[11px] font-medium uppercase leading-normal tracking-[0.88px] text-[#8b8f98] whitespace-nowrap`,vY=`w-[116px] shrink-0 ${_Y}`,yY=`flex h-[18px] items-center gap-1 rounded-sm border border-[#ffffff1a] px-[5px] py-0`;function bY({query:e,onNewStage:t}){let[n,r]=(0,J.useState)([]),[i,a]=(0,J.useState)([]),[o,s]=(0,J.useState)(!0),[c,l]=(0,J.useState)(null),[u,d]=(0,J.useState)([]),[f,p]=(0,J.useState)(null),[m,h]=(0,J.useState)({status:`loading`}),[g,_]=(0,J.useState)(null),v=(0,J.useRef)(!1),{snapshot:y}=Jo(),b=y.runs,x=(0,J.useCallback)(async()=>{try{let e=await Fi();r(e.pipelines),a(hY(e.pipelines)),l(null)}catch(e){l(e instanceof Error?e.message:String(e))}finally{s(!1)}},[]);(0,J.useEffect)(()=>{x()},[x]),(0,J.useEffect)(()=>{let e=!1;return sa().then(t=>{e||d(t.skills)}).catch(()=>{e||d([])}),ca().then(t=>{e||p(t)}).catch(()=>{e||p(null)}),To({strict:!0}).then(t=>{e||h({status:`ok`,result:t,at:Date.now()})}).catch(t=>{e||h({status:`error`,message:t instanceof Error?t.message:String(t)})}),()=>{e=!0}},[]);let S=(0,J.useMemo)(()=>MV(b),[b]),C=(0,J.useMemo)(()=>WJ(i,e),[i,e]),w=(0,J.useMemo)(()=>GJ(C),[C]),T=(0,J.useMemo)(()=>KJ(w),[w]);(0,J.useEffect)(()=>{if(!o){if(!v.current){v.current=!0,_(T[0]??null);return}g!==null&&!T.includes(g)&&_(T[0]??null)}},[o,T,g]);let E=(0,J.useMemo)(()=>i.find(e=>e.rowKey===g)??null,[i,g]),D=(0,J.useMemo)(()=>E?YJ(E,n):null,[E,n]),O=E?.uses_path?`#${Tc(E.uses_path,{project_root:E.project_root})}`:null,[k,A]=(0,J.useState)(null),j=E?.uses_path,M=E?.project_root;(0,J.useEffect)(()=>{if(!j){A(null);return}let e=!1;return A({status:`loading`}),Eo({path:j,project_root:M}).then(t=>{e||A({status:`ok`,info:aY(t.content)})}).catch(()=>{e||A({status:`error`})}),()=>{e=!0}},[j,M]);let N=(0,J.useCallback)(()=>{E&&t({id:`${E.id}-copy`,systemPrompt:k?.status===`ok`?k.info.systemPrompt??``:``,model:E.model,gateKinds:E.gate_kinds,...D?{directoryKey:QJ(D)}:{}})},[E,D,k,t]);Yc([{key:`j`,scope:`catalog`,handler:e=>{e.preventDefault(),_(e=>qJ(T,e,1))}},{key:`k`,scope:`catalog`,handler:e=>{e.preventDefault(),_(e=>qJ(T,e,-1))}},{key:`e`,scope:`catalog`,when:()=>O!==null,handler:e=>{e.preventDefault(),O&&Z(O)}}],`catalog`),(0,J.useEffect)(()=>{if(!g)return;let e=document.querySelector(`[data-stage-row="${CSS.escape(g)}"]`);e&&`scrollIntoView`in e&&e.scrollIntoView({block:`nearest`})},[g]);let P=(0,J.useMemo)(()=>cY(u,f,C),[u,f,C]);return(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,Y.jsx)(xY,{}),(0,Y.jsxs)(`div`,{className:`flex min-h-0 w-full flex-1 flex-col overflow-y-auto`,children:[(0,Y.jsx)(SY,{}),c?(0,Y.jsx)(`p`,{className:`px-4 py-3 text-xs text-[#f2645a]`,children:c}):null,o?(0,Y.jsx)(`p`,{className:`px-4 py-3 text-xs text-[#8b8f98]`,children:`Loading stages…`}):null,!o&&!c&&i.length===0?(0,Y.jsx)(`p`,{className:`px-4 py-3 text-xs text-[#8b8f98]`,children:`No stages in this catalog.`}):null,!o&&i.length>0&&C.length===0?(0,Y.jsxs)(`p`,{className:`px-4 py-3 text-xs text-[#8b8f98]`,children:[`No stages match “`,e,`”.`]}):null,w.inUse.length>0?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(CY,{icon:et,label:`In use`,count:w.inUse.length,hint:`Sorted by pipelines using the stage`}),w.inUse.map(e=>(0,Y.jsx)(TY,{row:e,stats:S.get(e.id),selected:e.rowKey===g,onSelect:()=>_(e.rowKey)},e.rowKey))]}):null,w.unused.length>0?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(CY,{icon:Ve,label:`Unused`,count:w.unused.length,hint:`No pipeline references these yet`}),w.unused.map(e=>(0,Y.jsx)(TY,{row:e,stats:S.get(e.id),selected:e.rowKey===g,onSelect:()=>_(e.rowKey)},e.rowKey))]}):null]}),P.length>0?(0,Y.jsx)(EY,{entries:P,total:u.length}):null]}),(0,Y.jsx)(kY,{row:E,pipeline:D,editorHref:O,yamlState:k,runs:b,onClose:()=>_(null),onDuplicate:N})]}),(0,Y.jsx)(DY,{rows:i,validation:m})]})}function xY(){return(0,Y.jsxs)(`div`,{className:`flex h-fit min-h-9 w-full shrink-0 items-center gap-2 border-b border-b-[#ffffff12] bg-[#131418] px-4 py-2`,children:[(0,Y.jsx)(pt,{className:`size-3.5 shrink-0 text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-wrap items-baseline gap-x-1`,children:[(0,Y.jsx)(`span`,{className:`font-sans text-xs leading-[1.4] text-[#a7aab2]`,children:`Skills and extensions come from Pi and are read-only here.`}),(0,Y.jsx)(`span`,{className:`font-sans text-xs leading-[1.4] text-[#a7aab2]`,children:`A stage uses a skill only when its YAML sets`}),(0,Y.jsx)(`span`,{className:`${gY} text-xs leading-[1.4] text-[#ecedee]`,children:`skill:`})]}),(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>SD(`Set skill: on the stage file (or inline stage body). See docs/yaml-catalog.md.`),className:`flex shrink-0 items-center gap-1 text-[#a7aab2] hover:text-[#ecedee]`,children:[(0,Y.jsx)(`span`,{className:`font-sans text-xs font-medium leading-normal`,children:`Learn how`}),(0,Y.jsx)(Ge,{className:`size-3`,"aria-hidden":!0})]})]})}function SY(){return(0,Y.jsxs)(`div`,{className:`sticky top-0 z-[1] flex h-8 w-full shrink-0 items-center gap-2.5 border-b border-b-[#ffffff12] bg-[#0c0d0f] px-4 py-0`,children:[(0,Y.jsx)(`div`,{className:`min-w-0 flex-1 ${_Y}`,children:`Stage id`}),(0,Y.jsx)(`div`,{className:`w-[198px] shrink-0 ${_Y}`,children:`Model`}),(0,Y.jsx)(`div`,{className:`w-[120px] shrink-0 ${_Y}`,children:`Gates`}),(0,Y.jsx)(`div`,{className:`w-[78px] shrink-0 ${_Y}`,children:`Skill`}),(0,Y.jsxs)(`div`,{className:`flex w-[100px] shrink-0 items-center gap-1`,children:[(0,Y.jsx)(`span`,{className:`${_Y} text-[#ecedee]`,children:`Used by`}),(0,Y.jsx)(dt,{className:`size-3 text-[#ecedee]`,"aria-hidden":!0})]}),(0,Y.jsx)(`div`,{className:`w-[92px] shrink-0 text-right ${_Y}`,children:`Avg`}),(0,Y.jsx)(`div`,{className:`w-9 shrink-0 text-right ${_Y}`,children:`Pass`})]})}function CY({icon:e,label:t,count:n,hint:r}){return(0,Y.jsxs)(`div`,{className:`flex h-8 w-full shrink-0 items-center gap-2 border-b border-b-[#ffffff12] px-4 py-0`,children:[(0,Y.jsx)(e,{className:`size-[13px] text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`font-sans text-[13px] font-semibold leading-normal text-[#ecedee]`,children:t}),(0,Y.jsx)(`span`,{className:`${gY} text-xs leading-normal text-[#8b8f98]`,children:n}),(0,Y.jsx)(`span`,{className:`block flex-1`}),(0,Y.jsx)(`span`,{className:`whitespace-nowrap font-sans text-xs leading-normal text-[#8b8f98]`,children:r})]})}function wY({kinds:e,muted:t}){let{first:n,extra:r}=BJ(e);if(!n)return(0,Y.jsx)(`div`,{className:`flex w-[120px] shrink-0 items-center gap-1`,children:(0,Y.jsx)(`span`,{className:`${gY} whitespace-nowrap text-[11px] leading-normal text-[#8b8f98]`,children:`no gate`})});let i=`h-5 content-center whitespace-nowrap rounded-[5px] border px-1.5 py-0 ${gY} text-[11px] leading-normal`,a=t?`border-[#ffffff12] text-[#8b8f98]`:`border-[#ffffff1a] bg-[#1a1c21] text-[#a7aab2]`;return(0,Y.jsxs)(`div`,{className:`flex w-[120px] min-w-0 shrink-0 items-center gap-1`,children:[(0,Y.jsx)(`span`,{className:`${i} ${a} min-w-0 truncate ${n===`artifact_backed`?`border-dashed`:``}`,title:e?.join(`, `),children:n}),r>0?(0,Y.jsxs)(`span`,{className:`${i} ${a} shrink-0`,children:[`+`,r]}):null]})}function TY({row:e,stats:t,selected:n,onSelect:r}){let i=e.used_by_pipeline_ids.length===0,a=e.used_by_pipeline_ids[0],o=VJ(t?.passRate);return(0,Y.jsxs)(`div`,{role:`option`,"aria-selected":n,tabIndex:-1,"data-stage-row":e.rowKey,onClick:r,className:`flex h-10 w-full shrink-0 cursor-pointer items-center gap-2.5 border-b border-b-[#ffffff12] py-0 pl-3.5 pr-4 ${n?`border-l-2 border-l-[#ecedee] bg-[#131418]`:`border-l-2 border-l-transparent hover:bg-[#131418]`}`,children:[(0,Y.jsx)(`div`,{className:`min-w-0 flex-1 truncate ${gY} text-[13px] leading-normal ${n?`font-medium`:``} ${i?`text-[#a7aab2]`:`text-[#ecedee]`}`,title:e.project_root?`${e.id} · ${e.project_root}`:e.id,children:e.id}),(0,Y.jsx)(`div`,{className:`w-[198px] min-w-0 shrink-0 truncate ${gY} text-[11px] leading-normal ${i?`text-[#8b8f98]`:`text-[#a7aab2]`}`,title:e.model,children:e.model??`—`}),(0,Y.jsx)(wY,{kinds:e.gate_kinds,muted:i}),(0,Y.jsx)(`div`,{className:`w-[78px] min-w-0 shrink-0`,children:e.skill?(0,Y.jsx)(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),Z(wc({tab:`skills`,skill:e.skill}))},className:`block max-w-full truncate text-left ${gY} text-[11px] leading-normal text-[#ecedee] hover:underline hover:decoration-[#ecedee59] hover:underline-offset-2`,title:`Open skill ${e.skill}`,children:e.skill}):(0,Y.jsx)(`span`,{className:`${gY} text-[11px] leading-normal text-[#8b8f98]`,children:`—`})}),(0,Y.jsx)(`div`,{className:`flex w-[100px] min-w-0 shrink-0 items-baseline gap-1.5`,children:i?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`span`,{className:`${gY} text-xs leading-normal text-[#8b8f98]`,children:`0`}),(0,Y.jsx)(`span`,{className:`h-[18px] content-center rounded-sm border border-dashed border-[#ffffff2e] px-[5px] py-0 font-sans text-[11px] leading-normal text-[#8b8f98]`,children:`unused`})]}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`span`,{className:`shrink-0 ${gY} text-xs font-medium leading-normal text-[#ecedee]`,children:e.used_by_pipeline_ids.length}),(0,Y.jsx)(`span`,{className:`min-w-0 truncate ${gY} text-[11px] leading-normal text-[#8b8f98]`,title:e.used_by_pipeline_ids.join(`, `),children:a})]})}),(0,Y.jsx)(`div`,{className:`w-[92px] shrink-0 truncate text-right ${gY} text-[11px] leading-normal ${t&&t.runs>0?`text-[#a7aab2]`:`text-[#8b8f98]`}`,children:HJ(t)}),(0,Y.jsx)(`div`,{className:`w-9 shrink-0 text-right ${gY} text-xs leading-normal ${o===`—`?`text-[#8b8f98]`:`text-[#ecedee]`}`,children:o})]})}function EY({entries:e,total:t}){return(0,Y.jsxs)(`div`,{className:`flex h-fit w-full shrink-0 flex-col gap-2.5 border-t border-t-[#ffffff12] px-4 pb-3.5 pt-3`,children:[(0,Y.jsxs)(`div`,{className:`flex w-full items-center gap-2`,children:[(0,Y.jsx)(`span`,{className:_Y,children:`Skills used by stages`}),(0,Y.jsxs)(`span`,{className:yY,children:[(0,Y.jsx)(H,{className:`size-2.5 text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`font-sans text-[11px] leading-normal text-[#8b8f98]`,children:`read-only · Pi`})]}),(0,Y.jsx)(`span`,{className:`block flex-1`}),(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>Z(wc({tab:`skills`})),className:`flex items-center gap-1 text-[#a7aab2] hover:text-[#ecedee]`,children:[(0,Y.jsxs)(`span`,{className:`font-sans text-xs font-medium leading-normal`,children:[`View all `,t,` skills`]}),(0,Y.jsx)(Te,{className:`size-3`,"aria-hidden":!0})]})]}),(0,Y.jsx)(`div`,{className:`flex w-full flex-wrap items-center gap-2`,children:e.map(e=>(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>Z(wc({tab:`skills`,skill:e.name})),className:`flex h-[30px] items-center gap-1.5 rounded-lg border border-[#ffffff12] bg-[#131418] px-2.5 py-0 hover:border-[#ffffff1a]`,children:[(0,Y.jsx)(me,{className:`size-3 shrink-0 text-[#a7aab2]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`${gY} whitespace-nowrap text-xs leading-normal text-[#ecedee]`,children:e.name}),(0,Y.jsx)(`span`,{className:`whitespace-nowrap font-sans text-xs leading-normal text-[#8b8f98]`,children:`· used by`}),(0,Y.jsx)(`span`,{className:`${gY} whitespace-nowrap text-xs leading-normal text-[#a7aab2]`,children:e.stageId}),(0,Y.jsx)(H,{className:`ml-0.5 size-[11px] shrink-0 text-[#8b8f98]`,"aria-hidden":!0})]},e.name))})]})}function DY({rows:e,validation:t}){let n=IJ(3e4);return(0,Y.jsxs)(`div`,{className:`flex h-10 w-full shrink-0 items-center gap-3 border-t border-t-[#ffffff12] bg-[#08090a] px-4 py-0`,children:[(0,Y.jsx)(I,{className:`size-3.5 shrink-0 text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`whitespace-nowrap font-sans text-xs leading-normal text-[#8b8f98]`,children:JJ(e)}),(0,Y.jsx)(`span`,{className:`block min-w-0 flex-1`}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1.5`,children:[t.status===`ok`&&t.result.summary.errors===0?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(G,{className:`size-3.5 shrink-0 text-[#4cc38a]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`font-sans text-xs font-medium leading-normal text-[#4cc38a]`,children:`Valid`})]}):null,t.status===`ok`&&t.result.summary.errors>0?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(d,{className:`size-3.5 shrink-0 text-[#f2645a]`,"aria-hidden":!0}),(0,Y.jsxs)(`span`,{className:`whitespace-nowrap font-sans text-xs font-medium leading-normal text-[#f2645a]`,children:[t.result.summary.errors,` `,t.result.summary.errors===1?`error`:`errors`]})]}):null,t.status===`error`?(0,Y.jsx)(`span`,{className:`min-w-0 truncate font-sans text-xs leading-normal text-[#8b8f98]`,title:t.message,children:t.message}):null,(0,Y.jsxs)(`span`,{className:`whitespace-nowrap ${gY} text-xs leading-normal text-[#8b8f98]`,children:[`sf validate --strict`,t.status===`ok`?` · ${FJ(t.at,n)}`:``,t.status===`loading`?` · running…`:``]})]})]})}var OY={Succeeded:G,Failed:St,Running:bt,"Needs you":Ze,Cancelled:Ve};function kY({row:e,pipeline:t,editorHref:n,yamlState:r,runs:i,onClose:a,onDuplicate:o}){let s=IJ(6e4),l=(0,J.useMemo)(()=>e?rY(i,e.id,e.used_by_pipeline_ids,s):null,[e,i,s]);if(!e)return(0,Y.jsx)(`aside`,{className:`flex w-[420px] shrink-0 flex-col items-center justify-center border-l border-l-[#ffffff12] bg-[#131418]`,children:(0,Y.jsx)(`p`,{className:`font-sans text-xs text-[#8b8f98]`,children:`Select a stage`})});let u=e.used_by_pipeline_ids.length,d=e.uses_path?XJ(e.uses_path):t?XJ(t.path):null,f=u>0?`Archive is off: used by ${u} pipelines`:`Archive is off`,p=l?.stats??null;return(0,Y.jsxs)(`aside`,{className:`flex w-[420px] shrink-0 flex-col border-l border-l-[#ffffff12] bg-[#131418]`,children:[(0,Y.jsxs)(`div`,{className:`flex w-full flex-col gap-2 border-b border-b-[#ffffff12] px-3.5 py-3`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(`span`,{className:`flex-1 ${_Y}`,children:`Stage`}),(0,Y.jsx)(`button`,{type:`button`,"aria-label":`Close inspector`,onClick:a,className:`text-[#8b8f98] hover:text-[#ecedee]`,children:(0,Y.jsx)(St,{className:`size-3.5`,"aria-hidden":!0})})]}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,Y.jsx)(`span`,{className:`min-w-0 truncate ${gY} text-[15px] font-semibold leading-normal text-[#ecedee]`,children:e.id}),(0,Y.jsx)(`span`,{className:`h-[18px] shrink-0 content-center rounded-sm border border-[#ffffff1a] px-[5px] py-0 font-sans text-[11px] leading-normal text-[#a7aab2]`,children:e.uses_path?`editable`:`inline`})]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(tt,{className:`size-3 shrink-0 text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate ${gY} text-xs leading-normal text-[#8b8f98]`,title:e.uses_path,children:e.uses_path?Xo(e.uses_path):`inline in ${e.used_by_pipeline_ids[0]??`pipeline`}`}),n?(0,Y.jsxs)(`a`,{href:n,className:`flex h-[26px] shrink-0 items-center gap-1.5 rounded-md px-2 py-0 text-[#a7aab2] hover:bg-[#1a1c21] hover:text-[#ecedee]`,children:[(0,Y.jsx)(g,{className:`size-3`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`font-sans text-xs font-medium leading-normal`,children:`Open in editor`})]}):null]})]}),(0,Y.jsxs)(`div`,{className:`flex min-h-0 w-full flex-1 flex-col gap-3.5 overflow-y-auto p-3.5`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Y.jsxs)(`div`,{className:`flex min-h-6 items-center gap-2`,children:[(0,Y.jsx)(`span`,{className:vY,children:`model`}),(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate ${gY} text-xs leading-normal ${e.model?`text-[#ecedee]`:`text-[#8b8f98]`}`,children:e.model??`—`})]}),(0,Y.jsxs)(`div`,{className:`flex min-h-6 items-center gap-2`,children:[(0,Y.jsx)(`span`,{className:vY,children:`gate_kinds`}),(0,Y.jsx)(`div`,{className:`flex flex-1 flex-wrap items-center gap-1`,children:e.gate_kinds&&e.gate_kinds.length>0?e.gate_kinds.map(e=>(0,Y.jsxs)(`span`,{className:`flex h-[22px] items-center gap-1 rounded-[5px] border border-[#ffffff1a] bg-[#1a1c21] px-[7px] py-0`,children:[e===`artifact_backed`?(0,Y.jsx)(ce,{className:`size-[11px] text-[#a7aab2]`,"aria-hidden":!0}):null,(0,Y.jsx)(`span`,{className:`${gY} text-[11px] leading-normal text-[#ecedee]`,children:e})]},e)):(0,Y.jsx)(`span`,{className:`${gY} text-xs leading-normal text-[#8b8f98]`,children:`no gate`})})]}),(0,Y.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,Y.jsx)(`span`,{className:`${vY} pt-[5px]`,children:`skill`}),e.skill?(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>Z(wc({tab:`skills`,skill:e.skill})),className:`flex h-6 min-w-0 items-center gap-1.5 rounded-md border border-[#ffffff1a] bg-[#1a1c21] px-[7px] py-0`,children:[(0,Y.jsx)(me,{className:`size-3 shrink-0 text-[#a7aab2]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`truncate ${gY} text-xs leading-normal text-[#ecedee] underline decoration-[#ecedee59] underline-offset-2`,children:e.skill}),(0,Y.jsx)(Te,{className:`size-3 shrink-0 text-[#a7aab2]`,"aria-hidden":!0})]}),(0,Y.jsxs)(`span`,{className:yY,children:[(0,Y.jsx)(H,{className:`size-2.5 text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`whitespace-nowrap font-sans text-[11px] leading-normal text-[#8b8f98]`,children:`read-only · Pi`})]})]}),d?(0,Y.jsxs)(`span`,{className:`font-sans text-[11px] leading-[1.4] text-[#8b8f98]`,children:[`Loaded via skill: in `,d]}):null]}):(0,Y.jsx)(`span`,{className:`pt-[3px] font-sans text-xs leading-normal text-[#8b8f98]`,children:`No skill`})]})]}),(0,Y.jsx)(AY,{row:e,yamlState:r}),(0,Y.jsxs)(`div`,{className:`flex min-h-6 items-center gap-2`,children:[(0,Y.jsx)(`span`,{className:vY,children:`payload_schema`}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-1.5`,children:[(0,Y.jsx)(xt,{className:`size-3 shrink-0 text-[#a7aab2]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`min-w-0 truncate ${gY} text-xs leading-normal ${r?.status===`ok`&&r.info.payloadSchema!==`none`?`text-[#ecedee]`:`text-[#8b8f98]`}`,children:e.uses_path?r?.status===`ok`?r.info.payloadSchema:r?.status===`loading`?`…`:`none`:`inline`})]})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(`span`,{className:_Y,children:`Used by`}),(0,Y.jsx)(`span`,{className:`${gY} text-[11px] leading-normal text-[#a7aab2]`,children:u}),(0,Y.jsx)(`span`,{className:`block flex-1`}),(0,Y.jsx)(`span`,{className:`font-sans text-[11px] leading-normal text-[#8b8f98]`,children:`latest run`})]}),u>0?(0,Y.jsx)(`div`,{className:`flex flex-col rounded-[10px] border border-[#ffffff12]`,children:e.used_by_pipeline_ids.map((e,t)=>{let n=nY(tY(i,e)),r=n?OY[n.label]:void 0;return(0,Y.jsxs)(`div`,{className:`flex h-9 items-center gap-2.5 px-2.5 py-0 ${t<u-1?`border-b border-b-[#ffffff12]`:``}`,children:[(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate ${gY} text-xs leading-normal text-[#ecedee]`,children:e}),n?(0,Y.jsxs)(`span`,{className:`flex w-[90px] shrink-0 items-center justify-end gap-1`,style:{color:n.color},children:[r?(0,Y.jsx)(r,{className:`size-3`,"aria-hidden":!0}):null,(0,Y.jsx)(`span`,{className:`whitespace-nowrap font-sans text-xs font-medium leading-normal`,children:n.label})]}):null]},e)})}):(0,Y.jsx)(`span`,{className:`font-sans text-xs text-[#8b8f98]`,children:`No pipeline uses this stage.`})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Y.jsx)(`span`,{className:_Y,children:`Last 30 days`}),(0,Y.jsxs)(`div`,{className:`flex rounded-[10px] border border-[#ffffff12] bg-[#0c0d0f]`,children:[(0,Y.jsx)(jY,{value:String(l?.runs??0),label:`Runs`,first:!0}),(0,Y.jsx)(jY,{value:p?.avgMs!==void 0&&Number.isFinite(p.avgMs)?SP(p.avgMs):`—`,label:`Avg time`}),(0,Y.jsx)(jY,{value:p?.avgCostUsd!==void 0&&Number.isFinite(p.avgCostUsd)?`$${p.avgCostUsd.toFixed(2)}`:`—`,label:`Avg cost`}),(0,Y.jsx)(jY,{value:VJ(p?.passRate),label:`Pass`})]})]})]}),(0,Y.jsxs)(`div`,{className:`flex w-full flex-col gap-2 border-t border-t-[#ffffff12] px-3.5 py-3`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsxs)(`button`,{type:`button`,disabled:!n,title:n?void 0:`Inline stage`,onClick:()=>{n&&Z(n)},className:`flex h-8 shrink-0 items-center gap-1.5 rounded-lg bg-[#ecedee] px-2.5 py-0 disabled:cursor-not-allowed disabled:opacity-50`,children:[(0,Y.jsx)(c,{className:`size-3.5 text-[#0c0d0f]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`font-sans text-[13px] font-medium leading-normal text-[#0c0d0f]`,children:`Edit stage`}),(0,Y.jsx)(`span`,{className:`rounded-sm border border-[#0c0d0f2e] px-[5px] py-0 ${gY} text-[11px] leading-normal text-[#5a5d66]`,children:`E`})]}),(0,Y.jsxs)(`button`,{type:`button`,onClick:o,className:`flex h-8 shrink-0 items-center gap-1.5 rounded-lg border border-[#ffffff1a] bg-[#1a1c21] px-2.5 py-0`,children:[(0,Y.jsx)(R,{className:`size-3.5 text-[#a7aab2]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`font-sans text-[13px] font-medium leading-normal text-[#ecedee]`,children:`Duplicate`})]}),(0,Y.jsx)(`span`,{className:`block flex-1`}),(0,Y.jsxs)(`button`,{type:`button`,disabled:!0,title:f,className:`flex h-8 shrink-0 cursor-not-allowed items-center gap-1.5 rounded-lg px-2 py-0`,children:[(0,Y.jsx)(He,{className:`size-3.5 text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`font-sans text-[13px] font-medium leading-normal text-[#8b8f98]`,children:`Archive`})]})]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(pt,{className:`size-3 shrink-0 text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`font-sans text-xs leading-normal text-[#8b8f98]`,children:f})]})]})]})}function AY({row:e,yamlState:t}){let n=t?.status===`ok`?t.info.systemPrompt:null,r=n?oY(n):[];return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center`,children:[(0,Y.jsx)(`span`,{className:`flex-1 ${_Y}`,children:`system_prompt`}),n?(0,Y.jsx)(`span`,{className:`${gY} text-[11px] leading-normal text-[#8b8f98]`,children:sY(n)}):null]}),(0,Y.jsx)(`div`,{className:`flex flex-col gap-0.5 rounded-lg border border-[#ffffff1a] bg-[#1a1c21] px-2.5 py-2`,children:e.uses_path?t?.status===`loading`?(0,Y.jsx)(`span`,{className:`font-sans text-[11px] leading-[1.55] text-[#8b8f98]`,children:`Loading…`}):r.length>0?r.map((e,t)=>(0,Y.jsx)(`span`,{className:`truncate whitespace-pre ${gY} text-[11px] leading-[1.55] ${t===r.length-1&&r.length===4?`text-[#8b8f98]`:`text-[#a7aab2]`}`,children:e},t)):(0,Y.jsx)(`span`,{className:`font-sans text-[11px] leading-[1.55] text-[#8b8f98]`,children:`No system prompt in this file`}):(0,Y.jsx)(`span`,{className:`font-sans text-[11px] leading-[1.55] text-[#8b8f98]`,children:`Prompt is inline in the pipeline.`})})]})}function jY({value:e,label:t,first:n}){return(0,Y.jsxs)(`div`,{className:`flex flex-1 flex-col gap-0.5 px-2.5 py-2 ${n?``:`border-l border-l-[#ffffff12]`}`,children:[(0,Y.jsx)(`span`,{className:`${gY} text-sm font-medium leading-normal text-[#ecedee]`,children:e}),(0,Y.jsx)(`span`,{className:`font-sans text-[11px] leading-normal text-[#8b8f98]`,children:t})]})}var MY=[{id:`all`,label:`All`},{id:`used`,label:`Used by stages`},{id:`project`,label:`Project`},{id:`user`,label:`User`},{id:`temporary`,label:`Temporary`},{id:`built-in`,label:`Built-in`}],NY={stage_ids:[],pipeline_ids:[]};function PY(e){return/built-in/i.test(e.source)||/built-in/i.test(e.filePath)}function FY(e){return PY(e)?`built-in`:e.scope}function IY(e){return e.disableModelInvocation?`command-only`:`model`}function LY(e){switch(e){case`project`:return`from this checkout`;case`user`:return`from this machine`;case`temporary`:return`from a run checkout`;case`built-in`:return`ships with Stageflow`}}function RY(e){return e===`model`?`agents may invoke it`:`only when the operator runs it`}function zY(e,t){return e[t]??NY}function BY(e,t){return zY(e,t).stage_ids.length>0}function VY(e){return e.source?e.source:e.filePath}function HY(e,t){let n=t.trim().toLowerCase();return!n||e.name.toLowerCase().includes(n)||e.description.toLowerCase().includes(n)||e.source.toLowerCase().includes(n)}function UY(e,t,n){switch(t){case`all`:return!0;case`used`:return BY(n,e.name);case`built-in`:return PY(e);default:return e.scope===t}}function WY(e,t){let n={};for(let r of MY)n[r.id]=e.filter(e=>UY(e,r.id,t)).length;return n}function GY(e,t,n,r){return e.filter(e=>HY(e,n)&&UY(e,t,r))}function KY(e,t){let n=[],r=[];for(let i of e)BY(t,i.name)?n.push(i):r.push(i);n.sort((e,n)=>{let r=zY(t,n.name).pipeline_ids.length-zY(t,e.name).pipeline_ids.length;return r===0?e.name.localeCompare(n.name):r}),r.sort((e,t)=>e.name.localeCompare(t.name));let i=[];return n.length>0&&i.push({id:`used`,label:`Used by stages`,hint:`A stage YAML sets skill: to these`,skills:n}),r.length>0&&i.push({id:`available`,label:`Available`,hint:`Loaded by Pi, no stage references them yet`,skills:r}),i}function qY(e){return e.flatMap(e=>e.skills)}function JY(e,t,n){if(e.length===0)return null;let r=t?e.indexOf(t):-1;return r<0?e[0]:e[Math.min(e.length-1,Math.max(0,r+n))]}function YY(e){let t=e.replace(/\/+$/,``),n=t.lastIndexOf(`/`);return n>0?t.slice(0,n):t}function XY(e){let t=new Set(e.map(e=>YY(e.baseDir)));return t.size===1?[...t][0]:`.pi/skills`}function ZY(e,t,n){return e.find(e=>e.id===t&&e.stages.some(e=>e.skill===n))??null}function QY(e){let t=e.stage_ids[0]??`stage`;return e.pipeline_ids.length>0?e.pipeline_ids.slice(0,8).map(e=>({pipelineId:e,stageId:t})):e.stage_ids.slice(0,8).map(e=>({pipelineId:null,stageId:e}))}var $Y=`font-['Geist_Mono',monospace]`,eX=`text-[11px] font-medium uppercase leading-normal tracking-[0.88px] text-[#8b8f98]`,tX=`inline-flex h-5 shrink-0 items-center whitespace-nowrap rounded-[5px] border px-1.5 ${$Y} text-[11px] leading-normal`,nX=`inline-flex h-[22px] shrink-0 items-center whitespace-nowrap rounded-[5px] border border-[#ffffff1a] bg-[#1a1c21] px-[7px] ${$Y} text-[11px] leading-normal text-[#ecedee]`,rX=`${tX} border-[#ffffff24] bg-[#1a1c21] text-[#ecedee]`,iX=`rounded-sm border border-[#ffffff1a] bg-[#1a1c21] px-[5px] ${$Y} text-[11px] leading-normal text-[#8b8f98]`,aX=`sf skills list`;function oX(e){return e===`temporary`?`${tX} border-dashed border-[#ffffff2e] text-[#a7aab2]`:e===`built-in`?`${tX} border-[#ffffff12] bg-[#16171b] text-[#8b8f98]`:`${tX} border-[#ffffff1a] bg-[#1a1c21] text-[#a7aab2]`}function sX(e){return e===`command-only`?`${tX} border-dashed border-[#ffffff2e] text-[#a7aab2]`:`${tX} border-[#ffffff1a] bg-[#1a1c21] text-[#a7aab2]`}async function cX(e,t){try{await navigator.clipboard.writeText(e),SD(t)}catch{SD(`Copy failed`)}}function lX(){(document.querySelector(`input[placeholder='Filter skills…']`)??document.querySelector(`[data-catalog-search] input, input[data-catalog-search]`))?.focus()}function uX({className:e=`size-3.5`,children:t}){return(0,Y.jsx)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`,className:`block shrink-0 ${e}`,"aria-hidden":!0,children:t})}function dX({className:e}){return(0,Y.jsxs)(uX,{className:e,children:[(0,Y.jsx)(`path`,{d:`M7 7h10v10`}),(0,Y.jsx)(`path`,{d:`M7 17 17 7`})]})}function fX({className:e}){return(0,Y.jsxs)(uX,{className:e,children:[(0,Y.jsx)(`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`}),(0,Y.jsx)(`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`})]})}function pX({text:e,label:t}){return(0,Y.jsx)(`button`,{type:`button`,"aria-label":t,title:t,onClick:()=>void cX(e,`Copied`),className:`flex size-6 shrink-0 items-center justify-center rounded-md text-[#8b8f98] hover:bg-[#1a1c21] hover:text-[#ecedee]`,children:(0,Y.jsx)(fX,{className:`size-3.5`})})}function mX({diagnostics:e}){let t=e[0];return(0,Y.jsxs)(`div`,{className:`flex min-h-9 w-full shrink-0 flex-col gap-1 border-b border-b-[#ffffff12] bg-[#131418] px-4 py-2`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(`span`,{className:`text-[#8b8f98]`,children:(0,Y.jsxs)(uX,{children:[(0,Y.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`}),(0,Y.jsx)(`path`,{d:`M12 16v-4`}),(0,Y.jsx)(`path`,{d:`M12 8h.01`})]})}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-wrap items-baseline gap-x-1 gap-y-0.5 text-xs leading-[1.4]`,children:[(0,Y.jsx)(`span`,{className:`whitespace-nowrap text-[#a7aab2]`,children:`Skills come from Pi. A stage uses a skill only when its YAML sets`}),(0,Y.jsx)(`span`,{className:`whitespace-nowrap ${$Y} text-[#ecedee]`,children:`skill: <name>.`}),(0,Y.jsx)(`span`,{className:`whitespace-nowrap text-[#a7aab2]`,children:`Lookup order:`}),(0,Y.jsx)(`span`,{className:`whitespace-nowrap ${$Y} text-[#ecedee]`,children:`run → checkout .pi/skills → host ~/.pi/agent/skills`})]}),(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>SD(`Set skill: on the pipeline stage entry. See docs/yaml-catalog.md.`),className:`flex shrink-0 items-center gap-1 text-xs font-medium text-[#a7aab2] hover:text-[#ecedee]`,children:[`Learn how`,(0,Y.jsx)(dX,{className:`size-3`})]})]}),t?(0,Y.jsxs)(`div`,{className:`truncate pl-[22px] text-xs text-[#f2645a]`,title:t.path??t.message,children:[t.message,e.length>1?` +${e.length-1} more`:``]}):null]})}function hX({filter:e,counts:t,onChange:n}){return(0,Y.jsxs)(`div`,{className:`flex h-11 w-full shrink-0 items-center gap-1.5 border-b border-b-[#ffffff12] px-4`,children:[MY.map(r=>{let i=e===r.id;return(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsxs)(`button`,{type:`button`,"aria-pressed":i,onClick:()=>n(r.id),className:`flex h-7 shrink-0 items-center gap-1.5 rounded-full border px-2.5 text-xs${i?` border-[#ffffff1a] bg-[#1a1c21] font-medium text-[#ecedee]`:` border-[#ffffff12] text-[#a7aab2] hover:bg-[#1a1c21]`}`,children:[(0,Y.jsx)(`span`,{children:r.label}),(0,Y.jsx)(`span`,{className:`${$Y} text-[11px] ${i?`text-[#a7aab2]`:`text-[#8b8f98]`}`,children:t[r.id]})]}),r.id===`used`?(0,Y.jsx)(`span`,{className:`mx-1 h-4 w-px shrink-0 bg-[#ffffff12]`}):null]},r.id)}),(0,Y.jsx)(`div`,{className:`min-w-0 flex-1`}),(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1.5 text-xs text-[#8b8f98]`,children:[(0,Y.jsxs)(uX,{className:`size-3`,children:[(0,Y.jsx)(`path`,{d:`m3 16 4 4 4-4`}),(0,Y.jsx)(`path`,{d:`M7 20V4`}),(0,Y.jsx)(`path`,{d:`m21 8-4-4-4 4`}),(0,Y.jsx)(`path`,{d:`M17 4v16`})]}),`Grouped by usage`]})]})}function gX(){return(0,Y.jsxs)(`div`,{className:`flex h-8 w-full shrink-0 items-center gap-2.5 border-b border-b-[#ffffff12] px-4`,children:[(0,Y.jsx)(`div`,{className:`min-w-0 flex-1 ${eX}`,children:`Skill`}),(0,Y.jsx)(`div`,{className:`w-[88px] shrink-0 ${eX}`,children:`Scope`}),(0,Y.jsx)(`div`,{className:`w-[108px] shrink-0 ${eX}`,children:`Invocation`}),(0,Y.jsxs)(`div`,{className:`flex w-[104px] shrink-0 items-center gap-1`,children:[(0,Y.jsx)(`span`,{className:`${eX} text-[#ecedee]`,children:`Used by`}),(0,Y.jsxs)(`svg`,{viewBox:`0 0 24 24`,className:`size-3 text-[#ecedee]`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,"aria-hidden":!0,children:[(0,Y.jsx)(`path`,{d:`M12 5v14`}),(0,Y.jsx)(`path`,{d:`m19 12-7 7-7-7`})]})]}),(0,Y.jsx)(`div`,{className:`w-[172px] shrink-0 ${eX}`,children:`Source`})]})}function _X({skill:e,usages:t,selected:n,onSelect:r}){let i=FY(e),a=IY(e),o=zY(t,e.name),s=o.stage_ids[0];return(0,Y.jsxs)(`button`,{type:`button`,"data-skill-row":e.name,onClick:r,className:`flex h-12 w-full shrink-0 items-center gap-2.5 border-b border-b-[#ffffff12] border-l-2 py-0 pl-3.5 pr-4 text-left${n?` border-l-[#ecedee] bg-[#131418]`:` border-l-transparent hover:bg-[#131418]`}`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-0.5 overflow-hidden`,children:[(0,Y.jsx)(`span`,{className:`truncate ${$Y} text-[13px] text-[#ecedee]${n?` font-medium`:``}`,children:e.name}),(0,Y.jsx)(`span`,{className:`truncate text-xs text-[#8b8f98]`,title:e.description,children:e.description})]}),(0,Y.jsx)(`div`,{className:`flex w-[88px] shrink-0 items-center`,children:(0,Y.jsx)(`span`,{className:oX(i),children:i})}),(0,Y.jsx)(`div`,{className:`flex w-[108px] shrink-0 items-center`,children:(0,Y.jsx)(`span`,{className:sX(a),children:a})}),(0,Y.jsx)(`div`,{className:`flex w-[104px] shrink-0 items-center gap-1 overflow-hidden`,children:o.pipeline_ids.length>0?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`span`,{className:`${rX} min-w-0 truncate`,children:s??`stage`}),(0,Y.jsxs)(`span`,{className:`shrink-0 ${$Y} text-[11px] text-[#8b8f98]`,children:[`×`,o.pipeline_ids.length]})]}):(0,Y.jsx)(`span`,{className:`${$Y} text-xs text-[#8b8f98]`,children:`—`})}),(0,Y.jsx)(`div`,{className:`w-[172px] shrink-0 truncate ${$Y} text-xs text-[#8b8f98]`,title:e.filePath,children:VY(e)})]})}function vX({label:e,count:t,hint:n,used:r}){return(0,Y.jsxs)(`div`,{className:`flex h-8 w-full shrink-0 items-center gap-2 border-b border-b-[#ffffff12] px-4`,children:[(0,Y.jsx)(`span`,{className:`text-[#8b8f98]`,children:r?(0,Y.jsxs)(uX,{className:`size-[13px]`,children:[(0,Y.jsx)(`path`,{d:`m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z`}),(0,Y.jsx)(`path`,{d:`m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65`}),(0,Y.jsx)(`path`,{d:`m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65`})]}):(0,Y.jsx)(uX,{className:`size-[13px]`,children:(0,Y.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`})})}),(0,Y.jsx)(`span`,{className:`whitespace-nowrap text-[13px] font-semibold text-[#ecedee]`,children:e}),(0,Y.jsx)(`span`,{className:`${$Y} text-xs text-[#8b8f98]`,children:t}),(0,Y.jsx)(`span`,{className:`flex-1`}),(0,Y.jsx)(`span`,{className:`truncate text-xs text-[#8b8f98]`,children:n})]})}function yX({folder:e,total:t,used:n}){return(0,Y.jsxs)(`div`,{className:`flex h-10 w-full shrink-0 items-center gap-3 border-t border-t-[#ffffff12] bg-[#08090a] px-4`,children:[(0,Y.jsx)(`span`,{className:`text-[#8b8f98]`,children:(0,Y.jsx)(uX,{children:(0,Y.jsx)(`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`})})}),(0,Y.jsx)(`span`,{className:`min-w-0 truncate ${$Y} text-xs text-[#a7aab2]`,title:e,children:e}),(0,Y.jsxs)(`span`,{className:`whitespace-nowrap text-xs text-[#8b8f98]`,children:[t,` skills · `,n,` used by stages`]}),(0,Y.jsx)(`span`,{className:`min-w-0 flex-1`}),(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2.5 text-xs text-[#8b8f98]`,children:[(0,Y.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,Y.jsx)(`kbd`,{className:iX,children:`J`}),(0,Y.jsx)(`kbd`,{className:iX,children:`K`}),`move`]}),(0,Y.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,Y.jsx)(`kbd`,{className:iX,children:`Enter`}),`open`]}),(0,Y.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,Y.jsx)(`kbd`,{className:iX,children:`/`}),`search`]})]})]})}function bX({label:e,children:t}){return(0,Y.jsxs)(`div`,{className:`flex min-h-6 items-center gap-2`,children:[(0,Y.jsx)(`span`,{className:`w-24 shrink-0 ${eX}`,children:e}),t]})}function xX({skill:e,usages:t,usageFailed:n,pipelines:r}){let i=FY(e),a=IY(e),o=zY(t,e.name),s=QY(o).map(t=>({...t,pipeline:t.pipelineId?ZY(r,t.pipelineId,e.name):null})),c=s.find(e=>e.pipeline)?.pipeline??null;function l(e){Z(yc(e.id,{project_root:e.project_root}))}return(0,Y.jsxs)(`aside`,{className:`flex w-[420px] shrink-0 flex-col border-l border-l-[#ffffff12] bg-[#131418]`,children:[(0,Y.jsxs)(`div`,{className:`flex w-full shrink-0 flex-col gap-2 border-b border-b-[#ffffff12] px-3.5 py-3`,children:[(0,Y.jsx)(`span`,{className:eX,children:`Skill`}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,Y.jsx)(`span`,{className:`truncate ${$Y} text-[15px] font-semibold text-[#ecedee]`,children:e.name}),(0,Y.jsxs)(`span`,{className:`flex h-[18px] shrink-0 items-center gap-1 rounded-sm border border-[#ffffff1a] px-[5px] text-[11px] text-[#8b8f98]`,children:[(0,Y.jsxs)(uX,{className:`size-2.5`,children:[(0,Y.jsx)(`rect`,{width:`18`,height:`11`,x:`3`,y:`11`,rx:`2`,ry:`2`}),(0,Y.jsx)(`path`,{d:`M7 11V7a5 5 0 0 1 10 0v4`})]}),`read-only · Pi`]})]}),e.description?(0,Y.jsx)(`p`,{className:`text-[13px] leading-[1.45] text-[#a7aab2]`,children:e.description}):null]}),(0,Y.jsxs)(`div`,{className:`flex min-h-0 w-full flex-1 flex-col gap-3.5 overflow-y-auto p-3.5`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Y.jsxs)(bX,{label:`scope`,children:[(0,Y.jsx)(`span`,{className:nX,children:i}),(0,Y.jsx)(`span`,{className:`min-w-0 truncate text-xs text-[#8b8f98]`,children:LY(i)})]}),(0,Y.jsxs)(bX,{label:`invocation`,children:[(0,Y.jsx)(`span`,{className:nX,children:a}),(0,Y.jsx)(`span`,{className:`min-w-0 truncate text-xs text-[#8b8f98]`,children:RY(a)})]}),(0,Y.jsx)(bX,{label:`filePath`,children:(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate ${$Y} text-xs text-[#ecedee]`,title:e.filePath,children:e.filePath})}),(0,Y.jsx)(bX,{label:`baseDir`,children:(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate ${$Y} text-xs text-[#a7aab2]`,title:e.baseDir,children:e.baseDir})})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(`span`,{className:eX,children:`Used by`}),n?null:(0,Y.jsx)(`span`,{className:`${$Y} text-[11px] text-[#a7aab2]`,children:o.pipeline_ids.length}),(0,Y.jsx)(`span`,{className:`flex-1`}),c?(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>l(c),className:`flex h-6 shrink-0 items-center gap-1 rounded-md px-1.5 text-xs font-medium text-[#a7aab2] hover:bg-[#1a1c21] hover:text-[#ecedee]`,children:[`Open stage`,(0,Y.jsx)(dX,{className:`size-3`})]}):null]}),n?(0,Y.jsx)(`p`,{className:`text-xs text-[#8b8f98]`,children:`Usage index unavailable`}):s.length===0?(0,Y.jsxs)(`p`,{className:`text-xs text-[#8b8f98]`,children:[`No stage sets skill: `,e.name,` yet.`]}):(0,Y.jsx)(`div`,{className:`flex flex-col rounded-[10px] border border-[#ffffff12]`,children:s.map((t,n)=>{let r=n===s.length-1,i=(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(`span`,{className:rX,children:t.stageId}),t.pipelineId?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`span`,{className:`text-[#8b8f98]`,children:(0,Y.jsxs)(uX,{className:`size-3`,children:[(0,Y.jsx)(`path`,{d:`M5 12h14`}),(0,Y.jsx)(`path`,{d:`m12 5 7 7-7 7`})]})}),(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate ${$Y} text-xs text-[#ecedee]`,children:t.pipelineId})]}):(0,Y.jsx)(`span`,{className:`flex-1`}),t.pipeline?(0,Y.jsx)(`span`,{className:`text-[#8b8f98]`,children:(0,Y.jsx)(uX,{children:(0,Y.jsx)(`path`,{d:`m9 18 6-6-6-6`})})}):null]}),(0,Y.jsxs)(`span`,{className:`truncate ${$Y} text-[11px] text-[#8b8f98]`,children:[`skill: `,e.name]})]}),a=`flex flex-col gap-[3px] px-2.5 py-[7px] text-left${r?``:` border-b border-b-[#ffffff12]`}`,o=t.pipeline;return o?(0,Y.jsx)(`button`,{type:`button`,onClick:()=>l(o),className:`${a} hover:bg-[#1a1c21]`,children:i},`${t.pipelineId}:${n}`):(0,Y.jsx)(`div`,{className:a,children:i},`${t.pipelineId??t.stageId}:${n}`)})})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(`span`,{className:`text-[#8b8f98]`,children:(0,Y.jsxs)(uX,{className:`size-3`,children:[(0,Y.jsx)(`path`,{d:`M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z`}),(0,Y.jsx)(`path`,{d:`M14 2v4a2 2 0 0 0 2 2h4`}),(0,Y.jsx)(`path`,{d:`M10 9H8`}),(0,Y.jsx)(`path`,{d:`M16 13H8`}),(0,Y.jsx)(`path`,{d:`M16 17H8`})]})}),(0,Y.jsx)(`span`,{className:`flex-1 ${$Y} text-[11px] text-[#8b8f98]`,children:`SKILL.md`}),(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>void cX(e.filePath,`Copied path`),className:`flex h-6 shrink-0 items-center gap-1 rounded-md px-1.5 text-xs font-medium text-[#a7aab2] hover:bg-[#1a1c21] hover:text-[#ecedee]`,children:[`Open file`,(0,Y.jsx)(dX,{className:`size-3`})]})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-[5px] rounded-[10px] border border-[#ffffff12] bg-[#0c0d0f] px-3 py-2.5`,children:[(0,Y.jsxs)(`span`,{className:`truncate ${$Y} text-[11px] text-[#8b8f98]`,children:[`name: `,e.name]}),(0,Y.jsx)(`span`,{className:`my-0.5 block h-px w-full bg-[#ffffff12]`}),(0,Y.jsx)(`p`,{className:`text-xs leading-[1.45] text-[#a7aab2]`,children:e.description||`No description.`}),(0,Y.jsxs)(`p`,{className:`break-all text-[11px] leading-[1.45] text-[#8b8f98]`,children:[`Full SKILL.md is on disk at`,` `,(0,Y.jsx)(`span`,{className:$Y,children:e.filePath}),`.`]})]})]})]}),(0,Y.jsxs)(`div`,{className:`flex w-full shrink-0 flex-col gap-2 border-t border-t-[#ffffff12] px-3.5 py-3`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>void cX(e.name,`Copied`),className:`flex h-8 shrink-0 items-center gap-1.5 rounded-lg border border-[#ffffff1a] bg-[#1a1c21] px-2.5 text-[13px] font-medium text-[#ecedee] hover:bg-[#202228]`,children:[(0,Y.jsx)(`span`,{className:`text-[#a7aab2]`,children:(0,Y.jsx)(fX,{})}),`Copy name`,(0,Y.jsx)(`kbd`,{className:`rounded-sm border border-[#ffffff1a] px-[5px] ${$Y} text-[11px] leading-normal text-[#8b8f98]`,children:`C`})]}),(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>void cX(e.filePath,`Copied path`),className:`flex h-8 shrink-0 items-center gap-1.5 rounded-lg px-2 text-[13px] font-medium text-[#a7aab2] hover:bg-[#1a1c21] hover:text-[#ecedee]`,children:[(0,Y.jsxs)(uX,{children:[(0,Y.jsx)(`path`,{d:`M10.7 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v4.1`}),(0,Y.jsx)(`path`,{d:`m21 21-1.9-1.9`}),(0,Y.jsx)(`circle`,{cx:`17`,cy:`17`,r:`3`})]}),`Reveal in Finder`]})]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(`span`,{className:`text-[#8b8f98]`,children:(0,Y.jsxs)(uX,{className:`size-3`,children:[(0,Y.jsx)(`polyline`,{points:`4 17 10 11 4 5`}),(0,Y.jsx)(`line`,{x1:`12`,x2:`20`,y1:`19`,y2:`19`})]})}),(0,Y.jsxs)(`span`,{className:`whitespace-nowrap ${$Y} text-xs text-[#a7aab2]`,children:[`$ `,aX]}),(0,Y.jsx)(pX,{text:aX,label:`Copy sf skills list`}),(0,Y.jsx)(`span`,{className:`min-w-0 truncate text-xs text-[#8b8f98]`,children:`shows every skill and its source`})]})]})]})}function SX({skillName:e,query:t=``,reloadNonce:n=0}){let[r,i]=(0,J.useState)([]),[a,o]=(0,J.useState)([]),[s,c]=(0,J.useState)({}),[l,u]=(0,J.useState)(!1),[d,f]=(0,J.useState)([]),[p,m]=(0,J.useState)(`all`),[h,g]=(0,J.useState)(e??null),[_,v]=(0,J.useState)(null),[y,b]=(0,J.useState)(!0),x=(0,J.useRef)(null),S=(0,J.useCallback)(async()=>{let[e,t,n]=await Promise.allSettled([sa(),ca(),Fi()]);if(e.status===`fulfilled`)i(e.value.skills),o(e.value.diagnostics),v(null);else{let t=e.reason;v(t instanceof Error?t.message:String(t))}t.status===`fulfilled`?(c(t.value.usages),u(!1)):(c({}),u(!0)),n.status===`fulfilled`&&f(n.value.pipelines),b(!1)},[]);(0,J.useEffect)(()=>{b(!0),S()},[S,n]),(0,J.useEffect)(()=>{e&&g(e)},[e]);let C=(0,J.useMemo)(()=>GY(r,`all`,t,s),[r,t,s]),w=(0,J.useMemo)(()=>WY(C,s),[C,s]),T=(0,J.useMemo)(()=>GY(r,p,t,s),[r,p,t,s]),E=(0,J.useMemo)(()=>KY(T,s),[T,s]),D=(0,J.useMemo)(()=>qY(E),[E]),O=(0,J.useMemo)(()=>D.map(e=>e.name),[D]);(0,J.useEffect)(()=>{O.length!==0&&(!h||!O.includes(h))&&g(O[0])},[O,h]);let k=(0,J.useMemo)(()=>D.find(e=>e.name===h)??null,[D,h]);(0,J.useEffect)(()=>{!h||!x.current||x.current.querySelector(`[data-skill-row="${CSS.escape(h)}"]`)?.scrollIntoView?.({block:`nearest`})},[h]);let A=(0,J.useCallback)(e=>{g(e),Z(wc({tab:`skills`,skill:e}))},[]);function j(e){let t=JY(O,h,e);t&&t!==h&&A(t)}Yc([{key:`j`,scope:`catalog`,handler:e=>{e.preventDefault(),j(1)}},{key:`k`,scope:`catalog`,handler:e=>{e.preventDefault(),j(-1)}},{key:`enter`,scope:`catalog`,when:()=>O.length>0,handler:t=>{t.preventDefault();let n=k?.name??O[0];n&&n!==e&&A(n)}},{key:`c`,scope:`catalog`,when:()=>k!==null,handler:e=>{e.preventDefault(),k&&cX(k.name,`Copied`)}},{key:`/`,scope:`catalog`,handler:e=>{e.preventDefault(),lX()}}],`catalog`);let M=T.filter(e=>zY(s,e.name).stage_ids.length>0).length;return(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,Y.jsx)(mX,{diagnostics:a}),(0,Y.jsx)(hX,{filter:p,counts:w,onChange:m}),(0,Y.jsx)(gX,{}),(0,Y.jsxs)(`div`,{ref:x,className:`flex min-h-0 flex-1 flex-col overflow-y-auto`,children:[_?(0,Y.jsx)(`p`,{className:`px-4 py-3 text-xs text-[#f2645a]`,children:_}):null,y?(0,Y.jsx)(`p`,{className:`px-4 py-3 text-xs text-[#8b8f98]`,children:`Loading skills…`}):null,!y&&!_&&D.length===0?(0,Y.jsx)(`p`,{className:`px-4 py-3 text-xs text-[#8b8f98]`,children:`No skills found.`}):null,E.map(e=>(0,Y.jsxs)(`div`,{className:`flex flex-col`,children:[(0,Y.jsx)(vX,{label:e.label,count:e.skills.length,hint:e.hint,used:e.id===`used`}),e.skills.map(e=>(0,Y.jsx)(_X,{skill:e,usages:s,selected:h===e.name,onSelect:()=>A(e.name)},`${e.scope}:${e.filePath}`))]},e.id))]}),(0,Y.jsx)(yX,{folder:T.length>0?XY(T):`.pi/skills`,total:T.length,used:M})]}),k?(0,Y.jsx)(xX,{skill:k,usages:s,usageFailed:l,pipelines:d}):null]})}var CX=`[font-family:'Geist_Mono',_monospace]`,wX=`npx skills add https://github.com/vercel-labs/skills --skill find-skills`,TX=`min-h-[88px] w-full resize-y rounded-lg border border-[#ffffff1a] bg-[#1a1c21] px-2.5 py-2 text-xs leading-[1.55] text-[#ecedee] outline-none placeholder:text-[#8b8f98] focus:border-[#ecedee73] ${CX}`;function EX({open:e,onClose:t,onInstalled:n}){let[r,i]=(0,J.useState)(``),[a,o]=(0,J.useState)(!1);if((0,J.useEffect)(()=>{e&&(i(``),o(!1))},[e]),(0,J.useEffect)(()=>{if(!e)return;function n(e){e.key===`Escape`&&t()}return window.addEventListener(`keydown`,n),()=>window.removeEventListener(`keydown`,n)},[e,t]),!e)return null;async function s(){let e=r.trim();if(!e||a)return;o(!0);let i=await la({command:e});if(o(!1),!i.ok){SD(i.error);return}SD(i.message||`Installed ${i.skillName}`),t(),n?.()}return(0,JP.createPortal)((0,Y.jsx)(`div`,{className:`fixed inset-0 z-[200] flex items-center justify-center bg-[#040506a8] p-4`,role:`presentation`,onClick:t,children:(0,Y.jsxs)(`div`,{className:`flex w-full max-w-[520px] flex-col rounded-xl border border-[#ffffff1a] bg-[#131418] shadow-[0px_32px_96px_rgba(0,0,0,0.65),0px_8px_24px_rgba(0,0,0,0.45)]`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`install-skill-title`,onClick:e=>e.stopPropagation(),children:[(0,Y.jsxs)(`div`,{className:`flex w-full items-start gap-3 px-5 pb-2.5 pt-3.5`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-1 flex-col gap-[3px]`,children:[(0,Y.jsx)(`h2`,{id:`install-skill-title`,className:`text-lg font-semibold tracking-[-0.36px] text-[#ecedee]`,children:`Install skill`}),(0,Y.jsxs)(`p`,{className:`text-[13px] text-[#a7aab2]`,children:[`Paste an install command, for example`,` `,(0,Y.jsx)(`span`,{className:`break-all text-[#ecedee] ${CX} text-xs`,children:wX})]})]}),(0,Y.jsx)(`button`,{type:`button`,"aria-label":`Close`,onClick:t,className:`flex size-7 items-center justify-center rounded-md text-[#8b8f98] hover:bg-[#1a1c21]`,children:(0,Y.jsx)(St,{className:`size-4`,"aria-hidden":!0})})]}),(0,Y.jsx)(`div`,{className:`flex flex-col gap-3.5 px-5 py-3`,children:(0,Y.jsxs)(`label`,{className:`flex flex-col gap-[5px]`,children:[(0,Y.jsx)(`span`,{className:`font-sans text-xs leading-normal text-[#a7aab2]`,children:`Command`}),(0,Y.jsx)(`textarea`,{className:TX,value:r,onChange:e=>i(e.target.value),placeholder:wX,autoComplete:`off`,spellCheck:!1,autoFocus:!0})]})}),(0,Y.jsxs)(`div`,{className:`flex items-center justify-end gap-2 border-t border-t-[#ffffff12] px-5 py-3`,children:[(0,Y.jsx)(`button`,{type:`button`,onClick:t,className:`flex h-8 items-center rounded-lg border border-[#ffffff1a] bg-[#1a1c21] px-3 text-[13px] font-medium text-[#ecedee]`,children:`Cancel`}),(0,Y.jsx)(`button`,{type:`button`,disabled:a||!r.trim(),onClick:()=>void s(),className:`flex h-8 items-center rounded-lg bg-[#ecedee] px-3 text-[13px] font-medium text-[#0c0d0f] disabled:opacity-50`,children:a?`Installing…`:`Install`})]})]})}),document.body)}var DX=`[font-family:'Geist_Mono',_monospace]`,OX=`text-[#a7aab2] font-sans text-xs leading-normal`,kX=`h-8 w-full rounded-lg border border-[#ffffff1a] bg-[#1a1c21] px-2.5 text-xs text-[#ecedee] outline-none placeholder:text-[#8b8f98] focus:border-[#ecedee73]`,AX=`text-[11px] text-[#f2645a]`;function jX({open:e,initial:t,onClose:n}){let[r,i]=(0,J.useState)([]),[a,o]=(0,J.useState)(()=>lY(t)),[s,c]=(0,J.useState)({}),[l,u]=(0,J.useState)(null),[d,f]=(0,J.useState)(!1);(0,J.useEffect)(()=>{if(!e)return;o(lY(t)),c({}),u(null);let n=!1;return Promise.all([Fi(),wo()]).then(([{pipelines:e},{roots:r}])=>{if(n)return;let a=eY(e,r);i(a),o(()=>{let e=lY(t),n=e.directoryKey&&a.some(t=>t.key===e.directoryKey)?e.directoryKey:a[0]?.key??``;return{...e,directoryKey:n}})}).catch(e=>{n||u(e instanceof Error?e.message:String(e))}),()=>{n=!0}},[e,t]),(0,J.useEffect)(()=>{if(!e)return;function t(e){e.key===`Escape`&&n()}return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[e,n]);let p=(0,J.useMemo)(()=>r.find(e=>e.key===a.directoryKey)??null,[r,a.directoryKey]);if(!e)return null;function m(e){o(t=>({...t,id:e,filename:t.filenameTouched?t.filename:e?`${e}.yaml`:``}))}function h(e){o(t=>({...t,gateKinds:t.gateKinds.includes(e)?t.gateKinds.filter(t=>t!==e):[...t.gateKinds,e]}))}async function g(){let e=pY(a);if(c(e),u(null),Object.keys(e).length>0||!p)return;f(!0);let t=a.model.trim(),r=await aa({pipeline_directory:p.directory,filename:a.filename.trim(),id:a.id.trim(),system_prompt:a.systemPrompt,...t?{model:t}:{},...dY(`chips`,a.gateKinds),...fY(a.skill),...p.project_root?{project_root:p.project_root}:{}});if(f(!1),!r.ok){u(r.error);return}SD(`Stage file written · ${r.stage.path}`),n()}return(0,JP.createPortal)((0,Y.jsx)(`div`,{className:`fixed inset-0 z-[200] flex items-center justify-center bg-[#040506a8] p-4`,role:`presentation`,onClick:n,children:(0,Y.jsxs)(`div`,{className:`flex max-h-[90vh] w-full max-w-[560px] flex-col overflow-y-auto rounded-xl border border-[#ffffff1a] bg-[#131418] shadow-[0px_32px_96px_rgba(0,0,0,0.65),0px_8px_24px_rgba(0,0,0,0.45)]`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`new-stage-title`,onClick:e=>e.stopPropagation(),children:[(0,Y.jsxs)(`div`,{className:`flex w-full items-start gap-3 px-5 pb-2.5 pt-3.5`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-1 flex-col gap-[3px]`,children:[(0,Y.jsx)(`h2`,{id:`new-stage-title`,className:`text-lg font-semibold tracking-[-0.36px] text-[#ecedee]`,children:`New stage`}),(0,Y.jsxs)(`p`,{className:`text-[13px] text-[#a7aab2]`,children:[`Writes a stage YAML file. It appears in this list once a pipeline`,` `,(0,Y.jsx)(`span`,{className:`text-[#ecedee] ${DX} text-xs`,children:`uses`}),` it.`]})]}),(0,Y.jsx)(`button`,{type:`button`,"aria-label":`Close`,onClick:n,className:`flex size-7 items-center justify-center rounded-md text-[#8b8f98] hover:bg-[#1a1c21]`,children:(0,Y.jsx)(St,{className:`size-4`,"aria-hidden":!0})})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-3.5 px-5 py-3`,children:[(0,Y.jsxs)(`label`,{className:`flex flex-col gap-[5px]`,children:[(0,Y.jsx)(`span`,{className:OX,children:`Pipeline directory`}),(0,Y.jsxs)(`select`,{className:`${kX} ${DX}`,value:a.directoryKey,onChange:e=>o(t=>({...t,directoryKey:e.target.value})),children:[r.length===0?(0,Y.jsx)(`option`,{value:``,children:`No pipelines found`}):null,r.map(e=>(0,Y.jsx)(`option`,{value:e.key,children:e.project_root?`${e.directory} · ${e.project_root}`:e.directory},e.key))]}),s.directory?(0,Y.jsx)(`p`,{className:AX,children:s.directory}):null]}),(0,Y.jsxs)(`div`,{className:`flex gap-3`,children:[(0,Y.jsxs)(`label`,{className:`flex flex-1 flex-col gap-[5px]`,children:[(0,Y.jsx)(`span`,{className:OX,children:`Stage id`}),(0,Y.jsx)(`input`,{className:`${kX} ${DX}`,value:a.id,onChange:e=>m(e.target.value),placeholder:`review`,autoComplete:`off`,spellCheck:!1,autoFocus:!0}),s.id?(0,Y.jsx)(`p`,{className:AX,children:s.id}):null]}),(0,Y.jsxs)(`label`,{className:`flex flex-1 flex-col gap-[5px]`,children:[(0,Y.jsx)(`span`,{className:OX,children:`Filename`}),(0,Y.jsx)(`input`,{className:`${kX} ${DX}`,value:a.filename,onChange:e=>o(t=>({...t,filename:e.target.value,filenameTouched:!0})),placeholder:`review.yaml`,autoComplete:`off`,spellCheck:!1}),s.filename?(0,Y.jsx)(`p`,{className:AX,children:s.filename}):null]})]}),(0,Y.jsxs)(`label`,{className:`flex flex-col gap-[5px]`,children:[(0,Y.jsx)(`span`,{className:OX,children:`System prompt`}),(0,Y.jsx)(`textarea`,{className:`min-h-[120px] w-full rounded-lg border border-[#ffffff1a] bg-[#1a1c21] px-2.5 py-2 text-xs leading-[1.55] text-[#ecedee] outline-none placeholder:text-[#8b8f98] focus:border-[#ecedee73] ${DX}`,value:a.systemPrompt,onChange:e=>o(t=>({...t,systemPrompt:e.target.value})),placeholder:`You are…`,spellCheck:!1}),s.systemPrompt?(0,Y.jsx)(`p`,{className:AX,children:s.systemPrompt}):null]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-[5px]`,children:[(0,Y.jsx)(`span`,{className:OX,children:`Model (optional)`}),(0,Y.jsx)(cF,{ariaLabel:`Stage model`,value:a.model||null,inheritLabel:`Inherits default`,onChange:e=>o(t=>({...t,model:e??``}))}),(0,Y.jsx)(`p`,{className:`text-[11px] text-[#8b8f98]`,children:`Optional. Inherits pipeline then global default when omitted.`})]}),(0,Y.jsxs)(`label`,{className:`flex flex-col gap-[5px]`,children:[(0,Y.jsx)(`span`,{className:OX,children:`Skill (optional)`}),(0,Y.jsx)(`input`,{className:`${kX} ${DX}`,value:a.skill,onChange:e=>o(t=>({...t,skill:e.target.value})),placeholder:`code-review`,autoComplete:`off`,spellCheck:!1})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-[5px]`,children:[(0,Y.jsx)(`span`,{className:OX,children:`Gate kinds`}),(0,Y.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:RJ.map(e=>{let t=a.gateKinds.includes(e);return(0,Y.jsx)(`button`,{type:`button`,"aria-pressed":t,onClick:()=>h(e),className:`h-[26px] rounded-md border px-2 ${DX} text-[11px] ${t?`border-[#ecedee73] bg-[#1a1c21] text-[#ecedee]`:`border-[#ffffff1a] text-[#8b8f98] hover:text-[#a7aab2]`}`,children:e},e)})})]}),l?(0,Y.jsx)(`p`,{className:AX,children:l}):null]}),(0,Y.jsxs)(`div`,{className:`flex items-center justify-end gap-2 border-t border-t-[#ffffff12] px-5 py-3`,children:[(0,Y.jsx)(`button`,{type:`button`,onClick:n,className:`flex h-8 items-center rounded-lg border border-[#ffffff1a] bg-[#1a1c21] px-3 text-[13px] font-medium text-[#ecedee]`,children:`Cancel`}),(0,Y.jsx)(`button`,{type:`button`,disabled:d,onClick:()=>void g(),className:`flex h-8 items-center rounded-lg bg-[#ecedee] px-3 text-[13px] font-medium text-[#0c0d0f] disabled:opacity-50`,children:d?`Writing…`:`Create stage`})]})]})}),document.body)}function MX({tab:e=`stages`,skillName:t,packageScope:n,packageSource:r,filePath:i}){return n&&r?(0,Y.jsx)(EJ,{packageScope:n,packageSource:r}):i?(0,Y.jsx)(EJ,{filePath:i}):(0,Y.jsx)(NX,{tab:e===`extensions`?`stages`:e,skillName:t})}function NX({tab:e,skillName:t}){let[n,r]=(0,J.useState)(``),[i,a]=(0,J.useState)(null),[o,s]=(0,J.useState)(!1),[c,l]=(0,J.useState)(0),u=(0,J.useRef)(null),[d,f]=(0,J.useState)(),[p,m]=(0,J.useState)(),h=(0,J.useCallback)(async()=>{try{let[e,t]=await Promise.all([Fi(),sa()]),n=new Set;for(let t of e.pipelines)for(let e of t.stages)n.add(`${t.project_root??``}:${e.id}`);f(n.size),m(t.skills.length)}catch{f(void 0),m(void 0)}},[]);(0,J.useEffect)(()=>{h()},[h]);let g=(0,J.useCallback)(e=>{a({initial:e??null})},[]),_=(0,J.useCallback)(()=>a(null),[]),v=(0,J.useCallback)(()=>s(!0),[]),y=(0,J.useCallback)(()=>s(!1),[]);return Yc([{key:`/`,scope:`catalog`,handler:e=>{e.preventDefault(),u.current?.focus(),u.current?.select()}},{key:`n`,scope:`catalog`,when:()=>e===`stages`&&i===null,handler:e=>{e.preventDefault(),g()}},{key:`i`,scope:`catalog`,when:()=>e===`skills`&&!o&&i===null,handler:e=>{e.preventDefault(),v()}}],`catalog`),(0,Y.jsxs)(`div`,{className:`flex h-full min-h-0 min-w-0 flex-1 flex-col bg-[#0c0d0f]`,children:[(0,Y.jsx)(NJ,{active:e,stageCount:d,skillCount:p,query:n,onQueryChange:r,searchRef:u,onNewStage:()=>g(),onInstallSkill:v}),(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[e===`stages`?(0,Y.jsx)(bY,{query:n,onNewStage:g}):null,e===`skills`?(0,Y.jsx)(SX,{skillName:t,query:n,reloadNonce:c}):null]}),(0,Y.jsx)(jX,{open:i!==null,initial:i?.initial??null,onClose:_}),(0,Y.jsx)(EX,{open:o,onClose:y,onInstalled:()=>{l(e=>e+1),h()}})]})}var PX=[{id:`general`,label:`General`,icon:Xe},{id:`providers`,label:`Providers`,icon:re},{id:`concurrency`,label:`Concurrency`,icon:ke},{id:`mcp`,label:`MCP server`,icon:Je},{id:`project-mcp`,label:`Project MCP`,icon:xt},{id:`notifications`,label:`Notifications`,icon:U}];function FX(e){return PX.find(t=>t.id===e)?.label??`Settings`}function IX(e){return`sf-settings-${e}`}function LX({active:e,onSelect:t,providersConnected:n}){return(0,Y.jsxs)(`nav`,{className:`flex w-[200px] shrink-0 flex-col gap-0.5 border-r border-r-[#ffffff12] px-3 py-5`,"aria-label":`Settings sections`,children:[(0,Y.jsx)(`div`,{className:`px-2.5 pb-2 pt-0 text-[11px] font-medium uppercase tracking-[0.88px] text-[var(--sf-text-3)]`,children:`Settings`}),PX.map(r=>{let i=e===r.id,a=r.icon;return(0,Y.jsxs)(`button`,{type:`button`,className:`flex h-8 items-center gap-2.5 rounded-lg px-2.5 py-0 text-left${i?` bg-[var(--sf-active)]`:``}`,"aria-current":i?`page`:void 0,onClick:()=>t(r.id),children:[(0,Y.jsx)(a,{className:`size-[15px] shrink-0${i?` text-[var(--sf-text-1)]`:` text-[var(--sf-text-3)]`}`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-sans text-[13px]${i?` font-medium text-[var(--sf-text-1)]`:` text-[var(--sf-text-2)]`}`,children:r.label}),r.id===`providers`&&n?(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace] text-[11px] text-[var(--sf-text-3)]`,children:n}):null]},r.id)})]})}function RX(e=window.location.hash){let t=e.includes(`?`)?e.slice(e.indexOf(`?`)+1):``,n=new URLSearchParams(t).get(`section`);return n===`general`||n===`providers`||n===`concurrency`||n===`mcp`||n===`project-mcp`||n===`notifications`?n:`general`}function zX(e){return`/settings?section=${e}`}function BX({section:e,onSectionChange:t,providersNavCount:n,children:r}){let i=FX(e);return(0,Y.jsxs)(`div`,{className:`flex h-screen min-h-0 flex-col overflow-hidden`,children:[(0,Y.jsxs)(`div`,{className:`flex h-14 w-full shrink-0 items-center justify-between border-b border-b-[#ffffff12] px-5 py-0`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(rt,{className:`size-3.5 text-[var(--sf-text-3)]`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`font-sans text-[13px] text-[var(--sf-text-3)]`,children:`Settings`}),(0,Y.jsx)(l,{className:`size-3.5 text-[var(--sf-text-3)]`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`font-sans text-[13px] font-medium text-[var(--sf-text-1)]`,children:i})]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-2.5`,children:[(0,Y.jsx)(G,{className:`size-3.5 text-[var(--sf-ok)]`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`font-sans text-xs text-[var(--sf-text-2)]`,children:`Saved to`}),(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace] text-xs text-[var(--sf-text-2)]`,children:`~/.stageflow/config.yaml`}),(0,Y.jsx)(Nl,{className:`text-[var(--sf-text-3)]`,children:`⌘,`})]})]}),(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1`,children:[(0,Y.jsx)(LX,{active:e,onSelect:t,providersConnected:n}),(0,Y.jsx)(`div`,{id:`sf-settings-scroll`,className:`min-h-0 min-w-0 flex-1 overflow-y-auto px-10 pb-10 pt-7`,children:(0,Y.jsx)(`div`,{className:`mx-auto flex max-w-[840px] flex-col gap-6`,children:r})})]})]})}var VX=`Pi may complete login via a local callback in the Stageflow process. If the browser cannot reach this machine, paste the redirect URL or code when prompted.`,HX=`If automatic completion does not finish, paste the redirect URL or manual code below.`;function UX(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n?.type===`auth_url`)return n}}function WX(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n?.type===`device_code`)return n}}function GX(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n?.type===`progress`||n?.type===`info`)return n.message}}function KX(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n?.type===`info`&&n.links&&n.links.length>0)return n.links}}function qX(e){return e.status===`completed`||e.status===`failed`||e.status===`cancelled`}function JX(e){return e.type===`select`?`select`:e.type===`secret`?`password`:`text`}function YX(e){return e.supportsOauth}var XX=500;function ZX({providerId:e,providerName:t,onComplete:n,onDismiss:r}){let[i,a]=(0,J.useState)(null),[o,s]=(0,J.useState)(null),[c,l]=(0,J.useState)(``),[u,d]=(0,J.useState)(!1),[f,p]=(0,J.useState)(null),m=(0,J.useRef)(!1),h=(0,J.useRef)(!1);(0,J.useEffect)(()=>{m.current||(m.current=!0,(async()=>{d(!0);let t=await ya(e);if(d(!1),!t.ok){s(t.error);return}a(t.session)})())},[e]),(0,J.useEffect)(()=>{if(!i||qX(i))return;let t=window.setInterval(()=>{(async()=>{try{let{session:t}=await ba(e,i.id);a(t)}catch(e){s(e instanceof Error?e.message:String(e))}})()},XX);return()=>window.clearInterval(t)},[e,i?.id,i?.status]),(0,J.useEffect)(()=>{if(!(!i||!qX(i)||h.current)){if(h.current=!0,i.status===`completed`){n(i.provider,i.warning?.message);return}if(i.status===`failed`){s(i.error?.message??`OAuth login failed`);return}r()}},[i,n,r]);let g=i?.pendingPrompt;(0,J.useEffect)(()=>{g||(l(``),s(e=>e===`Enter a value to continue.`?null:e))},[g]);async function _(e,t){try{await navigator.clipboard.writeText(t),p(e),window.setTimeout(()=>p(null),1500)}catch{s(`Could not copy to clipboard`)}}async function v(){if(!i)return;let t=c.trim();if(!t){s(`Enter a value to continue.`);return}d(!0),s(null);let n=await xa(e,i.id,t);if(d(!1),!n.ok){s(n.error);return}l(``),a(n.session)}async function y(t){if(!i)return;d(!0),s(null);let n=await xa(e,i.id,t);if(d(!1),!n.ok){s(n.error);return}a(n.session)}async function b(){if(!i){r();return}d(!0),await Sa(e,i.id),d(!1),h.current=!0,r()}let x=i?UX(i.events):void 0,S=i?WX(i.events):void 0,C=i?GX(i.events):void 0,w=i?KX(i.events):void 0,T=g?JX(g):null;return(0,Y.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:`var(--spacing-2)`,marginTop:`var(--spacing-2)`},children:[(0,Y.jsxs)(`p`,{style:{margin:0,color:`var(--color-text-secondary)`,fontSize:`var(--font-size-sm)`},children:[`Connecting `,t,` with Pi OAuth / subscription login.`]}),C?(0,Y.jsx)(`p`,{className:`muted`,style:{margin:0},children:C}):null,w&&w.length>0?(0,Y.jsx)(`div`,{style:{display:`flex`,gap:`var(--spacing-2)`,flexWrap:`wrap`},children:w.map(e=>(0,Y.jsx)(`a`,{className:`btn btn--ghost`,href:e.url,target:`_blank`,rel:`noreferrer`,children:e.label??`Open link`},e.url))}):null,x?(0,Y.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:`var(--spacing-2)`},children:[x.instructions?(0,Y.jsx)(`p`,{style:{margin:0,fontSize:`var(--font-size-sm)`},children:x.instructions}):null,(0,Y.jsxs)(`div`,{style:{display:`flex`,gap:`var(--spacing-2)`,flexWrap:`wrap`},children:[(0,Y.jsx)(`a`,{className:`btn btn--primary`,href:x.url,target:`_blank`,rel:`noreferrer`,children:`Open browser`}),(0,Y.jsx)(`button`,{type:`button`,className:`btn btn--ghost`,onClick:()=>void _(`url`,x.url),children:f===`url`?`Copied`:`Copy link`})]}),(0,Y.jsxs)(`p`,{style:{margin:0,color:`var(--color-text-secondary)`,fontSize:`var(--font-size-sm)`},children:[VX,` `,HX]})]}):null,S?(0,Y.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:`var(--spacing-2)`},children:[(0,Y.jsxs)(`p`,{style:{margin:0},children:[`Device code: `,(0,Y.jsx)(`strong`,{children:S.userCode})]}),typeof S.expiresInSeconds==`number`?(0,Y.jsxs)(`p`,{className:`muted`,style:{margin:0,fontSize:`var(--font-size-sm)`},children:[`Code expires in about `,S.expiresInSeconds,`s.`]}):null,(0,Y.jsxs)(`div`,{style:{display:`flex`,gap:`var(--spacing-2)`,flexWrap:`wrap`},children:[(0,Y.jsx)(`a`,{className:`btn btn--primary`,href:S.verificationUri,target:`_blank`,rel:`noreferrer`,children:`Open verification page`}),(0,Y.jsx)(`button`,{type:`button`,className:`btn btn--ghost`,onClick:()=>void _(`code`,S.userCode),children:f===`code`?`Copied`:`Copy code`}),(0,Y.jsx)(`button`,{type:`button`,className:`btn btn--ghost`,onClick:()=>void _(`uri`,S.verificationUri),children:f===`uri`?`Copied`:`Copy URI`})]})]}):null,g&&T===`select`?(0,Y.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:`var(--spacing-2)`},children:[(0,Y.jsx)(`p`,{style:{margin:0},children:g.message}),(g.options??[]).map(e=>(0,Y.jsxs)(`button`,{type:`button`,className:`btn btn--ghost`,disabled:u,onClick:()=>void y(e.id),children:[e.label,e.description?` — ${e.description}`:``]},e.id))]}):null,g&&T!==`select`?(0,Y.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:`var(--spacing-2)`},children:[(0,Y.jsx)(`p`,{style:{margin:0},children:g.message}),g.type===`manual_code`?(0,Y.jsx)(`p`,{style:{margin:0,color:`var(--color-text-secondary)`,fontSize:`var(--font-size-sm)`},children:HX}):null,(0,Y.jsx)(`input`,{className:`input`,type:T===`password`?`password`:`text`,autoComplete:`off`,placeholder:g.placeholder??``,value:c,onChange:e=>l(e.target.value)}),(0,Y.jsx)(`button`,{type:`button`,className:`btn btn--primary`,disabled:u,onClick:()=>void v(),children:u?`Sending…`:`Continue`})]}):null,o?(0,Y.jsx)(`p`,{style:{margin:0,color:`var(--color-text-red)`,fontSize:`var(--font-size-sm)`},children:o}):null,(0,Y.jsx)(`div`,{style:{display:`flex`,gap:`var(--spacing-2)`},children:(0,Y.jsx)(`button`,{type:`button`,className:`btn btn--ghost`,disabled:u,onClick:()=>void b(),children:`Cancel`})})]})}var QX=null;function $X(){return(0,Y.jsxs)(`div`,{className:`flex h-14 items-center gap-3 border-b border-b-[#ffffff12] px-3.5 py-0`,children:[(0,Y.jsx)(`div`,{className:`size-7 shrink-0 animate-pulse rounded-[7px] bg-[var(--sf-raised)]`}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1.5`,children:[(0,Y.jsx)(`div`,{className:`h-3 w-28 animate-pulse rounded bg-[var(--sf-raised)]`}),(0,Y.jsx)(`div`,{className:`h-2.5 w-56 max-w-full animate-pulse rounded bg-[var(--sf-raised)]`})]}),(0,Y.jsx)(`div`,{className:`h-6 w-[88px] shrink-0 animate-pulse rounded-full bg-[var(--sf-raised)]`})]})}function eZ(e,t,n,r){return t?.configured===!0||n===e||r===e}function tZ({onProvidersSummary:e}){let t=(0,J.useRef)(e);t.current=e;let n=(0,J.useRef)(null),[r,i]=(0,J.useState)(()=>QX?.providers??[]),[a,o]=(0,J.useState)(()=>QX?.statuses??{}),[s,c]=(0,J.useState)(()=>QX?.credentialSource),[u,d]=(0,J.useState)(()=>QX==null),[f,p]=(0,J.useState)(!1),[m,h]=(0,J.useState)(null),[g,_]=(0,J.useState)(!1),[v,y]=(0,J.useState)(null),[b,x]=(0,J.useState)(null),[S,C]=(0,J.useState)(``),[w,T]=(0,J.useState)(null),[E,D]=(0,J.useState)(null),[O,k]=(0,J.useState)(null),[A,j]=(0,J.useState)(!1),[M,N]=(0,J.useState)(``),{primaryProviders:P,otherProviders:F}=(0,J.useMemo)(()=>{let e=[],t=[];for(let n of r)eZ(n.id,a[n.id],b,v)?e.push(n):t.push(n);let n=(e,t)=>e.id.localeCompare(t.id);return e.sort(n),t.sort(n),{primaryProviders:e,otherProviders:t}},[r,a,b,v]),I=(0,J.useMemo)(()=>{let e=M.trim().toLowerCase();return e?F.filter(t=>t.id.toLowerCase().includes(e)||t.name.toLowerCase().includes(e)):F},[F,M]),L=(0,J.useCallback)(async(e=`background`)=>{h(null),e===`background`&&(e!==`initial`||QX!=null)&&p(!0);try{let[e,n]=await Promise.all([ma(),ha()]);i(e.providers),c(n.credentialSource);let r={};await Promise.all(e.providers.map(async e=>{try{let{provider:t}=await ga(e.id);r[e.id]=t}catch{r[e.id]=void 0}})),o(r),QX={providers:e.providers,statuses:r,credentialSource:n.credentialSource};let a=e.providers.filter(e=>r[e.id]?.configured===!0).length;t.current?.(a,e.providers.length)}finally{p(!1)}},[]);(0,J.useEffect)(()=>{(async()=>{try{await L(QX==null?`initial`:`background`)}catch(e){h(e instanceof Error?e.message:String(e))}finally{d(!1)}})()},[L]),(0,J.useEffect)(()=>{A&&n.current?.focus()},[A]);async function R(e){_(!0),h(null);try{let t=await wa(e);c(t.credentialSource),await L(`background`)}catch(e){h(e instanceof Error?e.message:String(e))}finally{_(!1)}}async function z(e){let t=S.trim();if(!t){D(`Paste an API key to connect.`);return}T(e),D(null);let n=await _a(e,t);if(T(null),!n.ok){D(n.error);return}C(``),y(null),o(t=>({...t,[e]:n.provider})),L(`background`)}async function V(e){T(e),D(null);let t=await va(e);if(T(null),!t.ok){D(t.error);return}o(n=>({...n,[e]:t.provider})),L(`background`)}let H=u&&r.length===0;return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,Y.jsxs)(`header`,{className:`flex w-full items-end justify-between gap-6`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Y.jsx)(`h1`,{className:`font-sans text-xl font-semibold tracking-[-0.4px] text-[var(--sf-text-1)]`,children:`Providers`}),(0,Y.jsx)(`p`,{className:`max-w-xl font-sans text-[13px] text-[var(--sf-text-2)]`,children:`Model accounts your stages call. Keys stay on this machine and are never sent to MCP clients.`})]}),(0,Y.jsxs)(`button`,{type:`button`,className:`flex h-8 shrink-0 items-center gap-2 rounded-lg border border-[#ffffff1a] bg-[var(--sf-raised)] px-3 py-0 disabled:opacity-60`,disabled:H,onClick:()=>void L(`background`),children:[(0,Y.jsx)(nt,{className:`size-3.5 text-[var(--sf-text-2)]${f?` animate-spin`:``}`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`font-sans text-[13px] font-medium text-[var(--sf-text-1)]`,children:`Test connections`}),(0,Y.jsx)(Nl,{className:`text-[var(--sf-text-3)]`,children:`T`})]})]}),(0,Y.jsxs)(`section`,{className:`flex w-full flex-col gap-2.5`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Y.jsx)(`span`,{className:`text-[11px] font-medium uppercase tracking-[0.88px] text-[var(--sf-text-3)]`,children:`Credential source`}),(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace] text-xs text-[var(--sf-text-3)]`,children:`providers.credential_source`})]}),(0,Y.jsx)(`div`,{className:`grid grid-cols-1 gap-3`,children:(0,Y.jsx)(nZ,{selected:s===`sf_owned`||s===void 0,disabled:H||g,tag:`sf_owned`,icon:De,title:`Stageflow-owned credentials`,description:`Separate logins only Stageflow uses.`,path:`~/.stageflow/agent/auth.json (overridable)`,onSelect:()=>void R(`sf_owned`)})})]}),m?(0,Y.jsx)(`p`,{className:`font-sans text-[13px] text-[var(--sf-fail)]`,children:m}):null,E?(0,Y.jsx)(`p`,{className:`font-sans text-[13px] text-[var(--sf-fail)]`,children:E}):null,O?(0,Y.jsx)(`p`,{className:`font-sans text-[13px] text-[var(--sf-text-2)]`,children:O}):null,(0,Y.jsxs)(`section`,{className:`flex w-full flex-col gap-2.5`,children:[(0,Y.jsx)(`span`,{className:`text-[11px] font-medium uppercase tracking-[0.88px] text-[var(--sf-text-3)]`,children:`Accounts`}),(0,Y.jsx)(`div`,{className:`flex flex-col overflow-clip rounded-xl border border-[#ffffff12] bg-[var(--sf-panel)]`,children:H?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)($X,{}),(0,Y.jsx)($X,{}),(0,Y.jsx)($X,{})]}):r.length===0?(0,Y.jsx)(`p`,{className:`px-3.5 py-6 font-sans text-[13px] text-[var(--sf-text-3)]`,children:`No providers reported by Pi.`}):(0,Y.jsxs)(Y.Fragment,{children:[P.map((e,t)=>(0,Y.jsx)(rZ,{provider:e,status:a[e.id],isLast:t===P.length-1&&F.length===0&&!A,connecting:v===e.id,oauthing:b===e.id,apiKeyDraft:S,rowBusy:w===e.id,onSetConnecting:e=>{y(e),D(null)},onSetOauthing:e=>{x(e),D(null),k(null)},onApiKeyChange:C,onConnectSubmit:e=>void z(e),onDisconnect:e=>void V(e),onOauthComplete:(t,n)=>{x(null),k(n??null),t?o(n=>({...n,[e.id]:t})):L(`background`)},onOauthDismiss:()=>{x(null),D(null)}},e.id)),F.length>0?(0,Y.jsx)(Y.Fragment,{children:A?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`div`,{className:`flex h-[38px] items-center gap-2 border-t border-t-[#ffffff12] px-3.5 py-0`,children:[(0,Y.jsxs)(`button`,{type:`button`,className:`flex shrink-0 items-center gap-1.5`,onClick:()=>{j(!1),N(``)},children:[(0,Y.jsx)(B,{className:`size-3.5 text-[var(--sf-text-3)]`,"aria-hidden":`true`}),(0,Y.jsxs)(`span`,{className:`font-sans text-[13px] font-medium text-[var(--sf-text-2)]`,children:[`Other providers (`,F.length,`)`]})]}),(0,Y.jsx)(Oe,{className:`size-3.5 shrink-0 text-[var(--sf-text-3)]`,"aria-hidden":`true`}),(0,Y.jsx)(`input`,{ref:n,value:M,onChange:e=>N(e.target.value),placeholder:`Search providers…`,className:`min-w-0 flex-1 border-none bg-transparent font-sans text-[13px] text-[var(--sf-text-1)] outline-none placeholder:text-[var(--sf-text-3)]`})]}),I.map((e,t)=>(0,Y.jsx)(rZ,{provider:e,status:a[e.id],isLast:t===I.length-1,connecting:v===e.id,oauthing:b===e.id,apiKeyDraft:S,rowBusy:w===e.id,onSetConnecting:e=>{y(e),D(null)},onSetOauthing:e=>{x(e),D(null),k(null)},onApiKeyChange:C,onConnectSubmit:e=>void z(e),onDisconnect:e=>void V(e),onOauthComplete:(t,n)=>{x(null),k(n??null),t?o(n=>({...n,[e.id]:t})):L(`background`)},onOauthDismiss:()=>{x(null),D(null)}},e.id))]}):(0,Y.jsxs)(`button`,{type:`button`,className:`flex h-11 w-full items-center gap-2 border-t border-t-[#ffffff12] px-3.5 py-0 text-left`,onClick:()=>j(!0),children:[(0,Y.jsx)(l,{className:`size-3.5 text-[var(--sf-text-3)]`,"aria-hidden":`true`}),(0,Y.jsxs)(`span`,{className:`font-sans text-[13px] font-medium text-[var(--sf-text-2)]`,children:[`Other providers (`,F.length,`)`]})]})}):null]})})]})]})}function nZ({selected:e,disabled:t,tag:n,icon:r,title:i,description:a,path:o,onSelect:s}){return(0,Y.jsxs)(`button`,{type:`button`,disabled:t,onClick:s,className:`flex gap-3 rounded-[10px] border p-3.5 text-left disabled:opacity-60${e?` border-[#ffffff47] bg-[var(--sf-active)] shadow-[0px_0px_0px_3px_rgba(255,255,255,0.04)]`:` border-[#ffffff12] bg-[var(--sf-panel)]`}`,children:[(0,Y.jsx)(`span`,{className:`mt-0.5 flex size-4 shrink-0 items-center justify-center rounded-full border${e?` border-[var(--sf-text-1)]`:` border-[#ffffff33]`}`,children:e?(0,Y.jsx)(`span`,{className:`size-2 rounded-full bg-[var(--sf-text-1)]`}):null}),(0,Y.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col gap-1.5`,children:[(0,Y.jsxs)(`span`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Y.jsx)(r,{className:`size-3.5 text-[var(--sf-text-3)]`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`font-sans text-sm font-medium${e?` text-[var(--sf-text-1)]`:` text-[var(--sf-text-2)]`}`,children:i}),(0,Y.jsx)(Nl,{className:`text-[var(--sf-text-3)]`,children:n})]}),(0,Y.jsx)(`span`,{className:`font-sans text-xs leading-[1.45] text-[var(--sf-text-3)]`,children:a}),(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace] text-xs text-[var(--sf-text-3)]`,children:o})]})]})}function rZ({provider:e,status:t,isLast:n,connecting:r,oauthing:i,apiKeyDraft:a,rowBusy:o,onSetConnecting:s,onSetOauthing:c,onApiKeyChange:l,onConnectSubmit:u,onDisconnect:d,onOauthComplete:f,onOauthDismiss:p}){let m=t?.configured===!0,h=iD(e),g=YX(e),_=e.name.slice(0,1).toUpperCase();return(0,Y.jsxs)(`div`,{className:`flex flex-col px-3.5${r||i?` gap-2 py-3`:` h-14 justify-center py-0`}${n?``:` border-b border-b-[#ffffff12]`}${i?` bg-[#6ca6ff0a]`:``}`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,Y.jsx)(`span`,{className:`flex size-7 shrink-0 items-center justify-center rounded-[7px] border border-[#ffffff1a] bg-[var(--sf-raised)]${!m&&!r?` border-dashed border-[#ffffff26]`:``}`,children:(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace] text-xs font-semibold text-[var(--sf-text-1)]`,children:_})}),(0,Y.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col gap-0.5`,children:[(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace] text-[13px] font-medium text-[var(--sf-text-1)]`,children:e.id}),(0,Y.jsx)(`span`,{className:`truncate font-sans text-xs text-[var(--sf-text-3)]`,children:oD(t)})]}),m?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`span`,{className:`flex h-6 shrink-0 items-center gap-[5px] rounded-full bg-[#4cc38a1a] px-2 py-0`,children:[(0,Y.jsx)(G,{className:`size-3 text-[var(--sf-ok)]`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`font-sans text-xs font-medium text-[var(--sf-ok)]`,children:`Connected`})]}),(0,Y.jsx)(`button`,{type:`button`,className:`flex size-8 shrink-0 items-center justify-center rounded-lg text-[var(--sf-text-2)] hover:bg-[var(--sf-raised)] disabled:opacity-50`,disabled:o,"aria-label":`Disconnect`,onClick:()=>d(e.id),children:(0,Y.jsx)(oe,{className:`size-4`,"aria-hidden":`true`})})]}):(0,Y.jsx)(`button`,{type:`button`,className:`flex h-8 shrink-0 items-center rounded-lg border border-[#ffffff1a] bg-[var(--sf-raised)] px-3 py-0`,disabled:o,onClick:()=>{g?c(e.id):h&&s(e.id)},children:(0,Y.jsx)(`span`,{className:`font-sans text-[13px] font-medium text-[var(--sf-text-1)]`,children:`Connect`})})]}),r&&h?(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 pl-10`,children:[(0,Y.jsx)(De,{className:`size-3.5 text-[var(--sf-text-3)]`,"aria-hidden":`true`}),(0,Y.jsx)(`input`,{type:`password`,className:`min-w-[200px] flex-1 rounded-lg border border-[#ffffff1a] bg-[var(--sf-raised)] px-2.5 py-1.5 font-sans text-[13px] text-[var(--sf-text-1)] outline-none`,placeholder:`Paste API key`,value:a,onChange:e=>l(e.target.value)}),(0,Y.jsx)(`button`,{type:`button`,className:`rounded-lg bg-[var(--sf-text-1)] px-3 py-1.5 font-sans text-[13px] font-medium text-[var(--sf-ground)]`,disabled:o,onClick:()=>u(e.id),children:`Save key`}),(0,Y.jsx)(`button`,{type:`button`,className:`font-sans text-[13px] text-[var(--sf-text-2)]`,onClick:()=>s(null),children:`Cancel`})]}):null,i&&g?(0,Y.jsx)(`div`,{className:`pl-10`,children:(0,Y.jsx)(ZX,{providerId:e.id,providerName:e.name,onComplete:f,onDismiss:p})}):null]})}function iZ(){return{name:``,transport:`stdio`,commandLine:``,env:[],url:``,httpTransport:`auto`,authMode:`none`,bearerToken:``,bearerRef:null,headers:[]}}function aZ(e){return/authorization|token|secret|key|password/i.test(e)}var oZ=/^(?:Bearer\s+)?(?:\$\{[^}]*\}\s*)*$/i;function sZ(e,t){return!aZ(e)&&!/^\s*authorization\s*:/i.test(t)?!1:!oZ.test(t.trim())}function cZ(e){return/^\s*authorization\s*:\s*\S/i.test(e)}function lZ(e){let t=/^\s*([A-Za-z0-9_-]+)\s*:\s*(.+)$/.exec(e.key);if(t&&e.value.trim()===``)return{key:t[1],value:t[2].trim()};let n=/^\s*authorization\s*:\s*(.+)$/i.exec(e.value);return n&&(e.key.trim()===``||/^authorization$/i.test(e.key.trim()))?{key:`Authorization`,value:n[1].trim()}:e}function uZ(e,t=!1){let n={};for(let r of e){let e=t?lZ(r):r,i=e.key.trim();i&&(n[i]=e.value)}return Object.keys(n).length>0?n:void 0}function dZ(e){return Object.entries(e??{}).map(([e,t])=>({key:e,value:t}))}function fZ(e){let t=[],n=``,r=null,i=!1;for(let a=0;a<e.length;a++){let o=e[a];r?o===r?r=null:o===`\\`&&r===`"`&&a+1<e.length?n+=e[++a]:n+=o:o===`"`||o===`'`?(r=o,i=!0):/\s/.test(o)?((i||n)&&t.push(n),n=``,i=!1):(n+=o,i=!0)}return(i||n)&&t.push(n),t}function pZ(e,t){let n=e=>e===``||/[\s"'\\]/.test(e)?`"${e.replace(/(["\\])/g,`\\$1`)}"`:e;return[e,...t].map(n).join(` `)}var mZ=/^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/,hZ=/^Bearer \$\{([A-Za-z_][A-Za-z0-9_]*)\}$/;function gZ(e){let t=e.name.trim();if(!mZ.test(t))return{ok:!1,error:`Name: letters, digits, '.', '_' or '-' (up to 64).`};if(e.transport===`stdio`){let[n,...r]=fZ(e.commandLine);if(!n)return{ok:!1,error:`Command is required, e.g. npx -y @scope/server.`};let i=uZ(e.env);return{ok:!0,name:t,config:{command:n,...r.length>0?{args:r}:{},...i?{env:i}:{}}}}let n=e.url.trim();if(!/^https?:\/\//i.test(n))return{ok:!1,error:`URL must start with http:// or https://.`};let r={url:n,...e.httpTransport===`sse`?{httpTransport:`sse`}:{}};if(e.authMode===`bearer`){let n=e.bearerToken.trim().replace(/^(?:authorization\s*:\s*)?Bearer\s+/i,``);return n?{ok:!0,name:t,config:{...r,headers:{Authorization:`Bearer ${n}`}}}:e.bearerRef?{ok:!0,name:t,config:{...r,headers:{Authorization:`Bearer \${${e.bearerRef}}`}}}:{ok:!1,error:`Paste the token this server expects.`}}let i=e.authMode===`headers`?uZ(e.headers,!0):void 0;return{ok:!0,name:t,config:{...r,...i?{headers:i}:{}}}}function _Z(e,t){let n=t.headers??{},r=Object.keys(n),i=r.length===1&&r[0].toLowerCase()===`authorization`?n[r[0]]:void 0,a=i===void 0?void 0:hZ.exec(i)?.[1];return{name:e,transport:t.url===void 0?`stdio`:`http`,commandLine:t.command===void 0?``:pZ(t.command,t.args??[]),env:dZ(t.env),url:t.url??``,httpTransport:t.httpTransport===`sse`?`sse`:`auto`,authMode:a?`bearer`:r.length>0?`headers`:`none`,bearerToken:``,bearerRef:a??null,headers:dZ(t.headers)}}function vZ(e){let t=e.trim();if(!t)return{ok:!1,error:`Paste a JSON snippet first.`};try{let e=JSON.parse(t);return typeof e!=`object`||!e||Array.isArray(e)?{ok:!1,error:`The JSON must be an object.`}:{ok:!0,value:e}}catch{return{ok:!1,error:`That is not valid JSON.`}}}function yZ(e){if(e.length===0)return null;let t=[...new Set(e)];return`Moved ${t.length===1?`a token`:`${t.length} tokens`} out of the config into secrets: ${t.join(`, `)}.`}function bZ(e){return yZ(e.secretsStored)}function xZ(e){if(e.added.length===0)return{ok:!1,error:e.errors.map(e=>`${e.name}: ${e.error}`).join(` · `)||`Nothing was added.`};let t=e.errors.length>0?`Skipped: ${e.errors.map(e=>`${e.name} (${e.error})`).join(`, `)}.`:``;return{ok:!0,notice:[yZ(e.secretsStored),t].filter(Boolean).join(` `)||null}}function SZ(e){return`Removed ${e}.`}function CZ(e){return`Signed in to ${e}.`}function wZ(e){return e===`authenticated`}function TZ(e,t){return e.transport===`http`&&!wZ(t)&&(e.status===`needs_auth`||t===`expired`)}function EZ(e){let t=new Set(e.secrets.map(e=>e.name)),n=(e,n,r)=>({name:e,usedBy:n,stored:t.has(e),label:r?t.has(e)?`stored`:`set on the Host`:`missing`});return[...e.needed.map(e=>n(e.name,e.usedBy,e.set)),...e.secrets.filter(t=>!e.needed.some(e=>e.name===t.name)).map(e=>n(e.name,e.usedBy,!0))]}function DZ(e){return`${e.usedBy.length>0?`used by ${e.usedBy.join(`, `)}`:`not used by any server`} · ${e.label}`}var OZ=`h-8 w-full rounded-lg border border-[#ffffff1a] bg-[var(--sf-raised)] px-2.5 font-['Geist_Mono',monospace] text-[13px] text-[var(--sf-text-1)] outline-none focus:border-[#ffffff40]`,kZ=`flex h-8 items-center gap-1.5 rounded-lg border border-[#ffffff1a] bg-[var(--sf-raised)] px-3 font-sans text-[13px] font-medium text-[var(--sf-text-1)] disabled:opacity-60`,AZ=`font-sans text-xs text-[var(--sf-text-3)]`;function jZ({label:e,hint:t,namePlaceholder:n,valuePlaceholder:r,rows:i,onChange:a}){return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Y.jsx)(`span`,{className:AZ,children:e}),i.length>0?(0,Y.jsxs)(`div`,{className:`flex gap-1.5`,children:[(0,Y.jsx)(`span`,{className:`${AZ} w-full`,children:`Name`}),(0,Y.jsx)(`span`,{className:`${AZ} w-full`,children:`Value`}),(0,Y.jsx)(`span`,{className:`w-8 shrink-0`})]}):null,i.map((t,o)=>(0,Y.jsxs)(`div`,{className:`flex gap-1.5`,children:[(0,Y.jsx)(`input`,{type:cZ(t.key)?`password`:`text`,autoComplete:`off`,className:OZ,"aria-label":`${e} name`,placeholder:n,value:t.key,onChange:e=>a(i.map((t,n)=>n===o?{...t,key:e.target.value}:t))}),(0,Y.jsx)(`input`,{type:sZ(t.key,t.value)?`password`:`text`,autoComplete:`off`,className:OZ,"aria-label":`${e} value`,placeholder:r,value:t.value,onChange:e=>a(i.map((t,n)=>n===o?{...t,value:e.target.value}:t))}),(0,Y.jsx)(`button`,{type:`button`,className:kZ,"aria-label":`Remove ${e} row`,onClick:()=>a(i.filter((e,t)=>t!==o)),children:(0,Y.jsx)(St,{className:`size-3.5`,"aria-hidden":!0})})]},o)),(0,Y.jsxs)(`button`,{type:`button`,className:`${kZ} w-fit`,onClick:()=>a([...i,{key:``,value:``}]),children:[(0,Y.jsx)(se,{className:`size-3.5`,"aria-hidden":!0}),` Add row`]}),(0,Y.jsx)(`span`,{className:AZ,children:t})]})}function MZ({initial:e,editing:t,busy:n,error:r,onSave:i,onImport:a,onCancel:o}){let[s,c]=(0,J.useState)(t?`form`:`paste`),[l,u]=(0,J.useState)(e),[d,f]=(0,J.useState)(``),[p,m]=(0,J.useState)(null),h=p??r,g=e=>u(t=>({...t,...e}));return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-3 rounded-xl border border-[#ffffff1a] bg-[var(--sf-panel)] p-3.5`,children:[t?null:(0,Y.jsx)(`div`,{className:`flex gap-1.5`,role:`tablist`,"aria-label":`Add method`,children:[`paste`,`form`].map(e=>(0,Y.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":s===e,className:`${kZ} ${s===e?`border-[#ffffff40]`:`opacity-70`}`,onClick:()=>c(e),children:e===`form`?`Fill in a form`:`Paste JSON`},e))}),s===`paste`?(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Y.jsxs)(`span`,{className:AZ,children:[`Paste the snippet from the server's docs: local (`,`{ "command": "npx", … }`,`) or remote (`,`{ "url": "https://…" }`,`), with or without the `,`"mcpServers"`,` wrapper. Tokens in env or headers are moved to secrets automatically.`]}),(0,Y.jsx)(`textarea`,{className:`${OZ} h-40 py-2`,"aria-label":`MCP JSON`,spellCheck:!1,value:d,onChange:e=>f(e.target.value)})]}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`label`,{className:`flex flex-col gap-1.5`,children:[(0,Y.jsx)(`span`,{className:AZ,children:`Name`}),(0,Y.jsx)(`input`,{className:OZ,value:l.name,disabled:t,placeholder:`github`,onChange:e=>g({name:e.target.value})})]}),(0,Y.jsx)(`div`,{className:`flex gap-1.5`,role:`radiogroup`,"aria-label":`Transport`,children:[`stdio`,`http`].map(e=>(0,Y.jsx)(`button`,{type:`button`,role:`radio`,"aria-checked":l.transport===e,className:`${kZ} ${l.transport===e?`border-[#ffffff40]`:`opacity-70`}`,onClick:()=>g({transport:e}),children:e===`stdio`?`Local command (stdio)`:`Remote server (URL)`},e))}),l.transport===`stdio`?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`label`,{className:`flex flex-col gap-1.5`,children:[(0,Y.jsx)(`span`,{className:AZ,children:`Command`}),(0,Y.jsx)(`input`,{className:OZ,value:l.commandLine,placeholder:`npx -y @modelcontextprotocol/server-github`,onChange:e=>g({commandLine:e.target.value})}),(0,Y.jsx)(`span`,{className:AZ,children:`The command and its arguments on one line. Use quotes around an argument with spaces.`})]}),(0,Y.jsx)(jZ,{label:`Environment variables`,namePlaceholder:`GITHUB_PERSONAL_ACCESS_TOKEN`,valuePlaceholder:"paste the token, or ${NAME}",hint:"Servers that need a key read it from here. A real token typed in is stored as a secret and the file keeps ${NAME}.",rows:l.env,onChange:e=>g({env:e})})]}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`label`,{className:`flex flex-col gap-1.5`,children:[(0,Y.jsx)(`span`,{className:AZ,children:`URL`}),(0,Y.jsx)(`input`,{className:OZ,value:l.url,placeholder:`https://example.com/mcp`,onChange:e=>g({url:e.target.value})})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Y.jsx)(`span`,{className:AZ,children:`Connection`}),(0,Y.jsx)(`div`,{className:`flex gap-1.5`,role:`radiogroup`,"aria-label":`Connection type`,children:[`auto`,`sse`].map(e=>(0,Y.jsx)(`button`,{type:`button`,role:`radio`,"aria-checked":l.httpTransport===e,className:`${kZ} ${l.httpTransport===e?`border-[#ffffff40]`:`opacity-70`}`,onClick:()=>g({httpTransport:e}),children:e===`auto`?`Automatic (streamable HTTP)`:`SSE only`},e))}),(0,Y.jsx)(`span`,{className:AZ,children:`Automatic tries streamable HTTP and falls back to SSE. Pick SSE only for an older server.`})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Y.jsx)(`span`,{className:AZ,children:`Authorization`}),(0,Y.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,role:`radiogroup`,"aria-label":`Authorization`,children:[[`none`,`None`],[`bearer`,`Bearer token`],[`headers`,`Custom headers`]].map(([e,t])=>(0,Y.jsx)(`button`,{type:`button`,role:`radio`,"aria-checked":l.authMode===e,className:`${kZ} ${l.authMode===e?`border-[#ffffff40]`:`opacity-70`}`,onClick:()=>g({authMode:e}),children:t},e))}),(0,Y.jsx)(`span`,{className:AZ,children:`Servers that sign you in through your browser (OAuth, like Notion or Linear) need nothing here: leave this on None, then use Sign in on the server after adding it.`})]}),l.authMode===`bearer`?(0,Y.jsxs)(`label`,{className:`flex flex-col gap-1.5`,children:[(0,Y.jsx)(`span`,{className:AZ,children:`Token`}),(0,Y.jsx)(`input`,{type:`password`,autoComplete:`off`,className:OZ,value:l.bearerToken,placeholder:l.bearerRef?`Unchanged — stored as ${l.bearerRef}`:`paste the API key or personal access token`,onChange:e=>g({bearerToken:e.target.value})}),(0,Y.jsx)(`span`,{className:AZ,children:`Sent as Authorization: Bearer … Stored as a secret, never written to the file.`})]}):null,l.authMode===`headers`?(0,Y.jsx)(jZ,{label:`Headers`,namePlaceholder:`X-Api-Key`,valuePlaceholder:"paste the value, or ${NAME}",hint:"Sent with every request. A real token typed in is stored as a secret and the file keeps ${NAME}.",rows:l.headers,onChange:e=>g({headers:e})}):null]})]}),h?(0,Y.jsx)(`p`,{className:`font-sans text-[13px] text-[var(--sf-fail)]`,role:`alert`,children:h}):null,(0,Y.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Y.jsx)(`button`,{type:`button`,className:kZ,disabled:n,onClick:()=>{if(m(null),s===`paste`){let e=vZ(d);return e.ok?a(e.value):m(e.error)}let e=gZ(l);if(!e.ok)return m(e.error);i(e.name,e.config)},children:n?`Saving…`:s===`paste`?`Add servers`:t?`Save changes`:`Add server`}),(0,Y.jsx)(`button`,{type:`button`,className:kZ,disabled:n,onClick:o,children:`Cancel`})]})]})}var NZ={list:Ra,getServer:za,save:Ba,remove:Va,importJson:Ha,probe:Za,tools:Ua,oauthStatus:Wa,oauthStart:Ga,oauthComplete:Ka,oauthRemove:qa,secrets:Ja,setSecret:Ya,removeSecret:Xa},PZ=`Servers agents and stages can use: those you add here, plus the project's git-root .mcp.json. Check tests whether a server can connect. It does not start a run and does not attach tools to stages. YAML mcp: still allowlists what a stage receives.`;function FZ(e){switch(e){case`not-yet-probed`:return`Not yet probed`;case`probing`:return`Probing…`;case`connected`:return`Connected`;case`needs_auth`:return`Needs sign-in`;case`connect_failed`:return`Connect failed`;case`unresolved_var`:return`Unresolved variable`;case`invalid_config`:return`Invalid config`;case`missing_catalog`:return`Missing catalog`;case`cancelled`:return`Cancelled`}}var IZ={running:`var(--sf-running)`,succeeded:`var(--sf-ok)`,waiting:`var(--sf-needs)`,failed:`var(--sf-fail)`};function LZ(e){let t=RZ(e);return t?IZ[t]:void 0}function RZ(e){switch(e){case`probing`:return`running`;case`connected`:return`succeeded`;case`needs_auth`:return`waiting`;case`connect_failed`:case`unresolved_var`:case`invalid_config`:case`missing_catalog`:return`failed`;case`not-yet-probed`:case`cancelled`:return}}function zZ(e){return e===`missing_catalog`?null:e===`invalid_config`?`Project .mcp.json is invalid.`:null}function BZ(e){let t=!1,n=!1,r=()=>{t=!0,clearInterval(i),clearTimeout(a)},i=setInterval(()=>{n||(n=!0,e.api.oauthStatus(e.name).then(i=>{n=!1,!(t||i.status!==`authenticated`)&&(r(),e.onSignedIn())},()=>{n=!1}))},e.intervalMs??2e3),a=setTimeout(()=>{t||(r(),e.onTimeout?.())},e.timeoutMs??3e5);return r}var VZ=e=>e instanceof Error?e.message:String(e);function HZ(e=NZ){let t={loading:!0,catalogStatus:null,servers:[],error:null,oauth:{},secrets:null,signingIn:null,secretDrafts:{}},n=!1,r=new Map,i=new Set,a=new Set,o=()=>t,s=e=>{t={...t,...e};for(let e of a)e()},c=(e,n)=>s({servers:t.servers.map(t=>t.name===e?{...t,...n}:t)}),l=e=>t.servers.some(t=>t.name===e),u=e=>{let n=r.get(e);n&&(n.abort(),r.delete(e),t.servers.find(t=>t.name===e)?.status===`probing`&&c(e,{status:`not-yet-probed`}))},d=e=>{u(e);let n={...t.oauth};delete n[e];let r={...t.secretDrafts};delete r[e];for(let n of[...t.secrets?.needed??[],...t.secrets?.secrets??[]])n.usedBy.includes(e)&&delete r[n.name];s({oauth:n,secretDrafts:r,signingIn:t.signingIn===e?null:t.signingIn})},f=async r=>{await Promise.all(r.map(r=>e.oauthStatus(r).then(e=>{!n&&l(r)&&s({oauth:{...t.oauth,[r]:e.status}})},()=>{})))},p=async()=>{let t=await e.secrets().catch(()=>null);n||s({secrets:t})},m=t=>{if(n||r.has(t))return Promise.resolve();let a=new AbortController;r.set(t,a),c(t,{status:`probing`,error:void 0});let o=(async()=>{try{let r=await e.probe(t,{signal:a.signal});if(n||a.signal.aborted)return;c(t,{status:r.status,error:r.error})}catch(e){if(n||a.signal.aborted)return;c(t,{status:`connect_failed`,error:VZ(e)})}finally{r.get(t)===a&&r.delete(t)}})();return i.add(o),o.finally(()=>i.delete(o)),o},h=async()=>{for(;i.size>0;)await Promise.allSettled([...i])},g=e=>{for(let t of e)u(t),l(t)&&m(t)},_=async()=>{if(!n){s({loading:!0,catalogStatus:null,servers:[],error:null});try{let t=await e.list();if(n)return;if(t.status!==`ok`){s({loading:!1,catalogStatus:t.status,servers:[],error:null});return}s({loading:!1,catalogStatus:`ok`,servers:t.servers.map(e=>({name:e.name,transport:e.transport,origin:e.origin,status:`not-yet-probed`})),error:null}),f(t.servers.filter(e=>e.transport===`http`).map(e=>e.name)),p()}catch(e){if(n)return;s({loading:!1,catalogStatus:null,servers:[],error:VZ(e)})}}},v=async(r=[])=>{if(n)return;let i=new Set(r);try{let a=await e.list();if(n)return;if(a.status!==`ok`){for(let e of t.servers)d(e.name);s({catalogStatus:a.status,servers:[],error:null});return}let o=new Map(t.servers.map(e=>[e.name,e]));for(let e of o.keys())a.servers.some(t=>t.name===e)||d(e);s({catalogStatus:`ok`,error:null,servers:a.servers.map(e=>{let t=o.get(e.name),n=t!==void 0&&!i.has(e.name);return{name:e.name,transport:e.transport,origin:e.origin,status:n?t.status:`not-yet-probed`,...n&&t.error?{error:t.error}:{}}})}),g(r),f(a.servers.filter(e=>e.transport===`http`&&(i.has(e.name)||!(e.name in t.oauth))).map(e=>e.name))}catch(e){n||s({error:VZ(e)})}},y=async(e=3)=>{let r=t.servers.filter(e=>e.status===`not-yet-probed`).map(e=>e.name);await Promise.all(Array.from({length:Math.min(e,r.length)},async()=>{for(let e=r.shift();e!==void 0;e=r.shift()){if(n)return;t.servers.find(t=>t.name===e)?.status===`not-yet-probed`&&await m(e)}}))},b=async(t,n)=>{u(t);try{let r=await e.save(t,n);return await v([t]),p(),{ok:!0,notice:bZ(r)}}catch(e){return{ok:!1,error:VZ(e)}}},x=async t=>{try{let n=await e.importJson(t),r=xZ(n);if(!r.ok)return r;for(let e of n.added)u(e);return await v(n.added),p(),r}catch(e){return{ok:!1,error:VZ(e)}}},S=async t=>{u(t);try{await e.remove(t)}catch(e){return{ok:!1,error:VZ(e)}}return d(t),await v(),p(),{ok:!0,notice:SZ(t)}},C=e=>s({signingIn:e}),w=()=>s({signingIn:null}),T=async e=>t.signingIn!==e||!l(e)?{ok:!0,notice:null}:(s({signingIn:null}),await f([e]),g([e]),{ok:!0,notice:CZ(e)}),E=async t=>{try{await e.oauthRemove(t)}catch(e){return{ok:!1,error:VZ(e)}}return await f([t]),g([t]),{ok:!0,notice:null}},D=(e,n)=>s({secretDrafts:{...t.secretDrafts,[e]:n}}),O=e=>[...t.secrets?.needed??[],...t.secrets?.secrets??[]].find(t=>t.name===e)?.usedBy??[];return{getState:o,load:_,refresh:v,check:m,checkAll:y,idle:h,save:b,importJson:x,remove:S,startSignIn:C,cancelSignIn:w,signedIn:T,signOut:E,setDraft:D,saveSecret:async n=>{let r=t.secretDrafts[n];if(!r)return{ok:!0,notice:null};let i=O(n);try{await e.setSecret(n,r)}catch(e){return{ok:!1,error:VZ(e)}}return s({secretDrafts:{...t.secretDrafts,[n]:``}}),await p(),g(i),{ok:!0,notice:null}},removeSecret:async t=>{let n=O(t);try{await e.removeSecret(t)}catch(e){return{ok:!1,error:VZ(e)}}return await p(),g(n),{ok:!0,notice:null}},dispose:()=>{n=!0;for(let e of r.values())e.abort();r.clear()},subscribe:e=>(a.add(e),()=>{a.delete(e)})}}var UZ=`h-8 w-full rounded-lg border border-[#ffffff1a] bg-[var(--sf-raised)] px-2.5 font-['Geist_Mono',monospace] text-[13px] text-[var(--sf-text-1)] outline-none focus:border-[#ffffff40]`,WZ=`flex h-8 items-center rounded-lg border border-[#ffffff1a] bg-[var(--sf-raised)] px-3 font-sans text-[13px] font-medium text-[var(--sf-text-1)] disabled:opacity-60`,GZ=`font-sans text-xs text-[var(--sf-text-3)]`;function KZ({name:e,onDone:t,onCancel:n,api:r=NZ}){let[i,a]=(0,J.useState)(null),[o,s]=(0,J.useState)(``),[c,l]=(0,J.useState)(!1),[u,d]=(0,J.useState)(null),f=(0,J.useRef)(t);f.current=t;let p=(0,J.useRef)(!0),m=(0,J.useRef)(!1),h=()=>{m.current||!p.current||(m.current=!0,f.current())};(0,J.useEffect)(()=>(p.current=!0,m.current=!1,()=>{p.current=!1}),[e]),(0,J.useEffect)(()=>{let t=!0;return a(null),d(null),r.oauthStart(e).then(e=>t&&a(e.authorizationUrl),e=>t&&d(e instanceof Error?e.message:String(e))),()=>{t=!1}},[e]),(0,J.useEffect)(()=>{if(i)return BZ({api:r,name:e,onSignedIn:h,onTimeout:()=>d(`Timed out waiting for sign-in. Finish it with the pasted address, or cancel and start again.`)})},[e,i]);let g=async()=>{l(!0),d(null);try{(await r.oauthComplete(e,o.trim())).status===`authenticated`?h():d(`Sign-in did not complete. Start again.`)}catch(e){d(e instanceof Error?e.message:String(e))}finally{p.current&&l(!1)}};return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2.5 border-t border-t-[#ffffff12] bg-[var(--sf-raised)] px-3.5 py-3`,children:[(0,Y.jsxs)(`span`,{className:`font-sans text-[13px] font-medium text-[var(--sf-text-1)]`,children:[`Sign in to `,e]}),!i&&!u?(0,Y.jsx)(`span`,{className:GZ,children:`Starting sign-in…`}):null,i?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`span`,{className:GZ,children:`1. Open the sign-in page and approve access.`}),(0,Y.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Y.jsx)(`button`,{type:`button`,className:WZ,onClick:()=>window.open(i,`_blank`,`noopener`),children:`Open sign-in page`}),(0,Y.jsx)(`button`,{type:`button`,className:WZ,onClick:()=>void navigator.clipboard?.writeText(i),children:`Copy link`})]}),(0,Y.jsx)(`span`,{className:GZ,children:`2. Your browser may then show a page that cannot be reached (it points at localhost). That is expected: copy the full address from the address bar and paste it here.`}),(0,Y.jsx)(`input`,{className:UZ,"aria-label":`Address your browser ended on`,placeholder:`http://localhost:…/callback?code=…&state=…`,value:o,onChange:e=>s(e.target.value)})]}):null,u?(0,Y.jsx)(`p`,{className:`font-sans text-[13px] text-[var(--sf-fail)]`,role:`alert`,children:u}):null,(0,Y.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Y.jsx)(`button`,{type:`button`,className:WZ,disabled:!i||c||!o.trim(),onClick:()=>void g(),children:c?`Finishing…`:`Finish sign-in`}),(0,Y.jsx)(`button`,{type:`button`,className:WZ,onClick:n,children:`Cancel`})]})]})}var qZ=`http://127.0.0.1:3847/mcp`;function JZ(e,t={}){if(t.viteDev)return qZ;let n=e.hostname;return n===`localhost`||n===`::1`||n===`[::1]`?n=`127.0.0.1`:n.includes(`:`)&&!n.startsWith(`[`)&&(n=`[${n}]`),`${`${e.protocol}//${n}${e.port?`:${e.port}`:``}`}/mcp`}function YZ(e){return`${JSON.stringify({mcpServers:{stageflow:{url:e}}},null,2)}\n`}function XZ(e,t){let n=e?.maxConcurrent??0,r=e?.slotsAvailable??0,i=n>0?Math.max(0,n-r):e?.activeCount??0,a=Math.max(0,t),o=Math.max(0,i-a),s=[];for(let e=0;e<6;e++){if(n<=0||e>=n){s.push(`disabled`);continue}e<o?s.push(`running`):e<o+a?s.push(`held`):s.push(`free`)}return{maxSlots:n,running:o,held:a,free:r,slotStates:s}}function ZZ({children:e}){return(0,Y.jsx)(`span`,{className:`w-fit font-sans text-[11px] font-medium uppercase tracking-[0.88px] text-[var(--sf-text-3)]`,children:e})}function QZ({workshopModel:e,workshopModelSaving:t,workshopModelError:n,onWorkshopModelChange:r,health:i,formatDiskBytes:a}){let o=(0,J.useRef)(i?.disk);i?.disk&&(o.current=i.disk);let s=i?.disk??o.current;return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2.5`,children:[(0,Y.jsx)(ZZ,{children:`General`}),(0,Y.jsxs)(`div`,{className:`flex flex-col overflow-clip rounded-xl border border-[#ffffff12] bg-[var(--sf-panel)]`,children:[(0,Y.jsx)(rQ,{label:`Workshop model`,hint:`Default model for Workshop Author chat.`,children:(0,Y.jsx)(`div`,{className:`w-[min(280px,100%)]`,children:(0,Y.jsx)(cF,{ariaLabel:`Workshop model`,value:e||null,disabled:t,onChange:e=>e&&r(e)})})}),s?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(rQ,{label:`Runs on disk`,mono:a(s.runs_bytes)}),(0,Y.jsx)(rQ,{label:`Free on volume`,mono:a(s.free_bytes),last:!0})]}):(0,Y.jsx)(`p`,{className:`px-3.5 py-4 font-sans text-[13px] text-[var(--sf-text-3)]`,children:`Disk breakdown unavailable.`})]}),n?(0,Y.jsx)(`p`,{className:`font-sans text-[13px] text-[var(--sf-fail)]`,children:n}):null]})}function $Z({snapshot:e,health:t,healthEverLoaded:n,slotsSaving:r,slotsError:i,onSlotsChange:a}){let o=(0,J.useRef)(t);t&&(o.current=t);let s=t??o.current,{maxSlots:c,running:l,held:u,free:d,slotStates:f}=XZ(s,s?ls(e,s):0),p=r||!n||!s?.maxConcurrent;return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`div`,{className:`flex h-full flex-col gap-3.5 overflow-clip rounded-xl border border-[#ffffff12] bg-[var(--sf-panel)] p-4`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(ke,{className:`size-[15px] text-[var(--sf-text-2)]`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 font-sans text-[15px] font-semibold text-[var(--sf-text-1)]`,children:`Concurrency`}),(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace] text-xs text-[var(--sf-text-3)]`,children:`agent_slots`})]}),(0,Y.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Y.jsx)(`span`,{className:`font-sans text-[13px] text-[var(--sf-text-2)]`,children:`Agent slots`}),(0,Y.jsxs)(`div`,{className:`flex h-8 items-center overflow-clip rounded-lg border border-[#ffffff1a] bg-[var(--sf-raised)]`,children:[(0,Y.jsx)(`button`,{type:`button`,className:`flex h-full w-8 items-center justify-center border-r border-r-[#ffffff1a] disabled:opacity-50`,disabled:p||c<=1,"aria-label":`Decrease agent slots`,onClick:()=>a(Math.max(1,c-1)),children:(0,Y.jsx)(k,{className:`size-3.5 text-[var(--sf-text-2)]`})}),(0,Y.jsx)(`span`,{className:`flex h-full w-11 items-center justify-center font-['Geist_Mono',monospace] text-[13px] font-medium text-[var(--sf-text-1)]`,children:n&&s?c:`—`}),(0,Y.jsx)(`button`,{type:`button`,className:`flex h-full w-8 items-center justify-center border-l border-l-[#ffffff1a] disabled:opacity-50`,disabled:p||c>=6,"aria-label":`Increase agent slots`,onClick:()=>a(Math.min(6,c+1)),children:(0,Y.jsx)(se,{className:`size-3.5 text-[var(--sf-text-2)]`})})]})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Y.jsx)(`div`,{className:`flex gap-[3px]`,children:f.map((e,t)=>(0,Y.jsx)(`span`,{className:`h-1.5 min-w-0 flex-1 rounded-full${e===`running`?` bg-[var(--sf-running)]`:e===`held`?` bg-[var(--sf-needs)] shadow-[0px_0px_10px_rgba(245,181,68,0.45)]`:e===`free`?` bg-[#2a2d33]`:` border border-dashed border-[#ffffff1f] bg-transparent`}`},t))}),(0,Y.jsx)(`div`,{className:`flex justify-between font-['Geist_Mono',monospace] text-[11px] text-[var(--sf-text-3)]`,children:[1,2,3,4,5,6].map(e=>(0,Y.jsx)(`span`,{children:e},e))})]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-3.5 font-['Geist_Mono',monospace] text-xs text-[var(--sf-text-2)]`,children:[(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(`span`,{className:`size-2 rounded-full bg-[var(--sf-running)]`}),l,` running`]}),(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(`span`,{className:`size-2 rounded-full bg-[var(--sf-needs)]`}),u,` held`]}),(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(`span`,{className:`size-2 rounded-full bg-[#2a2d33]`}),d,` free`]})]}),(0,Y.jsxs)(`div`,{className:`flex items-start gap-2 border-t border-t-[#ffffff12] pt-3`,children:[(0,Y.jsx)(Ze,{className:`mt-0.5 size-3.5 shrink-0 text-[var(--sf-needs)]`,"aria-hidden":`true`}),(0,Y.jsxs)(`p`,{className:`font-sans text-xs text-[var(--sf-text-2)]`,children:[`Runs that wait on you keep their slot. You have `,u,` held now.`]})]})]}),i?(0,Y.jsxs)(`p`,{className:`font-sans text-[13px] text-[var(--sf-fail)]`,children:[`Could not update slots: `,i]}):null]})}function eQ({notifyPreference:e,permission:t,onNotifySelect:n}){let r=e===`system`;return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2.5`,children:[(0,Y.jsx)(ZZ,{children:`Notifications`}),(0,Y.jsx)(`div`,{className:`flex flex-col overflow-clip rounded-xl border border-[#ffffff12] bg-[var(--sf-panel)]`,children:(0,Y.jsxs)(`div`,{className:`flex h-[52px] items-center gap-3 px-3.5 py-0`,children:[(0,Y.jsx)(j,{className:`size-[15px] shrink-0 text-[var(--sf-text-2)]`,"aria-hidden":`true`}),(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Y.jsx)(`span`,{className:`block font-sans text-[13px] font-medium text-[var(--sf-text-1)]`,children:`Desktop notification when a gate opens`}),(0,Y.jsx)(`span`,{className:`mt-0.5 block font-sans text-xs text-[var(--sf-text-3)]`,children:`Shows the stage and question. Click to jump to the gate.`})]}),(0,Y.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":r,className:`relative h-5 w-[34px] shrink-0 rounded-full transition-colors${r?` bg-[var(--sf-text-1)]`:` border border-[#ffffff1a] bg-[#2a2d33]`}`,onClick:()=>n(r?`off`:`system`),children:(0,Y.jsx)(`span`,{className:`absolute top-0.5 size-4 rounded-full transition-[left]${r?` left-[14px] bg-[var(--sf-ground)]`:` left-0.5 bg-[var(--sf-text-3)]`}`})})]})}),r&&t===`denied`?(0,Y.jsx)(`p`,{className:`font-sans text-xs text-[var(--sf-text-3)]`,children:`Notifications blocked — enable in browser settings`}):null]})}async function tQ(e){try{await navigator.clipboard.writeText(e)}catch{}}function nQ(){let e=JZ(window.location,{viteDev:!1}),t=YZ(e),[n,r]=(0,J.useState)(()=>Ci()),[i,a]=(0,J.useState)(!1),[o,s]=(0,J.useState)(!1);return(0,J.useEffect)(()=>{wi(n)},[n]),(0,Y.jsxs)(`div`,{className:`flex h-full flex-col gap-3 overflow-clip rounded-xl border border-[#ffffff12] bg-[var(--sf-panel)] p-4`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(Je,{className:`size-[15px] text-[var(--sf-text-2)]`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 font-sans text-[15px] font-semibold text-[var(--sf-text-1)]`,children:`MCP server`}),(0,Y.jsxs)(`span`,{className:`flex h-6 items-center gap-[5px] rounded-full bg-[#4cc38a1a] px-2`,children:[(0,Y.jsx)(G,{className:`size-3 text-[var(--sf-ok)]`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`font-sans text-xs font-medium text-[var(--sf-ok)]`,children:`Listening`})]})]}),(0,Y.jsxs)(`div`,{className:`flex h-8 items-center gap-2 rounded-lg border border-[#ffffff1a] bg-[var(--sf-raised)] py-0 pl-2.5 pr-1`,children:[(0,Y.jsx)(`code`,{className:`min-w-0 flex-1 truncate font-['Geist_Mono',monospace] text-[13px] text-[var(--sf-text-1)]`,children:e}),(0,Y.jsxs)(`button`,{type:`button`,className:`flex h-6 shrink-0 items-center gap-1.5 rounded-md border border-[#ffffff12] bg-[var(--sf-panel)] px-2`,onClick:()=>{tQ(e).then(()=>{a(!0),window.setTimeout(()=>a(!1),1500)})},children:[(0,Y.jsx)(R,{className:`size-3 text-[var(--sf-text-2)]`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`font-sans text-xs font-medium text-[var(--sf-text-2)]`,children:i?`Copied`:`Copy`})]})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col overflow-clip rounded-[10px] border border-[#ffffff12] bg-[var(--sf-ground)]`,children:[(0,Y.jsxs)(`div`,{className:`flex h-[30px] items-center justify-between border-b border-b-[#ffffff12] px-3 py-0`,children:[(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace] text-xs text-[var(--sf-text-3)]`,children:`.cursor/mcp.json`}),(0,Y.jsxs)(`button`,{type:`button`,className:`flex items-center gap-[5px]`,onClick:()=>{tQ(t).then(()=>{s(!0),window.setTimeout(()=>s(!1),1500)})},children:[(0,Y.jsx)(R,{className:`size-3 text-[var(--sf-text-3)]`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`font-sans text-xs text-[var(--sf-text-3)]`,children:o?`Copied`:`Copy config`})]})]}),(0,Y.jsx)(`pre`,{className:`overflow-x-auto px-3 py-2.5 font-['Geist_Mono',monospace] text-xs leading-normal text-[var(--sf-text-2)]`,children:t})]}),(0,Y.jsxs)(`label`,{className:`flex flex-col gap-1.5`,children:[(0,Y.jsx)(`span`,{className:`font-sans text-[13px] font-medium text-[var(--sf-text-1)]`,children:`Control token`}),(0,Y.jsx)(`span`,{className:`font-sans text-xs text-[var(--sf-text-3)]`,children:`Stored in this browser only. Paste the Host's STAGEFLOW_CONTROL_TOKEN, including Docker on localhost. Leave empty when the Host has no token.`}),(0,Y.jsx)(`input`,{type:`password`,autoComplete:`off`,value:n,onChange:e=>r(e.target.value),placeholder:`STAGEFLOW_CONTROL_TOKEN`,className:`h-8 rounded-lg border border-[#ffffff1a] bg-[var(--sf-raised)] px-2.5 font-['Geist_Mono',monospace] text-[13px] text-[var(--sf-text-1)] outline-none`})]}),null]})}function rQ({label:e,hint:t,mono:n,children:r,last:i}){return(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-4 px-3.5 py-3.5${i?``:` border-b border-b-[#ffffff12]`}`,children:[(0,Y.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,Y.jsx)(`span`,{className:`block font-sans text-[13px] font-medium text-[var(--sf-text-1)]`,children:e}),t?(0,Y.jsx)(`span`,{className:`mt-0.5 block font-sans text-xs text-[var(--sf-text-3)]`,children:t}):null]}),r??(0,Y.jsx)(`span`,{className:`shrink-0 font-['Geist_Mono',monospace] text-[13px] text-[var(--sf-text-2)]`,children:n})]})}function iQ({api:e=NZ}={}){let t=(0,J.useRef)(null),[n,r]=(0,J.useState)(()=>HZ(e).getState()),[i,a]=(0,J.useState)(null),[o,s]=(0,J.useState)(!1),[c,l]=(0,J.useState)(null),[u,d]=(0,J.useState)(null);(0,J.useEffect)(()=>{let n=HZ(e);t.current=n,r(n.getState());let i=n.subscribe(()=>r(n.getState()));return n.load().then(()=>n.checkAll()),()=>{i(),n.dispose(),t.current===n&&(t.current=null)}},[e]);let f=()=>t.current,p=e=>l(e instanceof Error?e.message:String(e)),m=e=>e?e.ok?(e.notice!==null&&d(e.notice),!0):(l(e.error),!1):!1,h=()=>{l(null),d(null),a({initial:iZ(),editing:!1})},g=async t=>{l(null),d(null);try{let{config:n}=await e.getServer(t);a({initial:_Z(t,n),editing:!0})}catch(e){p(e)}},_=async(e,t)=>{s(!0),l(null),d(null);try{m(await f()?.save(e,t))&&a(null)}finally{s(!1)}},v=async e=>{s(!0),l(null),d(null);try{m(await f()?.importJson(e))&&a(null)}finally{s(!1)}},y=async e=>{window.confirm(`Remove ${e}? Agents or stages that use it will stop working.`)&&(l(null),d(null),m(await f()?.remove(e)))},b=async e=>m(await f()?.signedIn(e)),x=async e=>{window.confirm(`Sign out of ${e}? Agents lose access until you sign in again.`)&&(l(null),m(await f()?.signOut(e)))},S=async e=>{l(null),m(await f()?.saveSecret(e))},C=async e=>{window.confirm(`Remove the stored value for ${e}?`)&&(l(null),m(await f()?.removeSecret(e)))},{oauth:w,secrets:T,signingIn:E,secretDrafts:D}=n,O=n.catalogStatus?zZ(n.catalogStatus):null;return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2.5`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Y.jsx)(ZZ,{children:`Project MCP`}),(0,Y.jsxs)(`button`,{type:`button`,className:`flex h-8 items-center gap-1.5 rounded-lg border border-[#ffffff1a] bg-[var(--sf-raised)] px-3 py-0 font-sans text-[13px] font-medium text-[var(--sf-text-1)]`,onClick:h,children:[(0,Y.jsx)(se,{className:`size-3.5`,"aria-hidden":!0}),` Add server`]})]}),(0,Y.jsx)(`p`,{className:`font-sans text-[13px] text-[var(--sf-text-2)]`,children:PZ}),n.error?(0,Y.jsx)(`p`,{className:`font-sans text-[13px] text-[var(--sf-fail)]`,children:n.error}):null,O?(0,Y.jsx)(`p`,{className:`font-sans text-[13px] text-[var(--sf-fail)]`,children:O}):null,u?(0,Y.jsx)(`p`,{className:`font-sans text-[13px] text-[var(--sf-text-2)]`,role:`status`,children:u}):null,i?(0,Y.jsx)(MZ,{initial:i.initial,editing:i.editing,busy:o,error:c,onSave:_,onImport:v,onCancel:()=>a(null)}):c?(0,Y.jsx)(`p`,{className:`font-sans text-[13px] text-[var(--sf-fail)]`,children:c}):null,(0,Y.jsx)(`div`,{className:`flex flex-col overflow-clip rounded-xl border border-[#ffffff12] bg-[var(--sf-panel)]`,children:n.loading?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`div`,{className:`flex h-14 items-center gap-3 border-b border-b-[#ffffff12] px-3.5`,children:[(0,Y.jsx)(`div`,{className:`size-7 animate-pulse rounded-[7px] bg-[var(--sf-raised)]`}),(0,Y.jsx)(`div`,{className:`h-3 w-32 animate-pulse rounded bg-[var(--sf-raised)]`})]}),(0,Y.jsxs)(`div`,{className:`flex h-14 items-center gap-3 px-3.5`,children:[(0,Y.jsx)(`div`,{className:`size-7 animate-pulse rounded-[7px] bg-[var(--sf-raised)]`}),(0,Y.jsx)(`div`,{className:`h-3 w-28 animate-pulse rounded bg-[var(--sf-raised)]`})]})]}):n.servers.length===0&&(n.catalogStatus===`ok`||n.catalogStatus===`missing_catalog`)?(0,Y.jsx)(`p`,{className:`px-3.5 py-6 font-sans text-[13px] text-[var(--sf-text-3)]`,children:`No MCP servers yet. Add one above, or paste a snippet from the server's docs.`}):n.servers.map((t,r)=>{let i=LZ(t.status),a=t.status===`probing`,o=r===n.servers.length-1,s=wZ(w[t.name]),c=TZ(t,w[t.name]);return(0,Y.jsxs)(`div`,{className:o?``:`border-b border-b-[#ffffff12]`,children:[(0,Y.jsxs)(`div`,{className:`flex h-14 items-center gap-3 px-3.5`,children:[(0,Y.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col gap-0.5`,children:[(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace] text-[13px] font-medium text-[var(--sf-text-1)]`,children:t.name}),(0,Y.jsxs)(`span`,{className:`font-sans text-xs text-[var(--sf-text-3)]`,children:[t.transport,` · `,t.origin===`console`?`added here`:`.mcp.json`,t.error?` · ${t.error}`:``]})]}),(0,Y.jsxs)(`span`,{className:`flex shrink-0 items-center gap-2.5`,children:[(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5 font-sans text-xs text-[var(--sf-text-2)]`,children:[i?(0,Y.jsx)(`span`,{className:`size-1.5 rounded-full`,style:{backgroundColor:i}}):null,FZ(t.status)]}),s?(0,Y.jsx)(`span`,{className:`font-sans text-xs text-[var(--sf-text-3)]`,children:`signed in`}):null,c?(0,Y.jsx)(`button`,{type:`button`,className:`flex h-8 items-center rounded-lg border border-[#ffffff40] bg-[var(--sf-raised)] px-3 py-0 font-sans text-[13px] font-medium text-[var(--sf-text-1)]`,onClick:()=>f()?.startSignIn(t.name),children:`Sign in`}):null,s?(0,Y.jsx)(`button`,{type:`button`,className:`flex h-8 items-center rounded-lg border border-[#ffffff1a] bg-[var(--sf-raised)] px-3 py-0 font-sans text-[13px] font-medium text-[var(--sf-text-1)]`,onClick:()=>void x(t.name),children:`Sign out`}):null,(0,Y.jsx)(`button`,{type:`button`,className:`flex h-8 items-center rounded-lg border border-[#ffffff1a] bg-[var(--sf-raised)] px-3 py-0 font-sans text-[13px] font-medium text-[var(--sf-text-1)] disabled:opacity-60`,disabled:a,onClick:()=>void f()?.check(t.name),children:a?`Checking…`:`Check`}),t.origin===`console`?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`button`,{type:`button`,className:`flex h-8 items-center rounded-lg border border-[#ffffff1a] bg-[var(--sf-raised)] px-3 py-0 font-sans text-[13px] font-medium text-[var(--sf-text-1)]`,onClick:()=>void g(t.name),children:`Edit`}),(0,Y.jsx)(`button`,{type:`button`,className:`flex h-8 items-center rounded-lg border border-[#ffffff1a] bg-[var(--sf-raised)] px-3 py-0 font-sans text-[13px] font-medium text-[var(--sf-fail)]`,onClick:()=>void y(t.name),children:`Remove`})]}):null]})]}),E===t.name?(0,Y.jsx)(KZ,{name:t.name,api:e,onDone:()=>void b(t.name),onCancel:()=>f()?.cancelSignIn()}):null]},t.name)})}),T&&(T.needed.length>0||T.secrets.length>0)?(0,Y.jsx)(aQ,{secrets:T,draft:D,onDraft:(e,t)=>f()?.setDraft(e,t),onSet:e=>void S(e),onRemove:e=>void C(e)}):null]})}function aQ({secrets:e,draft:t,onDraft:n,onSet:r,onRemove:i}){let a=EZ(e);return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2.5`,children:[(0,Y.jsx)(ZZ,{children:`MCP secrets`}),(0,Y.jsxs)(`p`,{className:`font-sans text-[13px] text-[var(--sf-text-2)]`,children:[`Values for the `,"${NAME}",` placeholders in server configs. Stored on the Host and never shown again.`]}),(0,Y.jsx)(`div`,{className:`flex flex-col overflow-clip rounded-xl border border-[#ffffff12] bg-[var(--sf-panel)]`,children:a.map((e,o)=>(0,Y.jsxs)(`div`,{className:`flex min-h-14 flex-wrap items-center gap-3 px-3.5 py-2${o===a.length-1?``:` border-b border-b-[#ffffff12]`}`,children:[(0,Y.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col gap-0.5`,children:[(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace] text-[13px] font-medium text-[var(--sf-text-1)]`,children:e.name}),(0,Y.jsx)(`span`,{className:`font-sans text-xs text-[var(--sf-text-3)]`,children:DZ(e)})]}),(0,Y.jsx)(`input`,{type:`password`,autoComplete:`off`,className:`h-8 w-48 rounded-lg border border-[#ffffff1a] bg-[var(--sf-raised)] px-2.5 font-['Geist_Mono',monospace] text-[13px] text-[var(--sf-text-1)] outline-none`,"aria-label":`Value for ${e.name}`,placeholder:e.stored?`Replace value`:`Value`,value:t[e.name]??``,onChange:t=>n(e.name,t.target.value)}),(0,Y.jsx)(`button`,{type:`button`,className:`flex h-8 items-center rounded-lg border border-[#ffffff1a] bg-[var(--sf-raised)] px-3 font-sans text-[13px] font-medium text-[var(--sf-text-1)] disabled:opacity-60`,disabled:!t[e.name],onClick:()=>r(e.name),children:`Save`}),e.stored?(0,Y.jsx)(`button`,{type:`button`,className:`flex h-8 items-center rounded-lg border border-[#ffffff1a] bg-[var(--sf-raised)] px-3 font-sans text-[13px] font-medium text-[var(--sf-fail)]`,onClick:()=>i(e.name),children:`Remove`}):null]},e.name))})]})}function oQ(e,t=`smooth`){let n=document.getElementById(`sf-settings-scroll`),r=document.getElementById(IX(e));if(!n||!r)return;let i=n.getBoundingClientRect(),a=r.getBoundingClientRect().top-i.top;n.scrollTo({top:n.scrollTop+a,behavior:t})}function sQ(e){let t=`#${zX(e)}`;window.location.hash!==t&&history.replaceState(null,``,t)}function cQ(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KiB`:e<1073741824?`${(e/1048576).toFixed(1)} MiB`:`${(e/1073741824).toFixed(2)} GiB`}function lQ({notifyPreference:e,onNotifyChange:t}){let{snapshot:n}=Jo(),r=Yo(),i=n.health,a=(0,J.useRef)(!1);i&&(a.current=!0);let o=a.current,[s,c]=(0,J.useState)(null),[l,u]=(0,J.useState)(!1),[d,f]=(0,J.useState)(sO),[p,m]=(0,J.useState)(``),[h,g]=(0,J.useState)(null),[_,v]=(0,J.useState)(!1),[y,b]=(0,J.useState)(()=>RX()),[x,S]=(0,J.useState)(void 0),C=(0,J.useRef)(!1),w=(0,J.useRef)(!1);(0,J.useEffect)(()=>{let e=()=>{let e=RX();b(e),C.current||oQ(e,`auto`)};return window.addEventListener(`hashchange`,e),()=>window.removeEventListener(`hashchange`,e)},[]),(0,J.useEffect)(()=>{w.current||(w.current=!0,requestAnimationFrame(()=>{oQ(RX(),`auto`)}))},[]),(0,J.useEffect)(()=>{let e=document.getElementById(`sf-settings-scroll`);if(!e)return;let t=PX.map(({id:e})=>document.getElementById(IX(e))).filter(e=>e!=null),n=()=>{if(C.current)return;let t=e.getBoundingClientRect().top,n=PX.flatMap(({id:n})=>{let r=document.getElementById(IX(n));return r?[{id:n,top:r.getBoundingClientRect().top-t+e.scrollTop}]:[]}).filter(t=>t.top<=e.scrollTop+32),r=n[n.length-1];if(!r)return;let i=n.filter(e=>Math.abs(e.top-r.top)<8);b(e=>{let t=i.some(t=>t.id===e)?e:i[0].id;return e===t?e:(sQ(t),t)})},r=new IntersectionObserver(()=>n(),{root:e,threshold:[0,.05,.1,.25,.5,.75,1]});for(let e of t)r.observe(e);return()=>r.disconnect()},[]),(0,J.useEffect)(()=>{let e=!1;return(async()=>{try{let t=await Ca();if(e)return;m(t.workshopModel??``)}catch(t){if(e)return;g(t instanceof Error?t.message:String(t))}})(),()=>{e=!0}},[]);async function T(e){let n=e===`system`?`system`:`off`;if(oO(n),t(n),n===`system`&&sO()==="default"){let e=await cO();f(e)}}async function E(e){u(!0),c(null);try{await pa(e),await r.refresh()}catch(e){c(e instanceof Error?e.message:String(e))}finally{u(!1)}}async function D(e){v(!0),g(null);try{let t=e.trim();if(!t)return;let n=await Ta(t);m(n.workshopModel??t)}catch(e){g(e instanceof Error?e.message:String(e))}finally{v(!1)}}let O=(0,J.useCallback)((e,t)=>{S(t>0?`${e}/${t}`:void 0)},[]);function k(e){C.current=!0,window.setTimeout(()=>{C.current=!1},450),Z(zX(e)),b(e),requestAnimationFrame(()=>{oQ(e,`smooth`)})}return(0,Y.jsxs)(BX,{section:y,onSectionChange:k,providersNavCount:x,children:[(0,Y.jsx)(`section`,{id:IX(`general`),className:`scroll-mt-1`,children:(0,Y.jsx)(QZ,{workshopModel:p,workshopModelSaving:_,workshopModelError:h,onWorkshopModelChange:e=>void D(e),health:i,formatDiskBytes:cQ})}),(0,Y.jsx)(`section`,{id:IX(`providers`),className:`scroll-mt-1`,children:(0,Y.jsx)(tZ,{onProvidersSummary:O})}),(0,Y.jsxs)(`div`,{className:`grid w-full grid-cols-[1fr_1.25fr] gap-3`,children:[(0,Y.jsx)(`section`,{id:IX(`concurrency`),className:`min-w-0 scroll-mt-1`,children:(0,Y.jsx)($Z,{snapshot:n,health:i,healthEverLoaded:o,slotsSaving:l,slotsError:s,onSlotsChange:e=>void E(e)})}),(0,Y.jsx)(`section`,{id:IX(`mcp`),className:`min-w-0 scroll-mt-1`,children:(0,Y.jsx)(nQ,{})})]}),(0,Y.jsx)(`section`,{id:IX(`project-mcp`),className:`scroll-mt-1`,children:(0,Y.jsx)(iQ,{})}),(0,Y.jsx)(`section`,{id:IX(`notifications`),className:`scroll-mt-1`,children:(0,Y.jsx)(eQ,{notifyPreference:e,permission:d,onNotifySelect:e=>void T(e)})}),(0,Y.jsx)(`div`,{className:`min-h-[45vh] shrink-0`,"aria-hidden":`true`})]})}function uQ({provider:e,status:t,connecting:n,oauthing:r,apiKeyDraft:i,rowBusy:a,showDisconnect:o,onSetConnecting:s,onSetOauthing:c,onApiKeyChange:l,onConnectSubmit:u,onDisconnect:d,onOauthComplete:f,onOauthDismiss:p}){let m=t?.configured===!0,h=iD(e),g=YX(e),_=aD(e);return(0,Y.jsxs)(`div`,{className:`setting`,children:[(0,Y.jsxs)(`span`,{children:[(0,Y.jsx)(`strong`,{children:e.name}),(0,Y.jsx)(`p`,{children:oD(t)}),n?(0,Y.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:`var(--spacing-2)`,marginTop:`var(--spacing-2)`},children:[(0,Y.jsx)(`input`,{className:`input`,type:`password`,autoComplete:`off`,placeholder:`API key`,value:i,onChange:e=>l(e.target.value)}),(0,Y.jsxs)(`div`,{style:{display:`flex`,gap:`var(--spacing-2)`},children:[(0,Y.jsx)(`button`,{type:`button`,className:`btn btn--primary`,disabled:a,onClick:()=>u(e.id),children:a?`Saving…`:`Save key`}),(0,Y.jsx)(`button`,{type:`button`,className:`btn btn--ghost`,disabled:a,onClick:()=>{s(null),l(``)},children:`Cancel`})]})]}):null,r?(0,Y.jsx)(ZX,{providerId:e.id,providerName:e.name,onComplete:f,onDismiss:p}):null]}),(0,Y.jsxs)(`span`,{style:{display:`flex`,gap:`var(--spacing-2)`},children:[m&&o?(0,Y.jsx)(`button`,{type:`button`,className:`btn btn--ghost`,disabled:a||r,onClick:()=>d(e.id),children:`Disconnect`}):null,m&&!o?(0,Y.jsx)(`span`,{className:`muted`,children:`Connected`}):null,h&&!m&&!r?(0,Y.jsx)(`button`,{type:`button`,className:`btn btn--primary`,disabled:a,onClick:()=>{s(e.id),c(null),l(``)},children:`Connect`}):null,g&&!m&&!n&&!r?(0,Y.jsx)(`button`,{type:`button`,className:_?`btn btn--primary`:`btn btn--ghost`,disabled:a,onClick:()=>{c(e.id),s(null),l(``)},children:`Connect with OAuth`}):null]})]},e.id)}function dQ({onComplete:e}){let[t,n]=(0,J.useState)(!0),[r,i]=(0,J.useState)(null),[a,o]=(0,J.useState)(null),[s,c]=(0,J.useState)([]),[l,u]=(0,J.useState)({}),[d,f]=(0,J.useState)(null),[p,m]=(0,J.useState)(null),[h,g]=(0,J.useState)(``),[_,v]=(0,J.useState)(null);async function y(){let e=(await ma()).providers.filter(e=>iD(e)||YX(e));c(e);let t={};await Promise.all(e.map(async e=>{try{let{provider:n}=await ga(e.id);t[e.id]=n}catch{t[e.id]=void 0}})),u(t)}(0,J.useEffect)(()=>{(async()=>{n(!0),i(null);try{(await ha()).credentialSource===void 0&&await wa(`sf_owned`),await y()}catch(e){i(e instanceof Error?e.message:String(e))}finally{n(!1)}})()},[]);async function b(e){let t=h.trim();if(!t){i(`Paste an API key to connect.`);return}v(e),i(null);try{await wa(`sf_owned`)}catch(e){v(null),i(e instanceof Error?e.message:String(e));return}let n=await _a(e,t);if(v(null),!n.ok){i(n.error);return}g(``),f(null),u(t=>({...t,[e]:n.provider}))}let x=Object.values(l).some(e=>e?.configured);return(0,Y.jsxs)(`div`,{className:`main__inner`,children:[(0,Y.jsx)(`div`,{className:`page-head`,children:(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`h1`,{children:`Connect providers`}),(0,Y.jsx)(`p`,{children:tD})]})}),t?(0,Y.jsx)(`p`,{className:`muted`,children:`Loading providers…`}):null,r?(0,Y.jsx)(`p`,{style:{color:`var(--color-text-red)`,marginBottom:`var(--spacing-4)`},children:r}):null,a?(0,Y.jsx)(`p`,{style:{color:`var(--color-text-secondary)`,marginBottom:`var(--spacing-4)`},children:a}):null,t?null:(0,Y.jsxs)(`section`,{className:`card`,children:[(0,Y.jsx)(`div`,{className:`card__head`,children:(0,Y.jsx)(`h2`,{children:`Providers`})}),(0,Y.jsx)(`p`,{style:{margin:0,color:`var(--color-text-secondary)`,fontSize:`var(--font-size-sm)`},children:`Connect at least one provider with an API key or Pi OAuth / subscription login.`}),s.length===0?(0,Y.jsx)(`p`,{className:`muted`,children:`No connectable providers are available from Pi right now.`}):s.map(e=>(0,Y.jsx)(uQ,{provider:e,status:l[e.id],connecting:d===e.id,oauthing:p===e.id,apiKeyDraft:h,rowBusy:_===e.id,showDisconnect:!1,onSetConnecting:f,onSetOauthing:m,onApiKeyChange:g,onConnectSubmit:e=>void b(e),onDisconnect:()=>void 0,onOauthComplete:(t,n)=>{m(null),o(n??null),t?u(n=>({...n,[e.id]:t})):y()},onOauthDismiss:()=>m(null)},e.id)),(0,Y.jsxs)(`div`,{className:`form-actions`,style:{marginTop:`var(--spacing-4)`},children:[(0,Y.jsx)(`button`,{type:`button`,className:`btn btn--primary`,disabled:!x,onClick:e,children:`Continue to console`}),(0,Y.jsx)(`button`,{type:`button`,className:`btn btn--ghost`,onClick:e,children:`Skip for now`})]})]})]})}var fQ={surface:{kWkggS:`x1prclbq`,kaIpWk:`x1hviunn`,kGVxlE:`x1i5ehqx`,$$css:!0},contentWrapper:{kVAEAm:`x1n2onr6`,$$css:!0},closeButtonWrapper:{kVAEAm:`x10l6tqk`,krVfgx:`x1ey2m1c`,kY2c9j:`x1vjfegm`,kzqmXN:`x1i1rx1s x10okhzq`,kZKoxP:`xjm9jq1 x132qfvm`,kVQacm:`xb3r6kr x1dordxg`,kz4h6p:`x1hyvwdk x10wafsz`,kfzvcC:`x47corl xbt4iw`,kLKAdn:`xexx8yu x1kw28su`,$$css:!0}};function pQ(e={}){let{onShow:t,onHide:n,xstyle:r,hasLightDismiss:i=!0,hasEscapeDismiss:a=!0,hasAutoFocus:o=!0,hasSurface:s=!0,hasCloseButton:c=!0,closeButtonLabel:l,dialogLabel:u,role:d=`dialog`,isModal:f=!0}=e,p=tp(),m=l??p(`@astryx.popover.close`),h=(0,J.useRef)(null),g=(0,J.useRef)(!1),_=At({mode:`context`,lightDismiss:i,onShow:t,onHide:n}),{containerRef:v,focusFirst:y}=qh({isActive:_.isOpen,onEscape:a||i?_.hide:void 0});(0,J.useEffect)(()=>{_.isOpen&&o&&!g.current&&requestAnimationFrame(()=>{y()}),_.isOpen||(g.current=!1)},[_.isOpen,o,y]);let b=(0,J.useCallback)(e=>{h.current=e,_.ref(e)},[_]),x=(0,J.useCallback)(e=>{g.current=e?.skipAutoFocus??!1,_.show()},[_]),S=(0,J.useCallback)(()=>{_.isOpen?_.hide():x()},[_,x]),C={"aria-haspopup":d===`dialog`?`dialog`:`true`,"aria-expanded":_.isOpen,"aria-controls":_.id};tg(`usePopover`,'role="dialog" without a `dialogLabel` renders an unnamed dialog. Pass `dialogLabel`, or use `role: "none"` for listbox/menu popups whose content already carries its own role.',d===`dialog`&&!u);let w=(0,J.useCallback)((e,t)=>_.render((0,Y.jsxs)(`div`,{ref:v,role:d===`dialog`?`dialog`:void 0,"aria-modal":d===`dialog`&&f?!0:void 0,"aria-label":d===`dialog`?u:void 0,...K(fQ.contentWrapper,s&&fQ.surface,r),children:[e,c&&(0,Y.jsx)(`div`,{...K(fQ.closeButtonWrapper,mu.centerInline(`100%`)),children:(0,Y.jsx)(up,{variant:`secondary`,label:m,onClick:_.hide})})]}),{...t,xstyle:t?.xstyle}),[_,c,s,m,v,u,d,f,r]);return{triggerRef:b,contentRef:v,anchorId:_.anchorId,show:x,hide:_.hide,toggle:S,isOpen:_.isOpen,id:_.id,render:w,triggerProps:C}}var mQ={popoverSurface:{k7Eaqz:`xfb3i0g`,$$css:!0}};function hQ(e){let t=window.getSelection();if(!t||t.rangeCount===0)return null;let n=t.getRangeAt(0);if(!n.collapsed||!e.contains(n.startContainer))return null;let r=n.startContainer;return r.nodeType===Node.TEXT_NODE?(r.textContent??``).slice(0,n.startOffset):null}function gQ(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n];if(r===` `||r===`
244
- `)return null;for(let i of t)if(r===i.character){let t=n>0?e[n-1]:null;if(t===null||t===` `||t===`
245
- `)return{trigger:i,query:e.slice(n+1),triggerStart:n}}}return null}function _Q(e,t){let n=window.getSelection();if(!n||n.rangeCount===0)return;let r=n.getRangeAt(0),i=r.startContainer;if(i.nodeType!==Node.TEXT_NODE)return;let a=i.textContent??``,o=r.startOffset;i.textContent=a.slice(0,t)+a.slice(o);let s=document.createRange();s.setStart(i,t),s.collapse(!0),n.removeAllRanges(),n.addRange(s)}function vQ(e){let t=tp(),{triggers:n,editableRef:r,onInsertToken:i,onInsertText:a,onEmitChange:o,debounceMs:s=150}=e,c=(0,J.useId)(),[l,u]=(0,J.useState)({isActive:!1,activeTrigger:null,query:``,items:[],highlightedIndex:0,isLoading:!1}),d=(0,J.useRef)(-1),f=(0,J.useRef)(null),p=(0,J.useRef)(null),m=(0,J.useCallback)(()=>{p.current&&=(p.current.remove(),null)},[]),h=pQ({onHide:(0,J.useCallback)(()=>{m(),u(e=>({...e,isActive:!1,activeTrigger:null,query:``,items:[],highlightedIndex:0,isLoading:!1}))},[m]),hasLightDismiss:!0,hasCloseButton:!1,hasAutoFocus:!1,role:`none`});(0,J.useEffect)(()=>()=>{f.current&&clearTimeout(f.current),m()},[m]);let g=(0,J.useCallback)(()=>{f.current&&=(clearTimeout(f.current),null);let e=l.activeTrigger;e?.searchSource&&e.searchSource.cancel?.(),m(),h.hide(),d.current=-1},[h,l.activeTrigger,m]),_=(0,J.useCallback)(()=>{let e=r.current;if(!e)return;let t=window.getSelection();if(!t||t.rangeCount===0){h.triggerRef(e);return}m();let n=t.getRangeAt(0).cloneRange();n.collapse(!0);let i=typeof n.getBoundingClientRect==`function`?n.getBoundingClientRect():null;if(!i||i.width===0&&i.height===0&&i.top===0&&i.left===0){h.triggerRef(e);return}let a=document.createElement(`span`);a.setAttribute(`aria-hidden`,`true`),a.setAttribute(`data-astryx-trigger-anchor`,``),a.style.position=`fixed`,a.style.left=`${i.left}px`,a.style.top=`${i.top}px`,a.style.width=`${Math.max(i.width,1)}px`,a.style.height=`${i.height}px`,a.style.pointerEvents=`none`,a.style.opacity=`0`,document.body.appendChild(a),p.current=a,h.triggerRef(a)},[r,h,m]),v=(0,J.useCallback)((e,t)=>{f.current&&=(clearTimeout(f.current),null);let n=()=>{if(e.searchSource){e.searchSource.cancel?.(),u(e=>({...e,isLoading:!0}));let n=e.searchSource.search(t);Promise.resolve(n).then(e=>{u(t=>({...t,items:e,highlightedIndex:e.length>0?0:-1,isLoading:!1}))},()=>{u(e=>({...e,items:[],highlightedIndex:-1,isLoading:!1}))})}};e.searchSource&&(e.searchSource.search(``)instanceof Promise&&s>0?(u(e=>({...e,isLoading:!0})),f.current=setTimeout(n,s)):n())},[s]),y=(0,J.useCallback)(e=>{let t=l.activeTrigger;if(!t)return;let n=r.current;if(!n)return;m(),_Q(n,d.current);let s=t.onSelect(e);typeof s==`string`?a(s):i(s),o(),g()},[l.activeTrigger,r,m,a,i,o,g]),b=(0,J.useCallback)(()=>{if(!n||n.length===0)return;let e=r.current;if(!e)return;let t=hQ(e);if(t===null){l.isActive&&g();return}let i=gQ(t,n);if(!i){l.isActive&&g();return}let{trigger:a,query:o,triggerStart:s}=i;!l.isActive||l.activeTrigger!==a?(d.current=s,u(e=>({...e,isActive:!0,activeTrigger:a,query:o,highlightedIndex:0})),_(),v(a,o),h.show()):l.query!==o&&(u(e=>({...e,query:o})),v(a,o))},[n,r,l.isActive,l.activeTrigger,l.query,g,_,v,h]),x=(0,J.useCallback)(e=>{if(!l.isActive||!h.isOpen)return!1;switch(e.key){case`ArrowDown`:return e.preventDefault(),u(e=>({...e,highlightedIndex:e.highlightedIndex<e.items.length-1?e.highlightedIndex+1:0})),!0;case`ArrowUp`:return e.preventDefault(),u(e=>({...e,highlightedIndex:e.highlightedIndex>0?e.highlightedIndex-1:e.items.length-1})),!0;case`Enter`:case`Tab`:return l.highlightedIndex>=0&&l.highlightedIndex<l.items.length&&(e.preventDefault(),y(l.items[l.highlightedIndex]),!0);case`Escape`:return e.preventDefault(),g(),!0;default:return!1}},[l.isActive,l.highlightedIndex,l.items,h.isOpen,y,g]),S=(0,J.useCallback)(e=>`${c}-option-${e}`,[c]);(0,J.useEffect)(()=>{!h.isOpen||l.highlightedIndex<0||document.getElementById(S(l.highlightedIndex))?.scrollIntoView({block:`nearest`})},[l.highlightedIndex,h.isOpen,S]);let C=(n?.length??0)>0?l.isActive&&h.isOpen?{role:`combobox`,"aria-expanded":!0,"aria-controls":c,"aria-activedescendant":l.highlightedIndex>=0?S(l.highlightedIndex):void 0,"aria-haspopup":`listbox`}:{role:`combobox`,"aria-expanded":!1,"aria-haspopup":`listbox`}:{role:`textbox`};return{state:l,handleInput:b,handleKeyDown:x,renderMenu:(0,J.useCallback)(()=>{let e=l.activeTrigger,n=e?.emptySearchResultsText??`No results`,r=e?.loadingText??`Searching…`,i;if(l.isLoading)i=(0,Y.jsx)(`div`,{role:`status`,className:`x1b2ylru x2b8uid x141an7d xv1l7n4`,children:r});else if(l.items.length===0&&l.isActive)i=(0,Y.jsx)(`div`,{className:`x1b2ylru x2b8uid x141an7d xv1l7n4`,children:n});else{let t=ou(l.items),n=0;i=t.map(t=>{let r=t.items.map(t=>{let r=n++;return(0,Y.jsx)(`div`,{id:S(r),role:`option`,"aria-selected":r===l.highlightedIndex,tabIndex:-1,onMouseDown:e=>{e.preventDefault(),y(t)},onMouseEnter:()=>u(e=>({...e,highlightedIndex:r})),...{0:{className:`x9f619 x78zum5 x6s0dn4 xh8yej3 xlsj2fj xh6dtrn x1ypdohk x1a2a7pz xjbqb8w x1yc453h x9ynric xjm74w1 xw6l6zx x1tgivj0`},1:{className:`x9f619 x78zum5 x6s0dn4 xh8yej3 xlsj2fj xh6dtrn x1ypdohk x1a2a7pz x1yc453h x9ynric xjm74w1 xw6l6zx x1tgivj0 x1lmrjuc`}}[(r===l.highlightedIndex)<<0],children:e?.renderItem?e.renderItem(t):(0,Y.jsx)(`span`,{className:`x98rzlu xeuugli xb3r6kr xlyipyv xuxw1ft`,children:t.label})},t.id)});return t.heading?(0,Y.jsxs)(`div`,{role:`group`,"aria-label":t.heading,children:[(0,Y.jsx)(`div`,{"aria-hidden":`true`,className:`xf314gf x1xye8es xy143xn x141an7d x1ltkj2j xv1l7n4 x87ps6o`,children:t.heading}),r]},`group-${t.heading}`):r})}return h.render((0,Y.jsx)(`div`,{id:c,role:`listbox`,"aria-label":e?.menuLabel??t(`@astryx.chatTriggerMenu.suggestions`),...Q(q(`trigger-menu`),{className:`x9f619 x1xiyphd x1odjw0f x9epnlk xfb3i0g`}),children:i}),{placement:`above`,alignment:`start`,offset:qt[`--spacing-1`],xstyle:mQ.popoverSurface})},[h,c,l,y,S,t]),reset:g,ariaProps:C}}function yQ(e){let t=window.getSelection();if(!t)return null;if(t.rangeCount>0){let n=t.getRangeAt(0);if(e.contains(n.startContainer))return t}let n=document.createRange();return n.selectNodeContents(e),n.collapse(!1),t.removeAllRanges(),t.addRange(n),t}function bQ(e,t){let n=yQ(e);if(!n||n.rangeCount===0)return!1;let r=n.getRangeAt(0);r.deleteContents();let i=document.createTextNode(t);return r.insertNode(i),r.setStartAfter(i),r.collapse(!0),n.removeAllRanges(),n.addRange(r),!0}function xQ(e){return`render`in e&&typeof e.render==`function`}function SQ(e){let t=e;for(;t;){if(t instanceof HTMLElement&&t.hasAttribute(`data-astryx-token`))return t;t=t.parentNode}return null}function CQ({editableRef:e,onEmitChange:t}){let[n,r]=(0,J.useState)([]),i=(0,J.useCallback)(t=>{let n=e.current;if(!n)return;let i=yQ(n);if(!i||i.rangeCount===0)return;let a=i.getRangeAt(0),o=document.createElement(`span`),s=`token-${Date.now()}-${Math.random().toString(36).slice(2,6)}`;o.setAttribute(`data-astryx-token`,``),o.setAttribute(`data-astryx-token-value`,t.value),o.setAttribute(`data-astryx-token-id`,s),o.contentEditable=`false`,o.style.display=`inline-flex`,o.style.verticalAlign=`baseline`,a.deleteContents(),a.insertNode(o);let c=document.createTextNode(`\xA0`);o.after(c);let l=document.createRange();return l.setStartAfter(c),l.collapse(!0),i.removeAllRanges(),i.addRange(l),r(e=>[...e,{id:s,span:o,token:t}]),s},[e]),a=(0,J.useCallback)(e=>{if(e.key!==`Backspace`)return!1;let n=window.getSelection();if(!n||!n.isCollapsed||n.rangeCount===0)return!1;let{startContainer:r,startOffset:i}=n.getRangeAt(0);if(r.nodeType===Node.TEXT_NODE&&i===0&&r.previousSibling instanceof HTMLElement&&r.previousSibling.hasAttribute(`data-astryx-token`))return!1;if(r.nodeType===Node.TEXT_NODE&&r.textContent===`\xA0`&&i<=1&&r.previousSibling instanceof HTMLElement&&r.previousSibling.hasAttribute(`data-astryx-token`)){e.preventDefault();let n=r.previousSibling,i=r.parentNode;return i&&(i.removeChild(r),i.removeChild(n)),t(),!0}return!1},[t]),o=(0,J.useCallback)(n=>{let r=e.current;if(!r)return!1;let i=yQ(r);if(!i||i.rangeCount===0)return!1;let a=SQ(i.getRangeAt(0).startContainer);if(a){n.preventDefault();let e=n.clipboardData.getData(`text/plain`),o=a.nextSibling,s=document.createRange();return o&&o.nodeType===Node.TEXT_NODE?s.setStartAfter(o):s.setStartAfter(a),s.collapse(!0),i.removeAllRanges(),i.addRange(s),bQ(r,e),t(),!0}return!1},[e,t]);return{tokenPortals:n,expandToken:(0,J.useCallback)(i=>{if(!e.current)return;let a=n.find(e=>e.id===i);if(!a)return;let{span:o}=a,s=o.getAttribute(`data-astryx-token-value`)??``,c=document.createTextNode(s),l=o.nextSibling;l?.nodeType===Node.TEXT_NODE&&l.textContent===`\xA0`&&l.remove(),o.replaceWith(c);let u=window.getSelection();if(u){let e=document.createRange();e.setStartAfter(c),e.collapse(!0),u.removeAllRanges(),u.addRange(e)}r(e=>e.filter(e=>e.id!==i)),t()},[e,n,t]),insertToken:i,handleKeyDown:a,handlePaste:o,cleanupPortals:(0,J.useCallback)(()=>{r(t=>t.filter(t=>e.current?.contains(t.span)))},[e])}}var wQ={base:{k1xSpc:`x3nfvp2`,kGNEyG:`x6s0dn4`,kjj79g:`xl56j7k`,kOIVth:`xzye2dw`,kZKoxP:`x1grt7ep`,k8WAf4:`xt970qd`,kg3NbH:`xf314gf`,kaIpWk:`xjspbzw`,kMv6JI:`xjb2p0i`,kGuDYH:`x141an7d`,kLWn49:`x1ltkj2j`,k63SB2:`x1e4wzip`,khDVqt:`xuxw1ft`,$$css:!0}},TQ={neutral:{kWkggS:`x17x4s8c`,kMwMTN:`x1tgivj0`,$$css:!0},info:{kWkggS:`x1ewilqj`,kMwMTN:`x17wrial`,$$css:!0},success:{kWkggS:`xdsz4j9`,kMwMTN:`xri61p4`,$$css:!0},warning:{kWkggS:`x1q8g9m5`,kMwMTN:`xrebv38`,$$css:!0},error:{kWkggS:`x1pjz0fi`,kMwMTN:`x1m024r3`,$$css:!0},blue:{kWkggS:`x1o0wnni`,kMwMTN:`x1vvqiwl`,$$css:!0},cyan:{kWkggS:`x1rgj867`,kMwMTN:`x1txnczv`,$$css:!0},green:{kWkggS:`x1sqjeoo`,kMwMTN:`xltfdvo`,$$css:!0},orange:{kWkggS:`x1e9xt6e`,kMwMTN:`xm47u9q`,$$css:!0},pink:{kWkggS:`xnpoty2`,kMwMTN:`xiuofww`,$$css:!0},purple:{kWkggS:`x16i6n6f`,kMwMTN:`x1m9wyeb`,$$css:!0},red:{kWkggS:`x1cibrc5`,kMwMTN:`x1joocv1`,$$css:!0},teal:{kWkggS:`x1jtji5o`,kMwMTN:`x9x0lbs`,$$css:!0},yellow:{kWkggS:`x1bo7t0x`,kMwMTN:`xdhq94a`,$$css:!0}};function EQ({variant:e=`neutral`,label:t,icon:n,xstyle:r,className:i,style:a,ref:o,...s}){return(0,Y.jsxs)(`span`,{ref:o,...Q(q(`badge`,{variant:e}),K(wQ.base,TQ[e],r),i,a),...s,children:[n,t]})}EQ.displayName=`Badge`;var DQ={container:{kWkggS:`x10xzikg`,"--_hovercard-radius":`xqwz7mz`,kaIpWk:`x7a53xk`,kGVxlE:`x14hfi27`,$$css:!0}};function OQ(e){return e.hasAttribute(`tabindex`)?e.tabIndex>=0:[`A`,`BUTTON`,`INPUT`,`SELECT`,`TEXTAREA`].includes(e.tagName)?!e.disabled:!!e.isContentEditable}function kQ(e={}){let{placement:t=`above`,alignment:n=`center`,delay:r=300,hideDelay:i=200,focusTrigger:a=`auto`,isEnabled:o=!0,label:s,isOpen:c,isDefaultOpen:l=!1,onShow:u,onHide:d}=e,f=At({mode:`context`,onShow:u,onHide:d}),p=DQ.container,m=(0,J.useRef)(null),h=(0,J.useRef)(null),g=(0,J.useRef)(null),_=(0,J.useRef)(!1),v=(0,J.useRef)(!1),y=(0,J.useCallback)(()=>{m.current&&=(clearTimeout(m.current),null),h.current&&=(clearTimeout(h.current),null)},[]),b=(0,J.useCallback)(()=>{!o||c===!1||(y(),m.current=setTimeout(()=>{f.show()},r))},[o,c,y,f,r]),x=(0,J.useCallback)(()=>{c!==!0&&(y(),h.current=setTimeout(()=>{_.current||f.hide()},i))},[c,y,f,i]),S=(0,J.useCallback)(()=>{b()},[b]),C=(0,J.useCallback)(()=>{x()},[x]),w=(0,J.useCallback)(()=>{if(o){if(v.current){v.current=!1;return}y(),f.show()}},[o,y,f]),T=(0,J.useCallback)(e=>{let t=e.relatedTarget;document.getElementById(f.id)?.contains(t)||x()},[f.id,x]),E=(0,J.useCallback)(e=>{e.key===`Escape`&&(e.stopPropagation(),y(),f.hide())},[y,f]),D=(0,J.useCallback)(e=>{g.current&&(g.current.removeEventListener(`mouseenter`,S),g.current.removeEventListener(`mouseleave`,C),g.current.removeEventListener(`focusin`,w),g.current.removeEventListener(`focusout`,T),g.current.removeEventListener(`keydown`,E)),e&&(e.addEventListener(`mouseenter`,S),e.addEventListener(`mouseleave`,C),(a===`always`||a===`auto`&&OQ(e))&&(e.addEventListener(`focusin`,w),e.addEventListener(`focusout`,T)),e.addEventListener(`keydown`,E)),g.current=e},[a,S,C,w,T,E]),O=(0,J.useCallback)(e=>{f.ref(e),D(e)},[f,D]);(0,J.useEffect)(()=>()=>{y()},[y]),(0,J.useEffect)(()=>{l&&f.show()},[]),(0,J.useEffect)(()=>{c!==void 0&&(c?(y(),f.show()):(y(),f.hide()))},[c,y,f]);let k=(0,J.useCallback)((e,r)=>{let i=r?.placement??t,a=q(`hovercard`).className,o={placement:i,alignment:r?.alignment??n,offset:qt[`--spacing-1`],role:s?`dialog`:`group`,"aria-label":s||void 0,xstyle:[p,Lt[i],r?.xstyle],className:r?.className?`${a} ${r.className}`:a,style:r?.style,as:`span`};return f.render((0,Y.jsx)(`span`,{className:`x1lliihq x1vlblms xvmdzux x126nfab x1t818jl`,onMouseEnter:()=>{_.current=!0,y()},onMouseLeave:()=>{_.current=!1,x()},onKeyDown:e=>{e.key===`Escape`&&(e.stopPropagation(),v.current=!0,y(),f.hide(),g.current?.focus())},onBlur:e=>{let t=e.relatedTarget;e.currentTarget.contains(t)||g.current?.contains(t)||x()},children:e}),o)},[f,t,n,s,y,x,p]);return{ref:O,positionRef:f.ref,interactionRef:D,anchorId:f.anchorId,describedBy:f.id,renderHoverCard:k,show:f.show,hide:f.hide}}function AQ(e){return typeof e==`string`||typeof e==`number`}function jQ(...e){let t=e.filter(Boolean);return t.length>0?t.join(` `):void 0}function MQ({children:e,content:t,placement:n=`above`,alignment:r=`center`,delay:i=300,hideDelay:a=200,focusTrigger:o=`auto`,isEnabled:s=!0,label:c,onOpenChange:l,hasHoverIndication:u=`auto`,isOpen:d,isDefaultOpen:f,xstyle:p,className:m,style:h}){let g=(0,J.useRef)(null),_=AQ(e),v=u===!0||u===`auto`&&_,y=kQ({placement:n,alignment:r,delay:i,hideDelay:a,focusTrigger:o,isEnabled:s,label:c,isOpen:d,isDefaultOpen:f,onShow:(0,J.useCallback)(()=>{l?.(!0)},[l]),onHide:(0,J.useCallback)(()=>{l?.(!1)},[l])});Dt(()=>{if(_)return;let e=g.current;if(!e)return;let t=e.firstElementChild;if(!t)return;y.ref(t);let n=t.getAttribute(`aria-describedby`);return t.setAttribute(`aria-describedby`,jQ(n,y.describedBy)??``),()=>{y.ref(null),n?t.setAttribute(`aria-describedby`,n):t.removeAttribute(`aria-describedby`)}},[_,y.ref,y.describedBy]);let b=y.renderHoverCard(t,{xstyle:p,className:m,style:h});return _?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`span`,{ref:y.ref,tabIndex:0,"aria-describedby":y.describedBy,...{0:{className:`xt0psk2`},1:{className:`xt0psk2 xujl8zx xev0dqp xycaml9 x11b3rvo`}}[!!v<<0],children:e}),b]}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`span`,{ref:g,className:`xjp7ctv`,children:e}),b]})}MQ.displayName=`HoverCard`;function NQ(e){let t=e.split(`
246
- `).length,n=e.length;return t>1?`${t} lines, ${n} chars`:`${n} chars`}function PQ({text:e,onExpand:t}){let n=tp(),r=NQ(e),i=(0,Y.jsxs)(`div`,{className:`x78zum5 xdt5ytf x1txdalj x17fpy1y`,children:[(0,Y.jsx)(`div`,{className:`x9m5x89 x141an7d x1ltkj2j x1tgivj0 x126k92a x13faqbe x1xiyphd x1odjw0f`,children:e}),(0,Y.jsxs)(`div`,{className:`x78zum5 x6s0dn4 x1qughib x1txdalj`,children:[(0,Y.jsx)(`span`,{className:`x141an7d xv1l7n4`,children:r}),t&&(0,Y.jsx)(up,{label:n(`@astryx.chat.pastedText.expand`),variant:`ghost`,size:`sm`,onClick:t})]})]});return(0,Y.jsx)(MQ,{content:i,placement:`above`,alignment:`start`,hasHoverIndication:!1,children:(0,Y.jsx)(EQ,{label:r,variant:`neutral`})})}PQ.displayName=`ChatPastedTextToken`;function FQ(e){let t=e.split(`
247
- `).length,n=e.length;return{value:e,label:t>1?`${t} lines, ${n} chars`:`${n} chars`,variant:`neutral`}}function IQ({inputRef:e,threshold:t=200,toToken:n=FQ}){return{onPaste:(0,J.useCallback)((r,i)=>{if(i.length<=t)return!1;let a=n(i);return e.current?.insertToken(a),!0},[e,t,n])}}var LQ=(0,J.createContext)(null);LQ.displayName=`ChatMessageContext`;function RQ(){return(0,J.use)(LQ)}var zQ=(0,J.createContext)(null);zQ.displayName=`ChatListContext`;function BQ(){return(0,J.use)(zQ)}var VQ=(0,J.createContext)(null);VQ.displayName=`ChatComposerContext`;function HQ(){return(0,J.use)(VQ)}var UQ=(0,J.createContext)(null);UQ.displayName=`ChatLayoutContext`;function WQ(){return(0,J.use)(UQ)}var GQ=22,KQ={root:{kVAEAm:`x1n2onr6`,k1xSpc:`x78zum5`,kXwgrk:`xdt5ytf`,kAzted:`xe0957l`,$$css:!0},disabled:{kSiTet:`xbyyjgo`,kfzvcC:`x47corl`,$$css:!0}};function qQ(e){let t=window.getSelection();if(!t)return;let n=document.createRange();n.selectNodeContents(e),t.removeAllRanges(),t.addRange(n)}function JQ(e){let t=``;for(let n of Array.from(e.childNodes))n.nodeType===Node.TEXT_NODE?t+=n.textContent??``:n instanceof HTMLElement&&(n.hasAttribute(`data-astryx-token`)?t+=n.getAttribute(`data-astryx-token-value`)??``:n.tagName===`BR`?t+=`
248
- `:t+=JQ(n));return t}function YQ(e){let t=tp(),n=HQ(),r=e.value!==void 0,{ref:i,handleRef:a,value:o=n?.value,onChange:s,placeholder:c,maxRows:l=8,triggers:u,debounceMs:d=150,hasHistory:f=!0,label:p,isDisabled:m=n?.isDisabled??!1,onPaste:h,pasteAsToken:g,onFiles:_,onSubmit:v=n?.onSubmit,onKeyDown:y,xstyle:b,className:x,style:S,...C}=e,w=p??t(`@astryx.chat.composerInput.label`),T=c??n?.placeholder??t(`@astryx.chat.composer.placeholder`),E=n?.onChange,D=(0,J.useCallback)(e=>{if(r){s?.(e);return}E?.(e),s!==E&&s?.(e)},[E,r,s]),O=(0,J.useRef)(null),k=(0,J.useRef)(null),[A,j]=(0,J.useState)(!0),M=(0,J.useRef)([]),N=(0,J.useRef)(-1),P=(0,J.useRef)(``),F=(0,J.useRef)(void 0),I=(0,J.useRef)(()=>void 0),L=(0,J.useRef)(()=>{}),R={insertToken:e=>I.current(e),expandToken:e=>H.expandToken(e),insertText:e=>L.current(e),focus:()=>O.current?.focus(),getValue:()=>JQ(O.current??document.createElement(`div`))};k.current=R,(0,J.useImperativeHandle)(a,()=>R);let z=n?.inputControlRef;(0,J.useEffect)(()=>{if(z)return z.current={focus:()=>O.current?.focus()},()=>{z.current=null}},[z]),(0,J.useEffect)(()=>{if(o===void 0||!O.current)return;if(o===F.current){F.current=void 0;return}let e=O.current;if(JQ(e)!==o){F.current=void 0;let t=document.activeElement===e;if(e.textContent=o,t){let t=window.getSelection();if(t){let n=document.createRange();n.selectNodeContents(e),n.collapse(!1),t.removeAllRanges(),t.addRange(n)}}j(o.length===0)}else F.current=void 0},[o]);let B=(0,J.useRef)(null),V=(0,J.useCallback)(()=>{if(!O.current)return;let e=JQ(O.current),t=O.current.querySelector(`[data-astryx-token], [data-astryx-dictation-interim]`)!=null,n=e.trim().length===0&&!t,r=n?``:e;F.current=r,j(n),D?.(r),B.current?.()},[D]),H=CQ({editableRef:O,onEmitChange:V});B.current=H.cleanupPortals;let ee=IQ({inputRef:k}),te=g===!1?null:g??ee,ne=(0,J.useCallback)(e=>{let t=O.current;t&&bQ(t,e)},[]);I.current=H.insertToken,L.current=ne;let re=vQ({triggers:u,editableRef:O,onInsertToken:H.insertToken,onInsertText:ne,onEmitChange:V,debounceMs:d}),ie=(0,J.useCallback)(()=>{V(),re.handleInput()},[V,re]),ae=(0,J.useCallback)(e=>{if(!re.handleKeyDown(e)&&(y?.(e),!e.defaultPrevented)){if(e.key===`Backspace`){let t=window.getSelection();if(t&&t.isCollapsed&&t.rangeCount>0){let{startContainer:n,startOffset:r}=t.getRangeAt(0);if(!(n.nodeType===Node.TEXT_NODE&&r===0&&n.previousSibling instanceof HTMLElement&&n.previousSibling.hasAttribute(`data-astryx-token`))&&n.nodeType===Node.TEXT_NODE&&n.textContent===`\xA0`&&r<=1&&n.previousSibling instanceof HTMLElement&&n.previousSibling.hasAttribute(`data-astryx-token`)){e.preventDefault();let t=n.previousSibling,r=n.parentNode;r&&(r.removeChild(n),r.removeChild(t)),V();return}}}if(e.key===`Enter`&&!e.shiftKey){if(e.nativeEvent.isComposing||e.nativeEvent.keyCode===229||(e.preventDefault(),!O.current))return;let t=JQ(O.current).trim();if(!t)return;f&&(M.current.push(t),N.current=-1,P.current=``),v?.(t),O.current.textContent=``,j(!0),D?.(``);return}if(f&&(e.key===`ArrowUp`||e.key===`ArrowDown`)){if(!O.current)return;let t=JQ(O.current),n=M.current;if(n.length===0)return;if(e.key===`ArrowUp`){N.current===-1&&(P.current=t);let r=N.current===-1?n.length-1:Math.max(0,N.current-1);N.current=r,O.current.textContent=n[r],qQ(O.current),V(),e.preventDefault()}else if(e.key===`ArrowDown`&&N.current!==-1){let t=N.current+1;t>=n.length?(N.current=-1,O.current.textContent=P.current,P.current&&qQ(O.current)):(N.current=t,O.current.textContent=n[t],qQ(O.current)),V(),e.preventDefault()}}}},[f,v,D,V,re,y]),oe=(0,J.useCallback)(e=>{let t=O.current;if(!t||(yQ(t),H.handlePaste(e)))return;let n=Array.from(e.clipboardData.files);if(n.length>0){e.preventDefault(),_?.(n);return}e.preventDefault();let r=e.clipboardData.getData(`text/plain`);if(te?.onPaste(e,r)){V();return}if(h?.(e,r)){V();return}bQ(t,r),V()},[_,h,V,H,te]),se=l*GQ;return(0,Y.jsxs)(`div`,{ref:i,...Q(q(`chat-composer-input`),K(KQ.root,m&&KQ.disabled,b),x,S),...C,children:[A&&(0,Y.jsx)(`div`,{className:`x10l6tqk x13vifvy x1o0tod xtijo5x x47corl xv1l7n4 xjm74w1 x6pjikd x19v9tvf x9ynric x87ps6o x9epnlk`,"aria-hidden":`true`,children:T}),(0,Y.jsx)(`div`,{ref:O,"aria-multiline":`true`,"aria-label":w,contentEditable:!m,suppressContentEditableWarning:!0,onInput:ie,onKeyDown:ae,onPaste:oe,...re.ariaProps,...Q({className:`x1a2a7pz x126k92a x13faqbe x1odjw0f xjm74w1 x6pjikd x19v9tvf x9ynric x1tgivj0 xxugrtn x9epnlk`},{style:{maxHeight:`${se}px`}})}),re.renderMenu(),H.tokenPortals.filter(({span:e})=>e.isConnected).map(({id:e,span:t,token:n})=>(0,JP.createPortal)(xQ(n)?(0,Y.jsx)(`span`,{children:n.render()},e):n.value.length>(te===null?1/0:200)?(0,Y.jsx)(PQ,{text:n.value,onExpand:()=>H.expandToken(e)},e):(0,Y.jsx)(EQ,{label:n.label,variant:n.variant,icon:n.icon},e),t))]})}YQ.displayName=`ChatComposerInput`;var XQ={root:{kaIpWk:`xy0xnkn`,kmuXW:`x2lah0s`,$$css:!0}};function ZQ(e){let t=tp(),n=HQ(),{isStopShown:r=n?.isStopShown??!1,isDisabled:i=!(n?.canSend??!1),onSend:a,onStop:o=n?.onStop,sendIcon:s,stopIcon:c,size:l=`md`,xstyle:u,className:d,style:f,ref:p,...m}=e,h=a??(()=>n?.onSubmit(``)),g=Uu(`stop`),_=Uu(`arrowUp`);return(0,Y.jsx)(up,{ref:p,label:t(r?`@astryx.chatSendButton.stop`:`@astryx.chatSendButton.send`),variant:r?`secondary`:`primary`,size:l,icon:r?c??g:s??_,isIconOnly:!0,isDisabled:!r&&i,onClick:r?o:h,...m,...Q(q(`chat-send-button`),{className:d},f),xstyle:[XQ.root,u]})}ZQ.displayName=`ChatSendButton`;var QQ={body:{kVAEAm:`x1n2onr6`,kY2c9j:`xhtitgo`,k1xSpc:`x78zum5`,kXwgrk:`xdt5ytf`,kmVPX3:`x18oj4ui`,kOIVth:`x1txdalj`,kaIpWk:`x1xunbrq`,kWkggS:`x1prclbq`,kkrTdU:`x1ed109x`,kmkexE:`xrg7dcy`,$$css:!0},compact:{"--_chat-composer-padding":`x18zce08`,kOIVth:`xzye2dw`,$$css:!0}},$Q={low:{kGVxlE:`x1i5ehqx xhouywz`,knuKkz:`xyavpck`,$$css:!0},none:{kMzoRj:`x1litavf`,ksu8eU:`x1y0btm7`,kVAM5u:`xvy26l8 x6q1khz`,kmVPX3:`x1b50gpf`,kGVxlE:`x1gnnqk1 x12y27fx xuihb5h`,$$css:!0}};function e$(e){let t=tp(),{ref:n,onSubmit:r,onStop:i,isStopShown:a=!1,value:o,onChange:s,placeholder:c,isDisabled:l=!1,density:u=`balanced`,elevation:d=`low`,drawer:f,headerActions:p,headerContext:m,input:h,footerActions:g,sendActions:_,sendButton:v,status:y,statusPosition:b=`bottom`,xstyle:x,className:S,style:C,...w}=e,T=c??t(`@astryx.chat.composer.placeholder`),[E,D]=(0,J.useState)(``),O=o!==void 0,k=O?o:E,A=(0,J.useCallback)(e=>{O||D(e),s?.(e)},[O,s]),j=(0,J.useCallback)(()=>{let e=k.trim();!e||l||(r(e),A(``))},[k,l,r,A]),M=k.trim().length>0&&!l,N=(0,J.useRef)(null),P=(0,J.useRef)(null),F=(0,J.useCallback)(e=>{if(!e.target.closest(`button, a, [role="button"], [contenteditable="true"], [data-astryx-token]`)){if(P.current){P.current.focus();return}(N.current?.querySelector(`[contenteditable="true"], textarea`))?.focus()}},[]),I=y?(0,Y.jsxs)(`div`,{role:y.type===`error`?`alert`:`status`,...{0:{className:`x1n2onr6 x1ja2u2z x78zum5 x6s0dn4 x1txdalj x1pzlopt x141an7d x1ltkj2j x9ynric x1htvmrp xvpcij2 xckg3cf xkvxy4d x6k0y1c`},4:{className:`x1n2onr6 x1ja2u2z x78zum5 x6s0dn4 x1txdalj x1pzlopt x141an7d x1ltkj2j x9ynric x2gtn7z x9jihrk x1z0f2p2 xy7p8pm xzc3kxz`},2:{className:`x1n2onr6 x1ja2u2z x78zum5 x6s0dn4 x1txdalj x1pzlopt x141an7d x1ltkj2j x9ynric x1htvmrp xvpcij2 xckg3cf xkvxy4d x6k0y1c x1pritpl x1joocv1`},6:{className:`x1n2onr6 x1ja2u2z x78zum5 x6s0dn4 x1txdalj x1pzlopt x141an7d x1ltkj2j x9ynric x2gtn7z x9jihrk x1z0f2p2 xy7p8pm xzc3kxz x1pritpl x1joocv1`},1:{className:`x1n2onr6 x1ja2u2z x78zum5 x6s0dn4 x1txdalj x1pzlopt x141an7d x1ltkj2j x9ynric x1htvmrp xvpcij2 xckg3cf xkvxy4d x6k0y1c x24i8r5 xdhq94a`},5:{className:`x1n2onr6 x1ja2u2z x78zum5 x6s0dn4 x1txdalj x1pzlopt x141an7d x1ltkj2j x9ynric x2gtn7z x9jihrk x1z0f2p2 xy7p8pm xzc3kxz x24i8r5 xdhq94a`},3:{className:`x1n2onr6 x1ja2u2z x78zum5 x6s0dn4 x1txdalj x1pzlopt x141an7d x1ltkj2j x9ynric x1htvmrp xvpcij2 xckg3cf xkvxy4d x6k0y1c x24i8r5 xdhq94a`},7:{className:`x1n2onr6 x1ja2u2z x78zum5 x6s0dn4 x1txdalj x1pzlopt x141an7d x1ltkj2j x9ynric x2gtn7z x9jihrk x1z0f2p2 xy7p8pm xzc3kxz x24i8r5 xdhq94a`}}[(b===`top`)<<2|(y.type===`error`)<<1|(y.type===`warning`)<<0],children:[(0,Y.jsx)(Bu,{icon:y.type===`error`?`error`:`warning`,size:`md`,color:y.type===`error`?`error`:`warning`}),y.message]}):null,L=(0,J.useMemo)(()=>({value:k,onChange:A,onSubmit:j,placeholder:T,isDisabled:l,isStopShown:a,canSend:M,onStop:i,inputControlRef:P}),[k,A,j,T,l,a,M,i]);return(0,Y.jsx)(VQ,{value:L,children:(0,Y.jsxs)(`div`,{ref:n,...Q(q(`chat-composer`,{density:u}),{0:{className:`x1n2onr6 x1ja2u2z xc8icb0 x78zum5 xdt5ytf xx161y6 xk0ittl xcw7vlg`},1:{className:`x1n2onr6 x1ja2u2z xc8icb0 x78zum5 xdt5ytf xx161y6 xk0ittl xcw7vlg x197sbye x47corl`}}[!!l<<0],S,C),...w,children:[b===`top`&&I,f,(0,Y.jsxs)(`div`,{ref:N,onClick:F,...K(QQ.body,$Q[d],u===`compact`&&QQ.compact,x),children:[(p||m)&&(0,Y.jsxs)(`div`,{className:`x78zum5 x6s0dn4 x1qughib x1txdalj xe0p6wg`,children:[(0,Y.jsx)(`div`,{className:`x78zum5 x6s0dn4 xzye2dw`,children:p}),(0,Y.jsx)(`div`,{className:`x78zum5 x6s0dn4 x1txdalj xvc5jky x141an7d x1ltkj2j xv1l7n4`,children:m})]}),(0,Y.jsx)(`div`,{className:`x78zum5 xdt5ytf`,children:h??(0,Y.jsx)(YQ,{})}),(0,Y.jsxs)(`div`,{className:`x78zum5 x6s0dn4 x1qughib x1txdalj x21xpn4`,children:[(0,Y.jsx)(`div`,{className:`x78zum5 x6s0dn4 xzye2dw`,children:g}),(0,Y.jsxs)(`div`,{className:`x78zum5 x6s0dn4 xzye2dw`,children:[_,v??(0,Y.jsx)(ZQ,{})]})]})]}),b===`bottom`&&I]})})}e$.displayName=`ChatComposer`;var t$={root:{k1xSpc:`x78zum5`,kXwgrk:`xdt5ytf`,kUk6DE:`x98rzlu`,kAzted:`x2lwn1j`,$$css:!0},inner:{k1xSpc:`x78zum5`,kXwgrk:`xdt5ytf`,kUk6DE:`x98rzlu`,kAzted:`x2lwn1j`,$$css:!0},gapCompact:{kOIVth:`x1txdalj`,k8WAf4:`xce4md1`,kg3NbH:`xrrkdod`,$$css:!0},gapBalanced:{kOIVth:`x18g69wz`,k8WAf4:`x1na6nto`,kg3NbH:`x1pzlopt`,$$css:!0},gapSpacious:{kOIVth:`x1qh66ti`,k8WAf4:`xq6koh6`,kg3NbH:`xm7rs69`,$$css:!0}},n$={0:{kOIVth:`xsn7fz1`,$$css:!0},1:{kOIVth:`xzye2dw`,$$css:!0},2:{kOIVth:`x1txdalj`,$$css:!0},3:{kOIVth:`xjcht0a`,$$css:!0},4:{kOIVth:`x18g69wz`,$$css:!0},5:{kOIVth:`x9mgr7n`,$$css:!0},6:{kOIVth:`x1qh66ti`,$$css:!0},8:{kOIVth:`x4t41sb`,$$css:!0},10:{kOIVth:`x3hoi3v`,$$css:!0},"0.5":{kOIVth:`x1lsbc85`,$$css:!0},"1.5":{kOIVth:`x1s4dlld`,$$css:!0}};function r$({children:e,emptyState:t,scrollToTopAction:n,density:r=`balanced`,gap:i,isStreaming:a=!1,xstyle:o,className:s,style:c,"data-testid":l,ref:u,...d}){let f=WQ(),p=(0,J.useRef)(null),m=(0,J.useRef)(null),[h,g]=(0,J.useTransition)();(0,J.useEffect)(()=>{if(f?.contentRef&&m.current)return f.contentRef(m.current),()=>f.contentRef(null)},[f]);let _=e!=null&&e!==!1&&!(Array.isArray(e)&&e.length===0);(0,J.useEffect)(()=>{let e=f?.scrollContainerRef?.current;if(!n||!p.current)return;let t=new IntersectionObserver(e=>{e[0]?.isIntersecting&&g(async()=>{await n()})},{root:e??null,threshold:0});return t.observe(p.current),()=>t.disconnect()},[n,f]);let v=(0,J.useMemo)(()=>({density:r}),[r]),y=r===`compact`?t$.gapCompact:r===`spacious`?t$.gapSpacious:t$.gapBalanced,b=i==null?null:n$[i];return(0,Y.jsx)(zQ,{value:v,children:(0,Y.jsx)(`div`,{...d,ref:u,role:`log`,"aria-live":`polite`,"aria-busy":a||void 0,tabIndex:0,"data-testid":l,...Q(q(`chat-message-list`,{density:r}),K(t$.root,o),s,c),children:(0,Y.jsxs)(`div`,{ref:m,...K(t$.inner,y,b),children:[n&&(0,Y.jsx)(`div`,{ref:p,"aria-hidden":!0}),h&&(0,Y.jsx)(`div`,{className:`x78zum5 xl56j7k x8o8v82`,children:(0,Y.jsx)(pd,{size:`md`})}),(0,Y.jsx)(`div`,{className:`x98rzlu x2lwn1j`,"aria-hidden":!0}),_?e:t?(0,Y.jsx)(`div`,{className:`x78zum5 x6s0dn4 xl56j7k x98rzlu x2lwn1j`,children:t}):null]})})})}r$.displayName=`ChatMessageList`;var i$={root:{k1xSpc:`x78zum5`,kGNEyG:`x1cy8zhl`,ks0D6T:`x193iq5w`,$$css:!0},rootGapCompact:{kOIVth:`x1s4dlld`,$$css:!0},rootGapBalanced:{kOIVth:`x1txdalj`,$$css:!0},rootGapSpacious:{kOIVth:`xjcht0a`,$$css:!0},rootAssistant:{kXwgrk:`x1q0g3np`,kjj79g:`x1nhvcw1`,$$css:!0},rootUser:{kXwgrk:`x15zctf7`,kjj79g:`x1nhvcw1`,$$css:!0},rootSystem:{kXwgrk:`x1q0g3np`,kjj79g:`xl56j7k`,$$css:!0},contentColumn:{k1xSpc:`x78zum5`,kXwgrk:`xdt5ytf`,kUk6DE:`x98rzlu`,k7Eaqz:`xeuugli`,$$css:!0},contentColumnSystem:{ks0D6T:`xq8v1hd`,kGNEyG:`x6s0dn4`,$$css:!0},contentColumnAssistant:{kGNEyG:`x1cy8zhl`,$$css:!0},contentColumnUser:{kGNEyG:`xuk3077`,$$css:!0},childrenWrap:{k1xSpc:`x78zum5`,kXwgrk:`xdt5ytf`,k7Eaqz:`xeuugli`,kzqmXN:`xh8yej3`,$$css:!0},childrenAssistant:{kGNEyG:`x1cy8zhl`,$$css:!0},childrenUser:{kGNEyG:`xuk3077`,$$css:!0},childrenSystem:{kGNEyG:`x6s0dn4`,$$css:!0},childrenGapCompact:{kOIVth:`x1lsbc85`,$$css:!0},childrenGapBalanced:{kOIVth:`xzye2dw`,$$css:!0},childrenGapSpacious:{kOIVth:`x1s4dlld`,$$css:!0}};function a$({sender:e,children:t,avatar:n,name:r,metadata:i,density:a,xstyle:o,className:s,style:c,"data-testid":l,ref:u,...d}){let f=tp(),p=BQ(),m=a??p?.density??`balanced`,h=(0,J.useMemo)(()=>({sender:e,density:m}),[e,m]),g=m===`compact`?i$.rootGapCompact:m===`spacious`?i$.rootGapSpacious:i$.rootGapBalanced,_=m===`compact`?i$.childrenGapCompact:m===`spacious`?i$.childrenGapSpacious:i$.childrenGapBalanced,v=e===`system`?i$.rootSystem:e===`user`?i$.rootUser:i$.rootAssistant,y=e===`system`?i$.contentColumnSystem:e===`user`?i$.contentColumnUser:i$.contentColumnAssistant,b=e===`system`?i$.childrenSystem:e===`user`?i$.childrenUser:i$.childrenAssistant,x=e===`system`,S=n!=null&&!x,C=r!=null&&!x,w=(0,J.useId)();return(0,Y.jsx)(LQ,{value:h,children:(0,Y.jsxs)(`article`,{...d,ref:u,"data-testid":l,"aria-label":C?void 0:f(`@astryx.chatMessage.messageFrom`,{sender:e}),"aria-labelledby":C?w:void 0,...Q(q(`chat-message`,{sender:e,density:m}),K(i$.root,v,S&&g,o),s,c),children:[S&&(0,Y.jsx)(`div`,{className:`x2lah0s x5du68j`,children:n}),(0,Y.jsxs)(`div`,{...K(i$.contentColumn,y),children:[C&&(0,Y.jsx)(`div`,{id:w,className:`x141an7d x2mo6ok xv1l7n4 x1ltkj2j x14cgwvg`,children:r}),(0,Y.jsx)(`div`,{...K(i$.childrenWrap,b,_),children:t}),i!=null&&!x&&(0,Y.jsx)(`div`,{children:i})]})]})})}a$.displayName=`ChatMessage`;var o$={content:{k1xSpc:`x78zum5`,kXwgrk:`xdt5ytf`,ks0D6T:`xl6temz`,kaIpWk:`xashgol`,kMv6JI:`x9ynric`,kGuDYH:`xjm74w1`,kLWn49:`xw6l6zx`,kHjlTd:`x1mzt3pk`,kTgw9:`x13faqbe`,$$css:!0},radiusCompact:{kaIpWk:`x1hviunn`,$$css:!0},paddingCompact:{k8WAf4:`x8o8v82`,kg3NbH:`x1pzlopt`,$$css:!0},paddingBalanced:{k8WAf4:`x8o8v82`,kg3NbH:`x1pzlopt`,$$css:!0},paddingSpacious:{k8WAf4:`x1na6nto`,kg3NbH:`xzz68wx`,$$css:!0},paddingBlockNone:{k8WAf4:`xt970qd`,$$css:!0},metadataPaddingCompact:{kg3NbH:`x1pzlopt`,$$css:!0},metadataPaddingBalanced:{kg3NbH:`x1pzlopt`,$$css:!0},metadataPaddingSpacious:{kg3NbH:`xzz68wx`,$$css:!0},metadataReducedGap:{keoZOQ:`x1c40v9y`,$$css:!0},headerReducedGap:{k1K539:`xdrfirk`,$$css:!0},nameRow:{kZKoxP:`x1grt7ep`,k1xSpc:`x78zum5`,kGNEyG:`x6s0dn4`,$$css:!0},alignEnd:{k9WMMc:`xp4054r`,$$css:!0},assistant:{kWkggS:`x17x4s8c`,kMwMTN:`x1tgivj0`,$$css:!0},user:{kWkggS:`x17x4s8c`,kMwMTN:`x1tgivj0`,$$css:!0},ghost:{kWkggS:`xjbqb8w`,kMwMTN:`x1tgivj0`,$$css:!0},groupFirstAssistant:{kVL7Gh:`xrfs2vl`,$$css:!0},groupMiddleAssistant:{krdFHd:`x3qb8m`,kVL7Gh:`xrfs2vl`,$$css:!0},groupLastAssistant:{krdFHd:`x3qb8m`,$$css:!0},groupFirstUser:{kT0f0o:`x1whkvtz`,$$css:!0},groupMiddleUser:{kfmiAY:`x126per9`,kT0f0o:`x1whkvtz`,$$css:!0},groupLastUser:{kfmiAY:`x126per9`,$$css:!0}};function s$({children:e,variant:t=`filled`,name:n,metadata:r,group:i,xstyle:a,className:o,style:s,"data-testid":c,ref:l,...u}){let d=RQ(),f=d?.sender??`assistant`,p=d?.density??`balanced`,m=p===`compact`?o$.paddingCompact:p===`spacious`?o$.paddingSpacious:o$.paddingBalanced,h=f===`user`,g=t===`ghost`?o$.ghost:h?o$.user:o$.assistant,_=i===`first`?h?o$.groupFirstUser:o$.groupFirstAssistant:i===`middle`?h?o$.groupMiddleUser:o$.groupMiddleAssistant:i===`last`?h?o$.groupLastUser:o$.groupLastAssistant:null,v=p===`compact`?o$.metadataPaddingCompact:p===`spacious`?o$.metadataPaddingSpacious:o$.metadataPaddingBalanced;return(0,Y.jsxs)(Y.Fragment,{children:[n&&(0,Y.jsx)(`div`,{"data-chat-name":!0,...K(v,o$.nameRow,o$.headerReducedGap,h&&o$.alignEnd),children:n}),(0,Y.jsx)(`div`,{...u,ref:l,"data-testid":c,...Q(q(`chat-message-bubble`,{sender:f,variant:t,density:p}),K(o$.content,p===`compact`&&o$.radiusCompact,g,m,t===`ghost`&&o$.paddingBlockNone,_,a),o,s),children:e}),r&&(0,Y.jsx)(`div`,{...K(v,o$.metadataReducedGap,h&&o$.alignEnd),children:r})]})}s$.displayName=`ChatMessageBubble`;var c$=1e3/60;function l$({scrollRef:e,enabled:t=!0,lockThreshold:n=10,buttonThreshold:r=100,damping:i=.7,stiffness:a=.05,mass:o=1.25}){let[s,c]=(0,J.useState)(!1),[l,u]=(0,J.useState)(!0),d=(0,J.useRef)(!0),f=(0,J.useRef)(!0),p=(0,J.useRef)(0),m=(0,J.useRef)(!1),h=(0,J.useRef)(void 0),g=(0,J.useRef)(0),_=(0,J.useRef)(0),v=(0,J.useRef)(0),y=(0,J.useCallback)(()=>{let t=e.current;if(!t||!d.current){m.current=!1,h.current=void 0,p.current=0;return}if(t.scrollHeight<=t.clientHeight){m.current=!1,h.current=void 0,p.current=0;return}let n=t.scrollHeight-t.clientHeight,r=n-t.scrollTop;if(Math.abs(r)<.5&&Math.abs(p.current)<.1){t.scrollTop=n,m.current=!1,h.current=void 0,p.current=0;return}let s=performance.now(),c=h.current?(s-h.current)/c$:1;h.current=s,p.current=(i*p.current+a*r)/o,t.scrollTop+=p.current*c,requestAnimationFrame(y)},[e,i,a,o]),b=(0,J.useCallback)(()=>{let t=e.current;t&&(m.current=!1,p.current=0,h.current=void 0,t.scrollTop=t.scrollHeight-t.clientHeight,g.current=t.scrollTop)},[e]),x=Jn(`(prefers-reduced-motion: reduce)`),S=(0,J.useCallback)(()=>{if(d.current){if(x){b();return}m.current||(m.current=!0,h.current=void 0,requestAnimationFrame(y))}},[y,b,x]),C=(0,J.useCallback)(e=>{if(d.current=!0,u(!0),c(!1),f.current=!1,e?.behavior===`instant`){b();return}S()},[S,b]),w=(0,J.useCallback)(t=>{let n=e.current;if(!n)return;let r=n.getBoundingClientRect(),i=t.getBoundingClientRect().top-r.top+n.scrollTop;n.scrollTo({top:i,behavior:`instant`}),g.current=n.scrollTop},[e]),T=(0,J.useCallback)(()=>{let t=e.current;if(!t)return;let n=t.getElementsByClassName(`astryx-chat-message`),r=n[n.length-1];r instanceof HTMLElement&&w(r)},[e,w]),E=(0,J.useCallback)(()=>{d.current=!0,u(!0),c(!1),S()},[S]),D=(0,J.useCallback)(()=>{d.current=!1,m.current=!1,u(!1)},[]),O=(0,J.useCallback)(()=>{if(!t||!d.current)return;let n=e.current;if(f.current&&n&&n.scrollHeight>n.clientHeight){f.current=!1,b();return}S()},[t,S,b,e]);return(0,J.useEffect)(()=>{let i=e.current;if(!i||!t)return;g.current=i.scrollTop,_.current=i.scrollHeight,v.current=i.offsetHeight;let a=()=>{let{scrollTop:e,scrollHeight:t,offsetHeight:n}=i,a=t-e-n;c(a>r);let o=t!==_.current,s=n!==v.current;if(_.current=t,v.current=n,o||s){g.current=e;return}let l=e<g.current;g.current=e,l&&d.current&&(d.current=!1,m.current=!1,u(!1))},o=()=>{i.scrollHeight-i.scrollTop-i.offsetHeight<=n&&(d.current=!0,u(!0))},s=e=>{e.deltaY<0&&m.current&&(d.current=!1,m.current=!1,u(!1))},l=()=>{m.current&&(d.current=!1,m.current=!1,u(!1))};return i.addEventListener(`scroll`,a,{passive:!0}),i.addEventListener(`scrollend`,o),i.addEventListener(`wheel`,s,{passive:!0}),i.addEventListener(`touchmove`,l,{passive:!0}),requestAnimationFrame(()=>{i.scrollHeight>i.clientHeight&&(i.scrollTop=i.scrollHeight-i.clientHeight,g.current=i.scrollTop,f.current=!1)}),()=>{i.removeEventListener(`scroll`,a),i.removeEventListener(`scrollend`,o),i.removeEventListener(`wheel`,s),i.removeEventListener(`touchmove`,l)}},[e,t,n,r]),{isScrolledUp:s,isLocked:l,scrollToBottom:C,scrollToMessage:w,lock:E,unlock:D,scrollIfLocked:O,scrollToLastMessage:T}}function u$({isLocked:e,onResize:t}){let[n,r]=(0,J.useState)(!1),i=(0,J.useRef)(null),a=(0,J.useRef)(e);a.current=e;let o=(0,J.useRef)(t);o.current=t;let s=(0,J.useRef)(null),c=(0,J.useRef)(null),l=(0,J.useCallback)(e=>{uu(e,()=>{o.current?.();let t=e.getElementsByClassName(`astryx-chat-message`),n=t.length>0?t[t.length-1]:null;n&&n!==i.current&&(i.current=n,a.current||r(!0))}),c.current=()=>du(e)},[]),u=(0,J.useCallback)(()=>{c.current?.(),c.current=null},[]),d=(0,J.useCallback)(e=>{e!==s.current&&(u(),s.current=e,e&&l(e))},[l,u]);return(0,J.useEffect)(()=>()=>u(),[u]),{hasNewMessages:n,dismiss:(0,J.useCallback)(()=>{r(!1)},[]),contentRef:d}}var d$={root:{k1xSpc:`x78zum5`,kXwgrk:`xdt5ytf`,keoZOQ:`xtbrsbv`,$$css:!0},chevronTransition:{kmkexE:`x1ob6yzd x9kvfbb`,$$css:!0},chevronExpanded:{k3aq6I:`x19jd1h0`,$$css:!0},statusIcon:{kVAEAm:`x1n2onr6`,k1xSpc:`x3nfvp2`,kGNEyG:`x6s0dn4`,kjj79g:`xl56j7k`,kmuXW:`x2lah0s`,kzqmXN:`x1kky2od`,kZKoxP:`xlup9mm`,kaIpWk:`xjspbzw`,$$css:!0},nodePill:{kmuXW:`x2lah0s`,$$css:!0},colorPending:{kMwMTN:`xnbbluu`,$$css:!0},colorRunning:{kMwMTN:`xqwr325`,$$css:!0},colorComplete:{kMwMTN:`xtjic6`,$$css:!0},colorError:{kMwMTN:`xjt36v0`,$$css:!0}},f$={pending:`clock`,running:null,complete:`check`,error:`close`},p$={pending:d$.colorPending,running:d$.colorRunning,complete:d$.colorComplete,error:d$.colorError};function m$(e){return nu(e.key,()=>[e.name,e.status??`complete`,e.target??``,e.node??``,e.duration??``,e.additions?.toString()??``,e.deletions?.toString()??``,e.errorMessage??``].join(``))}function h$({call:e}){let t=tp(),n=e.status??`complete`,r=e.resultDetail!=null,[i,a]=(0,J.useState)(!1),o=(0,J.useId)(),s=r?()=>a(e=>!e):void 0,c=(0,Y.jsxs)(`div`,{role:r?`button`:void 0,tabIndex:r?0:void 0,"aria-expanded":r?i:void 0,"aria-controls":r&&i?o:void 0,onClick:s,onKeyDown:r?e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),s?.())}:void 0,...{0:{className:`x78zum5 x6s0dn4 x1s4dlld xjwf9q1 x13f7esw`},1:{className:`x78zum5 x6s0dn4 x1s4dlld xjwf9q1 x13f7esw x1ypdohk xh6dtrn x7a5moj xtedp8i xe9uy6x`}}[!!r<<0],children:[(0,Y.jsxs)(`span`,{title:n===`error`?e.errorMessage:void 0,...K(d$.statusIcon,p$[n]),children:[n===`running`||n===`pending`?(0,Y.jsx)(pd,{size:`sm`,shade:`subtle`}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`span`,{className:`x10l6tqk x10a8y8t x1pjcqnp xtwfq29 x1xyvc85`}),(0,Y.jsx)(`span`,{className:`x1n2onr6 x3nfvp2`,children:(0,Y.jsx)(Bu,{icon:f$[n]??`check`,size:`xsm`,color:`inherit`})})]}),n===`error`&&e.errorMessage!=null&&(0,Y.jsx)(md,{children:t(`@astryx.chatToolCalls.error`,{message:e.errorMessage??``})})]}),(0,Y.jsx)(`span`,{className:`x141an7d x1ltkj2j x9m5x89 x1e4wzip xv1l7n4 xuxw1ft xb3r6kr xlyipyv xs83m0k x13n9wmd`,children:e.name}),e.node!=null&&(0,Y.jsx)(EQ,{label:e.node,variant:`neutral`,xstyle:d$.nodePill}),e.target!=null&&(0,Y.jsx)(`span`,{className:`x141an7d x1ltkj2j x9ynric xnbbluu xuxw1ft xb3r6kr xlyipyv x1g3ib7 xeuugli`,children:e.target}),(e.additions!=null||e.deletions!=null||e.stats!=null)&&(0,Y.jsxs)(`span`,{className:`x78zum5 x6s0dn4 xzye2dw x141an7d x1ltkj2j x9ynric xnbbluu x2lah0s`,children:[e.additions!=null&&(0,Y.jsxs)(`span`,{className:`xtjic6`,children:[`+`,e.additions]}),e.deletions!=null&&(0,Y.jsxs)(`span`,{className:`xjt36v0`,children:[`-`,e.deletions]}),e.stats]}),e.duration!=null&&n===`complete`&&(0,Y.jsx)(`span`,{className:`x141an7d x1ltkj2j x9ynric xnbbluu xuxw1ft x2lah0s`,children:e.duration}),r&&(0,Y.jsx)(`span`,{className:`x3nfvp2 x6s0dn4 xl56j7k x2lah0s x6jxa94 x1v9usgg xnbbluu xvc5jky`,children:(0,Y.jsx)(Bu,{icon:`chevronDown`,size:`xsm`,color:`inherit`,xstyle:[d$.chevronTransition,i&&d$.chevronExpanded]})})]});return r?(0,Y.jsxs)(`div`,{children:[c,i&&(0,Y.jsx)(`div`,{id:o,className:`x1f43n9v x1wesfrj`,children:e.resultDetail})]}):c}function g$(e){let t=tp(),{calls:n,label:r,isExpanded:i,defaultIsExpanded:a,onExpandedChange:o,xstyle:s,className:c,style:l,ref:u,...d}=e,[f,p]=(0,J.useState)(a??!1),m=(0,J.useId)(),h=i!==void 0,g=h?i:f,_=(0,J.useCallback)(()=>{let e=!g;h||p(e),o?.(e)},[g,h,o]);if(n.length===0)return null;if(n.length===1)return(0,Y.jsx)(`div`,{ref:u,...Q(q(`chat-tool-calls`),K(d$.root,s),c,l),...d,children:(0,Y.jsx)(h$,{call:n[0]})});let v=n[n.length-1],y=v.status??`complete`;return(0,Y.jsxs)(`div`,{ref:u,...Q(q(`chat-tool-calls`),K(d$.root,s),c,l),...d,children:[(0,Y.jsxs)(`div`,{role:`button`,tabIndex:0,"aria-expanded":g,"aria-controls":m,onClick:_,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),_())},className:`x78zum5 x6s0dn4 x1s4dlld xjwf9q1 x13f7esw x1ypdohk`,children:[g?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`span`,{className:`x3nfvp2 x6s0dn4 xl56j7k x2lah0s x1kky2od xlup9mm xv1l7n4`,children:(0,Y.jsx)(Bu,{icon:`wrench`,size:`sm`,color:`inherit`})}),(0,Y.jsx)(`span`,{className:`x141an7d x1ltkj2j x9ynric x1e4wzip xv1l7n4`,children:t(`@astryx.chatToolCalls.groupLabel`,{count:n.length})})]}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`span`,{...K(d$.statusIcon,p$[y]),children:y===`running`||y===`pending`?(0,Y.jsx)(pd,{size:`sm`,shade:`subtle`}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`span`,{className:`x10l6tqk x10a8y8t x1pjcqnp xtwfq29 x1xyvc85`}),(0,Y.jsx)(`span`,{className:`x1n2onr6 x3nfvp2`,children:(0,Y.jsx)(Bu,{icon:f$[y]??`check`,size:`xsm`,color:`inherit`})})]})}),(0,Y.jsx)(`span`,{className:`x141an7d x1ltkj2j x9m5x89 x1e4wzip xv1l7n4 xuxw1ft xb3r6kr xlyipyv xs83m0k x13n9wmd`,children:v.name}),v.target!=null&&(0,Y.jsx)(`span`,{className:`x141an7d x1ltkj2j x9ynric xnbbluu xuxw1ft xb3r6kr xlyipyv x1g3ib7 xeuugli`,children:v.target})]}),(0,Y.jsx)(`span`,{className:`x3nfvp2 x6s0dn4 x1lsbc85 x141an7d x1ltkj2j x9ynric xnbbluu x2lah0s`,children:!g&&(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(Bu,{icon:`wrench`,size:`xsm`,color:`inherit`}),n.length]})}),(0,Y.jsx)(`span`,{className:`x3nfvp2 x6s0dn4 xl56j7k x2lah0s x6jxa94 x1v9usgg xnbbluu`,children:(0,Y.jsx)(Bu,{icon:`chevronDown`,size:`xsm`,color:`inherit`,xstyle:[d$.chevronTransition,g&&d$.chevronExpanded]})})]}),(0,Y.jsx)(`div`,{id:m,...{0:{className:`xrvj5dj xihq33y xb0j27v x9kvfbb`},1:{className:`xrvj5dj xb0j27v x9kvfbb x1tu4anv`}}[!!g<<0],children:(0,Y.jsx)(`div`,{className:`xb3r6kr x2lwn1j x7a5moj xtedp8i`,children:(0,Y.jsx)(`div`,{className:`x78zum5 xdt5ytf x7a5moj xtedp8i`,children:n.map(e=>(0,Y.jsx)(h$,{call:e},m$(e)))})})})]})}g$.displayName=`ChatToolCalls`;var _$={wrapper:{k1xSpc:`x78zum5`,kjj79g:`xl56j7k`,kGO01o:`xvmdzux`,$$css:!0},button:{"--radius-element":`xnpej1e`,khDVqt:`xuxw1ft`,kg3NbH:`xf314gf`,$$css:!0},buttonWithLabel:{kwRFfy:`x1t818jl`,$$css:!0}};function v$({ref:e,isVisible:t,label:n,onClick:r,xstyle:i,className:a,style:o,...s}){let c=tp();return(0,Y.jsx)(`div`,{ref:e,...Q(q(`chat-layout-scroll-button`),K(_$.wrapper,i),a,o),...s,children:(0,Y.jsx)(`div`,{...{0:{className:`xawy1a7 xb3r6kr xjspbzw x1prclbq x14hfi27 x10w6t97 x1apppo2 xlr8y92 x2rcmwa x12w9bfk xg01cxk x47corl x1x67gh`},2:{className:`xawy1a7 xb3r6kr xjspbzw x1prclbq x14hfi27 x10w6t97 x1apppo2 xlr8y92 x2rcmwa x12w9bfk x1hc1fzr x67bb7w x1x67gh`},1:{className:`xawy1a7 xb3r6kr xjspbzw x1prclbq x14hfi27 x10w6t97 x1apppo2 xlr8y92 x2rcmwa x12w9bfk xg01cxk x47corl x1ncir08`},3:{className:`xawy1a7 xb3r6kr xjspbzw x1prclbq x14hfi27 x10w6t97 x1apppo2 xlr8y92 x2rcmwa x12w9bfk x1hc1fzr x67bb7w x1ncir08`}}[!!t<<1|!!n<<0],children:(0,Y.jsx)(up,{label:n??c(`@astryx.chatLayoutScrollButton.scrollToBottom`),"aria-label":n??c(`@astryx.chatLayoutScrollButton.scrollToBottom`),icon:(0,Y.jsx)(Bu,{icon:`chevronDown`,size:`md`}),variant:`ghost`,size:`md`,isIconOnly:!n,onClick:r,xstyle:[_$.button,n?_$.buttonWithLabel:null],children:n??void 0})})})}v$.displayName=`ChatLayoutScrollButton`;var y$={root:{kVAEAm:`x1n2onr6`,k9g6sI:`x12h1iku`,kAzted:`x2lwn1j`,kUk6DE:`x98rzlu`,k1xSpc:`x78zum5`,kXwgrk:`xdt5ytf`,$$css:!0},rootScrollable:{kORKVm:`x1odjw0f`,kXHlph:`x6ikm8r`,k5wCbM:`x1mqgsch`,$$css:!0},messageArea:{k1xSpc:`x78zum5`,kXwgrk:`xdt5ytf`,kUOVxO:`xvueqy4`,kzQI83:`x1iyjqo2`,kmuXW:`x2lah0s`,kCS8Yb:`xdl72j9`,kGO01o:`xjpqqx5`,kzqmXN:`xh8yej3`,ks0D6T:`x193iq5w`,kg3NbH:`xnjsko4`,$$css:!0},blurLayer:{kVAEAm:`x10l6tqk`,krVfgx:`x1ey2m1c`,kLqNvP:`x1o0tod`,kt4wiu:`xtijo5x`,kfzvcC:`x47corl`,k6WDB:`xvn2z4z`,keRtuK:`x67t5t6`,kZKoxP:`xpyat2d`,kX1K2I:`xw26lqc`,kAExgp:`x1bv1mxo`,$$css:!0},dock:{kVAEAm:`x1n2onr6`,kY2c9j:`x1vjfegm`,kfzvcC:`x67bb7w`,kg3NbH:`xrrkdod`,kGO01o:`xvmdzux`,$$css:!0},dockInner:{kUOVxO:`xvueqy4`,kzqmXN:`xh8yej3`,ks0D6T:`x193iq5w`,$$css:!0},messageAreaCompact:{ks0D6T:`x193iq5w`,kg3NbH:`xnjsko4`,$$css:!0},messageAreaBalanced:{ks0D6T:`x193iq5w`,kg3NbH:`xnjsko4`,$$css:!0},messageAreaSpacious:{ks0D6T:`x1ap80js`,kg3NbH:`x1pzlopt`,$$css:!0},blurLayerCompact:{kZKoxP:`xwzfr38`,kX1K2I:`xkm2don`,kAExgp:`xiy8rlo`,$$css:!0},blurLayerBalanced:{kZKoxP:`xpyat2d`,kX1K2I:`xw26lqc`,kAExgp:`x1bv1mxo`,$$css:!0},blurLayerSpacious:{kZKoxP:`x1wkxgih`,kX1K2I:`xr5yg4x`,kAExgp:`xo9xo30`,$$css:!0},dockCompact:{kg3NbH:`xf314gf`,kGO01o:`x1wesfrj`,$$css:!0},dockBalanced:{kg3NbH:`xrrkdod`,kGO01o:`xvmdzux`,$$css:!0},dockSpacious:{kg3NbH:`x1pzlopt`,kGO01o:`xvmdzux`,$$css:!0},dockInnerCompact:{ks0D6T:`x193iq5w`,$$css:!0},dockInnerBalanced:{ks0D6T:`x193iq5w`,$$css:!0},dockInnerSpacious:{ks0D6T:`x1ap80js`,$$css:!0}};function b$(e){return!(e==null||e===!1||Array.isArray(e)&&e.length===0)}function x$({children:e,composer:t,density:n=`balanced`,emptyState:r,scrollButton:i,scrollRef:a,xstyle:o,className:s,style:c,"data-testid":l,ref:u,...d}){let f=tp(),p=(0,J.useRef)(null),m=a??p,h=!a,g=l$({scrollRef:m}),_=u$({isLocked:g.isLocked,onResize:g.scrollIfLocked}),v=(0,Y.jsx)(v$,{isVisible:g.isScrolledUp||_.hasNewMessages,label:_.hasNewMessages?f(`@astryx.chatLayout.newMessages`):void 0,onClick:()=>{_.dismiss(),g.scrollToBottom()}}),y=(0,J.useMemo)(()=>({scrollContainerRef:m,contentRef:_.contentRef}),[m,_.contentRef]),b=!b$(e),x={compact:{messageArea:y$.messageAreaCompact,blurLayer:y$.blurLayerCompact,dock:y$.dockCompact,dockInner:y$.dockInnerCompact},balanced:{messageArea:y$.messageAreaBalanced,blurLayer:y$.blurLayerBalanced,dock:y$.dockBalanced,dockInner:y$.dockInnerBalanced},spacious:{messageArea:y$.messageAreaSpacious,blurLayer:y$.blurLayerSpacious,dock:y$.dockSpacious,dockInner:y$.dockInnerSpacious}}[n];return(0,Y.jsx)(UQ,{value:y,children:(0,Y.jsxs)(`div`,{...d,ref:iu(u,p),"data-testid":l,...Q(q(`chat-layout`,{density:n}),K(y$.root,h&&y$.rootScrollable,o),s,c),children:[(0,Y.jsx)(`div`,{...K(y$.messageArea,x.messageArea),children:b&&r?(0,Y.jsx)(`div`,{className:`x78zum5 x6s0dn4 xl56j7k x98rzlu xz65tgg`,children:r}):e}),(0,Y.jsxs)(`div`,{...{0:{className:`x1ey2m1c x1o0tod xtijo5x x1ja2u2z xc8icb0 x47corl x2lah0s xixxii4`},1:{className:`x1ey2m1c x1o0tod xtijo5x x1ja2u2z xc8icb0 x47corl x2lah0s x7wzq59`}}[!!h<<0],children:[i===void 0?v:i,(0,Y.jsx)(`div`,{...K(y$.blurLayer,x.blurLayer)}),(0,Y.jsx)(`div`,{...K(y$.dock,x.dock),children:(0,Y.jsx)(`div`,{...K(y$.dockInner,x.dockInner),children:t})})]})]})})}x$.displayName=`ChatLayout`;var S$=`draft_mutation`;function C$(e,t){return e||t}function w$(e){return e.map((e,t)=>{let n={mutationId:e.id,summary:e.summary,affectedStageIds:e.affectedStageIds};return{type:`tool-call`,toolCallId:`mutation-${e.id}-${t}`,toolName:S$,args:n,argsText:JSON.stringify(n),result:{status:`applied`}}})}var T$=`Chat failed:`;function E$(e){return e.trim().length>0}function D$(e){return e===`user`||e===`system`||e===`assistant`?e:`assistant`}function O$(e){return typeof e==`string`?e?[{type:`text`,text:e}]:[]:e}function k$(e){if(!e||typeof e!=`object`)return null;let t=typeof e.mutationId==`string`?e.mutationId:``,n=typeof e.summary==`string`?e.summary:``,r=Array.isArray(e.affectedStageIds)?e.affectedStageIds.filter(e=>typeof e==`string`):[];return t?{mutationId:t,summary:n,affectedStageIds:r}:null}function A$(e){let t=[];for(let n of e){let e=D$(n.role),r=O$(n.content),i=r.filter(e=>e.type===`text`&&typeof e.text==`string`),a=i.find(e=>e.text.startsWith(T$));if(a){t.push({kind:`text`,role:e,text:a.text});continue}let o=i.map(e=>e.text).join(``);o&&t.push({kind:`text`,role:e,text:o});for(let e of r){if(e.type!==`tool-call`||e.toolName!==`draft_mutation`)continue;let n=k$(e.args);n&&t.push({kind:`draft_mutation`,toolCallId:typeof e.toolCallId==`string`&&e.toolCallId?e.toolCallId:`mutation-${n.mutationId}`,args:n})}}return t}function j$(e,t){if(t.length===0)return e?[{kind:`text`,text:e}]:[];let n=[...t].sort((e,t)=>e.textOffset-t.textOffset),r=[];for(let t of n){let n=Math.max(0,Math.min(t.textOffset,e.length)),i=r[r.length-1];i&&i.offset===n?i.calls.push({...t,textOffset:n}):r.push({offset:n,calls:[{...t,textOffset:n}]})}let i=[],a=0;for(let t of r)t.offset>a&&i.push({kind:`text`,text:e.slice(a,t.offset)}),i.push({kind:`tools`,calls:t.calls}),a=t.offset;return a<e.length?i.push({kind:`text`,text:e.slice(a)}):i.length===0&&e&&i.push({kind:`text`,text:e}),i}function M$(e,t){if(t!==1)return e===0?`first`:e===t-1?`last`:`middle`}function N$(e){return typeof e.content==`string`||Array.isArray(e.content)?e.content:Array.isArray(e.parts)?e.parts:[]}function P$(e,t){return(0,Y.jsx)(g$,{calls:t.map(e=>({key:e.id,name:e.name,status:e.status,target:e.target,errorMessage:e.errorMessage}))},e)}function F$({greeting:e,toolActivity:t=[],MutationCard:n,composerActions:r,onStop:i}){let a=Zt(),o=Yt(e=>e.thread.isRunning),s=Yt(e=>e.thread.isEmpty),c=Yt(e=>e.thread.messages),l=Yt(e=>e.composer.text),u=A$(c.map(e=>({role:e.role,content:N$(e)}))),d=-1;for(let e=u.length-1;e>=0;--e){let t=u[e];if(t.kind===`text`&&t.role===`user`)break;if(t.kind===`text`&&t.role===`assistant`){d=e;break}}let f=d>=0,p=o&&!f&&t.length===0,m=(0,Y.jsx)(e$,{value:l,onChange:e=>a.composer.setText(e),onSubmit:e=>{o||E$(e)&&(a.composer.setText(e),a.composer.send())},onStop:i,isStopShown:o,placeholder:`Describe a stage or workflow change…`,footerActions:r,density:`compact`});if(s)return(0,Y.jsxs)(HT,{height:`100%`,minHeight:0,gap:3,padding:3,children:[(0,Y.jsx)(JT,{size:`fill`,children:(0,Y.jsx)(HT,{height:`100%`,vAlign:`center`,hAlign:`center`,padding:3,children:(0,Y.jsx)(ld,{type:`body`,justify:`center`,as:`p`,children:e})})}),m]});let h=[],g=[],_=[],v=()=>{if(g.length===0)return;let e=g;g=[],h.push((0,Y.jsx)(a$,{sender:`user`,children:e.map((t,n)=>(0,Y.jsx)(s$,{group:M$(n,e.length),children:t},n))},`user-${h.length}`))},y=()=>{if(_.length===0)return;let e=_;_=[],h.push((0,Y.jsx)(a$,{sender:`assistant`,children:e},`assistant-${h.length}`))};for(let e=0;e<u.length;e+=1){let r=u[e];if(r.kind===`text`&&r.role===`user`){y(),g.push(r.text);continue}if(r.kind===`text`&&r.role===`assistant`){if(v(),e===d&&t.length>0){let n=j$(r.text,t);for(let[t,r]of n.entries())if(r.kind===`text`){if(!r.text)continue;_.push((0,Y.jsx)(s$,{variant:`ghost`,children:(0,Y.jsx)(jb,{isStreaming:!1,density:`compact`,contentWidth:`100%`,children:r.text})},`text-${_.length}`))}else y(),h.push(P$(`tools-${e}-${t}`,r.calls))}else _.push((0,Y.jsx)(s$,{variant:`ghost`,children:(0,Y.jsx)(jb,{isStreaming:!1,density:`compact`,contentWidth:`100%`,children:r.text})},`text-${_.length}`));continue}if(r.kind===`text`){v(),y(),h.push((0,Y.jsx)(a$,{sender:`system`,children:(0,Y.jsx)(ld,{type:`supporting`,children:r.text})},`system-${h.length}`));continue}r.kind===`draft_mutation`&&(v(),_.push((0,Y.jsx)(n,{args:r.args},r.toolCallId)))}return v(),y(),!f&&t.length>0&&h.push(P$(`tool-activity`,t)),p&&h.push((0,Y.jsx)(a$,{sender:`assistant`,children:(0,Y.jsx)(s$,{variant:`ghost`,children:(0,Y.jsx)(ld,{type:`supporting`,children:`Working…`})})},`in-progress`)),(0,Y.jsx)(x$,{composer:m,children:(0,Y.jsx)(r$,{isStreaming:o,density:`compact`,gap:2,children:h})})}function I$({seedMessages:e,adapter:t,greeting:n,toolActivity:r,MutationCard:i,composerActions:a,onStop:o}){let s=Xt(t,{initialMessages:e});return(0,Y.jsx)(`div`,{className:`workshop-lab__aui-island`,children:(0,Y.jsx)(ct,{runtime:s,children:(0,Y.jsx)(`div`,{className:`workshop-lab__aui-thread-wrap`,children:(0,Y.jsx)(F$,{greeting:n,toolActivity:r,MutationCard:i,composerActions:a,onStop:o})})})})}function L$(){return{pipeline:{id:`untitled`,stages:[]}}}function R$(e){return(e?.trim()??``)||`Untitled`}function z$(e){return e.id?`build:${e.id}`:`path:${encodeURIComponent(e.projectRoot??``)}/${encodeURIComponent(e.relativePath??``)}`}function B$(e){return e.relativePath?`${e.name} · ${e.relativePath}`:e.name}function V$(e,t){return typeof t!=`string`||t.length===0?!1:e===null||t===e}function H$(e,t,n){return V$(e,t)?e===null?{kind:`adopt-pointer`,buildId:t,draft:n}:{kind:`set-draft`,draft:n}:{kind:`ignore`}}function U$(e){return{buildId:null,draft:L$(),rows:e.map(e=>({...e})),error:null}}function W$(e){let t=e.rows.map(e=>({...e}));return e.activeBuildId?!e.build||e.build.id!==e.activeBuildId?{buildId:null,draft:L$(),rows:t,error:e.error??`Build not found`}:{buildId:e.build.id,draft:e.build.draft,rows:Z$(t,e.build),error:null}:{buildId:null,draft:L$(),rows:t,error:null}}function G$(e,t){return e?t.find(t=>t.id===e)?.name??`Untitled`:null}function K$(e,t){let n=e.rows.find(e=>e.id===t.buildId);return X$(e,{id:t.buildId,draft:t.draft,projectRoot:n?.projectRoot??null,relativePath:n?.relativePath??null})}function q$(e,t){let n=e.map(e=>({...e}));return!t?.id||n.some(e=>e.id===t.id)?n:[...n,{...t}]}function J$(e,t,n){return e.sessionId!==t.sessionId||e.buildId!==t.buildId?new Map:n}async function Y$(e){if(e.row.id){let t=await e.loadBuild(e.row.id);if(!t.ok)return{selection:{...e.selection,error:t.error},changed:!1};let n=await e.updatePointer(e.sessionId,t.build.id);if(!n.ok)return{selection:{...e.selection,error:n.error},changed:!1};let r=X$(e.selection,t.build);return{selection:r,changed:r.buildId!==e.selection.buildId}}if(!e.row.projectRoot||!e.row.relativePath)return{selection:e.selection,changed:!1};let t=await e.focus(e.row);if(!t.ok)return{selection:{...e.selection,error:t.error},changed:!1};let n=await e.updatePointer(e.sessionId,t.build.id);if(!n.ok)return{selection:{...e.selection,error:n.error},changed:!1};let r=X$(e.selection,t.build);return{selection:r,changed:r.buildId!==e.selection.buildId}}function X$(e,t){return{buildId:t.id,draft:t.draft,rows:Z$(e.rows,t),error:null}}function Z$(e,t){let n={id:t.id,name:R$(t.draft.pipeline.id),projectRoot:t.projectRoot,relativePath:t.relativePath},r=t.projectRoot&&t.relativePath?`${t.projectRoot}\0${t.relativePath}`:null,i=!1,a=[];for(let o of e){let e=o.id!=null&&o.id===t.id,s=r!=null&&o.projectRoot===t.projectRoot&&o.relativePath===t.relativePath;if(e||s){i||=(a.push(n),!0);continue}a.push({...o})}return i||a.push(n),a}var Q$=`…`;function $$(e){if(!e)return null;let t=e instanceof Date?e:new Date(e);return Number.isNaN(t.getTime())?null:t}function e1(e){return e.some(e=>e.kind===`text`&&e.text.trim().length>0&&e.text.trim()!==Q$)}function t1(e){let{messages:t,isRunning:n}=e,r=e.toolActivity??[],i=-1;t.forEach((e,t)=>{e.role===`user`&&(i=t)});let a=-1;for(let e=t.length-1;e>i;--e)if(t[e].role===`assistant`){a=e;break}let o=[];return t.forEach((e,t)=>{let i=e.id??`m-${t}`,s=A$([e]),c=s.filter(e=>e.kind===`text`).map(e=>e.text).join(``),l=s.filter(e=>e.kind===`draft_mutation`),u=$$(e.createdAt);if(e.role===`user`){o.push({kind:`user`,key:i,text:c,createdAt:u,attachments:XA(e.metadata?.custom?.attachments)});return}if(e.role===`system`){c&&o.push({kind:`system`,key:i,text:c});return}let d=t===a,f=c===Q$?``:c,p=d&&r.length>0?j$(f,r):f?[{kind:`text`,text:f}]:[],m=d&&n;o.push({kind:`agent`,key:i,createdAt:u,segments:p,mutations:l,failed:c.startsWith(T$),streaming:m,working:m&&!e1(p)&&r.length===0})}),a<0&&i>=0&&(n||r.length>0)&&o.push({kind:`agent`,key:`pending-agent`,createdAt:null,segments:r.length>0?[{kind:`tools`,calls:[...r]}]:[],mutations:[],failed:!1,streaming:n,working:n&&r.length===0}),o}function n1(e){return e?e.toLocaleTimeString(`en-US`,{hour:`numeric`,minute:`2-digit`}):null}function r1(e){let t=n1(e);return t?`you · ${t}`:`you`}function i1(e){let t=e.mutations??[];if(t.length===0)return e.text;let n=w$(t.map(e=>({id:e.id,summary:e.summary,affectedStageIds:e.affectedStageIds})));return e.text.trim()?[{type:`text`,text:e.text},...n]:n}function a1(e){return e.map(e=>{let t=e.role===`user`||e.role===`system`||e.role===`assistant`?e.role:`assistant`,n=$$(e.createdAt),r=XA(e.attachments);return{role:t,content:i1(e),...n?{createdAt:n}:{},...t===`user`&&r.length>0?{metadata:{custom:{attachments:r}}}:{}}})}function o1(e,t){let n=e.trim();return n?typeof t==`number`&&Number.isFinite(t)?`${n}:${t}`:n:`—`}var s1={invalid_completion:`verify`,invalid_verify:`verify`,invalid_pre_emit_checks:`verify`,invalid_recovery:`on_verify_fail`,io_incompatible:`io`,invalid_io:`io`,invalid_model:`model`,missing_model:`model`,model_applies:`model`,invalid_payload_schema:`payload_schema`,unresolved_schema_ref:`payload_schema`,invalid_gate_kinds:`ask_operator`,invalid_timeout_ms:`timeout_ms`,invalid_skill:`skills`,invalid_mcp:`mcp`,invalid_browser:`browser`,invalid_secrets:`secrets`,unknown_secret:`secrets`,denied_secret:`secrets`,invalid_requires:`requires`,requires_conflict:`requires`,invalid_agent:`agent`,route_if_invalid:`route`,route_all_gated:`route`,dag_error:`needs`,missing_stage:`stages`,stage_id_mismatch:`id`,id_filename_mismatch:`id`,entry_input_unmet:`input`};function c1(e){let t=e.severity;return t===`error`||t===`warning`?t:`info`}var l1={error:0,warning:1,info:2};function u1(e){return e.map((e,t)=>({finding:e,index:t})).sort((e,t)=>l1[c1(e.finding)]-l1[c1(t.finding)]||e.index-t.index).map(e=>e.finding)}function d1(e){let t={error:0,warning:0,info:0};for(let n of e)t[c1(n)]+=1;return t}function f1(e){let t=e.code.indexOf(`.`);return s1[t>=0?e.code.slice(t+1):e.code]??null}function p1(e){let t=f1(e);if(e.stageId)return t?`${e.stageId}.${t}`:e.stageId;if(e.pipelineId&&e.code.startsWith(`pipeline.`))return t?`${e.pipelineId}.${t}`:e.pipelineId;let n=e.path.trim();return n===`<draft>`?`draft`:o1(n)}function m1(e,t){return`${e.code}:${e.path}:${e.stageId??``}:${t}`}function h1(e){let t=[],n=/"([^"\n]+)"|`([^`\n]+)`/g,r=0;for(let i of e.matchAll(n)){let n=i.index??0;n>r&&t.push({text:e.slice(r,n),code:!1}),t.push({text:i[1]??i[2]??``,code:!0}),r=n+i[0].length}return r<e.length&&t.push({text:e.slice(r),code:!1}),t}function g1(e){if(e===null)return{kind:`unvalidated`,label:`—`};let t=d1(e);return t.error>0?{kind:`errors`,count:t.error,label:String(t.error)}:{kind:`count`,count:e.length,label:String(e.length)}}function _1(e){let t=e.body.id;return typeof t==`string`&&t.trim()?t.trim():(e.filename.split(/[\\/]/).pop()??e.filename).replace(/\.task\.ya?ml$|\.ya?ml$/i,``)}function v1(e){return e?`· ${_1(e)}`:null}function y1(e){if(e==null)return`—`;if(typeof e==`string`)return e.replace(/\s+/g,` `).trim()||`""`;if(typeof e==`number`||typeof e==`boolean`)return String(e);if(Array.isArray(e))return e.every(e=>typeof e!=`object`||!e)?`[${e.map(e=>String(e)).join(`, `)}]`:`${e.length} items`;let t=Object.keys(e);return t.length?`{ ${t.join(`, `)} }`:`{}`}function b1(e){return Object.entries(e).map(([e,t])=>({key:e,value:y1(t)}))}function x1(e,t){let n=t.trim().toLowerCase();return n?e.filter(e=>e.id.toLowerCase().includes(n)||e.path.toLowerCase().includes(n)):e}function S1(e){if(!e)return[];let t=e.split(/\r?\n/);return t.length&&t[t.length-1]===``&&t.pop(),t}function C1(e,t){let n=S1(e),r=S1(t);if(!n.length||!r.length)return{added:r.length,removed:n.length};let i=new Uint32Array(r.length+1),a=new Uint32Array(r.length+1);for(let e=1;e<=n.length;e+=1){for(let t=1;t<=r.length;t+=1)a[t]=n[e-1]===r[t-1]?i[t-1]+1:Math.max(i[t],a[t-1]);[i,a]=[a,i]}let o=i[r.length];return{added:r.length-o,removed:n.length-o}}function w1(e){let t=0,n=0;for(let r of e){let e=r.kind===`added`?C1(void 0,r.after):r.kind===`removed`?C1(r.before,void 0):C1(r.before,r.after);t+=e.added,n+=e.removed}return{added:t,removed:n}}function T1(e){return e.status===`accepted`&&e.auto?`auto`:e.status}function E1(e){return[...e.entries()].map(([e,t],n)=>{let{added:r,removed:i}=w1(t.proposal.artifacts),a=t.proposal.artifacts.length;return{row:{id:e,status:T1(t),summary:t.proposal.summary.trim()||`Draft change`,fileCount:a,filesLabel:`${a} ${a===1?`file`:`files`}`,added:r,removed:i,artifacts:t.proposal.artifacts,...t.at===void 0?{}:{at:t.at},...t.notice?{notice:t.notice}:{}},index:n}}).sort((e,t)=>(t.row.at??0)-(e.row.at??0)||t.index-e.index).map(e=>e.row)}function D1(e){switch(e){case`pending`:return`Pending review`;case`accepted`:return`Accepted`;case`auto`:return`Auto-applied`;case`rejected`:return`Rejected · undone`;case`conflict`:return`Conflict`}}function O1(e,t,n=Date.now()){return t?`validating…`:e==null||!Number.isFinite(PJ(e))?null:`validated ${FJ(e,n)}`}function k1(e,t){let n=e?e.split(`
249
- `).length:0,r=t?t.split(`
250
- `).length:0;return{add:Math.max(0,r-n),remove:Math.max(0,n-r)}}function A1({summary:e,proposal:t,stageIds:n,status:r,notice:i,locked:a,onAccept:o,onReject:s}){let[c,l]=(0,J.useState)(null),u=t?.artifacts??[];return(0,Y.jsxs)(`div`,{className:`sf-change-card`,"data-status":r,children:[(0,Y.jsxs)(`div`,{className:`sf-change-card__head`,children:[(0,Y.jsx)(`div`,{className:`sf-change-card__eyebrow`,children:`Draft mutation`}),(0,Y.jsx)(`strong`,{className:`sf-change-card__title`,children:e}),n.length>0?(0,Y.jsx)(`span`,{className:`sf-change-card__stages sf-mono`,children:n.join(`, `)}):null]}),u.length>0?(0,Y.jsx)(`ul`,{className:`sf-change-card__files`,children:u.map(e=>{let t=k1(e.before??``,e.after??``),n=c===e.path;return(0,Y.jsxs)(`li`,{className:`sf-change-card__file`,children:[(0,Y.jsxs)(`button`,{type:`button`,className:`sf-change-card__file-btn`,onClick:()=>l(n?null:e.path),children:[(0,Y.jsx)(`span`,{className:`sf-mono`,children:e.path}),(0,Y.jsxs)(`span`,{className:`sf-change-card__delta`,children:[`+`,t.add,` −`,t.remove]})]}),n?(0,Y.jsx)(`div`,{className:`sf-change-card__diff sf-mono`,children:(0,Y.jsx)(`pre`,{children:e.after||e.before})}):null]},e.path)})}):null,r===`pending`?(0,Y.jsxs)(`div`,{className:`sf-change-card__actions`,children:[(0,Y.jsx)(`button`,{type:`button`,className:`sf-btn sf-btn--primary sf-btn--sm`,disabled:a,onClick:o,children:`Accept`}),(0,Y.jsx)(`button`,{type:`button`,className:`sf-btn sf-btn--ghost sf-btn--sm`,disabled:a,onClick:s,children:`Reject`})]}):(0,Y.jsx)(`p`,{className:`sf-change-card__status`,children:r===`accepted`?`Accepted`:r===`rejected`?`Rejected · undone`:i??`Could not undo`})]})}var j1=4e6;function M1(e){if(!e)return[];let t=e.split(/\r?\n/);return t.length>0&&t[t.length-1]===``&&t.pop(),t}function N1(e,t){let n=e.length,r=t.length;if(n===0)return t.map(()=>`added`);if(r===0)return e.map(()=>`removed`);if(n*r>j1)return[...e.map(()=>`removed`),...t.map(()=>`added`)];let i=r+1,a=new Uint32Array((n+1)*i);for(let o=n-1;o>=0;--o)for(let n=r-1;n>=0;--n)a[o*i+n]=e[o]===t[n]?a[(o+1)*i+n+1]+1:Math.max(a[(o+1)*i+n],a[o*i+n+1]);let o=[],s=0,c=0;for(;s<n&&c<r;)e[s]===t[c]?(o.push(`context`),s+=1,c+=1):a[(s+1)*i+c]>=a[s*i+c+1]?(o.push(`removed`),s+=1):(o.push(`added`),c+=1);for(;s<n;)o.push(`removed`),s+=1;for(;c<r;)o.push(`added`),c+=1;return o}function P1(e,t){let n=M1(e),r=M1(t),i=0;for(;i<n.length&&i<r.length&&n[i]===r[i];)i+=1;let a=0;for(;a<n.length-i&&a<r.length-i&&n[n.length-1-a]===r[r.length-1-a];)a+=1;let o=[...n.slice(0,i).map(()=>`context`),...N1(n.slice(i,n.length-a),r.slice(i,r.length-a)),...n.slice(n.length-a).map(()=>`context`)],s=[],c=0,l=0;for(let e of o)e===`context`?(s.push({kind:`context`,oldLine:c+1,newLine:l+1,text:r[l]}),c+=1,l+=1):e===`removed`?(s.push({kind:`removed`,oldLine:c+1,text:n[c]}),c+=1):(s.push({kind:`added`,newLine:l+1,text:r[l]}),l+=1);return s}function F1(e){let t=0,n=0;for(let r of e)r.kind===`added`?t+=1:r.kind===`removed`&&(n+=1);return{added:t,removed:n}}function I1(e,t=3){let n=Array(e.length).fill(!1),r=!1;if(e.forEach((i,a)=>{if(i.kind===`context`)return;r=!0;let o=Math.max(0,a-t),s=Math.min(e.length-1,a+t);for(let e=o;e<=s;e+=1)n[e]=!0}),!r)return[];let i=[],a=0;return e.forEach((e,t)=>{n[t]?(a>0&&(i.push({kind:`skip`,count:a}),a=0),i.push(e)):a+=1}),a>0&&i.push({kind:`skip`,count:a}),i}function L1(e,t=3){let n=P1(e.before,e.after);return{lines:n,rows:I1(n,t),totals:F1(n)}}function R1(e){return e.reduce((e,t)=>({added:e.added+t.added,removed:e.removed+t.removed}),{added:0,removed:0})}function z1(e){return(e??[]).map(e=>({path:e.path,kind:e.kind,diff:L1(e)}))}function B1(e){return R1(e.map(e=>e.diff.totals))}var V1={added:`+`,modified:`~`,removed:`−`};function H1(e){return/\.pipeline\.ya?ml$/i.test(e)}function U1(e){return/\.task\.ya?ml$/i.test(e)}function W1(e){return(e.replace(/\\/g,`/`).split(`/`).pop()??e).replace(/(\.stage)?\.(ya?ml|json)$/i,``)}function G1(e){let t=new Set;for(let n of e?.pipeline?.stages??[])typeof n.id==`string`&&n.id&&t.add(n.id);return t}function K1(e,t){return`${e} ${t}${e===1?``:`s`}`}function q1(e){let t=e.artifacts??[],n=[],r=new Set,i=null,a=!1;for(let e of t){if(H1(e.path)){a=!0;continue}if(U1(e.path)){i={op:V1[e.kind],label:`task`};continue}let t=W1(e.path);r.has(t)||(r.add(t),n.push({op:V1[e.kind],label:t}))}let o=G1(e.baseDraft),s=G1(e.nextDraft);for(let t of e.affectedStageIds??[]){if(r.has(t))continue;r.add(t);let e=s.has(t)&&!o.has(t)?`+`:o.has(t)&&!s.has(t)?`−`:`~`;n.push({op:e,label:t})}let c=n.length;return i&&n.push(i),n.length===0&&a&&n.push({op:`~`,label:`pipeline`}),{items:n,stageCount:c,fileCount:t.length,line:n.map(e=>`${e.op} ${e.label}`).join(` · `),countLine:`${K1(c,`stage`)} · ${K1(t.length,`file`)}`}}var J1=new Set([`propose_draft`,`create_build`,`create_pipeline`,`edit_pipeline`,`create_stage`,`edit_stage`,`create_task`,`edit_task`,`add_stage`,`update_stage`]);function Y1(e){return e.status===`running`?{tone:`running`,label:`running`}:e.status===`error`?{tone:`error`,label:e.errorMessage?.trim()||`error`}:J1.has(e.name)?{tone:`applied`,label:`applied`}:{tone:`done`,label:`done`}}function X1(e){return J1.has(e)}function Z1(e){let t=e.trim();return t?`Change to "${t}": `:`Change this: `}function Q1({sessionTitle:e,historyOpen:t,onToggleHistory:n,onNewSession:r}){let i=e?.trim()??``;return(0,Y.jsxs)(`div`,{className:`flex h-[52px] w-full shrink-0 items-center gap-2.5 border-b border-b-[#ffffff12] px-4`,children:[(0,Y.jsx)(`div`,{className:`flex size-7 shrink-0 items-center justify-center rounded-lg border border-[#ffffff14] bg-[#1a1c21]`,children:(0,Y.jsx)(ot,{"aria-hidden":!0,className:`size-3.5 text-[#ecedee]`})}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-px`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(`span`,{className:`whitespace-nowrap text-[13px] font-semibold leading-normal text-[#ecedee]`,children:`Workshop Author`}),(0,Y.jsx)(`span`,{className:`flex h-[18px] items-center rounded-sm border border-[#ffffff1a] bg-[#1a1c21] px-[5px] font-['Geist_Mono',monospace] text-[11px] leading-normal text-[#a7aab2]`,children:`workshop-author`})]}),i?(0,Y.jsx)(`span`,{title:i,className:`min-w-0 truncate text-xs leading-normal text-[#a7aab2]`,children:i}):(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace] text-[11px] leading-normal text-[#8b8f98]`,children:`new session`})]}),(0,Y.jsx)(`button`,{type:`button`,"aria-label":`Workshop history`,"aria-expanded":t,"data-workshop-history-toggle":``,onClick:n,className:`flex size-7 shrink-0 items-center justify-center rounded-lg hover:bg-[#ffffff0a] ${t?`bg-[#ffffff0a] text-[#ecedee]`:`text-[#8b8f98]`}`,children:(0,Y.jsx)(we,{"aria-hidden":!0,className:`size-[15px]`})}),(0,Y.jsx)(`button`,{type:`button`,"aria-label":`New session`,onClick:r,className:`flex size-7 shrink-0 items-center justify-center rounded-lg text-[#8b8f98] hover:bg-[#ffffff0a] hover:text-[#ecedee]`,children:(0,Y.jsx)(Ue,{"aria-hidden":!0,className:`size-[15px]`})})]})}var $1=`font-['Geist_Mono',monospace]`,e0=`flex h-5 shrink-0 items-center rounded-sm border px-1.5 ${$1} text-[11px] leading-normal`,t0=200;function n0({emptyThread:e,model:t,defaultModel:n,onModelChange:r,hasTask:i,attachments:a,onAttachmentsChange:o,docsContext:s,onDocsContextChange:c,onStop:l,handleRef:u}){let d=Zt(),f=Yt(e=>e.thread.isRunning),[p,m]=(0,J.useState)(``),[h,g]=(0,J.useState)(null),_=(0,J.useRef)(null),v=(0,J.useRef)(null),y=(0,J.useRef)(a),b=(0,J.useRef)(s),x=(0,J.useRef)(f);y.current=a,b.current=s,x.current=f,(0,J.useLayoutEffect)(()=>{let e=_.current;e&&(e.style.height=`auto`,e.style.height=`${Math.min(e.scrollHeight,t0)}px`,e.style.overflowY=e.scrollHeight>t0?`auto`:`hidden`)},[p]);let S=(e,t)=>x.current||!E$(e)?!1:(d.thread().append({role:`user`,content:[{type:`text`,text:e}],metadata:{custom:ZA(t,b.current)}}),!0),C=()=>{let e=y.current;S(p,e)&&(m(``),g(null),e.length>0&&o([]))},T=()=>{let e=_.current;if(!e)return;e.focus();let t=e.value.length;e.setSelectionRange(t,t)};(0,J.useImperativeHandle)(u,()=>({prefill(e){m(e),requestAnimationFrame(T)},focus(){T()},send(e){S(e,[])}}));let E=e=>{e.key!==`Enter`||e.shiftKey||e.nativeEvent.isComposing||e.keyCode===229||(e.preventDefault(),C())},D=async e=>{let t=Array.from(e.target.files??[]);if(e.target.value=``,t.length===0)return;let n=JA(y.current,t),r=[...n.errors],i=[];for(let e of n.accepted)try{let t=await e.text();if(YA(t)){r.push(`${e.name} is not a text file`);continue}i.push({name:e.name,mediaType:KA(e),size:e.size,content:t})}catch{r.push(`Could not read ${e.name}`)}g(r.length>0?r.join(` · `):null),i.length>0&&o([...y.current,...i])},O=e=>{g(null),o(y.current.filter(t=>t.name!==e))},k=!f&&E$(p),A=e?`Describe the workflow you want…`:`Ask Workshop Author…`,j=t??n;return(0,Y.jsxs)(`div`,{className:`flex w-full shrink-0 flex-col gap-1.5 border-t border-t-[#ffffff12] px-3 pb-3 pt-2.5`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-col rounded-[10px] border border-[#ffffff1a] bg-[#131418] focus-within:border-[#ffffff33] focus-within:shadow-[0px_0px_0px_3px_rgba(236,237,238,0.06)]`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5 px-2.5 pt-2`,children:[(0,Y.jsx)(`button`,{type:`button`,"aria-label":`Attach files`,title:`Attach text files (up to 5, 256 KB each)`,onClick:()=>v.current?.click(),className:`flex size-5 shrink-0 items-center justify-center rounded-sm text-[#8b8f98] hover:bg-[#ffffff0a] hover:text-[#ecedee]`,children:(0,Y.jsx)(Tt,{"aria-hidden":!0,className:`size-[13px]`})}),(0,Y.jsx)(`input`,{ref:v,type:`file`,multiple:!0,accept:HA,className:`hidden`,tabIndex:-1,onChange:e=>void D(e)}),(0,Y.jsx)(`span`,{title:`The current draft is always in context`,className:`${e0} border-[#ffffff1a] bg-[#1a1c21] text-[#ecedee]`,children:`@draft`}),i?(0,Y.jsx)(`span`,{title:`The attached task is in context`,className:`${e0} border-[#ffffff1a] bg-[#1a1c21] text-[#ecedee]`,children:`@task`}):null,(0,Y.jsx)(`button`,{type:`button`,"aria-pressed":s,title:s?`Stageflow YAML reference is in context`:`Add the Stageflow YAML reference to context`,onClick:()=>c(!s),className:`${e0} ${s?`border-[#ffffff1a] bg-[#1a1c21] text-[#ecedee]`:`border-dashed border-[#ffffff24] text-[#a7aab2] hover:text-[#ecedee]`}`,children:`@docs`}),a.map(e=>(0,Y.jsxs)(`span`,{title:`${e.name} · ${qA(e.size)}`,className:`${e0} max-w-[180px] gap-1 border-[#ffffff1a] bg-[#1a1c21] pr-0.5 text-[#ecedee]`,children:[(0,Y.jsx)(w,{"aria-hidden":!0,className:`size-3 shrink-0 text-[#8b8f98]`}),(0,Y.jsx)(`span`,{className:`min-w-0 truncate`,children:e.name}),(0,Y.jsx)(`button`,{type:`button`,"aria-label":`Remove ${e.name}`,onClick:()=>O(e.name),className:`flex size-4 shrink-0 items-center justify-center rounded-sm text-[#8b8f98] hover:bg-[#ffffff14] hover:text-[#ecedee]`,children:(0,Y.jsx)(St,{"aria-hidden":!0,className:`size-3`})})]},e.name))]}),h?(0,Y.jsx)(`div`,{role:`alert`,className:`px-2.5 pt-1.5 text-[11px] leading-normal text-[#f2645a]`,children:h}):null,(0,Y.jsx)(`div`,{className:`flex min-h-10 px-2.5 pt-2`,children:(0,Y.jsx)(`textarea`,{ref:_,rows:1,value:p,placeholder:A,"aria-label":`Message Workshop Author`,onChange:e=>m(e.target.value),onKeyDown:E,className:`w-full resize-none border-0 bg-transparent p-0 font-sans text-[13px] leading-normal text-[#ecedee] outline-none placeholder:text-[#8b8f98]`})}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5 px-2 pb-2`,children:[(0,Y.jsx)(cF,{variant:`chip`,placement:`up`,ariaLabel:`Workshop chat model`,value:j,defaultModel:n,onChange:e=>e&&r(e)}),j&&j===n?(0,Y.jsx)(`span`,{className:`whitespace-nowrap text-[11px] leading-normal text-[#8b8f98]`,children:`Workshop default`}):null,(0,Y.jsx)(`span`,{className:`flex-1`}),f?(0,Y.jsx)(`button`,{type:`button`,"aria-label":`Stop`,onClick:()=>l?.(),className:`flex size-[26px] shrink-0 items-center justify-center rounded-md bg-[#ecedee]`,children:(0,Y.jsx)(Ce,{"aria-hidden":!0,className:`size-3 fill-[#0c0d0f] text-[#0c0d0f]`})}):(0,Y.jsx)(`button`,{type:`button`,"aria-label":`Send`,disabled:!k,onClick:C,className:`flex size-[26px] shrink-0 items-center justify-center rounded-md ${k?`bg-[#ecedee] text-[#0c0d0f]`:`cursor-not-allowed bg-[#2a2d33] text-[#8b8f98]`}`,children:(0,Y.jsx)(Ae,{"aria-hidden":!0,className:`size-3.5`})})]})]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-[5px] px-0.5`,children:[(0,Y.jsx)(pt,{"aria-hidden":!0,className:`size-3 shrink-0 text-[#8b8f98]`}),(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-[11px] leading-normal text-[#8b8f98]`,children:`Edits apply to the draft, not disk`}),(0,Y.jsx)(`span`,{className:`rounded-sm border border-[#ffffff1a] bg-[#1a1c21] px-[5px] ${$1} text-[11px] leading-normal text-[#8b8f98]`,children:`↵`}),(0,Y.jsx)(`span`,{className:`text-[11px] leading-normal text-[#8b8f98]`,children:`send`}),(0,Y.jsx)(`span`,{className:`ml-1 rounded-sm border border-[#ffffff1a] bg-[#1a1c21] px-[5px] ${$1} text-[11px] leading-normal text-[#8b8f98]`,children:`⇧↵`}),(0,Y.jsx)(`span`,{className:`text-[11px] leading-normal text-[#8b8f98]`,children:`newline`})]})]})}var r0=`font-['Geist_Mono',monospace]`,i0=`px-3 pb-1.5 pt-3 text-[11px] font-medium uppercase leading-normal tracking-[0.88px] text-[#8b8f98]`;function a0(e){let t=new Date(e);return Number.isNaN(t.getTime())?``:t.toLocaleString(`en-US`,{month:`short`,day:`numeric`,hour:`numeric`,minute:`2-digit`})}function o0({sessions:e,activeSessionId:t,loading:n,error:i,pickerRows:a,selectedBuildId:o,onOpenSession:s,onPickRow:c}){return(0,Y.jsxs)(`div`,{role:`dialog`,"aria-label":`Workshop history`,className:`absolute left-3 right-3 top-[48px] z-30 flex max-h-[min(480px,70vh)] flex-col overflow-auto rounded-[10px] border border-[#ffffff1a] bg-[#131418] pb-1.5 shadow-[0px_12px_32px_rgba(0,0,0,0.45)]`,children:[(0,Y.jsx)(`div`,{className:i0,children:`Sessions`}),n?(0,Y.jsx)(`div`,{className:`px-3 py-1.5 text-xs text-[#8b8f98]`,children:`Loading sessions…`}):i?(0,Y.jsx)(`div`,{className:`px-3 py-1.5 text-xs text-[#f2645a]`,children:i}):e.length===0?(0,Y.jsx)(`div`,{className:`px-3 py-1.5 text-xs text-[#8b8f98]`,children:`No prior sessions yet.`}):(0,Y.jsx)(`div`,{className:`flex flex-col px-1.5`,children:e.map(e=>{let n=e.id===t,r=[G$(e.activeBuildId,a),a0(e.updatedAt)].filter(Boolean).join(` · `);return(0,Y.jsxs)(`button`,{type:`button`,"aria-current":n?`true`:void 0,onClick:()=>s(e.id),className:`flex min-w-0 items-start gap-2 rounded-lg px-1.5 py-1.5 text-left hover:bg-[#1a1c21] ${n?`bg-[#1a1c21]`:``}`,children:[(0,Y.jsx)(N,{"aria-hidden":!0,className:`mt-0.5 size-3.5 shrink-0 text-[#8b8f98]`}),(0,Y.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col gap-px`,children:[(0,Y.jsx)(`span`,{className:`truncate text-[13px] leading-normal text-[#ecedee]`,children:e.title.trim()||`Untitled session`}),r?(0,Y.jsx)(`span`,{className:`truncate ${r0} text-[11px] leading-normal text-[#8b8f98]`,children:r}):null]})]},e.id)})}),(0,Y.jsx)(`div`,{className:`${i0} mt-1 border-t border-t-[#ffffff12]`,children:`Open existing pipeline…`}),a.length===0?(0,Y.jsx)(`div`,{className:`px-3 py-1.5 text-xs text-[#8b8f98]`,children:`No pipelines in the catalog yet.`}):(0,Y.jsx)(`div`,{className:`flex flex-col px-1.5`,children:a.map(e=>{let t=e.id!=null&&e.id===o;return(0,Y.jsxs)(`button`,{type:`button`,"aria-current":t?`true`:void 0,onClick:()=>c(e),className:`flex min-w-0 items-start gap-2 rounded-lg px-1.5 py-1.5 text-left hover:bg-[#1a1c21] ${t?`bg-[#1a1c21]`:``}`,children:[(0,Y.jsx)(r,{"aria-hidden":!0,className:`mt-0.5 size-3.5 shrink-0 text-[#8b8f98]`}),(0,Y.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col gap-px`,children:[(0,Y.jsx)(`span`,{className:`truncate ${r0} text-xs leading-normal text-[#ecedee]`,children:e.name}),e.relativePath?(0,Y.jsx)(`span`,{className:`truncate ${r0} text-[11px] leading-normal text-[#8b8f98]`,children:e.relativePath}):e.id?(0,Y.jsx)(`span`,{className:`truncate ${r0} text-[11px] leading-normal text-[#8b8f98]`,children:`workshop build`}):null]})]},z$(e))})})]})}var s0={on_verify_fail:{title:`on_verify_fail`,body:`on_verify_fail only runs after an after-phase verify check fails. mode: repair starts fresh attempts up to max_attempts (include_failed_checks carries the failure evidence); use mode: manual for side-effecting work.`},verify:{title:`verify`,body:`after-phase verify checks (the default for type: command) run once the stage emits its envelope. A failing check fails the attempt unless on_verify_fail recovers it.`},ask_operator:{title:`ask_operator`,body:`ask_operator is only registered when the stage lists gate_kinds. Omit it or use [] to turn the HITL tool off; a type: gate check's kind must also appear in gate_kinds.`},io:{title:`io`,body:`every stage needs io.input.schema and io.output.schema. The output schema is the producer contract: the success payload is validated against it when the stage emits.`},route:{title:`route`,body:`wiring lives on the source stage as route: [{ to: next }], with at least one entry: true root. needs is rejected; an optional if on a route entry is checked against the source stage's output payload.`},model:{title:`model`,body:`a stage without model inherits one at load: stage model, then the root pipeline model, then stageflow.yaml. Leave model off a stage to follow the pipeline default.`}},c0=[`on_verify_fail`,`verify`,`ask_operator`,`io`,`route`,`model`],l0={on_verify_fail:`on_verify_fail`,verify:`verify`,gate_kinds:`ask_operator`,ask_operator:`ask_operator`,io:`io`,route:`route`,needs:`route`,entry:`route`,model:`model`},u0=/^(\s*)(?:-\s*)?"?([A-Za-z_][\w.-]*)"?\s*:/;function d0(e){let t=/^(\s*)/.exec(e);return t?t[1].length:0}function f0(e,t){let n=[],r=u0.exec(e[t]);r&&n.push(r[2]);let i=d0(e[t]);for(let r=t-1;r>=0&&i>0;--r){let t=e[r];if(!t.trim())continue;let a=d0(t);if(a>=i)continue;let o=u0.exec(t);o&&n.push(o[2]),i=a}return n}function p0(e){let t=new Set,n=M1(e.before),r=M1(e.after);for(let i of P1(e.before,e.after)){if(i.kind===`context`)continue;let e=i.kind===`added`?r:n,a=(i.kind===`added`?i.newLine:i.oldLine)-1;for(let n of f0(e,a)){let e=l0[n];e&&t.add(e)}(/ask_operator/.test(i.text)||/"?type"?\s*:\s*"?gate\b/.test(i.text))&&t.add(`ask_operator`)}return t}function m0(e){let t=e?.artifacts??[],n=new Set;for(let e of t)for(let t of p0(e))n.add(t);return c0.find(e=>n.has(e))??null}function h0(e){let t=m0(e);return t?s0[t]:null}var g0=`font-['Geist_Mono',monospace]`;function _0({row:e}){if(e.kind===`skip`)return(0,Y.jsxs)(`div`,{className:`flex h-[18px] items-center gap-2.5 px-3 ${g0} text-[11px] text-[#8b8f98]`,children:[(0,Y.jsx)(`span`,{className:`min-w-4 text-right`,children:`⋯`}),(0,Y.jsxs)(`span`,{children:[e.count,` unchanged line`,e.count===1?``:`s`]})]});let t=e.kind===`added`?{bg:`bg-[#4cc38a14]`,gutter:`text-[#4cc38a]`,text:`text-[#ecedee]`,mark:`+`}:e.kind===`removed`?{bg:`bg-[#f2645a14]`,gutter:`text-[#f2645a]`,text:`text-[#ecedee]`,mark:`−`}:{bg:``,gutter:`text-[#8b8f98]`,text:`text-[#a7aab2]`,mark:String(e.newLine??``)};return(0,Y.jsxs)(`div`,{className:`flex h-[18px] min-w-fit items-center gap-2.5 px-3 ${t.bg}`,children:[(0,Y.jsx)(`span`,{className:`min-w-4 shrink-0 text-right ${g0} text-[11px] leading-normal ${t.gutter}`,children:t.mark}),(0,Y.jsx)(`span`,{className:`${g0} text-[11px] leading-normal ${t.text} whitespace-pre`,children:e.text})]})}function v0({rows:e}){return e.length===0?(0,Y.jsx)(`div`,{className:`border-y border-y-[#ffffff0f] bg-[#0c0d0f] px-3 py-1.5 ${g0} text-[11px] text-[#8b8f98]`,children:`No line changes`}):(0,Y.jsx)(`div`,{className:`max-h-[240px] overflow-auto border-y border-y-[#ffffff0f] bg-[#0c0d0f] py-1.5`,children:e.map((e,t)=>(0,Y.jsx)(_0,{row:e},t))})}function y0({kind:e}){return e===`added`?(0,Y.jsx)(`span`,{className:`flex h-4 shrink-0 items-center rounded-sm bg-[#6ca6ff1f] px-[5px] ${g0} text-[10px] font-medium text-[#6ca6ff]`,children:`NEW`}):e===`removed`?(0,Y.jsx)(`span`,{className:`flex h-4 shrink-0 items-center rounded-sm bg-[#f2645a1f] px-[5px] ${g0} text-[10px] font-medium text-[#f2645a]`,children:`DELETED`}):null}function b0({artifacts:e,defaultExpandedPath:t}){let n=(0,J.useMemo)(()=>z1(e),[e]),[r,i]=(0,J.useState)(()=>new Set(t?[t]:[])),a=e=>i(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n});return n.length===0?null:(0,Y.jsx)(`div`,{className:`flex min-w-0 flex-col`,children:n.map(e=>{let t=r.has(e.path),{added:n,removed:i}=e.diff.totals;return(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-col`,children:[(0,Y.jsxs)(`button`,{type:`button`,"aria-expanded":t,onClick:()=>a(e.path),className:`flex h-[30px] w-full min-w-0 items-center gap-2 px-3 text-left hover:bg-[#1a1c21] ${t?`bg-[#1a1c21]`:``}`,children:[(0,Y.jsx)(t?B:l,{"aria-hidden":!0,className:`size-3 shrink-0 ${t?`text-[#ecedee]`:`text-[#8b8f98]`}`}),(0,Y.jsx)(`span`,{title:e.path,className:`min-w-0 flex-1 truncate ${g0} text-xs leading-normal text-[#ecedee]`,children:e.path}),(0,Y.jsx)(y0,{kind:e.kind}),(0,Y.jsx)(`span`,{className:`min-w-7 shrink-0 text-right ${g0} text-[11px] leading-normal ${n>0?`text-[#4cc38a]`:`text-[#8b8f98]`}`,children:n>0?`+${n}`:`0`}),(0,Y.jsx)(`span`,{className:`min-w-5 shrink-0 text-right ${g0} text-[11px] leading-normal ${i>0?`text-[#f2645a]`:`text-[#8b8f98]`}`,children:i>0?`−${i}`:`0`})]}),t?(0,Y.jsx)(v0,{rows:e.diff.rows}):null]},e.path)})})}var x0=`font-['Geist_Mono',monospace]`;function S0({summary:e,proposal:t,locked:n,onAccept:r,onReject:i,onAskToChange:a}){let o=t?.artifacts??[],s=(0,J.useMemo)(()=>z1(o),[o]),c=B1(s),l=s.length>0?`Applied to draft · ${s.length} change${s.length===1?``:`s`}`:`Applied to draft`;return(0,Y.jsxs)(`div`,{"data-status":`pending`,className:`flex min-w-0 flex-col overflow-clip rounded-[10px] border border-[#ffffff1a] bg-[#131418]`,children:[(0,Y.jsxs)(`div`,{className:`flex h-9 items-center gap-2 border-b border-b-[#ffffff12] px-3`,children:[(0,Y.jsx)(S,{"aria-hidden":!0,className:`size-3.5 shrink-0 text-[#a7aab2]`}),(0,Y.jsx)(`span`,{title:e,className:`min-w-0 flex-1 truncate text-[13px] font-medium leading-normal text-[#ecedee]`,children:l}),s.length>0?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`span`,{className:`${x0} text-[11px] leading-normal text-[#4cc38a]`,children:[`+`,c.added]}),(0,Y.jsxs)(`span`,{className:`${x0} text-[11px] leading-normal text-[#f2645a]`,children:[`−`,c.removed]})]}):null]}),s.length===0&&e?(0,Y.jsx)(`div`,{className:`px-3 py-2 text-xs leading-[1.45] text-[#a7aab2]`,children:e}):null,(0,Y.jsx)(b0,{artifacts:o}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 border-t border-t-[#ffffff12] px-3 py-2.5`,children:[(0,Y.jsxs)(`button`,{type:`button`,disabled:n,onClick:r,className:`flex h-8 shrink-0 items-center gap-1.5 rounded-lg bg-[#ecedee] px-3 disabled:cursor-not-allowed disabled:bg-[#2a2d33]`,children:[(0,Y.jsx)(`span`,{className:`text-[13px] font-medium leading-normal ${n?`text-[#8b8f98]`:`text-[#0c0d0f]`}`,children:`Accept`}),(0,Y.jsx)(`span`,{className:`${x0} text-[11px] leading-normal text-[#5a5e66]`,children:`↵`})]}),(0,Y.jsx)(`button`,{type:`button`,disabled:n,onClick:i,className:`flex h-8 shrink-0 items-center rounded-lg border border-[#ffffff1a] bg-[#1a1c21] px-3 text-[13px] font-medium leading-normal text-[#ecedee] disabled:cursor-not-allowed disabled:border-[#ffffff0d] disabled:bg-[#131418] disabled:text-[#8b8f98]`,children:`Reject · undo`}),(0,Y.jsx)(`button`,{type:`button`,onClick:a,className:`flex h-8 shrink-0 items-center rounded-lg px-2 text-[13px] font-medium leading-normal text-[#a7aab2] hover:text-[#ecedee]`,children:`Ask to change`})]})]})}function C0({summary:e,card:t}){let[n,r]=(0,J.useState)(!1),i=(0,J.useMemo)(()=>q1(t.proposal),[t.proposal]),a=t.status===`rejected`,o=t.status===`conflict`,s=n?B:l,c=t.proposal.artifacts.length>0,u=i.line||e;return(0,Y.jsxs)(`div`,{"data-status":t.status,className:`flex min-w-0 flex-col gap-1.5 rounded-[10px] border border-[#ffffff12] bg-[#0f1013] px-3 py-2.5 ${a?`opacity-70`:``}`,children:[(0,Y.jsxs)(`button`,{type:`button`,disabled:!c,"aria-expanded":c?n:void 0,onClick:()=>r(e=>!e),className:`flex min-w-0 items-center gap-1.5 text-left disabled:cursor-default`,children:[a?(0,Y.jsx)(St,{"aria-hidden":!0,className:`size-3.5 shrink-0 text-[#8b8f98]`}):o?(0,Y.jsx)(je,{"aria-hidden":!0,className:`size-3.5 shrink-0 text-[#f5b544]`}):(0,Y.jsx)(G,{"aria-hidden":!0,className:`size-3.5 shrink-0 text-[#4cc38a]`}),(0,Y.jsx)(`span`,{className:`shrink-0 text-xs font-medium leading-normal ${a?`text-[#a7aab2]`:`text-[#ecedee]`}`,children:a?`Rejected · undone`:o?`Could not undo`:`Applied to draft`}),t.autoApplied&&!a?(0,Y.jsx)(`span`,{className:`flex h-4 shrink-0 items-center rounded-sm border border-[#ffffff1a] px-1 ${x0} text-[10px] text-[#8b8f98]`,children:`auto`}):null,(0,Y.jsx)(`span`,{className:`min-w-0 truncate ${x0} text-[11px] leading-normal text-[#8b8f98]`,children:i.countLine}),c?(0,Y.jsx)(s,{"aria-hidden":!0,className:`ml-auto size-3 shrink-0 text-[#8b8f98]`}):null]}),u?(0,Y.jsx)(`div`,{title:e,className:`min-w-0 truncate ${x0} text-xs leading-normal ${a?`text-[#8b8f98] line-through`:`text-[#a7aab2]`}`,children:u}):null,o?(0,Y.jsx)(`div`,{className:`text-xs leading-[1.45] text-[#a7aab2]`,children:t.notice??`Could not undo — ask the agent to reverse it.`}):null,n&&c?(0,Y.jsx)(`div`,{className:`-mx-3 -mb-2.5 mt-1 overflow-clip rounded-b-[10px] border-t border-t-[#ffffff12]`,children:(0,Y.jsx)(b0,{artifacts:t.proposal.artifacts})}):null]})}function w0({summary:e,card:t,threadRunning:n,onAccept:r,onReject:i,onAskToChange:a}){let[o,s]=(0,J.useState)(!1),c=t?.status??`pending`,l=C$(n,o),u=async e=>{if(!(l||c!==`pending`)){s(!0);try{e===`accept`?await r():await i()}finally{s(!1)}}};return c===`pending`||!t?(0,Y.jsx)(S0,{summary:e||t?.proposal.summary||``,proposal:t?.proposal,locked:l,onAccept:()=>void u(`accept`),onReject:()=>void u(`reject`),onAskToChange:a}):(0,Y.jsx)(C0,{summary:e||t.proposal.summary,card:t})}var T0=[{kind:`describe`,icon:N,label:`Describe a workflow`},{kind:`open`,icon:r,label:`Open existing pipeline…`},{kind:`task`,icon:P,label:`Attach a task first`}],E0=[{icon:he,label:`Pipeline wiring — entry, order, routing`},{icon:ce,label:`Stage prompts`},{icon:_e,label:`io · verify · on_verify_fail`,mono:!0},{icon:Ze,label:`HITL gates (ask_operator)`},{icon:D,label:`Envelopes & artifacts`}];function D0({onStarter:e}){return(0,Y.jsxs)(`div`,{className:`flex w-full min-w-0 flex-col gap-4 px-4 py-5`,children:[(0,Y.jsxs)(`div`,{className:`flex items-start gap-2.5`,children:[(0,Y.jsx)(`div`,{className:`mt-0.5 flex size-6 shrink-0 items-center justify-center rounded-md border border-[#ffffff1a] bg-[#1a1c21]`,children:(0,Y.jsx)(ot,{"aria-hidden":!0,className:`size-3 text-[#ecedee]`})}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1.5`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(`span`,{className:`text-xs font-medium leading-normal text-[#ecedee]`,children:`Workshop Author`}),(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace] text-[11px] leading-normal text-[#8b8f98]`,children:`now`})]}),(0,Y.jsx)(`p`,{className:`m-0 text-sm leading-[1.55] text-[#ecedee]`,children:`Hi — what are we building? Describe the workflow in a sentence or two, or open an existing pipeline to evolve it.`})]})]}),(0,Y.jsx)(`div`,{className:`flex flex-wrap gap-2 pl-[34px]`,children:T0.map(({kind:t,icon:n,label:r})=>(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>e(t),className:`flex h-[30px] items-center gap-1.5 rounded-lg border border-[#ffffff1a] bg-[#1a1c21] px-2.5 hover:border-[#ffffff33]`,children:[(0,Y.jsx)(n,{"aria-hidden":!0,className:`size-3.5 text-[#a7aab2]`}),(0,Y.jsx)(`span`,{className:`whitespace-nowrap text-xs font-medium leading-normal text-[#ecedee]`,children:r})]},t))}),(0,Y.jsxs)(`div`,{className:`ml-[34px] flex flex-col gap-2 rounded-[10px] border border-[#ffffff12] bg-[#0f1013] px-3 py-2.5`,children:[(0,Y.jsx)(`div`,{className:`text-[11px] font-medium uppercase leading-normal tracking-[0.88px] text-[#8b8f98]`,children:`What I can help with`}),E0.map(({icon:e,label:t,mono:n})=>(0,Y.jsxs)(`div`,{className:`flex h-[22px] items-center gap-2`,children:[(0,Y.jsx)(e,{"aria-hidden":!0,className:`size-3.5 shrink-0 text-[#8b8f98]`}),(0,Y.jsx)(`span`,{className:`text-[13px] leading-normal text-[#a7aab2] ${n?`whitespace-nowrap font-['Geist_Mono',monospace]`:``}`,children:t})]},t))]}),(0,Y.jsx)(`p`,{className:`m-0 ml-[34px] text-xs leading-[1.45] text-[#8b8f98]`,children:`Edits land in this draft only. Nothing is written to disk until you Save.`})]})}var O0=`font-['Geist_Mono',monospace]`;function k0({calls:e}){return e.length===0?null:(0,Y.jsx)(`div`,{className:`flex min-w-0 flex-col rounded-lg border border-[#ffffff12]`,children:e.map((t,n)=>{let r=Y1(t),i=n===e.length-1;return(0,Y.jsxs)(`div`,{className:`flex h-[30px] min-w-0 items-center gap-2 px-2.5 ${i?``:`border-b border-b-[#ffffff12]`}`,children:[(0,Y.jsx)(`span`,{className:`shrink-0 whitespace-nowrap ${O0} text-[11px] leading-normal text-[#ecedee]`,children:t.name}),(0,Y.jsx)(`span`,{title:t.target,className:`min-w-0 flex-1 truncate ${O0} text-[11px] leading-normal ${X1(t.name)?`text-[#a7aab2]`:`text-[#8b8f98]`}`,children:t.target??``}),(0,Y.jsxs)(`span`,{className:`flex min-w-0 max-w-[45%] shrink-0 items-center gap-1`,children:[r.tone===`running`?(0,Y.jsx)(bt,{"aria-hidden":!0,className:`size-3 shrink-0 animate-spin text-[#6ca6ff]`}):r.tone===`applied`?(0,Y.jsx)(G,{"aria-hidden":!0,className:`size-3 shrink-0 text-[#4cc38a]`}):r.tone===`error`?(0,Y.jsx)(St,{"aria-hidden":!0,className:`size-3 shrink-0 text-[#f2645a]`}):null,(0,Y.jsx)(`span`,{title:r.label,className:`min-w-0 truncate ${O0} text-[11px] leading-normal ${r.tone===`applied`?`text-[#4cc38a]`:r.tone===`error`?`text-[#f2645a]`:`text-[#8b8f98]`}`,children:r.label})]})]},t.id)})})}var A0=`font-['Geist_Mono',monospace]`,j0=`min-w-0 text-[13px] leading-[1.55] text-[#ecedee] [&_p]:my-0 [&_p]:text-[13px] [&_p]:leading-[1.55] [&_p]:text-[#ecedee] [&_li]:text-[13px] [&_li]:leading-[1.55] [&_li]:text-[#ecedee] [&_code]:font-['Geist_Mono',monospace] [&_code]:text-[12px] [&_a]:text-[#6ca6ff]`;function M0(e){return{id:e.id,role:e.role,createdAt:e.createdAt??null,metadata:e.metadata??null,content:typeof e.content==`string`||Array.isArray(e.content)?e.content:[]}}function N0({turn:e}){return(0,Y.jsxs)(`div`,{className:`flex flex-col items-end gap-1`,children:[(0,Y.jsx)(`div`,{className:`${A0} text-[11px] leading-normal text-[#8b8f98]`,children:r1(e.createdAt)}),(0,Y.jsx)(`div`,{className:`block max-w-[300px] whitespace-pre-wrap break-words rounded-[10px] border border-[#ffffff0f] bg-[#1a1c21] px-3 py-2 text-[13px] leading-normal text-[#ecedee]`,children:e.text}),e.attachments.length>0?(0,Y.jsx)(`div`,{className:`flex max-w-[300px] flex-wrap justify-end gap-1`,children:e.attachments.map(e=>(0,Y.jsxs)(`span`,{title:e.size>0?`${e.name} · ${qA(e.size)}`:e.name,className:`flex h-5 max-w-[180px] items-center gap-1 rounded-sm border border-[#ffffff1a] bg-[#131418] px-1.5 ${A0} text-[11px] leading-normal text-[#a7aab2]`,children:[(0,Y.jsx)(Tt,{"aria-hidden":!0,className:`size-3 shrink-0 text-[#8b8f98]`}),(0,Y.jsx)(`span`,{className:`min-w-0 truncate`,children:e.name})]},e.name))}):null]})}function P0({turn:e,mutationCards:t,threadRunning:n,onAccept:r,onReject:i,onAskToChange:a}){let o=n1(e.createdAt),s=(0,J.useMemo)(()=>{for(let n of e.mutations){let e=h0(t.get(n.args.mutationId)?.proposal);if(e)return e}return null},[e.mutations,t]),c=-1;e.segments.forEach((e,t)=>{e.kind===`text`&&e.text.trim()&&(c=t)});let l=e.mutations.map(e=>{let n=t.get(e.args.mutationId);return{mutation:e,card:n,pending:!n||n.status===`pending`}}),u=({mutation:e,card:t})=>(0,Y.jsx)(w0,{summary:e.args.summary,card:t,threadRunning:n,onAccept:()=>r(e.args.mutationId),onReject:()=>i(e.args.mutationId),onAskToChange:()=>a(e.args.summary||t?.proposal.summary||``)},e.toolCallId),d=s?(0,Y.jsxs)(`div`,{className:`flex gap-2 rounded-lg border border-[#ffffff0f] bg-[#131418] px-2.5 py-2`,title:s.title,children:[(0,Y.jsx)(Pe,{"aria-hidden":!0,className:`mt-0.5 size-[13px] shrink-0 text-[#a7aab2]`}),(0,Y.jsxs)(`div`,{className:`text-xs leading-normal text-[#a7aab2]`,children:[(0,Y.jsx)(`span`,{className:`font-medium text-[#ecedee]`,children:`Tip: `}),(0,Y.jsx)(`span`,{children:s.body})]})]}):null;return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,Y.jsxs)(`div`,{className:`flex gap-2.5`,children:[(0,Y.jsx)(`div`,{className:`flex size-5 shrink-0 items-center justify-center rounded-md border border-[#ffffff12] bg-[#1a1c21]`,children:(0,Y.jsx)(ot,{"aria-hidden":!0,className:`size-[11px] text-[#a7aab2]`})}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1.5`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(`span`,{className:`text-xs font-medium leading-normal text-[#ecedee]`,children:`Workshop Author`}),o?(0,Y.jsx)(`span`,{className:`${A0} text-[11px] leading-normal text-[#8b8f98]`,children:o}):null]}),e.segments.map((t,n)=>(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1.5`,children:[t.kind===`text`?t.text.trim()?e.failed?(0,Y.jsx)(`p`,{className:`m-0 whitespace-pre-wrap text-[13px] leading-[1.55] text-[#f2645a]`,children:t.text}):(0,Y.jsx)(jb,{isStreaming:!1,density:`compact`,contentWidth:`100%`,className:j0,children:t.text}):null:(0,Y.jsx)(`div`,{className:`mt-1.5`,children:(0,Y.jsx)(k0,{calls:t.calls})}),n===c?d:null]},n)),c<0?d:null,e.working?(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5 text-[13px] leading-[1.55] text-[#8b8f98]`,children:[(0,Y.jsx)(bt,{"aria-hidden":!0,className:`size-3 animate-spin text-[#6ca6ff]`}),`Working…`]}):null,l.filter(e=>!e.pending).map(u)]})]}),l.filter(e=>e.pending).map(u)]})}function F0({toolActivity:e,mutationCards:t,onAccept:n,onReject:r,onAskToChange:i,onStarter:a}){let o=Yt(e=>e.thread.messages),s=Yt(e=>e.thread.isRunning),c=(0,J.useRef)(null),l=(0,J.useRef)(!0),u=(0,J.useMemo)(()=>t1({messages:o.map(e=>M0(e)),toolActivity:e,isRunning:s}),[o,e,s]);return(0,J.useLayoutEffect)(()=>{let e=c.current;e&&l.current&&(e.scrollTop=e.scrollHeight)},[u,t]),u.length===0?(0,Y.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto`,children:(0,Y.jsx)(D0,{onStarter:a})}):(0,Y.jsx)(`div`,{ref:c,onScroll:e=>{let t=e.currentTarget;l.current=t.scrollHeight-t.scrollTop-t.clientHeight<48},className:`flex min-h-0 flex-1 flex-col overflow-y-auto`,children:(0,Y.jsx)(`div`,{className:`flex w-full min-w-0 flex-col gap-3 px-4 py-3.5`,children:u.map(e=>e.kind===`user`?(0,Y.jsx)(N0,{turn:e},e.key):e.kind===`agent`?(0,Y.jsx)(P0,{turn:e,mutationCards:t,threadRunning:s,onAccept:n,onReject:r,onAskToChange:i},e.key):(0,Y.jsx)(`div`,{className:`text-center text-[11px] leading-normal text-[#8b8f98]`,children:e.text},e.key))})})}function I0({toolActivity:e,onStop:t,mutationCards:n,onAccept:r,onReject:i,model:a,defaultModel:o,onModelChange:s,hasTask:c,attachments:l,onAttachmentsChange:u,docsContext:d,onDocsContextChange:f,onStarter:p,innerComposer:m}){let h=Yt(e=>e.thread.isEmpty);return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(F0,{toolActivity:e,mutationCards:n,onAccept:r,onReject:i,onAskToChange:e=>m.current?.prefill(Z1(e)),onStarter:p}),(0,Y.jsx)(n0,{handleRef:m,emptyThread:h,model:a,defaultModel:o,onModelChange:s,hasTask:c,attachments:l,onAttachmentsChange:u,docsContext:d,onDocsContextChange:f,onStop:t})]})}function L0({seedMessages:e,adapter:t,...n}){let r=Xt(t,{initialMessages:e});return(0,Y.jsx)(ct,{runtime:r,children:(0,Y.jsx)(I0,{...n})})}function R0({seedMessages:e,adapter:t,threadKey:n,ready:r=!0,bootError:i,sessionTitle:a,sessions:o,activeSessionId:s,historyLoading:c,historyError:l,onHistoryOpen:u,onOpenSession:d,onNewSession:f,pickerRows:p,selectedBuildId:m,onPickRow:h,composerHandle:g,onStarter:_,className:v,...y}){let[b,x]=(0,J.useState)(!1),S=(0,J.useRef)(null),C=(0,J.useRef)(null);(0,J.useImperativeHandle)(g,()=>({prefill:e=>C.current?.prefill(e),focus:()=>C.current?.focus(),send:e=>C.current?.send(e)}),[]),(0,J.useEffect)(()=>{if(!b)return;let e=e=>{let t=e.target;S.current?.contains(t)||t?.closest?.(`[data-workshop-history-toggle]`)||x(!1)},t=e=>{e.key===`Escape`&&(e.stopPropagation(),x(!1))};return document.addEventListener(`pointerdown`,e),document.addEventListener(`keydown`,t,!0),()=>{document.removeEventListener(`pointerdown`,e),document.removeEventListener(`keydown`,t,!0)}},[b]);let w=()=>{x(!0),u?.()};return(0,Y.jsxs)(`div`,{className:`relative flex h-full min-h-0 w-full min-w-0 flex-col bg-[#0c0d0f] ${v??``}`,children:[(0,Y.jsx)(Q1,{sessionTitle:a,historyOpen:b,onToggleHistory:()=>b?x(!1):w(),onNewSession:()=>{x(!1),f()}}),b?(0,Y.jsx)(`div`,{ref:S,children:(0,Y.jsx)(o0,{sessions:o,activeSessionId:s,loading:c,error:l,pickerRows:p,selectedBuildId:m,onOpenSession:e=>{x(!1),d(e)},onPickRow:e=>{x(!1),h(e)}})}):null,i?(0,Y.jsx)(`div`,{role:`alert`,className:`border-b border-b-[#ffffff12] px-4 py-2 text-xs leading-[1.45] text-[#f2645a]`,children:i}):null,r?(0,Y.jsx)(L0,{seedMessages:e,adapter:t,onStarter:e=>{e===`open`&&w(),e===`describe`&&C.current?.focus(),_(e)},innerComposer:C,...y},n):(0,Y.jsx)(`div`,{className:`flex min-h-0 flex-1 items-center justify-center text-xs text-[#8b8f98]`,children:`Starting session…`})]})}var z0=2;function B0({changedPaths:e,onReload:t,onKeep:n,changedAt:r,onDismiss:i}){let a=IJ(3e4,r!=null),o=r==null?``:FJ(r,a),s=e.slice(0,z0),c=e.length-s.length;return(0,Y.jsxs)(`div`,{role:`alert`,className:`flex h-10 w-full shrink-0 items-center gap-2.5 border-b border-b-[#ffffff12] bg-[#131418] px-4 font-sans`,children:[(0,Y.jsx)(S,{className:`size-3.5 shrink-0 text-[#a7aab2]`,"aria-hidden":!0}),(0,Y.jsxs)(`div`,{className:`mr-1 flex min-w-0 shrink items-center gap-1 whitespace-nowrap`,children:[(0,Y.jsx)(`span`,{className:`min-w-0 truncate font-['Geist_Mono',monospace] text-xs text-[#ecedee]`,title:e.join(`
251
- `),children:s.length?s.join(`, `):`Catalog files`}),c>0?(0,Y.jsxs)(`span`,{className:`text-[13px] text-[#a7aab2]`,children:[`+`,c,` more`]}):null,(0,Y.jsxs)(`span`,{className:`text-[13px] text-[#a7aab2]`,children:[`changed on disk`,o?` ${o}`:``]})]}),(0,Y.jsx)(`button`,{type:`button`,onClick:t,className:`flex h-[26px] shrink-0 items-center rounded-md border border-[#ffffff1a] bg-[#1a1c21] px-2.5 text-xs font-medium text-[#ecedee] hover:bg-[#202228]`,children:`Reload from disk`}),(0,Y.jsx)(`button`,{type:`button`,onClick:n,className:`flex h-[26px] shrink-0 items-center rounded-md px-2 text-xs font-medium text-[#a7aab2] hover:bg-[#ffffff0a] hover:text-[#ecedee]`,children:`Keep workshop draft`}),(0,Y.jsx)(`div`,{className:`min-w-0 flex-1`}),i?(0,Y.jsx)(`button`,{type:`button`,"aria-label":`Dismiss`,onClick:i,className:`flex size-6 shrink-0 items-center justify-center rounded-md hover:bg-[#ffffff0a]`,children:(0,Y.jsx)(St,{className:`size-3.5 text-[#8b8f98]`,"aria-hidden":!0})}):null]})}var V0=`font-['Geist_Mono',monospace]`;function H0({status:e}){let t=D1(e);return(0,Y.jsx)(`span`,{className:`flex size-4 shrink-0 items-center justify-center`,title:t,"aria-label":t,children:e===`pending`?(0,Y.jsx)(`span`,{className:`block size-2 rounded-full bg-[#6ca6ff]`}):e===`accepted`||e===`auto`?(0,Y.jsx)(G,{className:`size-3.5 text-[#4cc38a]`,"aria-hidden":!0}):e===`conflict`?(0,Y.jsx)(je,{className:`size-3.5 text-[#f5b544]`,"aria-hidden":!0}):(0,Y.jsx)(St,{className:`size-3.5 text-[#8b8f98]`,"aria-hidden":!0})})}function U0({mutationCards:e,onAccept:t,onReject:n}){let r=(0,J.useMemo)(()=>E1(e),[e]),[i,a]=(0,J.useState)(null),o=IJ(1e4,r.some(e=>e.at!==void 0));return r.length===0?(0,Y.jsxs)(`div`,{className:`flex h-full w-full flex-col items-center justify-center gap-1 px-6`,children:[(0,Y.jsx)(`span`,{className:`font-sans text-[13px] font-medium text-[#ecedee]`,children:`No changes yet`}),(0,Y.jsx)(`span`,{className:`text-center font-sans text-xs leading-[1.45] text-[#8b8f98]`,children:`Edits the agent makes to the draft show up here, applied or pending.`})]}):(0,Y.jsx)(`div`,{className:`flex w-full flex-col py-1.5`,children:r.map(e=>{let r=e.id===i,s=e.status===`rejected`;return(0,Y.jsxs)(`div`,{className:`flex w-full flex-col`,children:[(0,Y.jsxs)(`div`,{className:`flex h-[30px] w-full items-center gap-2.5 border-l-2 pr-3.5 ${r?`border-l-[#6ca6ff] bg-[#ffffff08]`:`border-l-transparent hover:bg-[#ffffff05]`}`,children:[(0,Y.jsxs)(`button`,{type:`button`,"aria-expanded":r,onClick:()=>a(r?null:e.id),className:`flex h-full min-w-0 flex-1 items-center gap-2.5 pl-3 text-left`,children:[(0,Y.jsx)(l,{className:`size-3 shrink-0 text-[#8b8f98] transition-transform ${r?`rotate-90`:``}`,"aria-hidden":!0}),(0,Y.jsx)(H0,{status:e.status}),e.status===`auto`?(0,Y.jsx)(`span`,{className:`shrink-0 rounded-sm border border-[#ffffff1a] px-1 ${V0} text-[10px] text-[#a7aab2]`,children:`auto`}):null,(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-sans text-[13px] ${s?`text-[#8b8f98] line-through decoration-[#8b8f98]`:`text-[#ecedee]`}`,title:e.summary,children:e.summary}),(0,Y.jsx)(`span`,{className:`shrink-0 ${V0} text-[11px] text-[#8b8f98]`,children:e.filesLabel}),(0,Y.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1.5 ${V0} text-[11px]`,children:[(0,Y.jsxs)(`span`,{className:s?`text-[#8b8f98]`:`text-[#4cc38a]`,children:[`+`,e.added]}),(0,Y.jsxs)(`span`,{className:s?`text-[#8b8f98]`:`text-[#f2645a]`,children:[`−`,e.removed]})]}),(0,Y.jsx)(`span`,{className:`w-14 shrink-0 text-right ${V0} text-[11px] text-[#8b8f98]`,children:e.at===void 0?``:FJ(e.at,o)})]}),e.status===`pending`?(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1`,children:[(0,Y.jsx)(`button`,{type:`button`,onClick:()=>t(e.id),className:`flex h-[22px] items-center rounded-md bg-[#ecedee] px-2 font-sans text-xs font-medium text-[#0c0d0f] hover:bg-white`,children:`Accept`}),(0,Y.jsx)(`button`,{type:`button`,onClick:()=>n(e.id),className:`flex h-[22px] items-center rounded-md px-1.5 font-sans text-xs font-medium text-[#a7aab2] hover:bg-[#ffffff0a] hover:text-[#ecedee]`,children:`Reject`})]}):null]}),r?(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2 border-l-2 border-l-[#6ca6ff] bg-[#ffffff05] py-2 pl-[38px] pr-3.5`,children:[e.notice?(0,Y.jsx)(`span`,{className:`font-sans text-xs text-[#f5b544]`,children:e.notice}):null,(0,Y.jsx)(b0,{artifacts:e.artifacts})]}):null]},e.id)})})}var W0=`font-['Geist_Mono',monospace]`;function G0({text:e,className:t}){return(0,Y.jsx)(Y.Fragment,{children:h1(e).map((e,n)=>e.code?(0,Y.jsx)(`span`,{className:`${W0} text-xs`,children:e.text},n):(0,Y.jsx)(`span`,{className:t,children:e.text},n))})}function K0({children:e}){return(0,Y.jsx)(`div`,{className:`flex items-center gap-2 px-3.5 py-2.5`,children:e})}function q0({onClick:e}){return(0,Y.jsxs)(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),e()},className:`flex h-[22px] shrink-0 items-center gap-[5px] rounded-md border border-[#ffffff1a] bg-[#1a1c21] px-[7px] hover:bg-[#202228]`,children:[(0,Y.jsx)(ie,{className:`size-3 text-[#ecedee]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`whitespace-nowrap font-sans text-xs text-[#ecedee]`,children:`Go to field`})]})}function J0({findings:e,validateBusy:t,validateError:n,onAskFix:r,onGoToField:i}){let[a,o]=(0,J.useState)(null),s=(0,J.useMemo)(()=>e?u1(e):[],[e]),c=s.some(e=>c1(e)===`warning`),l=c?`w-[72px]`:`w-14`,u=c?`pl-[82px]`:`pl-[66px]`;return n?(0,Y.jsxs)(K0,{children:[(0,Y.jsx)(d,{className:`size-3.5 shrink-0 text-[#f2645a]`,"aria-hidden":!0}),(0,Y.jsxs)(`span`,{className:`font-sans text-xs text-[#f2645a]`,children:[`Validation could not run: `,n]})]}):e===null?(0,Y.jsx)(K0,{children:t?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(bt,{className:`size-3.5 animate-spin text-[#a7aab2]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`font-sans text-xs text-[#a7aab2]`,children:`Validating…`})]}):(0,Y.jsx)(`span`,{className:`font-sans text-xs text-[#8b8f98]`,children:`Not validated yet. Press V or click Validate to check this draft.`})}):s.length===0?(0,Y.jsxs)(K0,{children:[t?(0,Y.jsx)(bt,{className:`size-3.5 animate-spin text-[#a7aab2]`,"aria-hidden":!0}):(0,Y.jsx)(M,{className:`size-3.5 text-[#4cc38a]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`font-sans text-xs text-[#a7aab2]`,children:`No problems`})]}):(0,Y.jsx)(`div`,{className:`flex w-full flex-col py-1.5${t?` opacity-60`:``}`,children:s.map((e,t)=>{let n=m1(e,t),s=n===a,c=c1(e),d=p1(e),f=()=>o(n);if(c===`error`)return(0,Y.jsxs)(`div`,{onClick:f,className:`flex w-full flex-col gap-[3px] border-l-2 px-3.5 py-[7px] ${s?`border-l-[#f2645a] bg-[#ffffff08]`:`border-l-transparent hover:bg-[#ffffff05]`}`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2.5`,children:[(0,Y.jsxs)(`div`,{className:`flex ${l} shrink-0 items-center gap-[5px]`,children:[(0,Y.jsx)(St,{className:`size-[13px] text-[#f2645a]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`font-sans text-xs font-medium text-[#f2645a]`,children:`error`})]}),(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate ${W0} text-xs text-[#ecedee]`,title:d,children:d}),(0,Y.jsxs)(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),r(e)},className:`flex h-[22px] shrink-0 items-center gap-[5px] rounded-md px-1.5 hover:bg-[#ffffff0a]`,children:[(0,Y.jsx)(ot,{className:`size-3 text-[#a7aab2]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`whitespace-nowrap font-sans text-xs font-medium text-[#a7aab2]`,children:`Ask agent to fix`})]}),(0,Y.jsx)(q0,{onClick:()=>i(e)})]}),(0,Y.jsx)(`div`,{className:`${u} text-[13px] leading-[1.45] text-[#ecedee]`,children:(0,Y.jsx)(G0,{text:e.message,className:`font-sans text-[13px]`})})]},n);let p=c===`warning`;return(0,Y.jsxs)(`div`,{onClick:f,title:e.message,className:`group flex h-[30px] w-full items-center gap-2.5 border-l-2 px-3.5 ${s?`${p?`border-l-[#a7aab2]`:`border-l-[#8b8f98]`} bg-[#ffffff08]`:`border-l-transparent hover:bg-[#ffffff05]`}`,children:[(0,Y.jsxs)(`div`,{className:`flex ${l} shrink-0 items-center gap-[5px]`,children:[p?(0,Y.jsx)(je,{className:`size-[13px] text-[#a7aab2]`,"aria-hidden":!0}):(0,Y.jsx)(pt,{className:`size-[13px] text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`font-sans text-xs text-[#a7aab2]`,children:c})]}),(0,Y.jsx)(`span`,{className:`max-w-[40%] shrink-0 truncate ${W0} text-xs text-[#8b8f98]`,children:d}),(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-sans text-[13px] text-[#a7aab2]`,children:(0,Y.jsx)(G0,{text:e.message,className:`font-sans text-[13px]`})}),(0,Y.jsx)(`div`,{className:s?`flex`:`hidden group-hover:flex`,children:(0,Y.jsx)(q0,{onClick:()=>i(e)})})]},n)})})}var Y0=340;function X0(e){let t=e.getBoundingClientRect(),n=Math.max(8,Math.min(t.left,window.innerWidth-Y0-8));return t.top>316||t.top>window.innerHeight-t.bottom?{left:n,bottom:window.innerHeight-t.top+6}:{left:n,top:t.bottom+6}}function Z0({anchorRef:e,tasks:t,loading:n,onPick:r,onClose:i}){let[a,o]=(0,J.useState)(``),[s,c]=(0,J.useState)(0),[l,u]=(0,J.useState)(null),d=(0,J.useRef)(null),f=(0,J.useRef)(i);f.current=i;let p=(0,J.useMemo)(()=>x1(t,a),[a,t]);if((0,J.useLayoutEffect)(()=>{let t=e.current;if(!t)return;let n=()=>u(X0(t));return n(),window.addEventListener(`resize`,n),()=>window.removeEventListener(`resize`,n)},[e]),(0,J.useEffect)(()=>{let t=t=>{let n=t.target;n&&(d.current?.contains(n)||e.current?.contains(n)||f.current())};return document.addEventListener(`pointerdown`,t,!0),()=>document.removeEventListener(`pointerdown`,t,!0)},[e]),(0,J.useEffect)(()=>{c(0)},[a]),!l)return null;let m=n?`Loading tasks…`:t.length===0?`No tasks in the catalog`:`No tasks match`;return(0,JP.createPortal)((0,Y.jsxs)(`div`,{ref:d,role:`dialog`,"aria-label":`Attach existing task`,style:{left:l.left,top:l.top,bottom:l.bottom,width:Y0},className:`fixed z-[70] flex max-h-[300px] flex-col overflow-clip rounded-[10px] border border-[#ffffff1a] bg-[#1a1c21] font-sans shadow-[0px_16px_48px_rgba(0,0,0,0.55)]`,onKeyDown:e=>{if(e.key===`Escape`)e.preventDefault(),e.stopPropagation(),i();else if(e.key===`ArrowDown`)e.preventDefault(),c(e=>Math.min(p.length-1,e+1));else if(e.key===`ArrowUp`)e.preventDefault(),c(e=>Math.max(0,e-1));else if(e.key===`Enter`){let t=p[s];t&&(e.preventDefault(),r(t))}},children:[(0,Y.jsxs)(`div`,{className:`flex h-10 shrink-0 items-center gap-2 border-b border-b-[#ffffff12] px-3`,children:[(0,Y.jsx)(Oe,{className:`size-3.5 shrink-0 text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsx)(`input`,{autoFocus:!0,value:a,onChange:e=>o(e.target.value),placeholder:`Filter tasks…`,"aria-label":`Filter tasks`,spellCheck:!1,className:`min-w-0 flex-1 bg-transparent text-[13px] text-[#ecedee] outline-none placeholder:text-[#8b8f98]`})]}),p.length===0?(0,Y.jsx)(`div`,{className:`px-3 py-3 text-xs text-[#8b8f98]`,children:m}):(0,Y.jsx)(`ul`,{role:`listbox`,className:`min-h-0 flex-1 overflow-y-auto py-1`,children:p.map((e,t)=>(0,Y.jsx)(`li`,{role:`option`,"aria-selected":t===s,children:(0,Y.jsxs)(`button`,{type:`button`,onMouseEnter:()=>c(t),onClick:()=>r(e),className:`flex w-full items-center gap-2.5 px-3 py-1.5 text-left ${t===s?`bg-[#ffffff0a]`:``}`,children:[(0,Y.jsx)(P,{className:`size-3.5 shrink-0 text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,Y.jsx)(`span`,{className:`truncate font-['Geist_Mono',monospace] text-xs text-[#ecedee]`,children:e.id}),(0,Y.jsx)(`span`,{className:`truncate font-['Geist_Mono',monospace] text-[11px] text-[#8b8f98]`,children:e.path})]})]})},e.path))})]}),document.body)}var Q0=`font-['Geist_Mono',monospace]`;function $0({task:e,tasks:t,tasksLoading:n,onAttachTask:r,onCreateTask:i,onDetachTask:a}){let[o,s]=(0,J.useState)(!1),c=(0,J.useRef)(null),l=(0,J.useRef)(null),u=(0,J.useMemo)(()=>e?b1(e.body):[],[e]),d=o?(0,Y.jsx)(Z0,{anchorRef:e?l:c,tasks:t,loading:n,onPick:e=>{s(!1),r(e)},onClose:()=>s(!1)}):null;return e?(0,Y.jsxs)(`div`,{className:`flex w-full flex-col`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2.5 border-b border-b-[#ffffff0d] px-3.5 py-2`,children:[(0,Y.jsx)(P,{className:`size-3.5 shrink-0 text-[#a7aab2]`,"aria-hidden":!0}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,Y.jsx)(`span`,{className:`truncate ${Q0} text-xs text-[#ecedee]`,title:e.filename,children:e.filename}),(0,Y.jsx)(`span`,{className:`truncate ${Q0} text-[11px] text-[#8b8f98]`,title:e.path??void 0,children:e.path??`attached to draft · not on disk`})]}),(0,Y.jsxs)(`button`,{ref:l,type:`button`,"aria-expanded":o,onClick:()=>s(e=>!e),className:`flex h-[26px] shrink-0 items-center gap-1.5 rounded-md px-2 hover:bg-[#ffffff0a]`,children:[(0,Y.jsx)(C,{className:`size-3.5 text-[#a7aab2]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`font-sans text-xs font-medium text-[#a7aab2]`,children:`Replace`})]}),(0,Y.jsxs)(`button`,{type:`button`,onClick:a,className:`flex h-[26px] shrink-0 items-center gap-1.5 rounded-md px-2 hover:bg-[#ffffff0a]`,children:[(0,Y.jsx)($e,{className:`size-3.5 text-[#a7aab2]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`font-sans text-xs font-medium text-[#a7aab2]`,children:`Detach`})]})]}),u.length===0?(0,Y.jsx)(`p`,{className:`px-3.5 py-2.5 font-sans text-xs text-[#8b8f98]`,children:`This task has no fields.`}):(0,Y.jsx)(`dl`,{className:`flex flex-col py-1.5`,children:u.map(e=>(0,Y.jsxs)(`div`,{className:`flex h-6 items-center gap-3 px-3.5`,children:[(0,Y.jsx)(`dt`,{className:`w-32 shrink-0 truncate ${Q0} text-xs text-[#8b8f98]`,children:e.key}),(0,Y.jsx)(`dd`,{className:`min-w-0 flex-1 truncate ${Q0} text-xs text-[#ecedee]`,title:e.value,children:e.value})]},e.key))}),d]}):(0,Y.jsxs)(`div`,{className:`flex h-full w-full flex-col items-center justify-center gap-3 px-6`,children:[(0,Y.jsx)(`div`,{className:`flex size-9 items-center justify-center rounded-[10px] border border-dashed border-[#ffffff26]`,children:(0,Y.jsx)(P,{className:`size-4 text-[#8b8f98]`,"aria-hidden":!0})}),(0,Y.jsxs)(`div`,{className:`flex max-w-[360px] flex-col items-center gap-1`,children:[(0,Y.jsx)(`span`,{className:`font-sans text-[13px] font-medium text-[#ecedee]`,children:`No task attached`}),(0,Y.jsx)(`span`,{className:`text-center font-sans text-xs leading-[1.45] text-[#8b8f98]`,children:`Pipelines save fine without one; attach a task to run right after saving.`})]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsxs)(`button`,{ref:c,type:`button`,"aria-expanded":o,onClick:()=>s(e=>!e),className:`flex h-8 items-center gap-2 rounded-lg border border-[#ffffff1a] bg-[#1a1c21] px-3 hover:bg-[#202228]`,children:[(0,Y.jsx)(ge,{className:`size-3.5 text-[#ecedee]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`whitespace-nowrap font-sans text-[13px] font-medium text-[#ecedee]`,children:`Attach existing task`})]}),(0,Y.jsxs)(`button`,{type:`button`,onClick:i,className:`flex h-8 items-center gap-2 rounded-lg px-3 hover:bg-[#ffffff0a]`,children:[(0,Y.jsx)(ze,{className:`size-3.5 text-[#a7aab2]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`whitespace-nowrap font-sans text-[13px] font-medium text-[#a7aab2]`,children:`Create task`})]})]}),d]})}var e2=`font-['Geist_Mono',monospace]`;function t2({active:e,onClick:t,children:n}){return(0,Y.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":e,onClick:t,className:`group/tab flex items-center gap-[5px] border-b-2 ${e?`border-b-[#ecedee]`:`border-b-transparent`}`,children:n})}function n2(e){return`whitespace-nowrap font-sans text-xs ${e?`font-medium text-[#ecedee]`:`text-[#a7aab2] group-hover/tab:text-[#ecedee]`}`}function r2({tab:e,onTabChange:t,collapsed:n,onCollapsedChange:r,task:i,tasks:a,tasksLoading:o,onAttachTask:s,onCreateTask:c,onDetachTask:l,findings:u,validatedAt:d,validateBusy:f,validateError:p,onAskFix:m,onGoToField:h,mutationCards:g,onAccept:_,onReject:v}){let y=O1(d,f,IJ(5e3,d!==null)),b=g1(u),x=v1(i),S=e=>{t(e),n&&r(!1)},C=t=>!n&&e===t;return(0,Y.jsxs)(`section`,{"aria-label":`Draft details`,className:`flex w-full min-w-0 shrink-0 flex-col border-t border-t-[#ffffff12] bg-[#131418] ${n?`h-[35px]`:`h-[200px]`}`,children:[(0,Y.jsxs)(`div`,{role:`tablist`,className:`flex h-[34px] w-full shrink-0 gap-4 border-b px-3.5 ${n?`border-b-transparent`:`border-b-[#ffffff12]`}`,children:[(0,Y.jsxs)(t2,{active:C(`task`),onClick:()=>S(`task`),children:[(0,Y.jsx)(Ct,{className:`size-3 ${C(`task`)?`text-[#ecedee]`:`text-[#8b8f98]`}`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:n2(C(`task`)),children:`Task`}),x?(0,Y.jsx)(`span`,{className:`max-w-[200px] truncate ${e2} text-[11px] text-[#8b8f98]`,children:x}):null]}),(0,Y.jsxs)(t2,{active:C(`problems`),onClick:()=>S(`problems`),children:[(0,Y.jsx)(`span`,{className:n2(C(`problems`)),children:`Problems`}),b.kind===`errors`?(0,Y.jsxs)(`span`,{className:`flex h-4 items-center gap-0.5 rounded-sm bg-[#f2645a1f] px-1`,children:[(0,Y.jsx)(St,{className:`size-2.5 text-[#f2645a]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`${e2} text-[11px] font-medium text-[#f2645a]`,children:b.label})]}):(0,Y.jsx)(`span`,{className:`${e2} text-[11px] text-[#8b8f98]`,children:b.label})]}),(0,Y.jsxs)(t2,{active:C(`changes`),onClick:()=>S(`changes`),children:[(0,Y.jsx)(`span`,{className:n2(C(`changes`)),children:`Changes`}),(0,Y.jsx)(`span`,{className:`${e2} text-[11px] text-[#8b8f98]`,children:g.size})]}),(0,Y.jsx)(`div`,{className:`min-w-0 flex-1`}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[y?(0,Y.jsx)(`span`,{className:`whitespace-nowrap ${e2} text-[11px] text-[#8b8f98]`,children:y}):null,(0,Y.jsx)(`button`,{type:`button`,"aria-label":n?`Expand panel`:`Collapse panel`,"aria-expanded":!n,onClick:()=>r(!n),className:`flex size-[22px] items-center justify-center rounded-md hover:bg-[#ffffff0a]`,children:n?(0,Y.jsx)(_t,{className:`size-[13px] text-[#8b8f98]`,"aria-hidden":!0}):(0,Y.jsx)(B,{className:`size-[13px] text-[#8b8f98]`,"aria-hidden":!0})})]})]}),n?null:(0,Y.jsx)(`div`,{role:`tabpanel`,className:`min-h-0 flex-1 overflow-y-auto`,children:e===`task`?(0,Y.jsx)($0,{task:i,tasks:a,tasksLoading:o,onAttachTask:s,onCreateTask:c,onDetachTask:l}):e===`problems`?(0,Y.jsx)(J0,{findings:u,validateBusy:f,validateError:p,onAskFix:m,onGoToField:h}):(0,Y.jsx)(U0,{mutationCards:g,onAccept:_,onReject:v})})]})}var i2=`font-['Geist_Mono',monospace]`,a2=`flex h-6 shrink-0 items-center rounded-md border border-[#ffffff1a] bg-[#131418] transition-colors`,o2=`flex size-[22px] items-center justify-center rounded-md text-[#a7aab2] hover:bg-[#1a1c21] disabled:cursor-default disabled:opacity-40 disabled:hover:bg-transparent`;function s2({stageCount:e,zoom:t,canZoomIn:n,canZoomOut:r,viewDisabled:i=!1,onAddStage:a,onZoomIn:o,onZoomOut:s,onFit:c,onAutoLayout:l}){return(0,Y.jsxs)(`div`,{className:`flex h-9 w-full shrink-0 items-center gap-2 border-b border-b-[#ffffff12] px-3.5`,children:[(0,Y.jsx)(Ye,{"aria-hidden":!0,className:`size-[13px] shrink-0 text-[#8b8f98]`}),(0,Y.jsx)(`span`,{className:`whitespace-nowrap text-xs font-medium text-[#ecedee]`,children:`Draft graph`}),(0,Y.jsxs)(`span`,{className:`${i2} whitespace-nowrap text-[11px] text-[#8b8f98]`,children:[e,` `,e===1?`stage`:`stages`]}),(0,Y.jsx)(`span`,{className:`min-w-0 flex-1`}),(0,Y.jsxs)(`button`,{type:`button`,className:`${a2} gap-[5px] px-2 hover:bg-[#1a1c21]`,onClick:a,"aria-keyshortcuts":`A`,children:[(0,Y.jsx)(se,{"aria-hidden":!0,className:`size-3 text-[#a7aab2]`}),(0,Y.jsx)(`span`,{className:`whitespace-nowrap text-xs text-[#ecedee]`,children:`Add stage`}),(0,Y.jsx)(`span`,{className:`${i2} text-[11px] text-[#8b8f98]`,children:`A`})]}),(0,Y.jsxs)(`div`,{className:a2,children:[(0,Y.jsx)(`button`,{type:`button`,className:o2,onClick:s,disabled:i||!r,"aria-label":`Zoom out`,children:(0,Y.jsx)(k,{"aria-hidden":!0,className:`size-3`})}),(0,Y.jsxs)(`span`,{className:`${i2} min-w-[34px] px-0.5 text-center text-[11px] text-[#a7aab2]`,children:[Math.round(t*100),`%`]}),(0,Y.jsx)(`button`,{type:`button`,className:o2,onClick:o,disabled:i||!n,"aria-label":`Zoom in`,children:(0,Y.jsx)(se,{"aria-hidden":!0,className:`size-3`})})]}),(0,Y.jsx)(`button`,{type:`button`,className:`${a2} size-6 justify-center hover:bg-[#1a1c21] disabled:cursor-default disabled:opacity-40 disabled:hover:bg-[#131418]`,onClick:c,disabled:i,"aria-label":`Fit to view`,title:`Fit to view`,children:(0,Y.jsx)(vt,{"aria-hidden":!0,className:`size-3 text-[#a7aab2]`})}),(0,Y.jsxs)(`button`,{type:`button`,className:`${a2} gap-[5px] px-2 hover:bg-[#1a1c21] disabled:cursor-default disabled:opacity-40 disabled:hover:bg-[#131418]`,onClick:l,disabled:i,children:[(0,Y.jsx)(Ie,{"aria-hidden":!0,className:`size-3 text-[#a7aab2]`}),(0,Y.jsx)(`span`,{className:`whitespace-nowrap text-xs text-[#ecedee]`,children:`Auto layout`})]})]})}function c2({onAddStage:e}){return(0,Y.jsxs)(`div`,{className:`flex min-h-0 w-full flex-1 flex-col items-center justify-center gap-4 [background-image:radial-gradient(circle,_rgba(255,_255,_255,_0.07)_0%,_rgba(0,_0,_0,_0)_100%)]`,children:[(0,Y.jsxs)(`div`,{className:`flex h-14 w-[184px] items-center gap-2.5 rounded-[10px] border border-dashed border-[#ffffff33] bg-[#0c0d0f] px-3`,children:[(0,Y.jsx)(`div`,{className:`flex size-7 shrink-0 items-center justify-center rounded-md border border-dashed border-[#ffffff26]`,children:(0,Y.jsx)(fe,{"aria-hidden":!0,className:`size-3.5 text-[#8b8f98]`})}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-col`,children:[(0,Y.jsx)(`span`,{className:`whitespace-nowrap text-[13px] font-medium text-[#a7aab2]`,children:`Entry`}),(0,Y.jsx)(`span`,{className:`whitespace-nowrap font-['Geist_Mono',monospace] text-[11px] text-[#8b8f98]`,children:`no stage yet`})]})]}),(0,Y.jsx)(`div`,{className:`h-[18px] w-px border-l border-l-[#ffffff26]`}),(0,Y.jsxs)(`button`,{type:`button`,className:`flex h-8 items-center gap-2 rounded-lg border border-[#ffffff1a] bg-[#1a1c21] px-3 hover:bg-[#202227]`,onClick:e,"aria-keyshortcuts":`A`,children:[(0,Y.jsx)(se,{"aria-hidden":!0,className:`size-3.5 text-[#ecedee]`}),(0,Y.jsx)(`span`,{className:`whitespace-nowrap text-[13px] font-medium text-[#ecedee]`,children:`Add first stage`}),(0,Y.jsx)(Nl,{className:`bg-[#131418]`,children:`A`})]}),(0,Y.jsxs)(`div`,{className:`flex max-w-[320px] items-center gap-1.5`,children:[(0,Y.jsx)(o,{"aria-hidden":!0,className:`size-3.5 shrink-0 text-[#8b8f98]`}),(0,Y.jsx)(`span`,{className:`text-center text-xs leading-[1.45] text-[#8b8f98]`,children:`Or tell the agent what you need. Stages appear here as you talk.`})]})]})}var l2=`font-['Geist_Mono',monospace]`;function u2(e,t){let n=`flex w-[208px] shrink-0 cursor-pointer flex-col gap-[3px] self-start rounded-[10px] border px-2.5 py-[7px] text-left outline-none transition-[background-color,border-color,box-shadow] focus-visible:shadow-[0px_0px_0px_3px_rgba(108,166,255,0.14)]`,r=e.status===`edited`?`border-dashed`:``;return t?`${n} ${r} bg-[#1a1c21] border-[#6ca6ffd9] shadow-[0px_0px_0px_3px_rgba(108,166,255,0.14)]`:e.status===`edited`?`${n} ${r} bg-[#131418] border-[#6ca6ff99] hover:bg-[#16181c]`:e.status===`new`?`${n} bg-[#131418] border-[#6ca6ff99] hover:bg-[#16181c]`:`${n} bg-[#131418] border-[#ffffff1a] hover:border-[#ffffff26] hover:bg-[#16181c]`}function d2(e,t){let n=`h-[18px] content-center whitespace-nowrap rounded-sm border px-1.5 text-[11px] leading-normal`;switch(e.variant){case`changed`:return`${n} ${l2} bg-[#6ca6ff1a] border-[#6ca6ff73] text-[#6ca6ff]`;case`dashed`:return`${n} font-sans border-dashed border-[#ffffff1f] text-[#8b8f98]`;case`dashed-changed`:return`${n} font-sans border-dashed border-[#6ca6ff73] text-[#6ca6ff]`;default:return`${n} ${l2} ${t?`bg-[#131418]`:`bg-[#1a1c21]`} border-[#ffffff1a] text-[#a7aab2]`}}function f2({status:e}){return e===`unchanged`?null:(0,Y.jsx)(`span`,{className:`h-4 shrink-0 content-center rounded-sm border px-[5px] font-sans text-[10px] font-medium leading-normal text-[#6ca6ff] ${e===`new`?`bg-[#6ca6ff24] border-[#6ca6ff99]`:`border-dashed border-[#6ca6ff99]`}`,children:e})}function p2({node:e,selected:t,onSelect:n}){return(0,Y.jsxs)(`button`,{type:`button`,"data-graph-node":e.id,"aria-pressed":t,className:u2(e,t),onClick:()=>n(e.id),children:[(0,Y.jsxs)(`span`,{className:`flex w-full items-center gap-1.5`,children:[(0,Y.jsx)(`span`,{className:`${l2} min-w-0 flex-1 truncate text-[13px] font-medium leading-normal text-[#ecedee]`,title:e.id,children:e.id}),(0,Y.jsx)(f2,{status:e.status})]}),(0,Y.jsx)(`span`,{className:`${l2} block w-full truncate text-[11px] leading-normal text-[#8b8f98]`,title:e.model,children:e.model}),e.chips.length>0?(0,Y.jsx)(`span`,{className:`flex flex-wrap gap-1 pt-0.5`,children:e.chips.map(e=>(0,Y.jsx)(`span`,{className:d2(e,t),children:e.label},e.kind))}):null,e.errorSummary?(0,Y.jsxs)(`span`,{className:`mt-0.5 flex w-full items-center gap-[5px] border-t border-t-[#f2645a40] pt-[5px]`,children:[(0,Y.jsx)(St,{"aria-hidden":!0,className:`size-3 shrink-0 text-[#f2645a]`}),(0,Y.jsx)(`span`,{className:`${l2} truncate text-[11px] leading-normal text-[#f2645a]`,children:e.errorSummary})]}):null]})}function m2(){return(0,Y.jsx)(`div`,{className:`absolute left-3 top-3 z-10 flex h-6 items-center gap-2.5 rounded-md border border-[#ffffff12] bg-[#0c0d0f] px-2`,children:[{label:`new`,swatch:`bg-[#6ca6ff24] border-[#6ca6ffbf]`},{label:`edited`,swatch:`border-dashed border-[#6ca6ffbf]`},{label:`unchanged`,swatch:`bg-[#131418] border-[#ffffff1f]`}].map(e=>(0,Y.jsxs)(`span`,{className:`flex items-center gap-[5px]`,children:[(0,Y.jsx)(`span`,{className:`block size-2.5 rounded-[3px] border ${e.swatch}`}),(0,Y.jsx)(`span`,{className:`whitespace-nowrap font-sans text-[11px] text-[#a7aab2]`,children:e.label})]},e.label))})}function h2({connector:e}){return(0,Y.jsx)(`div`,{className:`relative shrink-0`,style:{width:e.width,height:e.height},"data-connector":e.kind,children:e.segments.map((e,t)=>(0,Y.jsx)(`div`,{className:`absolute ${e.changed?`bg-[#6ca6ff8c]`:`bg-[#ffffff33]`}`,style:{left:e.x,top:e.y,width:e.width,height:e.height}},t))})}function g2({row:e,width:t,nodes:n,selectedStageId:r,onSelect:i}){return(0,Y.jsx)(`div`,{className:`flex shrink-0`,style:{width:t},children:(0,Y.jsx)(`div`,{className:`flex items-start gap-4`,style:{marginLeft:e.offset,width:e.width},children:e.items.map(e=>{if(e.kind===`pass`)return(0,Y.jsx)(`div`,{className:`flex shrink-0 justify-center self-stretch`,style:{width:e.width},children:(0,Y.jsx)(`div`,{className:`w-px ${e.changed?`bg-[#6ca6ff8c]`:`bg-[#ffffff33]`}`})},e.key);let t=n.get(e.id);return t?(0,Y.jsx)(p2,{node:t,selected:t.id===r,onSelect:i},e.id):null})})})}function _2({draft:e,baseline:t,selectedStageId:n,findings:r,onSelectStage:i,onAddStage:a,defaultModel:o=null}){let s=(0,J.useMemo)(()=>xj(e,{baseline:t,findings:r,defaultModel:o}),[e,t,r,o]),c=(0,J.useMemo)(()=>new Map(s.nodes.map(e=>[e.id,e])),[s.nodes]),[l,u]=(0,J.useState)(oP),[d,f]=(0,J.useState)(!1),p=(0,J.useRef)(null),m=(0,J.useRef)(null),h=(0,J.useRef)(null),g=s.nodes.length===0,_=()=>{let e=p.current,t=m.current;!e||!t||u(lP({width:t.offsetWidth,height:t.offsetHeight},{width:e.clientWidth,height:e.clientHeight}))},v=e=>{e.button===0&&(e.target.closest(`[data-graph-node]`)||(h.current={pointerId:e.pointerId,startX:e.clientX,startY:e.clientY,panX:l.panX,panY:l.panY,moved:!1},e.currentTarget.setPointerCapture(e.pointerId)))},y=e=>{let t=h.current;if(!t||t.pointerId!==e.pointerId)return;let n=e.clientX-t.startX,r=e.clientY-t.startY;!t.moved&&Math.abs(n)+Math.abs(r)<3||(t.moved||(t.moved=!0,f(!0)),u(e=>({...e,panX:t.panX+n,panY:t.panY+r})))},b=(e,t)=>{let n=h.current;!n||n.pointerId!==e.pointerId||(h.current=null,f(!1),e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId),!n.moved&&!t&&i(null))};return(0,Y.jsxs)(`div`,{className:`flex min-h-0 w-full flex-1 flex-col bg-[#0c0d0f]`,children:[(0,Y.jsx)(s2,{stageCount:s.nodes.length,zoom:l.zoom,canZoomIn:l.zoom<2,canZoomOut:l.zoom>iP,viewDisabled:g,onAddStage:a,onZoomIn:()=>u(e=>({...e,zoom:cP(e.zoom,1)})),onZoomOut:()=>u(e=>({...e,zoom:cP(e.zoom,-1)})),onFit:_,onAutoLayout:_}),g?(0,Y.jsx)(c2,{onAddStage:a}):(0,Y.jsxs)(`div`,{ref:p,className:`relative flex min-h-0 w-full min-w-0 flex-1 touch-none select-none overflow-clip [background-image:radial-gradient(circle,_rgba(255,_255,_255,_0.06)_0%,_rgba(0,_0,_0,_0)_100%)] ${d?`cursor-grabbing`:`cursor-grab`}`,onPointerDown:v,onPointerMove:y,onPointerUp:e=>b(e,!1),onPointerCancel:e=>b(e,!0),children:[s.hasChanges?(0,Y.jsx)(m2,{}):null,(0,Y.jsx)(`div`,{className:`flex w-full justify-center px-3 pb-2.5 pt-[42px]`,children:(0,Y.jsx)(`div`,{ref:m,className:`flex shrink-0 flex-col items-center`,style:{transform:`translate(${l.panX}px, ${l.panY}px) scale(${l.zoom})`,transformOrigin:`50% 0`},children:s.rows.map((e,t)=>(0,Y.jsxs)(J.Fragment,{children:[(0,Y.jsx)(g2,{row:e,width:s.width,nodes:c,selectedStageId:n,onSelect:i}),s.connectors[t]?(0,Y.jsx)(h2,{connector:s.connectors[t]}):null]},t))})})]})]})}function v2({stageCount:e,pipelineUntitled:t,onOpenPipelineTab:n}){return(0,Y.jsxs)(`div`,{className:`flex min-h-0 w-full flex-1 flex-col`,children:[(0,Y.jsxs)(`div`,{className:`flex w-full flex-1 flex-col items-center justify-center gap-3 px-8`,children:[(0,Y.jsx)(`div`,{className:`flex size-10 items-center justify-center rounded-[10px] border border-[#ffffff12] bg-[#1a1c21]`,children:(0,Y.jsx)(h,{className:`size-4 text-[#8b8f98]`,"aria-hidden":!0})}),(0,Y.jsx)(`div`,{className:`text-center text-[13px] font-medium leading-normal text-[#ecedee]`,children:`Select a stage to edit its fields`}),(0,Y.jsx)(`div`,{className:`text-center text-xs leading-[1.45] text-[#8b8f98]`,children:e===0?`Prompt, io, verify, on_verify_fail, and HITL settings show here once a stage exists.`:`Click a stage on the graph to edit its prompt, io, verify, on_verify_fail, and HITL settings.`})]}),(0,Y.jsxs)(`button`,{type:`button`,onClick:n,className:`mx-3.5 mb-3.5 flex items-start gap-2.5 rounded-[10px] border border-[#ffffff12] bg-[#0f1013] px-3 py-2.5 text-left hover:border-[#ffffff1a] hover:bg-[#121317]`,children:[(0,Y.jsx)(he,{className:`mt-0.5 size-3.5 shrink-0 text-[#a7aab2]`,"aria-hidden":!0}),(0,Y.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col gap-0.5`,children:[(0,Y.jsx)(`span`,{className:`text-xs font-medium leading-normal text-[#ecedee]`,children:`Pipeline tab`}),(0,Y.jsx)(`span`,{className:`text-xs leading-[1.45] text-[#8b8f98]`,children:t?`Set the pipeline id, entry stage, and routing before you add stages.`:`Edit the pipeline id, default model, and how stages connect.`})]}),(0,Y.jsx)(Ge,{className:`mt-0.5 size-3.5 shrink-0 text-[#8b8f98]`,"aria-hidden":!0})]})]})}function y2({value:e,findings:t,onCommit:n}){let{text:r,setText:i,setEditing:a}=xF(e);function o(){a(!1);let t=r.trim();if(!t){i(e);return}t!==e&&n(t)}return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{className:gF({error:yF(t),className:`h-[30px] px-2.5`}),children:(0,Y.jsx)(`input`,{"aria-label":`Pipeline id`,value:r,spellCheck:!1,placeholder:`untitled`,onFocus:()=>a(!0),onChange:e=>i(e.target.value),onBlur:o,onKeyDown:t=>{t.key===`Enter`?(t.preventDefault(),t.currentTarget.blur()):t.key===`Escape`&&(t.preventDefault(),i(e),a(!1),t.currentTarget.blur())},className:`h-full min-w-0 flex-1 bg-transparent text-xs leading-normal text-[#ecedee] outline-none placeholder:text-[#8b8f98] ${fF}`})}),NM(e)?(0,Y.jsx)(`div`,{className:`text-[11px] leading-[1.45] text-[#8b8f98]`,children:`Name the pipeline before saving. The id becomes the pipeline file name.`}):null,(0,Y.jsx)(vF,{findings:t})]})}function b2({draft:e,baseline:t,findings:n,defaultModel:r,onDraftChange:i,pipelinePath:a}){let o=wM(e),s=(0,J.useMemo)(()=>JM(n,e),[n,e]),c=MM(e,t),l=a??PM(o.id),u=o.stages.map(e=>e.id);return(0,Y.jsxs)(`div`,{className:`flex w-full flex-col`,children:[(0,Y.jsxs)(`div`,{className:`flex w-full shrink-0 flex-col gap-[3px] border-b border-b-[#ffffff12] px-3.5 py-2.5`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,Y.jsx)(`div`,{className:`min-w-0 truncate text-sm font-medium leading-normal text-[#ecedee] ${fF}`,children:o.id.trim()||`untitled`}),(0,Y.jsx)(bF,{kind:t?c?`edited`:`unchanged`:`new`})]}),(0,Y.jsxs)(`div`,{className:`truncate text-[11px] leading-normal text-[#8b8f98] ${fF}`,children:[l,c?` · unsaved`:``]})]}),(0,Y.jsxs)(`div`,{className:`flex w-full flex-col gap-3 px-3.5 py-3`,children:[s.general.length>0?(0,Y.jsx)(vF,{findings:s.general}):null,(0,Y.jsxs)(`div`,{className:`flex flex-col gap-[5px]`,children:[(0,Y.jsx)(_F,{children:`id`}),(0,Y.jsx)(y2,{value:o.id,findings:s.id,onCommit:t=>i(TM(e,t))})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-[5px]`,children:[(0,Y.jsx)(_F,{children:`default model`}),(0,Y.jsx)(cF,{ariaLabel:`Pipeline default model`,value:o.model??null,inheritLabel:r?`Inherits default (${r})`:`Inherits default`,defaultModel:r,error:yF(s.model),onChange:t=>i(EM(e,t))}),(0,Y.jsx)(vF,{findings:s.model})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-[5px]`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(_F,{className:`flex-1`,children:`stages`}),(0,Y.jsx)(`div`,{className:`text-[11px] leading-normal text-[#8b8f98] ${fF}`,children:o.stages.length})]}),o.stages.length===0?(0,Y.jsx)(`div`,{className:`rounded-lg border border-dashed border-[#ffffff1a] px-2.5 py-2 text-xs leading-[1.45] text-[#8b8f98]`,children:`No stages yet. Add one from the graph or ask the agent.`}):(0,Y.jsx)(`div`,{className:`flex flex-col gap-1.5`,children:o.stages.map((n,r)=>{let a=u.filter(e=>e!==n.id);return(0,Y.jsxs)(`div`,{className:`group flex flex-col gap-1.5 rounded-lg border border-[#ffffff12] bg-[#0f1013] px-2 py-1.5`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,Y.jsx)(`div`,{className:`w-4 shrink-0 text-[11px] leading-normal text-[#8b8f98] ${fF}`,children:r+1}),(0,Y.jsx)(`div`,{className:`min-w-0 flex-1 truncate text-xs leading-normal text-[#ecedee] ${fF}`,children:n.id}),n.entry?(0,Y.jsx)(`span`,{className:`inline-flex h-4 shrink-0 items-center rounded-sm border border-[#ffffff1a] px-[5px] text-[10px] font-medium leading-normal text-[#a7aab2]`,children:`entry`}):null,(0,Y.jsx)(bF,{kind:jM(e,t,n.id)}),(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-center opacity-0 transition-opacity group-hover:opacity-100 group-focus-within:opacity-100`,children:[(0,Y.jsx)(`button`,{type:`button`,"aria-label":`Move ${n.id} up`,disabled:r===0,onClick:()=>i(kM(e,n.id,-1)),className:`flex size-5 items-center justify-center rounded-sm text-[#8b8f98] hover:bg-[#ffffff0d] hover:text-[#ecedee] disabled:opacity-30 disabled:hover:bg-transparent`,children:(0,Y.jsx)(_t,{className:`size-3`,"aria-hidden":!0})}),(0,Y.jsx)(`button`,{type:`button`,"aria-label":`Move ${n.id} down`,disabled:r===o.stages.length-1,onClick:()=>i(kM(e,n.id,1)),className:`flex size-5 items-center justify-center rounded-sm text-[#8b8f98] hover:bg-[#ffffff0d] hover:text-[#ecedee] disabled:opacity-30 disabled:hover:bg-transparent`,children:(0,Y.jsx)(B,{className:`size-3`,"aria-hidden":!0})})]})]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(`div`,{className:`w-[50px] shrink-0 text-[11px] leading-normal text-[#a7aab2] ${fF}`,children:`needs`}),(0,Y.jsx)(wF,{values:n.needs,addLabel:`Add a stage ${n.id} needs`,suggestions:a,onAdd:t=>{let r=t.filter(e=>a.includes(e));r.length>0&&i(OM(e,n.id,[...n.needs,...r]))},onRemove:t=>i(OM(e,n.id,n.needs.filter(e=>e!==t)))})]})]},n.id)})}),(0,Y.jsx)(vF,{findings:s.stages})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Y.jsx)(_F,{className:`pb-0.5`,children:`files`}),(0,Y.jsxs)(`div`,{className:`flex h-[22px] items-center gap-2`,children:[(0,Y.jsx)(`div`,{className:`w-[66px] shrink-0 text-[11px] leading-normal text-[#a7aab2] ${fF}`,children:`pipeline`}),(0,Y.jsx)(`div`,{className:`min-w-0 truncate text-[11px] leading-normal text-[#ecedee] ${fF}`,title:l,children:l})]}),(0,Y.jsxs)(`div`,{className:`flex h-[22px] items-center gap-2`,children:[(0,Y.jsx)(`div`,{className:`w-[66px] shrink-0 text-[11px] leading-normal text-[#a7aab2] ${fF}`,children:`stages`}),(0,Y.jsxs)(`div`,{className:`min-w-0 truncate text-[11px] leading-normal text-[#8b8f98] ${fF}`,children:[(e.stages??[]).length,` files · `,o.stages.length-o.stages.filter(e=>e.path).length,` inline`]})]})]})]})]})}var x2=1400,S2=[{mode:`fail`,label:`fail`,grow:`flex-1`},{mode:`retry`,label:`retry`,grow:`flex-1`},{mode:`ask_operator`,label:`ask_operator`,grow:`flex-[1.6_1_0%]`}],C2=`__multi__`;function w2({fieldKey:e,register:t,className:n=`flex flex-col gap-[5px]`,children:r}){return(0,Y.jsx)(`div`,{ref:n=>t(e,n),"data-field":e,className:n,children:r})}function T2({form:e,otherIds:t,findings:n,flash:r,onRename:i}){let{text:a,setText:o,setEditing:s}=xF(e.id),c=a.trim(),l=c!==e.id&&t.includes(c),u=c===``;function d(){if(s(!1),u||l||c===e.id){o(e.id);return}i(c)}let f=l?[{severity:`error`,code:`local.duplicate_id`,path:``,message:`Another stage already uses "${c}"`,category:`stage`}]:u?[{severity:`error`,code:`local.empty_id`,path:``,message:`Stage id is required`,category:`stage`}]:[];return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{className:gF({error:l||u||yF(n),flash:r,className:`h-[30px] px-2.5`}),children:(0,Y.jsx)(`input`,{"aria-label":`Stage id`,value:a,spellCheck:!1,onFocus:()=>s(!0),onChange:e=>o(e.target.value),onBlur:d,onKeyDown:t=>{t.key===`Enter`?(t.preventDefault(),t.currentTarget.blur()):t.key===`Escape`&&(t.preventDefault(),o(e.id),s(!1),t.currentTarget.blur())},className:`h-full min-w-0 flex-1 bg-transparent text-xs leading-normal text-[#ecedee] outline-none ${fF}`})}),(0,Y.jsx)(vF,{findings:[...f,...n]})]})}function E2({value:e,findings:t,flash:n,onCommit:r}){let{text:i,setText:a,setEditing:o}=xF(e);function s(){o(!1),i.trim()!==e.trim()&&r(i)}return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`div`,{className:gF({error:yF(t),flash:n,className:`h-[30px] gap-1.5 px-2.5`}),children:[(0,Y.jsx)(`span`,{className:`shrink-0 text-xs leading-normal text-[#8b8f98] ${fF}`,children:`$`}),(0,Y.jsx)(`input`,{"aria-label":`verify command`,value:i,spellCheck:!1,placeholder:`no command check`,onFocus:()=>o(!0),onChange:e=>a(e.target.value),onBlur:s,onKeyDown:t=>{t.key===`Enter`?(t.preventDefault(),t.currentTarget.blur()):t.key===`Escape`&&(t.preventDefault(),a(e),o(!1),t.currentTarget.blur())},className:`h-full min-w-0 flex-1 bg-transparent text-xs leading-normal text-[#ecedee] outline-none placeholder:text-[#8b8f98] ${fF}`})]}),(0,Y.jsx)(vF,{findings:t})]})}function D2({value:e,onCommit:t}){let{text:n,setText:r,setEditing:i}=xF(String(e));function a(){i(!1);let a=Number.parseInt(n,10);Number.isFinite(a)&&a>=1&&a!==e?t(a):r(String(e))}return(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(`div`,{className:mF,children:`Max attempts`}),(0,Y.jsx)(`div`,{className:gF({className:`h-[30px] w-[72px] px-2.5`}),children:(0,Y.jsx)(`input`,{"aria-label":`Max attempts`,inputMode:`numeric`,value:n,onFocus:()=>i(!0),onChange:e=>r(e.target.value.replace(/[^0-9]/g,``)),onBlur:a,onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),e.currentTarget.blur())},className:`h-full min-w-0 flex-1 bg-transparent text-xs leading-normal text-[#ecedee] outline-none ${fF}`})})]})}function O2({draft:e,baseline:t,stageId:n,findings:r,defaultModel:i,onDraftChange:a,onRenameStage:o,focusRequest:s,onFocusHandled:c,usedByCount:l=null}){let u=Zj(e,n),d=(0,J.useRef)(new Map),[f,p]=(0,J.useState)(null),m=(0,J.useRef)(null),h=(0,J.useRef)(null),g=(0,J.useRef)(null),[_,v]=(0,J.useState)(!1),y=xF(u?.systemPrompt??``),b=(0,J.useMemo)(()=>GM(r,n,u?.path??null),[r,n,u?.path]);function x(e,t){t?d.current.set(e,t):d.current.delete(e)}if((0,J.useEffect)(()=>{if(!s||s.nonce===m.current)return;m.current=s.nonce;let e=IM(s.field);h.current!==null&&cancelAnimationFrame(h.current),h.current=requestAnimationFrame(()=>{h.current=null;let t=d.current.get(e)??d.current.get(`id`);t&&(t.scrollIntoView({block:`center`,behavior:`smooth`}),t.querySelector(`input, textarea, select, button:not([disabled])`)?.focus({preventScroll:!0})),p(e===`general`?`id`:e),g.current&&clearTimeout(g.current),g.current=setTimeout(()=>p(null),x2),c?.()})},[s?.nonce]),(0,J.useEffect)(()=>()=>{h.current!==null&&cancelAnimationFrame(h.current),g.current&&clearTimeout(g.current)},[]),!u)return null;let S=jM(e,t,n),C=wM(e).stages.map(e=>e.id).filter(e=>e!==n),w=Qj(e,u,i),T=yM(y.text),E=u.path??`inline in ${PM(e.pipeline.id)}`,D=u.onVerifyFail??`fail`,O=D!==`fail`&&!dM(e,n),k=u.gateKinds.length>1?C2:u.gateKind??`confirm`,A=[...u.gateKinds.length>1?[{value:C2,label:u.gateKinds.join(`, `)}]:[],...Sj.map(e=>({value:e,label:e}))];function j(t){y.setText(t),a(eM(e,n,t))}function M(t,r){let i=aM(e,n,t,[...t===`input`?u.inputs:u.outputs,r.name]);r.type!==`string`&&(i=sM(i,n,t,r.name,r.type)),r.required||(i=cM(i,n,t,r.name,!1)),a(i)}function N(t){let r=t===`input`?`io.inputs`:`io.outputs`,i=t===`input`?u.inputs:u.outputs,o=t===`input`?u.inputFields:u.outputFields,s=t===`input`?u.inputsRef:u.outputsRef,c=b[r];return(0,Y.jsxs)(w2,{fieldKey:r,register:x,className:`flex flex-col gap-[5px]`,children:[(0,Y.jsxs)(`div`,{className:`flex items-start gap-2 ${t===`output`?`pt-0.5`:``}`,children:[(0,Y.jsx)(`div`,{className:`w-[50px] shrink-0 pt-1.5 text-[11px] leading-normal text-[#a7aab2] ${fF}`,children:t===`input`?`inputs`:`outputs`}),(0,Y.jsx)(kF,{side:t,fields:o,schemaName:s,error:yF(c),errorValues:KM(i,c),flash:f===r,onAdd:e=>M(t,e),onRename:(r,i)=>a(oM(e,n,t,r,i)),onType:(r,i)=>a(sM(e,n,t,r,i)),onRequired:(r,i)=>a(cM(e,n,t,r,i)),onRemove:r=>a(aM(e,n,t,i.filter(e=>e!==r)))})]}),(0,Y.jsx)(vF,{findings:c,indent:!0})]})}return(0,Y.jsxs)(`div`,{className:`flex w-full flex-col`,children:[(0,Y.jsxs)(`div`,{className:`flex w-full shrink-0 flex-col gap-[3px] border-b border-b-[#ffffff12] px-3.5 py-2.5`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,Y.jsx)(`div`,{className:`min-w-0 truncate text-sm font-medium leading-normal text-[#ecedee] ${fF}`,children:u.id}),(0,Y.jsx)(bF,{kind:S})]}),(0,Y.jsxs)(`div`,{className:`truncate text-[11px] leading-normal text-[#8b8f98] ${fF}`,children:[E,S===`unchanged`?``:` · unsaved`,l!=null&&l>1?` · Used by ${l}`:``]}),l!=null&&l>1?(0,Y.jsx)(`div`,{className:`text-[11px] leading-[1.45] text-[#a7aab2]`,children:`Shared stage. Saving writes this file for every pipeline that uses it.`}):null]}),(0,Y.jsxs)(`div`,{className:`flex w-full flex-col gap-3 px-3.5 py-3`,children:[b.general.length>0?(0,Y.jsx)(vF,{findings:b.general}):null,(0,Y.jsxs)(w2,{fieldKey:`id`,register:x,children:[(0,Y.jsx)(_F,{children:`id`}),(0,Y.jsx)(T2,{form:u,otherIds:C,findings:b.id,flash:f===`id`,onRename:e=>o(n,e)})]}),(0,Y.jsxs)(w2,{fieldKey:`model`,register:x,children:[(0,Y.jsx)(_F,{children:`model`}),(0,Y.jsx)(cF,{ariaLabel:`Stage model`,value:u.model??null,inheritLabel:w?`Inherits default (${w})`:`Inherits default`,defaultModel:i,error:yF(b.model),flash:f===`model`,onChange:t=>a($j(e,n,t))}),(0,Y.jsx)(vF,{findings:b.model})]}),(0,Y.jsxs)(w2,{fieldKey:`system_prompt`,register:x,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Y.jsx)(_F,{children:`system_prompt`}),(0,Y.jsx)(`button`,{type:`button`,"aria-label":`Expand system_prompt`,onClick:()=>v(!0),className:`-m-1 flex size-5 items-center justify-center rounded-sm text-[#8b8f98] hover:bg-[#ffffff0d] hover:text-[#ecedee]`,children:(0,Y.jsx)(te,{className:`size-3`,"aria-hidden":!0})})]}),(0,Y.jsxs)(`div`,{className:gF({error:yF(b.system_prompt),flash:f===`system_prompt`,className:`flex-col items-stretch gap-1 px-2.5 py-[7px]`}),children:[(0,Y.jsx)(`textarea`,{"aria-label":`system_prompt`,value:y.text,rows:5,spellCheck:!1,placeholder:`What should this stage do?`,onFocus:()=>y.setEditing(!0),onBlur:()=>y.setEditing(!1),onChange:e=>j(e.target.value),className:`min-h-[72px] w-full resize-y bg-transparent text-xs leading-normal text-[#a7aab2] outline-none placeholder:text-[#8b8f98] focus:text-[#ecedee]`}),(0,Y.jsxs)(`div`,{className:`text-[11px] leading-normal text-[#8b8f98] ${fF}`,children:[T.lines,` lines · `,T.chars,` chars`]})]}),(0,Y.jsx)(vF,{findings:b.system_prompt})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-[5px]`,children:[(0,Y.jsx)(_F,{children:`io`}),N(`input`),N(`output`)]}),(0,Y.jsxs)(w2,{fieldKey:`verify.command`,register:x,children:[(0,Y.jsx)(_F,{children:`verify · command`}),(0,Y.jsx)(E2,{value:u.verifyCommand,findings:b[`verify.command`],flash:f===`verify.command`,onCommit:t=>a(uM(e,n,t))})]}),(0,Y.jsxs)(w2,{fieldKey:`on_verify_fail`,register:x,children:[(0,Y.jsx)(_F,{children:`on_verify_fail`}),(0,Y.jsx)(`div`,{role:`radiogroup`,"aria-label":`on_verify_fail`,className:gF({error:yF(b.on_verify_fail),flash:f===`on_verify_fail`,className:`h-[30px] items-stretch gap-0.5 p-0.5`}),children:S2.map(t=>{let r=t.mode===D;return(0,Y.jsx)(`button`,{type:`button`,role:`radio`,"aria-checked":r,onClick:()=>{r||a(fM(e,n,t.mode))},className:r?`flex ${t.grow} items-center justify-center rounded-md border border-[#ffffff1a] bg-[#2a2d33] text-[11px] font-medium leading-normal text-[#ecedee] ${fF}`:`flex ${t.grow} items-center justify-center rounded-md text-[11px] leading-normal text-[#a7aab2] hover:text-[#ecedee] ${fF}`,children:t.label},t.mode)})}),D===`retry`?(0,Y.jsx)(D2,{value:u.maxAttempts??2,onCommit:t=>a(pM(e,n,t))}):null,D===`ask_operator`?(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(`div`,{className:mF,children:`Retry safety`}),(0,Y.jsx)(SF,{ariaLabel:`Retry safety`,className:`flex-1`,value:u.retrySafety??`side_effecting`,options:[{value:`side_effecting`,label:`side_effecting`},{value:`idempotent`,label:`idempotent`}],onChange:t=>a(mM(e,n,t)),children:(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-xs leading-normal text-[#ecedee] ${fF}`,children:u.retrySafety??`side_effecting`})})]}):null,O?(0,Y.jsx)(`div`,{className:`text-[11px] leading-[1.45] text-[#8b8f98]`,children:`Applies only after an after-phase verify check fails.`}):null,(0,Y.jsx)(vF,{findings:b.on_verify_fail})]}),(0,Y.jsxs)(w2,{fieldKey:`ask_operator`,register:x,className:`flex flex-col gap-1.5`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(_F,{className:`flex-1`,children:`ask_operator · HITL`}),(0,Y.jsx)(CF,{on:u.hitl,ariaLabel:`ask_operator HITL`,onChange:t=>a(gM(e,n,t))})]}),u.hitl?(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(`div`,{className:mF,children:`Gate kind`}),(0,Y.jsx)(SF,{ariaLabel:`Gate kind`,className:`flex-1`,value:k,options:A,error:yF(b.ask_operator),flash:f===`ask_operator`,onChange:t=>{t!==C2&&a(vM(e,n,t))},children:(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-xs leading-normal text-[#ecedee] ${fF}`,children:u.gateKinds.length>1?u.gateKinds.join(`, `):u.gateKind??`confirm`})})]}):null,(0,Y.jsx)(vF,{findings:b.ask_operator})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Y.jsx)(_F,{className:`pb-0.5`,children:`envelope · artifacts`}),[[`artifacts`,u.envelope.artifacts.join(`, `)],[`payload`,u.envelope.payload.join(` · `)],[`status`,u.envelope.status]].map(([e,t])=>(0,Y.jsxs)(`div`,{className:`flex h-[22px] items-center gap-2`,children:[(0,Y.jsx)(`div`,{className:`w-[66px] shrink-0 text-[11px] leading-normal text-[#a7aab2] ${fF}`,children:e}),(0,Y.jsx)(`div`,{className:`min-w-0 truncate text-[11px] leading-normal ${fF} ${e===`status`||!t?`text-[#8b8f98]`:`text-[#ecedee]`}`,title:t||void 0,children:t||`—`})]},e))]})]}),_?(0,Y.jsx)(jF,{stageId:n,value:y.text,onChange:j,onClose:()=>v(!1)}):null]})}function k2({active:e,label:t,dot:n=!1,onClick:r}){return(0,Y.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":e,onClick:r,className:e?`flex items-center gap-1.5 border-b-2 border-b-[#ecedee] text-[13px] font-medium leading-normal text-[#ecedee]`:`flex items-center gap-1.5 border-b-2 border-b-transparent text-[13px] leading-normal text-[#a7aab2] hover:text-[#ecedee]`,children:[t,n?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`span`,{className:`block size-1.5 rounded-full bg-[#a7aab2]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`sr-only`,children:`needs attention`})]}):null]})}function A2({stageId:e,onDelete:t}){let[n,r]=(0,J.useState)(!1),i=(0,J.useRef)(null);return(0,J.useEffect)(()=>{r(!1)},[e]),(0,J.useEffect)(()=>{n&&i.current?.focus()},[n]),n?(0,Y.jsxs)(`div`,{className:`flex items-center gap-1`,onKeyDown:e=>{e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),r(!1))},children:[(0,Y.jsx)(`span`,{className:`whitespace-nowrap text-xs leading-normal text-[#a7aab2]`,children:`Delete stage?`}),(0,Y.jsx)(`button`,{ref:i,type:`button`,onClick:()=>{r(!1),t(e)},className:`flex h-6 items-center rounded-md border border-[#f2645a47] bg-[#f2645a1a] px-2 text-xs font-medium leading-normal text-[#f2645a] hover:bg-[#f2645a2b]`,children:`Delete`}),(0,Y.jsx)(`button`,{type:`button`,"aria-label":`Cancel delete`,onClick:()=>r(!1),className:`flex size-6 items-center justify-center rounded-md text-[#8b8f98] hover:bg-[#ffffff0d] hover:text-[#ecedee]`,children:(0,Y.jsx)(St,{className:`size-3.5`,"aria-hidden":!0})})]}):(0,Y.jsx)(`button`,{type:`button`,"aria-label":`Delete stage ${e}`,title:`Delete stage`,onClick:()=>r(!0),className:`flex size-6 items-center justify-center rounded-md text-[#8b8f98] hover:bg-[#ffffff0d] hover:text-[#ecedee]`,children:(0,Y.jsx)(Ee,{className:`size-3.5`,"aria-hidden":!0})})}function j2({draft:e,baseline:t,selectedStageId:n,tab:r,onTabChange:i,onDraftChange:a,onDeleteStage:o,onRenameStage:s,findings:c,defaultModel:l,focusField:u,pipelinePath:d}){let f=(0,J.useRef)(null),p=n!==null&&Zj(e,n)!==null,m=u!=null&&u.stageId===n&&u.nonce!==f.current;(0,J.useEffect)(()=>{m&&r!==`stage`&&i(`stage`)},[m,u?.nonce]);let h=r===`stage`&&p;return(0,Y.jsxs)(`aside`,{"aria-label":`Inspector`,className:`flex w-[300px] min-h-0 min-w-0 shrink-0 flex-col overflow-clip border-l border-l-[#ffffff12] bg-[#131418] [font-family:Geist,_sans-serif]`,children:[(0,Y.jsxs)(`div`,{role:`tablist`,className:`flex h-10 w-full shrink-0 items-stretch gap-4 border-b border-b-[#ffffff12] px-3.5`,children:[(0,Y.jsx)(k2,{active:r===`stage`,label:`Stage`,onClick:()=>i(`stage`)}),(0,Y.jsx)(k2,{active:r===`pipeline`,label:`Pipeline`,dot:NM(e.pipeline.id),onClick:()=>i(`pipeline`)}),(0,Y.jsx)(`div`,{className:`block flex-1`}),h?(0,Y.jsx)(`div`,{className:`flex items-center`,children:(0,Y.jsx)(A2,{stageId:n,onDelete:o})}):null]}),r===`pipeline`?(0,Y.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:(0,Y.jsx)(b2,{draft:e,baseline:t,findings:c,defaultModel:l,onDraftChange:a,pipelinePath:d})}):h?(0,Y.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:(0,Y.jsx)(O2,{draft:e,baseline:t,stageId:n,findings:c,defaultModel:l,onDraftChange:a,onRenameStage:s,focusRequest:m&&r===`stage`?{field:u.field,nonce:u.nonce}:null,onFocusHandled:()=>{u&&(f.current=u.nonce)}},n)}):(0,Y.jsx)(v2,{stageCount:e.pipeline.stages.length,pipelineUntitled:NM(e.pipeline.id),onOpenPipelineTab:()=>i(`pipeline`)})]})}function M2({updatedAt:e,onResume:t,onDismiss:n,pipelineId:r,onDiscard:i}){let a=FJ(e,IJ(3e4));return(0,Y.jsxs)(`div`,{role:`status`,className:`flex h-10 w-full shrink-0 items-center gap-2.5 border-b border-b-[#ffffff12] bg-[#131418] px-4 font-sans`,children:[(0,Y.jsx)(we,{className:`size-3.5 shrink-0 text-[#a7aab2]`,"aria-hidden":!0}),(0,Y.jsxs)(`div`,{className:`mr-1 flex min-w-0 shrink items-center gap-1 whitespace-nowrap`,children:[(0,Y.jsxs)(`span`,{className:`text-[13px] text-[#a7aab2]`,children:[`You have an autosaved draft`,r?` for`:``]}),r?(0,Y.jsx)(`span`,{className:`min-w-0 truncate font-['Geist_Mono',monospace] text-xs text-[#ecedee]`,children:r}):null,a?(0,Y.jsxs)(`span`,{className:`text-[13px] text-[#8b8f98]`,children:[`from `,a]}):null]}),(0,Y.jsx)(`button`,{type:`button`,onClick:t,className:`flex h-[26px] shrink-0 items-center rounded-md border border-[#ffffff1a] bg-[#1a1c21] px-2.5 text-xs font-medium text-[#ecedee] hover:bg-[#202228]`,children:`Resume`}),i?(0,Y.jsx)(`button`,{type:`button`,onClick:i,className:`flex h-[26px] shrink-0 items-center rounded-md px-2 text-xs font-medium text-[#a7aab2] hover:bg-[#ffffff0a] hover:text-[#ecedee]`,children:`Discard…`}):null,(0,Y.jsx)(`div`,{className:`min-w-0 flex-1`}),(0,Y.jsx)(`button`,{type:`button`,"aria-label":`Dismiss`,onClick:n,className:`flex size-6 shrink-0 items-center justify-center rounded-md hover:bg-[#ffffff0a]`,children:(0,Y.jsx)(St,{className:`size-3.5 text-[#8b8f98]`,"aria-hidden":!0})})]})}function N2(e){return e.trim().replace(/\\/g,`/`).replace(/^(\.\/)+/,``).replace(/^\/+/,``)}function P2(e,t){let n=N2(e),r=N2(t);return!n||!r?!1:n===r||n.endsWith(`/${r}`)||r.endsWith(`/${n}`)}function F2(e,t){let n=N2(e).replace(/\/+$/,``),r=N2(t);return!n||n===`.`?r:`${n}/${r}`}function I2(e){return e.split(/[\\/]/).pop()??e}function L2(e,t){return`${e} ${t}${e===1?``:`s`}`}function R2(e,t){let n=new Set;for(let r of t.stages??[])P2(e,r.path)&&typeof r.body.id==`string`&&n.add(r.body.id);for(let r of t.pipeline.stages)typeof r.uses==`string`&&typeof r.id==`string`&&P2(e,r.uses)&&n.add(r.id);return n}function z2(e,t,n){let r=new Map(e.map(e=>[e.path,[]])),i=new Map(e.map(e=>[e.path,R2(e.path,t)])),a=e.find(e=>e.kind===`pipeline`),o=e.find(e=>e.kind===`task`);for(let t of n){if(t.severity!==`error`)continue;let n=e.find(e=>P2(e.path,t.path))??(t.stageId?e.find(e=>i.get(e.path)?.has(t.stageId)):void 0)??(t.code.startsWith(`task.`)?o:a);n&&r.get(n.path)?.push(t)}return r}function B2(e){return e===`new`?{statusLabel:`new`,statusPill:!0,muted:!1}:e===`overwrite`?{statusLabel:`exists · will overwrite`,statusPill:!0,muted:!1}:e===`unchanged`?{statusLabel:`exists · unchanged, skipped`,statusPill:!1,muted:!0}:{statusLabel:null,statusPill:!1,muted:!1}}function V2(e,t,n){let r=z2(e,t,n);return e.map(e=>{let t=r.get(e.path)?.length??0;return{...e,...B2(e.action),taskAttached:e.kind===`task`,errorCount:t,errorLabel:t>0?L2(t,`error`):null}})}function H2(e,t,n){return V2(e.files,t,n)}function U2(e,t,n,r){let i=[{path:F2(t,`${n.trim()||e.pipeline.id||`untitled`}.yaml`),kind:`pipeline`,action:null,added:0,removed:0}];for(let n of e.stages??[])i.push({path:F2(t,n.path),kind:`stage`,action:null,added:0,removed:0});return e.task&&i.push({path:F2(t,I2(e.task.filename)),kind:`task`,action:null,added:0,removed:0}),V2(i,e,r)}function W2(e){let t=0,n=0,r=0;for(let i of e.files)i.action===`new`?t+=1:i.action===`overwrite`?n+=1:r+=1;let i=[t?`${t} new`:null,n?`${n} overwrite`:null,r?`${r} skipped`:null].filter(e=>e!==null);return i.length?i.join(` · `):`nothing to write`}function G2(e){return e.files.filter(e=>e.action!==`unchanged`).length}function K2(e){let t=e.pipelineId.trim();return t?/^[A-Za-z0-9][A-Za-z0-9._-]*$/.test(t)?e.planLoading?{text:`checking…`,tone:`muted`}:e.plan?e.plan.pipelineIdTaken?e.mode===`overwrite`&&t===e.initialPipelineId.trim()?{text:`overwrites saved pipeline`,tone:`muted`}:{text:`id already exists`,tone:`warn`}:{text:`id is free`,tone:`muted`}:null:{text:`invalid id`,tone:`warn`}:{text:`id required`,tone:`warn`}}function q2(e){let t=[];for(let n of e.pipeline.stages){if(typeof n.uses!=`string`||!n.uses.trim())continue;let r=n.uses;(e.stages??[]).some(e=>P2(e.path,r))||t.push({id:typeof n.id==`string`?n.id:I2(r),uses:N2(r)})}if(t.length===0)return null;if(t.length===1)return`${t[0].id} references the existing ${t[0].uses} and is not rewritten.`;let n=t.map(e=>e.id);return`${`${n.slice(0,-1).join(`, `)} and ${n[n.length-1]}`} reference existing stage files and are not rewritten.`}function J2(e){if(!e)return{status:`none`};let t=e.findings.filter(e=>e.severity===`error`),n=e.findings.filter(e=>e.severity===`warning`).length;return t.length>0?{status:`failed`,title:`Validation failed · ${L2(t.length,`error`)}`,errors:t.length,lines:t.map(e=>({finding:e,location:p1(e),message:e.message}))}:{status:`passed`,title:n>0?`Validation passed · ${L2(n,`warning`)}`:`Validation passed`,warnings:n}}function Y2(e){return!(e.saving||!e.pipelineId.trim()||e.validation.status===`failed`&&!e.allowInvalid)}function X2(e){let{validation:t}=e;return t.status===`failed`?e.allowInvalid?`Saving with ${L2(t.errors,`error`)}`:t.errors===1?`Fix the error or check Save invalid anyway`:`Fix the errors or check Save invalid anyway`:t.status===`none`?`Validates before writing`:e.plan?`Writes ${L2(G2(e.plan),`file`)}`:`Ready to save`}var Z2=`font-['Geist_Mono',monospace]`,Q2=`font-sans text-[11px] font-medium uppercase tracking-[0.88px] text-[#8b8f98]`,$2=3,e4=250;function t4({row:e}){let t=e.errorCount>0||e.taskAttached;return(0,Y.jsxs)(`div`,{className:`flex h-[38px] w-full shrink-0 items-center gap-2.5 border-b border-b-[#ffffff0d] px-3 last:border-b-0 ${e.errorCount>0?`bg-[#f2645a0a]`:``}`,children:[(0,Y.jsx)(w,{className:`size-4 shrink-0 ${e.muted?`text-[#8b8f98]`:`text-[#ecedee]`}`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{title:e.path,className:`min-w-0 truncate ${Z2} text-xs ${t?``:`flex-1`} ${e.muted?`text-[#8b8f98] line-through decoration-[#8b8f98]`:`text-[#ecedee]`}`,children:e.path}),t?(0,Y.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-center gap-2.5`,children:[e.errorLabel?(0,Y.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1`,children:[(0,Y.jsx)(d,{className:`size-3 text-[#f2645a]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`whitespace-nowrap font-sans text-[11px] text-[#f2645a]`,children:e.errorLabel})]}):null,e.taskAttached?(0,Y.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1`,children:[(0,Y.jsx)(ge,{className:`size-3 text-[#a7aab2]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`whitespace-nowrap font-sans text-[11px] text-[#a7aab2]`,children:`task attached`})]}):null]}):null,e.action===`overwrite`?(0,Y.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1.5 ${Z2} text-[11px]`,children:[(0,Y.jsxs)(`span`,{className:`text-[#4cc38a]`,children:[`+`,e.added]}),(0,Y.jsxs)(`span`,{className:`text-[#f2645a]`,children:[`−`,e.removed]})]}):null,e.statusLabel?e.statusPill?(0,Y.jsx)(`span`,{className:`flex h-[22px] shrink-0 items-center whitespace-nowrap rounded-full border bg-[#1a1c21] px-2 font-sans text-[11px] font-medium text-[#ecedee] ${e.action===`overwrite`?`border-[#ffffff26]`:`border-[#ffffff1a]`}`,children:e.statusLabel}):(0,Y.jsx)(`span`,{className:`shrink-0 whitespace-nowrap font-sans text-[11px] text-[#8b8f98]`,children:e.statusLabel}):null]})}function n4(){return(0,Y.jsxs)(`div`,{className:`flex h-[38px] w-full shrink-0 items-center gap-2.5 border-b border-b-[#ffffff0d] px-3 last:border-b-0`,children:[(0,Y.jsx)(`span`,{className:`block size-4 shrink-0 animate-pulse rounded-sm bg-[#ffffff0d]`}),(0,Y.jsx)(`span`,{className:`block h-2.5 w-[45%] animate-pulse rounded-full bg-[#ffffff0d]`}),(0,Y.jsx)(`span`,{className:`min-w-0 flex-1`}),(0,Y.jsx)(`span`,{className:`block h-[22px] w-14 animate-pulse rounded-full bg-[#ffffff0d]`})]})}function r4({draft:e,catalogRoots:t,initialCatalogRoot:n,folderOptions:r,initialFolder:i,initialPipelineId:a,mode:o,plan:s,planLoading:c,validation:l,allowInvalidInitial:u,saving:f,error:p,title:m=`Save to catalog`,onChangeDestination:h,onSave:g,onSaveAs:_,onCancel:v,onFixInWorkshop:y}){let[b,x]=(0,J.useState)(n),[S,C]=(0,J.useState)(i),[w,T]=(0,J.useState)(a),[E,D]=(0,J.useState)(!!u),O=(0,J.useRef)({catalogRoot:n,folder:i,pipelineId:a}),k=(0,J.useRef)(h);k.current=h;let A=e=>{let t=O.current;(t.catalogRoot!==e.catalogRoot||t.folder!==e.folder||t.pipelineId!==e.pipelineId)&&(O.current=e,k.current(e))},j=(0,J.useRef)(A);j.current=A,(0,J.useEffect)(()=>{let e=window.setTimeout(()=>j.current({catalogRoot:b,folder:S,pipelineId:w.trim()}),e4);return()=>window.clearTimeout(e)},[b,S,w]);let N=()=>{let e={catalogRoot:b,folder:S,pipelineId:w.trim()};return A(e),e},P=(0,J.useMemo)(()=>l?.findings??[],[l]),F=(0,J.useMemo)(()=>J2(l),[l]),R=(0,J.useMemo)(()=>s?H2(s,e,P):U2(e,S,w,P),[e,P,S,w,s]),z=(0,J.useMemo)(()=>q2(e),[e]),V=K2({pipelineId:w,initialPipelineId:a,mode:o,plan:s,planLoading:c}),H=t.some(e=>e.value===b)?t:[{value:b,label:b||`.`},...t],ee=r.some(e=>e.value===S)?r:[{value:S,label:S||`.`},...r],te=H.find(e=>e.value===b),ne=te?.available===!1,re=Y2({validation:F,allowInvalid:E,saving:f,pipelineId:w})&&!ne,ie=F.status===`failed`,ae=()=>{re&&g(ie&&E,N())},oe=(0,J.useRef)(ae);oe.current=ae;let se=(0,J.useRef)(v);se.current=v;let ce=(0,J.useRef)(f);return ce.current=f,(0,J.useEffect)(()=>{let e=e=>{e.key===`Escape`?(e.preventDefault(),e.stopPropagation(),ce.current||se.current()):e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),e.stopPropagation(),oe.current())};return window.addEventListener(`keydown`,e,!0),()=>window.removeEventListener(`keydown`,e,!0)},[]),(0,Y.jsx)(`div`,{className:`fixed inset-0 z-50 flex flex-col items-center bg-[#040506a8] px-4 pt-[104px] font-sans`,role:`presentation`,onMouseDown:e=>{e.target===e.currentTarget&&!f&&v()},children:(0,Y.jsxs)(`div`,{role:`dialog`,"aria-modal":`true`,"aria-labelledby":`sf-save-dialog-title`,className:`flex max-h-[calc(100vh-136px)] w-[680px] min-w-0 max-w-full flex-col overflow-clip rounded-[14px] border border-[#ffffff1a] bg-[#131418] shadow-[0px_32px_96px_rgba(0,0,0,0.65),0px_8px_24px_rgba(0,0,0,0.45)]`,children:[(0,Y.jsxs)(`div`,{className:`flex w-full shrink-0 items-start gap-3 px-5 pb-3.5 pt-[18px]`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[(0,Y.jsx)(`h2`,{id:`sf-save-dialog-title`,className:`text-[17px] font-semibold tracking-[-0.17px] text-[#ecedee]`,children:m}),(0,Y.jsx)(`p`,{className:`text-[13px] text-[#a7aab2]`,children:`Writes these files after validation passes.`})]}),(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 pt-0.5`,children:[(0,Y.jsx)(Nl,{className:`bg-[#1a1c21]`,children:`esc`}),(0,Y.jsx)(`button`,{type:`button`,"aria-label":`Close`,disabled:f,onClick:v,className:`flex size-7 items-center justify-center rounded-lg hover:bg-[#ffffff0a]`,children:(0,Y.jsx)(St,{className:`size-4 text-[#8b8f98]`,"aria-hidden":!0})})]})]}),(0,Y.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:[(0,Y.jsxs)(`div`,{className:`flex w-full flex-col gap-2 px-5 pb-4`,children:[(0,Y.jsx)(`span`,{className:Q2,children:`Destination`}),(0,Y.jsxs)(`div`,{className:`flex w-full flex-col gap-2.5`,children:[(0,Y.jsxs)(`div`,{className:`flex w-full gap-2.5`,children:[(0,Y.jsxs)(`label`,{className:`flex min-w-0 flex-1 flex-col gap-1.5`,children:[(0,Y.jsx)(`span`,{className:`text-xs text-[#a7aab2]`,children:`Save to`}),(0,Y.jsxs)(`span`,{className:`relative flex h-[34px] items-center gap-2 rounded-lg border border-[#ffffff1a] bg-[#1a1c21] px-2.5 focus-within:border-[#ffffff33] focus-within:shadow-[0px_0px_0px_3px_rgba(236,237,238,0.06)]`,children:[(0,Y.jsx)(I,{className:`size-3.5 shrink-0 text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsx)(`select`,{value:b,disabled:f,onChange:e=>{x(e.target.value),A({catalogRoot:e.target.value,folder:S,pipelineId:w.trim()})},className:`min-w-0 flex-1 cursor-pointer appearance-none truncate bg-transparent pr-5 ${Z2} text-xs text-[#ecedee] outline-none`,children:H.map(e=>(0,Y.jsx)(`option`,{value:e.value,disabled:e.available===!1,className:`bg-[#1a1c21]`,children:e.label},e.value))}),(0,Y.jsx)(B,{className:`pointer-events-none absolute right-2.5 size-3.5 text-[#8b8f98]`,"aria-hidden":!0})]})]}),(0,Y.jsxs)(`label`,{className:`flex min-w-0 flex-1 flex-col gap-1.5`,children:[(0,Y.jsx)(`span`,{className:`text-xs text-[#a7aab2]`,children:`Folder`}),(0,Y.jsxs)(`span`,{className:`relative flex h-[34px] items-center gap-2 rounded-lg border border-[#ffffff1a] bg-[#1a1c21] px-2.5 focus-within:border-[#ffffff33] focus-within:shadow-[0px_0px_0px_3px_rgba(236,237,238,0.06)]`,children:[(0,Y.jsx)(ut,{className:`size-3.5 shrink-0 text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsx)(`select`,{value:S,disabled:f,onChange:e=>{C(e.target.value),A({catalogRoot:b,folder:e.target.value,pipelineId:w.trim()})},className:`min-w-0 flex-1 cursor-pointer appearance-none truncate bg-transparent pr-5 ${Z2} text-xs text-[#ecedee] outline-none`,children:ee.map(e=>(0,Y.jsx)(`option`,{value:e.value,className:`bg-[#1a1c21]`,children:e.label},e.value))}),(0,Y.jsx)(B,{className:`pointer-events-none absolute right-2.5 size-3.5 text-[#8b8f98]`,"aria-hidden":!0})]})]})]}),ne?(0,Y.jsx)(`p`,{className:`text-[11px] leading-[1.4] text-[#f2645a]`,children:te?.unavailableReason??`This catalog root is unavailable for writes.`}):null]}),(0,Y.jsx)(`div`,{className:`flex w-full gap-2.5`,children:(0,Y.jsxs)(`label`,{className:`flex min-w-0 flex-1 flex-col gap-1.5`,children:[(0,Y.jsx)(`span`,{className:`text-xs text-[#a7aab2]`,children:`Pipeline id`}),(0,Y.jsxs)(`span`,{className:`flex h-[34px] items-center gap-2 rounded-lg border border-[#ffffff1a] bg-[#1a1c21] px-2.5 focus-within:border-[#ffffff33] focus-within:shadow-[0px_0px_0px_3px_rgba(236,237,238,0.06)]`,children:[(0,Y.jsx)(ut,{className:`size-3.5 shrink-0 text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsx)(`input`,{autoFocus:!0,value:w,disabled:f,spellCheck:!1,onChange:e=>T(e.target.value),className:`min-w-0 flex-1 bg-transparent ${Z2} text-xs text-[#ecedee] caret-[#ecedee] outline-none`}),V?(0,Y.jsx)(`span`,{className:`shrink-0 whitespace-nowrap text-[11px] ${V.tone===`warn`?`text-[#f5b544]`:`text-[#8b8f98]`}`,children:V.text}):null]})]})})]}),(0,Y.jsxs)(`div`,{className:`flex w-full flex-col gap-2 px-5 pb-4`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Y.jsx)(`span`,{className:Q2,children:`Files to write`}),(0,Y.jsx)(`span`,{className:`${Z2} text-[11px] text-[#8b8f98]`,children:c?`planning…`:s?W2(s):``})]}),(0,Y.jsx)(`div`,{className:`flex max-h-[230px] w-full min-w-0 flex-col overflow-y-auto rounded-[10px] border border-[#ffffff12] bg-[#0f1013]`,children:c?[0,1,2,3].map(e=>(0,Y.jsx)(n4,{},e)):R.map(e=>(0,Y.jsx)(t4,{row:e},e.path))}),z?(0,Y.jsx)(`p`,{className:`text-[11px] leading-[1.4] text-[#8b8f98]`,children:z}):null]}),F.status===`none`?null:(0,Y.jsx)(`div`,{className:`flex w-full flex-col gap-2 px-5 pb-[18px]`,children:F.status===`failed`?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`div`,{className:`flex w-full flex-col gap-2 rounded-[10px] border border-[#f2645a47] bg-[#f2645a0f] px-3 py-2.5`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(d,{className:`size-4 text-[#f2645a]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`whitespace-nowrap text-[13px] font-medium text-[#f2645a]`,children:F.title}),(0,Y.jsx)(`span`,{className:`flex-1`}),(0,Y.jsx)(`span`,{className:`whitespace-nowrap ${Z2} text-[11px] text-[#8b8f98]`,children:`sf validate --strict`})]}),F.lines.slice(0,$2).map((e,t)=>(0,Y.jsxs)(`div`,{className:`flex h-[30px] items-center gap-2 pl-6`,children:[(0,Y.jsxs)(`span`,{className:`shrink-0 whitespace-nowrap ${Z2} text-xs text-[#ecedee]`,children:[e.location,`:`]}),(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate ${Z2} text-xs text-[#a7aab2]`,title:e.message,children:e.message}),(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>y(e.finding),className:`flex h-7 shrink-0 items-center gap-1.5 rounded-lg px-2.5 hover:bg-[#ffffff0a]`,children:[(0,Y.jsx)(ht,{className:`size-3.5 text-[#a7aab2]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`whitespace-nowrap text-xs font-medium text-[#ecedee]`,children:`Fix in Workshop`})]})]},`${e.location}:${t}`)),F.lines.length>$2?(0,Y.jsxs)(`span`,{className:`pl-6 text-[11px] text-[#8b8f98]`,children:[`+`,F.lines.length-$2,` more in the Problems tab`]}):null]}),(0,Y.jsxs)(`button`,{type:`button`,role:`checkbox`,"aria-checked":E,disabled:f,onClick:()=>D(e=>!e),className:`flex w-full items-start gap-2.5 rounded-[10px] border border-[#ffffff12] px-3 py-2.5 text-left hover:bg-[#ffffff05]`,children:[(0,Y.jsx)(`span`,{className:`mt-px flex size-4 shrink-0 items-center justify-center rounded-sm border ${E?`border-[#ecedee] bg-[#ecedee]`:`border-[#ffffff40] bg-[#1a1c21]`}`,children:E?(0,Y.jsx)(G,{className:`size-3 text-[#0c0d0f]`,"aria-hidden":!0}):null}),(0,Y.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col gap-0.5`,children:[(0,Y.jsx)(`span`,{className:`text-[13px] font-medium text-[#ecedee]`,children:`Save invalid anyway`}),(0,Y.jsx)(`span`,{className:`text-xs leading-[1.45] text-[#8b8f98]`,children:`Writes the YAML as-is. sf validate will fail until you fix it.`})]})]})]}):(0,Y.jsxs)(`div`,{className:`flex w-full items-center gap-2 rounded-[10px] border border-[#4cc38a47] bg-[#4cc38a0f] px-3 py-2.5`,children:[(0,Y.jsx)(M,{className:`size-4 text-[#4cc38a]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`whitespace-nowrap text-[13px] font-medium text-[#4cc38a]`,children:F.title}),(0,Y.jsx)(`span`,{className:`flex-1`}),(0,Y.jsx)(`span`,{className:`whitespace-nowrap ${Z2} text-[11px] text-[#8b8f98]`,children:`sf validate --strict`})]})})]}),(0,Y.jsxs)(`div`,{className:`flex w-full shrink-0 items-center gap-2 border-t border-t-[#ffffff12] bg-[#101114] px-5 py-3.5`,children:[(0,Y.jsx)(`div`,{className:`flex min-w-0 flex-1 items-center gap-1.5`,children:p?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(d,{className:`size-3.5 shrink-0 text-[#f2645a]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`truncate text-xs text-[#f2645a]`,title:p,children:p})]}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(pt,{className:`size-3.5 shrink-0 text-[#8b8f98]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`truncate text-xs text-[#8b8f98]`,children:X2({validation:F,allowInvalid:E,plan:s})})]})}),(0,Y.jsxs)(`button`,{type:`button`,disabled:f,onClick:v,className:`flex h-8 shrink-0 items-center gap-2 rounded-lg px-3 hover:bg-[#ffffff0a]`,children:[(0,Y.jsx)(`span`,{className:`text-[13px] font-medium text-[#a7aab2]`,children:`Cancel`}),(0,Y.jsx)(`span`,{className:`${Z2} text-[11px] text-[#8b8f98]`,children:`esc`})]}),_&&o===`overwrite`?(0,Y.jsx)(`button`,{type:`button`,disabled:f,onClick:()=>_(N()),className:`flex h-8 shrink-0 items-center rounded-lg border border-[#ffffff1a] bg-[#1a1c21] px-3 hover:bg-[#202228]`,children:(0,Y.jsx)(`span`,{className:`whitespace-nowrap text-[13px] font-medium text-[#ecedee]`,children:`Save As…`})}):null,(0,Y.jsxs)(`button`,{type:`button`,disabled:!re,onClick:ae,className:`flex h-8 shrink-0 items-center gap-2 rounded-lg px-3 ${re||f?`bg-[#ecedee] enabled:hover:bg-white`:`cursor-not-allowed bg-[#2a2d33]`}`,children:[f?(0,Y.jsx)(bt,{className:`size-3.5 animate-spin text-[#0c0d0f]`,"aria-hidden":!0}):(0,Y.jsx)(L,{className:`size-3.5 ${re?`text-[#0c0d0f]`:`text-[#8b8f98]`}`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`text-[13px] font-medium ${re||f?`text-[#0c0d0f]`:`text-[#8b8f98]`}`,children:f?`Saving…`:`Save`}),f?null:(0,Y.jsx)(`span`,{className:`${Z2} text-[11px] ${re?`text-[#5a5e66]`:`text-[#8b8f98]`}`,children:`⌘⏎`})]})]})]})})}function i4({open:e,...t}){return e?(0,Y.jsx)(r4,{...t}):null}function a4({pipelineId:e,fileCount:t,canRun:n,onRun:r,onOpenCatalog:i,onDismiss:a,autoDismissMs:o=8e3,taskMissingWarning:s}){let[c,l]=(0,J.useState)(!1),u=(0,J.useRef)(a);return u.current=a,(0,J.useEffect)(()=>{if(c||o<=0)return;let e=window.setTimeout(()=>u.current(),o);return()=>window.clearTimeout(e)},[o,c]),(0,Y.jsxs)(`div`,{role:`status`,"aria-live":`polite`,onMouseEnter:()=>l(!0),onMouseLeave:()=>l(!1),onFocus:()=>l(!0),onBlur:()=>l(!1),className:`fixed bottom-6 right-6 z-[60] flex w-[340px] flex-col gap-3 rounded-xl border border-[#ffffff1a] bg-[#1a1c21] px-3.5 py-3 font-sans shadow-[0px_16px_48px_rgba(0,0,0,0.55)]`,children:[(0,Y.jsxs)(`div`,{className:`flex items-start gap-2.5`,children:[(0,Y.jsx)(`span`,{className:`flex size-6 shrink-0 items-center justify-center rounded-full bg-[#4cc38a1f]`,children:(0,Y.jsx)(G,{className:`size-3.5 text-[#4cc38a]`,"aria-hidden":!0})}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-0.5`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1`,children:[(0,Y.jsx)(`span`,{className:`shrink-0 text-[13px] font-medium text-[#ecedee]`,children:`Saved`}),(0,Y.jsx)(`span`,{className:`min-w-0 truncate font-['Geist_Mono',monospace] text-xs text-[#ecedee]`,children:e}),(0,Y.jsxs)(`span`,{className:`shrink-0 whitespace-nowrap text-[13px] text-[#a7aab2]`,children:[`· `,t,` `,t===1?`file`:`files`]})]}),(0,Y.jsx)(`span`,{className:`text-xs text-[#8b8f98]`,children:`Autosave cleared. You are still in Workshop.`}),s?(0,Y.jsx)(`span`,{className:`text-xs text-[#e8b86d]`,children:s}):null]}),(0,Y.jsx)(`button`,{type:`button`,"aria-label":`Dismiss`,onClick:a,className:`-m-1 flex size-[22px] shrink-0 items-center justify-center rounded-md hover:bg-[#ffffff0a]`,children:(0,Y.jsx)(St,{className:`size-3.5 text-[#8b8f98]`,"aria-hidden":!0})})]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-1 pl-[34px]`,children:[n?(0,Y.jsxs)(`button`,{type:`button`,onClick:r,className:`flex h-[30px] shrink-0 items-center gap-1.5 rounded-lg bg-[#ecedee] px-2.5 hover:bg-white`,children:[(0,Y.jsx)(`span`,{className:`whitespace-nowrap text-[13px] font-medium text-[#0c0d0f]`,children:`Run this workflow`}),(0,Y.jsx)(Te,{className:`size-3.5 text-[#0c0d0f]`,"aria-hidden":!0})]}):null,(0,Y.jsxs)(`button`,{type:`button`,onClick:i,className:`flex h-[30px] shrink-0 items-center gap-1.5 rounded-lg px-2 hover:bg-[#ffffff0a]`,children:[(0,Y.jsx)(g,{className:`size-3.5 text-[#a7aab2]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`whitespace-nowrap text-[13px] font-medium text-[#a7aab2]`,children:`Open in catalog`})]})]})]})}var o4=`font-['Geist_Mono',monospace]`;function s4(e){return`${e} ${e===1?`error`:`errors`}`}function c4({saveState:e,changeCount:t}){if(e===`new`)return(0,Y.jsxs)(`span`,{className:`flex h-6 shrink-0 items-center gap-1.5 rounded-full border border-dashed border-[#ffffff26] px-2`,children:[(0,Y.jsx)(xe,{className:`size-3 text-[#a7aab2]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`whitespace-nowrap text-xs font-medium text-[#a7aab2]`,children:`not saved yet`})]});let n=e===`clean`?`saved`:t>0?`draft · ${t} ${t===1?`change`:`changes`}`:`draft`;return(0,Y.jsx)(`span`,{className:`flex h-5 shrink-0 items-center whitespace-nowrap rounded-full border border-[#ffffff1a] bg-[#1a1c21] px-[7px] ${o4} text-[11px] text-[#a7aab2]`,children:n})}function l4({title:e,untitled:t,isNewDraft:n,onRename:r}){let[i,a]=(0,J.useState)(!1),[o,s]=(0,J.useState)(``),l=(0,J.useRef)(!1),u=t||!e.trim(),d=u?`Untitled draft`:e,f=()=>{l.current=!1,s(u?``:e),a(!0)},p=t=>{if(l.current)return;l.current=!0,a(!1);let n=o.trim();!t||!n||(u||n!==e)&&r(n)};return i?(0,Y.jsx)(`input`,{autoFocus:!0,"aria-label":`Pipeline id`,value:o,placeholder:`pipeline-id`,spellCheck:!1,onChange:e=>s(e.target.value),onKeyDown:e=>{e.key===`Enter`?(e.preventDefault(),p(!0)):e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),p(!1))},onBlur:()=>p(!0),onFocus:e=>e.currentTarget.select(),className:`h-[30px] w-[240px] min-w-0 rounded-md border border-[#ffffff33] bg-[#1a1c21] px-2 ${o4} text-sm font-medium tracking-[-0.14px] text-[#ecedee] shadow-[0px_0px_0px_3px_rgba(236,237,238,0.06)] outline-none placeholder:text-[#8b8f98]`}):n?(0,Y.jsxs)(`button`,{type:`button`,onClick:f,title:`Rename draft`,className:`flex h-[30px] shrink-0 items-center gap-1.5 rounded-md border border-dashed border-[#ffffff1a] px-2 hover:border-[#ffffff33]`,children:[(0,Y.jsx)(`span`,{className:u?`whitespace-nowrap font-sans text-[15px] font-semibold tracking-[-0.15px] text-[#ecedee]`:`min-w-0 max-w-[320px] truncate ${o4} text-sm font-medium tracking-[-0.14px] text-[#ecedee]`,children:d}),(0,Y.jsx)(c,{className:`size-3 text-[#8b8f98]`,"aria-hidden":!0})]}):(0,Y.jsxs)(`button`,{type:`button`,onClick:f,title:`Rename pipeline`,className:`group/title -mx-1 flex min-w-0 items-center gap-1.5 rounded-md px-1 hover:bg-[#ffffff0a]`,children:[(0,Y.jsx)(`span`,{className:`min-w-0 max-w-[320px] truncate ${o4} text-sm font-medium tracking-[-0.14px] text-[#ecedee]`,children:d}),(0,Y.jsx)(c,{className:`size-3 shrink-0 text-[#8b8f98] opacity-0 group-hover/title:opacity-100`,"aria-hidden":!0})]})}function u4({at:e,onDisk:t}){let n=IJ(5e3);return(0,Y.jsxs)(`span`,{className:`whitespace-nowrap font-sans text-[11px] text-[#8b8f98]`,children:[`Autosaved `,FJ(e,n),t?``:` · not on disk`]})}function d4({title:e,untitled:t,saveState:n,changeCount:r,autosavedAt:i,autoApply:a,onAutoApplyChange:o,onRename:s,stageCount:c,errorCount:l,validateBusy:u,onValidate:d,hasDestination:f,saving:p,onSave:m,onSaveAs:h,onSaveInvalid:g,onErrorsClick:_}){let v=c===0,y=v||u,b=nN({stageCount:c,saving:p,hasDestination:f,saveState:n}),x=v||p,S=l>0&&!b,C=v||f&&n===`clean`,w=`flex h-6 shrink-0 items-center gap-1 rounded-full border border-[#f2645a47] bg-[#f2645a1a] px-2`,T=(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(St,{className:`size-3 text-[#f2645a]`,"aria-hidden":!0}),(0,Y.jsx)(`span`,{className:`whitespace-nowrap font-sans text-xs font-medium text-[#f2645a]`,children:s4(l)})]});return(0,Y.jsxs)(`header`,{className:`relative flex h-[52px] w-full shrink-0 items-center gap-1.5 border-b border-b-[#ffffff12] bg-[#0c0d0f] px-3.5`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 shrink flex-col justify-center gap-0.5`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,Y.jsx)(l4,{title:e,untitled:t,isNewDraft:n===`new`,onRename:s}),(0,Y.jsx)(c4,{saveState:n,changeCount:r})]}),i===null?null:(0,Y.jsx)(u4,{at:i,onDisk:n===`clean`})]}),(0,Y.jsx)(`div`,{className:`min-w-0 flex-1`}),(0,Y.jsxs)(`button`,{type:`button`,role:`switch`,"aria-checked":a,onClick:()=>o(!a),className:`flex shrink-0 items-center gap-[7px] rounded-md py-1 pr-1`,children:[(0,Y.jsx)(`span`,{className:`flex h-4 w-[26px] items-center rounded-full px-0.5 transition-colors ${a?`bg-[#ecedee]`:`bg-[#2a2d33]`}`,children:(0,Y.jsx)(`span`,{className:`block size-3 rounded-full transition-transform ${a?`translate-x-[10px] bg-[#0c0d0f]`:`bg-[#8b8f98]`}`})}),(0,Y.jsx)(`span`,{className:`whitespace-nowrap font-sans text-xs text-[#a7aab2]`,children:`Auto-apply chat edits`})]}),(0,Y.jsx)(`div`,{className:`h-5 w-px shrink-0 bg-[#ffffff12]`}),(0,Y.jsxs)(`div`,{className:`group relative shrink-0`,children:[(0,Y.jsxs)(`button`,{type:`button`,disabled:y,onClick:d,className:`flex h-8 items-center gap-1.5 rounded-lg border px-2.5 ${v?`cursor-not-allowed border-[#ffffff0d] bg-[#131418]`:`border-[#ffffff1a] bg-[#1a1c21] enabled:hover:bg-[#202228]`}`,children:[u?(0,Y.jsx)(bt,{className:`size-3.5 animate-spin text-[#a7aab2]`,"aria-hidden":!0}):null,(0,Y.jsx)(`span`,{className:`whitespace-nowrap font-sans text-[13px] font-medium ${v?`text-[#8b8f98]`:`text-[#ecedee]`}`,children:u?`Validating…`:`Validate`}),u?null:(0,Y.jsx)(Nl,{children:`V`})]}),v?(0,Y.jsx)(`div`,{className:`pointer-events-none absolute right-0 top-[38px] z-10 hidden h-6 items-center whitespace-nowrap rounded-md border border-[#ffffff1a] bg-[#1a1c21] px-2 font-sans text-[11px] text-[#a7aab2] shadow-[0px_8px_24px_rgba(0,0,0,0.5)] group-hover:flex`,children:`nothing to validate`}):null]}),f?(0,Y.jsx)(`button`,{type:`button`,disabled:x,onClick:h,className:`flex h-8 shrink-0 items-center gap-1.5 rounded-lg border px-2.5 ${x?`cursor-not-allowed border-[#ffffff0d] bg-[#131418]`:`border-[#ffffff1a] bg-[#1a1c21] hover:bg-[#202228]`}`,children:(0,Y.jsx)(`span`,{className:`whitespace-nowrap font-sans text-[13px] font-medium ${x?`text-[#8b8f98]`:`text-[#ecedee]`}`,children:`Save As…`})}):null,l>0?_?(0,Y.jsx)(`button`,{type:`button`,onClick:_,className:`${w} hover:bg-[#f2645a26]`,children:T}):(0,Y.jsx)(`span`,{className:w,children:T}):null,(0,Y.jsxs)(`div`,{className:`group relative shrink-0`,children:[(0,Y.jsxs)(`button`,{type:`button`,disabled:b,onClick:m,className:`flex h-8 items-center rounded-lg px-3 ${C?`cursor-not-allowed gap-2 bg-[#2a2d33]`:`gap-1.5 bg-[#ecedee] enabled:hover:bg-white`}`,children:[p?(0,Y.jsx)(bt,{className:`size-3.5 animate-spin text-[#0c0d0f]`,"aria-hidden":!0}):C?(0,Y.jsx)(L,{className:`size-3.5 text-[#8b8f98]`,"aria-hidden":!0}):null,(0,Y.jsx)(`span`,{className:`whitespace-nowrap font-sans text-[13px] font-medium ${C?`text-[#8b8f98]`:`text-[#0c0d0f]`}`,children:p?`Saving…`:f?`Save`:`Save…`}),p?null:(0,Y.jsx)(`span`,{className:`${o4} text-[11px] ${v?`text-[#8b8f98]`:`text-[#5a5e66]`}`,children:`⌘S`})]}),S?(0,Y.jsx)(`div`,{className:`absolute right-0 top-full z-10 hidden pt-1.5 group-focus-within:block group-hover:block`,children:(0,Y.jsxs)(`div`,{className:`flex flex-col items-start gap-px whitespace-nowrap rounded-md border border-[#ffffff1a] bg-[#1a1c21] px-2 py-[5px] shadow-[0px_6px_16px_rgba(0,0,0,0.45)]`,children:[(0,Y.jsxs)(`span`,{className:`font-sans text-[11px] text-[#a7aab2]`,children:[`Fix `,s4(l),` or`]}),(0,Y.jsx)(`button`,{type:`button`,onClick:g,className:`font-sans text-[11px] font-medium text-[#ecedee] underline decoration-[#ffffff40] underline-offset-2 hover:decoration-[#ecedee]`,children:`save invalid anyway`})]})}):null]})]})}var f4=32;function p4({chatWidth:e,onChatWidthChange:t,seedMessages:n,adapter:r,toolActivity:i,onStop:a,threadKey:o,ready:s,bootError:c,sessionTitle:l,chatCards:u,onAccept:d,onReject:f,sessions:p,activeSessionId:m,historyLoading:h,historyError:g,onHistoryOpen:_,onOpenSession:v,onNewSession:y,pickerRows:b,selectedBuildId:x,onPickRow:S,model:C,defaultModel:w,onModelChange:T,hasTask:E,attachments:D,onAttachmentsChange:O,docsContext:k,onDocsContextChange:A,composerHandle:j,onStarter:M,toolbar:N,resumeBanner:P,diskBanner:F,studioError:I,draft:L,baseline:R,selectedStageId:z,graphFindings:B,onSelectStage:V,onAddStage:H,drawer:ee,inspector:te,saveDialog:ne,toast:re}){let ie=e=>t($M(e));return(0,Y.jsxs)(`div`,{className:`flex h-full min-h-0 flex-1 overflow-hidden bg-[#0c0d0f]`,children:[(0,Y.jsx)(`section`,{className:`flex h-full min-h-0 shrink-0 flex-col`,style:{width:e},"aria-label":`Workshop chat`,children:(0,Y.jsx)(R0,{seedMessages:n,adapter:r,toolActivity:i,onStop:a,threadKey:o,ready:s,bootError:c,sessionTitle:l,mutationCards:u,onAccept:d,onReject:f,sessions:p,activeSessionId:m,historyLoading:h,historyError:g,onHistoryOpen:_,onOpenSession:v,onNewSession:y,pickerRows:b,selectedBuildId:x,onPickRow:S,model:C,defaultModel:w,onModelChange:T,hasTask:E,attachments:D,onAttachmentsChange:O,docsContext:k,onDocsContextChange:A,composerHandle:j,onStarter:M})}),(0,Y.jsx)(`div`,{role:`separator`,"aria-orientation":`vertical`,"aria-label":`Resize chat`,"aria-valuemin":300,"aria-valuemax":560,"aria-valuenow":Math.round(e),tabIndex:0,className:`w-1.5 shrink-0 cursor-col-resize bg-[#ffffff12]`,onPointerDown:t=>{if(t.button!==0)return;t.preventDefault();let n=t.currentTarget;n.setPointerCapture(t.pointerId);let r=t.clientX,i=e,a=e=>{e.pointerId===t.pointerId&&ie(i+(e.clientX-r))},o=e=>{e.pointerId===t.pointerId&&(n.removeEventListener(`pointermove`,a),n.removeEventListener(`pointerup`,o),n.removeEventListener(`pointercancel`,o))};n.addEventListener(`pointermove`,a),n.addEventListener(`pointerup`,o),n.addEventListener(`pointercancel`,o)},onKeyDown:t=>{t.key===`ArrowLeft`?(t.preventDefault(),ie(e-f4)):t.key===`ArrowRight`?(t.preventDefault(),ie(e+f4)):t.key===`Home`?(t.preventDefault(),ie(300)):t.key===`End`&&(t.preventDefault(),ie(560))}}),(0,Y.jsxs)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col`,children:[(0,Y.jsx)(d4,{...N}),F?(0,Y.jsx)(B0,{changedPaths:F.changedPaths,onReload:F.onReload,onKeep:F.onKeep,onDismiss:F.onDismiss}):P?(0,Y.jsx)(M2,{updatedAt:P.updatedAt,pipelineId:P.pipelineId,onResume:P.onResume,onDiscard:P.onDiscard,onDismiss:P.onDismiss}):null,I?(0,Y.jsx)(`p`,{className:`border-b border-b-[#ffffff12] px-4 py-1.5 text-xs text-[#f2645a]`,children:I}):null,(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1`,children:[(0,Y.jsxs)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col`,children:[(0,Y.jsx)(_2,{draft:L,baseline:R,selectedStageId:z,findings:B,onSelectStage:V,onAddStage:H,defaultModel:w}),(0,Y.jsx)(r2,{...ee})]}),(0,Y.jsx)(j2,{draft:L,baseline:R,selectedStageId:z,tab:te.tab,onTabChange:te.onTabChange,onDraftChange:te.onDraftChange,onDeleteStage:te.onDeleteStage,onRenameStage:te.onRenameStage,findings:B,defaultModel:w,focusField:te.focusField,pipelinePath:te.pipelinePath})]})]}),(0,Y.jsx)(i4,{...ne}),re?(0,Y.jsx)(a4,{...re}):null]})}var m4=`__untitled__`;function h4(e){let t=e?.trim();return t?t.replace(/\\/g,`/`):m4}function g4(e){return String(e)}var _4=420,v4=280,y4=320,b4=32,x4={pipeline:{id:`untitled`,stages:[]}},S4=`What are we building? Tell me the workflow in your own words — I’ll ask where it changes the draft.`,C4={nodes:[],edges:[]},w4=(0,J.createContext)(null);function T4(){let e=(0,J.useContext)(w4);if(!e)throw Error(`WorkshopMutationContext missing`);return e}function E4(e){return e.split(/[-_]/).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}function D4(){return[]}function O4(e){return e.length===0?[]:e.map(e=>({role:e.role===`user`||e.role===`system`||e.role===`assistant`?e.role:`assistant`,content:e.text}))}function k4(e,t){return(e.stages??[]).find(e=>typeof e.body.id==`string`&&e.body.id===t||e.path.replace(/^\.\//,``).replace(/\.ya?ml$/,``)===t)?.body??null}function A4(e){if(!e||e.io==null)return`IO not set yet`;try{return JSON.stringify(e.io)}catch{return`IO present`}}function j4(e){if(!e)return`Verify not set yet`;if(e.verify!=null)try{return JSON.stringify(e.verify)}catch{return`Verify present`}return`Verify not set yet`}function M4(e){if(!e)return[];let t=[];if((e.ask_operator===!0||e.hitl===!0)&&t.push(`confirm`),Array.isArray(e.gates))for(let n of e.gates)typeof n==`string`&&t.push(n);return t}function N4(e,t){let n=new Map;for(let e of t.values())if(e.status===`pending`)for(let t of e.proposal.affectedStageIds)n.set(t,`pending`);return e.pipeline.stages.map((t,r)=>{let i=typeof t.id==`string`&&t.id?t.id:`stage-${r}`,a=k4(e,i),o=typeof a?.system_prompt==`string`?a.system_prompt:typeof a?.systemPrompt==`string`?a.systemPrompt:`Stage ${i}`;return{stageId:i,title:E4(i),promptSummary:o,ioSummary:A4(a),verifySummary:j4(a),hitlFlags:M4(a),mutationStatus:n.get(i)??`applied`}})}function P4(e){return{nodes:e.map((t,n)=>{let r=t.mutationStatus===`pending`;return{stage_id:t.stageId,status:r?`waiting_for_input`:`succeeded`,readiness:r?`waiting`:`succeeded`,layer:n,layer_order:0,attempt_count:+!r,gate_kinds:r?[`confirm`]:void 0,blocked_by:n>0?[e[n-1].stageId]:void 0}}),edges:e.slice(1).map((t,n)=>({from:e[n].stageId,to:t.stageId}))}}function F4(e){return e.map(e=>{let t=e.mutationStatus===`pending`;return{stage_id:e.stageId,status:t?`waiting_for_input`:`succeeded`,events:[],envelope:null,artifacts:[],attempt_count:+!t}})}function I4(e){return e.map(e=>{let t=e.mutationStatus===`pending`;return{stageId:e.stageId,title:e.title,kicker:t?`mutation · pending`:`stage · draft`,status:t?`waiting_for_input`:`succeeded`,attemptCount:t?void 0:1,readinessLine:t?`Awaiting Accept / Reject`:void 0,gateKinds:t?[`confirm`]:void 0,titleOnly:!0,isWaitingAttention:t,isSuperseded:!1}})}function L4(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(!(!n||n.role!==`user`))return n.content.filter(e=>e.type===`text`).map(e=>e.text).join(` `).trim()}return``}function R4(e,t,n){let r=H$(e.selectedBuildId.current,t,n);if(r.kind!==`ignore`){if(r.kind===`adopt-pointer`){e.onPointerChange?e.onPointerChange({buildId:r.buildId,draft:r.draft}):(e.selectedBuildId.current=r.buildId,e.setDraft(r.draft));return}e.setDraft(r.draft)}}function z4(e){let t=[];for(let n of e)n.type===`message`&&n.role===`assistant`&&n.text?t.push(n.text):n.type===`error`&&n.message&&t.push(n.message);return t.join(`
252
-
253
- `).trim()}function B4(e){return{async*run({messages:t,abortSignal:n}){let r=L4(t);if(!r){yield{content:[{type:`text`,text:S4}]};return}e.clearActivity();let i=e.sessionId.current;if(!i&&e.ensureChatSession&&(i=await e.ensureChatSession()),!i){yield{content:[{type:`text`,text:`Could not start a workshop chat session. Try again.`}]};return}let a=``,o=[],s=[],c,l=e=>{s.push(e),c?.(),c=void 0},u=()=>new Promise(e=>{c=e}),d=new AbortController,f=()=>{d.signal.aborted||(d.abort(),l({kind:`aborted`}))};e.stop.current=f,n?.aborted?f():n?.addEventListener(`abort`,f,{once:!0});let p=[...t].reverse().find(e=>e.role===`user`)?.metadata?.custom??{},m=Array.isArray(p.attachments)?p.attachments.filter(e=>!!e&&typeof e==`object`&&typeof e.name==`string`&&typeof e.content==`string`):[],h=m.length>0?m:e.attachments?.current??[],g=p.context?.docs===!0||e.docsContext?.current===!0,_=Co({sessionId:i,message:r,draft:e.draft.current,model:e.model.current,autoApply:e.autoApply?.current===!0,...h.length>0?{attachments:h.map(({name:e,mediaType:t,size:n,content:r})=>({name:e,mediaType:t,size:n,content:r}))}:{},...g?{context:{docs:!0}}:{},...(()=>{let t=e.saveTargetWireId?.current?.trim(),n=e.defaultWriteWireId?.current?.trim()||`workspace`;return!t||t===n?{}:{project_root:t}})()},{onDelta:e=>{a+=e,l({kind:`delta`})},onActivity:t=>{e.sessionId.current===i&&(t.draft!==null&&typeof t.draft==`object`&&R4(e,t.buildId,t.draft),e.pushActivity({id:t.id,name:t.name,status:t.status,...t.target===void 0?{}:{target:t.target},...t.errorMessage===void 0?{}:{errorMessage:t.errorMessage},textOffset:a.length}))},onEvent:e=>{e.type===`proposal`&&o.push(e.proposal)},onPointerChange:t=>{e.sessionId.current===i&&(e.selectedBuildId.current=t.buildId,e.setDraft(t.draft),e.onPointerChange?.(t))},signal:d.signal}).then(e=>(l({kind:`done`,result:e}),e));try{for(;;){s.length===0&&await u();let t=s.shift();if(t.kind===`delta`){yield{content:[{type:`text`,text:a||`…`}]};continue}if(t.kind===`aborted`){let t=await So(i),n=e.sessionId.current===i&&V$(e.selectedBuildId.current,t?.buildId);t?.draft&&n&&R4(e,t.buildId,t.draft),n&&t?.pending&&!o.some(e=>e.id===t.pending?.id)&&o.push(t.pending),n&&o.length>0&&e.registerMutations(o),yield{content:[{type:`text`,text:a.trim()||`Stopped.`},...w$(o)]};return}await _;let n=t.result;if(!n.ok){yield{content:[{type:`text`,text:d.signal.aborted||n.error===`Stopped.`?a.trim()||`Stopped.`:`${T$} ${n.error}`}]};return}let r=e.sessionId.current===i&&V$(e.selectedBuildId.current,n.buildId);r&&R4(e,n.buildId,n.draft);let c=z4(n.events),l=a.trim()||c||(o.length>0?`Updated the draft. Accept or Reject the mutation cards below.`:`No draft change. ${e.model.current} finished without updating the studio.`);r&&o.length>0?e.registerMutations(o):r&&n.pending&&(e.registerMutations([n.pending]),o.push(n.pending)),yield{content:[{type:`text`,text:l},...w$(o)]};return}}finally{e.stop.current===f&&(e.stop.current=null),n?.removeEventListener(`abort`,f)}}}}function V4({args:e}){let t=T4(),n=Es(),r=Yt(e=>e.thread.isRunning),i=typeof e?.mutationId==`string`?e.mutationId:``,a=i?t.getCard(i):void 0,o=typeof e?.summary==`string`?e.summary:a?.proposal.summary??`Draft mutation`,s=Array.isArray(e?.affectedStageIds)&&e.affectedStageIds.length>0?e.affectedStageIds:a?.proposal.affectedStageIds??[],c=a?.status??`pending`,[l,u]=(0,J.useState)(!1),d=C$(r,l),f=async e=>{if(!(!i||d||c!==`pending`)){u(!0);try{e===`accepted`?await t.accept(i):await t.reject(i)}finally{u(!1)}}};return n?(0,Y.jsx)(A1,{summary:o,proposal:a?.proposal,stageIds:s,status:c,notice:a?.notice,locked:d,onAccept:()=>void f(`accepted`),onReject:()=>void f(`rejected`)}):(0,Y.jsxs)(`div`,{className:`workshop-lab__proposal`,"data-status":c,"data-tool":`draft_mutation`,children:[(0,Y.jsxs)(`div`,{className:`workshop-lab__proposal-head`,children:[(0,Y.jsx)(`div`,{className:`eyebrow`,children:`Draft mutation`}),(0,Y.jsx)(`strong`,{className:`workshop-lab__proposal-title`,children:o}),s.length>0?(0,Y.jsx)(`span`,{className:`workshop-lab__proposal-id muted`,children:s.join(`, `)}):null]}),(0,Y.jsx)(`p`,{className:`workshop-lab__proposal-summary`,children:`Applied to the studio. Accept confirms; Reject soft-undos when the draft is unchanged.`}),c===`pending`?(0,Y.jsxs)(`div`,{className:`workshop-lab__proposal-actions`,children:[(0,Y.jsx)(`button`,{type:`button`,className:`btn btn--primary`,disabled:d,onClick:()=>void f(`accepted`),children:`Accept`}),(0,Y.jsx)(`button`,{type:`button`,className:`btn btn--ghost`,disabled:d,onClick:()=>void f(`rejected`),children:`Reject`})]}):(0,Y.jsx)(`p`,{className:`workshop-lab__proposal-status muted`,children:c===`accepted`?`Accepted`:c===`rejected`?`Rejected · undone`:a?.notice??`Could not undo — ask the agent to reverse it`})]})}function H4(){return(0,Y.jsxs)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`,children:[(0,Y.jsx)(`path`,{d:`M8 3.5V8l3 1.5`,stroke:`currentColor`,strokeWidth:`1.4`,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,Y.jsx)(`circle`,{cx:`8`,cy:`8`,r:`5.25`,stroke:`currentColor`,strokeWidth:`1.4`}),(0,Y.jsx)(`path`,{d:`M3.2 4.2 2 3M3.2 4.2 4.5 3.4`,stroke:`currentColor`,strokeWidth:`1.4`,strokeLinecap:`round`,strokeLinejoin:`round`})]})}function U4(){return(0,Y.jsx)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`,children:(0,Y.jsx)(`path`,{d:`M8 3.5v9M3.5 8h9`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`})})}function W4({onHistory:e,onNew:t,historyOpen:n}){return(0,Y.jsxs)(`header`,{className:`workshop-lab__chat-header`,children:[(0,Y.jsx)(`div`,{className:`workshop-lab__chat-title`,children:`Chat`}),(0,Y.jsxs)(`div`,{className:`workshop-lab__chat-actions`,children:[(0,Y.jsx)(`button`,{type:`button`,className:`workshop-lab__icon-btn`,"aria-label":`Chat history`,"aria-expanded":n,onClick:e,children:(0,Y.jsx)(H4,{})}),(0,Y.jsx)(`button`,{type:`button`,className:`workshop-lab__icon-btn`,"aria-label":`New chat`,onClick:t,children:(0,Y.jsx)(U4,{})})]})]})}function G4({sessions:e,pickerRows:t,activeSessionId:n,loading:r,error:i,onClose:a,onSelect:o}){return(0,Y.jsxs)(`div`,{className:`workshop-lab__history`,role:`dialog`,"aria-label":`Chat history`,children:[(0,Y.jsxs)(`div`,{className:`workshop-lab__history-head`,children:[(0,Y.jsx)(`div`,{className:`eyebrow`,children:`History`}),(0,Y.jsx)(`button`,{type:`button`,className:`btn btn--ghost btn--sm`,onClick:a,children:`Close`})]}),r?(0,Y.jsx)(`p`,{className:`muted workshop-lab__history-empty`,children:`Loading sessions…`}):i?(0,Y.jsx)(`p`,{className:`muted workshop-lab__history-empty`,children:i}):e.length===0?(0,Y.jsx)(`p`,{className:`muted workshop-lab__history-empty`,children:`No prior sessions yet.`}):(0,Y.jsx)(`ul`,{className:`workshop-lab__history-list`,children:e.map(e=>{let r=e.title.trim()||`Untitled session`,i=new Date(e.updatedAt).toLocaleString(),a=G$(e.activeBuildId,t);return(0,Y.jsx)(`li`,{children:(0,Y.jsxs)(`button`,{type:`button`,className:`workshop-lab__history-item`,"data-active":e.id===n?`true`:`false`,onClick:()=>o(e.id),children:[(0,Y.jsx)(`strong`,{children:r}),a?(0,Y.jsx)(`span`,{children:a}):null,(0,Y.jsx)(`span`,{className:`muted`,children:i})]})},e.id)})})]})}function K4({stage:e,onClose:t}){(0,J.useEffect)(()=>{let e=e=>{e.key===`Escape`&&(e.preventDefault(),t())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[t]);let n=e.hitlFlags.length>0?e.hitlFlags.join(`, `):`None`;return(0,Y.jsxs)(`div`,{className:`workshop-lab__popup-root`,children:[(0,Y.jsx)(`button`,{type:`button`,className:`workshop-lab__popup-scrim`,"aria-label":`Close stage details`,onClick:t}),(0,Y.jsxs)(`div`,{className:`workshop-lab__popup`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`workshop-stage-popup-title`,children:[(0,Y.jsxs)(`div`,{className:`workshop-lab__popup-head`,children:[(0,Y.jsx)(`h2`,{id:`workshop-stage-popup-title`,className:`workshop-lab__popup-title`,children:e.title}),(0,Y.jsx)(`button`,{type:`button`,className:`btn btn--ghost btn--sm`,onClick:t,children:`Close`})]}),(0,Y.jsxs)(`dl`,{className:`workshop-lab__popup-fields`,children:[(0,Y.jsxs)(`div`,{className:`workshop-lab__popup-field`,children:[(0,Y.jsx)(`dt`,{children:`Name`}),(0,Y.jsx)(`dd`,{children:e.stageId})]}),(0,Y.jsxs)(`div`,{className:`workshop-lab__popup-field`,children:[(0,Y.jsx)(`dt`,{children:`Title`}),(0,Y.jsx)(`dd`,{children:e.title})]}),(0,Y.jsxs)(`div`,{className:`workshop-lab__popup-field`,children:[(0,Y.jsx)(`dt`,{children:`Prompt`}),(0,Y.jsx)(`dd`,{children:e.promptSummary})]}),(0,Y.jsxs)(`div`,{className:`workshop-lab__popup-field`,children:[(0,Y.jsx)(`dt`,{children:`IO`}),(0,Y.jsx)(`dd`,{children:e.ioSummary})]}),(0,Y.jsxs)(`div`,{className:`workshop-lab__popup-field`,children:[(0,Y.jsx)(`dt`,{children:`Verify`}),(0,Y.jsx)(`dd`,{children:e.verifySummary})]}),(0,Y.jsxs)(`div`,{className:`workshop-lab__popup-field`,children:[(0,Y.jsx)(`dt`,{children:`HITL`}),(0,Y.jsx)(`dd`,{children:n})]}),(0,Y.jsxs)(`div`,{className:`workshop-lab__popup-field`,children:[(0,Y.jsx)(`dt`,{children:`Mutation`}),(0,Y.jsx)(`dd`,{children:e.mutationStatus})]})]})]})]})}function q4(){return(0,Y.jsxs)(`div`,{className:`workshop-lab__map-empty`,children:[(0,Y.jsx)(`div`,{className:`eyebrow`,children:`Studio`}),(0,Y.jsx)(`p`,{children:`Pipeline appears here as you build`})]})}function J4(e){return e?.trim()??``}function Y4({sessionId:e,pipelinePath:t,taskPath:n,projectRoot:r}={}){let[i,a]=(0,J.useState)(null),[o,s]=(0,J.useState)(x4),[c,l]=(0,J.useState)(()=>new Map),[u,d]=(0,J.useState)([]),[f,p]=(0,J.useState)(0),[m,h]=(0,J.useState)(null),[g,_]=(0,J.useState)(null),[v,y]=(0,J.useState)(!1),[b,x]=(0,J.useState)(!1),[S,C]=(0,J.useState)(null),[w,T]=(0,J.useState)([]),[E,D]=(0,J.useState)([]),[O,k]=(0,J.useState)(null),[A,j]=(0,J.useState)(null),[M,N]=(0,J.useState)(``),[P,F]=(0,J.useState)(null),I=Es(),[L,R]=(0,J.useState)(!1),[z,B]=(0,J.useState)(null),[V,H]=(0,J.useState)(!1),[ee,te]=(0,J.useState)(null),[ne,re]=(0,J.useState)(!1),[ie,ae]=(0,J.useState)(!1),[oe,se]=(0,J.useState)(null),[ce,le]=(0,J.useState)(!1),[ue,de]=(0,J.useState)([]),[fe,pe]=(0,J.useState)(!1),[me,he]=(0,J.useState)(`stage`),[ge,_e]=(0,J.useState)(null),[ve,ye]=(0,J.useState)(null),[be,xe]=(0,J.useState)(null),[Se,Ce]=(0,J.useState)(null),[we,Te]=(0,J.useState)([]),[Ee,De]=(0,J.useState)(!1),[Oe,ke]=(0,J.useState)(()=>{let e=r?.trim();return e?{project_root:e,kind:e===`examples`?`seeded`:`registered`,readOnly:e===`examples`}:null}),[Ae,je]=(0,J.useState)(void 0),[Me,U]=(0,J.useState)(QM),[Ne,Pe]=(0,J.useState)([]),[Fe,W]=(0,J.useState)(null),[Ie,Le]=(0,J.useState)(null),[Re,ze]=(0,J.useState)(()=>IN(x4)),[Be,Ve]=(0,J.useState)(!1),[He,Ue]=(0,J.useState)(null),[We,Ge]=(0,J.useState)([]),[Ke,qe]=(0,J.useState)(!1),[Je,Ye]=(0,J.useState)(`create`),[Xe,Ze]=(0,J.useState)(!1),[Qe,$e]=(0,J.useState)(null),[et,tt]=(0,J.useState)(!1),[nt,rt]=(0,J.useState)(null),[it,at]=(0,J.useState)(null),[ot,st]=(0,J.useState)(384),ct=(0,J.useRef)({}),lt=(0,J.useRef)([]),ut=(0,J.useRef)(!1),dt=(0,J.useRef)(!1),ft=(0,J.useRef)(void 0),pt=(0,J.useRef)(QM),mt=(0,J.useRef)(async()=>{}),ht=(0,J.useRef)(null),gt=(0,J.useRef)(0),_t=(0,J.useRef)(0),vt=(0,J.useRef)(!1),G=(0,J.useRef)(null),yt=(0,J.useRef)(x4),bt=(0,J.useRef)(``),xt=(0,J.useRef)(null),St=(0,J.useRef)(null),Ct=(0,J.useRef)(null),wt=(0,J.useRef)([]),Tt=(0,J.useRef)(U$([])),Et=(0,J.useRef)(0),Dt=(0,J.useRef)(!1),Ot=(0,J.useRef)(()=>{});G.current=i,yt.current=o,bt.current=M,lt.current=we,ut.current=Ee,dt.current=L,ft.current=Ae,pt.current=Me,vt.current=ne;let K=(0,J.useCallback)(e=>{yt.current=e,s(e)},[]),kt=(0,J.useCallback)(e=>{Tt.current=e,wt.current=e.rows,St.current=e.buildId,Ct.current=e.buildId,D(e.rows),k(e.buildId),j(e.error),K(e.draft)},[K]),At=(0,J.useCallback)(e=>{wt.current=e,Tt.current={...Tt.current,rows:e},D(e)},[]),jt=(0,J.useCallback)(async()=>{let e=await po();if(!e.ok)return;let t=Tt.current.rows.find(e=>e.id!=null&&e.id===St.current)??null;At(q$(e.rows,t))},[At]),[Mt,Nt]=(0,J.useState)([]),Pt=(0,J.useCallback)(e=>{Nt(t=>{let n=t.findIndex(t=>t.id===e.id);if(n<0)return[...t,e].slice(-12);let r=t.slice();return r[n]=e,r})},[]),Ft=(0,J.useCallback)(()=>{Nt([])},[]),It=(0,J.useCallback)(e=>{let t=dt.current,n=Date.now();if(l(r=>{let i=new Map(r);for(let r of e){let e=AN(t,n);i.set(r.id,{proposal:r,...e})}return i}),t)for(let t of e)mt.current(t.id)},[]);Ot.current=e=>{let t={sessionId:G.current,buildId:Ct.current},n=K$(Tt.current,e);kt(n),l(e=>J$(t,{sessionId:G.current,buildId:n.buildId},e)),jt()},(0,J.useEffect)(()=>{jt()},[jt]),(0,J.useEffect)(()=>{let e=!1;return(async()=>{try{let t=await Ca();if(e)return;let n=J4(t.defaultModel);F(n),N(n)}catch{if(e)return}})(),()=>{e=!0}},[]);let Lt=(0,J.useCallback)(e=>{Z(Oc({...e?{session:e}:{},...t?{pipeline:t}:{},...n?{task:n}:{},...r?{project_root:r}:{}}))},[t,r,n]),Rt=(0,J.useCallback)(e=>{e?.keepBootError||_(null),y(!1);let t={sessionId:G.current,buildId:Ct.current};G.current=null,a(null);let n=U$(wt.current);kt(n),l(e=>J$(t,{sessionId:null,buildId:null},e)),h(null),d(D4()),p(e=>e+1),Ce(null),ye(null),xe(null),_e(null),ke(null),je(void 0),Te([]),Le(null),ze(`task`),Ue(null)},[kt]),zt=(0,J.useCallback)(e=>{++Et.current,Dt.current=!0,Rt(e),Lt(null)},[Rt,Lt]),q=(0,J.useCallback)(async()=>{if(G.current)return G.current;let e=await fo();return e.ok?(G.current=e.session.id,a(e.session.id),Lt(e.session.id),e.session.id):(_(e.error),null)},[Lt]),Bt=(0,J.useMemo)(()=>({sessionId:G,draft:yt,model:bt,selectedBuildId:St,setDraft:K,onPointerChange:e=>Ot.current(e),registerMutations:It,pushActivity:Pt,clearActivity:Ft,stop:xt,attachments:lt,docsContext:ut,autoApply:dt,saveTargetWireId:ft,defaultWriteWireId:pt,ensureChatSession:q}),[K,It,Pt,Ft,q]),Vt=(0,J.useMemo)(()=>B4(Bt),[Bt]),Ht=(0,J.useCallback)(async(e,t,n)=>{let r=++Et.current;_(null),y(!1),l(new Map),h(null),Ce(null),ye(null),xe(null),_e(null);let i=await fo();if(Et.current!==r)return;if(!i.ok){_(i.error),zt({keepBootError:!0});return}let o=await ro(pN({path:e,task:t,projectRoot:n}));if(Et.current!==r)return;if(!o.ok){_(o.error),zt({keepBootError:!0});return}G.current=i.session.id,a(i.session.id),K(o.draft),l(new Map),h(null),d(D4()),p(e=>e+1),ye(o.pipelinePath),_e(o.destination),xe(o.taskPath??null),Ce(uA(o.draft)),ze(IN(o.draft)),Ue(null),Te([]);let s=aN(o)??(n?{project_root:n,kind:n===`examples`?`seeded`:`registered`,readOnly:n===`examples`}:null);s&&ke(s),je(void 0),Lt(i.session.id)},[K,zt,Lt]),Ut=(0,J.useCallback)(async(e,t)=>{let n=++Et.current;t?.fromHistory&&(x(!0),C(null));let r={sessionId:G.current,buildId:Ct.current},i=await vo(e);if(Et.current!==n)return;if(t?.fromHistory&&x(!1),!i.ok){t?.fromHistory?C(i.error):_(i.error);return}G.current=i.session.id,kt(U$(wt.current)),l(e=>J$(r,{sessionId:i.session.id,buildId:null},e));let o=null,s=null;if(i.session.activeBuildId){let e=await ho(i.session.activeBuildId);if(Et.current!==n)return;e.ok?o=e.build:s=e.error}let c=W$({activeBuildId:i.session.activeBuildId,build:o,rows:wt.current,error:s}),u=Ct.current;kt(c),a(i.session.id),l(e=>J$({sessionId:i.session.id,buildId:u},{sessionId:i.session.id,buildId:c.buildId},e)),h(null),d(I?a1(i.session.transcript):O4(i.session.transcript)),p(e=>e+1),t?.fromHistory&&y(!1),Ce(null),ye(null),xe(null),_e(null),je(void 0),Te([]),Ue(null);let f=o&&o.relativePath?.trim()&&o.projectRoot?.trim()?o:null;if(f){let e=CN(f.relativePath,f.draft.pipeline.id);e&&(ye(e.savedPipelinePath),_e(e.saveDestination));let t=c.rows.find(e=>e.id===f.id)?.projectRoot??f.projectRoot;(async()=>{let e=await ro(pN({path:f.relativePath,projectRoot:t}));if(Et.current!==n)return;if(e.ok){ye(e.pipelinePath),_e(e.destination),xe(e.taskPath??null),Ce(uA(e.draft)),ke(aN(e)??oN());return}Ce(uA(f.draft));let r=aN({project_root:t})??(t?{project_root:t,kind:`registered`,readOnly:!1}:null);r&&ke(r)})()}l(SN(i.session.transcript)),Lt(i.session.id)},[kt,I,Lt]);(0,J.useEffect)(()=>{if(rN(t)===`package`&&t){let e=!1;return(async()=>{let i=r?.trim()||void 0;if(!i)try{let n=await Fi();if(e)return;i=hN(n.pipelines,t)}catch{}e||Ht(t,n,i)})(),()=>{e=!0}}let i=e?.trim();if(i){if(G.current===i)return;Ut(i);return}G.current||Dt.current||(Dt.current=!0,Rt())},[Rt,Ht,t,r,n,e,Ut]);let Wt=(0,J.useCallback)(async()=>{y(!0),x(!0),C(null);let[e,t]=await Promise.all([uo(),po()]);if(x(!1),t.ok){let e=Tt.current.rows.find(e=>e.id!=null&&e.id===St.current)??null;At(q$(t.rows,e))}if(!e.ok){C(e.error),T([]);return}T(e.sessions)},[At]),Gt=(0,J.useCallback)(async e=>{await Ut(e,{fromHistory:!0})},[Ut]),Kt=(0,J.useCallback)(async e=>{let t=G.current;if(!t)return;let n=Et.current,r={sessionId:t,buildId:Ct.current},i=await Y$({sessionId:t,row:e,selection:Tt.current,focus:async e=>{if(!e.projectRoot||!e.relativePath)return{ok:!1,error:`project root and path are required`};let t=await go({projectRoot:e.projectRoot,relativePath:e.relativePath});return t.ok?{ok:!0,build:t.build}:{ok:!1,error:t.error}},updatePointer:async(e,t)=>{let n=await _o({sessionId:e,activeBuildId:t});return n.ok?{ok:!0}:{ok:!1,error:n.error}},loadBuild:async e=>{let t=await ho(e);return t.ok?{ok:!0,build:t.build}:{ok:!1,error:t.error}}});Et.current===n&&G.current===t&&(kt(i.selection),l(e=>J$(r,{sessionId:t,buildId:i.selection.buildId},e)),h(null))},[kt]),qt=(0,J.useCallback)(async e=>{if(!i)return;let t=await bo({sessionId:i,draft:yt.current,mutationId:e});if(t.ok){K(t.draft),l(t=>{let n=new Map(t),r=n.get(e);return r&&n.set(e,{...r,status:`accepted`}),n});return}t.draft&&K(t.draft),l(n=>{let r=new Map(n),i=r.get(e);return i&&r.set(e,{...i,status:`conflict`,notice:t.notice??t.error}),r})},[K,i]);mt.current=qt;let Jt=(0,J.useCallback)(async e=>{if(!i)return;let t=await yo({sessionId:i,draft:yt.current,mutationId:e});if(t.ok){K(t.draft),l(t=>{let n=new Map(t),r=n.get(e);return r&&n.set(e,{...r,status:`rejected`}),n});return}t.draft&&K(t.draft),l(n=>{let r=new Map(n),i=r.get(e);return i&&r.set(e,{...i,status:`conflict`,notice:t.notice??t.error}),r})},[K,i]),Yt=(0,J.useMemo)(()=>({getCard:e=>c.get(e),accept:qt,reject:Jt}),[qt,c,Jt]),Xt=(0,J.useMemo)(()=>N4(o,c),[o,c]),Zt=(0,J.useMemo)(()=>Xt.length?P4(Xt):C4,[Xt]),Qt=(0,J.useMemo)(()=>iS(Zt),[Zt]),$t=(0,J.useMemo)(()=>F4(Xt),[Xt]),en=(0,J.useMemo)(()=>I4(Xt),[Xt]),tn=Xt.find(e=>e.stageId===m)??null,nn=(0,J.useMemo)(()=>new Set(Xt.filter(e=>e.mutationStatus===`pending`).map(e=>e.stageId)),[Xt]),rn=!!m||nn.size>0,an=(0,J.useRef)(null),on=(0,J.useRef)(null),[sn,cn]=(0,J.useState)(0),[ln,un]=(0,J.useState)(_4),[dn,fn]=(0,J.useState)(!1);(0,J.useEffect)(()=>{let e=an.current;if(!e)return;let t=()=>cn(e.clientWidth);t();let n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[]);let pn=Math.max(v4,sn-y4),mn=sn>0&&sn<600?Math.max(160,Math.floor(sn/2)):v4,hn=(0,J.useCallback)(e=>{let t=sn>0?sn-y4:e;un(Math.max(mn,Math.min(e,Math.max(mn,t))))},[sn,mn]);(0,J.useEffect)(()=>{if(sn<=0)return;let e=sn-y4;un(t=>Math.max(mn,Math.min(t,Math.max(mn,e))))},[sn,mn]);let gn=(0,J.useCallback)(()=>h(null),[]),_n=(0,J.useCallback)(e=>{h(e),e&&he(`stage`)},[]),vn=h4(ve),yn=(0,J.useCallback)(async()=>{if(!I||!i)return;let e=u.filter(e=>e.role===`user`||e.role===`assistant`||e.role===`system`).map((e,t)=>{let n=typeof e.content==`string`?e.content:e.content.filter(e=>e.type===`text`).map(e=>e.text).join(`
254
- `),r=PN(MN({attachments:e.metadata?.custom?.attachments}));return{id:`m-${t}`,role:e.role,text:n,...r?{artifacts:r}:{}}}),t=await oo({version:1,key:vn,updatedAt:new Date().toISOString(),draft:yt.current,messages:e,autoApply:L,sessionModelOverride:M,destination:ge,savedPath:ve,savedTaskPath:be,diskFingerprints:ct.current,projectRoot:ft.current??null,...lN(ft.current,pt.current)});t.ok&&Le(t.autosave.updatedAt)},[L,vn,M,I,ge,ve,be,u,i]);(0,J.useEffect)(()=>{if(!I)return;let e=setTimeout(()=>{yn()},YM);return()=>clearTimeout(e)},[o,u,L,M,yn,I]),(0,J.useEffect)(()=>{if(!I)return;let e=!1;return ao({key:h4(t??null),...iN(r)}).then(t=>{e||!t.ok||!t.autosave||(se(t.autosave),le(!0))}),()=>{e=!0}},[t,r,I]);let bn=(0,J.useCallback)(async()=>{H(!0),te(null);try{let e=await $a(yt.current,fN(Oe));B(e),W(Date.now())}catch(e){te(e instanceof Error?e.message:String(e))}finally{H(!1)}},[Oe]);(0,J.useEffect)(()=>{if(!I||!ve)return;let e=!1;return co({pipelinePath:ve,draft:yt.current,baseline:ct.current,...iN(fN(Oe))}).then(t=>{e||!t.ok||(ct.current=t.fingerprints,t.changed&&(de(t.changedPaths),pe(!0)))}),()=>{e=!0}},[o,Oe,I,ve]);let xn=(0,J.useCallback)(e=>{B({scope:`full`,ok:!1,summary:{errors:e.filter(e=>e.severity===`error`).length,warnings:e.filter(e=>e.severity===`warning`).length},findings:e}),W(Date.now())},[]),Sn=(0,J.useCallback)(async(e,t)=>{let n=++_t.current;tt(!0);let r=await no(EN({destination:{folder:e.folder,pipelineId:e.pipelineId},draft:yt.current,mode:t,projectRoot:e.catalogRoot||ft.current||pt.current,defaultWriteWireId:pt.current,filename:ge?.pipelineFilename}));if(_t.current===n){if(tt(!1),!r.ok){$e(null),rt(r.error);return}$e({pipelinePath:r.pipelinePath,directory:r.directory,files:r.files,pipelineIdTaken:r.pipelineIdTaken})}},[ge?.pipelineFilename]),Cn=(0,J.useCallback)(()=>{let e=Ae??Me,t=Ne.find(t=>t.project_root===e)?.kind;return{catalogRoot:e,folder:ge?.directory??uN(t,yt.current.pipeline.id),pipelineId:yt.current.pipeline.id}},[Ne,Me,ge?.directory,Ae]),wn=(0,J.useCallback)((e,t)=>{Ye(e.mode),Ze(e.allowInvalidInitial),rt(t??null),$e(null),re(!0),Sn(Cn(),e.mode)},[Cn,Sn]),Tn=(0,J.useCallback)(async(e,t,n)=>{ae(!0),rt(null);let r=yt.current.pipeline.id,i=e.pipelineId.trim()||r,a=yt.current,o=await kN({draft:a,buildId:St.current,loadBuild:ho,resolveActiveBuildId:G.current?async()=>{let e=await vo(G.current);return e.ok?e.session.activeBuildId??null:null}:void 0});a=o.draft,(o.mergedTaskFromServer||o.adoptedBuildId)&&K(a),o.adoptedBuildId&&kt(K$(Tt.current,{buildId:o.adoptedBuildId,draft:a})),i!==r&&(a=TM(a,i),K(a));let s=wN(i,{id:r,filename:ge?.pipelineFilename}),c=e.catalogRoot||ft.current||pt.current,l=Oe?.readOnly?`create`:n,u={directory:e.folder,pipelineFilename:s,draft:TN(a),allowInvalid:t,...lN(c,pt.current)},d=l===`overwrite`?await to(u):await eo(u);if(ae(!1),!d.ok){d.findings&&xn(d.findings),rt(d.error),vt.current||(Ye(n),Ze(t),re(!0));return}ye(d.pipelinePath),_e({directory:e.folder,pipelineFilename:s}),Ce(uA(a)),d.taskPath&&xe(d.taskPath),re(!1);let f=aN(d)??(d.project_root?{project_root:d.project_root,kind:d.root_kind??`workspace`,readOnly:d.read_only===!0}:oN());ke(f),je(void 0),await so({key:h4(d.pipelinePath),...lN(d.project_root,pt.current)}),le(!1);let p=d.project_root??f.project_root;at({pipelineId:d.pipeline.id,fileCount:DN(d),canRun:!!a.task,pipelinePath:d.pipelinePath,...d.taskPath?{taskPath:d.taskPath}:{},...p?{projectRoot:p}:{},...!d.taskPath&&!a.task?{taskMissingWarning:`Pipeline saved without a task file — create a task in chat or the drawer, then save again.`}:{}});let m=St.current??o.adoptedBuildId??null,h=d.catalog_root_path?.trim();m&&h&&mo(m,{draft:a,projectRoot:h,relativePath:d.pipelinePath}),bn()},[K,xn,kt,Oe?.readOnly,bn,ge?.pipelineFilename]),En=z?.summary.errors??0,Dn=!!ve,On=(0,J.useCallback)(()=>{if(nN({stageCount:yt.current.pipeline.stages.length,saving:ie,hasDestination:Dn,saveState:tN(ve,eN(yt.current,Se))}))return;let e=gN({hasDestination:Dn,errorCount:En,originReadOnly:Oe?.readOnly});if(e.kind===`overwrite-direct`){let e=Ae??Me,t=Ne.find(t=>t.project_root===e)?.kind;Tn({catalogRoot:e,folder:ge?.directory??uN(t,yt.current.pipeline.id),pipelineId:yt.current.pipeline.id},!1,`overwrite`);return}wn(e)},[Se,Tn,En,Dn,wn,Ne,Me,Oe?.readOnly,ve,ge?.directory,Ae,ie]),kn=(0,J.useCallback)(()=>{let e=vN();e.kind===`dialog`&&wn(e)},[wn]),An=(0,J.useCallback)(()=>{let e=_N({hasDestination:Dn,errorCount:En,invalid:!0});e.kind===`dialog`&&wn(e)},[En,Dn,wn]),jn=(0,J.useCallback)(()=>{let e=kA(yt.current);K(e.draft),h(e.stageId),he(`stage`)},[K]),Mn=(0,J.useCallback)(e=>{K(jA(yt.current,e)),h(t=>t===e?null:t)},[K]),Nn=(0,J.useCallback)((e,t)=>{K(PA(yt.current,e,t)),h(n=>n===e?t:n)},[K]),Pn=(0,J.useCallback)(e=>{K(TM(yt.current,e))},[K]),Fn=(0,J.useCallback)(e=>{let t=qM(e,yt.current);if(t){h(t.stageId),he(`stage`),gt.current+=1,Ue({stageId:t.stageId,field:t.field,nonce:gt.current});return}(e.category===`pipeline`||e.category===`catalog`)&&he(`pipeline`)},[]),In=(0,J.useCallback)(e=>{ht.current?.send(FN(p1(e),e.message))},[]),Ln=(0,J.useCallback)(async e=>{let t=await io({task:e.path,...iN(fN(Oe))});if(!t.ok){j(t.error);return}j(null),K({...yt.current,task:t.task}),xe(t.taskPath)},[K,Oe]),Rn=(0,J.useCallback)(()=>{let e=uA(yt.current);delete e.task,K(e),xe(null)},[K]),zn=(0,J.useCallback)(()=>{ht.current?.prefill(XM),ht.current?.focus()},[]),Bn=(0,J.useCallback)(e=>{e===`describe`&&ht.current?.focus(),e===`task`&&(ze(`task`),Ve(!1))},[]),Vn=(0,J.useCallback)(()=>{ze(`problems`),Ve(!1),bn()},[bn]),Hn=(0,J.useCallback)(async e=>{if(!G.current)return;let t=Et.current;if(await Kt(e),!e.relativePath||!e.projectRoot||Et.current!==t||Tt.current.error)return;let n=wN(yt.current.pipeline.id,{id:yt.current.pipeline.id,filename:e.relativePath.split(`/`).pop()??`${yt.current.pipeline.id}.pipeline.yaml`}),r=e.relativePath.split(`/`).slice(0,-1).join(`/`)||`.`;ye(e.relativePath),_e({directory:r,pipelineFilename:n}),Ce(uA(yt.current)),Te([]),e.projectRoot&&ke({project_root:e.projectRoot,kind:`registered`,readOnly:!1})},[Kt]),Un=(0,J.useCallback)(()=>{if(fe){pe(!1);return}le(!1)},[fe]);(0,J.useEffect)(()=>{if(!I)return;let e=!1;return qe(!0),ki().then(t=>{e||Ge(t.tasks.map(e=>({id:e.id,path:e.path})))}).catch(()=>{e||Ge([])}).finally(()=>{e||qe(!1)}),()=>{e=!0}},[I]),(0,J.useEffect)(()=>{if(!I)return;let e=!1;return wo().then(t=>{e||(Pe(t.roots),U(sN(t.roots)))}).catch(()=>{e||Pe([])}),()=>{e=!0}},[I]);let Wn=Ae??Me,Gn=Ne.find(e=>e.project_root===Wn)?.kind,Kn=(0,J.useMemo)(()=>cN(Ne),[Ne]),qn=(0,J.useMemo)(()=>dN(Gn,o.pipeline.id,ge?.directory),[o.pipeline.id,ge?.directory,Gn]),Jn=eN(o,Se),Yn=tN(ve,Jn),Xn=z?.findings??[],Zn=z?z.findings:null,Qn=w.find(e=>e.id===i)?.title??null,$n=(0,J.useMemo)(()=>{let e=new Map;for(let[t,n]of c)e.set(t,{proposal:n.proposal,status:n.status,...n.notice?{notice:n.notice}:{},autoApplied:n.auto});return e},[c]),er=fe||ce;return Yc(I?[{key:`v`,scope:`workshop`,when:()=>!ne,handler:e=>{e.preventDefault(),Vn()}},{key:`a`,scope:`workshop`,when:()=>!ne,handler:e=>{e.preventDefault(),jn()}},{key:`mod+s`,scope:`workshop`,when:()=>!ne&&!nN({stageCount:o.pipeline.stages.length,saving:ie,hasDestination:Dn,saveState:Yn}),handler:e=>{e.preventDefault(),On()}},{key:`enter`,scope:`workshop`,when:()=>!ne,handler:e=>{let t=jN(c);t&&(e.preventDefault(),qt(t))}},{key:`escape`,scope:`workshop`,handler:e=>{let t=LN({bannerVisible:er,selectedStageId:m});t!==`none`&&(e.preventDefault(),t===`dismiss-banner`?Un():h(null))}}]:[],`workshop`),I?(0,Y.jsx)(p4,{chatWidth:ot,onChatWidthChange:e=>st($M(e)),seedMessages:u,adapter:Vt,toolActivity:Mt,onStop:()=>xt.current?.(),threadKey:g4(f),ready:!0,bootError:g,sessionTitle:Qn,chatCards:$n,onAccept:qt,onReject:Jt,sessions:w,activeSessionId:i,historyLoading:b,historyError:S,onHistoryOpen:()=>void Wt(),onOpenSession:e=>void Gt(e),onNewSession:()=>void zt(),pickerRows:E,selectedBuildId:O,onPickRow:e=>void Hn(e),model:M,defaultModel:P,onModelChange:N,hasTask:!!o.task,attachments:we,onAttachmentsChange:Te,docsContext:Ee,onDocsContextChange:De,composerHandle:ht,onStarter:Bn,toolbar:{title:o.pipeline.id,untitled:NM(o.pipeline.id),saveState:Yn,changeCount:Jn,autosavedAt:Ie,autoApply:L,onAutoApplyChange:R,onRename:Pn,stageCount:o.pipeline.stages.length,errorCount:En,validateBusy:V,onValidate:Vn,hasDestination:Dn,saving:ie,onSave:On,onSaveAs:kn,onSaveInvalid:An,onErrorsClick:()=>{ze(`problems`),Ve(!1)}},resumeBanner:ce&&oe&&!fe?{updatedAt:oe.updatedAt,pipelineId:oe.draft.pipeline.id,onResume:()=>{(async()=>{K(oe.draft),R(oe.autoApply),oe.sessionModelOverride&&N(oe.sessionModelOverride),d(a1(NN(oe.messages))),p(e=>e+1),ye(oe.savedPath??null),xe(oe.savedTaskPath??null),_e(oe.destination??null),ct.current=oe.diskFingerprints??{};let e=oe.projectRoot?.trim();if(e&&Ne.some(t=>t.project_root===e&&!t.read_only&&t.available!==!1)?je(e):je(void 0),oe.savedPath){let t=e||fN(Oe)||void 0,n=await ro(pN({path:oe.savedPath,task:oe.savedTaskPath??void 0,projectRoot:t}));if(n.ok){Ce(uA(n.draft));let e=aN(n);e?ke(e):t||ke(oN()),oe.destination||_e(n.destination),!oe.savedTaskPath&&n.taskPath&&xe(n.taskPath)}else Ce(null),j(n.error)}else Ce(null);le(!1)})()},onDiscard:()=>{window.confirm(`Discard the autosaved draft? This cannot be undone.`)&&(so({key:oe.key||vn,...lN(ft.current,pt.current)}),le(!1))},onDismiss:()=>le(!1)}:null,diskBanner:fe?{changedPaths:ue,onReload:()=>{if(pe(!1),!ve)return;let e=E.find(e=>e.relativePath===ve);if(!e){j(`Could not reload pipeline: ${ve}`);return}Hn(e)},onKeep:()=>pe(!1),onDismiss:Un}:null,studioError:A,draft:o,baseline:Se,selectedStageId:m,graphFindings:Xn,onSelectStage:_n,onAddStage:jn,drawer:{tab:Re,onTabChange:ze,collapsed:Be,onCollapsedChange:Ve,task:o.task?{filename:o.task.filename,body:o.task.body,path:be}:null,tasks:We,tasksLoading:Ke,onAttachTask:e=>void Ln(e),onCreateTask:zn,onDetachTask:Rn,findings:Zn,validatedAt:Fe,validateBusy:V,validateError:ee,onAskFix:In,onGoToField:Fn,mutationCards:c,onAccept:e=>void qt(e),onReject:e=>void Jt(e)},inspector:{tab:me,onTabChange:he,onDraftChange:K,onDeleteStage:Mn,onRenameStage:Nn,focusField:He,pipelinePath:ve},saveDialog:{open:ne,draft:o,catalogRoots:Kn,initialCatalogRoot:Wn,folderOptions:qn,initialFolder:Cn().folder,initialPipelineId:o.pipeline.id,mode:Je,plan:Qe,planLoading:et,validation:z,allowInvalidInitial:Xe,saving:ie,error:nt,onChangeDestination:e=>{je(e.catalogRoot===Me?void 0:e.catalogRoot),Sn(e,Je)},onSave:(e,t)=>{Tn(t,e,Je)},onSaveAs:e=>{Ye(`create`),Tn(e,!1,`create`)},onCancel:()=>{re(!1),rt(null)},onFixInWorkshop:e=>{re(!1),Fn(e)}},toast:it?{pipelineId:it.pipelineId,fileCount:it.fileCount,canRun:it.canRun,onRun:()=>{Z(Ic({pipeline:it.pipelinePath,...it.taskPath?{task:it.taskPath}:{},...it.projectRoot?{project_root:it.projectRoot}:{}}))},onOpenCatalog:()=>{Z(yc(it.pipelineId,{project_root:it.projectRoot}))},onDismiss:()=>at(null),...it.taskMissingWarning?{taskMissingWarning:it.taskMissingWarning}:{}}:null}):(0,Y.jsxs)(`div`,{className:`pane workshop-lab${dn?` is-resizing-x`:``}`,children:[(0,Y.jsxs)(`div`,{className:`topbar`,children:[(0,Y.jsx)(`div`,{className:`topbar__title`,children:`Workshop`}),(0,Y.jsx)(`div`,{className:`topbar__sub`,children:`Live Author · draft mutates before Accept · Reject soft-undos`}),(0,Y.jsx)(`div`,{className:`topbar__spacer`})]}),(0,Y.jsxs)(`div`,{ref:an,className:`workshop-lab__body`,style:{"--chat-w":`${ln}px`},children:[(0,Y.jsxs)(`section`,{className:`workshop-lab__chat`,"aria-label":`Workshop chat`,children:[(0,Y.jsx)(W4,{historyOpen:v,onHistory:()=>{v?y(!1):Wt()},onNew:()=>void zt()}),g?(0,Y.jsx)(`p`,{className:`workshop-lab__boot-error muted`,children:g}):null,v?(0,Y.jsx)(G4,{sessions:w,pickerRows:E,activeSessionId:i,loading:b,error:S,onClose:()=>y(!1),onSelect:e=>void Gt(e)}):null,(0,Y.jsx)(`div`,{className:`workshop-lab__chat-body`,children:(0,Y.jsx)(w4.Provider,{value:Yt,children:(0,Y.jsx)(I$,{seedMessages:u,adapter:Vt,greeting:S4,toolActivity:Mt,MutationCard:V4,onStop:()=>xt.current?.(),composerActions:(0,Y.jsx)(cF,{variant:`chip`,placement:`up`,ariaLabel:`Workshop chat model`,value:M,defaultModel:P,onChange:e=>e&&N(e)})},g4(f))})})]}),(0,Y.jsx)(`div`,{className:`workshop-lab__split${dn?` is-dragging`:``}`,role:`separator`,"aria-orientation":`vertical`,"aria-label":`Resize chat and run map`,"aria-valuemin":Math.round(mn),"aria-valuemax":Math.round(pn),"aria-valuenow":Math.round(ln),tabIndex:0,onPointerDown:e=>{(e.button==null||e.button===0)&&(e.preventDefault(),e.currentTarget.setPointerCapture(e.pointerId),fn(!0),on.current={id:e.pointerId,x:e.clientX,w:ln})},onPointerMove:e=>{let t=on.current;!t||t.id!==e.pointerId||hn(t.w+(e.clientX-t.x))},onPointerUp:e=>{on.current?.id===e.pointerId&&(on.current=null,fn(!1))},onPointerCancel:e=>{on.current?.id===e.pointerId&&(on.current=null,fn(!1))},onKeyDown:e=>{e.key===`ArrowLeft`&&(e.preventDefault(),hn(ln-b4)),e.key===`ArrowRight`&&(e.preventDefault(),hn(ln+b4)),e.key===`Home`&&(e.preventDefault(),hn(mn)),e.key===`End`&&(e.preventDefault(),hn(pn))},children:(0,Y.jsx)(`span`,{className:`workshop-lab__split-grip`,"aria-hidden":`true`})}),(0,Y.jsxs)(`section`,{className:`workshop-lab__map`,"aria-label":`Workshop studio`,children:[(0,Y.jsxs)(`div`,{className:`workshop-lab__map-head`,children:[(0,Y.jsxs)(`div`,{className:`workshop-lab__map-switch`,children:[(0,Y.jsx)(`div`,{className:`eyebrow`,children:`Studio · draft`}),(0,Y.jsxs)(`select`,{className:`select workshop-lab__pipeline-select`,"aria-label":`Studio pipeline`,value:O?`build:${O}`:``,onChange:e=>{let t=e.target.value;if(!t)return;let n=E.find(e=>z$(e)===t);n&&Kt(n)},children:[(0,Y.jsx)(`option`,{value:``,children:`No pipeline`}),E.map(e=>(0,Y.jsx)(`option`,{value:z$(e),children:B$(e)},z$(e)))]})]}),A?(0,Y.jsx)(`p`,{className:`workshop-lab__boot-error muted`,children:A}):null,(0,Y.jsx)(`p`,{className:`workshop-lab__selection muted`,children:Xt.length===0?`Empty — stages appear when the Author mutates the draft`:tn?`Selected: ${tn.title}`:`Click a stage for details`})]}),(0,Y.jsx)(`div`,{className:`workspace workshop-lab__workspace${rn?` has-highlight`:``}`,children:Xt.length===0?(0,Y.jsx)(q4,{}):(0,Y.jsx)(CS,{layout:Qt,stages:$t,nodeChrome:en,selectedStageId:m,onSelectStage:_n,onDeselect:gn,runId:`workshop-lab-draft`,showHint:!1})})]})]}),tn?(0,Y.jsx)(K4,{stage:tn,onClose:gn}):null]})}function X4(){return{id:``,name:``,enabled:!1,instructions:``,project_context:!1,execution:`trusted-local`,model:{backend:`pi`,thinking:`medium`},tools:{builtin:[],builtin_tools:[],mcp:{},skills:[],browser:!1,stageflow:{groups:[],tools:[]}},approvals:{ask_first:[],approvers:{operators:!0,channel_ids:[]},timeout_minutes:30,on_timeout:`skip`},sub_agents:[],sub_agent_depth:1,guardrails:{block_patterns:[]},evals:{groundedness:!1},observability:{capture:`metadata`,otlp:!1},web_chat:{...Z4},limits:{session_minutes:10,max_turns:40,cost_usd:null,long_context:`summarize`,always_on:!1}}}var Z4={enabled:!1,rate_limit_per_minute:10,max_message_chars:4e3};function Q4(){return{...X4(),web_chat:{...Z4,enabled:!0}}}function $4(e){let t=Q4(),n={...t};for(let[r,i]of Object.entries(e)){let e=t[r];n[r]=typeof i==`object`&&i&&!Array.isArray(i)&&e&&typeof e==`object`?{...e,...i}:i}return n}var e3=[{id:`read`,title:`Read project files`,tools:[`read`,`grep`,`find`,`ls`],effect:`Reads project files`},{id:`write`,title:`Write and edit files`,tools:[`write`,`edit`],effect:`Changes project files`},{id:`shell`,title:`Run shell commands`,tools:[`bash`],effect:`Runs commands on this machine`}],t3=null;function n3(e){t3=e}var r3={read:`Reads Stageflow state`,write:`Changes Stageflow state`,destructive:`Deletes or cancels things`,external:`Reaches outside Stageflow`};function i3(e,t,n){return(e.groups.find(e=>e.id===t)?.tools??[]).filter(e=>!e.operatorOnly&&e.risk!==`read`&&(n===void 0||e.name===n)).map(e=>e.grantId)}function a3(e){let t=[],n=e.tools.builtin_tools??[];for(let r of e3){if(e.tools.builtin.includes(r.id)){t.push({tool:r.tools[0],label:r.tools.join(` · `),effect:r.effect,kind:`builtin`,tools:r.tools});continue}for(let e of r.tools.filter(e=>n.includes(e)))t.push({tool:e,label:e,effect:r.effect,kind:`builtin`,tools:[e]})}for(let[n,r]of Object.entries(e.tools.mcp)){let i=r.includes(`*`)?e.approvals.ask_first.filter(e=>e.startsWith(`${n}.`)).map(e=>e.slice(n.length+1)):r;for(let e of i)t.push({tool:`${n}.${e}`,label:`${n}.${e}`,effect:`${n} MCP tool`,kind:`mcp`,tools:[`${n}.${e}`]})}let r=t3,i=e.tools.stageflow??{groups:[],tools:[]};if(r){let e=new Set;for(let n of r.groups){let r=n.tools.filter(e=>!e.operatorOnly);!i.groups.includes(n.id)||r.length===0||(r.forEach(t=>e.add(t.name)),t.push({tool:r[0].grantId,label:`${n.title} · Stageflow`,effect:`${r.length} tools: ${n.summary}`,kind:`stageflow`,tools:r.map(e=>e.grantId)}))}for(let n of r.groups)for(let r of n.tools)e.has(r.name)||!i.tools.includes(r.name)||t.push({tool:r.grantId,label:r.name,effect:r3[r.risk],kind:`stageflow`,tools:[r.grantId]})}for(let n of e.sub_agents)t.push({tool:`agent:${n}`,label:`${n} · agent`,effect:`Runs another agent with its own rules`,kind:`agent`,tools:[`agent:${n}`]});return t}function o3(e,t){return t.tools.some(t=>e.approvals.ask_first.includes(t))}function s3(e,t,n){let r=e.approvals.ask_first.filter(e=>!t.tools.includes(e));return{...e,approvals:{...e.approvals,ask_first:n?[...r,...t.tools]:r}}}function c3(e){let t=new Set(a3(e).flatMap(e=>e.tools)),n=Object.entries(e.tools.mcp).filter(([,e])=>e.includes(`*`)).map(([e])=>`${e}.`),r=t3!==null,i=e.approvals.ask_first.filter(e=>t.has(e)||n.some(t=>e.startsWith(t))||!r&&e.startsWith(`stageflow.`));return i.length===e.approvals.ask_first.length?e:{...e,approvals:{...e.approvals,ask_first:i}}}var l3={identity:[`name`,`description`,`greeting`],instructions:[`instructions`,`project_context`],model:[`model`,`execution`],tools:[`tools`],subagents:[`sub_agents`,`sub_agent_depth`],approvals:[`approvals`],evals:[`guardrails`,`evals`],observability:[`observability`],webchat:[`web_chat`],channels:[`channel`,`schedule`],limits:[`limits`]},u3={name:`name`,description:`description`,greeting:`greeting`,instructions:`instructions`,project_context:`project context`,model:`model`,execution:`execution`,tools:`tools`,sub_agents:`sub-agents`,sub_agent_depth:`sub-agent depth`,approvals:`approvals`,guardrails:`guardrails`,evals:`evals`,observability:`capture`,web_chat:`web chat`,channel:`channel`,schedule:`schedule`,limits:`limits`};function d3(e,t){return JSON.stringify(e??null)===JSON.stringify(t??null)}function f3(e,t){return Object.keys(u3).filter(n=>!d3(e[n],t[n])).map(e=>u3[e])}function p3(e,t){let n=new Set;for(let[r,i]of Object.entries(l3))i.some(n=>!d3(e[n],t[n]))&&n.add(r);return n}function m3(e,t){return e.filter(e=>e.path===t||e.path.startsWith(`${t}.`))}function h3(e,t){let n=new Set(t.split(`
255
- `));return e.split(`
256
- `).filter(e=>e.trim()!==``&&!n.has(e)).length}function g3(e){return e?.id??`project default`}function _3(e,t=typeof window>`u`?``:window.location.origin){let n=e?.webChatUrl;return n?/^https?:\/\//.test(n)?n:`${t.replace(/\/+$/,``)}${n.startsWith(`/`)?n:`/${n}`}`:null}function v3(e,t){return t?.web_chat.enabled?e?`live`:`waiting`:`off`}function y3(e,t=Date.now()){if(!e)return`—`;let n=Math.round((t-Date.parse(e))/1e3);if(n<45)return`Just now`;let r=Math.round(n/60);if(r<60)return`${r} min ago`;let i=Math.round(r/60);if(i<24)return`${i} hour${i===1?``:`s`} ago`;let a=Math.round(i/24);return a===1?`Yesterday`:a<7?`${a} days ago`:new Date(e).toLocaleDateString(void 0,{month:`short`,day:`numeric`})}function b3(e){return new Date(e).toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hour12:!1})}function x3(e){return e===0?`—`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}function S3(e){return e==null?`—`:e<=0?`$0.00`:e>=.01?`$${e.toFixed(2)}`:e>=.001?`$${e.toFixed(3)}`:`$${e.toFixed(Math.min(8,1+Math.ceil(-Math.log10(e))))}`}function C3(e){if(e==null)return`—`;if(e<1e3)return`${e} ms`;let t=e/1e3;return t<60?`${t.toFixed(1)} s`:`${Math.floor(t/60)} m ${Math.round(t%60)} s`}var w3={console:`Console`,cli:`CLI`,mcp:`MCP`,web:`Web chat`,schedule:`Schedule`,email:`Email`,slack:`Slack`,telegram:`Telegram`,photon:`iMessage`,agentmail:`AgentMail`};function T3(e){return w3[e]??e}function E3(e){return[e.source===`web`&&e.sourceRef?`Visitor ${e.sourceRef.slice(0,8)}`:e.sourceRef,D3(e.id)].filter(Boolean).join(` · `)}function D3(e){return e.startsWith(`ses_`)&&e.length>8?e.slice(0,8):e}var O3=2,k3=e=>e.issues.length>0;function A3(e){let t=[],n=[...e.tools.builtin,...e.tools.builtinTools];return n.length>0&&t.push(n.slice(0,3).join(` · `)+(n.length>3?` +${n.length-3}`:``)),e.tools.mcpServers.length>0&&t.push(`${e.tools.mcpServers.length} MCP`),e.tools.skills.length>0&&t.push(`${e.tools.skills.length} skill${e.tools.skills.length===1?``:`s`}`),e.tools.browser&&t.push(`browser`),t.length>0?t.join(` · `):`No tools`}function j3(e,t){let n=!e.enabled,r=[],i=_3(e);return i&&r.push({kind:`web`,label:`Web chat`,detail:e.webChatUrl??void 0,href:i,idle:n}),e.channelConnection&&r.push({kind:`channel`,label:t(e.channelConnection)??`Channel`,detail:e.channelConnection,idle:n}),e.scheduleCron&&r.push({kind:`schedule`,label:`Schedule`,detail:e.scheduleCron,idle:n}),r.length===0&&r.push({kind:`console`,label:`Console only`,idle:n}),r}function M3(e,t=Date.now(),n=()=>void 0){let r=k3(e),{stats:i}=e,a=i.last7Days===0?`No sessions`:`${i.last7Days} session${i.last7Days===1?``:`s`}`,o=r?`Fix config to enable`:i.waiting>0?`${i.waiting} waiting`:i.lastActivityAt?y3(i.lastActivityAt,t):e.enabled?`Idle`:`Never run`;return{reach:j3(e,n),id:e.id,name:e.name,description:e.description??``,model:e.model?.id??`project default`,modelIsDefault:!e.model?.id,backend:`v${e.revision}`,toolsLine:A3(e),approvalsLine:r?e.issues[0]?.message??`Invalid definition`:e.askFirst.length>0?`Asks first: ${e.askFirst.slice(0,O3).join(`, `)}`:`No approvals required`,approvalsMore:r?0:Math.max(0,e.askFirst.length-O3),access:{builtin:[...e.tools.builtin,...e.tools.builtinTools],mcpServers:e.tools.mcpServers,skills:e.tools.skills,browser:e.tools.browser,askFirst:e.askFirst},approvalsTone:r?`needs`:`muted`,statusLabel:r?`Needs setup`:e.enabled?`Enabled`:`Disabled`,statusNote:r?`Not running`:e.enabled?`Accepting work`:`Paused`,statusTone:r?`needs`:e.enabled?`ok`:`muted`,last7Days:a,costLabel:S3(i.costTotal),activityLabel:o,needsSetup:r,enabled:e.enabled,pendingApprovals:e.pendingApprovals}}function N3(e,t){switch(t){case`enabled`:return e.filter(e=>e.enabled&&!k3(e));case`disabled`:return e.filter(e=>!e.enabled&&!k3(e));case`needs_setup`:return e.filter(k3);default:return[...e]}}function P3(e,t,n){let r=t.trim().toLowerCase();return r?e.filter(e=>{let t=M3(e,Date.now(),n);return[e.name,e.id,t.description,t.model,t.backend,t.toolsLine,t.approvalsLine,...t.reach.map(e=>`${e.label} ${e.detail??``}`)].join(` `).toLowerCase().includes(r)}):[...e]}function F3(e){return{all:e.length,enabled:N3(e,`enabled`).length,disabled:N3(e,`disabled`).length,needs_setup:N3(e,`needs_setup`).length}}function I3(e){let t=[];for(let n of e.filter(e=>e.issues.length>0))t.push(`${n.name} can't be enabled until ${n.issues[0].message}.`);return e.some(e=>!e.enabled)&&t.push(`Disabled agents keep their history but can't start sessions.`),t.length>0?t.join(` `):null}function L3(e){if(e.length===0)return`No agents yet`;let t=F3(e),n=[`${e.length} agent${e.length===1?``:`s`} in agents/`,`${t.enabled} enabled`];return t.needs_setup>0&&n.push(`${t.needs_setup} needs setup`),n.join(` · `)}function R3(e){let t=null,n=0;for(let r of e)n+=r.stats.total,r.stats.costTotal!==null&&(t=(t??0)+r.stats.costTotal);return{sessions:n,cost:S3(t)}}var $=`[font-family:var(--sf-font-mono)]`,z3=`[white-space-collapse:collapse] [text-wrap-mode:nowrap]`,B3=`text-[#8b8f98] font-sans text-[11px] font-medium leading-normal tracking-[0.88px] uppercase ${z3}`,V3=`flex h-full min-h-0 min-w-0 flex-1 flex-col bg-[var(--sf-ground)]`,H3=`a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])`;function U3({title:e,onClose:t,children:n,footer:r,narrow:i}){let a=(0,J.useRef)(null),o=(0,J.useRef)(t);return o.current=t,(0,J.useEffect)(()=>{let e=e=>{e.key===`Escape`&&o.current()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[]),(0,J.useEffect)(()=>{let e=document.activeElement instanceof HTMLElement?document.activeElement:null;return(a.current?.querySelector(H3)??a.current)?.focus(),()=>{e?.isConnected&&e.focus()}},[]),(0,Y.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-[#000000aa] p-6`,role:`dialog`,"aria-modal":`true`,"aria-label":e,onClick:t,children:(0,Y.jsxs)(`div`,{ref:a,tabIndex:-1,onKeyDown:e=>{if(e.key!==`Tab`||!a.current)return;let t=[...a.current.querySelectorAll(H3)];if(t.length===0){e.preventDefault();return}let n=t[0],r=t[t.length-1],i=document.activeElement;e.shiftKey&&(i===n||!a.current.contains(i))?(e.preventDefault(),r.focus()):!e.shiftKey&&(i===r||!a.current.contains(i))&&(e.preventDefault(),n.focus())},className:`flex max-h-[min(80vh,720px)] w-full ${i?`max-w-md`:`max-w-3xl`} flex-col overflow-hidden rounded-xl outline-none border border-[var(--sf-hairline-strong)] bg-[var(--sf-panel)]`,onClick:e=>e.stopPropagation(),children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between border-b border-b-[var(--sf-hairline)] px-4 py-3`,children:[(0,Y.jsx)(`h2`,{className:`text-[15px] font-semibold text-[var(--sf-text-1)]`,children:e}),(0,Y.jsx)(`button`,{type:`button`,onClick:t,className:`rounded-md border border-[var(--sf-hairline-strong)] px-2.5 py-1 text-[13px] text-[var(--sf-text-2)]`,children:`Close`})]}),(0,Y.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto`,children:n}),r?(0,Y.jsx)(`div`,{className:`flex justify-end gap-2 border-t border-t-[var(--sf-hairline)] px-4 py-3`,children:r}):null]})})}function W3({title:e,yaml:t,onClose:n}){return(0,Y.jsx)(U3,{title:e,onClose:n,children:(0,Y.jsx)(`pre`,{className:`${$} p-4 text-xs leading-[1.6] text-[var(--sf-text-2)]`,children:t??`The draft has errors. Fix them to see the YAML it will save.`})})}function G3({title:e,lines:t,onClose:n,footer:r}){return(0,Y.jsx)(U3,{title:e,onClose:n,footer:r,children:t===null?(0,Y.jsx)(`p`,{className:`p-4 text-[13px] text-[var(--sf-text-3)]`,children:`Loading…`}):t.every(e=>e.kind===`same`)?(0,Y.jsx)(`p`,{className:`p-4 text-[13px] text-[var(--sf-text-3)]`,children:`No differences.`}):(0,Y.jsx)(`div`,{className:`${$} py-2 text-xs leading-[1.7]`,children:t.map((e,t)=>(0,Y.jsxs)(`div`,{className:`flex gap-3 px-4 ${e.kind===`added`?`bg-[#4cc38a14] text-[var(--sf-text-1)]`:e.kind===`removed`?`bg-[#f2645a14] text-[var(--sf-text-2)] line-through decoration-[#f2645a80]`:`text-[var(--sf-text-3)]`}`,children:[(0,Y.jsx)(`span`,{className:`w-3 shrink-0 select-none`,children:e.kind===`added`?`+`:e.kind===`removed`?`−`:` `}),(0,Y.jsx)(`span`,{className:`whitespace-pre-wrap break-all`,children:e.text||` `})]},t))})})}function K3(e,t){let n=e=>{let t=e.split(`
257
- `);return t.at(-1)===``&&t.pop(),t},r=n(e),i=n(t),a=Array.from({length:r.length+1},()=>Array(i.length+1).fill(0));for(let e=r.length-1;e>=0;--e)for(let t=i.length-1;t>=0;--t)a[e][t]=r[e]===i[t]?a[e+1][t+1]+1:Math.max(a[e+1][t],a[e][t+1]);let o=[],s=0,c=0;for(;s<r.length&&c<i.length;)r[s]===i[c]?o.push({kind:`same`,text:r[s++],before:s,after:++c}):a[s+1][c]>=a[s][c+1]?o.push({kind:`removed`,text:r[s++],before:s}):o.push({kind:`added`,text:i[c++],after:c});for(;s<r.length;)o.push({kind:`removed`,text:r[s++],before:s});for(;c<i.length;)o.push({kind:`added`,text:i[c++],after:c});return o}function q3({title:e,confirmLabel:t,busy:n,onConfirm:r,onClose:i,children:a}){return(0,Y.jsx)(U3,{title:e,onClose:i,narrow:!0,footer:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`button`,{type:`button`,onClick:i,className:`rounded-md border border-[var(--sf-hairline-strong)] px-3 py-1.5 text-[13px] text-[var(--sf-text-2)]`,children:`Cancel`}),(0,Y.jsx)(`button`,{type:`button`,disabled:n,onClick:r,className:`rounded-md bg-[var(--sf-text-1)] px-3 py-1.5 text-[13px] font-medium text-[var(--sf-bg,#0b0b0c)] disabled:opacity-50`,children:t})]}),children:(0,Y.jsx)(`div`,{className:`flex flex-col gap-2 px-4 py-4 text-[13px] leading-[1.5] text-[var(--sf-text-2)]`,children:a})})}function J3(e){return e===`ArrowDown`||e===`ArrowUp`}function Y3(e,t,n){return n<=0?-1:t===`ArrowDown`?Math.min(n-1,e+1):Math.max(0,e-1)}function X3(e,t){return t<=0?-1:Math.min(e,t-1)}function Z3(e){if(e.isContentEditable)return!1;let t=e.tagName.toUpperCase();return t===`INPUT`||t===`TEXTAREA`||t===`SELECT`||t===`BUTTON`?!1:t!==`A`||e.dataset?.listRow!==void 0}function Q3({left:e,right:t}){return(0,Y.jsxs)(`footer`,{className:`flex h-11 shrink-0 items-center justify-between gap-4 border-t border-t-[var(--sf-hairline)] px-7`,children:[(0,Y.jsx)(`span`,{className:`truncate text-xs leading-[1.33333] text-[var(--sf-text-3)]`,children:e}),t?(0,Y.jsx)(`span`,{className:`shrink-0 text-xs leading-[1.33333] text-[var(--sf-text-3)]`,children:t}):null]})}var $3={primary:`bg-[var(--sf-text-1)] text-[var(--sf-ground)]`,secondary:`border border-[var(--sf-hairline-strong)] bg-[var(--sf-raised)] text-[var(--sf-text-1)] hover:bg-[#20232a]`,ghost:`font-normal text-[var(--sf-text-2)] hover:text-[var(--sf-text-1)]`};function e6({variant:e=`secondary`,icon:t,children:n,onClick:r,disabled:i,type:a=`button`,title:o,size:s=`md`}){return(0,Y.jsxs)(`button`,{type:a,onClick:r,disabled:i,title:o,className:`flex shrink-0 items-center justify-center font-medium leading-normal disabled:cursor-not-allowed disabled:opacity-50 ${z3} ${s===`sm`?`h-7 gap-1.5 rounded-md px-2.5 text-xs`:`h-8 gap-1.5 rounded-lg px-3 text-[13px]`} ${$3[e]}`,children:[t?(0,Y.jsx)(`span`,{className:`flex shrink-0 ${s===`sm`?`[&>svg]:size-3`:`[&>svg]:size-3.5`}`,children:t}):null,n]})}function t6({on:e,onChange:t,label:n}){return(0,Y.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":e,"aria-label":n,onClick:t?()=>t(!e):void 0,className:`flex h-[18px] w-8 shrink-0 items-center rounded-full px-0.5 ${e?`justify-end bg-[var(--sf-running)]`:`justify-start border border-[var(--sf-hairline-strong)] bg-[var(--sf-raised)]`}`,children:(0,Y.jsx)(`span`,{className:`block size-3 rounded-full ${e?`bg-white`:`bg-[var(--sf-text-3)]`}`})})}function n6({options:e,value:t,onChange:n,changed:r=!1,className:i=``}){return(0,Y.jsx)(`div`,{role:`radiogroup`,className:`flex h-9 items-center rounded-lg border bg-[var(--sf-panel)] p-0.5 ${r?`border-[#6ca6ff66]`:`border-[var(--sf-hairline-strong)]`} ${i}`,children:e.map(e=>{let r=e===t;return(0,Y.jsx)(`button`,{type:`button`,role:`radio`,"aria-checked":r,onClick:n?()=>n(e):void 0,className:`flex h-full flex-1 items-center justify-center rounded-md text-[13px] leading-normal ${r?`bg-[var(--sf-raised)] font-medium text-[var(--sf-text-1)]`:`text-[var(--sf-text-2)]`}`,children:e},e)})})}function r6({children:e,note:t,aside:n}){return(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Y.jsx)(`h2`,{className:`text-base font-semibold leading-normal text-[var(--sf-text-1)]`,children:e}),t?(0,Y.jsx)(`p`,{className:`text-xs leading-[1.33333] text-[var(--sf-text-3)]`,children:t}):null]}),n]})}function i6({label:e,hint:t,hintTone:n=`muted`,changed:r=!1,children:i}){return(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1.5`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(`span`,{className:`text-[13px] font-medium leading-normal text-[var(--sf-text-1)]`,children:e}),r?(0,Y.jsx)(o6,{}):null]}),i,t?(0,Y.jsx)(`div`,{className:`text-xs leading-[1.33333] ${n===`ok`?`text-[var(--sf-ok)]`:n===`changed`?`text-[var(--sf-running)]`:`text-[var(--sf-text-3)]`}`,children:t}):null]})}function a6({value:e,onChange:t,placeholder:n,mono:r=!1,changed:i=!1,invalid:a=!1,readOnly:o=!1,trailing:s,ariaLabel:c}){return(0,Y.jsxs)(`label`,{className:`flex h-9 items-center justify-between gap-2 rounded-lg border px-3 ${d6({changed:i,invalid:a,readOnly:o})}`,children:[(0,Y.jsx)(`input`,{value:e,"aria-label":c,"aria-invalid":a||void 0,readOnly:o||!t,placeholder:n,onChange:t?e=>t(e.target.value):void 0,className:`min-w-0 flex-1 border-0 bg-transparent p-0 text-[13px] leading-normal outline-none placeholder:text-[var(--sf-text-3)] ${o?`text-[var(--sf-text-2)]`:`text-[var(--sf-text-1)]`} ${r?$:``}`}),s]})}function o6(){return(0,Y.jsx)(`span`,{className:`block size-1.5 shrink-0 rounded-full bg-[var(--sf-running)]`,"aria-label":`Changed`})}function s6({children:e}){return(0,Y.jsx)(`div`,{className:`flex flex-col rounded-lg border border-[var(--sf-hairline)] [&>*+*]:border-t [&>*+*]:border-t-[var(--sf-hairline)]`,children:e})}function c6({tabs:e,value:t,onChange:n,aside:r,height:i=`h-[46px]`}){return(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-4 border-b border-b-[var(--sf-hairline)] px-7`,children:[(0,Y.jsx)(`div`,{className:`flex items-center gap-6`,role:`tablist`,children:e.map(e=>{let r=e.id===t;return(0,Y.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":r,onClick:()=>n(e.id),className:`flex ${i} items-center text-[13px] leading-normal ${r?`border-b-2 border-b-[var(--sf-text-1)] font-medium text-[var(--sf-text-1)]`:`border-b-2 border-b-transparent text-[var(--sf-text-3)] hover:text-[var(--sf-text-2)]`}`,children:e.label},e.id)})}),r]})}function l6({label:e,value:t}){return(0,Y.jsxs)(`div`,{className:`flex justify-between gap-4 text-xs leading-normal`,children:[(0,Y.jsx)(`span`,{className:`text-[var(--sf-text-3)]`,children:e}),(0,Y.jsx)(`span`,{className:`text-right text-[var(--sf-text-1)]`,children:t})]})}var u6=`flex h-9 items-center rounded-lg border px-3`;function d6(e){return e.invalid?`border-[#f2645a80] bg-[var(--sf-panel)]`:e.changed?`border-[#6ca6ff66] bg-[var(--sf-panel)]`:e.readOnly?`border-[var(--sf-hairline)]`:`border-[var(--sf-hairline-strong)] bg-[var(--sf-panel)]`}function f6({value:e,options:t,onChange:n,disabled:r=!1,mono:i=!1,changed:a=!1,invalid:o=!1,ariaLabel:s}){return(0,Y.jsxs)(`label`,{className:`${u6} relative justify-between gap-2 ${d6({changed:a,invalid:o,readOnly:!n})}`,children:[(0,Y.jsx)(`select`,{value:e,"aria-label":s,disabled:r||!n,onChange:n?e=>n(e.target.value):void 0,className:`min-w-0 flex-1 appearance-none border-0 bg-transparent p-0 pr-5 text-[13px] leading-normal text-[var(--sf-text-1)] outline-none disabled:cursor-default ${i?$:``}`,children:t.map(e=>(0,Y.jsx)(`option`,{value:e.value,className:`bg-[var(--sf-panel)]`,children:e.label},e.value))}),(0,Y.jsx)(`svg`,{"aria-hidden":!0,viewBox:`0 0 24 24`,className:`pointer-events-none absolute right-3 size-3.5 stroke-[var(--sf-text-3)]`,fill:`none`,strokeWidth:`2`,children:(0,Y.jsx)(`polyline`,{points:`6 9 12 15 18 9`})})]})}function p6({value:e,onChange:t,min:n,max:r,step:i=1,suffix:a,placeholder:o,changed:s=!1,invalid:c=!1,ariaLabel:l}){let[u,d]=(0,J.useState)(e===null?``:String(e));return(0,J.useEffect)(()=>{d(t=>Number(t)===e&&t!==``?t:e===null?``:String(e))},[e]),(0,Y.jsxs)(`label`,{className:`${u6} gap-2 ${d6({changed:s,invalid:c,readOnly:!t})}`,children:[(0,Y.jsx)(`input`,{type:`number`,inputMode:`decimal`,value:u,min:n,max:r,step:i,placeholder:o,"aria-label":l,readOnly:!t,onChange:e=>{if(d(e.target.value),!t)return;let n=e.target.value.trim();t(n===``?null:Number(n))},className:`${$} min-w-0 flex-1 border-0 bg-transparent p-0 text-[13px] leading-normal text-[var(--sf-text-1)] outline-none placeholder:text-[var(--sf-text-3)] [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none`}),a?(0,Y.jsx)(`span`,{className:`shrink-0 text-xs text-[var(--sf-text-3)]`,children:a}):null]})}function m6({values:e,onChange:t,placeholder:n,suggestions:r=[],mono:i=!0,ariaLabel:a}){let[o,s]=(0,J.useState)(``),c=(0,J.useId)(),l=n=>{let r=n.trim();!r||!t||e.includes(r)||(t([...e,r]),s(``))};return(0,Y.jsxs)(`div`,{className:`flex min-h-9 flex-wrap items-center gap-1.5 rounded-lg border border-[var(--sf-hairline-strong)] bg-[var(--sf-panel)] px-2 py-1.5`,children:[e.map(n=>(0,Y.jsxs)(`span`,{className:`flex items-center gap-1 rounded-md bg-[var(--sf-raised)] px-1.5 py-0.5 text-xs leading-[1.33333] text-[var(--sf-text-1)] ${i?$:``}`,children:[n,t?(0,Y.jsx)(`button`,{type:`button`,"aria-label":`Remove ${n}`,onClick:()=>t(e.filter(e=>e!==n)),className:`text-[var(--sf-text-3)] hover:text-[var(--sf-text-1)]`,children:`×`}):null]},n)),t?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`input`,{value:o,list:r.length>0?c:void 0,"aria-label":a,placeholder:e.length===0?n:void 0,onChange:e=>s(e.target.value),onKeyDown:n=>{n.key===`Enter`||n.key===`,`?(n.preventDefault(),l(o)):n.key===`Backspace`&&o===``&&e.length>0&&t(e.slice(0,-1))},onBlur:()=>l(o),className:`min-w-[120px] flex-1 border-0 bg-transparent p-0 text-xs leading-[1.33333] text-[var(--sf-text-1)] outline-none placeholder:text-[var(--sf-text-3)] ${i?$:``}`}),r.length>0?(0,Y.jsx)(`datalist`,{id:c,children:r.filter(t=>!e.includes(t)).map(e=>(0,Y.jsx)(`option`,{value:e},e))}):null]}):e.length===0?(0,Y.jsx)(`span`,{className:`text-xs text-[var(--sf-text-3)]`,children:`None`}):null]})}function h6({issues:e=[],warnings:t=[]}){return e.length===0&&t.length===0?null:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[e.map((e,t)=>(0,Y.jsx)(`span`,{className:`text-xs leading-[1.33333] text-[var(--sf-fail)]`,children:e.message},`i${t}`)),t.map((e,t)=>(0,Y.jsx)(`span`,{className:`text-xs leading-[1.33333] text-[var(--sf-needs)]`,children:e.message},`w${t}`))]})}var g6=`grid grid-cols-[minmax(0,1fr)_170px_200px_210px_120px_130px_120px_14px] items-center gap-4 px-4 min-w-[1200px]`,_6=[{id:`all`,label:`All`},{id:`enabled`,label:`Enabled`},{id:`disabled`,label:`Disabled`},{id:`needs_setup`,label:`Needs setup`}];function v6({id:e,active:t,label:n,count:r,onClick:i}){return(0,Y.jsxs)(`button`,{type:`button`,onClick:i,"aria-pressed":t,className:`rounded-md border px-2 py-0.5 text-xs leading-[1.33333] ${z3} ${t?`border-[var(--sf-hairline-strong)] bg-[var(--sf-raised)] text-[var(--sf-text-1)]`:`border-transparent ${e===`needs_setup`&&r>0?`text-[var(--sf-needs)]`:`text-[var(--sf-text-2)]`} hover:text-[var(--sf-text-1)]`}`,children:[n,` `,r]})}function y6({row:e}){let t=e.statusTone===`ok`?`border-[var(--sf-ok)] bg-[#3fb9500f] text-[var(--sf-ok)]`:e.statusTone===`needs`?`border-[#f5b54459] bg-[#f5b5440a] text-[var(--sf-needs)]`:`border-[var(--sf-hairline-strong)] text-[var(--sf-text-3)]`;return(0,Y.jsxs)(`div`,{className:`flex flex-col items-start gap-0.5`,children:[(0,Y.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 rounded-full border px-2 py-0.5 text-xs leading-[1.33333] ${t}`,children:[e.statusTone===`ok`?(0,Y.jsx)(`span`,{"aria-hidden":!0,className:`size-1.5 rounded-full bg-[var(--sf-ok)]`}):e.statusTone===`needs`?(0,Y.jsx)(je,{"aria-hidden":!0,className:`size-3 shrink-0`}):(0,Y.jsx)(p,{"aria-hidden":!0,className:`size-3 shrink-0`}),e.statusLabel]}),(0,Y.jsx)(`span`,{className:`text-[11px] leading-normal text-[var(--sf-text-3)]`,children:e.statusNote})]})}function b6({row:e}){return(0,Y.jsx)(`div`,{className:`flex min-w-0 flex-col gap-1`,"data-testid":`agent-reach`,children:e.reach.map(e=>(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-col`,children:[(0,Y.jsxs)(`span`,{className:`flex min-w-0 items-center gap-1.5 text-xs leading-[1.33333] ${e.kind===`console`?`text-[var(--sf-text-3)]`:`text-[var(--sf-text-1)]`}`,children:[e.kind===`web`?(0,Y.jsx)(Re,{"aria-hidden":!0,className:`size-3 shrink-0 text-[var(--sf-text-3)]`}):null,e.kind===`channel`?(0,Y.jsx)(N,{"aria-hidden":!0,className:`size-3 shrink-0 text-[var(--sf-text-3)]`}):null,e.kind===`schedule`?(0,Y.jsx)(m,{"aria-hidden":!0,className:`size-3 shrink-0 text-[var(--sf-text-3)]`}):null,(0,Y.jsx)(`span`,{className:`truncate`,children:e.label}),e.idle&&e.kind!==`console`?(0,Y.jsx)(`span`,{className:`text-[11px] text-[var(--sf-text-3)]`,children:`· off`}):null]}),e.href?(0,Y.jsxs)(`span`,{className:`flex min-w-0 items-center gap-1.5`,children:[(0,Y.jsx)(`a`,{href:e.href,target:`_blank`,rel:`noreferrer`,className:`${$} relative z-10 min-w-0 truncate text-[11px] leading-normal text-[var(--sf-text-2)] underline decoration-[var(--sf-hairline-strong)] hover:text-[var(--sf-text-1)]`,title:e.href,children:e.detail}),(0,Y.jsx)(`button`,{type:`button`,"aria-label":`Copy chat link`,title:`Copy chat link`,className:`relative z-10 shrink-0 text-[var(--sf-text-3)] hover:text-[var(--sf-text-1)]`,onClick:()=>void navigator.clipboard?.writeText(e.href),children:(0,Y.jsx)(R,{"aria-hidden":!0,className:`size-3`})})]}):e.detail?(0,Y.jsx)(`span`,{className:`${$} truncate text-[11px] leading-normal text-[var(--sf-text-3)]`,children:e.detail}):null]},`${e.kind}-${e.detail??``}`))})}function x6(e){let{access:t}=e;return e.approvalsMore>0||t.builtin.length>3||t.mcpServers.length+t.skills.length>0}function S6({title:e,items:t}){return t.length===0?null:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Y.jsx)(`span`,{className:`text-[11px] uppercase tracking-wide text-[var(--sf-text-3)]`,children:e}),(0,Y.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:t.map(e=>(0,Y.jsx)(`span`,{className:`${$} rounded-md border border-[var(--sf-hairline-strong)] px-1.5 py-0.5 text-xs text-[var(--sf-text-1)]`,children:e},e))})]})}function C6({row:e,onClose:t}){let{access:n}=e;return(0,Y.jsx)(U3,{title:`${e.name}: tools and approvals`,onClose:t,narrow:!0,children:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-4 px-4 py-4`,children:[(0,Y.jsx)(S6,{title:`Built-in tools`,items:[...n.builtin,...n.browser?[`browser`]:[]]}),(0,Y.jsx)(S6,{title:`MCP servers`,items:n.mcpServers}),(0,Y.jsx)(S6,{title:`Skills`,items:n.skills}),(0,Y.jsx)(S6,{title:`Asks first`,items:n.askFirst}),n.builtin.length+n.mcpServers.length+n.skills.length===0&&!n.browser?(0,Y.jsx)(`p`,{className:`text-[13px] text-[var(--sf-text-2)]`,children:`This agent has no tools.`}):null,n.askFirst.length===0?(0,Y.jsx)(`p`,{className:`text-[13px] text-[var(--sf-text-2)]`,children:`No approvals required.`}):null]})})}function w6({row:e,highlighted:t,rowRef:n,onFocusRow:r,onShowAccess:i}){let a=!e.enabled&&!e.needsSetup;return(0,Y.jsxs)(`div`,{className:`${g6} relative py-3 ${a?`opacity-60`:``} hover:bg-[var(--sf-panel)] focus-within:bg-[var(--sf-panel)] ${t?`bg-[var(--sf-panel)]`:``}`,children:[(0,Y.jsx)(`a`,{ref:n,href:`#${Nc(e.id)}`,"data-list-row":``,"aria-label":`Open ${e.name}`,className:`absolute inset-0 outline-none focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-[var(--sf-hairline-strong)]`,onFocus:r,onKeyDown:e=>{e.key===` `&&(e.preventDefault(),e.currentTarget.click())}}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-0.5`,children:[(0,Y.jsx)(`span`,{className:`truncate text-[13px] font-medium leading-normal ${a?`text-[var(--sf-text-2)]`:`text-[var(--sf-text-1)]`}`,children:e.name}),e.description?(0,Y.jsx)(`span`,{className:`text-xs leading-[1.33333] text-[var(--sf-text-3)]`,children:e.description}):null]}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-0.5`,children:[(0,Y.jsx)(`span`,{className:`${$} break-words text-xs leading-[1.33333] ${e.modelIsDefault?`text-[var(--sf-text-2)]`:`text-[var(--sf-text-1)]`}`,children:e.model}),(0,Y.jsx)(`span`,{className:`text-[11px] leading-normal text-[var(--sf-text-3)]`,children:e.backend})]}),(0,Y.jsx)(b6,{row:e}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-0.5`,children:[(0,Y.jsx)(`span`,{className:`text-xs leading-[1.33333] text-[var(--sf-text-2)]`,children:e.toolsLine}),(0,Y.jsxs)(`span`,{className:`text-[11px] leading-normal ${e.approvalsTone===`needs`?`text-[var(--sf-needs)]`:`text-[var(--sf-text-3)]`}`,children:[e.approvalsLine,e.approvalsMore>0?` +${e.approvalsMore}`:``]}),x6(e)?(0,Y.jsx)(`button`,{type:`button`,className:`relative z-10 w-fit text-[11px] leading-normal text-[var(--sf-text-2)] underline decoration-[var(--sf-hairline-strong)] hover:text-[var(--sf-text-1)]`,onClick:i,children:`View all`}):null]}),(0,Y.jsx)(y6,{row:e}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,Y.jsx)(`span`,{className:`${$} text-[11px] leading-normal text-[var(--sf-text-3)]`,children:e.last7Days}),(0,Y.jsxs)(`span`,{className:`${$} text-[11px] leading-normal text-[var(--sf-text-3)]`,children:[e.costLabel,` all time`]})]}),(0,Y.jsx)(`span`,{className:`text-xs leading-[1.33333] text-[var(--sf-text-3)]`,children:e.activityLabel}),(0,Y.jsx)(l,{"aria-hidden":!0,className:`size-3.5 text-[var(--sf-text-3)]`})]})}function T6({onNewAgent:e}){let[t,n]=(0,J.useState)([]),[r,i]=(0,J.useState)(!0),[a,o]=(0,J.useState)(0),[s,c]=(0,J.useState)(null),[l,u]=(0,J.useState)(`all`),[d,f]=(0,J.useState)(``),[p,m]=(0,J.useState)(-1),[h,g]=(0,J.useState)(null),[_,v]=(0,J.useState)({}),y=(0,J.useRef)([]),b=(0,J.useCallback)(async()=>{i(!0);try{let[e,t]=await Promise.all([gD.list(),gD.pendingApprovals().catch(()=>[])]);n(e),o(t.length),c(null)}catch(e){c(e instanceof Error?e.message:String(e))}finally{i(!1)}},[]);(0,J.useEffect)(()=>{b()},[b]),(0,J.useEffect)(()=>{let e=!0;return Promise.all([zi(),wO()]).then(([t,n])=>{if(!e)return;let r={};for(let e of t.connections)r[e.id]=n.providers.find(t=>t.id===e.provider)?.label??e.provider;v(r)},()=>{}),()=>{e=!1}},[]);let x=(0,J.useMemo)(()=>F3(t),[t]),S=(0,J.useMemo)(()=>{let e=N3(t,l),n=e=>_[e];return P3(e,d,n).map(e=>M3(e,Date.now(),n))},[t,l,d,_]),C=!r&&!s&&x.all===0,w=I3(t),T=R3(t);(0,J.useEffect)(()=>{m(-1)},[l,d]),(0,J.useEffect)(()=>{m(e=>X3(e,S.length))},[S.length]);function E(e){if(!J3(e.key)||!Z3(e.target)||S.length===0)return;e.preventDefault();let t=Y3(p,e.key,S.length);m(t),y.current[t]?.focus()}return(0,Y.jsxs)(`div`,{className:V3,onKeyDown:E,children:[(0,Y.jsx)($c,{title:`Agents`,titleAddon:(0,Y.jsx)(`span`,{className:`${$} text-[13px] text-[var(--sf-text-2)]`,children:t.length}),actions:(0,Y.jsx)(e6,{variant:`primary`,icon:(0,Y.jsx)(se,{"aria-hidden":!0}),onClick:e,children:`New agent`})}),(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-4 overflow-y-auto px-5 py-5`,children:[(0,Y.jsx)(`p`,{className:`text-[13px] leading-normal text-[var(--sf-text-2)]`,children:`Agents defined in this project. Each one runs sealed, with only the tools and approvals you give it.`}),a>0?(0,Y.jsxs)(`div`,{className:`flex items-center gap-2.5 rounded-lg border border-[#f5b54459] bg-[#f5b5440a] px-4 py-3 text-[13px] leading-normal text-[var(--sf-text-1)]`,"data-testid":`agents-pending-approvals`,children:[(0,Y.jsx)(je,{"aria-hidden":!0,className:`size-4 shrink-0 text-[var(--sf-needs)]`}),a,` approval`,a===1?``:`s`,` waiting on you`,(0,Y.jsx)(`span`,{className:`text-[var(--sf-text-2)]`,children:`Open an agent with a waiting session to decide.`})]}):null,s?(0,Y.jsxs)(`div`,{className:`flex items-center gap-2.5 rounded-lg border border-[#f5b54459] bg-[#f5b5440a] px-4 py-3 text-[13px] leading-normal text-[var(--sf-text-1)]`,role:`alert`,children:[(0,Y.jsx)(je,{"aria-hidden":!0,className:`size-4 shrink-0 text-[var(--sf-needs)]`}),`Could not load agents`,(0,Y.jsx)(`span`,{className:`text-[var(--sf-text-2)]`,children:s})]}):null,r?(0,Y.jsx)(`p`,{className:`text-[13px] text-[var(--sf-text-3)]`,children:`Loading agents…`}):null,C?(0,Y.jsxs)(`div`,{className:`flex flex-col items-center gap-2 rounded-lg border border-[var(--sf-hairline)] px-6 py-10 text-center`,"data-testid":`agents-empty`,children:[(0,Y.jsx)(`h3`,{className:`text-[15px] font-semibold leading-normal text-[var(--sf-text-1)]`,children:`No agents yet`}),(0,Y.jsx)(`p`,{className:`max-w-[520px] text-[13px] leading-[1.5] text-[var(--sf-text-2)]`,children:`Create one to keep a revisioned instruction file in the project.`})]}):null,!r&&!s&&!C?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,Y.jsx)(`div`,{className:`flex items-center gap-1`,children:_6.map(e=>(0,Y.jsx)(v6,{id:e.id,active:l===e.id,label:e.label,count:x[e.id],onClick:()=>u(e.id)},e.id))}),(0,Y.jsxs)(`label`,{className:`flex h-8 w-[260px] items-center gap-2 rounded-lg border border-[var(--sf-hairline-strong)] bg-[var(--sf-panel)] px-3`,children:[(0,Y.jsx)(Oe,{"aria-hidden":!0,className:`size-3.5 shrink-0 text-[var(--sf-text-3)]`}),(0,Y.jsx)(`input`,{type:`search`,value:d,"aria-label":`Search agents`,onChange:e=>f(e.target.value),placeholder:`Search by name, tool or model`,className:`min-w-0 flex-1 border-0 bg-transparent p-0 text-[13px] leading-normal text-[var(--sf-text-1)] outline-none placeholder:text-[var(--sf-text-3)]`})]})]}),(0,Y.jsxs)(`div`,{className:`overflow-x-auto rounded-lg border border-[var(--sf-hairline)]`,"data-testid":`agents-directory-table`,children:[(0,Y.jsxs)(`div`,{className:`${g6} h-9 border-b border-b-[var(--sf-hairline)]`,children:[[`Agent`,`Model`,`Reach`,`Tools and approvals`,`Status`,`Last 7 days`,`Activity`].map(e=>(0,Y.jsx)(`span`,{className:`text-[11px] leading-normal text-[var(--sf-text-3)]`,children:e},e)),(0,Y.jsx)(`span`,{"aria-hidden":!0})]}),(0,Y.jsx)(`div`,{className:`[&>*+*]:border-t [&>*+*]:border-t-[var(--sf-hairline)]`,children:S.map((e,t)=>(0,Y.jsx)(w6,{row:e,highlighted:t===p,onFocusRow:()=>m(t),onShowAccess:()=>g(e.id),rowRef:e=>{y.current[t]=e}},e.id))}),S.length===0?(0,Y.jsx)(`p`,{className:`px-4 py-6 text-center text-xs text-[var(--sf-text-3)]`,children:`No agents match this filter.`}):null]}),(0,Y.jsxs)(`p`,{className:`text-xs leading-[1.33333] text-[var(--sf-text-2)]`,"data-testid":`agents-totals`,children:[T.sessions,` session`,T.sessions===1?``:`s`,` · `,T.cost,` total cost, all agents, all time`]}),w?(0,Y.jsx)(`p`,{className:`text-xs leading-[1.33333] text-[var(--sf-text-3)]`,children:w}):null]}):null]}),h&&S.find(e=>e.id===h)?(0,Y.jsx)(C6,{row:S.find(e=>e.id===h),onClose:()=>g(null)}):null,(0,Y.jsx)(Q3,{left:r?``:L3(t),right:`↑ ↓ to move · ↵ to open`})]})}var E6=e=>e.replace(/[^\d+]/g,``);function D6(e,t){if(!e.ok)return[{tone:`muted`,text:`Could not look up the number: ${e.error}`}];if(e.kind===`dedicated`)return e.numbers.length===0?[{tone:`muted`,text:`This Photon project has no line yet.`}]:[{tone:`ok`,text:e.numbers.length===1?`Text ${e.numbers[0]} to reach this agent.`:`Text any of ${e.numbers.join(`, `)} to reach this agent.`}];let n=[],r=t.filter(e=>/^\+\d/.test(e)),i=new Map(e.users.map(e=>[E6(e.phone),e]));for(let e of r){let t=i.get(E6(e));t?t.assignedNumber?n.push({tone:`ok`,text:`${t.name?`${t.name} (${e})`:e} texts ${t.assignedNumber}.`}):n.push({tone:`warn`,text:`${t.name??e} is registered but has no number assigned yet.`}):n.push({tone:`warn`,text:`${e} is not registered in your Photon project, so it cannot text this agent. Add it as a user in the Photon dashboard.`})}if(r.length===0){let t=e.users.filter(e=>e.assignedNumber).slice(0,5);for(let e of t)n.push({tone:`ok`,text:`${e.name?`${e.name} (${e.phone})`:e.phone} texts ${e.assignedNumber}.`});t.length===0&&n.push({tone:`warn`,text:`No one is registered in this Photon project yet. Add the people who should text the agent in the Photon dashboard.`})}return n.push({tone:`muted`,text:`On a shared line each person texts the number Photon assigned to them, and must text it once before the agent can answer.`}),n}var O6=`${$} text-xs leading-[24px] whitespace-pre-wrap break-words`;function k6({value:e,onChange:t,baseline:n,placeholder:r,minRows:i=7}){let a=e.split(`
258
- `),o=n===void 0?null:new Set(n.split(`
259
- `)),s=Math.max(i,a.length);return(0,Y.jsxs)(`div`,{className:`relative rounded-lg border border-[var(--sf-hairline-strong)] bg-[var(--sf-panel)] px-3.5 py-3`,children:[(0,Y.jsx)(`div`,{"aria-hidden":!0,className:`${O6} pointer-events-none absolute inset-x-3.5 top-3 text-transparent`,children:a.map((e,t)=>{let n=o!==null&&e.trim()!==``&&!o.has(e);return(0,Y.jsx)(`div`,{className:n?`-mx-3.5 bg-[#6ca6ff14] px-3.5 shadow-[inset_2px_0_0_var(--sf-running)]`:void 0,children:e||` `},t)})}),(0,Y.jsx)(`textarea`,{value:e,rows:s,readOnly:!t,placeholder:r,"aria-label":`Instructions`,onChange:t?e=>t(e.target.value):void 0,className:`${O6} relative block w-full resize-none border-0 bg-transparent p-0 text-[var(--sf-text-1)] outline-none placeholder:text-[var(--sf-text-3)]`})]})}function A6(e,t){let n=new Set(e.map(e=>e.name)),r=t.filter(e=>e!==`*`&&!n.has(e));return[...e.map(e=>({...e,missing:!1})),...r.map(e=>({name:e,missing:!0}))]}function j6(e,t,n){let r=e.filter(e=>e!==t);return n?[...r,t]:r}function M6(e,t,n){let r=new Set(t),i=e.filter(e=>!r.has(e));return n?[...i,...t]:i}function N6(e,t){let n=t.trim().toLowerCase();return n?e.filter(e=>e.name.toLowerCase().includes(n)||(e.description??``).toLowerCase().includes(n)):[...e]}var P6=8;function F6({server:e,granted:t,onChange:n,api:r=NZ}){let[i,a]=(0,J.useState)({state:`loading`}),[o,s]=(0,J.useState)(!1),[c,l]=(0,J.useState)(``),u=(0,J.useRef)(!0),d=(0,J.useRef)(null),f=async()=>{d.current?.abort();let t=new AbortController;d.current=t,s(!0);try{let n=await r.probe(e,{signal:t.signal});if(!u.current||t.signal.aborted)return;n.status===`connected`&&n.tools?a({state:`ready`,tools:n.tools}):a({state:`failed`,message:n.status===`needs_auth`?`This server needs sign-in. Sign in from Settings → Project MCP, then refresh.`:n.error??`Could not connect (${n.status.replace(/_/g,` `)}).`})}catch(e){u.current&&!t.signal.aborted&&a({state:`failed`,message:e instanceof Error?e.message:String(e)})}finally{u.current&&d.current===t&&s(!1)}};if((0,J.useEffect)(()=>(u.current=!0,a({state:`loading`}),r.tools(e).then(e=>{u.current&&(e.tools?a({state:`ready`,tools:e.tools}):(a({state:`none`}),f()))},()=>u.current&&a({state:`none`})),()=>{u.current=!1,d.current?.abort()}),[e]),i.state===`loading`||o&&i.state===`none`)return(0,Y.jsx)(`span`,{className:`text-xs text-[var(--sf-text-3)]`,children:`Loading tools…`});let p=r=>(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[r?(0,Y.jsx)(`span`,{className:`text-xs text-[var(--sf-text-3)]`,children:r}):null,(0,Y.jsx)(m6,{values:t,onChange:n,placeholder:`Tool names this agent may call, e.g. search`,ariaLabel:`${e} tools`}),(0,Y.jsx)(`button`,{type:`button`,className:`w-fit text-xs text-[var(--sf-text-2)] underline`,disabled:o,onClick:()=>void f(),children:o?`Connecting…`:`Try to load the tool list`})]});if(i.state===`failed`)return p(i.message);if(i.state===`none`)return p(`No tool list yet.`);let m=A6(i.tools,t),h=N6(m,c),g=h.map(e=>e.name),_=g.length>0&&g.every(e=>t.includes(e));return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2`,role:`group`,"aria-label":`${e} tools`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[m.length>=P6?(0,Y.jsx)(`input`,{className:`h-7 min-w-0 flex-1 rounded-md border border-[var(--sf-hairline-strong)] bg-transparent px-2 text-xs text-[var(--sf-text-1)] outline-none`,placeholder:`Filter tools`,"aria-label":`Filter ${e} tools`,value:c,onChange:e=>l(e.target.value)}):(0,Y.jsxs)(`span`,{className:`flex-1 text-xs text-[var(--sf-text-3)]`,children:[i.tools.length,` tool`,i.tools.length===1?``:`s`,` on this server`]}),n?(0,Y.jsx)(`button`,{type:`button`,className:`text-xs text-[var(--sf-text-2)] underline disabled:opacity-50`,disabled:g.length===0,onClick:()=>n(M6(t,g,!_)),children:_?`Clear`:c?`Select shown`:`Select all`}):null,(0,Y.jsxs)(`button`,{type:`button`,className:`flex items-center gap-1 text-xs text-[var(--sf-text-2)] disabled:opacity-50`,disabled:o,"aria-label":`Refresh ${e} tools`,onClick:()=>void f(),children:[(0,Y.jsx)(nt,{"aria-hidden":!0,className:`size-3 ${o?`animate-spin`:``}`}),`Refresh`]})]}),(0,Y.jsx)(`div`,{className:`flex max-h-72 flex-col overflow-y-auto rounded-lg border border-[var(--sf-hairline-strong)]`,children:h.length===0?(0,Y.jsx)(`span`,{className:`px-3 py-2 text-xs text-[var(--sf-text-3)]`,children:m.length===0?`This server lists no tools.`:`No tools match.`}):h.map(e=>(0,Y.jsxs)(`label`,{className:`flex cursor-pointer items-start gap-2.5 border-b border-[var(--sf-hairline)] px-3 py-2 last:border-b-0`,children:[(0,Y.jsx)(`input`,{type:`checkbox`,className:`mt-0.5 size-4 shrink-0 accent-[var(--sf-text-1)]`,checked:t.includes(e.name),disabled:!n,onChange:r=>n?.(j6(t,e.name,r.target.checked))}),(0,Y.jsxs)(`span`,{className:`flex min-w-0 flex-col gap-0.5`,children:[(0,Y.jsxs)(`span`,{className:`${$} text-[13px] text-[var(--sf-text-1)]`,children:[e.name,e.missing?(0,Y.jsx)(`span`,{className:`ml-2 font-sans text-[11px] text-[var(--sf-needs)]`,children:`no longer on the server`}):null]}),e.description?(0,Y.jsx)(`span`,{className:`line-clamp-2 text-xs text-[var(--sf-text-3)]`,children:e.description}):null]})]},e.name))})]})}var I6=e=>[...new Set(e)];function L6(e,t,n){return e.groups.includes(t.id)||e.tools.includes(n)}function R6(e,t){if(e.groups.includes(t.id))return`all`;let n=t.tools.filter(t=>e.tools.includes(t.id)).length;return n===0?`none`:n===t.tools.length?`all`:`some`}function z6(e,t,n){let r=new Set(t.tools.map(e=>e.id)),i=e.tools.filter(e=>!r.has(e));return n?{groups:I6([...e.groups,t.id]),tools:i}:{groups:e.groups.filter(e=>e!==t.id),tools:i}}function B6(e,t,n,r){let i=t.tools.map(e=>e.id),a=new Set(i.filter(n=>L6(e,t,n)));r?a.add(n):a.delete(n);let o=e.tools.filter(e=>!i.includes(e)),s=e.groups.filter(e=>e!==t.id);return a.size===i.length?{groups:[...s,t.id],tools:o}:{groups:s,tools:[...o,...i.filter(e=>a.has(e))]}}function V6(e,t){return t.flatMap(t=>t.tools.filter(n=>L6(e,t,n.id)).map(e=>e.id))}var H6=[{id:`read`,title:`Read project files`,summary:`Look at files in the project. Cannot change anything.`,tools:[{id:`read`,label:`read`,description:`Read a file`,risk:`read`},{id:`grep`,label:`grep`,description:`Search file contents`,risk:`read`},{id:`find`,label:`find`,description:`Find files by name`,risk:`read`},{id:`ls`,label:`ls`,description:`List a directory`,risk:`read`}]},{id:`write`,title:`Write and edit files`,summary:`Change project files. Writes stay inside the project root; agent definitions and Stageflow state are never writable.`,tools:[{id:`write`,label:`write`,description:`Create or overwrite a file`,risk:`write`},{id:`edit`,label:`edit`,description:`Change part of a file`,risk:`write`}]},{id:`shell`,title:`Run shell commands`,summary:`Run commands on this machine.`,tools:[{id:`bash`,label:`bash`,description:`Run a shell command`,risk:`destructive`}]}];function U6(e){return e.groups.filter(e=>!e.operatorOnly).map(e=>({id:e.id,title:e.title,summary:e.summary,tools:e.tools.filter(e=>!e.operatorOnly).map(e=>({id:e.name,label:e.name,description:e.description,risk:e.risk}))})).filter(e=>e.tools.length>0)}function W6(e){return e.groups.flatMap(e=>e.tools.filter(e=>e.operatorOnly).map(e=>e.name))}function G6({state:e,onChange:t,label:n,disabled:r}){let i=(0,J.useRef)(null);return(0,J.useEffect)(()=>{i.current&&(i.current.indeterminate=e===`some`)},[e]),(0,Y.jsx)(`input`,{ref:i,type:`checkbox`,"aria-label":n,checked:e===`all`,disabled:r,onChange:e=>t(e.target.checked),className:`size-4 shrink-0 accent-[var(--sf-text-1)]`})}var K6={write:`bg-[#f5b5441f] text-[var(--sf-needs)]`,destructive:`bg-[var(--sf-fail-bg)] text-[var(--sf-fail)]`,external:`bg-[#f5b5441f] text-[var(--sf-needs)]`};function q6({groups:e,grants:t,onChange:n,openGroups:r,onToggleOpen:i,askFirst:a,askId:o=e=>e,testId:s}){return(0,Y.jsx)(s6,{children:(0,Y.jsx)(`div`,{"data-testid":s,className:`contents`,children:e.map(e=>{let s=R6(t,e),c=r.includes(e.id),l=e.tools.filter(n=>L6(t,e,n.id)).length;return(0,Y.jsxs)(`div`,{className:`flex flex-col`,children:[(0,Y.jsxs)(`div`,{className:`flex items-start gap-3 px-3.5 py-3`,children:[(0,Y.jsx)(`span`,{className:`mt-0.5`,children:(0,Y.jsx)(G6,{state:s,label:`${e.title} (all)`,disabled:!n,onChange:r=>n?.(z6(t,e,r),{groupId:e.id,toolIds:r?e.tools.map(e=>e.id):[]})})}),(0,Y.jsxs)(`button`,{type:`button`,"aria-expanded":c,onClick:()=>i(e.id),className:`flex min-w-0 flex-1 flex-col gap-0.5 text-left`,children:[(0,Y.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(`span`,{className:`text-[13px] leading-normal ${s===`none`?`text-[var(--sf-text-2)]`:`text-[var(--sf-text-1)]`}`,children:e.title}),(0,Y.jsx)(`span`,{className:`${$} text-[11px] text-[var(--sf-text-3)]`,children:s===`all`?`all ${e.tools.length}`:s===`some`?`${l} of ${e.tools.length}`:`${e.tools.length} tool${e.tools.length===1?``:`s`}`}),(0,Y.jsx)(B,{"aria-hidden":!0,className:`size-3 text-[var(--sf-text-3)] transition-transform ${c?`rotate-180`:``}`})]}),(0,Y.jsx)(`span`,{className:`text-xs leading-[1.33333] text-[var(--sf-text-3)]`,children:e.summary})]})]}),c?(0,Y.jsx)(`div`,{className:`flex flex-col gap-2 border-t border-t-[var(--sf-hairline)] bg-[var(--sf-panel)] py-2.5 pl-[42px] pr-3.5`,children:e.tools.map(r=>{let i=L6(t,e,r.id),s=a.includes(o(r.id));return(0,Y.jsxs)(`label`,{className:`flex items-start gap-2.5`,children:[(0,Y.jsx)(`span`,{className:`mt-0.5`,children:(0,Y.jsx)(G6,{state:i?`all`:`none`,label:`Allow ${r.label}`,disabled:!n,onChange:i=>n?.(B6(t,e,r.id,i),{groupId:e.id,toolIds:i?[r.id]:[]})})}),(0,Y.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,Y.jsxs)(`span`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Y.jsx)(`span`,{className:`${$} text-xs ${i?`text-[var(--sf-text-1)]`:`text-[var(--sf-text-2)]`}`,children:r.label}),r.risk===`read`?null:(0,Y.jsx)(`span`,{className:`rounded-md px-1 text-[10px] ${K6[r.risk]}`,children:r.risk}),i&&s?(0,Y.jsx)(`span`,{className:`rounded-md bg-[#f5b5441f] px-1 text-[10px] text-[var(--sf-needs)]`,children:`asks first`}):null]}),(0,Y.jsx)(`span`,{className:`line-clamp-2 text-[11px] leading-normal text-[var(--sf-text-3)]`,children:r.description})]})]},r.id)})}):null]},e.id)})})})}var J6=[`agentmail`,`imessage`];function Y6({agentId:e,provider:t,enabled:n}){let[r,i]=(0,J.useState)(),[a,o]=(0,J.useState)();if((0,J.useEffect)(()=>{if(!t||!J6.includes(t))return;let n=!0,r=()=>gD.channelStatus(e).then(e=>{n&&(i(e.listener),o(e.lastUndelivered?{message:e.lastUndelivered.message,code:e.lastUndelivered.code}:void 0))},()=>void 0);r();let a=window.setInterval(r,5e3);return()=>{n=!1,window.clearInterval(a)}},[e,t]),!t)return null;let{text:s,tone:c}=J6.includes(t)?n?r?r.status===`connected`?{text:`Listening · ${r.received} message${r.received===1?``:`s`} since it started`,tone:`ok`}:{text:`${r.status===`failed`?`Cannot connect`:`Reconnecting`}${r.error?`: ${r.error}`:``}`,tone:`bad`}:{text:`Starting…`,tone:`muted`}:{text:`Not listening. Enable the agent to start.`,tone:`muted`}:{text:`Receives messages by webhook`,tone:`muted`},l=a?(0,Y.jsxs)(`span`,{className:`text-xs leading-normal text-[var(--sf-fail)]`,"data-testid":`channel-undelivered`,children:[`The last reply that failed to send: `,a.message??a.code??`unknown reason`,` Open that run to resend it.`]}):null;return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[l,(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5 text-xs leading-normal ${c===`ok`?`text-[var(--sf-ok)]`:c===`bad`?`text-[var(--sf-fail)]`:`text-[var(--sf-text-3)]`}`,"data-testid":`channel-status`,children:[(0,Y.jsx)(`span`,{className:`block size-1.5 rounded-full ${c===`ok`?`bg-[var(--sf-ok)]`:c===`bad`?`bg-[var(--sf-fail)]`:`bg-[var(--sf-text-3)]`}`}),s]})]})}function X6({agentId:e,allowFrom:t}){let[n,r]=(0,J.useState)(void 0);return(0,J.useEffect)(()=>{let t=!0;return gD.channelContact(e).then(e=>t&&r(e.contact??null),()=>t&&r(null)),()=>{t=!1}},[e]),n===void 0?(0,Y.jsx)(`span`,{className:`text-xs text-[var(--sf-text-3)]`,children:`Looking up the number…`}):n===null?null:(0,Y.jsx)(`div`,{className:`flex flex-col gap-1`,"data-testid":`channel-contact`,children:D6(n,t).map((e,t)=>(0,Y.jsx)(`span`,{className:`text-xs leading-normal ${e.tone===`ok`?`text-[var(--sf-text-1)]`:e.tone===`warn`?`text-[var(--sf-needs)]`:`text-[var(--sf-text-3)]`}`,children:e.text},t))})}var Z6=[{id:`identity`,label:`Identity`},{id:`instructions`,label:`Instructions`},{id:`model`,label:`Model`},{id:`tools`,label:`Tools and access`},{id:`approvals`,label:`Approvals`},{id:`observability`,label:`Observability`},{id:`webchat`,label:`Web chat`}],Q6=[{id:`identity`,label:`Identity`},{id:`instructions`,label:`Instructions`},{id:`model`,label:`Model`},{id:`tools`,label:`Tools and access`},{id:`subagents`,label:`Sub-agents`},{id:`approvals`,label:`Approvals`},{id:`evals`,label:`Guardrails and evals`},{id:`observability`,label:`Observability`},{id:`webchat`,label:`Web chat`},{id:`channels`,label:`Channels and triggers`},{id:`limits`,label:`Limits`},{id:`versions`,label:`Version history`}];function $6(e){return`agent-config-${e}`}var e8=[5,15,30,60,240,1440];function t8({id:e,children:t}){return(0,Y.jsx)(`section`,{id:$6(e),className:`flex scroll-mt-4 flex-col gap-4`,children:t})}function n8({children:e,muted:t=!1}){return(0,Y.jsx)(`span`,{className:`flex shrink-0 [&>svg]:size-3.5 ${t?`text-[var(--sf-text-3)]`:`text-[var(--sf-text-2)]`}`,children:e})}function r8({children:e,onClick:t,tone:n=`text-2`}){return(0,Y.jsx)(`button`,{type:`button`,onClick:t,disabled:!t,className:`flex items-center gap-1 text-xs leading-[1.33333] ${n===`fail`?`text-[var(--sf-fail)]`:n===`text-3`?`text-[var(--sf-text-3)]`:`text-[var(--sf-text-2)]`} hover:text-[var(--sf-text-1)] disabled:pointer-events-none ${z3}`,children:e})}function i8({children:e}){return(0,Y.jsx)(`p`,{className:`text-xs leading-[1.33333] text-[var(--sf-text-3)]`,children:e})}function a8(e){return new Date(e).toLocaleDateString(void 0,{month:`short`,day:`numeric`})}var o8={console:`Console`,file:`File edit`,author:`Agent author`,restore:`Restore`,api:`API`};function s8({mode:e,definition:t,onChange:n,saved:r,issues:i,warnings:a,options:o,revision:l=0,versions:u,onOpenAgent:d,authorWroteInstructions:f=!1,webChatUrl:p=null}){let h=e!==`view`&&n!==void 0,g=e!==`create`,_=e===`edit`&&r!=null,v=h?e=>n(c3(e)):void 0,y=e=>({issues:m3(i,e),warnings:m3(a,e)}),b=(e,t)=>_&&JSON.stringify(e)!==JSON.stringify(t),x=e=>v?n=>v({...t,[e]:n}):void 0,S=e=>v?n=>v({...t,[e]:n||void 0}):void 0,C=Object.fromEntries((o.agents??[]).filter(e=>e.channelConnection&&e.id!==t.id).map(e=>[e.channelConnection,e.name])),w=o.mcpServers??[],T=[...new Set([...w.map(e=>e.name),...Object.keys(t.tools.mcp)])],E=a3(t),D=_?h3(t.instructions,r.instructions):0,O=t.approvals.approvers.operators?t.approvals.approvers.channel_ids.length>0?`both`:`operators`:`channels`,k=t.web_chat??Z4,A=r?.web_chat?.slug,j=e=>v?.({...t,web_chat:{...k,...e}}),M=!!A&&!k.slug,P=e=>v?.({...t,tools:e}),[F,I]=(0,J.useState)([]),L=t.tools.stageflow??{groups:[],tools:[]},z=o.stageflow,B=(e,n=[])=>{let r=[...new Set([...t.approvals.ask_first,...n])];v?.({...t,tools:{...t.tools,stageflow:e},approvals:{...t.approvals,ask_first:r}})},V=e=>I(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e]),ee=z?U6(z):[],te=V6({groups:t.tools.builtin,tools:t.tools.builtin_tools??[]},H6).some(e=>e===`write`||e===`edit`||e===`bash`),ne=(e,n)=>{let r={...t.tools.mcp};n===null?delete r[e]:r[e]=n,P({...t.tools,mcp:r})};return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-8 px-7 py-6`,children:[(0,Y.jsxs)(t8,{id:`identity`,children:[(0,Y.jsx)(r6,{children:`Identity`}),(0,Y.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 md:grid-cols-2`,children:[(0,Y.jsxs)(i6,{label:`Name`,changed:b(t.name,r?.name),children:[(0,Y.jsx)(a6,{value:t.name,onChange:S(`name`),placeholder:`Research assistant`,ariaLabel:`Name`,invalid:y(`name`).issues.length>0}),(0,Y.jsx)(h6,{...y(`name`)})]}),(0,Y.jsxs)(i6,{label:`Description`,changed:b(t.description,r?.description),children:[(0,Y.jsx)(a6,{value:t.description??``,onChange:S(`description`),placeholder:`What this agent is for`,ariaLabel:`Description`}),(0,Y.jsx)(h6,{...y(`description`)})]}),(0,Y.jsxs)(i6,{label:`Greeting`,changed:b(t.greeting,r?.greeting),children:[(0,Y.jsx)(a6,{value:t.greeting??``,onChange:S(`greeting`),placeholder:`What should I look into?`,ariaLabel:`Greeting`}),(0,Y.jsx)(h6,{...y(`greeting`)})]})]})]}),(0,Y.jsxs)(t8,{id:`instructions`,children:[(0,Y.jsx)(r6,{aside:D>0?(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5 text-[11px] leading-normal text-[var(--sf-running)]`,children:[(0,Y.jsx)(o6,{}),D,` line`,D===1?``:`s`,` added`]}):f?(0,Y.jsxs)(`span`,{className:`flex items-center gap-1 text-[11px] leading-normal text-[#a78bfa]`,children:[(0,Y.jsx)(c,{"aria-hidden":!0,className:`size-3`}),`Written by agent author`]}):null,children:`Instructions`}),(0,Y.jsx)(k6,{value:t.instructions,onChange:v?e=>v({...t,instructions:e}):void 0,baseline:_?r.instructions:void 0,placeholder:`You are the research assistant for #research. …`}),(0,Y.jsx)(h6,{...y(`instructions`)}),(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-4 rounded-lg border border-[var(--sf-hairline)] px-3.5 py-3`,children:[(0,Y.jsxs)(`div`,{className:`flex items-start gap-2.5`,children:[(0,Y.jsx)(H,{"aria-hidden":!0,className:`mt-0.5 size-3.5 shrink-0 text-[var(--sf-text-2)]`}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,Y.jsx)(`span`,{className:`text-[13px] font-medium leading-normal text-[var(--sf-text-1)]`,children:`Read project context`}),(0,Y.jsx)(`span`,{className:`text-xs leading-[1.33333] text-[var(--sf-text-3)]`,children:t.project_context?`On: the agent also reads AGENTS.md, project skills and extensions.`:`Off: the agent ignores AGENTS.md, project skills and extensions, and only sees these instructions.`})]})]}),(0,Y.jsx)(t6,{on:t.project_context,onChange:x(`project_context`),label:`Read project context`})]})]}),(0,Y.jsxs)(t8,{id:`model`,children:[(0,Y.jsx)(r6,{children:`Model`}),(0,Y.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 md:grid-cols-2`,children:[(0,Y.jsxs)(i6,{label:`Model`,changed:b(t.model.id,r?.model.id),children:[(0,Y.jsx)(cF,{ariaLabel:`Model`,value:t.model.id??null,inheritLabel:`Project default`,warnUnknown:!1,disabled:!v,error:y(`model.id`).issues.length>0,onChange:e=>{if(!v)return;let{id:n,...r}=t.model;v({...t,model:e?{...r,id:e}:r})}}),(0,Y.jsx)(h6,{...y(`model.id`)})]}),(0,Y.jsx)(i6,{label:`Thinking`,changed:b(t.model.thinking,r?.model.thinking),hint:_&&r&&t.model.thinking!==r.model.thinking?`Changed from ${r.model.thinking}.`:`Lower is faster: reasoning models can think for a minute or more before they answer.`,hintTone:_&&r&&t.model.thinking!==r.model.thinking?`changed`:void 0,children:(0,Y.jsx)(n6,{options:[`Off`,`Low`,`Medium`,`High`],value:t.model.thinking[0].toUpperCase()+t.model.thinking.slice(1),onChange:v?e=>v({...t,model:{...t.model,thinking:e.toLowerCase()}}):void 0,changed:b(t.model.thinking,r?.model.thinking)})})]}),(0,Y.jsx)(i8,{children:`Project default uses the model set in stageflow.yaml, else the first free model of a connected provider.`})]}),(0,Y.jsxs)(t8,{id:`tools`,children:[(0,Y.jsx)(r6,{aside:_&&b(t.tools,r?.tools)?(0,Y.jsx)(o6,{}):void 0,children:`Tools and access`}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2`,"data-testid":`builtin-tools`,children:[(0,Y.jsx)(`span`,{className:`text-xs font-medium leading-[1.33333] text-[var(--sf-text-2)]`,children:`Files and shell`}),(0,Y.jsx)(q6,{groups:H6,grants:{groups:t.tools.builtin,tools:t.tools.builtin_tools??[]},onChange:v?e=>P({...t.tools,builtin:e.groups,builtin_tools:e.tools}):void 0,openGroups:F,onToggleOpen:V,askFirst:t.approvals.ask_first}),(0,Y.jsxs)(`span`,{className:`flex items-start gap-2 text-xs leading-normal text-[var(--sf-text-3)]`,children:[(0,Y.jsx)(H,{"aria-hidden":!0,className:`mt-0.5 size-3.5 shrink-0`}),te?`Writes stay inside the project root. Agent definitions and Stageflow state are never writable.`:`Can't write anywhere. Tick a write tool to change files. Stageflow sets the project root; the agent can never choose a path.`]})]}),(0,Y.jsx)(c8,{definition:t,onChange:v}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Y.jsx)(`span`,{className:`text-xs font-medium leading-[1.33333] text-[var(--sf-text-2)]`,children:`MCP servers`}),T.length===0?(0,Y.jsx)(`div`,{className:`rounded-lg border border-dashed border-[var(--sf-hairline-strong)] px-3.5 py-3 text-xs text-[var(--sf-text-3)]`,children:o.mcpServers===void 0?`Loading servers…`:o.mcpStatus===`invalid_config`?`.mcp.json could not be read. Fix it to grant MCP tools.`:`No MCP servers yet. Add one in Settings → Project MCP to grant its tools.`}):(0,Y.jsx)(s6,{children:T.map(e=>{let n=t.tools.mcp[e],r=w.some(t=>t.name===e),i=n?.includes(`*`)??!1;return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2.5 px-3.5 py-3`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(`span`,{className:`${$} text-[13px] leading-normal ${n?`text-[var(--sf-text-1)]`:`text-[var(--sf-text-2)]`}`,children:e}),r?null:(0,Y.jsxs)(`span`,{className:`flex items-center gap-1 text-[11px] leading-normal text-[var(--sf-needs)]`,children:[(0,Y.jsx)(je,{"aria-hidden":!0,className:`size-3`}),`Not in .mcp.json`]})]}),(0,Y.jsx)(`span`,{className:`text-xs leading-[1.33333] text-[var(--sf-text-3)]`,children:n?i?`Every tool on this server is allowed`:`${n.length} tool${n.length===1?``:`s`} allowed`:`In the project, not given to this agent`})]}),n?(0,Y.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,Y.jsxs)(`label`,{className:`flex items-center gap-1.5 text-xs text-[var(--sf-text-2)]`,children:[(0,Y.jsx)(t6,{on:i,onChange:v?t=>ne(e,t?[`*`]:[]):void 0,label:`All ${e} tools`}),`All tools`]}),(0,Y.jsx)(r8,{tone:`text-3`,onClick:v?()=>ne(e,null):void 0,children:`Remove`})]}):(0,Y.jsxs)(r8,{onClick:v?()=>ne(e,[]):void 0,children:[(0,Y.jsx)(se,{"aria-hidden":!0,className:`size-3`}),`Allow`]})]}),n&&!i?(0,Y.jsx)(F6,{server:e,granted:n,onChange:v?t=>ne(e,t):void 0}):null,(0,Y.jsx)(h6,{...y(`tools.mcp.${e}`)})]},e)})})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2`,"data-testid":`stageflow-tools`,children:[(0,Y.jsx)(`span`,{className:`text-xs font-medium leading-[1.33333] text-[var(--sf-text-2)]`,children:`Stageflow tools`}),(0,Y.jsx)(`span`,{className:`text-xs leading-normal text-[var(--sf-text-3)]`,children:`Let this agent run Stageflow itself: watch and start runs, author pipelines, manage triggers and agents. It can never give another agent a tool it does not hold. Ticking a group sets everything that is not read-only to ask first.`}),z?(0,Y.jsx)(q6,{groups:ee,grants:L,onChange:v?(e,t)=>B(e,t.toolIds.flatMap(e=>i3(z,t.groupId,e))):void 0,openGroups:F,onToggleOpen:V,askFirst:t.approvals.ask_first,askId:e=>`stageflow.${e}`}):(0,Y.jsx)(`div`,{className:`rounded-lg border border-dashed border-[var(--sf-hairline-strong)] px-3.5 py-3 text-xs text-[var(--sf-text-3)]`,children:`Loading tools…`}),z&&W6(z).length>0?(0,Y.jsxs)(`span`,{className:`flex items-start gap-2 text-xs leading-normal text-[var(--sf-text-3)]`,children:[(0,Y.jsx)(H,{"aria-hidden":!0,className:`mt-0.5 size-3.5 shrink-0`}),`Not offered to agents, because only a person should do them: `,W6(z).join(`, `),`.`]}):null,(0,Y.jsx)(h6,{...y(`tools.stageflow`)})]}),(0,Y.jsxs)(`div`,{className:`grid grid-cols-1 gap-3 md:grid-cols-3`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1.5 rounded-lg border border-[var(--sf-hairline)] px-3.5 py-3`,children:[(0,Y.jsx)(`span`,{className:`text-xs font-medium leading-[1.33333] text-[var(--sf-text-2)]`,children:`Skills`}),(0,Y.jsx)(m6,{values:t.tools.skills,onChange:v?e=>P({...t.tools,skills:e}):void 0,suggestions:(o.skills??[]).map(e=>e.name),placeholder:`Add a skill`,ariaLabel:`Skills`}),(0,Y.jsx)(h6,{...y(`tools.skills`)})]}),(0,Y.jsxs)(`div`,{className:`flex items-start justify-between gap-2 rounded-lg border border-[var(--sf-hairline)] px-3.5 py-3`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Y.jsx)(`span`,{className:`text-xs font-medium leading-[1.33333] text-[var(--sf-text-2)]`,children:`Browser`}),(0,Y.jsx)(`span`,{className:`text-xs leading-[1.33333] text-[var(--sf-text-3)]`,children:t.tools.browser?`On`:`Off`})]}),(0,Y.jsx)(t6,{on:t.tools.browser,onChange:v?e=>P({...t.tools,browser:e}):void 0,label:`Browser`})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1.5 rounded-lg border border-[var(--sf-hairline)] px-3.5 py-3`,children:[(0,Y.jsx)(`span`,{className:`text-xs font-medium leading-[1.33333] text-[var(--sf-text-2)]`,children:`Secrets`}),(0,Y.jsx)(`span`,{className:`text-xs leading-[1.33333] text-[var(--sf-text-3)]`,children:`None. MCP servers bring their own.`})]})]})]}),g?(0,Y.jsxs)(t8,{id:`subagents`,children:[(0,Y.jsx)(r6,{note:`Agents this one can call. Each runs with its own model, tools and approvals, and shows up as a nested span.`,children:`Sub-agents`}),t.sub_agents.length>0?(0,Y.jsx)(s6,{children:t.sub_agents.map(e=>{let n=o.agents?.find(t=>t.id===e);return(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-3 px-3.5 py-3`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2.5`,children:[(0,Y.jsx)(`span`,{className:`flex size-7 items-center justify-center rounded-md bg-[#a78bfa1f]`,children:(0,Y.jsx)(s,{"aria-hidden":!0,className:`size-3.5 text-[#a78bfa]`})}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,Y.jsx)(`span`,{className:`text-[13px] font-medium leading-normal text-[var(--sf-text-1)]`,children:n?.name??e}),(0,Y.jsx)(`span`,{className:`text-xs leading-[1.33333] text-[var(--sf-text-3)]`,children:n?`${n.model} · ${n.enabled?`enabled`:`disabled`}`:`Agent not found`})]})]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-3`,children:[d&&n?(0,Y.jsx)(r8,{onClick:()=>d(e),children:`Open agent`}):null,(0,Y.jsx)(r8,{tone:`text-3`,onClick:v?()=>v({...t,sub_agents:t.sub_agents.filter(t=>t!==e)}):void 0,children:`Remove`})]})]},e)})}):(0,Y.jsx)(i8,{children:`No sub-agents. This agent can't call other agents.`}),h?(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-end gap-4`,children:[(0,Y.jsx)(`div`,{className:`w-64`,children:(0,Y.jsx)(f6,{value:``,ariaLabel:`Add sub-agent`,options:[{value:``,label:`Add sub-agent…`},...(o.agents??[]).filter(e=>e.id!==t.id&&!t.sub_agents.includes(e.id)).map(e=>({value:e.id,label:e.name}))],onChange:e=>e&&v({...t,sub_agents:[...t.sub_agents,e]})})}),t.sub_agents.length>0?(0,Y.jsx)(`div`,{className:`w-40`,children:(0,Y.jsx)(i6,{label:`Nesting depth`,children:(0,Y.jsx)(p6,{value:t.sub_agent_depth,min:1,max:5,onChange:e=>v({...t,sub_agent_depth:e??1}),ariaLabel:`Nesting depth`})})}):null]}):null,(0,Y.jsx)(h6,{...y(`sub_agents`)})]}):null,(0,Y.jsxs)(t8,{id:`approvals`,children:[(0,Y.jsx)(r6,{note:`Tools that send, write or delete should ask a person first. Reading tools can run on their own.`,children:`Approvals`}),E.length===0?(0,Y.jsx)(i8,{children:`Grant tools above to choose which ones ask first.`}):(0,Y.jsxs)(`div`,{className:`flex flex-col overflow-x-auto rounded-lg border border-[var(--sf-hairline)]`,children:[(0,Y.jsx)(`div`,{className:`grid min-w-[520px] grid-cols-[200px_1fr_160px] gap-3 border-b border-b-[var(--sf-hairline)] px-3.5 py-2`,children:[`Tool`,`What it does`,`Ask first`].map(e=>(0,Y.jsx)(`span`,{className:`text-[11px] leading-normal text-[var(--sf-text-3)]`,children:e},e))}),E.map((e,n)=>{let r=o3(t,e);return(0,Y.jsxs)(`div`,{className:`grid min-w-[520px] grid-cols-[200px_1fr_160px] items-center gap-3 px-3.5 py-2 ${n<E.length-1?`border-b border-b-[var(--sf-hairline)]`:``} ${r?`bg-[#f5b5440a]`:``}`,children:[(0,Y.jsx)(`span`,{className:`${$} text-xs leading-[1.33333] ${e.kind===`agent`?`text-[#a78bfa]`:`text-[var(--sf-text-1)]`}`,children:e.label}),(0,Y.jsx)(`span`,{className:`text-xs leading-[1.33333] text-[var(--sf-text-2)]`,children:e.effect}),h?(0,Y.jsx)(f6,{value:r?`always`:`never`,ariaLabel:`Ask first for ${e.label}`,options:[{value:`never`,label:`Never`},{value:`always`,label:`Every time`}],onChange:n=>v(s3(t,e,n===`always`))}):r?(0,Y.jsxs)(`span`,{className:`flex w-fit items-center gap-1 rounded-md bg-[#f5b5441f] px-1.5 py-0.5`,children:[(0,Y.jsx)(Ke,{"aria-hidden":!0,className:`size-3 text-[var(--sf-needs)]`}),(0,Y.jsx)(`span`,{className:`text-xs font-medium leading-[1.33333] text-[var(--sf-needs)]`,children:`Every time`})]}):(0,Y.jsx)(`span`,{className:`text-xs leading-[1.33333] text-[var(--sf-text-3)]`,children:`Never`})]},e.tool)})]}),Object.values(t.tools.mcp).some(e=>e.includes(`*`))?(0,Y.jsxs)(i8,{children:[`For servers with all tools allowed, add ask-first tools by name:`,` `]}):null,Object.entries(t.tools.mcp).filter(([,e])=>e.includes(`*`)).map(([e])=>(0,Y.jsx)(m6,{values:t.approvals.ask_first.filter(t=>t.startsWith(`${e}.`)).map(t=>t.slice(e.length+1)),onChange:v?n=>v({...t,approvals:{...t.approvals,ask_first:[...t.approvals.ask_first.filter(t=>!t.startsWith(`${e}.`)),...n.map(t=>`${e}.${t}`)]}}):void 0,placeholder:`${e} tools that ask first`,ariaLabel:`${e} ask-first tools`},e)),(0,Y.jsx)(h6,{...y(`approvals.ask_first`)}),(0,Y.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 md:grid-cols-2`,children:[(0,Y.jsxs)(i6,{label:`Who approves`,changed:b(t.approvals.approvers,r?.approvals.approvers),children:[(0,Y.jsx)(f6,{value:O,ariaLabel:`Who approves`,options:[{value:`operators`,label:`Any operator`},{value:`both`,label:`Operators and trusted channel people`},{value:`channels`,label:`Only trusted channel people`}],onChange:v?e=>v({...t,approvals:{...t.approvals,approvers:{...t.approvals.approvers,operators:e!==`channels`}}}):void 0}),O===`operators`?null:(0,Y.jsx)(m6,{values:t.approvals.approvers.channel_ids,onChange:v?e=>v({...t,approvals:{...t.approvals,approvers:{...t.approvals.approvers,channel_ids:e}}}):void 0,placeholder:`Channel identity, e.g. slack:U0123ABC`,ariaLabel:`Trusted channel identities`}),(0,Y.jsx)(h6,{...y(`approvals.approvers`)})]}),(0,Y.jsx)(i6,{label:`If nobody answers`,changed:b([t.approvals.timeout_minutes,t.approvals.on_timeout],[r?.approvals.timeout_minutes,r?.approvals.on_timeout]),children:(0,Y.jsxs)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,Y.jsx)(f6,{value:String(t.approvals.timeout_minutes),ariaLabel:`Approval timeout`,options:[...new Set([...e8,t.approvals.timeout_minutes])].sort((e,t)=>e-t).map(e=>({value:String(e),label:e<60?`Wait ${e} min`:`Wait ${e/60} h`})),onChange:v?e=>v({...t,approvals:{...t.approvals,timeout_minutes:Number(e)}}):void 0}),(0,Y.jsx)(f6,{value:t.approvals.on_timeout,ariaLabel:`When the wait ends`,options:[{value:`skip`,label:`then skip the step`},{value:`deny`,label:`then refuse it`}],onChange:v?e=>v({...t,approvals:{...t.approvals,on_timeout:e}}):void 0})]})})]})]}),g?(0,Y.jsxs)(t8,{id:`evals`,children:[(0,Y.jsx)(r6,{children:`Guardrails and evals`}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2 rounded-lg border border-[var(--sf-hairline)] px-3.5 py-3`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2.5`,children:[(0,Y.jsx)(Le,{"aria-hidden":!0,className:`size-3.5 shrink-0 text-[#f472b6]`}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,Y.jsx)(`span`,{className:`text-[13px] leading-normal text-[var(--sf-text-1)]`,children:`Block replies that match`}),(0,Y.jsx)(`span`,{className:`text-xs leading-[1.33333] text-[var(--sf-text-3)]`,children:`JavaScript regular expressions checked against every reply. A match fails the turn.`})]})]}),(0,Y.jsx)(m6,{values:t.guardrails.block_patterns,onChange:v?e=>v({...t,guardrails:{block_patterns:e}}):void 0,placeholder:`e.g. internal-only|confidential`,ariaLabel:`Block patterns`}),(0,Y.jsx)(h6,{...y(`guardrails`)})]}),(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-4 rounded-lg border border-[var(--sf-hairline)] px-3.5 py-3`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2.5`,children:[(0,Y.jsx)(Le,{"aria-hidden":!0,className:`size-3.5 shrink-0 text-[#f472b6]`}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,Y.jsx)(`span`,{className:`text-[13px] leading-normal text-[var(--sf-text-1)]`,children:`Groundedness eval`}),(0,Y.jsx)(`span`,{className:`text-xs leading-[1.33333] text-[var(--sf-text-3)]`,children:`After a reply that used tools, a judge scores how well the tool results support it (0–1).`})]})]}),(0,Y.jsx)(t6,{on:t.evals.groundedness,label:`Groundedness eval`,onChange:v?e=>v({...t,evals:{...t.evals,groundedness:e}}):void 0})]})]}):null,(0,Y.jsxs)(t8,{id:`observability`,children:[(0,Y.jsx)(r6,{children:`Observability`}),(0,Y.jsx)(i6,{label:`Content capture`,changed:b(t.observability.capture,r?.observability.capture),hint:t.observability.capture===`full`?`Prompts, tool arguments and results are saved on each span. Secrets, emails and tokens are masked before saving.`:t.observability.capture===`metadata`?`Spans keep timing, status and token counts. No prompt or tool content is saved.`:`No spans are recorded. The conversation transcript is still kept.`,children:(0,Y.jsx)(n6,{options:[`Off`,`Timing only`,`Full content`],value:{off:`Off`,metadata:`Timing only`,full:`Full content`}[t.observability.capture],onChange:v?e=>v({...t,observability:{...t.observability,capture:e===`Off`?`off`:e===`Full content`?`full`:`metadata`}}):void 0,changed:b(t.observability.capture,r?.observability.capture),className:`w-full max-w-[420px]`})}),(0,Y.jsxs)(s6,{children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between px-3.5 py-3`,children:[(0,Y.jsx)(`span`,{className:`text-[13px] leading-normal text-[var(--sf-text-1)]`,children:`Stageflow console`}),(0,Y.jsx)(`span`,{className:`text-xs leading-[1.33333] text-[var(--sf-text-3)]`,children:`Always on`})]}),(0,Y.jsxs)(`div`,{className:`flex items-center justify-between px-3.5 py-3`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,Y.jsx)(`span`,{className:`text-[13px] leading-normal text-[var(--sf-text-1)]`,children:`Also send to an OTLP collector`}),(0,Y.jsx)(`span`,{className:`text-xs leading-[1.33333] text-[var(--sf-text-3)]`,children:`Sends each finished turn to the collector set by OTEL_EXPORTER_OTLP_ENDPOINT on the Host.`})]}),(0,Y.jsx)(t6,{on:t.observability.otlp,label:`Send to OTLP collector`,onChange:v?e=>v({...t,observability:{...t.observability,otlp:e}}):void 0})]})]}),(0,Y.jsxs)(`p`,{className:`${$} text-[11px] leading-[1.6] text-[var(--sf-text-3)]`,children:[`Spans carry gen_ai.agent.name=`,t.id||`…`,l>0?` · stageflow.agent.config=v${l}`:``,_&&b(t,r)?` (v${l+1} after save)`:``]})]}),(0,Y.jsxs)(t8,{id:`webchat`,children:[(0,Y.jsx)(r6,{children:`Web chat`}),(0,Y.jsxs)(s6,{children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-4 px-3.5 py-3`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2.5`,children:[(0,Y.jsx)(n8,{muted:!k.enabled,children:(0,Y.jsx)(Re,{})}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5 text-[13px] font-medium leading-normal text-[var(--sf-text-1)]`,children:[`Public chat page`,b(k.enabled,r?.web_chat?.enabled??!1)?(0,Y.jsx)(o6,{}):null]}),(0,Y.jsx)(`span`,{className:`text-xs leading-[1.33333] text-[var(--sf-text-3)]`,children:`Anyone with the link can chat with this agent. Visitors stay anonymous and can only chat.`})]})]}),(0,Y.jsx)(t6,{on:k.enabled,label:`Public chat page`,onChange:v?e=>j({enabled:e}):void 0})]}),k.enabled?(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2 px-3.5 py-3`,children:[p&&!M?(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,Y.jsx)(`span`,{className:`${$} min-w-0 truncate text-xs text-[var(--sf-text-1)]`,title:p,children:p}),(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-center gap-3`,children:[(0,Y.jsxs)(r8,{onClick:()=>void navigator.clipboard?.writeText(p).then(()=>SD(`Link copied`),()=>SD(`Could not copy the link`)),children:[(0,Y.jsx)(R,{"aria-hidden":!0,className:`size-3`}),`Copy link`]}),v?(0,Y.jsxs)(r8,{tone:`text-3`,onClick:()=>j({slug:void 0}),children:[(0,Y.jsx)(de,{"aria-hidden":!0,className:`size-3`}),`Rotate link`]}):null]})]}):(0,Y.jsx)(`span`,{className:`text-xs leading-[1.33333] text-[var(--sf-text-2)]`,children:M?`A new link is created when you save. The old link stops working.`:`The link appears after you save.`}),p&&!M&&v?(0,Y.jsx)(i8,{children:`Rotating replaces the link when you save; the old one stops working.`}):null,(0,Y.jsx)(i8,{children:`The page only opens while the agent is enabled.`})]}):null]}),k.enabled?(0,Y.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 md:grid-cols-2`,children:[(0,Y.jsxs)(i6,{label:`Messages per minute`,changed:b(k.rate_limit_per_minute,r?.web_chat?.rate_limit_per_minute??Z4.rate_limit_per_minute),hint:`Per visitor. Visitors over the limit are asked to wait.`,children:[(0,Y.jsx)(p6,{value:k.rate_limit_per_minute,min:1,max:120,ariaLabel:`Messages per minute`,invalid:y(`web_chat.rate_limit_per_minute`).issues.length>0,changed:b(k.rate_limit_per_minute,r?.web_chat?.rate_limit_per_minute??Z4.rate_limit_per_minute),onChange:v?e=>j({rate_limit_per_minute:e??0}):void 0}),(0,Y.jsx)(h6,{...y(`web_chat.rate_limit_per_minute`)})]}),(0,Y.jsxs)(i6,{label:`Longest message`,changed:b(k.max_message_chars,r?.web_chat?.max_message_chars??Z4.max_message_chars),hint:`Characters a visitor can send in one message.`,children:[(0,Y.jsx)(p6,{value:k.max_message_chars,min:1,max:2e4,suffix:`chars`,ariaLabel:`Longest message`,invalid:y(`web_chat.max_message_chars`).issues.length>0,changed:b(k.max_message_chars,r?.web_chat?.max_message_chars??Z4.max_message_chars),onChange:v?e=>j({max_message_chars:e??0}):void 0}),(0,Y.jsx)(h6,{...y(`web_chat.max_message_chars`)})]})]}):null,(0,Y.jsx)(h6,{...y(`web_chat`)})]}),g?(0,Y.jsxs)(t8,{id:`channels`,children:[(0,Y.jsx)(r6,{note:`Where people can start a session with this agent.`,children:`Channels and triggers`}),(0,Y.jsxs)(s6,{children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between px-3.5 py-3`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2.5`,children:[(0,Y.jsx)(n8,{children:(0,Y.jsx)(N,{})}),(0,Y.jsx)(`span`,{className:`text-[13px] leading-normal text-[var(--sf-text-1)]`,children:`Console, MCP and CLI`}),(0,Y.jsxs)(`span`,{className:`${$} text-[11px] leading-normal text-[var(--sf-text-3)]`,children:[`sf agents chat `,t.id]})]}),(0,Y.jsx)(`span`,{className:`text-xs leading-[1.33333] text-[var(--sf-text-3)]`,children:`Always on`})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-3 px-3.5 py-3`,"data-testid":`agent-channel`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,Y.jsx)(`div`,{className:`flex flex-col gap-0.5`,children:(0,Y.jsxs)(`div`,{className:`flex items-center gap-2.5`,children:[(0,Y.jsx)(n8,{muted:!t.channel,children:(0,Y.jsx)(re,{})}),(0,Y.jsx)(`span`,{className:`text-[13px] leading-normal ${t.channel?`text-[var(--sf-text-1)]`:`text-[var(--sf-text-2)]`}`,children:`Channel`}),(0,Y.jsx)(`span`,{className:`text-xs leading-[1.33333] text-[var(--sf-text-3)]`,children:`One connection this agent answers on, like an AgentMail inbox or an iMessage line`})]})}),(0,Y.jsx)(f6,{value:t.channel?.connection_id??``,ariaLabel:`Channel connection`,options:[{value:``,label:`None`},...(o.connections??[]).map(e=>({value:e.id,label:`${e.displayName} · ${e.provider}${e.enabled?``:` (disabled)`}${C[e.id]?` · used by ${C[e.id]}`:``}`})),...t.channel&&!(o.connections??[]).some(e=>e.id===t.channel.connection_id)?[{value:t.channel.connection_id,label:`${t.channel.connection_id} (not in this project)`}]:[]],onChange:v?e=>v({...t,channel:e===``?void 0:{connection_id:e,allow_from:t.channel?.allow_from??[]}}):void 0})]}),t.channel?(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Y.jsx)(`span`,{className:`text-xs font-medium leading-[1.33333] text-[var(--sf-text-2)]`,children:`Who can message this agent`}),(0,Y.jsx)(m6,{values:t.channel.allow_from,onChange:v?e=>v({...t,channel:{...t.channel,allow_from:e}}):void 0,placeholder:`jane@example.com, +14155550123, @acme.com, or * for anyone`,ariaLabel:`Allowed senders`}),(0,Y.jsxs)(`span`,{className:`text-[11px] leading-normal text-[var(--sf-text-3)]`,children:[`Emails, phone numbers in +country format, `,(0,Y.jsx)(`span`,{className:$,children:`@domain`}),` for everyone at a domain, or `,(0,Y.jsx)(`span`,{className:$,children:`*`}),` for anyone. Messages from anyone else are ignored, so an empty list means nobody.`]}),(o.connections??[]).find(e=>e.id===t.channel.connection_id)?.provider===`imessage`?(0,Y.jsx)(X6,{agentId:t.id,allowFrom:t.channel.allow_from}):null,(0,Y.jsx)(Y6,{agentId:t.id,provider:(o.connections??[]).find(e=>e.id===t.channel.connection_id)?.provider,enabled:t.enabled}),(0,Y.jsx)(h6,{...y(`channel.allow_from`)}),(0,Y.jsx)(h6,{...y(`channel.connection_id`)})]}):null]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-3 px-3.5 py-3`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2.5`,children:[(0,Y.jsx)(n8,{muted:!t.schedule,children:(0,Y.jsx)(m,{})}),(0,Y.jsx)(`span`,{className:`text-[13px] leading-normal ${t.schedule?`text-[var(--sf-text-1)]`:`text-[var(--sf-text-2)]`}`,children:`Schedule`}),t.schedule?null:(0,Y.jsx)(`span`,{className:`text-xs leading-[1.33333] text-[var(--sf-text-3)]`,children:`None`})]}),t.schedule?(0,Y.jsx)(r8,{tone:`text-3`,onClick:v?()=>v({...t,schedule:void 0}):void 0,children:`Remove`}):(0,Y.jsxs)(r8,{onClick:v?()=>v({...t,schedule:{cron:`0 9 * * 1`,timezone:`UTC`}}):void 0,children:[(0,Y.jsx)(se,{"aria-hidden":!0,className:`size-3`}),`Add schedule`]})]}),t.schedule?(0,Y.jsxs)(`div`,{className:`grid grid-cols-1 gap-3 md:grid-cols-3`,children:[(0,Y.jsxs)(i6,{label:`Cron`,children:[(0,Y.jsx)(a6,{value:t.schedule.cron,mono:!0,ariaLabel:`Cron`,invalid:y(`schedule.cron`).issues.length>0,onChange:v?e=>v({...t,schedule:{...t.schedule,cron:e}}):void 0}),(0,Y.jsx)(h6,{...y(`schedule.cron`)})]}),(0,Y.jsx)(i6,{label:`Timezone`,children:(0,Y.jsx)(a6,{value:t.schedule.timezone??``,placeholder:`UTC`,ariaLabel:`Timezone`,onChange:v?e=>v({...t,schedule:{...t.schedule,timezone:e||void 0}}):void 0})}),(0,Y.jsx)(i6,{label:`Message`,children:(0,Y.jsx)(a6,{value:t.schedule.message??``,placeholder:`Scheduled check-in.`,ariaLabel:`Schedule message`,onChange:v?e=>v({...t,schedule:{...t.schedule,message:e||void 0}}):void 0})})]}):null]})]})]}):null,g?(0,Y.jsxs)(t8,{id:`limits`,children:[(0,Y.jsx)(r6,{children:`Limits`}),(0,Y.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 md:grid-cols-2`,children:[(0,Y.jsxs)(i6,{label:`Time per session`,changed:b(t.limits.session_minutes,r?.limits.session_minutes),hint:`Agent work time. Waiting on people doesn't count.`,children:[(0,Y.jsx)(p6,{value:t.limits.session_minutes,min:1,max:1440,suffix:`min`,ariaLabel:`Time per session`,changed:b(t.limits.session_minutes,r?.limits.session_minutes),onChange:v?e=>v({...t,limits:{...t.limits,session_minutes:e??0}}):void 0}),(0,Y.jsx)(h6,{...y(`limits.session_minutes`)})]}),(0,Y.jsxs)(i6,{label:`Model turns per session`,changed:b(t.limits.max_turns,r?.limits.max_turns),children:[(0,Y.jsx)(p6,{value:t.limits.max_turns,min:1,max:1e3,ariaLabel:`Model turns per session`,changed:b(t.limits.max_turns,r?.limits.max_turns),onChange:v?e=>v({...t,limits:{...t.limits,max_turns:e??0}}):void 0}),(0,Y.jsx)(h6,{...y(`limits.max_turns`)})]}),(0,Y.jsxs)(i6,{label:`Cost per session`,changed:b(t.limits.cost_usd,r?.limits.cost_usd),hint:_&&r&&t.limits.cost_usd!==r.limits.cost_usd?`Was ${r.limits.cost_usd===null?`unlimited`:`$${r.limits.cost_usd}`}.`:`Leave empty for no limit.`,hintTone:_&&r&&t.limits.cost_usd!==r.limits.cost_usd?`changed`:`muted`,children:[(0,Y.jsx)(p6,{value:t.limits.cost_usd,min:0,step:.01,suffix:`USD`,placeholder:`Unlimited`,ariaLabel:`Cost per session`,changed:b(t.limits.cost_usd,r?.limits.cost_usd),onChange:v?e=>v({...t,limits:{...t.limits,cost_usd:e}}):void 0}),(0,Y.jsx)(h6,{...y(`limits.cost_usd`)})]}),(0,Y.jsx)(i6,{label:`Always on`,changed:b(t.limits.always_on,r?.limits.always_on),hint:`One conversation that never ends by time or turns, for a channel like iMessage. It carries on after a failure or restart. The cost limit then counts per day.`,children:(0,Y.jsx)(t6,{on:t.limits.always_on,onChange:v?e=>v({...t,limits:{...t.limits,always_on:e}}):void 0,label:`Always on`})}),(0,Y.jsx)(i6,{label:`Long conversations`,changed:b(t.limits.long_context,r?.limits.long_context),children:(0,Y.jsx)(f6,{value:t.limits.long_context,ariaLabel:`Long conversations`,options:[{value:`summarize`,label:`Summarize older turns when context fills`},{value:`truncate`,label:`Drop the oldest turns when context fills`}],onChange:v?e=>v({...t,limits:{...t.limits,long_context:e}}):void 0})})]})]}):null,g&&u?(0,Y.jsxs)(t8,{id:`versions`,children:[(0,Y.jsx)(r6,{children:`Version history`}),(0,Y.jsx)(s6,{children:u.revisions.map(e=>{let t=e.revision===u.current;return(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-4 px-3.5 py-3`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,Y.jsx)(`span`,{className:`${$} shrink-0 rounded-md px-1.5 py-0.5 text-[11px] leading-normal ${t?`bg-[var(--sf-raised)] text-[var(--sf-text-1)]`:`text-[var(--sf-text-2)]`}`,children:t?`v${e.revision} · current`:`v${e.revision}`}),(0,Y.jsx)(`span`,{className:`truncate text-[13px] leading-normal ${t?`text-[var(--sf-text-1)]`:`text-[var(--sf-text-2)]`}`,children:e.summary??o8[e.source]})]}),(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-center gap-3`,children:[(0,Y.jsx)(`span`,{className:`text-xs leading-[1.33333] text-[var(--sf-text-3)] ${z3}`,children:[e.author,o8[e.source],a8(e.createdAt)].filter(Boolean).join(` · `)}),t?null:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(r8,{onClick:()=>u.onCompare(e.revision),children:`Compare`}),h?(0,Y.jsxs)(r8,{onClick:()=>u.onRestore(e.revision),children:[(0,Y.jsx)(de,{"aria-hidden":!0,className:`size-3`}),`Restore`]}):null]})]})]},e.revision)})})]}):null]})}function c8({definition:e,onChange:t}){let[n,r]=(0,J.useState)(null);(0,J.useEffect)(()=>{let e=!0;return Oo().then(t=>{e&&r(t.memories)},()=>{e&&r([])}),()=>{e=!1}},[]);let i=e.memories??[];function a(n){if(!t)return;let r=i.includes(n)?i.filter(e=>e!==n):[...i,n];t({...e,memories:r.length>0?r:void 0})}return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2`,"data-testid":`agent-memories`,children:[(0,Y.jsx)(`span`,{className:`text-xs font-medium leading-[1.33333] text-[var(--sf-text-2)]`,children:`Memories`}),(0,Y.jsx)(i8,{children:`Every session of this agent can read and replace these pages.`}),n&&n.length===0?(0,Y.jsxs)(i8,{children:[`No memories yet.`,` `,(0,Y.jsx)(`a`,{href:`#/memories`,className:`text-[var(--sf-text-1)] underline-offset-2 hover:underline`,children:`Create one from Memories`}),`.`]}):null,(0,Y.jsx)(`ul`,{className:`flex flex-col gap-1`,children:(n??[]).map(e=>(0,Y.jsx)(`li`,{children:(0,Y.jsxs)(`label`,{className:`flex items-start gap-2 text-xs text-[var(--sf-text-1)]`,children:[(0,Y.jsx)(`input`,{type:`checkbox`,checked:i.includes(e.id),disabled:!t,onChange:()=>a(e.id)}),(0,Y.jsxs)(`span`,{children:[(0,Y.jsx)(`span`,{className:$,children:e.id}),(0,Y.jsx)(`span`,{className:`mt-0.5 block text-[var(--sf-text-3)]`,children:e.description})]})]})},e.id))})]})}function l8(e){let[t,n]=(0,J.useState)(e[0].id),r=(0,J.useRef)(null),i=(0,J.useCallback)(()=>{let t=r.current;if(!t)return;let i=t.getBoundingClientRect().top,a=e[0].id;for(let t of e){let e=document.getElementById($6(t.id));e&&e.getBoundingClientRect().top-i<=24&&(a=t.id)}n(a)},[e]);return{active:t,jump:(0,J.useCallback)(e=>{n(e),document.getElementById($6(e))?.scrollIntoView({behavior:`smooth`,block:`start`})},[]),scrollRef:r,onScroll:i}}function u8(e){return{key:e,data:null,loading:e!==null,error:null,updatedAt:null}}function d8(e,t){return t.type===`start`?t.key===e.key?t.silent?e:{...e,loading:!0}:u8(t.key):t.key===e.key?t.type===`fail`?{...e,loading:!1,error:t.error}:{...e,data:t.data,loading:!1,error:null,updatedAt:t.at}:e}function f8(e){return e instanceof Error?e:Error(String(e))}function p8(e,t){return e instanceof fD&&e.status===404?t:null}var m8={agent:{title:`Agent not found`,body:`This agent is not in the project.`,back:`All agents`},session:{title:`Session not found`,body:`This session does not exist for this agent.`,back:`Back to agent`},run:{title:`Run not found`,body:`This run is not in the session.`,back:`Back to session`}};function h8(){let[e,t]=(0,J.useState)({});return(0,J.useEffect)(()=>{let e=!0,n=n=>e&&t(e=>({...e,...n}));return Ra().then(e=>n({mcpServers:e.servers,mcpStatus:e.status}),()=>n({mcpServers:[],mcpStatus:`error`})),gD.stageflowTools().then(e=>{n3(e),n({stageflow:e})},()=>n({stageflow:{groups:[]}})),sa().then(e=>n({skills:e.skills.map(e=>({name:e.name,description:e.description}))}),()=>n({skills:[]})),zi().then(e=>n({connections:e.connections.map(e=>({id:e.id,provider:e.provider,displayName:e.displayName,enabled:e.enabled}))}),()=>n({connections:[]})),gD.list().then(e=>n({agents:e.filter(e=>e.revision>0).map(e=>({id:e.id,name:e.name,enabled:e.enabled,model:e.model?.id??`project default`,channelConnection:e.channelConnection}))}),()=>n({agents:[]})),()=>{e=!1}},[]),e}function g8(e,t=300){let[n,r]=(0,J.useState)({issues:[],warnings:[],yaml:null,pending:!0}),i=(0,J.useRef)(0),a=JSON.stringify(e);return(0,J.useEffect)(()=>{let e=++i.current;r(e=>({...e,pending:!0}));let n=window.setTimeout(()=>{gD.validate(JSON.parse(a)).then(t=>{e===i.current&&r({issues:t.issues,warnings:t.warnings,yaml:t.yaml,pending:!1})},t=>{e===i.current&&r({issues:[{path:``,code:`agent.validate_failed`,message:t instanceof Error?t.message:`Could not validate`}],warnings:[],yaml:null,pending:!1})})},t);return()=>window.clearTimeout(n)},[a,t]),n}function _8(e,t,n){let[r,i]=(0,J.useReducer)(d8,e,u8),a=(0,J.useRef)(t);a.current=t;let o=(0,J.useRef)(e);o.current=e;let s=(0,J.useRef)(0),c=r.key===e?r:u8(e),l=(0,J.useCallback)(async e=>{let t=o.current,n=++s.current;if(i({type:`start`,key:t,silent:e}),t!==null)try{let e=await a.current();n===s.current&&i({type:`ok`,key:t,data:e,at:Date.now()})}catch(e){n===s.current&&i({type:`fail`,key:t,error:f8(e)})}},[]);(0,J.useEffect)(()=>(l(!1),()=>{s.current++}),[e,l]);let u=n.pollMs!==void 0&&c.data!==null&&(!n.active||n.active(c.data));(0,J.useEffect)(()=>{if(!u||n.pollMs===void 0)return;let e=window.setInterval(()=>void l(!0),n.pollMs);return()=>window.clearInterval(e)},[u,n.pollMs,l]);let d=(0,J.useCallback)(()=>l(!1),[l]),f=(0,J.useCallback)(e=>i({type:`set`,key:o.current,data:e,at:Date.now()}),[]);return{data:c.data,loading:c.loading,error:c.error,missing:p8(c.error,n.kind),updatedAt:c.updatedAt,reload:d,setData:f}}function v8(e){let t=_8(e,()=>gD.get(e),{kind:`agent`});return{detail:t.data,loading:t.loading,error:t.error,missing:t.missing,reload:t.reload,setDetail:t.setData}}var y8=null;function b8(e){y8=e}function x8(e){return y8===e&&(y8=null,!0)}var S8=`What should this agent do? Tell me the job, the tools it needs, and anything it must never do without asking.`;function C8({changes:e,pending:t,onKeep:n,onUndo:r}){return(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-col rounded-lg border border-[var(--sf-hairline-strong)] bg-[var(--sf-panel)]`,"data-status":t?`pending`:`kept`,children:[(0,Y.jsx)(`div`,{className:`flex flex-col gap-1.5 px-3 py-2.5`,children:e.map(e=>(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-start gap-2`,children:[(0,Y.jsx)(`span`,{className:`w-[78px] shrink-0 text-xs leading-[1.33333] text-[var(--sf-text-3)]`,children:e.label}),(0,Y.jsx)(`span`,{className:`min-w-0 break-words text-xs leading-[1.33333] text-[var(--sf-text-1)]`,children:e.value})]},e.label))}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 border-t border-t-[var(--sf-hairline)] px-3 py-2`,children:[t?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`button`,{type:`button`,onClick:n,className:`flex h-7 shrink-0 items-center gap-1.5 rounded-md bg-[var(--sf-text-1)] px-2.5`,children:[(0,Y.jsx)(G,{"aria-hidden":!0,className:`size-3 shrink-0 text-[var(--sf-ground)]`}),(0,Y.jsx)(`span`,{className:`text-xs font-medium leading-[1.33333] text-[var(--sf-ground)]`,children:`Keep`})]}),(0,Y.jsxs)(`button`,{type:`button`,onClick:r,className:`flex h-7 shrink-0 items-center gap-1.5 rounded-md border border-[var(--sf-hairline-strong)] px-2.5`,children:[(0,Y.jsx)(de,{"aria-hidden":!0,className:`size-3 shrink-0 text-[var(--sf-text-2)]`}),(0,Y.jsx)(`span`,{className:`text-xs leading-[1.33333] text-[var(--sf-text-1)]`,children:`Undo`})]})]}):null,(0,Y.jsx)(`span`,{className:`ml-auto shrink-0 text-[11px] leading-normal text-[var(--sf-text-3)]`,children:t?`Applied to the config`:`Kept`})]})]})}function w8({definition:e,onDefinitionChange:t}){let[n,r]=(0,J.useState)([{id:`greeting`,role:`assistant`,text:S8}]),[i,a]=(0,J.useState)(``),[o,c]=(0,J.useState)(!1),[l,u]=(0,J.useState)(null),d=(0,J.useRef)(null),f=(0,J.useRef)(void 0);function p(e){r(t=>[...t,e]),requestAnimationFrame(()=>d.current?.scrollTo({top:d.current.scrollHeight,behavior:`smooth`}))}async function m(n){n?.preventDefault();let r=i.trim();if(!(!r||o)){a(``),u(null),p({id:`u-${Date.now()}`,role:`user`,text:r}),c(!0);try{let n=await vD({message:r,...f.current?{sessionId:f.current}:{},draft:e});f.current=n.sessionId;let i=`a-${Date.now()}`;n.summaryLines.length>0&&(t($4(n.draft),`author`),u(i)),p({id:i,role:`assistant`,text:n.text||(n.summaryLines.length>0?`I updated the draft.`:`No changes.`),...n.summaryLines.length>0?{changes:n.summaryLines}:{}})}catch(e){p({id:`a-${Date.now()}`,role:`assistant`,failed:!0,text:e instanceof fD?`The author could not finish that turn (${e.code}).`:`The author could not finish that turn.`})}finally{c(!1)}}}async function h(){let e=f.current;if(e)try{t($4((await yD(e)).draft),`author`),r(e=>e.map(e=>e.id===l&&e.role===`assistant`?{...e,changes:void 0,text:`${e.text}\n\nUndone.`}:e)),u(null)}catch(e){p({id:`a-${Date.now()}`,role:`assistant`,failed:!0,text:e instanceof fD&&e.code===`agent.conflict`?`Can't undo: you edited those fields since. Change them back in the config.`:`Undo failed.`})}}function g(e){e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),m())}let _=i.trim().length>0&&!o;return(0,Y.jsxs)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col`,children:[(0,Y.jsx)(`div`,{className:`flex h-11 w-full shrink-0 items-center border-b border-b-[var(--sf-hairline)] px-5`,children:(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(s,{"aria-hidden":!0,className:`size-3.5 text-[#a78bfa]`}),(0,Y.jsx)(`span`,{className:`text-[13px] font-medium leading-normal text-[var(--sf-text-1)]`,children:`Agent author`})]})}),(0,Y.jsxs)(`div`,{ref:d,className:`flex min-h-[280px] flex-1 flex-col gap-4 overflow-y-auto px-5 py-4`,"aria-live":`polite`,children:[n.map(e=>e.role===`user`?(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1 rounded-lg bg-[var(--sf-raised)] px-3 py-2.5`,children:[(0,Y.jsx)(`span`,{className:`text-[11px] leading-normal text-[var(--sf-text-3)]`,children:`You`}),(0,Y.jsx)(`p`,{className:`whitespace-pre-wrap text-[13px] leading-[1.6] text-[var(--sf-text-1)]`,children:e.text})]},e.id):(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-2`,children:[(0,Y.jsx)(`span`,{className:`text-[11px] leading-normal text-[var(--sf-text-3)]`,children:`Agent author`}),(0,Y.jsx)(`p`,{className:`whitespace-pre-wrap text-[13px] leading-[1.6] ${e.failed?`text-[var(--sf-fail)]`:`text-[var(--sf-text-1)]`}`,children:e.text}),e.changes?(0,Y.jsx)(C8,{changes:e.changes,pending:e.id===l,onKeep:()=>u(null),onUndo:()=>void h()}):null]},e.id)),o?(0,Y.jsx)(`p`,{className:`text-[13px] text-[var(--sf-text-3)]`,children:`Working…`}):null]}),(0,Y.jsx)(`form`,{onSubmit:m,className:`shrink-0 px-4 pb-4`,children:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-3 rounded-xl border border-[var(--sf-hairline-strong)] bg-[var(--sf-panel)] px-3 py-2.5 focus-within:border-[#ffffff33]`,children:[(0,Y.jsx)(`textarea`,{value:i,onChange:e=>a(e.target.value),onKeyDown:g,rows:2,placeholder:`Describe a change, like “read files but never edit them” or “ask before Notion writes”`,"aria-label":`Message the agent author`,className:`w-full resize-none border-0 bg-transparent p-0 text-[13px] leading-normal text-[var(--sf-text-1)] outline-none placeholder:text-[var(--sf-text-3)]`}),(0,Y.jsx)(`div`,{className:`flex items-center justify-end`,children:(0,Y.jsx)(`button`,{type:`submit`,"aria-label":`Send`,disabled:!_,className:`flex size-6 shrink-0 items-center justify-center rounded-md ${_?`bg-[var(--sf-text-1)] text-[var(--sf-ground)]`:`cursor-not-allowed bg-[var(--sf-raised)] text-[var(--sf-text-2)]`}`,children:(0,Y.jsx)(Ae,{"aria-hidden":!0,className:`size-3.5`})})})]})})]})}function T8(){let[e,t]=(0,J.useState)(Q4),[n,r]=(0,J.useState)(!1),[i,a]=(0,J.useState)(!1),[o,s]=(0,J.useState)([]),[c,l]=(0,J.useState)(null),[u,d]=(0,J.useState)(!1),[f,m]=(0,J.useState)(!1),h=h8(),g=g8(e),_=l8(Z6),v=g.pending&&o.length>0?o:g.issues,y=f?v:v.filter(e=>e.code!==`agent.required`),x=g.issues.length>0&&g.issues.every(e=>e.code===`agent.required`),S=!g.pending&&g.issues.length===0;function C(n){s([]),l(null),n.instructions!==e.instructions&&r(!1),t(n)}function w(n){n.instructions!==e.instructions&&r(!0),t(n)}async function T(){if(m(!0),!(i||!S)){a(!0),l(null);try{let t=await gD.create(e);b8(t.agent.id),Z(Nc(t.agent.id))}catch(e){e instanceof fD&&e.issues.length>0&&s(e.issues),l(e instanceof fD?e.message:`Could not save the agent.`)}finally{a(!1)}}}let E=g.pending?{tone:`muted`,label:`Checking…`}:x&&!f?{tone:`muted`,label:`Name and instructions are required`}:g.issues.length>0?{tone:`fail`,label:`${g.issues.length} to fix before saving`}:g.warnings.length>0?{tone:`needs`,label:`Can save · ${g.warnings.length} warning${g.warnings.length===1?``:`s`}`}:{tone:`ok`,label:`Ready to save`},D={muted:`text-[var(--sf-text-3)]`,fail:`text-[var(--sf-fail)]`,needs:`text-[var(--sf-needs)]`,ok:`text-[var(--sf-ok)]`}[E.tone];return(0,Y.jsxs)(`div`,{className:V3,children:[(0,Y.jsx)($c,{crumbs:[{label:`Agents`,onClick:()=>Z(jc())},{label:`New agent`}],title:e.name.trim()||`New agent`,titleAddon:(0,Y.jsxs)(`span`,{className:`flex h-6 shrink-0 items-center gap-1.5 rounded-md bg-[var(--sf-raised)] px-2`,children:[(0,Y.jsx)(p,{"aria-hidden":!0,className:`size-2.5 text-[var(--sf-text-3)]`}),(0,Y.jsx)(`span`,{className:`text-xs leading-[1.33333] text-[var(--sf-text-2)] ${z3}`,children:`Draft · not saved`})]}),description:`Describe the agent in chat, or edit the config directly. It saves disabled, so nothing runs until you enable it.`,actions:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(e6,{variant:`ghost`,icon:(0,Y.jsx)(b,{"aria-hidden":!0}),onClick:()=>d(!0),children:`View YAML`}),(0,Y.jsx)(e6,{onClick:()=>Z(jc()),children:`Discard`}),(0,Y.jsx)(e6,{variant:`primary`,disabled:i||g.pending,onClick:()=>void T(),children:i?`Saving…`:`Save agent`})]})}),(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col lg:flex-row`,children:[(0,Y.jsx)(`div`,{className:`flex min-h-[420px] w-full min-w-0 flex-col border-b border-b-[var(--sf-hairline)] lg:w-[400px] lg:shrink-0 lg:border-b-0 lg:border-r lg:border-r-[var(--sf-hairline)]`,children:(0,Y.jsx)(w8,{definition:e,onDefinitionChange:w})}),(0,Y.jsxs)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col`,children:[(0,Y.jsxs)(`div`,{className:`flex h-11 shrink-0 items-center justify-between gap-4 border-b border-b-[var(--sf-hairline)] px-7`,children:[(0,Y.jsx)(`nav`,{className:`flex items-center gap-4 overflow-x-auto`,"aria-label":`Config sections`,children:Z6.map(e=>(0,Y.jsx)(`button`,{type:`button`,onClick:()=>_.jump(e.id),className:`text-xs leading-[1.33333] ${z3} ${_.active===e.id?`font-medium text-[var(--sf-text-1)]`:`text-[var(--sf-text-2)] hover:text-[var(--sf-text-1)]`}`,children:e.label},e.id))}),(0,Y.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1.5 text-xs leading-[1.33333] ${z3} ${D}`,role:`status`,children:[E.tone===`ok`?(0,Y.jsx)(G,{"aria-hidden":!0,className:`size-3`}):E.tone===`muted`?null:(0,Y.jsx)(je,{"aria-hidden":!0,className:`size-3`}),E.label]})]}),c?(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-b-[#f2645a33] bg-[var(--sf-fail-bg)] px-7 py-2 text-xs text-[var(--sf-fail)]`,role:`alert`,children:[(0,Y.jsx)(je,{"aria-hidden":!0,className:`size-3`}),c]}):null,(0,Y.jsx)(`div`,{ref:_.scrollRef,onScroll:_.onScroll,className:`min-h-0 flex-1 overflow-y-auto`,children:(0,Y.jsx)(s8,{mode:`create`,definition:e,onChange:C,issues:y,warnings:g.warnings,options:h,authorWroteInstructions:n})})]})]}),(0,Y.jsx)(Q3,{left:`Saves to agents/….agent.yaml · disabled until you enable it`,right:`Saving doesn't start a run`}),u?(0,Y.jsx)(W3,{title:`Draft YAML`,yaml:g.yaml,onClose:()=>d(!1)}):null]})}function E8({loading:e,error:t,invalid:n,kind:r=`agent`,missing:i,onBack:a}){let o=i??p8(t,r),s=o?m8[o]:null;return(0,Y.jsxs)(`div`,{className:V3,children:[(0,Y.jsx)($c,{crumbs:[{label:`Agents`,onClick:()=>Z(jc())},...n?[{label:n.agent.id}]:[]],title:n?n.agent.id:s?s.title:e?`Loading…`:`Agent`}),(0,Y.jsx)(`div`,{className:`flex flex-1 flex-col items-center justify-center gap-4 p-10 text-center`,children:n?(0,Y.jsxs)(`div`,{className:`flex max-w-xl flex-col gap-3 text-left`,children:[(0,Y.jsxs)(`p`,{className:`flex items-center gap-2 text-[13px] font-medium text-[var(--sf-needs)]`,children:[(0,Y.jsx)(je,{"aria-hidden":!0,className:`size-4`}),`agents/`,n.agent.id,`.agent.yaml has no valid version yet`]}),(0,Y.jsx)(`ul`,{className:`flex flex-col gap-1`,children:n.agent.issues.map((e,t)=>(0,Y.jsxs)(`li`,{className:`text-xs leading-[1.5] text-[var(--sf-text-2)]`,children:[(0,Y.jsx)(`span`,{className:`${$} text-[var(--sf-text-1)]`,children:e.path||`file`}),e.line?` (line ${e.line})`:``,`: `,e.message]},t))}),(0,Y.jsx)(`p`,{className:`text-xs text-[var(--sf-text-3)]`,children:`Fix the file and this page updates on the next load.`})]}):s?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`p`,{className:`text-[13px] text-[var(--sf-text-2)]`,"data-testid":`agent-missing`,children:s.body}),(0,Y.jsx)(e6,{onClick:a??(()=>Z(jc())),children:s.back})]}):t?(0,Y.jsx)(`p`,{className:`text-[13px] text-[var(--sf-fail)]`,children:t.message}):(0,Y.jsx)(`p`,{className:`text-[13px] text-[var(--sf-text-3)]`,children:`Loading…`})})]})}function D8(e){if(e.status===`waiting`)return{symbol:`●`,label:`Waiting on you`,color:`text-[var(--sf-needs)]`};if(e.status===`running`)return{symbol:`●`,label:`Running`,color:`text-[var(--sf-running)]`};switch(e.lastTurnStatus){case`succeeded`:return{symbol:`✓`,label:`Succeeded`,color:`text-[var(--sf-ok)]`};case`failed`:return{symbol:`×`,label:`Failed`,color:`text-[var(--sf-fail)]`};case`cancelled`:return{symbol:`○`,label:`Stopped`,color:`text-[var(--sf-text-3)]`};default:return{symbol:`○`,label:`No runs`,color:`text-[var(--sf-text-3)]`}}}var O8=`grid grid-cols-[minmax(0,1fr)_96px_130px_50px_70px_70px_96px] items-center gap-4 px-7 min-w-[880px]`,k8=25;function A8({enabled:e}){return e?(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5 text-xs leading-normal text-[var(--sf-ok)]`,children:[(0,Y.jsx)(`span`,{"aria-hidden":!0,children:`✓`}),(0,Y.jsx)(`span`,{children:`Enabled`})]}):(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5 text-xs leading-normal text-[var(--sf-text-2)]`,children:[(0,Y.jsx)(`span`,{"aria-hidden":!0,children:`○`}),(0,Y.jsx)(`span`,{children:`Disabled`})]})}var j8={live:{label:`Live`,color:`text-[var(--sf-ok)]`,note:`Share this link with customers. Visitors are anonymous and can only chat.`},waiting:{label:`Waiting for you to enable the agent`,color:`text-[var(--sf-needs)]`,note:`The page opens as soon as you enable this agent.`},off:{label:`Off`,color:`text-[var(--sf-text-2)]`,note:`There is no chat page for this agent. Turn web chat on in Edit agent.`}};function M8({detail:e}){let{agent:t,definition:n}=e,r=v3(t.enabled,n),i=r===`off`?null:_3(t);return(0,Y.jsxs)(`section`,{className:`flex flex-col gap-3`,"aria-label":`Web chat`,children:[(0,Y.jsxs)(`h2`,{className:`flex items-center gap-2 text-base font-semibold leading-normal text-[var(--sf-text-1)]`,children:[(0,Y.jsx)(Re,{"aria-hidden":!0,className:`size-4 text-[var(--sf-text-2)]`}),`Web chat`]}),(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5 text-xs leading-normal ${j8[r].color}`,children:[(0,Y.jsx)(`span`,{"aria-hidden":!0,children:r===`live`?`●`:`○`}),(0,Y.jsx)(`span`,{children:j8[r].label})]}),r===`off`?null:i?(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2 rounded-lg border border-[var(--sf-hairline)] bg-[var(--sf-panel)] p-3`,children:[(0,Y.jsx)(`span`,{className:`${$} break-all text-xs leading-[1.5] text-[var(--sf-text-1)]`,children:i}),(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>void navigator.clipboard?.writeText(i).then(()=>SD(`Link copied`),()=>SD(`Could not copy the link`)),className:`flex w-fit items-center gap-1.5 text-xs leading-normal text-[var(--sf-text-2)] hover:text-[var(--sf-text-1)]`,children:[(0,Y.jsx)(R,{"aria-hidden":!0,className:`size-3`}),`Copy link`]})]}):(0,Y.jsx)(`p`,{className:`text-xs leading-normal text-[var(--sf-text-3)]`,children:`The link appears once this agent is saved with web chat on.`}),(0,Y.jsx)(`p`,{className:`text-[13px] leading-[1.6] text-[var(--sf-text-2)]`,children:j8[r].note})]})}function N8({detail:e}){let{agent:t,definition:n}=e;return(0,Y.jsxs)(`aside`,{className:`flex w-[300px] shrink-0 flex-col gap-7 border-l border-l-[var(--sf-hairline)] p-6`,children:[(0,Y.jsx)(M8,{detail:e}),(0,Y.jsxs)(`section`,{className:`flex flex-col gap-4`,children:[(0,Y.jsx)(`h2`,{className:`text-base font-semibold leading-normal text-[var(--sf-text-1)]`,children:`Configuration`}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Y.jsx)(l6,{label:`Version`,value:`v${t.revision}`}),(0,Y.jsx)(l6,{label:`Model`,value:(0,Y.jsx)(`span`,{className:$,children:g3(n?.model??null)})}),(0,Y.jsx)(l6,{label:`Max turns`,value:n?String(n.limits.max_turns):`—`}),(0,Y.jsx)(l6,{label:`Time per session`,value:n?`${n.limits.session_minutes} minutes`:`—`})]})]}),(0,Y.jsxs)(`section`,{className:`flex flex-col gap-4`,children:[(0,Y.jsx)(`h2`,{className:`text-base font-semibold leading-normal text-[var(--sf-text-1)]`,children:`Availability`}),(0,Y.jsx)(A8,{enabled:t.enabled}),(0,Y.jsx)(`p`,{className:`text-[13px] leading-[1.6] text-[var(--sf-text-2)]`,children:t.enabled?`New sessions start on the current version. Disabling refuses new work and keeps history.`:`New work is not accepted while this agent is disabled.`})]}),(0,Y.jsxs)(`details`,{className:`group text-xs leading-normal text-[var(--sf-text-3)]`,children:[(0,Y.jsxs)(`summary`,{className:`cursor-pointer list-none text-[var(--sf-text-2)] hover:text-[var(--sf-text-1)] [&::-webkit-details-marker]:hidden`,children:[(0,Y.jsx)(`span`,{"aria-hidden":!0,className:`mr-1.5 inline-block transition-transform group-open:rotate-90`,children:`›`}),`Internal access`]}),(0,Y.jsxs)(`p`,{className:`mt-2 leading-[1.6]`,children:[`Console, CLI and MCP`,n?.channel?` · ${n.channel.connection_id}`:``]}),n?.schedule?(0,Y.jsxs)(`p`,{className:`${$} mt-1`,children:[`Schedule `,n.schedule.cron]}):null]})]})}function P8({detail:e,onReview:t}){let n=e.agent.enabled;return(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center gap-4 p-10 text-center`,children:[(0,Y.jsx)(`div`,{className:`flex size-12 items-center justify-center rounded-xl bg-[var(--sf-panel)] text-2xl text-[var(--sf-text-2)]`,children:`○`}),(0,Y.jsx)(`h2`,{className:`text-xl font-semibold leading-normal text-[var(--sf-text-1)]`,children:`No sessions yet`}),(0,Y.jsx)(`p`,{className:`text-[13px] leading-normal text-[var(--sf-text-2)]`,children:n?`Sessions appear here when someone messages this agent.`:`Enable this agent when you are ready to receive work.`}),(0,Y.jsx)(`p`,{className:`text-xs leading-normal text-[var(--sf-text-3)]`,children:n?`Try it from the CLI: sf agents chat ${e.agent.id} --message "Hello"`:`Enabling does not start a run.`}),(0,Y.jsx)(e6,{onClick:t,children:`Review configuration`})]}),(0,Y.jsx)(N8,{detail:e})]})}function F8({stats:e}){let t=e.turnsFinished7d>0?`${Math.round(e.turnsSucceeded7d/e.turnsFinished7d*100)}%`:`—`;return(0,Y.jsx)(`div`,{className:`grid grid-cols-2 gap-6 border-b border-b-[var(--sf-hairline)] px-7 py-5 md:grid-cols-4`,children:[{label:`Active runs`,value:String(e.active)},{label:`Sessions this week`,value:String(e.last7Days)},{label:`Run success rate`,value:t},{label:`Estimated cost`,value:S3(e.cost7d)}].map(e=>(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Y.jsx)(`span`,{className:`text-xs leading-normal text-[var(--sf-text-3)]`,children:e.label}),(0,Y.jsx)(`span`,{className:`${$} text-[22px] font-medium leading-normal text-[var(--sf-text-1)]`,children:e.value})]},e.label))})}function I8({agentId:e,stats:t}){let[n,r]=(0,J.useState)(``),[i,a]=(0,J.useState)(``),[o,s]=(0,J.useState)(``),[c,l]=(0,J.useState)(``),[u,d]=(0,J.useState)(null),[f,p]=(0,J.useState)(t),[m,h]=(0,J.useState)(null),[g,_]=(0,J.useState)(null);(0,J.useEffect)(()=>{let e=window.setTimeout(()=>l(o.trim()),250);return()=>window.clearTimeout(e)},[o]);let v=(0,J.useCallback)(async t=>{try{let r=await gD.sessions(e,{limit:k8,...n?{status:n}:{},...i?{source:i}:{},...c?{q:c}:{},...t?{cursor:t}:{}});d(e=>t&&e?[...e,...r.sessions]:r.sessions),h(r.nextCursor),p(r.stats),_(null)}catch(e){_(e instanceof Error?e.message:`Could not load sessions`)}},[e,n,i,c]);return(0,J.useEffect)(()=>{v()},[v]),(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto`,children:[(0,Y.jsx)(F8,{stats:f}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3 px-7 py-4`,children:[(0,Y.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Y.jsx)(`div`,{className:`w-40`,children:(0,Y.jsx)(f6,{value:n,ariaLabel:`Status`,onChange:r,options:[{value:``,label:`All statuses`},{value:`open`,label:`Open`},{value:`running`,label:`Running`},{value:`waiting`,label:`Waiting on you`},{value:`held`,label:`Held`}]})}),(0,Y.jsx)(`div`,{className:`w-40`,children:(0,Y.jsx)(f6,{value:i,ariaLabel:`Source`,onChange:a,options:[{value:``,label:`All sources`},...[`web`,`console`,`cli`,`mcp`,`schedule`,`slack`,`email`,`telegram`,`photon`,`imessage`,`agentmail`].map(e=>({value:e,label:T3(e)}))]})})]}),(0,Y.jsx)(`input`,{type:`search`,value:o,"aria-label":`Search sessions`,onChange:e=>s(e.target.value),placeholder:`Search sessions or messages…`,className:`h-8 w-[260px] rounded-lg border border-[var(--sf-hairline-strong)] bg-transparent px-3 text-xs leading-normal text-[var(--sf-text-1)] outline-none placeholder:text-[var(--sf-text-3)]`})]}),g?(0,Y.jsxs)(`p`,{className:`flex items-center gap-2 px-7 py-3 text-xs text-[var(--sf-fail)]`,children:[(0,Y.jsx)(je,{"aria-hidden":!0,className:`size-3`}),g]}):null,(0,Y.jsxs)(`div`,{className:`overflow-x-auto`,children:[(0,Y.jsx)(`div`,{className:`${O8} h-10`,children:[`Session`,`Source`,`Latest run`,`Runs`,`Tokens`,`Est. cost`,`Updated`].map(e=>(0,Y.jsx)(`span`,{className:`text-[11px] uppercase leading-normal tracking-[0.7px] text-[var(--sf-text-3)]`,children:e},e))}),u===null?(0,Y.jsx)(`p`,{className:`border-t border-t-[var(--sf-hairline)] px-7 py-6 text-xs text-[var(--sf-text-3)]`,children:`Loading sessions…`}):u.length===0?(0,Y.jsx)(`p`,{className:`border-t border-t-[var(--sf-hairline)] px-7 py-6 text-xs text-[var(--sf-text-3)]`,children:`No sessions match these filters.`}):u.map(t=>{let n=D8(t),r=()=>Z(Pc(e,t.id));return(0,Y.jsxs)(`div`,{role:`link`,tabIndex:0,onClick:r,onKeyDown:e=>{e.key===`Enter`&&r()},className:`${O8} min-h-[72px] cursor-pointer border-t border-t-[var(--sf-hairline)] outline-none hover:bg-[var(--sf-panel)] focus-visible:bg-[var(--sf-panel)]`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1.5`,children:[(0,Y.jsx)(`span`,{className:`truncate text-[13px] font-medium leading-normal text-[var(--sf-text-1)]`,children:t.title??`New session`}),(0,Y.jsx)(`span`,{className:`truncate text-xs leading-normal text-[var(--sf-text-3)]`,children:E3(t)})]}),(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5 text-xs leading-normal text-[var(--sf-text-2)]`,children:[t.source===`web`?(0,Y.jsx)(Re,{"aria-hidden":!0,className:`size-3 shrink-0`}):null,T3(t.source)]}),(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5 text-xs leading-normal ${n.color}`,children:[(0,Y.jsx)(`span`,{"aria-hidden":!0,children:n.symbol}),(0,Y.jsx)(`span`,{children:n.label})]}),(0,Y.jsx)(`span`,{className:`${$} text-xs leading-normal text-[var(--sf-text-2)]`,children:t.turnCount}),(0,Y.jsx)(`span`,{className:`${$} text-xs leading-normal text-[var(--sf-text-2)]`,children:x3(t.inputTokens+t.outputTokens)}),(0,Y.jsx)(`span`,{className:`${$} text-xs leading-normal text-[var(--sf-text-2)]`,children:S3(t.costUsd)}),(0,Y.jsx)(`span`,{className:`${$} text-xs leading-normal text-[var(--sf-text-2)]`,children:y3(t.updatedAt)})]},t.id)})]}),m?(0,Y.jsx)(`div`,{className:`flex justify-center border-t border-t-[var(--sf-hairline)] py-4`,children:(0,Y.jsx)(e6,{onClick:()=>void v(m),children:`Load more`})}):null]})}function L8({agentId:e}){let{detail:t,loading:n,error:r,missing:i,setDetail:a}=v8(e),[o,s]=(0,J.useState)(`sessions`),[c]=(0,J.useState)(()=>x8(e)),[l,u]=(0,J.useState)(!1),[d,f]=(0,J.useState)(!1),p=h8();if(!t)return(0,Y.jsx)(E8,{loading:n,error:r,missing:i});if(!t.definition)return(0,Y.jsx)(E8,{loading:!1,error:null,invalid:t});let{agent:m}=t;async function h(){if(!l){u(!0);try{f(!1);let e=await gD.setEnabled(m.id,!m.enabled);a(e),SD(e.agent.enabled?`Enabled`:`Disabled`)}catch(e){SD(e instanceof fD?e.message:`Could not change the agent`)}finally{u(!1)}}}let g=m.stats.total>0;return(0,Y.jsxs)(`div`,{className:V3,children:[(0,Y.jsx)($c,{crumbs:[{label:`Agents`,onClick:()=>Z(jc())},{label:m.name}],title:m.name,description:m.description??void 0,actions:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(A8,{enabled:m.enabled}),m.enabled?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(e6,{disabled:l,onClick:()=>f(!0),children:`Disable agent`}),(0,Y.jsx)(e6,{onClick:()=>Z(Nc(m.id,`edit`)),children:`Edit agent`}),(0,Y.jsx)(e6,{variant:`primary`,onClick:()=>Z(Pc(m.id,`new`)),children:`New session`})]}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(e6,{onClick:()=>Z(Nc(m.id,`edit`)),children:`Edit agent`}),(0,Y.jsx)(e6,{variant:`primary`,disabled:l||m.issues.length>0,onClick:()=>void h(),children:`Enable agent`})]})]})}),(0,Y.jsx)(c6,{tabs:[{id:`sessions`,label:`Sessions`},{id:`configuration`,label:`Configuration`}],value:o,onChange:s}),m.issues.length>0?(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-start gap-3 border-b border-b-[var(--sf-hairline)] bg-[#f5b5440a] px-7 py-3 text-xs leading-[1.5]`,role:`alert`,children:[(0,Y.jsx)(je,{"aria-hidden":!0,className:`mt-0.5 size-3.5 shrink-0 text-[var(--sf-needs)]`}),(0,Y.jsxs)(`span`,{className:`text-[var(--sf-text-1)]`,children:[`The YAML file was edited and is now invalid, so v`,m.revision,` stays in use.`,` `,(0,Y.jsx)(`span`,{className:`text-[var(--sf-text-2)]`,children:m.issues.map(e=>`${e.path||`file`}: ${e.message}`).join(` · `)})]})]}):null,d?(0,Y.jsxs)(q3,{title:`Disable ${m.name}?`,confirmLabel:`Disable agent`,busy:l,onConfirm:()=>void h(),onClose:()=>f(!1),children:[(0,Y.jsxs)(`p`,{children:[m.name,` will stop accepting new work: no new sessions, and its web chat page and channel stop answering.`]}),m.stats.active>0?(0,Y.jsxs)(`p`,{children:[m.stats.active,` active session`,m.stats.active===1?` is`:`s are`,` not stopped: a turn already running finishes, but nothing new starts and a waiting approval can only be denied. Stop a running turn from its session page to end it now.`]}):null,(0,Y.jsx)(`p`,{children:`Nothing is deleted. Definition, revisions and session history stay, and you can enable it again any time.`})]}):null,c&&o===`sessions`?(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-center gap-3 border-b border-b-[var(--sf-hairline)] px-7 py-4 text-[13px] leading-normal`,children:[(0,Y.jsx)(`span`,{className:`text-[var(--sf-ok)]`,children:`✓`}),(0,Y.jsxs)(`span`,{className:`text-[var(--sf-text-1)]`,children:[`Agent created. It is `,m.enabled?`enabled`:`disabled`,` and has not run yet.`]})]}):null,o===`sessions`?g?(0,Y.jsx)(I8,{agentId:m.id,stats:m.stats}):(0,Y.jsx)(P8,{detail:t,onReview:()=>s(`configuration`)}):(0,Y.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:(0,Y.jsx)(s8,{mode:`view`,definition:t.definition,issues:[],warnings:t.warnings,options:p,revision:m.revision,webChatUrl:_3(m),onOpenAgent:e=>Z(Nc(e))})}),(0,Y.jsx)(Q3,{left:`${c?`Created just now · `:``}Configuration v${m.revision}`,right:`${m.stats.total} session${m.stats.total===1?``:`s`}${m.stats.lastActivityAt?` · last activity ${y3(m.stats.lastActivityAt).toLowerCase()}`:``}`})]})}function R8(e){return e.length===0?``:`Changed ${e.join(`, `)}`.slice(0,200)}function z8({initial:e,onReload:t}){let[n,r]=(0,J.useState)(e),i=n.definition,[a,o]=(0,J.useState)(i),[s,c]=(0,J.useState)([]),[l,u]=(0,J.useState)(!1),[d,f]=(0,J.useState)(!1),[p,m]=(0,J.useState)(null),[h,g]=(0,J.useState)(!1),[_,v]=(0,J.useState)(!1),[x,S]=(0,J.useState)(null),[C,w]=(0,J.useState)(!1),T=h8(),E=g8(a),D=l8(Q6),k=n.agent,A=(0,J.useMemo)(()=>f3(i,a),[i,a]),j=(0,J.useMemo)(()=>p3(i,a),[i,a]),M=A.length>0,N=M&&!E.pending&&E.issues.length===0&&!l,P=(0,J.useCallback)(()=>{gD.revisions(k.id).then(c,()=>c([]))},[k.id]);(0,J.useEffect)(P,[P,k.revision]);let F=(0,J.useCallback)(e=>{e.definition&&(r({...e,definition:e.definition}),o(e.definition),f(!1),m(null))},[]),I=(0,J.useCallback)(async()=>{if(N){u(!0),m(null);try{let e=await gD.save(k.id,{baseRevision:k.revision,definition:a,summary:R8(A)});F(e),SD(`Saved as v${e.agent.revision}`)}catch(e){e instanceof fD&&e.code===`agent.conflict`?f(!0):m(e instanceof Error?e.message:`Could not save.`)}finally{u(!1)}}},[F,k.id,k.revision,N,a,A]);(0,J.useEffect)(()=>{let e=e=>{(e.metaKey||e.ctrlKey)&&e.key.toLowerCase()===`s`&&(e.preventDefault(),I())},t=e=>{M&&e.preventDefault()};return window.addEventListener(`keydown`,e),window.addEventListener(`beforeunload`,t),()=>{window.removeEventListener(`keydown`,e),window.removeEventListener(`beforeunload`,t)}},[M,I]);async function L(){try{let e=await gD.setEnabled(k.id,!k.enabled);r(e.definition?{...e,definition:e.definition}:n),e.definition&&o(t=>({...t,enabled:e.definition.enabled})),SD(e.agent.enabled?`Enabled`:`Disabled`)}catch(e){SD(e instanceof fD?e.message:`Could not change the agent`)}}async function R(){try{await gD.archive(k.id),Z(jc())}catch(e){SD(e instanceof fD?e.message:`Could not delete the agent`)}}function z(e){S({revision:e,lines:null}),gD.diff(k.id,e,k.revision).then(t=>S({revision:e,lines:t}),()=>S({revision:e,lines:[]}))}async function B(e){try{let t=await gD.restore(k.id,e,k.revision);F(t),S(null),SD(`Restored v${e} as v${t.agent.revision}`)}catch(e){e instanceof fD&&e.code===`agent.conflict`?f(!0):SD(e instanceof fD?e.message:`Could not restore`)}}return(0,Y.jsxs)(`div`,{className:V3,children:[(0,Y.jsx)($c,{crumbs:[{label:`Agents`,onClick:()=>Z(jc())},{label:i.name,onClick:()=>Z(Nc(k.id))},{label:`Edit`}],title:`Edit`,titleAddon:(0,Y.jsxs)(Y.Fragment,{children:[k.enabled?(0,Y.jsxs)(`span`,{className:`flex h-6 shrink-0 items-center gap-1 rounded-md bg-[#4cc38a1a] px-2`,children:[(0,Y.jsx)(G,{"aria-hidden":!0,className:`size-3 text-[var(--sf-ok)]`}),(0,Y.jsx)(`span`,{className:`text-xs leading-[1.33333] text-[var(--sf-ok)] ${z3}`,children:`Enabled`})]}):(0,Y.jsx)(`span`,{className:`flex h-6 shrink-0 items-center rounded-md bg-[var(--sf-raised)] px-2 text-xs leading-[1.33333] text-[var(--sf-text-2)] ${z3}`,children:`○ Disabled`}),(0,Y.jsxs)(`span`,{className:`${$} shrink-0 rounded-md bg-[var(--sf-raised)] px-2 py-0.5 text-xs leading-[1.33333] text-[var(--sf-text-2)]`,children:[`v`,k.revision]})]}),description:k.stats.active>0?`Changes apply to new sessions. ${k.stats.active} open session${k.stats.active===1?` keeps`:`s keep`} v${k.revision} until ${k.stats.active===1?`it finishes`:`they finish`}.`:`Changes apply to new sessions. Open sessions keep the version they started on.`,actions:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(e6,{variant:`ghost`,icon:(0,Y.jsx)(b,{"aria-hidden":!0}),onClick:()=>g(!0),children:`View YAML`}),(0,Y.jsx)(e6,{disabled:!M,onClick:()=>o(i),children:`Discard changes`}),(0,Y.jsx)(e6,{variant:`primary`,disabled:!N,onClick:()=>void I(),children:l?`Saving…`:`Save as v${k.revision+1}`})]})}),(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1`,children:[(0,Y.jsxs)(`div`,{className:`hidden w-[220px] shrink-0 flex-col justify-between border-r border-r-[var(--sf-hairline)] px-3 py-4 md:flex`,children:[(0,Y.jsx)(`nav`,{className:`flex flex-col gap-0.5`,"aria-label":`Config sections`,children:Q6.map(e=>(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>D.jump(e.id),className:`flex items-center justify-between rounded-md px-2.5 py-1.5 text-left text-[13px] leading-normal ${D.active===e.id?`bg-[var(--sf-raised)] font-medium text-[var(--sf-text-1)]`:`text-[var(--sf-text-2)] hover:text-[var(--sf-text-1)]`}`,children:[e.label,j.has(e.id)?(0,Y.jsx)(o6,{}):null]},e.id))}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1 border-t border-t-[var(--sf-hairline)] pt-3`,children:[(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>void L(),className:`flex items-center gap-2 rounded-md px-2.5 py-1.5 text-[13px] leading-normal text-[var(--sf-text-2)] hover:bg-[var(--sf-raised)]`,children:[k.enabled?(0,Y.jsx)(O,{"aria-hidden":!0,className:`size-3.5`}):(0,Y.jsx)(y,{"aria-hidden":!0,className:`size-3.5`}),k.enabled?`Disable agent`:`Enable agent`]}),C?(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1.5 rounded-md bg-[var(--sf-fail-bg)] px-2.5 py-2`,children:[(0,Y.jsxs)(`span`,{className:`text-xs leading-[1.33333] text-[var(--sf-text-1)]`,children:[`Remove agents/`,k.id,`.agent.yaml? History stays readable.`]}),(0,Y.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Y.jsx)(`button`,{type:`button`,onClick:()=>void R(),className:`text-xs font-medium text-[var(--sf-fail)]`,children:`Delete`}),(0,Y.jsx)(`button`,{type:`button`,onClick:()=>w(!1),className:`text-xs text-[var(--sf-text-2)]`,children:`Cancel`})]})]}):(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>w(!0),className:`flex items-center gap-2 rounded-md px-2.5 py-1.5 text-[13px] leading-normal text-[var(--sf-fail)] hover:bg-[var(--sf-fail-bg)]`,children:[(0,Y.jsx)(Ee,{"aria-hidden":!0,className:`size-3.5`}),`Delete agent`]})]})]}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,Y.jsxs)(`div`,{className:`flex h-11 shrink-0 items-center justify-between gap-4 border-b border-b-[var(--sf-hairline)] px-7 ${d?`bg-[var(--sf-fail-bg)]`:M?`bg-[#6ca6ff0a]`:``}`,children:[d?(0,Y.jsxs)(`span`,{className:`flex items-center gap-2 text-xs leading-[1.33333] text-[var(--sf-fail)]`,role:`alert`,children:[(0,Y.jsx)(je,{"aria-hidden":!0,className:`size-3`}),`This agent changed since you opened it. Reload to see the latest version; your unsaved edits will be dropped.`,(0,Y.jsx)(`button`,{type:`button`,onClick:()=>void t(),className:`font-medium underline`,children:`Reload`})]}):M?(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,Y.jsx)(o6,{}),(0,Y.jsxs)(`span`,{className:`text-xs font-medium leading-[1.33333] text-[var(--sf-text-1)] ${z3}`,children:[A.length,` unsaved change`,A.length===1?``:`s`]}),(0,Y.jsx)(`span`,{className:`truncate text-xs leading-[1.33333] text-[var(--sf-text-2)]`,children:A.map((e,t)=>t===0?e[0].toUpperCase()+e.slice(1):e).join(` · `)}),(0,Y.jsx)(`button`,{type:`button`,onClick:()=>v(!0),className:`text-xs leading-[1.33333] text-[var(--sf-running)] ${z3}`,children:`Review diff`})]}):(0,Y.jsx)(`span`,{className:`text-xs leading-[1.33333] text-[var(--sf-text-3)]`,children:`No unsaved changes`}),d?null:p?(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5 text-xs leading-[1.33333] text-[var(--sf-fail)] ${z3}`,children:[(0,Y.jsx)(je,{"aria-hidden":!0,className:`size-3`}),p]}):M&&!E.pending?E.issues.length>0?(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5 text-xs leading-[1.33333] text-[var(--sf-fail)] ${z3}`,children:[(0,Y.jsx)(je,{"aria-hidden":!0,className:`size-3`}),E.issues.length,` to fix before saving`]}):(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5 text-xs leading-[1.33333] text-[var(--sf-ok)] ${z3}`,children:[(0,Y.jsx)(G,{"aria-hidden":!0,className:`size-3`}),`Valid, ready to save`,E.warnings.length>0?` · ${E.warnings.length} warning${E.warnings.length===1?``:`s`}`:``]}):null]}),(0,Y.jsx)(`div`,{ref:D.scrollRef,onScroll:D.onScroll,className:`min-h-0 flex-1 overflow-y-auto`,children:(0,Y.jsx)(s8,{mode:`edit`,definition:a,onChange:o,saved:i,issues:E.issues,warnings:E.warnings,options:T,revision:k.revision,webChatUrl:_3(k),onOpenAgent:e=>Z(Nc(e)),versions:{revisions:s,current:k.revision,onCompare:z,onRestore:e=>z(e)}})})]})]}),(0,Y.jsx)(Q3,{left:`agents/${k.id}.agent.yaml · v${k.revision} saved`,right:`Saving doesn't interrupt running sessions`}),h?(0,Y.jsx)(W3,{title:M?`YAML after save`:`Saved YAML`,yaml:E.yaml,onClose:()=>g(!1)}):null,_?(0,Y.jsx)(G3,{title:`Unsaved changes against v${k.revision}`,lines:E.yaml&&n.yaml?K3(n.yaml,E.yaml):null,onClose:()=>v(!1)}):null,x?(0,Y.jsx)(G3,{title:`v${x.revision} → v${k.revision} (current)`,lines:x.lines,onClose:()=>S(null),footer:(0,Y.jsxs)(Y.Fragment,{children:[M?(0,Y.jsx)(`span`,{className:`mr-auto self-center text-xs text-[var(--sf-needs)]`,children:`Restoring discards your unsaved changes.`}):null,(0,Y.jsxs)(e6,{variant:`primary`,onClick:()=>void B(x.revision),children:[`Restore v`,x.revision,` as v`,k.revision+1]})]})}):null]})}function B8({agentId:e}){let{detail:t,loading:n,error:r,missing:i,reload:a}=v8(e);return t?t.definition?(0,Y.jsx)(z8,{initial:{...t,definition:t.definition},onReload:a},`${t.agent.id}:${t.agent.revision}`):(0,Y.jsx)(E8,{loading:!1,error:null,invalid:t}):(0,Y.jsx)(E8,{loading:n,error:r,missing:i})}function V8(e,t){if(!e||e.state!==`failed`&&e.state!==`unknown`||e.state===`failed`&&e.retryable)return null;let n=`${t} (${e.replyTo})`;return e.state===`unknown`?{title:`Reply may or may not have arrived`,detail:`Sending to ${n} did not confirm. It is not resent on its own, in case it arrives twice. ${e.errorMessage??``}`.trim(),tone:`warn`,canResend:!0}:{title:`Reply was not delivered`,detail:`Sending to ${n} failed${e.attempts>1?` after ${e.attempts} attempts`:``}. ${e.errorMessage??``}`.trim(),tone:`bad`,canResend:!0}}function H8(e,t){return e?Date.parse(e):t}function U8(e,t){return Math.max(0,H8(e.decidedAt,t)-Date.parse(e.createdAt))}function W8(e,t){let n=e.turns.find(e=>String(e.seq)===t);return n?n.status===`running`||n.status===`waiting`||(e.deliveries??[]).some(e=>e.turnId===n.id&&(e.state===`pending`||e.state===`sending`||e.state===`failed`&&e.retryable)):!1}function G8(e,t=Date.now()){return e.turns.map(n=>{let r=e.messages.filter(e=>e.turnId===n.id),i=e.approvals.filter(e=>e.turnId===n.id),a=Math.max(0,H8(n.endedAt,t)-Date.parse(n.startedAt)),o=i.reduce((e,n)=>e+U8(n,t),0);return{turn:n,prompt:r.find(e=>e.role===`user`)??null,reply:[...r].reverse().find(e=>e.role===`assistant`)??null,spans:e.spans.filter(e=>e.turnId===n.id),approvals:i,elapsedMs:a,waitingMs:o,workingMs:Math.max(0,a-o),tokens:(n.inputTokens??0)+(n.outputTokens??0)}})}function K8(e,t=Date.now()){let n=G8(e,t),r=e.spans.filter(e=>e.kind===`tool`),i=e.turns.map(e=>e.costUsd).filter(e=>e!==null),a=e.evalScores.map(e=>e.score);return{runs:n.length,runsDone:n.filter(e=>e.turn.status===`succeeded`).length,runsWaiting:n.filter(e=>e.turn.status===`waiting`).length,runsFailed:n.filter(e=>e.turn.status===`failed`).length,evalAverage:a.length>0?a.reduce((e,t)=>e+t,0)/a.length:null,toolCalls:r.length,toolErrors:r.filter(e=>e.status===`error`).length,inputTokens:e.turns.reduce((e,t)=>e+(t.inputTokens??0),0),outputTokens:e.turns.reduce((e,t)=>e+(t.outputTokens??0),0),cost:i.length>0?i.reduce((e,t)=>e+t,0):null,workingMs:n.reduce((e,t)=>e+t.workingMs,0),waitingMs:n.reduce((e,t)=>e+t.waitingMs,0),sessionMs:Math.max(0,t-Date.parse(e.session.createdAt))}}function q8(e,t=Date.now(),n=5){if(e.turns.length===0)return null;let r=Date.parse(e.session.createdAt),i=Math.max(t,r+1e3)-r,a=e=>Math.min(100,Math.max(0,(e-r)/i*100)),o=.6,s=Array.from({length:n},(e,t)=>{let a=new Date(r+i*t/(n-1)).toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hour12:!1});return t===n-1?`${a} now`:a});return{messages:e.messages.map(e=>({at:a(Date.parse(e.createdAt)),user:e.role===`user`})),agent:e.turns.map(e=>{let n=a(Date.parse(e.startedAt)),r=a(H8(e.endedAt,t));return{at:n,width:Math.max(o,r-n),live:e.status===`running`,failed:e.status===`failed`}}),gates:e.approvals.map(e=>{let n=a(Date.parse(e.createdAt)),r=a(H8(e.decidedAt,t));return{at:n,width:Math.max(o,r-n),open:e.status===`pending`}}),ticks:s}}var J8={agent:`bg-[#a78bfa]`,sub_agent:`bg-[#a78bfa]`,model:`bg-[var(--sf-running)]`,tool:`bg-[#2dd4bf]`,guardrail:`bg-[#f472b6]`,gate:`bg-[var(--sf-needs)]`,internal:`bg-[#5b5f68]`};function Y8(e){return e.status===`error`?`bg-[var(--sf-fail)]`:J8[e.kind]??`bg-[var(--sf-text-3)]`}var X8={agent:`Agent`,model:`LLM`,tool:`Tool`,gate:`Human gate`,guardrail:`Guardrail`,internal:`Internal`};function Z8(e){switch(e.kind){case`agent`:case`sub_agent`:return`agent`;case`model`:case`tool`:case`gate`:case`guardrail`:return e.kind;default:return`internal`}}function Q8(e){let t=(e,t)=>Date.parse(e.startedAt)-Date.parse(t.startedAt),n=new Set(e.map(e=>e.id)),r=new Map;for(let i of[...e].sort(t)){let e=i.parentSpanId&&n.has(i.parentSpanId)?i.parentSpanId:null;r.set(e,[...r.get(e)??[],i])}let i=[],a=(e,t)=>{for(let n of r.get(e)??[])i.push({span:n,depth:t}),t<12&&a(n.id,t+1)};return a(null,0),i}function $8(e){let t=e.attributes[`gen_ai.request.model`];return typeof t==`string`?t:null}function e5(e){return(e.inputTokens??0)+(e.outputTokens??0)}function t5(e){let t=[],n=$8(e);e.kind===`model`&&n&&t.push(n);let r=e.attributes[`gen_ai.tool.name`];return typeof r==`string`&&!e.name.includes(r)&&t.push(r),e5(e)>0&&t.push(`${x3(e5(e))} tok`),t.join(` · `)}function n5(e){let t=e.attributes[`gen_ai.usage.cost_usd`];return typeof t==`number`?t:null}function r5(e){let t={all:e.length,agent:0,model:0,tool:0,gate:0,guardrail:0,internal:0,errors:0};for(let n of e)t[Z8(n)]+=1,n.status===`error`&&(t.errors+=1);return t}function i5(e,t){return t===`all`?!0:t===`errors`?e.status===`error`:Z8(e)===t}function a5(e){let t=Q8(e);return(t.find(e=>e.span.status===`error`)??t.find(e=>e.span.kind===`tool`)??t[0])?.span.id??null}function o5(e){let t=t=>e.spans.filter(e=>e.kind===t).reduce((e,t)=>e+(t.durationMs??0),0),n=t(`model`),r=t(`tool`)+t(`sub_agent`),i=e.waitingMs,a=Math.max(0,e.elapsedMs-n-r-i),o=Math.max(1,n+r+i+a);return[{id:`llm`,label:`LLM`,ms:n,color:`var(--sf-running)`},{id:`tool`,label:`Tool`,ms:r,color:`#2dd4bf`},{id:`human`,label:`Human wait`,ms:i,color:`var(--sf-needs)`},{id:`other`,label:`Other`,ms:a,color:`#5b5f68`}].filter(e=>e.ms>0).map(e=>({...e,percent:Math.round(e.ms/o*100)}))}function s5(e){let t=Q8(e).filter(t=>t.depth===1||t.depth===0&&e.length===1),n=[];for(let{span:e}of t){let t=e.name.split(` `)[0]===`execute_tool`?e.name.replace(`execute_tool `,``):e.name.split(` `)[0],r=n[n.length-1];r?.name===t?r.count+=1:n.push({name:t,count:1})}return n.map(e=>e.count>1?`${e.name} ×${e.count}`:e.name).join(` → `)}function c5(e){let t=e.attributes[`error.message`]??e.attributes[`exception.message`];return typeof t==`string`?t:e.status===`error`?`failed`:e.status===`cancelled`?`stopped`:`ok`}function l5(e){let t=Date.parse(e.turn.startedAt),n=e=>Math.max(0,Date.parse(e)-t),r=[{id:`start`,offsetMs:0,level:`INFO`,source:`run`,message:`Run #${e.turn.seq} started on revision v${e.turn.revision}`,spanId:null}];for(let t of e.spans){let e=t.name.split(` `)[0],i=t5(t),a=t.status===`error`?`ERROR`:t.status===`cancelled`?`WARN`:`INFO`,o=t.kind===`model`?`${i||`model call`} · finished in ${C3(t.durationMs)}`:(t.kind,`${t.name} ${c5(t)} · ${C3(t.durationMs)}`);r.push({id:`span-${t.id}`,offsetMs:n(t.endedAt??t.startedAt),level:a,source:e,message:o,spanId:t.id})}for(let t of e.approvals)r.push({id:`ask-${t.id}`,offsetMs:n(t.createdAt),level:`WARN`,source:`approval`,message:`Waiting for approval to run ${t.tool}`,spanId:null}),t.decidedAt&&r.push({id:`decide-${t.id}`,offsetMs:n(t.decidedAt),level:t.status===`approved`?`INFO`:`WARN`,source:`approval`,message:`${t.tool} ${t.status}`,spanId:null});return e.turn.errorCode&&r.push({id:`error`,offsetMs:n(e.turn.endedAt??e.turn.startedAt),level:`ERROR`,source:`run`,message:e.turn.errorCode,spanId:null}),r.sort((e,t)=>e.offsetMs-t.offsetMs)}function u5(e,t=220){if(!e)return null;let n=e.replace(/\s+/g,` `).trim();return n.length>t?`${n.slice(0,t-1)}…`:n}function d5(e){let t=e.attributes[`gen_ai.tool.name`];return typeof t==`string`?t:e.name.replace(/^(execute_tool|invoke_agent) /,``)}function f5(e){let t=[],n=Q8(e.spans).map(e=>e.span),r=n.find(e=>e.parentSpanId===null&&e.kind===`agent`)??null,i=n.filter(e=>e.id!==r?.id);e.prompt&&t.push({id:`prompt`,kind:`message`,state:`done`,title:`Received a message`,tag:null,detail:u5(e.prompt.text),at:e.prompt.createdAt,durationMs:null,tokens:0,cost:null,spanId:null,approval:null});for(let e of i){let n=e.status===`error`,r={state:n?`failed`:`done`,at:e.startedAt,durationMs:e.durationMs,tokens:e5(e),cost:n5(e),spanId:e.id,approval:null};switch(e.kind){case`model`:t.push({...r,id:e.id,kind:`model`,title:`Thought and answered`,tag:$8(e),detail:u5(e.outputText)??(e5(e)>0?`${x3(e.inputTokens??0)} in · ${x3(e.outputTokens??0)} out`:null)});break;case`tool`:t.push({...r,id:e.id,kind:`tool`,title:`Used ${d5(e)}`,tag:d5(e),detail:u5(e.inputText)??(n?`The tool call failed`:null)});break;case`sub_agent`:t.push({...r,id:e.id,kind:`agent`,title:`Asked ${d5(e).replace(/^agent:/,``)} for help`,tag:`sub-agent`,detail:u5(e.outputText)??u5(e.inputText)});break;case`guardrail`:t.push({...r,id:e.id,kind:`guardrail`,title:n?`Blocked by a guardrail`:e.name.startsWith(`eval`)?`Scored the reply`:`Checked against policy`,tag:n?`blocked`:`passed`,detail:e.attributes[`stageflow.guardrail.pattern`]?`matched ${String(e.attributes[`stageflow.guardrail.pattern`])}`:null});break;case`gate`:{let i=d5(e);t.push({...r,id:e.id,kind:`gate`,state:n?`failed`:`done`,title:n?`${i} was not approved`:`${i} was approved`,tag:`human gate`,detail:`Waited ${C3(e.durationMs)} for a person`});break}default:t.push({...r,id:e.id,kind:`tool`,title:e.name,tag:null,detail:u5(e.outputText)})}}let a=e.approvals.find(e=>e.status===`pending`)??null;return a&&(t.push({id:`ask-${a.id}`,kind:`gate`,state:`waiting`,title:`Waiting for your approval`,tag:`human gate`,detail:`Run ${a.tool}`,at:a.createdAt,durationMs:null,tokens:0,cost:null,spanId:null,approval:a}),t.push({id:`after-${a.id}`,kind:`tool`,state:`queued`,title:`Run ${a.tool}`,tag:a.tool,detail:`Runs after you approve`,at:null,durationMs:null,tokens:0,cost:null,spanId:null,approval:null})),e.reply?t.push({id:`reply`,kind:`final`,state:`done`,title:`Replied`,tag:null,detail:u5(e.reply.text,400),at:e.reply.createdAt,durationMs:null,tokens:0,cost:null,spanId:null,approval:null}):(e.turn.status===`running`||e.turn.status===`waiting`)&&t.push({id:`reply`,kind:`final`,state:`pending`,title:`Final answer`,tag:null,detail:`Appears when the run finishes`,at:null,durationMs:null,tokens:0,cost:null,spanId:null,approval:null}),t}var p5={INFO:`text-[var(--sf-text-3)]`,WARN:`text-[var(--sf-needs)]`,ERROR:`text-[var(--sf-fail)]`};function m5({run:e,onSelect:t}){let n=l5(e);return(0,Y.jsxs)(`div`,{className:`flex flex-col`,"data-testid":`run-logs`,children:[(0,Y.jsxs)(`p`,{className:`border-b border-b-[var(--sf-hairline)] px-6 py-3 text-[11px] text-[var(--sf-text-3)]`,children:[`Built from the spans, approvals and errors recorded for this run, joined on trace_id `,e.turn.traceId.slice(0,8),`…`]}),n.map(e=>(0,Y.jsxs)(`button`,{type:`button`,disabled:!e.spanId,onClick:()=>e.spanId&&t(e.spanId),className:`grid grid-cols-[72px_52px_130px_minmax(0,1fr)] items-baseline gap-4 border-b border-b-[var(--sf-hairline)] px-6 py-2.5 text-left enabled:hover:bg-[var(--sf-panel)]`,children:[(0,Y.jsxs)(`span`,{className:`${$} text-[11px] text-[var(--sf-text-3)]`,children:[`+`,(e.offsetMs/1e3).toFixed(2),` s`]}),(0,Y.jsx)(`span`,{className:`${$} text-[11px] ${p5[e.level]}`,children:e.level}),(0,Y.jsx)(`span`,{className:`${$} truncate text-xs text-[#a78bfa]`,children:e.source}),(0,Y.jsx)(`span`,{className:`text-[13px] leading-normal text-[var(--sf-text-1)]`,children:e.message})]},e.id))]})}function h5({run:e}){let t=[e.prompt&&{who:`You`,text:e.prompt.text,at:e.prompt.createdAt},e.reply&&{who:`Agent`,text:e.reply.text,at:e.reply.createdAt}].filter(Boolean);return(0,Y.jsxs)(`div`,{className:`flex max-w-[860px] flex-col gap-5 px-6 py-5`,"data-testid":`run-messages`,children:[t.map(e=>(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Y.jsxs)(`span`,{className:`flex items-center gap-2 text-[11px] text-[var(--sf-text-3)]`,children:[e.who,(0,Y.jsx)(`span`,{className:$,children:b3(e.at)})]}),(0,Y.jsx)(`p`,{className:`whitespace-pre-wrap rounded-lg border border-[var(--sf-hairline)] bg-[var(--sf-panel)] p-4 text-[13px] leading-[1.55] text-[var(--sf-text-1)]`,children:e.text})]},e.who)),t.length===0?(0,Y.jsx)(`p`,{className:`text-xs text-[var(--sf-text-3)]`,children:`No messages in this run.`}):null]})}function g5({agentId:e,run:t}){let[n,r]=(0,J.useState)(null),[i,a]=(0,J.useState)(null);return(0,J.useEffect)(()=>{let n=!0;return gD.revision(e,t.turn.revision).then(e=>n&&r(e)).catch(e=>n&&a(e instanceof Error?e.message:`Could not load this version`)),()=>{n=!1}},[e,t.turn.revision]),(0,Y.jsxs)(`div`,{className:`flex max-w-[900px] flex-col gap-4 px-6 py-5`,"data-testid":`run-config`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Y.jsxs)(`h3`,{className:`text-[13px] font-medium text-[var(--sf-text-1)]`,children:[`Agent configuration v`,t.turn.revision]}),(0,Y.jsx)(`p`,{className:`text-[11px] text-[var(--sf-text-3)]`,children:`This run was pinned to this version when it started, so later edits do not change it.`})]}),(0,Y.jsx)(e6,{icon:(0,Y.jsx)(c,{"aria-hidden":!0,className:`text-[var(--sf-text-2)]`}),onClick:()=>Z(Nc(e,`edit`)),children:`Edit agent`})]}),n?(0,Y.jsx)(`pre`,{className:`${$} overflow-auto whitespace-pre-wrap rounded-lg border border-[var(--sf-hairline)] bg-[var(--sf-panel)] p-4 text-[11px] leading-[1.6] text-[var(--sf-text-1)]`,children:n.yaml}):(0,Y.jsx)(`p`,{className:`text-xs text-[var(--sf-text-3)]`,children:i??`Loading…`})]})}var _5={message:N,model:ye,tool:ht,agent:mt,guardrail:Le,gate:Ke,final:fe},v5={message:`text-[var(--sf-text-2)]`,model:`text-[var(--sf-running)]`,tool:`text-[#2dd4bf]`,agent:`text-[#a78bfa]`,guardrail:`text-[#f472b6]`,gate:`text-[var(--sf-needs)]`,final:`text-[var(--sf-text-2)]`};function y5({step:e,selected:t,onClick:n}){let r=e.state===`failed`?St:_5[e.kind],i=e.state===`waiting`,a=e.state===`queued`||e.state===`pending`,o=[e.durationMs===null?null:C3(e.durationMs),e.tokens>0?`${x3(e.tokens)} tok`:null,e.cost===null?null:S3(e.cost)].filter(Boolean).join(` · `);return(0,Y.jsxs)(`button`,{type:`button`,onClick:n,"aria-pressed":t,className:`flex w-full items-start gap-3.5 px-6 py-3.5 text-left hover:bg-[var(--sf-panel)] ${i?`bg-[#f5b5440d] shadow-[inset_2px_0_0_var(--sf-needs)]`:t?`bg-[var(--sf-panel)]`:``}`,children:[(0,Y.jsx)(`span`,{className:`mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-lg border ${a?`border-dashed border-[var(--sf-hairline-strong)]`:`border-[var(--sf-hairline)]`} bg-[var(--sf-raised)]`,children:(0,Y.jsx)(r,{"aria-hidden":!0,className:`size-4 ${e.state===`failed`?`text-[var(--sf-fail)]`:v5[e.kind]}`})}),(0,Y.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[(0,Y.jsxs)(`span`,{className:`flex items-baseline justify-between gap-3`,children:[(0,Y.jsxs)(`span`,{className:`flex min-w-0 items-baseline gap-2`,children:[(0,Y.jsx)(`span`,{className:`truncate text-[13px] font-medium ${a?`text-[var(--sf-text-2)]`:e.state===`failed`?`text-[var(--sf-fail)]`:`text-[var(--sf-text-1)]`}`,children:e.title}),e.tag?(0,Y.jsx)(`span`,{className:`${$} shrink-0 text-[11px] text-[var(--sf-running)]`,children:e.tag}):null]}),(0,Y.jsx)(`span`,{className:`${$} shrink-0 text-[11px] ${i?`text-[var(--sf-needs)]`:`text-[var(--sf-text-3)]`}`,children:i?`waiting`:e.state===`queued`?`queued`:e.state===`pending`?`pending`:o||(e.at?b3(e.at):``)})]}),e.detail?(0,Y.jsx)(`span`,{className:`line-clamp-2 text-xs leading-normal text-[var(--sf-text-2)]`,children:e.detail}):null]})]})}function b5({run:e,selectedStepId:t,onSelectStep:n,renderDetail:r}){let i=f5(e),a=i.find(e=>e.id===t)??i.find(e=>e.state===`waiting`)??i.find(e=>e.state===`failed`)??null;return(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col xl:flex-row`,"data-testid":`run-steps`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col divide-y divide-[var(--sf-hairline)] border-b border-b-[var(--sf-hairline)] xl:border-b-0`,children:[i.map(e=>(0,Y.jsx)(y5,{step:e,selected:a?.id===e.id,onClick:()=>n(e.id)},e.id)),i.length===0?(0,Y.jsx)(`p`,{className:`p-10 text-center text-xs text-[var(--sf-text-3)]`,children:`Nothing recorded for this run yet.`}):null]}),r(a)]})}function x5({step:e,deciding:t,onDecide:n}){let r=e.approval;return(0,Y.jsxs)(`aside`,{className:`flex w-full shrink-0 flex-col gap-4 border-t border-t-[var(--sf-hairline)] p-5 xl:w-[440px] xl:border-l xl:border-t-0 xl:border-l-[var(--sf-hairline)]`,"data-testid":`approval-pane`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Y.jsx)(`span`,{className:`${$} rounded-md bg-[#f5b5441f] px-1.5 py-0.5 text-[11px] text-[var(--sf-needs)]`,children:`Human gate · approval`}),(0,Y.jsxs)(`span`,{className:`${$} text-[11px] text-[var(--sf-needs)]`,children:[`asked `,b3(r.createdAt)]})]}),(0,Y.jsxs)(`h2`,{className:`text-[17px] font-semibold leading-snug text-[var(--sf-text-1)]`,children:[`Run `,r.tool,`?`]}),(0,Y.jsxs)(`div`,{className:`rounded-lg border border-[var(--sf-hairline)] bg-[var(--sf-panel)] p-3.5 text-xs leading-normal text-[var(--sf-text-2)]`,children:[(0,Y.jsx)(`span`,{className:`font-medium text-[var(--sf-text-1)]`,children:`Why this needs you.`}),` `,r.tool,` is marked ask-first in this agent’s configuration, so the run is paused until someone decides.`]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Y.jsx)(`span`,{className:`${$} text-[10px] uppercase tracking-[0.5px] text-[var(--sf-text-3)]`,children:`What will run`}),(0,Y.jsx)(`pre`,{className:`${$} max-h-64 overflow-auto whitespace-pre-wrap rounded-md border border-[var(--sf-hairline)] bg-[var(--sf-ground)] p-3 text-[11px] leading-[1.5] text-[var(--sf-text-1)]`,children:JSON.stringify(r.payload,null,2)})]}),(0,Y.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Y.jsxs)(`button`,{type:`button`,disabled:t,onClick:()=>n(`approve`),className:`flex h-9 flex-1 items-center justify-center gap-1.5 rounded-md bg-[var(--sf-text-1)] text-xs font-medium text-[var(--sf-ground)] disabled:opacity-60 ${z3}`,children:[(0,Y.jsx)(G,{"aria-hidden":!0,className:`size-3.5`}),`Approve and run`]}),(0,Y.jsxs)(`button`,{type:`button`,disabled:t,onClick:()=>n(`deny`),className:`flex h-9 items-center gap-1.5 rounded-md border border-[var(--sf-hairline-strong)] px-3 text-xs text-[var(--sf-text-1)] disabled:opacity-60 ${z3}`,children:[(0,Y.jsx)(St,{"aria-hidden":!0,className:`size-3.5 text-[var(--sf-fail)]`}),`Deny`]})]})]})}function S5({name:e,value:t}){return(0,Y.jsxs)(`div`,{className:`flex items-baseline justify-between gap-4`,children:[(0,Y.jsx)(`span`,{className:`${$} shrink-0 text-[11px] leading-[1.6] text-[var(--sf-text-3)]`,children:e}),(0,Y.jsx)(`span`,{className:`${$} min-w-0 break-all text-right text-[11px] leading-[1.6] text-[var(--sf-text-1)]`,children:t})]})}function C5({title:e,rows:t}){return t.length===0?null:(0,Y.jsxs)(`section`,{className:`flex flex-col gap-1.5`,children:[(0,Y.jsx)(`span`,{className:`${$} text-[10px] uppercase tracking-[0.5px] text-[#4cc38a]`,children:e}),t.map(([e,t])=>(0,Y.jsx)(S5,{name:e,value:t},e))]})}function w5({label:e,text:t}){return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Y.jsx)(`span`,{className:`${$} text-[10px] uppercase tracking-[0.5px] text-[var(--sf-text-3)]`,children:e}),(0,Y.jsx)(`pre`,{className:`${$} max-h-72 overflow-auto whitespace-pre-wrap rounded-md border border-[var(--sf-hairline)] bg-[var(--sf-ground)] p-3 text-[11px] leading-[1.5] text-[var(--sf-text-1)]`,children:t})]})}function T5(e){try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}}function E5(e){return typeof e==`string`?e:JSON.stringify(e)}function D5({span:e,spans:t,onSelect:n,traceId:r}){let[i,a]=(0,J.useState)(`attributes`);if(!e)return(0,Y.jsx)(`aside`,{className:`hidden w-[400px] shrink-0 border-l border-l-[var(--sf-hairline)] p-6 text-xs text-[var(--sf-text-3)] xl:block`,children:`Select a span to see its attributes.`});let o=Object.entries(e.attributes),s=o.filter(([e])=>e.startsWith(`gen_ai.`)).map(([e,t])=>[e,E5(t)]),c=o.filter(([e])=>e.startsWith(`stageflow.`)).map(([e,t])=>[e,E5(t)]),l=o.filter(([e])=>!e.startsWith(`gen_ai.`)&&!e.startsWith(`stageflow.`)).map(([e,t])=>[e,E5(t)]),u=e.parentSpanId?t.find(t=>t.id===e.parentSpanId)??null:null,f=t.filter(t=>t.parentSpanId===e.id),p=n5(e),m=e.status===`error`,h=e.inputText!==null||e.outputText!==null,g=[[`attributes`,`Attributes ${o.length+3}`],[`io`,`Input & output`],[`links`,`Links ${+!!u+f.length}`],[`raw`,`Raw OTLP`]];return(0,Y.jsxs)(`aside`,{className:`flex w-full shrink-0 flex-col border-t border-t-[var(--sf-hairline)] xl:w-[400px] xl:border-l xl:border-t-0 xl:border-l-[var(--sf-hairline)]`,"data-testid":`span-panel`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2 border-b border-b-[var(--sf-hairline)] px-5 py-4`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Y.jsxs)(`span`,{className:`${$} rounded-md bg-[var(--sf-raised)] px-1.5 py-0.5 text-[10px] uppercase text-[var(--sf-text-2)]`,children:[X8[Z8(e)],` · SpanKind.`,e.kind===`agent`||e.kind===`sub_agent`?`INTERNAL`:e.kind===`model`?`CLIENT`:`INTERNAL`]}),(0,Y.jsxs)(`span`,{className:`${$} flex items-center gap-1 text-[11px] ${m?`text-[var(--sf-fail)]`:`text-[var(--sf-ok)]`}`,children:[m?(0,Y.jsx)(d,{"aria-hidden":!0}):(0,Y.jsx)(M,{"aria-hidden":!0}),`status `,e.status]})]}),(0,Y.jsx)(`h2`,{className:`${$} break-all text-[15px] font-medium text-[var(--sf-text-1)]`,children:e.name}),(0,Y.jsxs)(`p`,{className:`${$} text-[11px] text-[var(--sf-text-3)]`,children:[C3(e.durationMs),` · `,b3(e.startedAt),e5(e)>0?` · ${e5(e)} tok`:``,p===null?``:` · ${S3(p)}`]})]}),(0,Y.jsx)(`div`,{className:`flex h-10 shrink-0 items-center gap-5 border-b border-b-[var(--sf-hairline)] px-5`,role:`tablist`,children:g.map(([e,t])=>(0,Y.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":i===e,onClick:()=>a(e),className:`h-full border-b-2 text-xs ${z3} ${i===e?`border-b-[var(--sf-text-1)] font-medium text-[var(--sf-text-1)]`:`border-b-transparent text-[var(--sf-text-3)] hover:text-[var(--sf-text-2)]`}`,children:t},e))}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-5 overflow-y-auto px-5 py-4`,children:[i===`attributes`?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{className:`grid grid-cols-2 gap-3 rounded-lg border border-[var(--sf-hairline)] bg-[var(--sf-panel)] p-3`,children:[[`span_id`,e.id],[`parent_span_id`,e.parentSpanId??`—`],[`trace_id`,r],[`parent`,u?.name??`root`]].map(([e,t])=>(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-0.5`,children:[(0,Y.jsx)(`span`,{className:`${$} text-[10px] text-[var(--sf-text-3)]`,children:e}),(0,Y.jsx)(`span`,{className:`${$} break-all text-[11px] text-[var(--sf-text-1)]`,children:t})]},e))}),(0,Y.jsx)(C5,{title:`gen_ai.* semantic conventions`,rows:s}),(0,Y.jsx)(C5,{title:`stageflow.*`,rows:c}),(0,Y.jsx)(C5,{title:`other`,rows:l}),o.length===0?(0,Y.jsx)(`p`,{className:`text-xs text-[var(--sf-text-3)]`,children:`No extra attributes were recorded.`}):null]}):null,i===`io`?(0,Y.jsxs)(Y.Fragment,{children:[e.inputText===null?null:(0,Y.jsx)(w5,{label:`Input`,text:T5(e.inputText)}),e.outputText===null?null:(0,Y.jsx)(w5,{label:`Output`,text:T5(e.outputText)}),h?null:(0,Y.jsx)(`p`,{className:`text-xs leading-normal text-[var(--sf-text-3)]`,children:`Content capture is off for this agent, so only metadata was recorded. Turn on full trace capture in the agent’s Observability settings to keep prompts and results.`})]}):null,i===`links`?(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[u?(0,Y.jsx)(O5,{label:`Parent`,span:u,onSelect:n}):null,f.map(e=>(0,Y.jsx)(O5,{label:`Child`,span:e,onSelect:n},e.id)),!u&&f.length===0?(0,Y.jsx)(`p`,{className:`text-xs text-[var(--sf-text-3)]`,children:`This span has no parent or children.`}):null]}):null,i===`raw`?(0,Y.jsx)(w5,{label:`OTLP span (as stored)`,text:JSON.stringify({traceId:r,spanId:e.id,parentSpanId:e.parentSpanId,name:e.name,kind:e.kind,status:e.status,startTime:e.startedAt,endTime:e.endedAt,attributes:e.attributes},null,2)}):null]})]})}function O5({label:e,span:t,onSelect:n}){return(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>n(t.id),className:`flex items-center justify-between gap-3 rounded-md border border-[var(--sf-hairline)] px-3 py-2 text-left hover:bg-[var(--sf-panel)]`,children:[(0,Y.jsx)(`span`,{className:B3,children:e}),(0,Y.jsx)(`span`,{className:`${$} min-w-0 truncate text-xs text-[var(--sf-text-1)]`,children:t.name}),(0,Y.jsx)(`span`,{className:`${$} text-[11px] text-[var(--sf-text-3)]`,children:C3(t.durationMs)})]})}var k5={agent:mt,model:ye,tool:ht,gate:Ke,guardrail:Le,internal:E},A5={agent:`text-[#a78bfa]`,model:`text-[var(--sf-running)]`,tool:`text-[#2dd4bf]`,gate:`text-[var(--sf-needs)]`,guardrail:`text-[#f472b6]`,internal:`text-[var(--sf-text-3)]`};function j5(e,t){let n=Date.parse(e.turn.startedAt);return{start:n,total:Math.max(1,(e.turn.endedAt?Date.parse(e.turn.endedAt):t)-n)}}function M5({text:e}){return(0,Y.jsx)(`p`,{className:`p-10 text-center text-xs text-[var(--sf-text-3)]`,children:e})}function N5({span:e,depth:t}){let n=Z8(e),r=e.status===`error`?d:k5[n],i=t5(e);return(0,Y.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,style:{paddingLeft:t*18},children:[(0,Y.jsx)(r,{"aria-hidden":!0,className:`size-3.5 shrink-0 ${e.status===`error`?`text-[var(--sf-fail)]`:A5[n]}`}),(0,Y.jsx)(`span`,{className:`${$} shrink-0 text-xs ${e.status===`error`?`text-[var(--sf-fail)]`:`text-[var(--sf-text-1)]`}`,children:e.name}),i?(0,Y.jsx)(`span`,{className:`${$} truncate text-[11px] text-[var(--sf-text-3)]`,children:i}):null]})}function P5({run:e,now:t,filter:n,selectedId:r,onSelect:i}){let{start:a,total:o}=j5(e,t),s=Q8(e.spans).filter(e=>i5(e.span,n));return s.length===0?(0,Y.jsx)(M5,{text:e.spans.length===0?`No spans were recorded for this run.`:`No spans match this filter.`}):(0,Y.jsxs)(`div`,{className:`flex flex-col`,"data-testid":`run-waterfall`,children:[(0,Y.jsxs)(`div`,{className:`flex h-9 shrink-0 items-center border-b border-b-[var(--sf-hairline)] px-6 text-[10px] uppercase tracking-[0.5px] text-[var(--sf-text-3)]`,children:[(0,Y.jsx)(`span`,{className:`w-[340px] shrink-0`,children:`Span`}),(0,Y.jsx)(`div`,{className:`flex flex-1 justify-between`,children:[0,.25,.5,.75,1].map(e=>(0,Y.jsx)(`span`,{className:$,children:C3(Math.round(o*e))},e))}),(0,Y.jsx)(`span`,{className:`w-[64px] shrink-0 text-right`,children:`Dur`})]}),s.map(({span:e,depth:t})=>{let n=Math.min(99,Math.max(0,(Date.parse(e.startedAt)-a)/o*100)),s=Math.max(.6,(e.durationMs??o-(Date.parse(e.startedAt)-a))/o*100),c=r===e.id;return(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>i(e.id),"aria-pressed":c,className:`flex h-9 w-full shrink-0 items-center border-b border-b-[var(--sf-hairline)] px-6 text-left hover:bg-[var(--sf-panel)] ${c?`bg-[var(--sf-running-bg)] shadow-[inset_2px_0_0_var(--sf-running)]`:e.status===`error`?`bg-[var(--sf-fail-bg)]`:``}`,children:[(0,Y.jsx)(`span`,{className:`w-[340px] shrink-0 overflow-hidden`,children:(0,Y.jsx)(N5,{span:e,depth:t})}),(0,Y.jsx)(`span`,{className:`relative h-full flex-1`,children:(0,Y.jsx)(`span`,{className:`absolute top-[13px] h-2.5 rounded-sm ${Y8(e)}`,style:{left:`${n}%`,width:`${Math.min(s,100-n)}%`}})}),(0,Y.jsx)(`span`,{className:`${$} w-[64px] shrink-0 text-right text-[11px] ${e.status===`error`?`text-[var(--sf-fail)]`:`text-[var(--sf-text-3)]`}`,children:C3(e.durationMs)})]},e.id)}),(0,Y.jsx)(F5,{run:e})]})}function F5({run:e}){let t=o5(e);if(t.length===0)return null;let n=s5(e.spans);return(0,Y.jsxs)(`section`,{className:`flex flex-col gap-3 px-6 py-5`,"data-testid":`time-breakdown`,children:[(0,Y.jsxs)(`div`,{className:`flex items-baseline justify-between gap-4`,children:[(0,Y.jsx)(`h3`,{className:`text-[13px] font-medium text-[var(--sf-text-1)]`,children:`Where the time went`}),n?(0,Y.jsxs)(`span`,{className:`${$} truncate text-[11px] text-[var(--sf-text-3)]`,children:[`critical path `,n]}):null]}),(0,Y.jsx)(`div`,{className:`flex h-2 w-full gap-px overflow-hidden rounded-full`,children:t.map(e=>(0,Y.jsx)(`span`,{title:`${e.label} ${C3(e.ms)}`,style:{flex:`${e.ms} 1 0%`,background:e.color}},e.id))}),(0,Y.jsx)(`div`,{className:`flex flex-wrap gap-x-5 gap-y-1`,children:t.map(e=>(0,Y.jsxs)(`span`,{className:`${$} text-[11px] text-[var(--sf-text-3)]`,children:[e.label,` `,C3(e.ms),` · `,e.percent,`%`]},e.id))})]})}var I5=[`waterfall`],L5=[`agent`,`model`,`tool`,`gate`,`guardrail`,`internal`];function R5({label:e,value:t,detail:n}){return(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1.5`,children:[(0,Y.jsx)(`span`,{className:`text-xs leading-[1.33333] text-[var(--sf-text-3)]`,children:e}),(0,Y.jsx)(`span`,{className:`${$} text-xl leading-[1.4] text-[var(--sf-text-1)]`,children:t}),(0,Y.jsx)(`span`,{className:`text-[11px] leading-normal text-[var(--sf-text-3)]`,children:n})]})}function z5({tone:e,icon:t,children:n}){let r={ok:`bg-[#4cc38a1a] text-[var(--sf-ok)]`,needs:`bg-[#f5b5441f] text-[var(--sf-needs)]`,fail:`bg-[var(--sf-fail-bg)] text-[var(--sf-fail)]`,running:`bg-[var(--sf-running-bg)] text-[var(--sf-running)]`}[e];return(0,Y.jsxs)(`span`,{className:`flex h-7 items-center gap-1.5 rounded-md px-2 text-xs font-medium ${r} ${z3}`,children:[t,n]})}function B5({run:e}){let{status:t}=e.turn;return e.turn.errorCode===`agent.reply_undelivered`?(0,Y.jsx)(z5,{tone:`fail`,icon:(0,Y.jsx)(je,{"aria-hidden":!0,className:`size-3.5`}),children:`Reply not delivered`}):t===`waiting`?(0,Y.jsxs)(z5,{tone:`needs`,icon:(0,Y.jsx)(Ke,{"aria-hidden":!0,className:`size-3.5`}),children:[`Waiting on you · `,C3(e.waitingMs)]}):t===`succeeded`?(0,Y.jsx)(z5,{tone:`ok`,icon:(0,Y.jsx)(G,{"aria-hidden":!0,className:`size-3.5`}),children:`Status OK`}):t===`running`?(0,Y.jsx)(z5,{tone:`running`,children:`Running`}):(0,Y.jsx)(z5,{tone:`fail`,icon:(0,Y.jsx)(je,{"aria-hidden":!0,className:`size-3.5`}),children:t===`cancelled`?`Stopped`:e.turn.errorCode??`Failed`})}function V5({agentId:e,sessionId:t,runId:n}){let[r,i]=(0,J.useState)(e),[a,o]=(0,J.useState)(`steps`),[s,c]=(0,J.useState)(`all`),[l,u]=(0,J.useState)(null),[d,f]=(0,J.useState)(null),[p,m]=(0,J.useState)(!1),[h,g]=(0,J.useState)(!1),[_,y]=(0,J.useState)(()=>Date.now()),b=_8(`${e}/${t}`,()=>gD.session(e,t),{kind:`session`,pollMs:1500,active:e=>W8(e,n)}),{data:x,error:S,reload:C}=b;(0,J.useEffect)(()=>{y(Date.now())},[b.updatedAt]),(0,J.useEffect)(()=>{gD.get(e).then(e=>i(e.agent.name)).catch(()=>void 0)},[e]);let w=(0,J.useMemo)(()=>x?G8(x,_).find(e=>String(e.turn.seq)===n)??null:null,[x,_,n]),T=x?W8(x,n):!1,E=w?.spans??[],D=(0,J.useMemo)(()=>a5(E),[E]),O=E.find(e=>e.id===(l??D))??null,k=(0,J.useMemo)(()=>r5(E),[E]);if(!x||!w)return(0,Y.jsx)(E8,{loading:!S&&!x,error:S,kind:`session`,missing:x?`run`:b.missing,onBack:()=>Z(x?Pc(e,t):Nc(e))});let A=k.errors,j=D3(t),M=x.evalScores.filter(e=>e.turnId===w.turn.id),N=I5.includes(a),P=(0,Y.jsx)(D5,{span:O,spans:E,onSelect:u,traceId:w.turn.traceId});async function F(){try{let n=await gD.exportOtlp(e,t),r=URL.createObjectURL(n),i=document.createElement(`a`);i.href=r,i.download=`${t}.otlp.json`,i.click(),URL.revokeObjectURL(r)}catch(e){SD(e instanceof Error?e.message:`Export failed`)}}async function I(n){m(!0);try{await gD.decide(e,t,n),SD(n===`approve`?`Approved`:`Denied`),await C()}catch(e){SD(e instanceof Error?e.message:`Could not record the decision`)}finally{m(!1)}}let L=x.deliveries?.find(e=>e.turnId===w.turn.id),z=V8(L,T3(x.session.source));async function B(n){g(!0);try{n===`resend`?await gD.resendReply(e,t,w.turn.id):await gD.markReplyDelivered(e,t,w.turn.id),SD(n===`resend`?`Reply sent again`:`Marked as delivered`),await C()}catch(e){SD(e instanceof Error?e.message:`Could not update the reply`)}finally{g(!1)}}let V=[[`steps`,`Steps`],[`waterfall`,`Waterfall`],[`messages`,`Messages`],[`logs`,`Logs ${w.spans.length+w.approvals.length+1}`],[`config`,`Configuration v${w.turn.revision}`]],H=[[`all`,`All ${k.all}`],...L5.filter(e=>k[e]>0).map(e=>[e,`${X8[e]} ${k[e]}`]),...A>0?[[`errors`,`Errors ${A}`]]:[]],ee={llm:E.filter(e=>Z8(e)===`model`).length,tools:E.filter(e=>e.kind===`tool`).length,toolErrors:E.filter(e=>e.kind===`tool`&&e.status===`error`).length,models:[...new Set(E.map(e=>e.attributes[`gen_ai.request.model`]).filter(e=>typeof e==`string`).map(e=>e.replace(/^openrouter\//,``)))]};return(0,Y.jsxs)(`div`,{className:V3,children:[(0,Y.jsxs)(`header`,{className:`flex shrink-0 flex-col gap-4 border-b border-b-[var(--sf-hairline)] px-7 py-5`,children:[(0,Y.jsx)(Qc,{items:[{label:`Agents`,onClick:()=>Z(jc())},{label:r,onClick:()=>Z(Nc(e))},{label:j,onClick:()=>Z(Pc(e,t))},{label:`Run #${w.turn.seq}`}]}),(0,Y.jsxs)(`div`,{className:`flex items-start justify-between gap-6`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-2`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,Y.jsxs)(`h1`,{className:`text-2xl font-semibold leading-[1.33333] tracking-[-0.5px] text-[var(--sf-text-1)]`,children:[`Run #`,w.turn.seq]}),(0,Y.jsxs)(`span`,{className:`${$} flex h-6 items-center gap-1.5 rounded-md bg-[var(--sf-raised)] px-2 text-[11px] text-[var(--sf-text-2)]`,children:[(0,Y.jsx)(`span`,{className:`block size-1.5 rounded-full bg-[#a78bfa]`}),`invoke_agent `,e]}),(0,Y.jsx)(B5,{run:w}),A>0?(0,Y.jsxs)(z5,{tone:`fail`,icon:(0,Y.jsx)(je,{"aria-hidden":!0,className:`size-3.5`}),children:[A,` error span`,A===1?``:`s`,w.turn.status===`succeeded`?`, recovered`:``]}):null]}),w.prompt?(0,Y.jsx)(`p`,{className:`truncate text-[15px] leading-normal text-[var(--sf-text-1)]`,children:w.prompt.text}):null,(0,Y.jsxs)(`span`,{className:`${$} text-[11px] text-[var(--sf-text-3)]`,children:[`trace_id `,w.turn.traceId,` · service.name stageflow-agent-runtime`]})]}),(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[(0,Y.jsx)(e6,{icon:(0,Y.jsx)(R,{"aria-hidden":!0,className:`text-[var(--sf-text-2)]`}),onClick:()=>void navigator.clipboard.writeText(w.turn.traceId).then(()=>SD(`Trace ID copied`)),children:`Copy trace ID`}),(0,Y.jsx)(e6,{icon:(0,Y.jsx)(v,{"aria-hidden":!0,className:`text-[var(--sf-text-2)]`}),onClick:()=>void F(),children:`Export OTLP`})]})]})]}),(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto`,children:[z?(0,Y.jsxs)(`div`,{role:`alert`,"data-testid":`delivery-notice`,className:`flex shrink-0 flex-wrap items-center justify-between gap-3 border-b border-b-[var(--sf-hairline)] px-7 py-3 ${z.tone===`bad`?`bg-[var(--sf-fail-bg)]`:`bg-[#f5b5441f]`}`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-0.5`,children:[(0,Y.jsx)(`span`,{className:`text-[13px] font-medium ${z.tone===`bad`?`text-[var(--sf-fail)]`:`text-[var(--sf-needs)]`}`,children:z.title}),(0,Y.jsx)(`span`,{className:`text-xs leading-normal text-[var(--sf-text-2)]`,children:z.detail})]}),(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[(0,Y.jsx)(e6,{disabled:h,onClick:()=>void B(`resend`),children:`Resend`}),(0,Y.jsx)(e6,{disabled:h,onClick:()=>void B(`delivered`),children:`Mark as delivered`})]})]}):null,(0,Y.jsxs)(`div`,{className:`grid shrink-0 grid-cols-2 gap-5 border-b border-b-[var(--sf-hairline)] px-7 py-4 md:grid-cols-3 xl:grid-cols-6`,children:[(0,Y.jsx)(R5,{label:`Duration`,value:C3(w.elapsedMs),detail:w.waitingMs>0?`${C3(w.workingMs)} working · ${C3(w.waitingMs)} waiting`:`from ${b3(w.turn.startedAt)}`}),(0,Y.jsx)(R5,{label:`Spans`,value:String(E.length),detail:A>0?`${A} with errors`:`no errors`}),(0,Y.jsx)(R5,{label:`LLM calls`,value:String(ee.llm),detail:ee.models.slice(0,2).join(`, `)||`none`}),(0,Y.jsx)(R5,{label:`Tool calls`,value:String(ee.tools),detail:ee.toolErrors>0?`${ee.toolErrors} failed`:`${w.approvals.length} approval${w.approvals.length===1?``:`s`}`}),(0,Y.jsx)(R5,{label:`Tokens`,value:x3(w.tokens),detail:`${x3(w.turn.inputTokens??0)} in · ${x3(w.turn.outputTokens??0)} out`}),(0,Y.jsx)(R5,{label:`Estimated cost`,value:S3(w.turn.costUsd),detail:M.length>0?`eval ${M.map(e=>`${e.metric} ${e.score.toFixed(2)}`).join(` · `)}`:`from gen_ai usage`})]}),(0,Y.jsxs)(`div`,{className:`flex h-[46px] shrink-0 items-center justify-between gap-4 overflow-x-auto border-b border-b-[var(--sf-hairline)] px-7`,children:[(0,Y.jsx)(`div`,{className:`flex h-full items-center gap-6`,role:`tablist`,children:V.map(([e,t])=>(0,Y.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":a===e,onClick:()=>o(e),className:`flex h-full items-center border-b-2 text-[13px] ${z3} ${a===e?`border-b-[var(--sf-text-1)] font-medium text-[var(--sf-text-1)]`:`border-b-transparent text-[var(--sf-text-3)] hover:text-[var(--sf-text-2)]`}`,children:t},e))}),N?(0,Y.jsx)(`div`,{className:`flex items-center gap-1.5`,role:`group`,"aria-label":`Filter spans`,children:H.map(([e,t])=>(0,Y.jsxs)(`button`,{type:`button`,"aria-pressed":s===e,onClick:()=>c(e),className:`flex h-7 items-center gap-1.5 rounded-md px-2 text-xs ${z3} ${s===e?`bg-[var(--sf-raised)] text-[var(--sf-text-1)]`:`text-[var(--sf-text-3)] hover:text-[var(--sf-text-2)]`} ${e===`errors`?`!text-[var(--sf-fail)]`:``}`,children:[e!==`all`&&e!==`errors`?(0,Y.jsx)(`span`,{className:`block size-2 rounded-full ${J8[e]}`}):null,t]},e))}):a===`steps`?(0,Y.jsx)(`div`,{className:`hidden items-center gap-3.5 xl:flex`,children:L5.map(e=>(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(`span`,{className:`block size-2 rounded-full ${J8[e]}`}),(0,Y.jsx)(`span`,{className:`text-[11px] text-[var(--sf-text-3)] ${z3}`,children:X8[e]})]},e))}):null]}),N?(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col xl:flex-row`,children:[(0,Y.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,Y.jsx)(P5,{run:w,now:_,filter:s,selectedId:O?.id??null,onSelect:u})}),E.length>0?P:null]}):a===`steps`?(0,Y.jsx)(b5,{run:w,selectedStepId:d,onSelectStep:f,renderDetail:e=>e?.approval?(0,Y.jsx)(x5,{step:e,deciding:p,onDecide:e=>void I(e)}):e?.spanId?(0,Y.jsx)(D5,{span:E.find(t=>t.id===e.spanId)??null,spans:E,onSelect:u,traceId:w.turn.traceId},e.spanId):null}):a===`messages`?(0,Y.jsx)(h5,{run:w}):a===`logs`?(0,Y.jsx)(m5,{run:w,onSelect:e=>{u(e),o(`waterfall`)}}):(0,Y.jsx)(g5,{agentId:e,run:w})]}),(0,Y.jsx)(Q3,{left:`${E.length} span${E.length===1?``:`s`} · trace ${w.turn.status}${T?` · live`:``}`,right:`session ${j} · times relative to run start`})]})}var H5=3e3;function U5({label:e,onClick:t,small:n=!1}){return(0,Y.jsxs)(`button`,{type:`button`,onClick:t,className:`flex items-center gap-1 text-[var(--sf-text-1)] hover:underline`,children:[(0,Y.jsx)(`span`,{className:n?`text-[11px] leading-normal`:`text-xs leading-[1.33333]`,children:e}),(0,Y.jsx)(Ge,{"aria-hidden":!0,className:`size-3`})]})}function W5({run:e,height:t=`h-2`,gap:n=`gap-[3px]`}){return e.spans.length===0?(0,Y.jsx)(`div`,{className:`${t} w-full rounded-xs border border-dashed border-[var(--sf-hairline-strong)]`,"aria-label":`No spans recorded`}):(0,Y.jsxs)(`div`,{className:`flex ${t} w-full ${n}`,children:[e.spans.map(e=>(0,Y.jsx)(`span`,{title:`${e.name} · ${C3(e.durationMs)}`,style:{flex:`${Math.max(1,e.durationMs??1)} 1 0%`},className:`block rounded-xs ${Y8(e)}`},e.id)),e.turn.status===`waiting`?(0,Y.jsx)(`span`,{style:{flex:`${Math.max(1,e.waitingMs)} 1 0%`},className:`block rounded-xs bg-[var(--sf-needs)] shadow-[0px_0px_6px_rgb(245,181,68)]`}):null]})}function G5(e){switch(e.turn.status){case`succeeded`:return{label:`Answered`,tone:`ok`};case`waiting`:return{label:`Waiting on you · ${C3(e.waitingMs)}`,tone:`needs`};case`running`:return{label:`Running`,tone:`running`};case`cancelled`:return{label:`Stopped`,tone:`muted`};default:return{label:e.turn.errorCode===`agent.guardrail_blocked`?`Blocked by guardrail`:`Failed`,tone:`fail`}}}var K5={ok:`text-[var(--sf-ok)]`,needs:`text-[var(--sf-needs)]`,fail:`text-[var(--sf-fail)]`,running:`text-[var(--sf-running)]`,muted:`text-[var(--sf-text-3)]`};function q5({run:e,onOpen:t}){let n=G5(e),r=e.spans.filter(e=>e.kind===`model`);return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2.5 rounded-lg border border-[var(--sf-hairline)] p-3`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[n.tone===`ok`?(0,Y.jsx)(G,{"aria-hidden":!0,className:`size-3.5 shrink-0 text-[var(--sf-ok)]`}):null,n.tone===`fail`?(0,Y.jsx)(je,{"aria-hidden":!0,className:`size-3.5 shrink-0 text-[var(--sf-fail)]`}):null,(0,Y.jsxs)(`span`,{className:`text-xs font-medium leading-[1.33333] text-[var(--sf-text-1)]`,children:[`Run #`,e.turn.seq]}),(0,Y.jsxs)(`span`,{className:`${$} truncate text-[11px] leading-normal text-[var(--sf-text-3)]`,children:[`trace …`,e.turn.traceId.slice(-4),` · `,e.spans.length,` span`,e.spans.length===1?``:`s`,` · `,C3(e.elapsedMs)]})]}),(0,Y.jsx)(U5,{label:`Open trace`,onClick:t})]}),(0,Y.jsx)(W5,{run:e,height:`h-1.5`,gap:`gap-px`}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[r.length>0?(0,Y.jsxs)(`span`,{className:`flex items-center gap-1 rounded-md bg-[var(--sf-running-bg)] px-1.5 py-0.5`,children:[(0,Y.jsx)(be,{"aria-hidden":!0,className:`size-3 text-[var(--sf-running)]`}),(0,Y.jsxs)(`span`,{className:`${$} text-[10px] leading-normal text-[var(--sf-text-1)]`,children:[String(r[0].attributes[`gen_ai.request.model`]??r[0].attributes[`gen_ai.system`]??`chat`),r.length>1?` ×${r.length}`:``]})]}):null,e.tokens>0?(0,Y.jsxs)(`span`,{className:`${$} rounded-md bg-[var(--sf-raised)] px-1.5 py-0.5 text-[10px] leading-normal text-[var(--sf-text-2)]`,children:[e.tokens.toLocaleString(),` tok`,e.turn.costUsd===null?``:` · ${S3(e.turn.costUsd)}`]}):null,e.turn.errorCode?(0,Y.jsx)(`span`,{className:`${$} rounded-md bg-[var(--sf-fail-bg)] px-1.5 py-0.5 text-[10px] leading-normal text-[var(--sf-fail)]`,children:e.turn.errorCode}):null]})]})}function J5({author:e,time:t,text:n,event:r,children:i}){return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2.5`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Y.jsx)(`span`,{className:`text-[13px] font-semibold leading-normal text-[var(--sf-text-1)]`,children:e}),(0,Y.jsx)(`span`,{className:`${$} text-[11px] leading-normal text-[var(--sf-text-3)]`,children:t})]}),(0,Y.jsx)(`div`,{className:`rounded-lg border border-[var(--sf-hairline)] bg-[var(--sf-panel)] p-4`,children:(0,Y.jsx)(`p`,{className:`whitespace-pre-wrap break-words text-[13px] leading-[1.7] text-[var(--sf-text-1)]`,children:n})}),r?(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(wt,{"aria-hidden":!0,className:`size-3 text-[var(--sf-text-3)]`}),(0,Y.jsx)(`span`,{className:`${$} rounded-sm border border-[var(--sf-hairline-strong)] px-1.5 text-[10px] leading-normal text-[var(--sf-text-2)]`,children:`gen_ai.user.message`}),(0,Y.jsx)(`span`,{className:`text-xs leading-[1.33333] text-[var(--sf-text-3)]`,children:r})]}):null,i]})}function Y5({approval:e,run:t,busy:n,onDecide:r,onOpen:i}){return(0,Y.jsxs)(`div`,{className:`flex flex-col overflow-clip rounded-lg border border-[#f5b54459] bg-[#f5b5440a]`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between border-b border-b-[#f5b54426] px-4 py-3`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(Ke,{"aria-hidden":!0,className:`size-3.5 text-[var(--sf-needs)]`}),(0,Y.jsx)(`span`,{className:`text-xs font-medium leading-[1.33333] text-[var(--sf-needs)]`,children:t?`Run #${t.turn.seq} is waiting on you`:`Waiting on you`}),t?(0,Y.jsxs)(`span`,{className:`${$} text-[11px] leading-normal text-[var(--sf-text-3)]`,children:[C3(t.workingMs),` working · `,C3(t.waitingMs),` waiting`]}):null]}),t?(0,Y.jsx)(U5,{label:`Open run`,onClick:i,small:!0}):null]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2 px-4 pt-3`,children:[(0,Y.jsxs)(`p`,{className:`text-[13px] font-medium leading-normal text-[var(--sf-text-1)]`,children:[`Allow `,(0,Y.jsx)(`span`,{className:$,children:e.tool}),`?`]}),(0,Y.jsx)(`pre`,{className:`${$} max-h-40 overflow-auto rounded-md bg-[var(--sf-rail)] p-2.5 text-[11px] leading-[1.6] text-[var(--sf-text-2)]`,children:JSON.stringify(e.payload,null,2)})]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 px-4 py-3`,children:[(0,Y.jsxs)(`button`,{type:`button`,disabled:n,onClick:()=>r(`approve`),className:`flex h-7 items-center gap-1.5 rounded-md bg-[var(--sf-text-1)] px-3 disabled:opacity-50`,children:[(0,Y.jsx)(G,{"aria-hidden":!0,className:`size-3.5 text-[var(--sf-ground)]`}),(0,Y.jsx)(`span`,{className:`text-xs font-medium leading-[1.33333] text-[var(--sf-ground)] ${z3}`,children:`Approve`})]}),(0,Y.jsx)(e6,{size:`sm`,disabled:n,icon:(0,Y.jsx)(St,{"aria-hidden":!0,className:`text-[var(--sf-fail)]`}),onClick:()=>r(`deny`),children:`Deny`}),(0,Y.jsxs)(`span`,{className:`ml-auto text-[11px] leading-normal text-[var(--sf-text-3)]`,children:[`Expires `,b3(e.expiresAt)]})]})]})}function X5({run:e,onOpen:t}){let n=G5(e),r=n.tone===`needs`;return(0,Y.jsxs)(`button`,{type:`button`,onClick:t,className:`flex flex-col gap-2.5 border-b border-b-[var(--sf-hairline)] px-6 py-4 text-left hover:bg-[var(--sf-panel)] ${r?`border-l-2 border-l-[var(--sf-needs)] bg-[#f5b5440a]`:``}`,children:[(0,Y.jsxs)(`div`,{className:`flex w-full items-center justify-between`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsxs)(`span`,{className:`text-[13px] font-medium leading-normal text-[var(--sf-text-1)]`,children:[`Run #`,e.turn.seq]}),(0,Y.jsx)(`span`,{className:`${$} text-[11px] leading-normal text-[var(--sf-text-3)]`,children:b3(e.turn.startedAt)})]}),(0,Y.jsxs)(`span`,{className:`flex items-center gap-1 text-[11px] font-medium leading-normal ${K5[n.tone]}`,children:[n.tone===`ok`?(0,Y.jsx)(G,{"aria-hidden":!0,className:`size-3`}):r?(0,Y.jsx)(Ke,{"aria-hidden":!0,className:`size-3`}):null,n.label]})]}),e.prompt?(0,Y.jsxs)(`p`,{className:`line-clamp-2 text-xs leading-normal text-[var(--sf-text-2)]`,children:[`“`,e.prompt.text,`”`]}):null,(0,Y.jsx)(W5,{run:e}),(0,Y.jsx)(`div`,{className:`flex w-full items-center justify-between`,children:(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(`span`,{className:`${$} text-[11px] leading-normal text-[var(--sf-text-2)]`,children:[C3(e.elapsedMs),e.tokens>0?`${x3(e.tokens)} tok`:null,e.turn.costUsd===null?null:S3(e.turn.costUsd)].filter(Boolean).join(` · `)}),e.turn.errorCode?(0,Y.jsxs)(`span`,{className:`flex items-center gap-1 rounded-md bg-[var(--sf-fail-bg)] px-1.5 py-0.5`,children:[(0,Y.jsx)(le,{"aria-hidden":!0,className:`size-3 text-[var(--sf-fail)]`}),(0,Y.jsx)(`span`,{className:`text-[11px] leading-normal text-[var(--sf-fail)]`,children:e.turn.errorCode})]}):null]})})]})}function Z5({detail:e,now:t}){let n=q8(e,t);if(!n)return null;let r=`w-[88px] shrink-0 text-[11px] leading-normal text-[var(--sf-text-3)]`;return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1.5`,"aria-label":`Session timeline`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,Y.jsx)(`span`,{className:r,children:`Messages`}),(0,Y.jsx)(`div`,{className:`relative h-3 flex-1`,children:n.messages.map((e,t)=>(0,Y.jsx)(`span`,{style:{left:`min(${e.at}%, calc(100% - 8px))`},className:`absolute top-0.5 block size-2 rounded-full ${e.user?`border border-[var(--sf-text-2)] bg-[var(--sf-ground)]`:`bg-[var(--sf-text-2)]`}`},t))})]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,Y.jsx)(`span`,{className:r,children:`Agent working`}),(0,Y.jsx)(`div`,{className:`relative h-4 flex-1 rounded-sm bg-[var(--sf-panel)]`,children:n.agent.map((e,t)=>(0,Y.jsx)(`span`,{style:{left:`${e.at}%`,width:`${e.width}%`},className:`absolute bottom-0.5 top-0.5 block rounded-xs ${e.failed?`bg-[var(--sf-fail)]`:e.live?`bg-[var(--sf-running)]`:`bg-[var(--sf-ok)]`}`},t))})]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,Y.jsx)(`span`,{className:`${r} ${z3}`,children:`Human gates`}),(0,Y.jsx)(`div`,{className:`relative h-4 flex-1 rounded-sm bg-[var(--sf-panel)]`,children:n.gates.map((e,t)=>(0,Y.jsx)(`span`,{style:{left:`${e.at}%`,width:`${e.width}%`},className:`absolute bottom-0.5 top-0.5 block rounded-xs bg-[var(--sf-needs)] ${e.open?`shadow-[0px_0px_8px_rgb(245,181,68)]`:`opacity-60`}`},t))})]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,Y.jsx)(`span`,{className:`block w-[88px] shrink-0`}),(0,Y.jsx)(`div`,{className:`flex flex-1 justify-between`,children:n.ticks.map((e,t)=>(0,Y.jsx)(`span`,{className:`${$} text-[10px] leading-normal text-[var(--sf-text-3)]`,children:e},t))})]})]})}function Q5({agent:e,sessionId:t}){let n=e.agent.id,[r,i]=(0,J.useState)(``),[a,o]=(0,J.useState)(null),[s,c]=(0,J.useState)(!1),[l,u]=(0,J.useState)(!1),[d,f]=(0,J.useState)(null),[p,m]=(0,J.useState)(`all`),[h,g]=(0,J.useState)(Date.now()),_=(0,J.useRef)(null),y=(0,J.useRef)(null),b=_8(t?`${n}/${t}`:null,()=>gD.session(n,t),{kind:`session`,pollMs:a?void 0:H5,active:e=>e.session.status===`running`||e.session.status===`waiting`}),{data:x,error:S,reload:C,setData:w}=b,T=x?.session.status===`running`||x?.session.status===`waiting`,E=_8(a&&!t&&d?`${n}/${d}`:null,()=>gD.session(n,d),{kind:`session`,pollMs:H5,active:()=>!0}),D=E.data,O=E.setData;(0,J.useEffect)(()=>{g(Date.now())},[b.updatedAt,E.updatedAt]),(0,J.useEffect)(()=>{y.current?.scrollIntoView({block:`end`})},[x?.messages.length,a?.reply]);let k=(0,J.useMemo)(()=>x?G8(x,h):[],[x,h]),A=(0,J.useMemo)(()=>x?K8(x,h):null,[x,h]);async function j(){let e=r.trim();if(!e||s)return;c(!0),i(``),o({prompt:e,reply:``});let a=new AbortController;_.current=a;let l=null;try{let r=await _D(n,{message:e,...t?{sessionId:t}:{}},{signal:a.signal,onDelta:e=>o(t=>t&&{...t,reply:t.reply+e}),onSession:e=>{l=e,f(e)}});w(r),g(Date.now()),t||Z(Pc(n,r.session.id))}catch(e){!t&&l&&Z(Pc(n,l)),a.signal.aborted||SD(e instanceof fD?e.message:`The agent could not reply`),C()}finally{_.current=null,o(null),f(null),c(!1)}}function M(){_.current?.abort()}async function P(e){let r=t??d;if(r){u(!0);try{let i=await gD.decide(n,r,e);t?w(i.session):O(i.session),SD(e===`approve`?`Approved`:`Denied`)}catch(e){SD(e instanceof fD?e.message:`Could not record the decision`),C()}finally{u(!1)}}}async function F(){if(t)try{let e=await gD.exportOtlp(n,t),r=URL.createObjectURL(e),i=document.createElement(`a`);i.href=r,i.download=`${t}.otlp.json`,i.click(),URL.revokeObjectURL(r)}catch{SD(`Export failed`)}}if(t&&!x)return(0,Y.jsx)(E8,{loading:!S,error:S,kind:`session`,missing:b.missing,onBack:()=>Z(Nc(n))});let I=x?.session??null,L=x?.pendingApproval??D?.pendingApproval??null,R=L?k.find(e=>e.turn.id===L.turnId):void 0,z=e=>t&&Z(Fc(n,t,String(e))),B=k.filter(e=>p===`errors`?e.turn.status===`failed`:p!==`waiting`||e.turn.status===`waiting`).reverse(),V=e.agent.enabled&&!s&&I?.status!==`running`&&I?.status!==`waiting`,H=I?.title??(a?.prompt||`New session`);return(0,Y.jsxs)(`div`,{className:V3,children:[(0,Y.jsxs)(`header`,{className:`flex shrink-0 flex-col gap-4 border-b border-b-[var(--sf-hairline)] px-7 py-5`,children:[(0,Y.jsx)(Qc,{items:[{label:`Agents`,onClick:()=>Z(jc())},{label:e.agent.name,onClick:()=>Z(Nc(n))},{label:`Sessions`,onClick:()=>Z(Nc(n))},{label:I?D3(I.id):`New`}]}),(0,Y.jsxs)(`div`,{className:`flex items-start justify-between gap-6`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-2.5`,children:[(0,Y.jsx)(`h1`,{className:`truncate text-2xl font-semibold leading-[1.33333] tracking-[-0.5px] text-[var(--sf-text-1)]`,children:H}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-4 gap-y-1`,children:[(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[I?.source===`web`?(0,Y.jsx)(Re,{"aria-hidden":!0,className:`size-3.5 text-[var(--sf-text-2)]`}):(0,Y.jsx)(N,{"aria-hidden":!0,className:`size-3.5 text-[var(--sf-text-2)]`}),(0,Y.jsx)(`span`,{className:`text-[13px] leading-normal text-[var(--sf-text-2)] ${z3}`,children:[I?.source===`web`&&I.sourceRef?`Visitor ${I.sourceRef.slice(0,8)}`:I?.sourceRef,T3(I?.source??`console`)].filter(Boolean).join(` · `)})]}),I?(0,Y.jsxs)(`span`,{className:`${$} text-[11px] leading-normal text-[var(--sf-text-3)] ${z3}`,children:[`gen_ai.conversation.id `,I.id]}):null,(0,Y.jsxs)(`span`,{className:`${$} text-[11px] leading-normal text-[var(--sf-text-3)] ${z3}`,children:[`gen_ai.agent.name `,n,` · config v`,I?.revision??e.agent.revision]})]})]}),(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[R?(0,Y.jsxs)(`span`,{className:`flex h-7 items-center gap-1.5 rounded-md bg-[#f5b5441f] px-2`,children:[(0,Y.jsx)(`span`,{className:`block size-1.5 rounded-full bg-[var(--sf-needs)] shadow-[0px_0px_6px_rgb(245,181,68)]`}),(0,Y.jsxs)(`span`,{className:`text-xs font-medium leading-[1.33333] text-[var(--sf-needs)] ${z3}`,children:[`Run #`,R.turn.seq,` waiting on you`]})]}):null,I?(0,Y.jsx)(`span`,{className:`ml-2`,children:(0,Y.jsx)(e6,{icon:(0,Y.jsx)(v,{"aria-hidden":!0,className:`text-[var(--sf-text-2)]`}),onClick:()=>void F(),disabled:x?.spans.length===0,children:`Export session traces`})}):null]})]})]}),(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto`,children:[A&&A.runs>0?(0,Y.jsxs)(`div`,{className:`flex shrink-0 flex-col gap-4 border-b border-b-[var(--sf-hairline)] px-7 py-4`,children:[(0,Y.jsx)(`div`,{className:`grid grid-cols-2 gap-5 md:grid-cols-4 xl:grid-cols-7`,children:[{label:`Runs`,value:String(A.runs),detail:`${A.runsDone} done${A.runsWaiting?` · ${A.runsWaiting} waiting on you`:``}${A.runsFailed?` · ${A.runsFailed} failed`:``}`},{label:`Eval average`,value:A.evalAverage===null?`—`:A.evalAverage.toFixed(2),detail:A.evalAverage===null?`no evals recorded`:`across scored runs`},{label:`Tool calls`,value:String(A.toolCalls),detail:A.toolErrors?`${A.toolErrors} error${A.toolErrors===1?``:`s`}`:`no errors`},{label:`Tokens`,value:(A.inputTokens+A.outputTokens).toLocaleString(),detail:`${A.inputTokens.toLocaleString()} in · ${A.outputTokens.toLocaleString()} out`},{label:`Cost`,value:S3(A.cost),detail:A.cost===null?`provider didn't report`:`reported by the provider`},{label:`Agent working`,value:C3(A.workingMs),detail:`of ${C3(A.sessionMs)} session`},{label:`Waiting on people`,value:C3(A.waitingMs),detail:L?`1 open gate`:`no open gates`}].map(e=>(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1`,children:[(0,Y.jsx)(`span`,{className:`text-xs leading-[1.33333] text-[var(--sf-text-3)]`,children:e.label}),(0,Y.jsx)(`span`,{className:`${$} text-lg leading-[1.55556] text-[var(--sf-text-1)]`,children:e.value}),(0,Y.jsx)(`span`,{className:`text-[11px] leading-normal text-[var(--sf-text-3)]`,children:e.detail})]},e.label))}),x?(0,Y.jsx)(Z5,{detail:x,now:h}):null]}):null,(0,Y.jsxs)(`div`,{className:`flex flex-1 flex-col lg:flex-row`,children:[(0,Y.jsxs)(`div`,{className:`flex w-full shrink-0 flex-col border-r border-r-[var(--sf-hairline)] lg:w-[55%]`,children:[(0,Y.jsxs)(`div`,{className:`flex h-12 shrink-0 items-center justify-between border-b border-b-[var(--sf-hairline)] px-7`,children:[(0,Y.jsx)(`span`,{className:`text-sm font-medium leading-[1.42857] text-[var(--sf-text-1)]`,children:`Conversation`}),(0,Y.jsx)(`span`,{className:`text-xs leading-[1.33333] text-[var(--sf-text-3)]`,children:x?`${x.messages.length} message${x.messages.length===1?``:`s`} · ${k.length} run${k.length===1?``:`s`}`:`No messages yet`})]}),(0,Y.jsxs)(`div`,{className:`flex flex-1 flex-col gap-6 px-7 py-5`,children:[k.map(t=>(0,Y.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[t.prompt?(0,Y.jsx)(J5,{author:t.prompt.author??`You`,time:b3(t.prompt.createdAt),text:t.prompt.text,event:`started Run #${t.turn.seq} · trace …${t.turn.traceId.slice(-4)}`}):null,t.reply?(0,Y.jsx)(J5,{author:e.agent.name,time:b3(t.reply.createdAt),text:t.reply.text,children:(0,Y.jsx)(q5,{run:t,onOpen:()=>z(t.turn.seq)})}):t.turn.status!==`running`&&t.turn.status!==`waiting`?(0,Y.jsx)(q5,{run:t,onOpen:()=>z(t.turn.seq)}):null]},t.turn.id)),a?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(J5,{author:`You`,time:`now`,text:a.prompt}),(0,Y.jsx)(J5,{author:e.agent.name,time:`…`,text:a.reply||`…`})]}):null,L?(0,Y.jsx)(Y5,{approval:L,run:R,busy:l,onDecide:e=>void P(e),onOpen:()=>R&&z(R.turn.seq)}):null,!x&&!a?(0,Y.jsx)(`p`,{className:`text-[13px] leading-[1.6] text-[var(--sf-text-2)]`,children:e.definition?.greeting??`Start a conversation with ${e.agent.name}.`}):null,(0,Y.jsx)(`div`,{ref:y})]}),(0,Y.jsx)(`div`,{className:`shrink-0 border-t border-t-[var(--sf-hairline)] px-7 py-4`,children:e.agent.enabled?(0,Y.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),j()},className:`flex items-end gap-2 rounded-xl border border-[var(--sf-hairline-strong)] bg-[var(--sf-panel)] px-3 py-2.5`,children:[(0,Y.jsx)(`textarea`,{value:r,rows:1,disabled:!V&&!s,onChange:e=>i(e.target.value),onKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),j())},placeholder:I?.status===`waiting`?`Answer the approval above to continue`:`Message ${e.agent.name}…`,"aria-label":`Message this agent`,className:`min-h-6 flex-1 resize-none border-0 bg-transparent p-0 text-[13px] leading-normal text-[var(--sf-text-1)] outline-none placeholder:text-[var(--sf-text-3)] disabled:opacity-60`}),s&&a?(0,Y.jsx)(`button`,{type:`button`,"aria-label":`Stop`,onClick:M,className:`flex size-6 items-center justify-center rounded-md bg-[var(--sf-raised)] text-[var(--sf-text-2)]`,children:(0,Y.jsx)(Ce,{"aria-hidden":!0,className:`size-3`})}):(0,Y.jsx)(`button`,{type:`submit`,"aria-label":`Send`,disabled:!r.trim()||!V,className:`flex size-6 items-center justify-center rounded-md bg-[var(--sf-text-1)] text-[var(--sf-ground)] disabled:bg-[var(--sf-raised)] disabled:text-[var(--sf-text-2)]`,children:(0,Y.jsx)(Ae,{"aria-hidden":!0,className:`size-3.5`})})]}):(0,Y.jsx)(`p`,{className:`text-xs leading-[1.33333] text-[var(--sf-text-3)]`,children:`This agent is disabled. Enable it to continue the conversation.`})})]}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,Y.jsxs)(`div`,{className:`flex h-12 shrink-0 items-center justify-between border-b border-b-[var(--sf-hairline)] px-6`,children:[(0,Y.jsx)(`span`,{className:`text-sm font-medium leading-[1.42857] text-[var(--sf-text-1)]`,children:`Traces in this session`}),(0,Y.jsx)(`div`,{className:`flex items-center gap-1`,children:[{id:`all`,label:`All ${k.length}`},{id:`errors`,label:`With errors ${k.filter(e=>e.turn.status===`failed`).length}`},{id:`waiting`,label:`Waiting on you ${k.filter(e=>e.turn.status===`waiting`).length}`}].map(e=>(0,Y.jsx)(`button`,{type:`button`,onClick:()=>m(e.id),className:`rounded-md border px-2 py-0.5 text-[11px] leading-normal ${z3} ${p===e.id?`border-[var(--sf-hairline-strong)] bg-[var(--sf-raised)] text-[var(--sf-text-1)]`:`border-transparent ${e.id===`waiting`?`text-[var(--sf-needs)]`:`text-[var(--sf-text-2)]`}`}`,children:e.label},e.id))})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col`,children:[B.map(e=>(0,Y.jsx)(X5,{run:e,onOpen:()=>z(e.turn.seq)},e.turn.id)),k.length===0?(0,Y.jsx)(`p`,{className:`px-6 py-4 text-xs text-[var(--sf-text-3)]`,children:`Runs appear here as the agent replies.`}):null,k.length>0?(0,Y.jsx)(`p`,{className:`px-6 py-3 text-[11px] leading-normal text-[var(--sf-text-3)]`,children:`Each block is one step, sized by duration. Blue model · teal tool · violet sub-agent · pink guardrail · amber human gate · red error.`}):null]})]})]})]}),(0,Y.jsx)(Q3,{left:T?`Live · updates every ${H5/1e3} s`:I?`Last activity ${b3(I.updatedAt)}`:`New session`,right:`Capture: ${e.definition?.observability.capture===`full`?`full content`:e.definition?.observability.capture===`off`?`off`:`timing only`}`})]})}function $5({agentId:e,sessionId:t}){let{detail:n,loading:r,error:i,missing:a}=v8(e);return n?(0,Y.jsx)(Q5,{agent:n,sessionId:t===`new`?null:t},t):(0,Y.jsx)(E8,{loading:r,error:i,missing:a})}function e7({agentId:e,sessionId:t,runId:n,screen:r}){return r===`create`?(0,Y.jsx)(T8,{}):!e||r===`directory`?(0,Y.jsx)(T6,{onNewAgent:()=>Z(Mc())}):r===`edit`?(0,Y.jsx)(B8,{agentId:e},e):r===`session`&&t?(0,Y.jsx)($5,{agentId:e,sessionId:t},`${e}:${t}`):r===`run`&&t&&n?(0,Y.jsx)(V5,{agentId:e,sessionId:t,runId:n},`${e}:${t}:${n}`):(0,Y.jsx)(L8,{agentId:e},e)}var t7=`agents`,n7={connect:`settings`,detail:`runs`,new:`inbox`,pipeline:`pipelines`,workshop:`pipelines`,task:`tasks`,trigger:`triggers`,connection:`connections`,memories:`memories`,memory:`memories`,agentSessions:`agent-sessions`,agents:t7,agentCreate:t7,agent:t7,agentSession:t7,agentRun:t7},r7={catalog:`catalog`,stage:`catalog`,skill:`catalog`,skills:`catalog`,extensions:`catalog`,extensionPackage:`catalog`,extensionFile:`catalog`},i7={skill:`skills`,extensionPackage:`extensions`,extensionFile:`extensions`};function a7(e,t){return n7[e.name]??(t?r7:i7)[e.name]??e.name}function o7(e){switch(e.name){case`agents`:return{screen:`directory`};case`agentCreate`:return{screen:`create`};case`agent`:return{screen:e.screen,agentId:e.agentId};case`agentSession`:return{screen:`session`,agentId:e.agentId,sessionId:e.sessionId};case`agentRun`:return{screen:`run`,agentId:e.agentId,sessionId:e.sessionId,runId:e.runId};default:return null}}var s7=`grid grid-cols-[minmax(0,1fr)_150px_96px_130px_50px_70px_70px_96px] items-center gap-4 px-7 min-w-[1040px]`,c7=25,l7=5e3,u7=[`web`,`console`,`cli`,`mcp`,`schedule`,`slack`,`email`,`telegram`,`photon`,`imessage`,`agentmail`];function d7({stats:e}){let t=e.turnsFinished7d>0?`${Math.round(e.turnsSucceeded7d/e.turnsFinished7d*100)}%`:`—`;return(0,Y.jsx)(`div`,{className:`grid grid-cols-2 gap-6 border-b border-b-[var(--sf-hairline)] px-7 py-5 md:grid-cols-4`,children:[{label:`Active sessions`,value:String(e.active)},{label:`Sessions this week`,value:String(e.last7Days)},{label:`Run success rate`,value:t},{label:`Estimated cost`,value:S3(e.cost7d)}].map(e=>(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Y.jsx)(`span`,{className:`text-xs leading-normal text-[var(--sf-text-3)]`,children:e.label}),(0,Y.jsx)(`span`,{className:`${$} text-[22px] font-medium leading-normal text-[var(--sf-text-1)]`,children:e.value})]},e.label))})}function f7(){let[e,t]=(0,J.useState)([]),[n,r]=(0,J.useState)(``),[i,a]=(0,J.useState)(``),[o,s]=(0,J.useState)(``),[c,l]=(0,J.useState)(``),[u,d]=(0,J.useState)(``),[f,p]=(0,J.useState)(null),[m,h]=(0,J.useState)(null),[g,_]=(0,J.useState)(null),[v,y]=(0,J.useState)(null);(0,J.useEffect)(()=>{gD.list().then(t,()=>t([]))},[]),(0,J.useEffect)(()=>{let e=window.setTimeout(()=>d(c.trim()),250);return()=>window.clearTimeout(e)},[c]);let b=(0,J.useMemo)(()=>new Map(e.map(e=>[e.id,e.name])),[e]),x=(0,J.useCallback)(async e=>{try{let t=await gD.allSessions({limit:c7,...n?{agent:n}:{},...i?{status:i}:{},...o?{source:o}:{},...u?{q:u}:{},...e?{cursor:e}:{}});p(n=>e&&n?[...n,...t.sessions]:t.sessions),_(t.nextCursor),h(t.stats),y(null)}catch(e){y(e instanceof Error?e.message:`Could not load sessions`)}},[n,i,o,u]);(0,J.useEffect)(()=>{x()},[x]);let S=(m?.active??0)>0;return(0,J.useEffect)(()=>{if(!S)return;let e=window.setInterval(()=>{document.visibilityState!==`hidden`&&x()},l7);return()=>window.clearInterval(e)},[S,x]),(0,Y.jsxs)(`div`,{className:V3,children:[(0,Y.jsx)($c,{crumbs:[{label:`Activity`},{label:`Agent sessions`}],title:`Agent sessions`,description:`Every conversation your agents are having or have had, across all channels.`}),m?(0,Y.jsx)(d7,{stats:m}):null,(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3 px-7 py-4`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,Y.jsx)(`div`,{className:`w-48`,children:(0,Y.jsx)(f6,{value:n,ariaLabel:`Agent`,onChange:r,options:[{value:``,label:`All agents`},...e.map(e=>({value:e.id,label:e.name}))]})}),(0,Y.jsx)(`div`,{className:`w-40`,children:(0,Y.jsx)(f6,{value:i,ariaLabel:`Status`,onChange:a,options:[{value:``,label:`All statuses`},{value:`open`,label:`Open`},{value:`running`,label:`Running`},{value:`waiting`,label:`Waiting on you`},{value:`held`,label:`Held`}]})}),(0,Y.jsx)(`div`,{className:`w-40`,children:(0,Y.jsx)(f6,{value:o,ariaLabel:`Source`,onChange:s,options:[{value:``,label:`All sources`},...u7.map(e=>({value:e,label:T3(e)}))]})})]}),(0,Y.jsx)(`input`,{type:`search`,value:c,"aria-label":`Search sessions`,onChange:e=>l(e.target.value),placeholder:`Search sessions or messages…`,className:`h-8 w-[260px] rounded-lg border border-[var(--sf-hairline-strong)] bg-transparent px-3 text-xs leading-normal text-[var(--sf-text-1)] outline-none placeholder:text-[var(--sf-text-3)]`})]}),v?(0,Y.jsxs)(`p`,{className:`flex items-center gap-2 px-7 py-3 text-xs text-[var(--sf-fail)]`,children:[(0,Y.jsx)(je,{"aria-hidden":!0,className:`size-3`}),v]}):null,(0,Y.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-auto`,children:[(0,Y.jsx)(`div`,{className:`${s7} h-10`,children:[`Session`,`Agent`,`Source`,`Latest run`,`Runs`,`Tokens`,`Est. cost`,`Updated`].map(e=>(0,Y.jsx)(`span`,{className:`text-[11px] uppercase leading-normal tracking-[0.7px] text-[var(--sf-text-3)]`,children:e},e))}),f===null?(0,Y.jsx)(`p`,{className:`border-t border-t-[var(--sf-hairline)] px-7 py-6 text-xs text-[var(--sf-text-3)]`,children:`Loading sessions…`}):f.length===0?(0,Y.jsx)(`p`,{className:`border-t border-t-[var(--sf-hairline)] px-7 py-6 text-xs text-[var(--sf-text-3)]`,children:n||i||o||u?`No sessions match these filters.`:`No agent sessions yet. They appear when someone messages an agent.`}):f.map(e=>{let t=D8(e),n=()=>Z(Pc(e.agentId,e.id));return(0,Y.jsxs)(`div`,{role:`link`,tabIndex:0,onClick:n,onKeyDown:e=>{e.key===`Enter`&&n()},className:`${s7} min-h-[72px] cursor-pointer border-t border-t-[var(--sf-hairline)] outline-none hover:bg-[var(--sf-panel)] focus-visible:bg-[var(--sf-panel)]`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1.5`,children:[(0,Y.jsx)(`span`,{className:`truncate text-[13px] font-medium leading-normal text-[var(--sf-text-1)]`,children:e.title??`New session`}),(0,Y.jsx)(`span`,{className:`truncate text-xs leading-normal text-[var(--sf-text-3)]`,children:E3(e)})]}),(0,Y.jsx)(`span`,{className:`truncate text-xs leading-normal text-[var(--sf-text-2)]`,children:b.get(e.agentId)??e.agentId}),(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5 text-xs leading-normal text-[var(--sf-text-2)]`,children:[e.source===`web`?(0,Y.jsx)(Re,{"aria-hidden":!0,className:`size-3 shrink-0`}):null,T3(e.source)]}),(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5 text-xs leading-normal ${t.color}`,children:[(0,Y.jsx)(`span`,{"aria-hidden":!0,children:t.symbol}),(0,Y.jsx)(`span`,{children:t.label})]}),(0,Y.jsx)(`span`,{className:`${$} text-xs leading-normal text-[var(--sf-text-2)]`,children:e.turnCount}),(0,Y.jsx)(`span`,{className:`${$} text-xs leading-normal text-[var(--sf-text-2)]`,children:x3(e.inputTokens+e.outputTokens)}),(0,Y.jsx)(`span`,{className:`${$} text-xs leading-normal text-[var(--sf-text-2)]`,children:S3(e.costUsd)}),(0,Y.jsx)(`span`,{className:`${$} text-xs leading-normal text-[var(--sf-text-2)]`,children:y3(e.updatedAt)})]},e.id)}),g?(0,Y.jsx)(`div`,{className:`flex justify-center border-t border-t-[var(--sf-hairline)] py-4`,children:(0,Y.jsx)(e6,{onClick:()=>void x(g),children:`Load more`})}):null]}),(0,Y.jsx)(Q3,{left:m?`${m.total} sessions · ${m.active} active`:``})]})}var p7=1e4;function m7(){let[e,t]=(0,J.useState)(0);return(0,J.useEffect)(()=>{let e=!0,n=()=>{gD.allSessions({limit:1}).then(n=>e&&t(n.stats.active)).catch(()=>e&&t(0))};n();let r=window.setInterval(()=>{document.visibilityState!==`hidden`&&n()},p7);return()=>{e=!1,window.clearInterval(r)}},[]),e}function h7(e){let t=xB(e).split(`/`).pop()??e;return t.replace(/\.ya?ml$/i,``)||t}function g7({stagePath:e,projectRoot:t}){let n=xB(e),r=h7(n),i=(0,J.useMemo)(()=>({id:r,path:`${n}.stage-editor.pipeline.yaml`,stages:[{id:r,uses_path:n}],...t?{project_root:t}:{}}),[n,t,r]);return(0,Y.jsx)(xH,{mode:`stage`,pipelineId:r,pipeline:i,tasks:[],stagePath:n,projectRoot:t,onNew:()=>{}})}function _7({rail:e,children:t}){return(0,Y.jsxs)(`div`,{className:`sf-app grid h-screen grid-cols-[232px_1fr] bg-[var(--sf-ground)] font-['Geist',sans-serif] text-[var(--sf-text-1)]`,children:[e,(0,Y.jsx)(`main`,{className:`h-screen min-w-0 overflow-y-auto bg-[var(--sf-ground)]`,children:t})]})}var v7=[{items:[{id:`overview`,label:`Overview`,href:`#/overview`,icon:qe},{id:`inbox`,label:`Inbox`,href:`#/inbox`,icon:We,badge:`waiting`}]},{label:`Activity`,items:[{id:`runs`,label:`Pipeline runs`,href:`#/runs`,icon:gt,badge:`inFlight`},{id:`agent-sessions`,label:`Agent sessions`,href:`#/agent-sessions`,icon:Be,badge:`agentsActive`}]},{label:`Build`,items:[{id:`pipelines`,label:`Pipelines`,href:`#/pipelines`,icon:et},{id:`agents`,label:`Agents`,href:`#/agents`,icon:mt},{id:`tasks`,label:`Tasks`,href:`#/tasks`,icon:gt},{id:`catalog`,label:`Catalog`,href:`#/catalog?tab=stages`,icon:ot}]},{label:`Connect`,items:[{id:`triggers`,label:`Triggers`,href:`#/triggers`,icon:be},{id:`connections`,label:`Connections`,href:`#/connections`,icon:re},{id:`memories`,label:`Memories`,href:`#/memories`,icon:me}]}],y7=`sf.pinnedPipelines.v1`;function b7(){try{let e=localStorage.getItem(y7);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>typeof e==`string`&&e.length>0):[]}catch{return[]}}function x7(){let[e,t]=(0,J.useState)(b7);return(0,J.useEffect)(()=>{let e=()=>t(b7());return window.addEventListener(`storage`,e),()=>window.removeEventListener(`storage`,e)},[]),e}var S7=[`bg-[var(--sf-needs)]`,`bg-[var(--sf-running)]`,`bg-[#3a3d44]`];function C7({activeId:e,onNavigate:t,waitingCount:n=0,inFlightCount:r=0,agentActiveCount:i=0,health:a,workspaceName:o,workspaceSubtitle:s,heldWaitingCount:c=0,onOpenPalette:l}){let u=x7(),d=JO(),f=a?YO(a,c):[],p=ZO(c),m=d.failed?` text-[var(--sf-fail)]`:d.loading?` text-[var(--sf-text-3)]`:d.connectedCount>0?` text-[var(--sf-ok)]`:` text-[var(--sf-text-3)]`;return(0,Y.jsxs)(`nav`,{className:`flex h-screen w-[232px] shrink-0 flex-col gap-1 overflow-y-auto border-r border-r-[#ffffff0f] bg-[var(--sf-rail)] px-3 py-3.5 font-['Geist',sans-serif]`,"aria-label":`App`,children:[(0,Y.jsxs)(`div`,{className:`flex w-full flex-col gap-3 pb-3 pt-0`,children:[(0,Y.jsxs)(`div`,{className:`flex h-9 items-center gap-2.5 rounded-lg px-1.5`,children:[(0,Y.jsxs)(`div`,{className:`flex size-6 shrink-0 flex-col items-center justify-center gap-[3px] rounded-md border border-[#ffffff14] bg-[var(--sf-raised)]`,"aria-hidden":`true`,children:[(0,Y.jsx)(`span`,{className:`block size-[5px] rounded-full bg-[var(--sf-needs)] shadow-[0px_0px_6px_rgba(245,181,68,0.8)]`}),(0,Y.jsx)(`span`,{className:`block size-[5px] rounded-full bg-[#3a3d44]`})]}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,Y.jsx)(`span`,{className:`truncate text-[13px] font-semibold leading-[1.2] text-[var(--sf-text-1)]`,children:o}),s?(0,Y.jsx)(`span`,{className:`truncate font-['Geist_Mono',monospace] text-xs leading-[1.3] text-[var(--sf-text-3)]`,title:s,children:s}):null]}),(0,Y.jsx)(ee,{className:`size-3.5 shrink-0 text-[var(--sf-text-3)]`,"aria-hidden":`true`})]}),(0,Y.jsxs)(`button`,{type:`button`,className:`flex h-8 items-center gap-2 rounded-lg border border-[#ffffff12] bg-[var(--sf-panel)] px-2.5 text-left`,onClick:()=>l?.(),title:`Command palette`,children:[(0,Y.jsx)(Oe,{className:`size-3.5 text-[var(--sf-text-3)]`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`flex-1 truncate text-[13px] text-[var(--sf-text-3)]`,children:`Search or run…`}),(0,Y.jsx)(Nl,{children:`⌘K`})]}),(0,Y.jsxs)(`a`,{className:`flex h-8 items-center justify-center gap-2 rounded-lg bg-[var(--sf-text-1)] text-[13px] font-medium text-[var(--sf-ground)] no-underline`,href:`#/new`,onClick:e=>{e.preventDefault(),t(`new`)},children:[(0,Y.jsx)(se,{className:`size-3.5`,"aria-hidden":`true`}),`Start a run`]})]}),(0,Y.jsxs)(`div`,{className:`flex w-full flex-1 flex-col gap-0.5`,children:[v7.map((a,o)=>(0,Y.jsxs)(`div`,{children:[a.label?(0,Y.jsx)(`div`,{className:`px-2.5 py-1.5 text-[11px] font-medium uppercase tracking-[0.88px] text-[var(--sf-text-3)]${o>0?` pt-3.5 pb-1.5`:``}`,children:a.label}):o>0?(0,Y.jsx)(`div`,{className:`h-2`}):null,a.items.map(a=>{let o=e===a.id,s=a.icon;return(0,Y.jsxs)(`a`,{className:`flex h-8 items-center gap-2.5 rounded-lg px-2.5 no-underline${o?` bg-[var(--sf-active)]`:``}${a.soon?` opacity-60`:``}`,href:a.href,"aria-current":o?`page`:void 0,"aria-disabled":a.soon?!0:void 0,onClick:e=>{if(a.soon){e.preventDefault();return}e.preventDefault(),t(a.id)},children:[(0,Y.jsx)(s,{className:`size-4 shrink-0${o?` text-[var(--sf-text-1)]`:` text-[var(--sf-text-3)]`}`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-[13px]${o?` font-medium text-[var(--sf-text-1)]`:a.soon?` text-[var(--sf-text-3)]`:` text-[var(--sf-text-2)]`}`,children:a.label}),a.soon?(0,Y.jsx)(`span`,{className:`rounded-sm border border-dashed border-[#ffffff2e] px-[5px] text-[11px] text-[var(--sf-text-3)]`,children:`Soon`}):null,a.badge===`waiting`&&n>0?(0,Y.jsx)(`span`,{className:`rounded-full bg-[var(--sf-needs)] px-1.5 py-px font-['Geist_Mono',monospace] text-[11px] font-semibold text-[#1a1306] shadow-[0px_0px_10px_rgba(245,181,68,0.45)]`,children:n}):null,a.badge===`inFlight`&&r>0?(0,Y.jsxs)(`span`,{className:`flex items-center gap-[5px]`,children:[(0,Y.jsx)(`span`,{className:`block size-1.5 rounded-full bg-[var(--sf-running)]`}),(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace] text-xs text-[var(--sf-running)]`,children:r})]}):null,a.badge===`agentsActive`&&i>0?(0,Y.jsxs)(`span`,{className:`flex items-center gap-[5px]`,children:[(0,Y.jsx)(`span`,{className:`block size-1.5 rounded-full bg-[var(--sf-running)]`}),(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace] text-xs text-[var(--sf-running)]`,children:i})]}):null]},a.id)})]},a.label??`pinned`)),u.length>0?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{className:`px-2.5 pb-1.5 pt-3.5 text-[11px] font-medium uppercase tracking-[0.88px] text-[var(--sf-text-3)]`,children:`Pinned pipelines`}),u.map((e,n)=>(0,Y.jsxs)(`a`,{className:`flex h-[30px] items-center gap-2.5 rounded-lg px-2.5 no-underline`,href:`#/pipelines/${encodeURIComponent(e)}`,title:e,onClick:n=>{n.preventDefault(),t(`pipelines/${e}`)},children:[(0,Y.jsx)(`span`,{className:`block size-1.5 rounded-full ${S7[n%S7.length]}`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`min-w-0 truncate font-['Geist_Mono',monospace] text-[13px] text-[var(--sf-text-2)]`,children:e})]},e))]}):null]}),(0,Y.jsxs)(`div`,{className:`flex w-full flex-col gap-2.5 border-t border-t-[#ffffff0f] pt-3`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2 px-2.5`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Y.jsx)(`span`,{className:`text-xs text-[var(--sf-text-2)]`,children:`Agent slots`}),a?(0,Y.jsxs)(`span`,{className:`font-['Geist_Mono',monospace] text-xs text-[var(--sf-text-1)]`,children:[a.activeCount,` / `,a.maxConcurrent]}):(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace] text-xs text-[var(--sf-text-3)]`,children:`—`})]}),a?(0,Y.jsx)(`div`,{className:`flex gap-[3px]`,"aria-hidden":`true`,children:f.map((e,t)=>(0,Y.jsx)(`span`,{className:`block h-1 flex-1 rounded-full ${XO(e)}`},t))}):null,p?(0,Y.jsx)(`p`,{className:`text-xs leading-[1.35] text-[var(--sf-text-3)]`,children:p}):null]}),(0,Y.jsxs)(`a`,{className:`flex h-[30px] items-center gap-2 rounded-lg px-2.5 no-underline`,href:`#/settings`,title:`Provider settings`,onClick:e=>{e.preventDefault(),t(`settings`)},children:[(0,Y.jsx)(re,{className:`size-3.5 shrink-0${m}`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-xs text-[var(--sf-text-2)]`,children:d.loading?`Checking providers…`:d.label}),(0,Y.jsx)(rt,{className:`size-3.5 shrink-0 text-[var(--sf-text-3)]`,"aria-hidden":`true`})]})]})]})}var w7=`fixed inset-0 z-[200] flex flex-col items-center bg-[rgba(4,5,6,0.66)] px-0`,T7=`pt-[140px] pb-0`,E7=`pt-11 pb-0`;function D7(e){(0,J.useEffect)(()=>{if(!e)return;let t=document.documentElement;t.setAttribute(`data-sf-overlay`,``);let n=document.body.style.overflow;return document.body.style.overflow=`hidden`,()=>{t.removeAttribute(`data-sf-overlay`),document.body.style.overflow=n}},[e])}var O7=[{id:`overview`,label:`Overview`,path:`/overview`},{id:`inbox`,label:`Inbox`,path:`/inbox`},{id:`runs`,label:`Pipeline runs`,path:`/runs`},{id:`agent-sessions`,label:`Agent sessions`,path:`/agent-sessions`},{id:`agents`,label:`Agents`,path:`/agents`},{id:`pipelines`,label:`Pipelines`,path:`/pipelines`},{id:`workshop`,label:`Workshop`,path:`/workshop`},{id:`tasks`,label:`Tasks`,path:`/tasks`},{id:`catalog`,label:`Catalog`,path:`/catalog?tab=stages`},{id:`triggers`,label:`Triggers`,path:`/triggers`},{id:`memories`,label:`Memories`,path:`/memories`},{id:`settings`,label:`Settings`,path:`/settings`}];function k7(e){return e.trim().toLowerCase()}function A7(e,t){if(!t)return 1;let n=e.toLowerCase();if(n===t)return 100;if(n.startsWith(t))return 80;if(n.includes(t))return 50;let r=t.split(/\s+/).filter(Boolean);return r.length>1&&r.every(e=>n.includes(e))?40:0}function j7(e){let t=Ss(e);return t.startsWith(`run_`)?t:`run_${t}`}function M7(e,t){let n=[{id:`action-start-run`,group:`actions`,label:`Start a run`,context:`New task + pipeline`,keywords:`start run new`,score:90,run:()=>e.onStartRun()}];if(e.firstWaitingRunId){let r=t.find(t=>t.run_id===e.firstWaitingRunId),i=r?es(r):``,a=r?.waiting_stage_id??``,o=[j7(e.firstWaitingRunId),i||a].filter(Boolean).join(` · `);n.push({id:`action-answer-gate`,group:`actions`,label:`Answer next gate`,context:o,keywords:`answer gate inbox waiting`,score:95,run:()=>e.onNavigate(`/runs/${encodeURIComponent(e.firstWaitingRunId)}`)})}if(e.firstBrokenRunId){let r=t.find(t=>t.run_id===e.firstBrokenRunId),i=r?es(r):``,a=r?.failed_stage_id??``,o=[j7(e.firstBrokenRunId),i||a].filter(Boolean).join(` · `);n.push({id:`action-retry-failed`,group:`actions`,label:`Retry failed stage`,context:o,keywords:`retry failed broken`,score:70,run:()=>{e.onRetryBroken?e.onRetryBroken(e.firstBrokenRunId):e.onNavigate(`/runs/${encodeURIComponent(e.firstBrokenRunId)}`)}})}return n}function N7(e,t,n){let r=[];for(let i of e){let e=es(i),a=qs(js(i)),o=[i.run_id,Ss(i.run_id),j7(i.run_id),i.task_id,i.pipeline_id,i.waiting_summary??``,e,a].join(` `),s=A7(o,t);s<=0&&t||r.push({id:`run-${i.run_id}`,group:`runs`,label:e,context:`${i.pipeline_id} · ${a}`,keywords:o,score:s||(t?0:10),run:()=>n(`/runs/${encodeURIComponent(i.run_id)}`)})}return r}function P7(e,t,n){let r=[];for(let i of e){let e=[i.id,i.path,...i.stages.map(e=>e.id)].join(` `),a=A7(e,t);a<=0&&t||r.push({id:`pipeline-${i.path}`,group:`pipelines`,label:i.id,context:`${i.stages.length} stages`,keywords:e,score:a||(t?0:8),run:()=>n(`/pipelines/${encodeURIComponent(i.id)}`)})}return r}function F7(e,t){return O7.map(n=>{let r=A7(`${n.label} ${n.id}`,e);return{id:`nav-${n.id}`,group:`navigation`,label:n.label,context:n.path,keywords:n.label,score:r||(e?0:5),run:()=>t(n.path)}}).filter(t=>t.score>0||!e)}function I7(e){let t=k7(e.query),n=M7(e.ctx,e.snapshot.runs).map(e=>({...e,score:t?A7(`${e.label} ${e.keywords??``}`,t):e.score})).filter(e=>e.score>0||!t),r=N7(e.snapshot.runs.slice(0,80),t,e.ctx.onNavigate),i=P7(e.pipelines,t,e.ctx.onNavigate),a=F7(t,e.ctx.onNavigate),o=[...n,...r,...i,...a];if(o.sort((e,t)=>t.score-e.score),!t){let e=[`actions`,`navigation`,`runs`,`pipelines`],t=e=>o.filter(t=>t.group===e);return e.flatMap(e=>t(e).slice(0,e===`actions`?6:e===`navigation`?8:5))}return o.filter(e=>e.score>0).slice(0,40)}function L7(e){return[`actions`,`runs`,`pipelines`,`navigation`].map(t=>({group:t,items:e.filter(e=>e.group===t)})).filter(e=>e.items.length>0)}var R7={fail:`bg-[#f2645a1a] text-[var(--sf-fail)]`,ok:`bg-[#4cc38a1a] text-[var(--sf-ok)]`,needs:`bg-[#f5b5441f] border border-[#f5b5444d] text-[var(--sf-needs)]`,running:`bg-[#6ca6ff1a] text-[var(--sf-running)]`,queued:`bg-[#ffffff12] text-[var(--sf-text-2)]`,skipped:`bg-[#ffffff12] text-[var(--sf-text-3)]`};function z7({signal:e,label:t,className:n}){let r=t??Us(e),i=Gs(e);return(0,Y.jsxs)(`span`,{className:`flex h-[22px] min-w-[92px] w-fit shrink-0 items-center gap-1 whitespace-nowrap rounded-full px-[7px] py-0 font-sans text-xs font-medium ${R7[e]}${n?` ${n}`:``}`,children:[(0,Y.jsx)(i,{className:`size-3 shrink-0${Ws(e)?` ${Ws(e)}`:``}`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{children:r})]})}var B7={actions:`Actions`,runs:`Runs`,pipelines:`Pipelines`,navigation:`Navigation`};function V7(e){let t=Ss(e);return t.startsWith(`run_`)?t:`run_${t}`}function H7({open:e,onClose:t,workspaceName:n,onNavigate:r,onOpenStartRun:i}){let{snapshot:a}=Jo(),[o,s]=(0,J.useState)(``),[c,l]=(0,J.useState)(0),[u,d]=(0,J.useState)([]),[f,p]=(0,J.useState)([]),m=(0,J.useRef)(null);D7(e),(0,J.useEffect)(()=>{if(!e){s(``),l(0);return}let t=window.setTimeout(()=>m.current?.focus(),0);return()=>window.clearTimeout(t)},[e]),(0,J.useEffect)(()=>{e&&Promise.all([ki(),Fi()]).then(([e,t])=>{d(e.tasks),p(t.pipelines)})},[e]);let h=cs(a),g=os(a).broken,_=(0,J.useMemo)(()=>I7({snapshot:a,tasks:u,pipelines:f,query:o,ctx:{firstWaitingRunId:h[0]?.run_id,firstBrokenRunId:g[0]?.run_id,onStartRun:()=>{t(),i()},onNavigate:e=>{t(),r(e)}}}),[a,u,f,o,h,g,t,r,i]),v=(0,J.useMemo)(()=>L7(_),[_]);if((0,J.useEffect)(()=>{l(0)},[o,_.length]),Yc([{key:`arrowdown`,scope:`global`,when:()=>e&&_.length>0,allowInInput:!0,handler:e=>{e.preventDefault(),l(e=>(e+1)%_.length)}},{key:`arrowup`,scope:`global`,when:()=>e&&_.length>0,allowInInput:!0,handler:e=>{e.preventDefault(),l(e=>(e-1+_.length)%_.length)}},{key:`enter`,scope:`global`,when:()=>e&&_.length>0,allowInInput:!0,handler:e=>{e.preventDefault(),_[c]?.run()}}],`global`),!e)return null;let y=e=>_.findIndex(t=>t.id===e.id),b=_.length===1?`1 result`:`${_.length} results`;return(0,JP.createPortal)((0,Y.jsx)(`div`,{className:`${w7} ${T7}`,role:`presentation`,onClick:t,children:(0,Y.jsxs)(`div`,{className:`flex w-[640px] min-w-0 max-h-[min(70vh,560px)] flex-col overflow-clip rounded-[14px] border border-[#ffffff1a] bg-[var(--sf-panel)] shadow-[0px_32px_96px_rgba(0,0,0,0.65),0px_8px_24px_rgba(0,0,0,0.45)]`,role:`dialog`,"aria-label":`Command palette`,onClick:e=>e.stopPropagation(),children:[(0,Y.jsxs)(`div`,{className:`flex h-[52px] w-full shrink-0 items-center gap-2.5 border-b border-b-[#ffffff12] px-4 py-0`,children:[(0,Y.jsx)(Oe,{className:`size-4 shrink-0 text-[var(--sf-text-2)]`,"aria-hidden":`true`}),(0,Y.jsx)(`input`,{ref:m,value:o,onChange:e=>s(e.target.value),placeholder:`Search runs, pipelines, actions…`,"aria-autocomplete":`list`,className:`min-w-0 flex-1 border-none bg-transparent font-sans text-[15px] text-[var(--sf-text-1)] outline-none placeholder:text-[var(--sf-text-3)]`}),(0,Y.jsx)(`span`,{className:`shrink-0 font-['Geist_Mono',monospace] text-xs text-[var(--sf-text-3)]`,children:b}),(0,Y.jsx)(Nl,{children:`esc`})]}),(0,Y.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto px-0 py-1.5`,role:`listbox`,children:_.length===0?(0,Y.jsx)(`p`,{className:`px-4 py-6 text-center font-sans text-[13px] text-[var(--sf-text-3)]`,children:`No matches`}):v.map(e=>(0,Y.jsxs)(`div`,{className:`flex w-full flex-col px-1.5 py-0`,children:[(0,Y.jsx)(`div`,{className:`px-2.5 pb-1.5 pt-2 text-[11px] font-medium uppercase tracking-[0.88px] text-[var(--sf-text-3)]`,children:B7[e.group]}),e.items.map(t=>{let n=y(t),r=n===c,i=a.runs.find(e=>t.id===`run-${e.run_id}`),o=f.find(e=>t.id===`pipeline-${e.path}`);return(0,Y.jsx)(`button`,{type:`button`,role:`option`,"aria-selected":r,className:`flex h-[38px] w-full items-center gap-2.5 rounded-lg px-2.5 py-0 text-left${r?` bg-[var(--sf-raised)] shadow-[inset_2px_0px_0px_rgb(236,237,238)]`:``}${e.group===`runs`?` gap-3`:``}`,onMouseEnter:()=>l(n),onClick:()=>t.run(),children:U7({item:t,runRow:i,pipelineRow:o,waitingCount:h.length})},t.id)})]},e.group))}),(0,Y.jsxs)(`footer`,{className:`flex h-9 w-full shrink-0 items-center gap-2 border-t border-t-[#ffffff12] bg-[#101114] px-4 py-0`,children:[(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(Nl,{children:`↑↓`}),(0,Y.jsx)(`span`,{className:`font-sans text-xs text-[var(--sf-text-3)]`,children:`navigate`})]}),(0,Y.jsx)(`span`,{className:`font-sans text-xs text-[var(--sf-text-3)]`,children:`·`}),(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(Nl,{children:`↵`}),(0,Y.jsx)(`span`,{className:`font-sans text-xs text-[var(--sf-text-3)]`,children:`run`})]}),(0,Y.jsx)(`span`,{className:`font-sans text-xs text-[var(--sf-text-3)]`,children:`·`}),(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(Nl,{children:`tab`}),(0,Y.jsx)(`span`,{className:`font-sans text-xs text-[var(--sf-text-3)]`,children:`filter by type`})]}),(0,Y.jsx)(`span`,{className:`block flex-1`}),(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace] text-[11px] text-[var(--sf-text-3)]`,children:n})]})]})}),document.body)}function U7({item:e,runRow:t,pipelineRow:n,waitingCount:r}){if(e.id===`action-retry-failed`)return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(de,{className:`size-4 shrink-0 text-[var(--sf-text-1)]`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`shrink-0 font-sans text-[13px] font-medium text-[var(--sf-text-1)]`,children:e.label}),e.context?(0,Y.jsxs)(`span`,{className:`min-w-0 flex-1 truncate font-['Geist_Mono',monospace] text-xs text-[var(--sf-text-2)]`,children:[`· `,e.context]}):(0,Y.jsx)(`span`,{className:`flex-1`}),(0,Y.jsx)(z7,{signal:`fail`,label:`Failed`})]});if(e.id===`action-start-run`)return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(y,{className:`size-4 shrink-0 text-[var(--sf-text-2)]`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 font-sans text-[13px] text-[var(--sf-text-1)]`,children:e.label})]});if(e.id===`action-answer-gate`)return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(Ze,{className:`size-4 shrink-0 text-[var(--sf-needs)]`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`shrink-0 font-sans text-[13px] text-[var(--sf-text-1)]`,children:e.label}),e.context?(0,Y.jsxs)(`span`,{className:`min-w-0 flex-1 truncate font-['Geist_Mono',monospace] text-xs text-[var(--sf-text-2)]`,children:[`· `,e.context]}):(0,Y.jsx)(`span`,{className:`flex-1`}),r>0?(0,Y.jsx)(z7,{signal:`needs`,label:r===1?`1 waiting`:`${r} waiting`}):null]});if(e.group===`runs`&&t){let e=Hs(t),n=qs(js(t));return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(z7,{signal:e,label:n}),(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-sans text-[13px] text-[var(--sf-text-1)]`,children:es(t)}),(0,Y.jsx)(`span`,{className:`w-[104px] shrink-0 truncate font-['Geist_Mono',monospace] text-xs text-[var(--sf-text-2)]`,children:t.pipeline_id}),(0,Y.jsx)(`span`,{className:`w-[84px] shrink-0 truncate font-['Geist_Mono',monospace] text-xs text-[var(--sf-text-3)]`,children:V7(t.run_id)}),(()=>{let e=t.updated_at??t.created_at;return e?(0,Y.jsx)(`span`,{className:`w-14 shrink-0 text-right font-['Geist_Mono',monospace] text-xs text-[var(--sf-text-3)]`,children:Cs(e)}):null})()]})}if(e.group===`pipelines`&&n){let e=n.stages.map(e=>e.id).join(` → `);return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(he,{className:`size-4 shrink-0 text-[var(--sf-text-2)]`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`w-[110px] shrink-0 truncate font-['Geist_Mono',monospace] text-[13px] text-[var(--sf-text-1)]`,children:n.id}),(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-sans text-xs text-[var(--sf-text-3)]`,children:e}),(0,Y.jsxs)(`span`,{className:`shrink-0 font-['Geist_Mono',monospace] text-xs text-[var(--sf-text-3)]`,children:[n.stages.length,` stages`]})]})}if(e.group===`navigation`){let t=e.id===`nav-inbox`?We:e.id===`nav-settings`?rt:y;return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(t,{className:`size-4 shrink-0 text-[var(--sf-text-2)]`,"aria-hidden":`true`}),(0,Y.jsxs)(`span`,{className:`min-w-0 flex-1 font-sans text-[13px] text-[var(--sf-text-1)]`,children:[`Go to `,e.label]})]})}return(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-sans text-[13px] text-[var(--sf-text-1)]`,children:e.label})}function W7({pipeline:e,runs:t,selected:n,onSelect:r,className:i}){let a=oc(t,e.id),o=e.stages.map(e=>e.id).join(` · `),s=n?`bg-[#3a3d44]`:`bg-[var(--sf-track-empty)]`,c=a.sampleCount>0&&(a.avgDurationMs!=null||a.avgCostUsd!=null)?[a.avgDurationMs==null?null:sc(a.avgDurationMs),a.avgCostUsd==null?null:cc(a.avgCostUsd)].filter(Boolean).join(` · `):null;return(0,Y.jsxs)(`button`,{type:`button`,onClick:r,className:`flex h-fit flex-col gap-2.5 rounded-[10px] border p-3 text-left${n?` border-[#ecedee8c] bg-[var(--sf-raised)] shadow-[0px_0px_0px_3px_rgba(236,237,238,0.06)]`:` border-[#ffffff1a] bg-[#0f1013]`}${i?` ${i}`:``}`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace] text-[13px] font-medium text-[var(--sf-text-1)]`,children:e.id}),n?(0,Y.jsx)(`span`,{className:`flex size-4 items-center justify-center rounded-full bg-[var(--sf-text-1)]`,children:(0,Y.jsx)(G,{className:`size-[11px] text-[var(--sf-ground)]`,"aria-hidden":`true`})}):(0,Y.jsx)(`span`,{className:`size-4 rounded-full border border-[#ffffff2e]`})]}),(0,Y.jsx)(`div`,{className:`flex w-full gap-[3px]`,children:e.stages.map(e=>(0,Y.jsx)(`span`,{className:`block h-1.5 flex-1 rounded-full ${s}`},e.id))}),(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace] text-[11px] text-[var(--sf-text-3)]`,children:o}),(0,Y.jsxs)(`div`,{className:`flex items-center justify-between border-t border-t-[#ffffff12] pt-2`,children:[(0,Y.jsxs)(`span`,{className:`font-sans text-xs${n?` text-[var(--sf-text-2)]`:` text-[var(--sf-text-3)]`}`,children:[e.stages.length,` stages`]}),c?(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace] text-xs${n?` text-[var(--sf-text-1)]`:` text-[var(--sf-text-2)]`}`,children:c}):null]})]})}function G7(e,t){return e===t||e.endsWith(`/${t}`)||t.endsWith(`/${e}`)}function K7(e,t,n){if(t&&n){let r=e.find(e=>G7(e.path,t)&&e.project_root===n);if(r)return r}return t?e.find(e=>G7(e.path,t)):e[0]}function q7(e,t,n){return t?e.find(e=>e.path===t&&e.project_root===n)??null:null}function J7({open:e,snapshot:t,catalogError:n,initialTaskPath:r,initialPipelinePath:i,initialProjectRoot:a,onStarted:o}){let[s,c]=(0,J.useState)([]),[l,u]=(0,J.useState)([]),[d,f]=(0,J.useState)(``),[p,m]=(0,J.useState)(void 0),[h,g]=(0,J.useState)(``),[_,v]=(0,J.useState)(void 0),[y,b]=(0,J.useState)(``),[x,S]=(0,J.useState)(null),[C,w]=(0,J.useState)(!1),[T,E]=(0,J.useState)(null),[D,O]=(0,J.useState)(null),[k,A]=(0,J.useState)(null),[j,M]=(0,J.useState)(`idle`),[N,P]=(0,J.useState)(null),[F,I]=(0,J.useState)(!1),L=t.health;(0,J.useEffect)(()=>{if(!e)return;let t=!1;return I(!0),(async()=>{try{let[e,n,o]=await Promise.all([ki(),Fi(),cD()]);if(t)return;c(e.tasks),u(n.pipelines),A(o.ready),o.ready?O(null):O(o.message??`Connect providers before starting a run.`);let s=K7(e.tasks,r,a),l=K7(n.pipelines,i,a);f(s?.path??``),m(s?.project_root),g(l?.path??``),v(l?.project_root),S(null),E(null)}catch(e){t||S(e instanceof Error?e.message:String(e))}finally{t||I(!1)}})(),()=>{t=!0}},[e,r,i,a]);let R=q7(s,d,p),z=q7(l,h,_),B=(0,J.useCallback)((e,t)=>{f(e),m(t)},[]),V=(0,J.useCallback)((e,t)=>{g(e),v(t)},[]),H=(0,J.useMemo)(()=>{let e=y.trim().toLowerCase();return e?s.filter(t=>t.id.toLowerCase().includes(e)||t.goal.toLowerCase().includes(e)||t.path.toLowerCase().includes(e)):s},[s,y]),ee=(0,J.useMemo)(()=>z?z.stages.map(e=>({id:e.id,status:bs(e.gate_kinds)?`waiting_for_input`:`pending`})):[],[z]),te=L!=null&&L.slotsAvailable===0,ne=L==null?0:gs(t,L.activeRunIds).length,re=x??(L==null&&n?n:null),ie=R&&z?`sf run --task ${R.path} --pipeline ${z.path}`:`sf run --task <task> --pipeline <pipeline>`;return(0,J.useEffect)(()=>{if(!e||!h){M(`idle`),P(null);return}let t=!1;return M(`checking`),P(null),To({pipeline:h,strict:!0,...z?.project_root?{project_root:z.project_root}:{}}).then(e=>{if(!t){if(e.ok)M(`valid`);else{M(`invalid`);let t=e.findings.find(e=>e.severity===`error`);P(t?.message??`${e.summary.errors} validation error(s)`)}}}).catch(()=>{t||(M(`unknown`),P(`Checked on start`))}),()=>{t=!0}},[e,h,z?.project_root]),{tasks:s,pipelines:l,task:d,setTask:B,pipeline:h,setPipeline:V,taskQuery:y,setTaskQuery:b,filteredTasks:H,selectedTask:R,selectedPipeline:z,previewStages:ee,slotsFull:te,heldWaiting:ne,health:L,displayError:re,starting:C,startFailure:T,authGateMessage:D,providerReady:k,pipelineValidation:j,pipelineValidationDetail:N,catalogLoading:F,cliLine:ie,submit:(0,J.useCallback)(async()=>{if(!d||!h){S(`Pick a task and a pipeline.`);return}w(!0),S(null),E(null),O(null);try{let e=await cD();if(A(e.ready),!e.ready){O(e.message??`Connect providers before starting a run.`),w(!1);return}}catch(e){O(e instanceof Error?e.message:String(e)),w(!1);return}let e=await Ea(d,h,z?.project_root??R?.project_root);if(w(!1),e.ok){o(e.runId);return}E(e)},[d,h,o,z?.project_root,R?.project_root]),canStart:!!(d&&h)&&!te&&!C&&k!==!1&&j!==`invalid`}}function Y7({open:e,onClose:t,onStarted:n,initialTaskPath:r,initialPipelinePath:i,initialProjectRoot:a}){let{snapshot:o,error:s}=Jo(),c=(0,J.useRef)(null),u=J7({open:e,snapshot:o,catalogError:s,initialTaskPath:r,initialPipelinePath:i,initialProjectRoot:a,onStarted:e=>{n(e),t(`started`)}});if(D7(e),(0,J.useEffect)(()=>{if(e){let e=window.setTimeout(()=>c.current?.focus(),0);return()=>window.clearTimeout(e)}},[e]),Yc([{key:`mod+enter`,scope:`global`,when:()=>e&&u.canStart,allowInInput:!0,handler:e=>{e.preventDefault(),u.submit()}}],`global`),!e)return null;async function f(){try{await navigator.clipboard.writeText(u.cliLine)}catch{}}let p=u.health?.activeCount??0,m=u.health?.maxConcurrent??0,h=m>0?`${p} of ${m} agent slots in use${u.slotsFull?` — no slots left`:p===m-1?` — this run takes the last one`:``}`:null;return(0,JP.createPortal)((0,Y.jsx)(`div`,{className:`${w7} ${E7}`,role:`presentation`,onClick:()=>t(),children:(0,Y.jsxs)(`div`,{className:`flex w-[720px] min-w-0 max-h-[min(900px,calc(100vh-2.75rem))] flex-col overflow-clip rounded-[14px] border border-[#ffffff1a] bg-[var(--sf-panel)] shadow-[0px_32px_96px_rgba(0,0,0,0.65),0px_8px_24px_rgba(0,0,0,0.45)]`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`sf-start-run-title`,onClick:e=>e.stopPropagation(),children:[(0,Y.jsxs)(`header`,{className:`flex w-full shrink-0 items-start gap-3 px-5 pb-3.5 pt-[18px]`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[(0,Y.jsx)(`h2`,{id:`sf-start-run-title`,className:`font-sans text-lg font-semibold tracking-[-0.36px] text-[var(--sf-text-1)]`,children:`Start a run`}),(0,Y.jsx)(`p`,{className:`font-sans text-[13px] text-[var(--sf-text-2)]`,children:`A run pairs one task with one pipeline. It holds an agent slot until it finishes.`})]}),(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 pt-0.5`,children:[(0,Y.jsx)(Nl,{className:`text-[var(--sf-text-3)]`,children:`esc`}),(0,Y.jsx)(`button`,{type:`button`,className:`flex size-7 items-center justify-center rounded-lg`,onClick:()=>t(),"aria-label":`Close`,children:(0,Y.jsx)(St,{className:`size-4 text-[var(--sf-text-2)]`,"aria-hidden":`true`})})]})]}),(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto`,children:[(0,Y.jsxs)(`section`,{className:`flex w-full flex-col gap-2 px-5 pb-4`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Y.jsx)(`span`,{className:`text-[11px] font-medium uppercase tracking-[0.88px] text-[var(--sf-text-3)]`,children:`Task`}),(0,Y.jsxs)(`span`,{className:`font-['Geist_Mono',monospace] text-[11px] text-[var(--sf-text-3)]`,children:[u.tasks.length,` in tasks/`]})]}),(0,Y.jsxs)(`div`,{className:`flex min-h-0 flex-col overflow-clip rounded-[10px] border border-[#ffffff1a] bg-[#0f1013]`,children:[(0,Y.jsxs)(`div`,{className:`flex h-[38px] shrink-0 items-center gap-2 border-b border-b-[#ffffff12] px-3 py-0`,children:[(0,Y.jsx)(Oe,{className:`size-3.5 text-[var(--sf-text-3)]`,"aria-hidden":`true`}),(0,Y.jsx)(`input`,{ref:c,className:`min-w-0 flex-1 border-none bg-transparent font-sans text-[13px] text-[var(--sf-text-1)] outline-none placeholder:text-[var(--sf-text-3)]`,placeholder:`Search tasks by id or goal…`,value:u.taskQuery,onChange:e=>u.setTaskQuery(e.target.value)}),(0,Y.jsx)(Nl,{className:`text-[var(--sf-text-3)]`,children:`/`})]}),(0,Y.jsx)(`div`,{className:`max-h-[min(320px,calc(900px-28rem))] min-h-0 overflow-y-auto`,children:u.filteredTasks.map(e=>{let t=u.selectedTask?.path===e.path&&u.selectedTask?.project_root===e.project_root,n=lc(o.runs,e.path);return t?(0,Y.jsxs)(`button`,{type:`button`,className:`flex w-full items-start gap-2.5 bg-[var(--sf-raised)] px-3 py-[9px] text-left shadow-[inset_2px_0px_0px_rgb(236,237,238)]`,onClick:()=>u.setTask(e.path,e.project_root),children:[(0,Y.jsx)(`span`,{className:`mt-0.5 flex size-3.5 shrink-0 items-center justify-center rounded-full bg-[var(--sf-text-1)]`,children:(0,Y.jsx)(`span`,{className:`size-1.5 rounded-full bg-[var(--sf-ground)]`})}),(0,Y.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col gap-[3px]`,children:[(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace] text-[13px] font-medium text-[var(--sf-text-1)]`,children:e.id}),(0,Y.jsx)(`span`,{className:`line-clamp-2 font-sans text-[13px] text-[var(--sf-text-2)]`,children:e.goal})]}),n?(0,Y.jsxs)(`span`,{className:`mt-0.5 shrink-0 font-['Geist_Mono',monospace] text-[11px] text-[var(--sf-text-3)]`,children:[`last run `,Cs(n)]}):null,(0,Y.jsx)(G,{className:`mt-0.5 size-3.5 shrink-0 text-[var(--sf-text-1)]`,"aria-hidden":`true`})]},`${e.path}\0${e.project_root??``}`):(0,Y.jsxs)(`button`,{type:`button`,className:`flex h-9 w-full items-center gap-2.5 border-t border-t-[#ffffff0d] px-3 py-0 text-left`,onClick:()=>u.setTask(e.path,e.project_root),children:[(0,Y.jsx)(`span`,{className:`size-3.5 shrink-0 rounded-full border border-[#ffffff2e]`}),(0,Y.jsx)(`span`,{className:`w-[150px] shrink-0 truncate font-['Geist_Mono',monospace] text-[13px] text-[var(--sf-text-1)]`,children:e.id}),(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-sans text-[13px] text-[var(--sf-text-3)]`,children:e.goal})]},`${e.path}\0${e.project_root??``}`)})})]})]}),(0,Y.jsxs)(`section`,{className:`flex w-full flex-col gap-2 px-5 pb-4`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Y.jsx)(`span`,{className:`text-[11px] font-medium uppercase tracking-[0.88px] text-[var(--sf-text-3)]`,children:`Pipeline`}),(0,Y.jsx)(`span`,{className:`font-sans text-[11px] text-[var(--sf-text-3)]`,children:`Averages from the last 20 runs`})]}),(0,Y.jsx)(`div`,{className:`flex w-full snap-x snap-mandatory gap-2.5 overflow-x-auto pb-1`,children:u.pipelines.map(e=>(0,Y.jsx)(W7,{className:`w-[220px] shrink-0 snap-start`,pipeline:e,runs:o.runs,selected:u.selectedPipeline?.path===e.path&&u.selectedPipeline?.project_root===e.project_root,onSelect:()=>u.setPipeline(e.path,e.project_root)},`${e.path}\0${e.project_root??``}`))})]}),(0,Y.jsx)(`section`,{className:`flex w-full flex-col gap-2.5 px-5 pb-4`,children:(0,Y.jsxs)(`div`,{className:`flex h-10 w-full items-center gap-2.5 rounded-[10px] border border-[#ffffff12] px-3 py-0`,children:[(0,Y.jsx)(l,{className:`size-3.5 shrink-0 text-[var(--sf-text-2)]`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`shrink-0 font-sans text-[13px] font-medium text-[var(--sf-text-1)]`,children:`Advanced`}),(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-sans text-xs text-[var(--sf-text-3)]`,children:`Model override · Checkout branch`}),(0,Y.jsx)(`span`,{className:`shrink-0 font-['Geist_Mono',monospace] text-xs text-[var(--sf-text-3)]`,children:`use CLI for overrides`})]})})]}),(0,Y.jsxs)(`div`,{className:`flex w-full shrink-0 flex-col border-t border-t-[#ffffff12] bg-[#101114]`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2 px-5 pb-3 pt-3`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2 rounded-[10px] border border-[#ffffff12] bg-[#0f1013] px-3 py-2.5`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-5`,children:[(0,Y.jsx)(`span`,{className:`text-[11px] font-medium uppercase tracking-[0.88px] text-[var(--sf-text-3)]`,children:`Ready`}),(0,Y.jsx)(X7,{ok:u.providerReady===!0,pending:u.providerReady===null,label:`Provider`,detail:u.providerReady===!0?`connected`:u.providerReady===!1?`not ready`:`checking…`}),(0,Y.jsx)(X7,{ok:u.pipelineValidation===`valid`,pending:u.pipelineValidation===`checking`,fail:u.pipelineValidation===`invalid`,label:`Pipeline valid`,detail:u.pipelineValidation===`valid`?`(strict)`:u.pipelineValidation===`invalid`?`invalid`:u.pipelineValidation===`checking`?`…`:``})]}),u.authGateMessage?(0,Y.jsxs)(`p`,{className:`font-sans text-xs text-[var(--sf-fail)]`,children:[u.authGateMessage,` `,(0,Y.jsx)(`a`,{href:`#/settings`,className:`text-[var(--sf-running)]`,children:`Settings`})]}):null,u.pipelineValidationDetail&&u.pipelineValidation===`invalid`?(0,Y.jsx)(`p`,{className:`truncate font-['Geist_Mono',monospace] text-xs text-[var(--sf-fail)]`,children:u.pipelineValidationDetail}):null,h?(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 border-t border-t-[#ffffff12] pt-2`,children:[(0,Y.jsx)(d,{className:`size-3.5 shrink-0 text-[var(--sf-text-2)]`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 font-sans text-[13px] text-[var(--sf-text-2)]`,children:h})]}):null]}),(0,Y.jsxs)(`div`,{className:`flex h-8 w-full items-center gap-2 rounded-lg border border-[#ffffff12] bg-[var(--sf-ground)] px-2.5 py-0`,children:[(0,Y.jsx)(ft,{className:`size-3.5 shrink-0 text-[var(--sf-text-3)]`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`shrink-0 font-['Geist_Mono',monospace] text-xs text-[var(--sf-text-3)]`,children:`$`}),(0,Y.jsx)(`code`,{className:`min-w-0 flex-1 truncate font-['Geist_Mono',monospace] text-xs text-[var(--sf-text-2)]`,children:u.cliLine}),(0,Y.jsxs)(`button`,{type:`button`,className:`flex h-[22px] shrink-0 items-center gap-[5px] rounded-md px-1.5 py-0`,onClick:()=>void f(),children:[(0,Y.jsx)(R,{className:`size-[13px] text-[var(--sf-text-3)]`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`font-sans text-xs text-[var(--sf-text-3)]`,children:`Copy`})]})]}),u.startFailure?(0,Y.jsx)(`p`,{className:`font-sans text-[13px] text-[var(--sf-fail)]`,role:`alert`,children:u.startFailure.error}):null,u.displayError?(0,Y.jsx)(`p`,{className:`font-sans text-[13px] text-[var(--sf-fail)]`,role:`alert`,children:u.displayError}):null]}),(0,Y.jsxs)(`footer`,{className:`flex w-full shrink-0 items-center gap-2 border-t border-t-[#ffffff12] px-5 py-3.5`,children:[(0,Y.jsx)(`span`,{className:`min-w-0 flex-1 font-sans text-xs text-[var(--sf-text-3)]`,children:`New run id is assigned on start. You can watch it in Runs.`}),(0,Y.jsxs)(`button`,{type:`button`,className:`flex h-8 items-center gap-2 rounded-lg px-3 py-0`,onClick:()=>t(),children:[(0,Y.jsx)(`span`,{className:`font-sans text-[13px] font-medium text-[var(--sf-text-2)]`,children:`Cancel`}),(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace] text-[11px] text-[var(--sf-text-3)]`,children:`esc`})]}),(0,Y.jsxs)(`button`,{type:`button`,className:`flex h-8 items-center gap-2 rounded-lg bg-[var(--sf-text-1)] px-3 py-0 disabled:opacity-50`,disabled:!u.canStart||u.catalogLoading,onClick:()=>void u.submit(),children:[(0,Y.jsx)(y,{className:`size-[13px] text-[var(--sf-ground)]`,"aria-hidden":`true`}),(0,Y.jsx)(`span`,{className:`font-sans text-[13px] font-medium text-[var(--sf-ground)]`,children:u.starting?`Starting…`:`Start run`}),(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace] text-[11px] text-[#5a5e66]`,children:`⌘↵`})]})]})]})]})}),document.body)}function X7({ok:e,pending:t,fail:n,label:r,detail:i}){return(0,Y.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[e?(0,Y.jsx)(G,{className:`size-3.5 text-[var(--sf-ok)]`,"aria-hidden":`true`}):(0,Y.jsx)(`span`,{className:`size-3.5 rounded-full border border-[#ffffff2e] ${t?`animate-pulse`:``}`}),(0,Y.jsx)(`span`,{className:`font-sans text-[13px] text-[var(--sf-text-1)]`,children:r}),i?(0,Y.jsx)(`span`,{className:`font-['Geist_Mono',monospace] text-xs ${e?`text-[var(--sf-ok)]`:n?`text-[var(--sf-fail)]`:`text-[var(--sf-text-3)]`}`,children:i}):null]})}function Z7({route:e,redesignOn:t,workspaceName:n,onStarted:r,onOpenPaletteRef:i}){let[a,o]=(0,J.useState)(!1),[s,c]=(0,J.useState)(!1),l=(0,J.useRef)(null),u=(0,J.useRef)(`/inbox`),d=(0,J.useCallback)(()=>{let e=document.activeElement;e instanceof HTMLElement&&(l.current=e)},[]),f=(0,J.useCallback)(()=>{let e=l.current;if(l.current=null,e?.isConnected){e.focus();return}},[]),p=(0,J.useCallback)(()=>{d(),o(!0)},[d]),m=(0,J.useCallback)(()=>{o(!1),f()},[f]),h=(0,J.useCallback)(()=>{d(),o(!1),c(!0)},[d]),g=(0,J.useCallback)(t=>{c(!1),f(),t!==`started`&&e.name===`new`&&Z(u.current)},[e.name,f]);if((0,J.useEffect)(()=>{e.name!==`new`&&(u.current=`${window.location.hash.replace(/^#/,``)||`/inbox`}`)},[e]),(0,J.useEffect)(()=>{i?.(p)},[i,p]),(0,J.useEffect)(()=>{t&&e.name===`new`&&(d(),c(!0))},[t,e.name,e.name===`new`?e.taskPath:void 0,e.name===`new`?e.pipelineId:void 0,e.name===`new`?e.projectRoot:void 0,d]),Yc([{key:`mod+k`,scope:`global`,when:()=>t,allowInInput:!0,handler:e=>{e.preventDefault(),a?m():p()}},{key:`escape`,scope:`global`,when:()=>t&&s,allowInInput:!0,handler:e=>{e.preventDefault(),g()}},{key:`escape`,scope:`global`,when:()=>t&&a&&!s,allowInInput:!0,handler:e=>{e.preventDefault(),m()}}],`global`),!t)return null;let _=e.name===`new`?e.taskPath:void 0,v=e.name===`new`?e.pipelineId:void 0,y=e.name===`new`?e.projectRoot:void 0;return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(H7,{open:a,onClose:m,workspaceName:n,onNavigate:e=>Z(e),onOpenStartRun:h}),(0,Y.jsx)(Y7,{open:s,onClose:g,onStarted:r,initialTaskPath:_,initialPipelinePath:v,initialProjectRoot:y})]})}function Q7(){let[e,t]=(0,J.useState)(bi),[n,r]=(0,J.useState)(``);return(0,J.useEffect)(()=>(bi()&&t(!0),xi(()=>{r(Ci()),t(!0)})),[]),e?(0,Y.jsx)(`div`,{className:`fixed inset-0 z-[80] flex items-center justify-center bg-[#0c0d0fcc] p-6`,children:(0,Y.jsxs)(`form`,{className:`flex w-full max-w-md flex-col gap-3 rounded-xl border border-[#ffffff12] bg-[var(--sf-panel)] p-4`,onSubmit:e=>{e.preventDefault(),wi(n),window.location.reload()},children:[(0,Y.jsx)(`h2`,{className:`font-sans text-[15px] font-semibold text-[var(--sf-text-1)]`,children:`Control token`}),(0,Y.jsx)(`p`,{className:`font-sans text-xs text-[var(--sf-text-3)]`,children:`This Host rejected the request. Paste STAGEFLOW_CONTROL_TOKEN from the machine running Stageflow. It stays in this browser.`}),(0,Y.jsx)(`input`,{type:`password`,autoComplete:`off`,autoFocus:!0,value:n,onChange:e=>r(e.target.value),placeholder:`STAGEFLOW_CONTROL_TOKEN`,className:`h-8 rounded-lg border border-[#ffffff1a] bg-[var(--sf-raised)] px-2.5 font-['Geist_Mono',monospace] text-[13px] text-[var(--sf-text-1)] outline-none`}),(0,Y.jsx)(`button`,{type:`submit`,className:`h-8 self-start rounded-lg bg-[#ecedee] px-3 font-sans text-[13px] font-medium text-[#0c0d0f]`,children:`Save and reload`})]})}):null}function $7(){let e=Es(),[t,n]=(0,J.useState)(()=>zc()),[r,i]=(0,J.useState)(aO),[a,o]=(0,J.useState)(`loading`),{snapshot:s}=Jo(),c=(0,J.useRef)(null);(0,J.useEffect)(()=>{Ts()},[]),(0,J.useEffect)(()=>{let e=()=>n(zc());return window.addEventListener(`hashchange`,e),window.location.hash||(window.location.hash=`#/inbox`),()=>window.removeEventListener(`hashchange`,e)},[]),uO(r===`system`),pO(r===`system`),(0,J.useEffect)(()=>{let e=!1;return cD().then(t=>{e||o(t.ready?`ready`:`needs_connect`)}).catch(()=>{e||o(`ready`)}),()=>{e=!0}},[]);let{approvals:l,refresh:u}=WO(),d=ss(s).length+l.length,f=os(s).inFlight.length,p=m7(),m=s.health,h=ID(s),g=ls(s,m),_=(0,J.useCallback)(e=>{Z(e)},[]);(0,J.useEffect)(()=>{e&&(t.name===`skills`?_(wc({tab:`skills`})):t.name===`skill`?_(wc({tab:`skills`,skill:t.skillName})):t.name===`extensions`&&_(wc({tab:`stages`})))},[e,t,_]);let v=(0,J.useCallback)(e=>{if(e===`catalog`){_(wc({tab:`stages`}));return}_(`/${e}`)},[_]),y=`/inbox`,b;return b=t.name===`overview`?(0,Y.jsx)(lA,{}):t.name===`inbox`?(0,Y.jsx)(SO,{onOpen:e=>_(hc(e)),onNew:()=>_(`/new`),onOpenRuns:()=>_(`/runs`),agentApprovals:l,onAgentApprovalDecided:u,onOpenAgentSession:(e,t)=>_(Pc(e,t))}):t.name===`new`?e?(0,Y.jsx)(SO,{onOpen:e=>_(hc(e)),onNew:()=>_(`/new`),onOpenRuns:()=>_(`/runs`)}):(0,Y.jsx)(dD,{onStarted:e=>_(hc(e)),initialPipelinePath:t.pipelineId,initialTaskPath:t.taskPath,initialProjectRoot:t.projectRoot}):t.name===`detail`?(0,Y.jsx)(YE,{runId:t.runId,view:t.view,onBack:()=>_(`/runs`),onReran:e=>_(hc(e)),onOpenStream:e=>_(e?gc(t.runId,e):hc(t.runId)),onOpenArtifact:e=>_(_c(t.runId,e)),onOpenEnvelope:e=>_(vc(t.runId,e))}):t.name===`runs`?(0,Y.jsx)(tu,{onOpen:e=>_(hc(e)),onNew:()=>_(`/new`)}):t.name===`pipelines`?(0,Y.jsx)(kU,{onNew:_}):t.name===`pipeline`?(0,Y.jsx)(kU,{pipelineId:t.pipelineId,projectRoot:t.projectRoot,onNew:_}):t.name===`tasks`?(0,Y.jsx)(UW,{onNew:_}):t.name===`task`?(0,Y.jsx)(UW,{taskId:t.taskId,onNew:_}):t.name===`triggers`?(0,Y.jsx)(Cq,{}):t.name===`connections`?(0,Y.jsx)(Xq,{}):t.name===`memories`?(0,Y.jsx)(fJ,{}):t.name===`memory`?(0,Y.jsx)(fJ,{memoryId:t.memoryId}):t.name===`connection`?(0,Y.jsx)(CJ,{connectionId:t.connectionId}):t.name===`agentSessions`?(0,Y.jsx)(f7,{}):o7(t)?(0,Y.jsx)(e7,{...o7(t)}):t.name===`trigger`?(0,Y.jsx)(Cq,{triggerId:t.triggerId,projectRoot:t.projectRoot}):t.name===`catalog`?(0,Y.jsx)(MX,{tab:t.tab,skillName:t.skillName}):t.name===`stage`?(0,Y.jsx)(g7,{stagePath:t.path,projectRoot:t.projectRoot}):t.name===`skills`?(0,Y.jsx)(wJ,{}):t.name===`skill`?(0,Y.jsx)(wJ,{skillName:t.skillName}):t.name===`extensions`?(0,Y.jsx)(EJ,{}):t.name===`extensionPackage`?e?(0,Y.jsx)(MX,{tab:`extensions`,packageScope:t.scope,packageSource:t.source}):(0,Y.jsx)(EJ,{packageScope:t.scope,packageSource:t.source}):t.name===`extensionFile`?e?(0,Y.jsx)(MX,{tab:`extensions`,filePath:t.path}):(0,Y.jsx)(EJ,{filePath:t.path}):t.name===`settings`?(0,Y.jsx)(lQ,{notifyPreference:r,onNotifyChange:i}):t.name===`connect`?(0,Y.jsx)(dQ,{onComplete:()=>{o(`ready`),_(y)}}):t.name===`workshop`?(0,Y.jsx)(Y4,{sessionId:t.sessionId,pipelinePath:t.pipelinePath,taskPath:t.taskPath,projectRoot:t.projectRoot}):(0,Y.jsx)(SO,{onOpen:e=>_(hc(e)),onNew:()=>_(`/new`),onOpenRuns:()=>_(`/runs`)}),a===`needs_connect`&&t.name!==`settings`&&t.name!==`connect`&&(b=(0,Y.jsx)(dQ,{onComplete:()=>{o(`ready`),_(y)}})),e?(0,Y.jsx)(xr,{theme:hi,mode:`dark`,children:(0,Y.jsxs)(_7,{rail:(0,Y.jsx)(C7,{activeId:a7(t,e),onNavigate:v,waitingCount:d,inFlightCount:f,agentActiveCount:p,health:m,workspaceName:h.name,workspaceSubtitle:h.subtitle,heldWaitingCount:g,onOpenPalette:()=>c.current?.()}),children:[b,(0,Y.jsx)(Z7,{route:t,redesignOn:e,workspaceName:h.name,onStarted:e=>_(hc(e)),onOpenPaletteRef:e=>{c.current=e}})]})}):(0,Y.jsx)(xr,{theme:hi,mode:`dark`,children:(0,Y.jsxs)(`div`,{className:`app`,children:[(0,Y.jsx)(ys,{activeId:a7(t,!1),onNavigate:v,waitingCount:d,health:m}),(0,Y.jsx)(`main`,{className:`main`,children:b})]})})}function e9(){let[e]=(0,J.useState)(()=>Wo({source:Vo()}));return(0,Y.jsxs)(qo,{catalog:e,children:[(0,Y.jsx)(Q7,{}),(0,Y.jsx)($7,{})]})}(0,mi.createRoot)(document.getElementById(`root`)).render((0,Y.jsx)(J.StrictMode,{children:(0,Y.jsx)(e9,{})}));