@dsdenes/devboard 0.1.560 → 0.1.562

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 (323) hide show
  1. package/AGENTS.md +59 -0
  2. package/README.md +2497 -26
  3. package/bin/devboard.mjs +352 -118
  4. package/client/App.svelte +523 -0
  5. package/client/FeedbackOverlay.svelte +1125 -0
  6. package/client/FlowMode.svelte +1015 -0
  7. package/client/app.css +3922 -0
  8. package/client/env.d.ts +23 -0
  9. package/client/lib/commands.ts +836 -0
  10. package/client/lib/components/ActivityBar.svelte +295 -0
  11. package/client/lib/components/AdrTable.svelte +241 -0
  12. package/client/lib/components/CommandPalette.svelte +198 -0
  13. package/client/lib/components/ConceptKind.svelte +66 -0
  14. package/client/lib/components/ConfirmDialog.svelte +62 -0
  15. package/client/lib/components/DataTable.svelte +243 -0
  16. package/client/lib/components/DetailSplit.svelte +68 -0
  17. package/client/lib/components/DiscoverOverview.svelte +898 -0
  18. package/client/lib/components/DiscoverWorkspace.svelte +437 -0
  19. package/client/lib/components/DraftsPage.svelte +186 -0
  20. package/client/lib/components/GoalWorkspace.svelte +1042 -0
  21. package/client/lib/components/IssuesAgentFocus.svelte +117 -0
  22. package/client/lib/components/IssuesAgentLog.svelte +50 -0
  23. package/client/lib/components/IssuesQuestion.svelte +95 -0
  24. package/client/lib/components/IssuesWorkspace.svelte +577 -0
  25. package/client/lib/components/MermaidDiagram.svelte +89 -0
  26. package/client/lib/components/MonacoEditor.svelte +190 -0
  27. package/client/lib/components/NotificationRegion.svelte +195 -0
  28. package/client/lib/components/PaneHandle.svelte +25 -0
  29. package/client/lib/components/ScoutIssues.svelte +215 -0
  30. package/client/lib/components/ScoutWorkspace.svelte +180 -0
  31. package/client/lib/components/Sidebar.svelte +622 -0
  32. package/client/lib/components/StatusBar.svelte +118 -0
  33. package/client/lib/components/Terminal.svelte +193 -0
  34. package/client/lib/components/WatchdogWorkspace.svelte +537 -0
  35. package/client/lib/components/ui/button.svelte +56 -0
  36. package/client/lib/components/ui/icon-button.svelte +56 -0
  37. package/client/lib/components/ui/input.svelte +19 -0
  38. package/client/lib/components/ui/page-header.svelte +120 -0
  39. package/client/lib/components/ui/stage-track.svelte +141 -0
  40. package/client/lib/components/watchdog-indicator.svelte +189 -0
  41. package/client/lib/connection.svelte.ts +210 -0
  42. package/client/lib/dependency-diagram.test.ts +90 -0
  43. package/client/lib/dependency-diagram.ts +75 -0
  44. package/client/lib/discover-format.test.ts +265 -0
  45. package/client/lib/discover-format.ts +394 -0
  46. package/client/lib/discover.svelte.ts +412 -0
  47. package/client/lib/draft-format.test.ts +48 -0
  48. package/client/lib/draft-format.ts +13 -0
  49. package/client/lib/flow-save.test.ts +148 -0
  50. package/client/lib/flow.svelte.ts +445 -0
  51. package/client/lib/goal-reconnect.test.ts +282 -0
  52. package/client/lib/goal.svelte.ts +652 -0
  53. package/client/lib/issues.svelte.ts +439 -0
  54. package/client/lib/layout.svelte.ts +234 -0
  55. package/client/lib/notification-issue.test.ts +53 -0
  56. package/client/lib/notification-issue.ts +27 -0
  57. package/client/lib/notifications.svelte.ts +62 -0
  58. package/client/lib/poll-status.test.ts +141 -0
  59. package/client/lib/poll-status.ts +88 -0
  60. package/client/lib/record-status.test.ts +19 -0
  61. package/client/lib/record-status.ts +25 -0
  62. package/client/lib/scout.svelte.ts +164 -0
  63. package/client/lib/skill-document.test.ts +77 -0
  64. package/client/lib/skill-document.ts +57 -0
  65. package/client/lib/status-tone.test.ts +40 -0
  66. package/client/lib/status-tone.ts +33 -0
  67. package/client/lib/types.ts +578 -0
  68. package/client/lib/utils.ts +6 -0
  69. package/client/lib/viewport.svelte.ts +20 -0
  70. package/client/lib/watchdog.svelte.ts +69 -0
  71. package/client/main.ts +7 -0
  72. package/dist/apple-touch-icon.png +0 -0
  73. package/dist/assets/abnfDiagram-VCTEODGH-CmBSMArZ.js +1 -0
  74. package/dist/assets/arc-BZgCSX2H.js +1 -0
  75. package/dist/assets/architecture-7GRP2DOG-CF9MHlfo.js +1 -0
  76. package/dist/assets/architectureDiagram-5GKGNRK7-DzWB6xiQ.js +36 -0
  77. package/dist/assets/array-BifhSqXX.js +1 -0
  78. package/dist/assets/blockDiagram-I7D4REHJ-BtmGJ0hn.js +129 -0
  79. package/dist/assets/c4Diagram-7LVT6UL2-D5CHrrRX.js +38 -0
  80. package/dist/assets/channel-CgM4lcUW.js +1 -0
  81. package/dist/assets/chunk-2Q5K7J3B-C1jixKkw.js +1 -0
  82. package/dist/assets/chunk-4HAMMTFA-DeIufjFl.js +62 -0
  83. package/dist/assets/chunk-5VM5RSS4-ZNzvKenW.js +15 -0
  84. package/dist/assets/chunk-75Z2AOVW-DbtzyKUg.js +2 -0
  85. package/dist/assets/chunk-DU6HZSFF-C0fdbx3K.js +127 -0
  86. package/dist/assets/chunk-F27PBJKO-HObL2IvF.js +1 -0
  87. package/dist/assets/chunk-FOHPRMQF-DD4dKubD.js +161 -0
  88. package/dist/assets/chunk-GMAD6QVW-fg8wvtPY.js +72 -0
  89. package/dist/assets/chunk-GVQU2GXP-C0TaHOrD.js +1 -0
  90. package/dist/assets/chunk-IMKFNOWR-BVoIdx20.js +231 -0
  91. package/dist/assets/chunk-JWPE2WC7-DVXcaiue.js +1 -0
  92. package/dist/assets/chunk-L3NEJ4N5-B_kmqfk5.js +1 -0
  93. package/dist/assets/chunk-OSK3NFVY-DO0vhxHH.js +10 -0
  94. package/dist/assets/chunk-P2QGCYS3-CjljLvFj.js +1 -0
  95. package/dist/assets/chunk-POPQ4Y6H-BU0C7tw6.js +1 -0
  96. package/dist/assets/chunk-PWAF6VOD-Dn0OjBt0.js +1 -0
  97. package/dist/assets/chunk-SHT3W25Y-CMCZE2xx.js +168 -0
  98. package/dist/assets/chunk-SVP7TREG-BIRmRy_W.js +88 -0
  99. package/dist/assets/chunk-TICWLB2K-C1bc2CDE.js +206 -0
  100. package/dist/assets/chunk-XXDRQBXY-Cc38QUmR.js +1 -0
  101. package/dist/assets/chunk-Y2CYZVJY-DsF7k-Jl.js +1 -0
  102. package/dist/assets/classDiagram-ZZMXUADV-BDh5w6Nc.js +1 -0
  103. package/dist/assets/classDiagram-v2-VYDZK3BY-BDh5w6Nc.js +1 -0
  104. package/dist/assets/cose-bilkent-JH36ORCC-B7pU7qhM.js +1 -0
  105. package/dist/assets/cynefin-OW5HDTMX-76dswSqS.js +1 -0
  106. package/dist/assets/cynefinDiagram-5FMLGOSQ-2kS4q01d.js +62 -0
  107. package/dist/assets/cytoscape.esm-BegBNzOV.js +321 -0
  108. package/dist/assets/dagre-D7JM2Yhv.js +1 -0
  109. package/dist/assets/dagre-GXQ25YYZ-B5Y21TQM.js +4 -0
  110. package/dist/assets/defaultLocale-BFoDCU3G.js +1 -0
  111. package/dist/assets/diagram-S7CK7UJ4-CY6td7Et.js +30 -0
  112. package/dist/assets/diagram-UQ7AKVKN-DmDqnGZf.js +41 -0
  113. package/dist/assets/diagram-VSXAHHWV-KGLWOOcE.js +3 -0
  114. package/dist/assets/diagram-VX7I27RA-D5syUraJ.js +24 -0
  115. package/dist/assets/diagram-Z3DM3KII-Dtrbs1Om.js +24 -0
  116. package/dist/assets/dist-Dce-2YbA.js +1 -0
  117. package/dist/assets/ebnfDiagram-PWID7BFC-CQpJLtU3.js +1 -0
  118. package/dist/assets/editor.worker-BmdWdrHZ.js +33 -0
  119. package/dist/assets/erDiagram-RLTQ6QDP-cMTzKLu_.js +99 -0
  120. package/dist/assets/eventmodeling-NTZA5JFV-CMzLdNaL.js +1 -0
  121. package/dist/assets/flowDiagram-HODETNUW-BMUajB-G.js +1 -0
  122. package/dist/assets/ganttDiagram-EL5Y4UJY-DseBS5Fs.js +292 -0
  123. package/dist/assets/gitGraph-4MIJSDKK-CUQZRpxJ.js +1 -0
  124. package/dist/assets/gitGraphDiagram-WWUBYQGX-CfMfsJ3b.js +106 -0
  125. package/dist/assets/graphlib-DS17s2tU.js +1 -0
  126. package/dist/assets/index-ByQ-XX38.css +1 -0
  127. package/dist/assets/index-CIf5TpfY.js +214 -0
  128. package/dist/assets/info-A6RAGUB7-D3nAKZ8M.js +1 -0
  129. package/dist/assets/infoDiagram-27XIBGKW-zu1O0WOy.js +2 -0
  130. package/dist/assets/init-C-OQMol4.js +1 -0
  131. package/dist/assets/ishikawaDiagram-5VMMS53U-DKC7BO9p.js +70 -0
  132. package/dist/assets/journeyDiagram-3NMN7TZE-Ld5mXse7.js +139 -0
  133. package/dist/assets/kanban-definition-UXKFOSKX-CH7_QlHL.js +89 -0
  134. package/dist/assets/katex-DJhrJSbw.js +257 -0
  135. package/dist/assets/line-N9XiCREw.js +1 -0
  136. package/dist/assets/linear-C9hnqmJv.js +1 -0
  137. package/dist/assets/mermaid-parser.core-DgPwV5Bh.js +7 -0
  138. package/dist/assets/mermaid.core-BKqynXLR.js +44 -0
  139. package/dist/assets/mindmap-definition-YA3MSWOX-DkiL-wiW.js +96 -0
  140. package/dist/assets/monaco-DjpsE8to.css +1 -0
  141. package/dist/assets/monaco-DqzJaNIe.js +908 -0
  142. package/dist/assets/ordinal-BDEzSJ7C.js +1 -0
  143. package/dist/assets/packet-AYTQ26CC-DuMTvpEJ.js +1 -0
  144. package/dist/assets/path-fybaL0A-.js +1 -0
  145. package/dist/assets/pegDiagram-XKGWAZYB-DvMl_xSe.js +1 -0
  146. package/dist/assets/pie-WAS4IAKB-Da0xPaD8.js +1 -0
  147. package/dist/assets/pieDiagram-E7YTZNPT-amANNRJY.js +39 -0
  148. package/dist/assets/quadrantDiagram-AXDQQJYC-BrgvDMnk.js +7 -0
  149. package/dist/assets/radar-RG4KPBEZ-Dz3Ih5-N.js +1 -0
  150. package/dist/assets/railroad-74A4TZTK-CKMW-IV2.js +1 -0
  151. package/dist/assets/railroad-abnf-HS5TGJTU-ChqmSWSF.js +1 -0
  152. package/dist/assets/railroad-ebnf-LZEXJU2U-V3R4fFdb.js +1 -0
  153. package/dist/assets/railroad-peg-WCYAUIDC-B-RuhUQW.js +1 -0
  154. package/dist/assets/railroadDiagram-O6MQD6OU-FjG-6OLu.js +1 -0
  155. package/dist/assets/requirementDiagram-BXWQKSXE-Cnj8RfE4.js +84 -0
  156. package/dist/assets/rolldown-runtime-XKyaHtl9.js +1 -0
  157. package/dist/assets/rough.esm-Dy-Kn_BL.js +1 -0
  158. package/dist/assets/sankeyDiagram-P5KCCOFB-DMu1fnEh.js +40 -0
  159. package/dist/assets/sequenceDiagram-WJ2MYXX4-CtCtaRpW.js +162 -0
  160. package/dist/assets/sizeCapture-INFHLROL-3uHXrFqA.js +1 -0
  161. package/dist/assets/src-CGp3bfio.js +1 -0
  162. package/dist/assets/stateDiagram-D77RDMKH-xcJbLNhz.js +1 -0
  163. package/dist/assets/stateDiagram-v2-MP3YSRHH-DYHrQmJJ.js +1 -0
  164. package/dist/assets/swimlanes-42K2YHIH-BwLln_ga.js +1 -0
  165. package/dist/assets/swimlanesDiagram-VR7AAH4N-BcDfUQ0A.js +8 -0
  166. package/dist/assets/timeline-definition-24CTP7MA-ucNGsUUz.js +120 -0
  167. package/dist/assets/treeView-Q6P3EWNA-3uOomRue.js +1 -0
  168. package/dist/assets/treemap-WGGIJYW6-iGK7vwID.js +1 -0
  169. package/dist/assets/vennDiagram-4TSXK5OY-B9LgGe16.js +34 -0
  170. package/dist/assets/wardley-WFR3VGLG-FupMOf6k.js +1 -0
  171. package/dist/assets/wardleyDiagram-VM6X3IG4-CGZdEXM2.js +78 -0
  172. package/dist/assets/xterm-BrP-ENHg.css +1 -0
  173. package/dist/assets/xterm-C8zLTNGk.js +16 -0
  174. package/dist/assets/xychartDiagram-S5SC5T6Z-DafZrSBJ.js +7 -0
  175. package/dist/favicon.ico +0 -0
  176. package/dist/favicon.svg +6 -0
  177. package/dist/index.html +34 -0
  178. package/extensions/implement-goal-issue.ts +368 -0
  179. package/extensions/implement-next-epic.ts +835 -0
  180. package/index.html +28 -0
  181. package/install.sh +111 -0
  182. package/issues/control.ts +91 -0
  183. package/issues/guards.ts +12 -0
  184. package/issues/ledger.ts +122 -0
  185. package/issues/legacy.ts +68 -0
  186. package/issues/lock.ts +305 -0
  187. package/issues/paths.ts +76 -0
  188. package/issues/preflight.ts +189 -0
  189. package/issues/repository.ts +203 -0
  190. package/issues/scout/actions.ts +255 -0
  191. package/issues/scout/control.ts +80 -0
  192. package/issues/scout/github.ts +358 -0
  193. package/issues/scout/paths.ts +129 -0
  194. package/issues/scout/preflight.ts +277 -0
  195. package/issues/scout/recommendation.ts +400 -0
  196. package/issues/scout/scan.ts +143 -0
  197. package/issues/scout/state.ts +448 -0
  198. package/issues/scout/worker.ts +1282 -0
  199. package/issues/state.ts +584 -0
  200. package/issues/tracker.ts +271 -0
  201. package/issues/worker.ts +1065 -0
  202. package/lib/dependencies.ts +61 -0
  203. package/lib/forge-auth.ts +953 -0
  204. package/lib/forge.ts +141 -0
  205. package/lib/gitea.ts +709 -0
  206. package/lib/github-release.ts +318 -0
  207. package/lib/inventory.test.ts +79 -0
  208. package/lib/inventory.ts +53 -0
  209. package/lib/release.test.ts +269 -0
  210. package/lib/release.ts +801 -0
  211. package/omp/commands/adr-resolve.md +8 -0
  212. package/omp/commands/discover.md +6 -0
  213. package/omp/commands/epic-next.md +8 -0
  214. package/omp/commands/flow-change.md +8 -0
  215. package/omp/commands/flow-goal.md +8 -0
  216. package/omp/commands/flow-implement.md +8 -0
  217. package/omp/commands/flow-widget.md +8 -0
  218. package/omp/commands/goal-draft.md +8 -0
  219. package/omp/commands/goal-outcome.md +8 -0
  220. package/omp/commands/implement-issue.md +8 -0
  221. package/omp/commands/prepare-skills.md +6 -0
  222. package/omp/commands/scout-recommendations.md +8 -0
  223. package/omp/commands/setup-devboard.md +24 -0
  224. package/omp/config.yml +12 -0
  225. package/omp/extensions/implement-goal-issue.ts +2 -0
  226. package/omp/extensions/implement-next-epic.ts +2 -0
  227. package/omp/mcp.json +9 -0
  228. package/package.json +86 -7
  229. package/prompts/adr-resolve.md +130 -0
  230. package/prompts/discover.md +541 -0
  231. package/prompts/epic-next.md +533 -0
  232. package/prompts/flow-change.md +76 -0
  233. package/prompts/flow-goal.md +126 -0
  234. package/prompts/flow-implement.md +103 -0
  235. package/prompts/flow-widget.md +54 -0
  236. package/prompts/goal-draft.md +147 -0
  237. package/prompts/goal-outcome.md +87 -0
  238. package/prompts/implement-issue.md +66 -0
  239. package/prompts/prepare-skills.md +142 -0
  240. package/prompts/scout-recommendations.md +143 -0
  241. package/public/apple-touch-icon.png +0 -0
  242. package/public/favicon.ico +0 -0
  243. package/public/favicon.svg +6 -0
  244. package/server/acp.ts +540 -0
  245. package/server/activity.test.ts +96 -0
  246. package/server/activity.ts +48 -0
  247. package/server/app.test.ts +882 -0
  248. package/server/app.ts +6179 -0
  249. package/server/ask.test.ts +543 -0
  250. package/server/ask.ts +589 -0
  251. package/server/dependencies.test.ts +118 -0
  252. package/server/discover-remote.test.ts +1602 -0
  253. package/server/discover-sheet.test.ts +176 -0
  254. package/server/discover.test.ts +1510 -0
  255. package/server/discover.ts +3198 -0
  256. package/server/feedback.test.ts +458 -0
  257. package/server/feedback.ts +369 -0
  258. package/server/fixtures/adr-source.ts +71 -0
  259. package/server/fixtures/hang-download.ts +14 -0
  260. package/server/fixtures/stub-agent.ts +1870 -0
  261. package/server/fixtures/stub-forge.ts +141 -0
  262. package/server/fixtures/stub-gh.ts +57 -0
  263. package/server/flow-pr.test.ts +976 -0
  264. package/server/flow.test.ts +1632 -0
  265. package/server/flow.ts +2655 -0
  266. package/server/forge-pr.ts +387 -0
  267. package/server/goal-creation.test.ts +957 -0
  268. package/server/goal-draft.test.ts +348 -0
  269. package/server/goal-drafts.ts +449 -0
  270. package/server/goal-proposal.test.ts +479 -0
  271. package/server/goal-proposal.ts +232 -0
  272. package/server/goal-revision.test.ts +613 -0
  273. package/server/goal-slug.test.ts +56 -0
  274. package/server/goal-slug.ts +96 -0
  275. package/server/goal.ts +20 -0
  276. package/server/index.ts +147 -0
  277. package/server/issue-close.test.ts +100 -0
  278. package/server/issue-close.ts +178 -0
  279. package/server/issues.test.ts +167 -0
  280. package/server/issues.ts +479 -0
  281. package/server/journal.test.ts +350 -0
  282. package/server/journal.ts +329 -0
  283. package/server/lifecycle-pause.test.ts +1795 -0
  284. package/server/lifecycle.test.ts +1879 -0
  285. package/server/parallel-lifecycle.test.ts +1029 -0
  286. package/server/persistence-restart.test.ts +723 -0
  287. package/server/persistence.test.ts +1935 -0
  288. package/server/records.test.ts +180 -0
  289. package/server/records.ts +99 -0
  290. package/server/reset-implementation.test.ts +997 -0
  291. package/server/run.test.ts +611 -0
  292. package/server/scout.test.ts +877 -0
  293. package/server/scout.ts +459 -0
  294. package/server/skills-preparation.test.ts +1073 -0
  295. package/server/state.ts +249 -0
  296. package/server/tracker.ts +369 -0
  297. package/server/updates.test.ts +444 -0
  298. package/server/updates.ts +198 -0
  299. package/server/version.test.ts +140 -0
  300. package/server/version.ts +151 -0
  301. package/server/watchdog.ts +389 -0
  302. package/svelte.config.js +5 -0
  303. package/templates/host-AGENTS.md +235 -0
  304. package/tsconfig.json +21 -0
  305. package/vite.config.ts +21 -0
  306. package/watchdog/cleanup-main.ts +98 -0
  307. package/watchdog/cleanup.ts +301 -0
  308. package/watchdog/collect.ts +311 -0
  309. package/watchdog/coordinator.ts +397 -0
  310. package/watchdog/delivery.ts +107 -0
  311. package/watchdog/discovery.ts +209 -0
  312. package/watchdog/findings.ts +211 -0
  313. package/watchdog/github.ts +189 -0
  314. package/watchdog/history.ts +138 -0
  315. package/watchdog/install.ts +103 -0
  316. package/watchdog/ledger.ts +188 -0
  317. package/watchdog/lock.ts +63 -0
  318. package/watchdog/main.ts +106 -0
  319. package/watchdog/status.ts +71 -0
  320. package/watchdog/systemd.ts +96 -0
  321. package/watchdog/uninstall.ts +30 -0
  322. package/watchdog/units/devboard-watchdog.service +9 -0
  323. package/watchdog/units/devboard-watchdog.timer +10 -0
@@ -0,0 +1,106 @@
1
+ import{n as e}from"./mermaid-parser.core-DgPwV5Bh.js";import{n as t}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{m as n,p as r}from"./src-CGp3bfio.js";import{H as i,K as a,U as o,Y as s,a as c,b as l,f as u,s as d,v as f,w as p,x as m,y as h}from"./chunk-DU6HZSFF-C0fdbx3K.js";import{g,i as _,m as v}from"./chunk-75Z2AOVW-DbtzyKUg.js";import{t as y}from"./chunk-JWPE2WC7-DVXcaiue.js";import{t as b}from"./chunk-2Q5K7J3B-C1jixKkw.js";var x={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},ee=u.gitGraph,S=t(()=>_({...ee,...l().gitGraph}),`getConfig`),C=new b(()=>{let e=S(),t=e.mainBranchName,n=e.mainBranchOrder;return{mainBranchName:t,commits:new Map,head:null,branchConfig:new Map([[t,{name:t,order:n}]]),branches:new Map([[t,null]]),currBranch:t,direction:`LR`,seq:0,options:{}}});function w(){return v({length:7})}t(w,`getID`);function T(e,t){let n=Object.create(null);return e.reduce((e,r)=>{let i=t(r);return n[i]||(n[i]=!0,e.push(r)),e},[])}t(T,`uniqBy`);var te=t(function(e){C.records.direction=e},`setDirection`),ne=t(function(e){n.debug(`options str`,e),e=e?.trim(),e||=`{}`;try{C.records.options=JSON.parse(e)}catch(e){n.error(`error while parsing gitGraph options`,e.message)}},`setOptions`),re=t(function(){return C.records.options},`getOptions`),ie=t(function(e){let t=e.msg,r=e.id,i=e.type,a=e.tags;n.info(`commit`,t,r,i,a),n.debug(`Entering commit:`,t,r,i,a);let o=S();r=d.sanitizeText(r,o),t=d.sanitizeText(t,o),a=a?.map(e=>d.sanitizeText(e,o));let s={id:r||C.records.seq+`-`+w(),message:t,seq:C.records.seq++,type:i??x.NORMAL,tags:a??[],parents:C.records.head==null?[]:[C.records.head.id],branch:C.records.currBranch};C.records.head=s,n.info(`main branch`,o.mainBranchName),C.records.commits.has(s.id)&&n.warn(`Commit ID ${s.id} already exists`),C.records.commits.set(s.id,s),C.records.branches.set(C.records.currBranch,s.id),n.debug(`in pushCommit `+s.id)},`commit`),ae=t(function(e){let t=e.name,r=e.order;if(t=d.sanitizeText(t,S()),C.records.branches.has(t))throw Error(`Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout ${t}")`);C.records.branches.set(t,C.records.head==null?null:C.records.head.id),C.records.branchConfig.set(t,{name:t,order:r}),E(t),n.debug(`in createBranch`)},`branch`),oe=t(e=>{let t=e.branch,r=e.id,i=e.type,a=e.tags,o=S();t=d.sanitizeText(t,o),r&&=d.sanitizeText(r,o);let s=C.records.branches.get(C.records.currBranch),c=C.records.branches.get(t),l=s?C.records.commits.get(s):void 0,u=c?C.records.commits.get(c):void 0;if(l&&u&&l.branch===t)throw Error(`Cannot merge branch '${t}' into itself.`);if(C.records.currBranch===t){let e=Error(`Incorrect usage of "merge". Cannot merge a branch to itself`);throw e.hash={text:`merge ${t}`,token:`merge ${t}`,expected:[`branch abc`]},e}if(l===void 0||!l){let e=Error(`Incorrect usage of "merge". Current branch (${C.records.currBranch})has no commits`);throw e.hash={text:`merge ${t}`,token:`merge ${t}`,expected:[`commit`]},e}if(!C.records.branches.has(t)){let e=Error(`Incorrect usage of "merge". Branch to be merged (`+t+`) does not exist`);throw e.hash={text:`merge ${t}`,token:`merge ${t}`,expected:[`branch ${t}`]},e}if(u===void 0||!u){let e=Error(`Incorrect usage of "merge". Branch to be merged (`+t+`) has no commits`);throw e.hash={text:`merge ${t}`,token:`merge ${t}`,expected:[`"commit"`]},e}if(l===u){let e=Error(`Incorrect usage of "merge". Both branches have same head`);throw e.hash={text:`merge ${t}`,token:`merge ${t}`,expected:[`branch abc`]},e}if(r&&C.records.commits.has(r)){let e=Error(`Incorrect usage of "merge". Commit with id:`+r+` already exists, use different custom id`);throw e.hash={text:`merge ${t} ${r} ${i} ${a?.join(` `)}`,token:`merge ${t} ${r} ${i} ${a?.join(` `)}`,expected:[`merge ${t} ${r}_UNIQUE ${i} ${a?.join(` `)}`]},e}let f=c||``,p={id:r||`${C.records.seq}-${w()}`,message:`merged branch ${t} into ${C.records.currBranch}`,seq:C.records.seq++,parents:C.records.head==null?[]:[C.records.head.id,f],branch:C.records.currBranch,type:x.MERGE,customType:i,customId:!!r,tags:a??[]};C.records.head=p,C.records.commits.set(p.id,p),C.records.branches.set(C.records.currBranch,p.id),n.debug(C.records.branches),n.debug(`in mergeBranch`)},`merge`),se=t(function(e){let t=e.id,r=e.targetId,i=e.tags,a=e.parent;n.debug(`Entering cherryPick:`,t,r,i);let o=S();if(t=d.sanitizeText(t,o),r=d.sanitizeText(r,o),i=i?.map(e=>d.sanitizeText(e,o)),a=d.sanitizeText(a,o),!t||!C.records.commits.has(t)){let e=Error(`Incorrect usage of "cherryPick". Source commit id should exist and provided`);throw e.hash={text:`cherryPick ${t} ${r}`,token:`cherryPick ${t} ${r}`,expected:[`cherry-pick abc`]},e}let s=C.records.commits.get(t);if(s===void 0||!s)throw Error(`Incorrect usage of "cherryPick". Source commit id should exist and provided`);if(a&&!(Array.isArray(s.parents)&&s.parents.includes(a)))throw Error(`Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit.`);let c=s.branch;if(s.type===x.MERGE&&!a)throw Error(`Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified.`);if(!r||!C.records.commits.has(r)){if(c===C.records.currBranch){let e=Error(`Incorrect usage of "cherryPick". Source commit is already on current branch`);throw e.hash={text:`cherryPick ${t} ${r}`,token:`cherryPick ${t} ${r}`,expected:[`cherry-pick abc`]},e}let e=C.records.branches.get(C.records.currBranch);if(e===void 0||!e){let e=Error(`Incorrect usage of "cherry-pick". Current branch (${C.records.currBranch})has no commits`);throw e.hash={text:`cherryPick ${t} ${r}`,token:`cherryPick ${t} ${r}`,expected:[`cherry-pick abc`]},e}let o=C.records.commits.get(e);if(o===void 0||!o){let e=Error(`Incorrect usage of "cherry-pick". Current branch (${C.records.currBranch})has no commits`);throw e.hash={text:`cherryPick ${t} ${r}`,token:`cherryPick ${t} ${r}`,expected:[`cherry-pick abc`]},e}let l={id:C.records.seq+`-`+w(),message:`cherry-picked ${s?.message} into ${C.records.currBranch}`,seq:C.records.seq++,parents:C.records.head==null?[]:[C.records.head.id,s.id],branch:C.records.currBranch,type:x.CHERRY_PICK,tags:i?i.filter(Boolean):[`cherry-pick:${s.id}${s.type===x.MERGE?`|parent:${a}`:``}`]};C.records.head=l,C.records.commits.set(l.id,l),C.records.branches.set(C.records.currBranch,l.id),n.debug(C.records.branches),n.debug(`in cherryPick`)}},`cherryPick`),E=t(function(e){if(e=d.sanitizeText(e,S()),C.records.branches.has(e)){C.records.currBranch=e;let t=C.records.branches.get(C.records.currBranch);t===void 0||!t?C.records.head=null:C.records.head=C.records.commits.get(t)??null}else{let t=Error(`Trying to checkout branch which is not yet created. (Help try using "branch ${e}")`);throw t.hash={text:`checkout ${e}`,token:`checkout ${e}`,expected:[`branch ${e}`]},t}},`checkout`);function D(e,t,n){let r=e.indexOf(t);r===-1?e.push(n):e.splice(r,1,n)}t(D,`upsert`);function O(e){let t=e.reduce((e,t)=>e.seq>t.seq?e:t,e[0]),r=``;e.forEach(function(e){r+=e===t?` *`:` |`});let i=[r,t.id,t.seq];for(let e in C.records.branches)C.records.branches.get(e)===t.id&&i.push(e);if(n.debug(i.join(` `)),t.parents&&t.parents.length==2&&t.parents[0]&&t.parents[1]){let n=C.records.commits.get(t.parents[0]);D(e,t,n),t.parents[1]&&e.push(C.records.commits.get(t.parents[1]))}else if(t.parents.length==0)return;else if(t.parents[0]){let n=C.records.commits.get(t.parents[0]);D(e,t,n)}e=T(e,e=>e.id),O(e)}t(O,`prettyPrintCommitHistory`);var ce=t(function(){n.debug(C.records.commits);let e=k()[0];O([e])},`prettyPrint`),le=t(function(){C.reset(),c()},`clear`),ue=t(function(){return[...C.records.branchConfig.values()].map((e,t)=>e.order!==null&&e.order!==void 0?e:{...e,order:parseFloat(`0.${t}`)}).sort((e,t)=>(e.order??0)-(t.order??0)).map(({name:e})=>({name:e}))},`getBranchesAsObjArray`),de=t(function(){return C.records.branches},`getBranches`),fe=t(function(){return C.records.commits},`getCommits`),k=t(function(){let e=[...C.records.commits.values()];return e.forEach(function(e){n.debug(e.id)}),e.sort((e,t)=>e.seq-t.seq),e},`getCommitsArray`),A={commitType:x,getConfig:S,setDirection:te,setOptions:ne,getOptions:re,commit:ie,branch:ae,merge:oe,cherryPick:se,checkout:E,prettyPrint:ce,clear:le,getBranchesAsObjArray:ue,getBranches:de,getCommits:fe,getCommitsArray:k,getCurrentBranch:t(function(){return C.records.currBranch},`getCurrentBranch`),getDirection:t(function(){return C.records.direction},`getDirection`),getHead:t(function(){return C.records.head},`getHead`),setAccTitle:o,getAccTitle:h,getAccDescription:f,setAccDescription:i,setDiagramTitle:a,getDiagramTitle:p},pe=t((e,t)=>{y(e,t),e.dir&&t.setDirection(e.dir);for(let n of e.statements)me(n,t)},`populate`),me=t((e,r)=>{let i={Commit:t(e=>r.commit(he(e)),`Commit`),Branch:t(e=>r.branch(ge(e)),`Branch`),Merge:t(e=>r.merge(_e(e)),`Merge`),Checkout:t(e=>r.checkout(ve(e)),`Checkout`),CherryPicking:t(e=>r.cherryPick(ye(e)),`CherryPicking`)}[e.$type];i?i(e):n.error(`Unknown statement type: ${e.$type}`)},`parseStatement`),he=t(e=>({id:e.id,msg:e.message??``,type:e.type===void 0?x.NORMAL:x[e.type],tags:e.tags??void 0}),`parseCommit`),ge=t(e=>({name:e.name,order:e.order??0}),`parseBranch`),_e=t(e=>({branch:e.branch,id:e.id??``,type:e.type===void 0?void 0:x[e.type],tags:e.tags??void 0}),`parseMerge`),ve=t(e=>e.branch,`parseCheckout`),ye=t(e=>({id:e.id,targetId:``,tags:e.tags?.length===0?void 0:e.tags,parent:e.parent}),`parseCherryPicking`),be={parse:t(async t=>{let r=await e(`gitGraph`,t);n.debug(r),pe(r,A)},`parse`)},j=10,M=40,N=4,P=2,F=8,I=new Set([`redux`,`redux-dark`,`redux-color`,`redux-dark-color`]),L=12,R=new Set([`redux-color`,`redux-dark-color`]),xe=new Set([`dark`,`redux-dark`,`redux-dark-color`,`neo-dark`]),z=t((e,t,n=!1)=>n&&e>0?(e-1)%(t-1)+1:e%t,`calcColorIndex`),B=new Map,V=new Map,H=30,U=new Map,W=[],G=0,K=`LR`,Se=t(()=>{B.clear(),V.clear(),U.clear(),G=0,W=[],K=`LR`},`clear`),q=t(e=>{let t=document.createElementNS(`http://www.w3.org/2000/svg`,`text`);return(typeof e==`string`?e.split(/\\n|\n|<br\s*\/?>/gi):e).forEach(e=>{let n=document.createElementNS(`http://www.w3.org/2000/svg`,`tspan`);n.setAttributeNS(`http://www.w3.org/XML/1998/namespace`,`xml:space`,`preserve`),n.setAttribute(`dy`,`1em`),n.setAttribute(`x`,`0`),n.setAttribute(`class`,`row`),n.textContent=e.trim(),t.appendChild(n)}),t},`drawText`),J=t(e=>{let n,r,i;return K===`BT`?(r=t((e,t)=>e<=t,`comparisonFunc`),i=1/0):(r=t((e,t)=>e>=t,`comparisonFunc`),i=0),e.forEach(e=>{let t=K===`TB`||K==`BT`?V.get(e)?.y:V.get(e)?.x;t!==void 0&&r(t,i)&&(n=e,i=t)}),n},`findClosestParent`),Ce=t(e=>{let t=``,n=1/0;return e.forEach(e=>{let r=V.get(e).y;r<=n&&(t=e,n=r)}),t||void 0},`findClosestParentBT`),we=t((e,t,n)=>{let r=n,i=n,a=[];e.forEach(e=>{let n=t.get(e);if(!n)throw Error(`Commit not found for key ${e}`);n.parents.length?(r=Ee(n),i=Math.max(r,i)):a.push(n),De(n,r)}),r=i,a.forEach(e=>{Oe(e,r,n)}),e.forEach(e=>{let n=t.get(e);if(n?.parents.length){let e=Ce(n.parents);r=V.get(e).y-M,r<=i&&(i=r);let t=B.get(n.branch).pos,a=r-j;V.set(n.id,{x:t,y:a})}})},`setParallelBTPos`),Te=t(e=>{let t=J(e.parents.filter(e=>e!==null));if(!t)throw Error(`Closest parent not found for commit ${e.id}`);let n=V.get(t)?.y;if(n===void 0)throw Error(`Closest parent position not found for commit ${e.id}`);return n},`findClosestParentPos`),Ee=t(e=>Te(e)+M,`calculateCommitPosition`),De=t((e,t)=>{let n=B.get(e.branch);if(!n)throw Error(`Branch not found for commit ${e.id}`);let r=n.pos,i=t+j;return V.set(e.id,{x:r,y:i}),{x:r,y:i}},`setCommitPosition`),Oe=t((e,t,n)=>{let r=B.get(e.branch);if(!r)throw Error(`Branch not found for commit ${e.id}`);let i=t+n,a=r.pos;V.set(e.id,{x:a,y:i})},`setRootPosition`),ke=t((e,t,n,r,i,a)=>{let{theme:o}=m(),s=I.has(o??``),c=R.has(o??``),l=xe.has(o??``);if(a===x.HIGHLIGHT)e.append(`rect`).attr(`x`,n.x-10+(s?3:0)).attr(`y`,n.y-10+(s?3:0)).attr(`width`,s?14:20).attr(`height`,s?14:20).attr(`class`,`commit ${t.id} commit-highlight${z(i,F,c)} ${r}-outer`),e.append(`rect`).attr(`x`,n.x-6+(s?2:0)).attr(`y`,n.y-6+(s?2:0)).attr(`width`,s?8:12).attr(`height`,s?8:12).attr(`class`,`commit ${t.id} commit${z(i,F,c)} ${r}-inner`);else if(a===x.CHERRY_PICK)e.append(`circle`).attr(`cx`,n.x).attr(`cy`,n.y).attr(`r`,s?7:10).attr(`class`,`commit ${t.id} ${r}`),e.append(`circle`).attr(`cx`,n.x-3).attr(`cy`,n.y+2).attr(`r`,s?2.5:2.75).attr(`fill`,l?`#000000`:`#fff`).attr(`class`,`commit ${t.id} ${r}`),e.append(`circle`).attr(`cx`,n.x+3).attr(`cy`,n.y+2).attr(`r`,s?2.5:2.75).attr(`fill`,l?`#000000`:`#fff`).attr(`class`,`commit ${t.id} ${r}`),e.append(`line`).attr(`x1`,n.x+3).attr(`y1`,n.y+1).attr(`x2`,n.x).attr(`y2`,n.y-5).attr(`stroke`,l?`#000000`:`#fff`).attr(`class`,`commit ${t.id} ${r}`),e.append(`line`).attr(`x1`,n.x-3).attr(`y1`,n.y+1).attr(`x2`,n.x).attr(`y2`,n.y-5).attr(`stroke`,l?`#000000`:`#fff`).attr(`class`,`commit ${t.id} ${r}`);else{let o=e.append(`circle`);if(o.attr(`cx`,n.x),o.attr(`cy`,n.y),o.attr(`r`,s?7:10),o.attr(`class`,`commit ${t.id} commit${z(i,F,c)}`),a===x.MERGE){let a=e.append(`circle`);a.attr(`cx`,n.x),a.attr(`cy`,n.y),a.attr(`r`,s?5:6),a.attr(`class`,`commit ${r} ${t.id} commit${z(i,F,c)}`)}if(a===x.REVERSE){let a=e.append(`path`),o=s?4:5;a.attr(`d`,`M ${n.x-o},${n.y-o}L${n.x+o},${n.y+o}M${n.x-o},${n.y+o}L${n.x+o},${n.y-o}`).attr(`class`,`commit ${r} ${t.id} commit${z(i,F,c)}`)}}},`drawCommitBullet`),Ae=t((e,t,n,r,i)=>{if(t.type!==x.CHERRY_PICK&&(t.customId&&t.type===x.MERGE||t.type!==x.MERGE)&&i.showCommitLabel){let a=e.append(`g`),o=a.insert(`rect`).attr(`class`,`commit-label-bkg`),s=a.append(`text`).attr(`x`,r).attr(`y`,n.y+25).attr(`class`,`commit-label`).text(t.id),c=s.node()?.getBBox();if(c&&(o.attr(`x`,n.posWithOffset-c.width/2-P).attr(`y`,n.y+13.5).attr(`width`,c.width+2*P).attr(`height`,c.height+2*P),K===`TB`||K===`BT`?(o.attr(`x`,n.x-(c.width+4*N+5)).attr(`y`,n.y-12),s.attr(`x`,n.x-(c.width+4*N)).attr(`y`,n.y+c.height-12)):s.attr(`x`,n.posWithOffset-c.width/2),i.rotateCommitLabel)){if(K===`TB`||K===`BT`)s.attr(`transform`,`rotate(-45, `+n.x+`, `+n.y+`)`),o.attr(`transform`,`rotate(-45, `+n.x+`, `+n.y+`)`);else{let e=-7.5-(c.width+10)/25*9.5,t=10+c.width/25*8.5;a.attr(`transform`,`translate(`+e+`, `+t+`) rotate(-45, `+r+`, `+n.y+`)`)}}}},`drawCommitLabel`),je=t((e,t,n,r)=>{if(t.tags.length>0){let i=0,a=0,o=0,s=[];for(let r of t.tags.reverse()){let t=e.insert(`polygon`),c=e.append(`circle`),l=e.append(`text`).attr(`y`,n.y-16-i).attr(`class`,`tag-label`).text(r),u=l.node()?.getBBox();if(!u)throw Error(`Tag bbox not found`);a=Math.max(a,u.width),o=Math.max(o,u.height),l.attr(`x`,n.posWithOffset-u.width/2),s.push({tag:l,hole:c,rect:t,yOffset:i}),i+=20}for(let{tag:e,hole:t,rect:i,yOffset:c}of s){let s=o/2,l=n.y-19.2-c;if(i.attr(`class`,`tag-label-bkg`).attr(`points`,`
2
+ ${r-a/2-N/2},${l+P}
3
+ ${r-a/2-N/2},${l-P}
4
+ ${n.posWithOffset-a/2-N},${l-s-P}
5
+ ${n.posWithOffset+a/2+N},${l-s-P}
6
+ ${n.posWithOffset+a/2+N},${l+s+P}
7
+ ${n.posWithOffset-a/2-N},${l+s+P}`),t.attr(`cy`,l).attr(`cx`,r-a/2+N/2).attr(`r`,1.5).attr(`class`,`tag-hole`),K===`TB`||K===`BT`){let o=r+c;i.attr(`class`,`tag-label-bkg`).attr(`points`,`
8
+ ${n.x},${o+2}
9
+ ${n.x},${o-2}
10
+ ${n.x+j},${o-s-2}
11
+ ${n.x+j+a+4},${o-s-2}
12
+ ${n.x+j+a+4},${o+s+2}
13
+ ${n.x+j},${o+s+2}`).attr(`transform`,`translate(12,12) rotate(45, `+n.x+`,`+r+`)`),t.attr(`cx`,n.x+N/2).attr(`cy`,o).attr(`transform`,`translate(12,12) rotate(45, `+n.x+`,`+r+`)`),e.attr(`x`,n.x+5).attr(`y`,o+3).attr(`transform`,`translate(14,14) rotate(45, `+n.x+`,`+r+`)`)}}}},`drawCommitTags`),Me=t(e=>{switch(e.customType??e.type){case x.NORMAL:return`commit-normal`;case x.REVERSE:return`commit-reverse`;case x.HIGHLIGHT:return`commit-highlight`;case x.MERGE:return`commit-merge`;case x.CHERRY_PICK:return`commit-cherry-pick`;default:return`commit-normal`}},`getCommitClassType`),Ne=t((e,t,n,r)=>{let i={x:0,y:0};if(e.parents.length>0){let n=J(e.parents);if(n){let a=r.get(n)??i;return t===`TB`?a.y+M:t===`BT`?(r.get(e.id)??i).y-M:a.x+M}}else if(t===`TB`)return H;else if(t===`BT`)return(r.get(e.id)??i).y-M;else return 0;return 0},`calculatePosition`),Pe=t((e,t,n)=>{let r=K===`BT`&&n?t:t+j,i=B.get(e.branch)?.pos,a=K===`TB`||K===`BT`?B.get(e.branch)?.pos:r;if(a===void 0||i===void 0)throw Error(`Position were undefined for commit ${e.id}`);let o=I.has(m().theme??``);return{x:a,y:K===`TB`||K===`BT`?r:i+(o?L/2+1:-2),posWithOffset:r}},`getCommitPosition`),Y=t((e,n,r,i)=>{let a=e.append(`g`).attr(`class`,`commit-bullets`),o=e.append(`g`).attr(`class`,`commit-labels`),s=K===`TB`||K===`BT`?H:0,c=[...n.keys()],l=i.parallelCommits??!1,u=t((e,t)=>{let r=n.get(e)?.seq,i=n.get(t)?.seq;return r!==void 0&&i!==void 0?r-i:0},`sortKeys`),d=c.sort(u);K===`BT`&&(l&&we(d,n,s),d=d.reverse()),d.forEach(e=>{let t=n.get(e);if(!t)throw Error(`Commit not found for key ${e}`);l&&(s=Ne(t,K,s,V));let c=Pe(t,s,l);if(r){let e=Me(t),n=t.customType??t.type,r=B.get(t.branch)?.index??0;ke(a,t,c,e,r,n),Ae(o,t,c,s,i),je(o,t,c,s)}K===`TB`||K===`BT`?V.set(t.id,{x:c.x,y:c.posWithOffset}):V.set(t.id,{x:c.posWithOffset,y:c.y}),s=K===`BT`&&l?s+M:s+M+j,s>G&&(G=s)})},`drawCommits`),Fe=t((e,n,r,i,a)=>{let o=(K===`TB`||K===`BT`?r.x<i.x:r.y<i.y)?n.branch:e.branch,s=t(e=>e.branch===o,`isOnBranchToGetCurve`),c=t(t=>t.seq>e.seq&&t.seq<n.seq,`isBetweenCommits`);return[...a.values()].some(e=>c(e)&&s(e))},`shouldRerouteArrow`),X=t((e,t,n=0)=>{let r=e+Math.abs(e-t)/2;return n>5?r:W.every(e=>Math.abs(e-r)>=10)?(W.push(r),r):X(e,t-Math.abs(e-t)/5,n+1)},`findLane`),Ie=t((e,t,n,r)=>{let{theme:i}=m(),a=R.has(i??``),o=V.get(t.id),s=V.get(n.id);if(o===void 0||s===void 0)throw Error(`Commit positions not found for commits ${t.id} and ${n.id}`);let c=Fe(t,n,o,s,r),l=``,u=``,d=0,f=0,p=B.get(n.branch)?.index;n.type===x.MERGE&&t.id!==n.parents[0]&&(p=B.get(t.branch)?.index);let h;if(c){l=`A 10 10, 0, 0, 0,`,u=`A 10 10, 0, 0, 1,`,d=10,f=10;let e=o.y<s.y?X(o.y,s.y):X(s.y,o.y),n=o.x<s.x?X(o.x,s.x):X(s.x,o.x);K===`TB`?o.x<s.x?h=`M ${o.x} ${o.y} L ${n-d} ${o.y} ${u} ${n} ${o.y+f} L ${n} ${s.y-d} ${l} ${n+f} ${s.y} L ${s.x} ${s.y}`:(p=B.get(t.branch)?.index,h=`M ${o.x} ${o.y} L ${n+d} ${o.y} ${l} ${n} ${o.y+f} L ${n} ${s.y-d} ${u} ${n-f} ${s.y} L ${s.x} ${s.y}`):K===`BT`?o.x<s.x?h=`M ${o.x} ${o.y} L ${n-d} ${o.y} ${l} ${n} ${o.y-f} L ${n} ${s.y+d} ${u} ${n+f} ${s.y} L ${s.x} ${s.y}`:(p=B.get(t.branch)?.index,h=`M ${o.x} ${o.y} L ${n+d} ${o.y} ${u} ${n} ${o.y-f} L ${n} ${s.y+d} ${l} ${n-f} ${s.y} L ${s.x} ${s.y}`):o.y<s.y?h=`M ${o.x} ${o.y} L ${o.x} ${e-d} ${l} ${o.x+f} ${e} L ${s.x-d} ${e} ${u} ${s.x} ${e+f} L ${s.x} ${s.y}`:(p=B.get(t.branch)?.index,h=`M ${o.x} ${o.y} L ${o.x} ${e+d} ${u} ${o.x+f} ${e} L ${s.x-d} ${e} ${l} ${s.x} ${e-f} L ${s.x} ${s.y}`)}else l=`A 20 20, 0, 0, 0,`,u=`A 20 20, 0, 0, 1,`,d=20,f=20,K===`TB`?(o.x<s.x&&(h=n.type===x.MERGE&&t.id!==n.parents[0]?`M ${o.x} ${o.y} L ${o.x} ${s.y-d} ${l} ${o.x+f} ${s.y} L ${s.x} ${s.y}`:`M ${o.x} ${o.y} L ${s.x-d} ${o.y} ${u} ${s.x} ${o.y+f} L ${s.x} ${s.y}`),o.x>s.x&&(l=`A 20 20, 0, 0, 0,`,u=`A 20 20, 0, 0, 1,`,d=20,f=20,h=n.type===x.MERGE&&t.id!==n.parents[0]?`M ${o.x} ${o.y} L ${o.x} ${s.y-d} ${u} ${o.x-f} ${s.y} L ${s.x} ${s.y}`:`M ${o.x} ${o.y} L ${s.x+d} ${o.y} ${l} ${s.x} ${o.y+f} L ${s.x} ${s.y}`),o.x===s.x&&(h=`M ${o.x} ${o.y} L ${s.x} ${s.y}`)):K===`BT`?(o.x<s.x&&(h=n.type===x.MERGE&&t.id!==n.parents[0]?`M ${o.x} ${o.y} L ${o.x} ${s.y+d} ${u} ${o.x+f} ${s.y} L ${s.x} ${s.y}`:`M ${o.x} ${o.y} L ${s.x-d} ${o.y} ${l} ${s.x} ${o.y-f} L ${s.x} ${s.y}`),o.x>s.x&&(l=`A 20 20, 0, 0, 0,`,u=`A 20 20, 0, 0, 1,`,d=20,f=20,h=n.type===x.MERGE&&t.id!==n.parents[0]?`M ${o.x} ${o.y} L ${o.x} ${s.y+d} ${l} ${o.x-f} ${s.y} L ${s.x} ${s.y}`:`M ${o.x} ${o.y} L ${s.x+d} ${o.y} ${u} ${s.x} ${o.y-f} L ${s.x} ${s.y}`),o.x===s.x&&(h=`M ${o.x} ${o.y} L ${s.x} ${s.y}`)):(o.y<s.y&&(h=n.type===x.MERGE&&t.id!==n.parents[0]?`M ${o.x} ${o.y} L ${s.x-d} ${o.y} ${u} ${s.x} ${o.y+f} L ${s.x} ${s.y}`:`M ${o.x} ${o.y} L ${o.x} ${s.y-d} ${l} ${o.x+f} ${s.y} L ${s.x} ${s.y}`),o.y>s.y&&(h=n.type===x.MERGE&&t.id!==n.parents[0]?`M ${o.x} ${o.y} L ${s.x-d} ${o.y} ${l} ${s.x} ${o.y-f} L ${s.x} ${s.y}`:`M ${o.x} ${o.y} L ${o.x} ${s.y+d} ${u} ${o.x+f} ${s.y} L ${s.x} ${s.y}`),o.y===s.y&&(h=`M ${o.x} ${o.y} L ${s.x} ${s.y}`));if(h===void 0)throw Error(`Line definition not found`);e.append(`path`).attr(`d`,h).attr(`class`,`arrow arrow`+z(p,F,a))},`drawArrow`),Le=t((e,t)=>{let n=e.append(`g`).attr(`class`,`commit-arrows`);[...t.keys()].forEach(e=>{let r=t.get(e);r.parents&&r.parents.length>0&&r.parents.forEach(e=>{Ie(n,t.get(e),r,t)})})},`drawArrows`),Re=t((e,t,n,r)=>{let{look:i,theme:a,themeVariables:o}=m(),{dropShadow:s,THEME_COLOR_LIMIT:c}=o,l=I.has(a??``),u=R.has(a??``),d=e.append(`g`);t.forEach((e,t)=>{let a=z(t,l?c:F,u),o=B.get(e.name)?.pos;if(o===void 0)throw Error(`Position not found for branch ${e.name}`);let f=K===`TB`||K===`BT`?o:l?o+L/2+1:o-2,p=d.append(`line`);p.attr(`x1`,0),p.attr(`y1`,f),p.attr(`x2`,G),p.attr(`y2`,f),p.attr(`class`,`branch branch`+a),K===`TB`?(p.attr(`y1`,H),p.attr(`x1`,o),p.attr(`y2`,G),p.attr(`x2`,o)):K===`BT`&&(p.attr(`y1`,G),p.attr(`x1`,o),p.attr(`y2`,H),p.attr(`x2`,o)),W.push(f);let m=e.name,h=q(m),g=d.insert(`rect`),_=d.insert(`g`).attr(`class`,`branchLabel`).insert(`g`).attr(`class`,`label branch-label`+a);_.node().appendChild(h);let v=h.getBBox(),y=l?0:4,b=l?16:0,x=l?L:0;i===`neo`&&g.attr(`data-look`,`neo`),g.attr(`class`,`branchLabelBkg label`+a).attr(`style`,i===`neo`?`filter:${l?`url(#${r}-drop-shadow)`:s}`:``).attr(`rx`,y).attr(`ry`,y).attr(`x`,-v.width-4-(n.rotateCommitLabel===!0?30:0)).attr(`y`,-v.height/2+10).attr(`width`,v.width+18+b).attr(`height`,v.height+4+x),_.attr(`transform`,`translate(`+(-v.width-14-(n.rotateCommitLabel===!0?30:0)+b/2)+`, `+(f-v.height/2-2)+`)`),K===`TB`?(g.attr(`x`,o-v.width/2-10).attr(`y`,0),_.attr(`transform`,`translate(`+(o-v.width/2-5)+`, 0)`),l&&(g.attr(`transform`,`translate(${-b/2-3}, ${-x-10})`),_.attr(`transform`,`translate(`+(o-v.width/2-5)+`, `+(-x*2+7)+`)`))):K===`BT`?(g.attr(`x`,o-v.width/2-10).attr(`y`,G),_.attr(`transform`,`translate(`+(o-v.width/2-5)+`, `+G+`)`),l&&(g.attr(`transform`,`translate(${-b/2-3}, ${x+10})`),_.attr(`transform`,`translate(`+(o-v.width/2-5)+`, `+(G+x*2+4)+`)`))):g.attr(`transform`,`translate(-19, `+(f-12-x/2)+`)`)})},`drawBranches`),ze=t(function(e,t,n,r,i){return B.set(e,{pos:t,index:n}),t+=50+(i?40:0)+(K===`TB`||K===`BT`?r.width/2:0),t},`setBranchPosition`),Be={draw:t(function(e,t,i,a){Se(),n.debug(`in gitgraph renderer`,e+`
14
+ `,`id:`,t,i);let o=a.db;if(!o.getConfig){n.error(`getConfig method is not available on db`);return}let c=o.getConfig(),l=c.rotateCommitLabel??!1;U=o.getCommits();let u=o.getBranchesAsObjArray();K=o.getDirection();let d=r(`[id="${t}"]`),{look:f,theme:p,themeVariables:h}=m(),{useGradient:_,gradientStart:v,gradientStop:y,filterColor:b}=h;if(_){let e=d.append(`defs`).append(`linearGradient`).attr(`id`,t+`-gradient`).attr(`gradientUnits`,`objectBoundingBox`).attr(`x1`,`0%`).attr(`y1`,`0%`).attr(`x2`,`100%`).attr(`y2`,`0%`);e.append(`stop`).attr(`offset`,`0%`).attr(`stop-color`,v).attr(`stop-opacity`,1),e.append(`stop`).attr(`offset`,`100%`).attr(`stop-color`,y).attr(`stop-opacity`,1)}f===`neo`&&I.has(p??``)&&d.append(`defs`).append(`filter`).attr(`id`,t+`-drop-shadow`).attr(`height`,`130%`).attr(`width`,`130%`).append(`feDropShadow`).attr(`dx`,`4`).attr(`dy`,`4`).attr(`stdDeviation`,0).attr(`flood-opacity`,`0.06`).attr(`flood-color`,b);let x=0;u.forEach((e,t)=>{let n=q(e.name),r=d.append(`g`),i=r.insert(`g`).attr(`class`,`branchLabel`),a=i.insert(`g`).attr(`class`,`label branch-label`);a.node()?.appendChild(n);let o=n.getBBox();x=ze(e.name,x,t,o,l),a.remove(),i.remove(),r.remove()}),Y(d,U,!1,c),c.showBranches&&Re(d,u,c,t),Le(d,U),Y(d,U,!0,c),g.insertTitle(d,`gitTitleText`,c.titleTopMargin??0,o.getDiagramTitle()),s(void 0,d,c.diagramPadding,c.useMaxWidth)},`draw`)},Z=8,Q=new Set([`redux`,`redux-dark`,`redux-color`,`redux-dark-color`]),Ve=new Set([`redux-color`,`redux-dark-color`]),$=new Set([`neo`,`neo-dark`]),He=new Set([`dark`,`redux-dark`,`redux-dark-color`,`neo-dark`]),Ue=new Set([`redux`,`redux-dark`,`redux-color`,`redux-dark-color`,`neo`,`neo-dark`]),We=t(e=>{let{svgId:t}=e,n=``;if(e.useGradient&&t)for(let r=0;r<e.THEME_COLOR_LIMIT;r++)n+=`
15
+ .label${r} { fill: ${e.mainBkg}; stroke: url(${t}-gradient); stroke-width: ${e.strokeWidth};}
16
+ `;return n},`genGitGraphGradient`),Ge=t(e=>{let{theme:t,themeVariables:n}=l(),{borderColorArray:r}=n,i=Q.has(t);if($.has(t)){let t=``;for(let n=0;n<e.THEME_COLOR_LIMIT;n++)if(n===0)t+=`
17
+ .branch-label${n} { fill: ${e.nodeBorder};}
18
+ .commit${n} { stroke: ${e.nodeBorder}; }
19
+ .commit-highlight${n} { stroke: ${e.nodeBorder}; fill: ${e.nodeBorder}; }
20
+ .arrow${n} { stroke: ${e.nodeBorder}; }
21
+ .commit-bullets { fill: ${e.nodeBorder}; }
22
+ .commit-cherry-pick${n} { stroke: ${e.nodeBorder}; }
23
+ ${We(e)}`;else{let r=n%Z;t+=`
24
+ .branch-label${n} { fill: ${e[`gitBranchLabel`+r]}; }
25
+ .commit${n} { stroke: ${e[`git`+r]}; fill: ${e[`git`+r]}; }
26
+ .commit-highlight${n} { stroke: ${e[`gitInv`+r]}; fill: ${e[`gitInv`+r]}; }
27
+ .arrow${n} { stroke: ${e[`git`+r]}; }
28
+ `}return t}if(Ve.has(t)){let n=``;for(let a=0;a<e.THEME_COLOR_LIMIT;a++)if(a===0)n+=`
29
+ .branch-label${a} { fill: ${e.nodeBorder}; ${i?`font-weight:${e.noteFontWeight}`:``} }
30
+ .commit${a} { stroke: ${e.nodeBorder}; }
31
+ .commit-highlight${a} { stroke: ${e.nodeBorder}; fill: ${e.mainBkg}; }
32
+ .label${a} { fill: ${e.mainBkg}; stroke: ${e.nodeBorder}; stroke-width: ${e.strokeWidth}; ${i?`font-weight:${e.noteFontWeight}`:``} }
33
+ .arrow${a} { stroke: ${e.nodeBorder}; }
34
+ .commit-bullets { fill: ${e.nodeBorder}; }
35
+ `;else{let o=a%r.length;n+=`
36
+ .branch-label${a} { fill: ${e.nodeBorder}; ${i?`font-weight:${e.noteFontWeight}`:``} }
37
+ .commit${a} { stroke: ${r[o]}; fill: ${r[o]}; }
38
+ .commit-highlight${a} { stroke: ${r[o]}; fill: ${r[o]}; }
39
+ .label${a} { fill: ${He.has(t)?e.mainBkg:r[o]}; stroke: ${r[o]}; stroke-width: ${e.strokeWidth}; }
40
+ .arrow${a} { stroke: ${r[o]}; }
41
+ `}return n}{let t=``;for(let n=0;n<e.THEME_COLOR_LIMIT;n++)t+=`
42
+ .branch-label${n} { fill: ${e.nodeBorder}; ${i?`font-weight:${e.noteFontWeight}`:``} }
43
+ .commit${n} { stroke: ${e.nodeBorder}; }
44
+ .commit-highlight${n} { stroke: ${e.nodeBorder}; fill: ${e.nodeBorder}; }
45
+ .label${n} { fill: ${e.mainBkg}; stroke: ${e.nodeBorder}; stroke-width: ${e.strokeWidth}; ${i?`font-weight:${e.noteFontWeight}`:``}}
46
+ .arrow${n} { stroke: ${e.nodeBorder}; }
47
+ .commit-bullets { fill: ${e.nodeBorder}; }
48
+ .commit-cherry-pick${n} { stroke: ${e.nodeBorder}; }
49
+ `;return t}},`genColor`),Ke=t(e=>`${Array.from({length:e.THEME_COLOR_LIMIT},(e,t)=>t).map(t=>{let n=t%Z;return`
50
+ .branch-label${t} { fill: ${e[`gitBranchLabel`+n]}; }
51
+ .commit${t} { stroke: ${e[`git`+n]}; fill: ${e[`git`+n]}; }
52
+ .commit-highlight${t} { stroke: ${e[`gitInv`+n]}; fill: ${e[`gitInv`+n]}; }
53
+ .label${t} { fill: ${e[`git`+n]}; }
54
+ .arrow${t} { stroke: ${e[`git`+n]}; }
55
+ `}).join(`
56
+ `)}`,`normalTheme`),qe={parser:be,db:A,renderer:Be,styles:t(e=>{let{theme:t}=l(),n=Ue.has(t);return`
57
+ .commit-id,
58
+ .commit-msg,
59
+ .branch-label {
60
+ fill: lightgrey;
61
+ color: lightgrey;
62
+ font-family: 'trebuchet ms', verdana, arial, sans-serif;
63
+ font-family: var(--mermaid-font-family);
64
+ }
65
+
66
+ ${n?Ge(e):Ke(e)}
67
+
68
+ .branch {
69
+ stroke-width: ${e.strokeWidth};
70
+ stroke: ${e.commitLineColor??e.lineColor};
71
+ stroke-dasharray: ${n?`4 2`:`2`};
72
+ }
73
+ .commit-label { font-size: ${e.commitLabelFontSize}; fill: ${n?e.nodeBorder:e.commitLabelColor}; ${n?`font-weight:${e.noteFontWeight};`:``}}
74
+ .commit-label-bkg { font-size: ${e.commitLabelFontSize}; fill: ${n?`transparent`:e.commitLabelBackground}; opacity: ${n?``:.5}; }
75
+ .tag-label { font-size: ${e.tagLabelFontSize}; fill: ${e.tagLabelColor};}
76
+ .tag-label-bkg { fill: ${n?e.mainBkg:e.tagLabelBackground}; stroke: ${n?e.nodeBorder:e.tagLabelBorder}; ${n?`filter:${e.dropShadow}`:``} }
77
+ .tag-hole { fill: ${e.textColor}; }
78
+
79
+ .commit-merge {
80
+ stroke: ${n?e.mainBkg:e.primaryColor};
81
+ fill: ${n?e.mainBkg:e.primaryColor};
82
+ }
83
+ .commit-reverse {
84
+ stroke: ${n?e.mainBkg:e.primaryColor};
85
+ fill: ${n?e.mainBkg:e.primaryColor};
86
+ stroke-width: ${n?e.strokeWidth:3};
87
+ }
88
+ .commit-highlight-outer {
89
+ }
90
+ .commit-highlight-inner {
91
+ stroke: ${n?e.mainBkg:e.primaryColor};
92
+ fill: ${n?e.mainBkg:e.primaryColor};
93
+ }
94
+
95
+ .arrow {
96
+ /* Intentional: neo themes keep the bold 8px arrow (like classic themes); only redux-geometry themes use the thinner options.strokeWidth. */
97
+ stroke-width: ${Q.has(t)?e.strokeWidth:8};
98
+ stroke-linecap: round;
99
+ fill: none
100
+ }
101
+ .gitTitleText {
102
+ text-anchor: middle;
103
+ font-size: 18px;
104
+ fill: ${e.textColor};
105
+ }
106
+ `},`getStyles`)};export{qe as diagram};
@@ -0,0 +1 @@
1
+ var e=typeof global==`object`&&global&&global.Object===Object&&global,t=typeof self==`object`&&self&&self.Object===Object&&self,n=e||t||Function(`return this`)(),r=n.Symbol,i=Object.prototype,a=i.hasOwnProperty,o=i.toString,s=r?r.toStringTag:void 0;function c(e){var t=a.call(e,s),n=e[s];try{e[s]=void 0;var r=!0}catch{}var i=o.call(e);return r&&(t?e[s]=n:delete e[s]),i}var l=Object.prototype.toString;function u(e){return l.call(e)}var d=`[object Null]`,f=`[object Undefined]`,p=r?r.toStringTag:void 0;function m(e){return e==null?e===void 0?f:d:p&&p in Object(e)?c(e):u(e)}function h(e){return typeof e==`object`&&!!e}var g=`[object Symbol]`;function _(e){return typeof e==`symbol`||h(e)&&m(e)==g}function v(e,t){for(var n=-1,r=e==null?0:e.length,i=Array(r);++n<r;)i[n]=t(e[n],n,e);return i}var y=Array.isArray,ee=1/0,te=r?r.prototype:void 0,ne=te?te.toString:void 0;function re(e){if(typeof e==`string`)return e;if(y(e))return v(e,re)+``;if(_(e))return ne?ne.call(e):``;var t=e+``;return t==`0`&&1/e==-ee?`-0`:t}function b(e){var t=typeof e;return e!=null&&(t==`object`||t==`function`)}function x(e){return e}var ie=`[object AsyncFunction]`,ae=`[object Function]`,oe=`[object GeneratorFunction]`,se=`[object Proxy]`;function S(e){if(!b(e))return!1;var t=m(e);return t==ae||t==oe||t==ie||t==se}var ce=n[`__core-js_shared__`],le=function(){var e=/[^.]+$/.exec(ce&&ce.keys&&ce.keys.IE_PROTO||``);return e?`Symbol(src)_1.`+e:``}();function ue(e){return!!le&&le in e}var de=Function.prototype.toString;function C(e){if(e!=null){try{return de.call(e)}catch{}try{return e+``}catch{}}return``}var fe=/[\\^$.*+?()[\]{}|]/g,pe=/^\[object .+?Constructor\]$/,me=Function.prototype,he=Object.prototype,ge=me.toString,_e=he.hasOwnProperty,ve=RegExp(`^`+ge.call(_e).replace(fe,`\\$&`).replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,`$1.*?`)+`$`);function ye(e){return!b(e)||ue(e)?!1:(S(e)?ve:pe).test(C(e))}function be(e,t){return e?.[t]}function w(e,t){var n=be(e,t);return ye(n)?n:void 0}var xe=w(n,`WeakMap`);function Se(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function Ce(){}var we=800,Te=16,Ee=Date.now;function De(e){var t=0,n=0;return function(){var r=Ee(),i=Te-(r-n);if(n=r,i>0){if(++t>=we)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function T(e){return function(){return e}}var Oe=function(){try{var e=w(Object,`defineProperty`);return e({},``,{}),e}catch{}}(),ke=De(Oe?function(e,t){return Oe(e,`toString`,{configurable:!0,enumerable:!1,value:T(t),writable:!0})}:x);function Ae(e,t){for(var n=-1,r=e==null?0:e.length;++n<r&&t(e[n],n,e)!==!1;);return e}function je(e,t,n,r){for(var i=e.length,a=n+(r?1:-1);r?a--:++a<i;)if(t(e[a],a,e))return a;return-1}function Me(e){return e!==e}function Ne(e,t,n){for(var r=n-1,i=e.length;++r<i;)if(e[r]===t)return r;return-1}function Pe(e,t,n){return t===t?Ne(e,t,n):je(e,Me,n)}function Fe(e,t){return!!(e!=null&&e.length)&&Pe(e,t,0)>-1}var Ie=9007199254740991,Le=/^(?:0|[1-9]\d*)$/;function Re(e,t){var n=typeof e;return t??=Ie,!!t&&(n==`number`||n!=`symbol`&&Le.test(e))&&e>-1&&e%1==0&&e<t}function ze(e,t){return e===t||e!==e&&t!==t}var Be=Math.max;function Ve(e,t,n){return t=Be(t===void 0?e.length-1:t,0),function(){for(var r=arguments,i=-1,a=Be(r.length-t,0),o=Array(a);++i<a;)o[i]=r[t+i];i=-1;for(var s=Array(t+1);++i<t;)s[i]=r[i];return s[t]=n(o),Se(e,this,s)}}function He(e,t){return ke(Ve(e,t,x),e+``)}var Ue=9007199254740991;function We(e){return typeof e==`number`&&e>-1&&e%1==0&&e<=Ue}function E(e){return e!=null&&We(e.length)&&!S(e)}var Ge=Object.prototype;function Ke(e){var t=e&&e.constructor;return e===(typeof t==`function`&&t.prototype||Ge)}function qe(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}var Je=`[object Arguments]`;function Ye(e){return h(e)&&m(e)==Je}var Xe=Object.prototype,Ze=Xe.hasOwnProperty,Qe=Xe.propertyIsEnumerable,D=Ye(function(){return arguments}())?Ye:function(e){return h(e)&&Ze.call(e,`callee`)&&!Qe.call(e,`callee`)};function $e(){return!1}var et=typeof exports==`object`&&exports&&!exports.nodeType&&exports,tt=et&&typeof module==`object`&&module&&!module.nodeType&&module,nt=tt&&tt.exports===et?n.Buffer:void 0,O=(nt?nt.isBuffer:void 0)||$e,rt=`[object Arguments]`,it=`[object Array]`,at=`[object Boolean]`,ot=`[object Date]`,st=`[object Error]`,ct=`[object Function]`,lt=`[object Map]`,ut=`[object Number]`,dt=`[object Object]`,ft=`[object RegExp]`,pt=`[object Set]`,mt=`[object String]`,ht=`[object WeakMap]`,gt=`[object ArrayBuffer]`,_t=`[object DataView]`,vt=`[object Float32Array]`,yt=`[object Float64Array]`,bt=`[object Int8Array]`,xt=`[object Int16Array]`,St=`[object Int32Array]`,Ct=`[object Uint8Array]`,wt=`[object Uint8ClampedArray]`,Tt=`[object Uint16Array]`,Et=`[object Uint32Array]`,k={};k[vt]=k[yt]=k[bt]=k[xt]=k[St]=k[Ct]=k[wt]=k[Tt]=k[Et]=!0,k[rt]=k[it]=k[gt]=k[at]=k[_t]=k[ot]=k[st]=k[ct]=k[lt]=k[ut]=k[dt]=k[ft]=k[pt]=k[mt]=k[ht]=!1;function Dt(e){return h(e)&&We(e.length)&&!!k[m(e)]}function Ot(e){return function(t){return e(t)}}var kt=typeof exports==`object`&&exports&&!exports.nodeType&&exports,A=kt&&typeof module==`object`&&module&&!module.nodeType&&module,At=A&&A.exports===kt&&e.process,jt=function(){try{return A&&A.require&&A.require(`util`).types||At&&At.binding&&At.binding(`util`)}catch{}}(),Mt=jt&&jt.isTypedArray,j=Mt?Ot(Mt):Dt,Nt=Object.prototype.hasOwnProperty;function Pt(e,t){var n=y(e),r=!n&&D(e),i=!n&&!r&&O(e),a=!n&&!r&&!i&&j(e),o=n||r||i||a,s=o?qe(e.length,String):[],c=s.length;for(var l in e)(t||Nt.call(e,l))&&!(o&&(l==`length`||i&&(l==`offset`||l==`parent`)||a&&(l==`buffer`||l==`byteLength`||l==`byteOffset`)||Re(l,c)))&&s.push(l);return s}function Ft(e,t){return function(n){return e(t(n))}}var It=Ft(Object.keys,Object),Lt=Object.prototype.hasOwnProperty;function Rt(e){if(!Ke(e))return It(e);var t=[];for(var n in Object(e))Lt.call(e,n)&&n!=`constructor`&&t.push(n);return t}function M(e){return E(e)?Pt(e):Rt(e)}var zt=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Bt=/^\w*$/;function Vt(e,t){if(y(e))return!1;var n=typeof e;return n==`number`||n==`symbol`||n==`boolean`||e==null||_(e)?!0:Bt.test(e)||!zt.test(e)||t!=null&&e in Object(t)}var N=w(Object,`create`);function Ht(){this.__data__=N?N(null):{},this.size=0}function Ut(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=+!!t,t}var Wt=`__lodash_hash_undefined__`,Gt=Object.prototype.hasOwnProperty;function Kt(e){var t=this.__data__;if(N){var n=t[e];return n===Wt?void 0:n}return Gt.call(t,e)?t[e]:void 0}var qt=Object.prototype.hasOwnProperty;function Jt(e){var t=this.__data__;return N?t[e]!==void 0:qt.call(t,e)}var Yt=`__lodash_hash_undefined__`;function Xt(e,t){var n=this.__data__;return this.size+=+!this.has(e),n[e]=N&&t===void 0?Yt:t,this}function P(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}P.prototype.clear=Ht,P.prototype.delete=Ut,P.prototype.get=Kt,P.prototype.has=Jt,P.prototype.set=Xt;function Zt(){this.__data__=[],this.size=0}function F(e,t){for(var n=e.length;n--;)if(ze(e[n][0],t))return n;return-1}var Qt=Array.prototype.splice;function $t(e){var t=this.__data__,n=F(t,e);return n<0?!1:(n==t.length-1?t.pop():Qt.call(t,n,1),--this.size,!0)}function en(e){var t=this.__data__,n=F(t,e);return n<0?void 0:t[n][1]}function tn(e){return F(this.__data__,e)>-1}function nn(e,t){var n=this.__data__,r=F(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}function I(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}I.prototype.clear=Zt,I.prototype.delete=$t,I.prototype.get=en,I.prototype.has=tn,I.prototype.set=nn;var L=w(n,`Map`);function rn(){this.size=0,this.__data__={hash:new P,map:new(L||I),string:new P}}function an(e){var t=typeof e;return t==`string`||t==`number`||t==`symbol`||t==`boolean`?e!==`__proto__`:e===null}function R(e,t){var n=e.__data__;return an(t)?n[typeof t==`string`?`string`:`hash`]:n.map}function on(e){var t=R(this,e).delete(e);return this.size-=+!!t,t}function sn(e){return R(this,e).get(e)}function cn(e){return R(this,e).has(e)}function ln(e,t){var n=R(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}function z(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}z.prototype.clear=rn,z.prototype.delete=on,z.prototype.get=sn,z.prototype.has=cn,z.prototype.set=ln;var un=`Expected a function`;function dn(e,t){if(typeof e!=`function`||t!=null&&typeof t!=`function`)throw TypeError(un);var n=function(){var r=arguments,i=t?t.apply(this,r):r[0],a=n.cache;if(a.has(i))return a.get(i);var o=e.apply(this,r);return n.cache=a.set(i,o)||a,o};return n.cache=new(dn.Cache||z),n}dn.Cache=z;var fn=500;function pn(e){var t=dn(e,function(e){return n.size===fn&&n.clear(),e}),n=t.cache;return t}var mn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,hn=/\\(\\)?/g,gn=pn(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(``),e.replace(mn,function(e,n,r,i){t.push(r?i.replace(hn,`$1`):n||e)}),t});function _n(e){return e==null?``:re(e)}function vn(e,t){return y(e)?e:Vt(e,t)?[e]:gn(_n(e))}var yn=1/0;function B(e){if(typeof e==`string`||_(e))return e;var t=e+``;return t==`0`&&1/e==-yn?`-0`:t}function bn(e,t){t=vn(t,e);for(var n=0,r=t.length;e!=null&&n<r;)e=e[B(t[n++])];return n&&n==r?e:void 0}function xn(e,t,n){var r=e==null?void 0:bn(e,t);return r===void 0?n:r}function Sn(e,t){for(var n=-1,r=t.length,i=e.length;++n<r;)e[i+n]=t[n];return e}var Cn=r?r.isConcatSpreadable:void 0;function wn(e){return y(e)||D(e)||!!(Cn&&e&&e[Cn])}function Tn(e,t,n,r,i){var a=-1,o=e.length;for(n||=wn,i||=[];++a<o;){var s=e[a];t>0&&n(s)?t>1?Tn(s,t-1,n,r,i):Sn(i,s):r||(i[i.length]=s)}return i}function En(e,t,n,r){var i=-1,a=e==null?0:e.length;for(r&&a&&(n=e[++i]);++i<a;)n=t(n,e[i],i,e);return n}function Dn(){this.__data__=new I,this.size=0}function On(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}function kn(e){return this.__data__.get(e)}function An(e){return this.__data__.has(e)}var jn=200;function Mn(e,t){var n=this.__data__;if(n instanceof I){var r=n.__data__;if(!L||r.length<jn-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new z(r)}return n.set(e,t),this.size=n.size,this}function V(e){var t=this.__data__=new I(e);this.size=t.size}V.prototype.clear=Dn,V.prototype.delete=On,V.prototype.get=kn,V.prototype.has=An,V.prototype.set=Mn;function Nn(e,t){for(var n=-1,r=e==null?0:e.length,i=0,a=[];++n<r;){var o=e[n];t(o,n,e)&&(a[i++]=o)}return a}function Pn(){return[]}var Fn=Object.prototype.propertyIsEnumerable,In=Object.getOwnPropertySymbols,Ln=In?function(e){return e==null?[]:(e=Object(e),Nn(In(e),function(t){return Fn.call(e,t)}))}:Pn;function Rn(e,t,n){var r=t(e);return y(e)?r:Sn(r,n(e))}function zn(e){return Rn(e,M,Ln)}var Bn=w(n,`DataView`),Vn=w(n,`Promise`),H=w(n,`Set`),Hn=`[object Map]`,Un=`[object Object]`,Wn=`[object Promise]`,Gn=`[object Set]`,Kn=`[object WeakMap]`,qn=`[object DataView]`,Jn=C(Bn),Yn=C(L),Xn=C(Vn),Zn=C(H),Qn=C(xe),U=m;(Bn&&U(new Bn(new ArrayBuffer(1)))!=qn||L&&U(new L)!=Hn||Vn&&U(Vn.resolve())!=Wn||H&&U(new H)!=Gn||xe&&U(new xe)!=Kn)&&(U=function(e){var t=m(e),n=t==Un?e.constructor:void 0,r=n?C(n):``;if(r)switch(r){case Jn:return qn;case Yn:return Hn;case Xn:return Wn;case Zn:return Gn;case Qn:return Kn}return t});var W=U,$n=n.Uint8Array,er=`__lodash_hash_undefined__`;function tr(e){return this.__data__.set(e,er),this}function nr(e){return this.__data__.has(e)}function G(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new z;++t<n;)this.add(e[t])}G.prototype.add=G.prototype.push=tr,G.prototype.has=nr;function rr(e,t){for(var n=-1,r=e==null?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}function ir(e,t){return e.has(t)}var ar=1,or=2;function sr(e,t,n,r,i,a){var o=n&ar,s=e.length,c=t.length;if(s!=c&&!(o&&c>s))return!1;var l=a.get(e),u=a.get(t);if(l&&u)return l==t&&u==e;var d=-1,f=!0,p=n&or?new G:void 0;for(a.set(e,t),a.set(t,e);++d<s;){var m=e[d],h=t[d];if(r)var g=o?r(h,m,d,t,e,a):r(m,h,d,e,t,a);if(g!==void 0){if(g)continue;f=!1;break}if(p){if(!rr(t,function(e,t){if(!ir(p,t)&&(m===e||i(m,e,n,r,a)))return p.push(t)})){f=!1;break}}else if(!(m===h||i(m,h,n,r,a))){f=!1;break}}return a.delete(e),a.delete(t),f}function cr(e){var t=-1,n=Array(e.size);return e.forEach(function(e,r){n[++t]=[r,e]}),n}function lr(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=e}),n}var ur=1,dr=2,fr=`[object Boolean]`,pr=`[object Date]`,mr=`[object Error]`,hr=`[object Map]`,gr=`[object Number]`,_r=`[object RegExp]`,vr=`[object Set]`,yr=`[object String]`,br=`[object Symbol]`,xr=`[object ArrayBuffer]`,Sr=`[object DataView]`,Cr=r?r.prototype:void 0,wr=Cr?Cr.valueOf:void 0;function Tr(e,t,n,r,i,a,o){switch(n){case Sr:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case xr:return!(e.byteLength!=t.byteLength||!a(new $n(e),new $n(t)));case fr:case pr:case gr:return ze(+e,+t);case mr:return e.name==t.name&&e.message==t.message;case _r:case yr:return e==t+``;case hr:var s=cr;case vr:var c=r&ur;if(s||=lr,e.size!=t.size&&!c)return!1;var l=o.get(e);if(l)return l==t;r|=dr,o.set(e,t);var u=sr(s(e),s(t),r,i,a,o);return o.delete(e),u;case br:if(wr)return wr.call(e)==wr.call(t)}return!1}var Er=1,Dr=Object.prototype.hasOwnProperty;function Or(e,t,n,r,i,a){var o=n&Er,s=zn(e),c=s.length;if(c!=zn(t).length&&!o)return!1;for(var l=c;l--;){var u=s[l];if(!(o?u in t:Dr.call(t,u)))return!1}var d=a.get(e),f=a.get(t);if(d&&f)return d==t&&f==e;var p=!0;a.set(e,t),a.set(t,e);for(var m=o;++l<c;){u=s[l];var h=e[u],g=t[u];if(r)var _=o?r(g,h,u,t,e,a):r(h,g,u,e,t,a);if(!(_===void 0?h===g||i(h,g,n,r,a):_)){p=!1;break}m||=u==`constructor`}if(p&&!m){var v=e.constructor,y=t.constructor;v!=y&&`constructor`in e&&`constructor`in t&&!(typeof v==`function`&&v instanceof v&&typeof y==`function`&&y instanceof y)&&(p=!1)}return a.delete(e),a.delete(t),p}var kr=1,Ar=`[object Arguments]`,jr=`[object Array]`,K=`[object Object]`,Mr=Object.prototype.hasOwnProperty;function Nr(e,t,n,r,i,a){var o=y(e),s=y(t),c=o?jr:W(e),l=s?jr:W(t);c=c==Ar?K:c,l=l==Ar?K:l;var u=c==K,d=l==K,f=c==l;if(f&&O(e)){if(!O(t))return!1;o=!0,u=!1}if(f&&!u)return a||=new V,o||j(e)?sr(e,t,n,r,i,a):Tr(e,t,c,n,r,i,a);if(!(n&kr)){var p=u&&Mr.call(e,`__wrapped__`),m=d&&Mr.call(t,`__wrapped__`);if(p||m){var h=p?e.value():e,g=m?t.value():t;return a||=new V,i(h,g,n,r,a)}}return f?(a||=new V,Or(e,t,n,r,i,a)):!1}function Pr(e,t,n,r,i){return e===t?!0:e==null||t==null||!h(e)&&!h(t)?e!==e&&t!==t:Nr(e,t,n,r,Pr,i)}var Fr=1,Ir=2;function Lr(e,t,n,r){var i=n.length,a=i,o=!r;if(e==null)return!a;for(e=Object(e);i--;){var s=n[i];if(o&&s[2]?s[1]!==e[s[0]]:!(s[0]in e))return!1}for(;++i<a;){s=n[i];var c=s[0],l=e[c],u=s[1];if(o&&s[2]){if(l===void 0&&!(c in e))return!1}else{var d=new V;if(r)var f=r(l,u,c,e,t,d);if(!(f===void 0?Pr(u,l,Fr|Ir,r,d):f))return!1}}return!0}function Rr(e){return e===e&&!b(e)}function zr(e){for(var t=M(e),n=t.length;n--;){var r=t[n],i=e[r];t[n]=[r,i,Rr(i)]}return t}function Br(e,t){return function(n){return n!=null&&n[e]===t&&(t!==void 0||e in Object(n))}}function Vr(e){var t=zr(e);return t.length==1&&t[0][2]?Br(t[0][0],t[0][1]):function(n){return n===e||Lr(n,e,t)}}function Hr(e,t){return e!=null&&t in Object(e)}function Ur(e,t,n){t=vn(t,e);for(var r=-1,i=t.length,a=!1;++r<i;){var o=B(t[r]);if(!(a=e!=null&&n(e,o)))break;e=e[o]}return a||++r!=i?a:(i=e==null?0:e.length,!!i&&We(i)&&Re(o,i)&&(y(e)||D(e)))}function Wr(e,t){return e!=null&&Ur(e,t,Hr)}var Gr=1,Kr=2;function qr(e,t){return Vt(e)&&Rr(t)?Br(B(e),t):function(n){var r=xn(n,e);return r===void 0&&r===t?Wr(n,e):Pr(t,r,Gr|Kr)}}function Jr(e){return function(t){return t?.[e]}}function Yr(e){return function(t){return bn(t,e)}}function Xr(e){return Vt(e)?Jr(B(e)):Yr(e)}function Zr(e){return typeof e==`function`?e:e==null?x:typeof e==`object`?y(e)?qr(e[0],e[1]):Vr(e):Xr(e)}function Qr(e){return function(t,n,r){for(var i=-1,a=Object(t),o=r(t),s=o.length;s--;){var c=o[e?s:++i];if(n(a[c],c,a)===!1)break}return t}}var $r=Qr();function ei(e,t){return e&&$r(e,t,M)}function ti(e,t){return function(n,r){if(n==null)return n;if(!E(n))return e(n,r);for(var i=n.length,a=t?i:-1,o=Object(n);(t?a--:++a<i)&&r(o[a],a,o)!==!1;);return n}}var q=ti(ei);function ni(e){return h(e)&&E(e)}function ri(e,t,n){for(var r=-1,i=e==null?0:e.length;++r<i;)if(n(t,e[r]))return!0;return!1}function ii(e){return typeof e==`function`?e:x}function J(e,t){return(y(e)?Ae:q)(e,ii(t))}function ai(e,t){var n=[];return q(e,function(e,r,i){t(e,r,i)&&n.push(e)}),n}function Y(e,t){return(y(e)?Nn:ai)(e,Zr(t,3))}function oi(e,t){return v(t,function(t){return e[t]})}function X(e){return e==null?[]:oi(e,M(e))}var si=`[object Map]`,ci=`[object Set]`,li=Object.prototype.hasOwnProperty;function ui(e){if(e==null)return!0;if(E(e)&&(y(e)||typeof e==`string`||typeof e.splice==`function`||O(e)||j(e)||D(e)))return!e.length;var t=W(e);if(t==si||t==ci)return!e.size;if(Ke(e))return!Rt(e).length;for(var n in e)if(li.call(e,n))return!1;return!0}function Z(e){return e===void 0}function di(e,t,n,r,i){return i(e,function(e,i,a){n=r?(r=!1,e):t(n,e,i,a)}),n}function fi(e,t,n){var r=y(e)?En:di,i=arguments.length<3;return r(e,Zr(t,4),n,i,q)}var pi=H&&1/lr(new H([,-0]))[1]==1/0?function(e){return new H(e)}:Ce,mi=200;function hi(e,t,n){var r=-1,i=Fe,a=e.length,o=!0,s=[],c=s;if(n)o=!1,i=ri;else if(a>=mi){var l=t?null:pi(e);if(l)return lr(l);o=!1,i=ir,c=new G}else c=t?[]:s;outer:for(;++r<a;){var u=e[r],d=t?t(u):u;if(u=n||u!==0?u:0,o&&d===d){for(var f=c.length;f--;)if(c[f]===d)continue outer;t&&c.push(d),s.push(u)}else i(c,d,n)||(c!==s&&c.push(d),s.push(u))}return s}var gi=He(function(e){return hi(Tn(e,1,ni,!0))}),_i=`\0`,Q=`\0`,vi=``,yi=class{constructor(e={}){this._isDirected=!Object.prototype.hasOwnProperty.call(e,`directed`)||e.directed,this._isMultigraph=Object.prototype.hasOwnProperty.call(e,`multigraph`)?e.multigraph:!1,this._isCompound=Object.prototype.hasOwnProperty.call(e,`compound`)?e.compound:!1,this._label=void 0,this._defaultNodeLabelFn=T(void 0),this._defaultEdgeLabelFn=T(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[Q]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(e){return this._label=e,this}graph(){return this._label}setDefaultNodeLabel(e){return S(e)||(e=T(e)),this._defaultNodeLabelFn=e,this}nodeCount(){return this._nodeCount}nodes(){return M(this._nodes)}sources(){var e=this;return Y(this.nodes(),function(t){return ui(e._in[t])})}sinks(){var e=this;return Y(this.nodes(),function(t){return ui(e._out[t])})}setNodes(e,t){var n=arguments,r=this;return J(e,function(e){n.length>1?r.setNode(e,t):r.setNode(e)}),this}setNode(e,t){return Object.prototype.hasOwnProperty.call(this._nodes,e)?(arguments.length>1&&(this._nodes[e]=t),this):(this._nodes[e]=arguments.length>1?t:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]=Q,this._children[e]={},this._children[Q][e]=!0),this._in[e]={},this._preds[e]={},this._out[e]={},this._sucs[e]={},++this._nodeCount,this)}node(e){return this._nodes[e]}hasNode(e){return Object.prototype.hasOwnProperty.call(this._nodes,e)}removeNode(e){if(Object.prototype.hasOwnProperty.call(this._nodes,e)){var t=e=>this.removeEdge(this._edgeObjs[e]);delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],J(this.children(e),e=>{this.setParent(e)}),delete this._children[e]),J(M(this._in[e]),t),delete this._in[e],delete this._preds[e],J(M(this._out[e]),t),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this}setParent(e,t){if(!this._isCompound)throw Error(`Cannot set parent in a non-compound graph`);if(Z(t))t=Q;else{t+=``;for(var n=t;!Z(n);n=this.parent(n))if(n===e)throw Error(`Setting `+t+` as parent of `+e+` would create a cycle`);this.setNode(t)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=t,this._children[t][e]=!0,this}_removeFromParentsChildList(e){delete this._children[this._parent[e]][e]}parent(e){if(this._isCompound){var t=this._parent[e];if(t!==Q)return t}}children(e){if(Z(e)&&(e=Q),this._isCompound){var t=this._children[e];if(t)return M(t)}else if(e===Q)return this.nodes();else if(this.hasNode(e))return[]}predecessors(e){var t=this._preds[e];if(t)return M(t)}successors(e){var t=this._sucs[e];if(t)return M(t)}neighbors(e){var t=this.predecessors(e);if(t)return gi(t,this.successors(e))}isLeaf(e){return(this.isDirected()?this.successors(e):this.neighbors(e)).length===0}filterNodes(e){var t=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});t.setGraph(this.graph());var n=this;J(this._nodes,function(n,r){e(r)&&t.setNode(r,n)}),J(this._edgeObjs,function(e){t.hasNode(e.v)&&t.hasNode(e.w)&&t.setEdge(e,n.edge(e))});var r={};function i(e){var a=n.parent(e);return a===void 0||t.hasNode(a)?(r[e]=a,a):a in r?r[a]:i(a)}return this._isCompound&&J(t.nodes(),function(e){t.setParent(e,i(e))}),t}setDefaultEdgeLabel(e){return S(e)||(e=T(e)),this._defaultEdgeLabelFn=e,this}edgeCount(){return this._edgeCount}edges(){return X(this._edgeObjs)}setPath(e,t){var n=this,r=arguments;return fi(e,function(e,i){return r.length>1?n.setEdge(e,i,t):n.setEdge(e,i),i}),this}setEdge(){var e,t,n,r,i=!1,a=arguments[0];typeof a==`object`&&a&&`v`in a?(e=a.v,t=a.w,n=a.name,arguments.length===2&&(r=arguments[1],i=!0)):(e=a,t=arguments[1],n=arguments[3],arguments.length>2&&(r=arguments[2],i=!0)),e=``+e,t=``+t,Z(n)||(n=``+n);var o=$(this._isDirected,e,t,n);if(Object.prototype.hasOwnProperty.call(this._edgeLabels,o))return i&&(this._edgeLabels[o]=r),this;if(!Z(n)&&!this._isMultigraph)throw Error(`Cannot set a named edge when isMultigraph = false`);this.setNode(e),this.setNode(t),this._edgeLabels[o]=i?r:this._defaultEdgeLabelFn(e,t,n);var s=Si(this._isDirected,e,t,n);return e=s.v,t=s.w,Object.freeze(s),this._edgeObjs[o]=s,bi(this._preds[t],e),bi(this._sucs[e],t),this._in[t][o]=s,this._out[e][o]=s,this._edgeCount++,this}edge(e,t,n){var r=arguments.length===1?Ci(this._isDirected,arguments[0]):$(this._isDirected,e,t,n);return this._edgeLabels[r]}hasEdge(e,t,n){var r=arguments.length===1?Ci(this._isDirected,arguments[0]):$(this._isDirected,e,t,n);return Object.prototype.hasOwnProperty.call(this._edgeLabels,r)}removeEdge(e,t,n){var r=arguments.length===1?Ci(this._isDirected,arguments[0]):$(this._isDirected,e,t,n),i=this._edgeObjs[r];return i&&(e=i.v,t=i.w,delete this._edgeLabels[r],delete this._edgeObjs[r],xi(this._preds[t],e),xi(this._sucs[e],t),delete this._in[t][r],delete this._out[e][r],this._edgeCount--),this}inEdges(e,t){var n=this._in[e];if(n){var r=X(n);return t?Y(r,function(e){return e.v===t}):r}}outEdges(e,t){var n=this._out[e];if(n){var r=X(n);return t?Y(r,function(e){return e.w===t}):r}}nodeEdges(e,t){var n=this.inEdges(e,t);if(n)return n.concat(this.outEdges(e,t))}};yi.prototype._nodeCount=0,yi.prototype._edgeCount=0;function bi(e,t){e[t]?e[t]++:e[t]=1}function xi(e,t){--e[t]||delete e[t]}function $(e,t,n,r){var i=``+t,a=``+n;if(!e&&i>a){var o=i;i=a,a=o}return i+vi+a+vi+(Z(r)?_i:r)}function Si(e,t,n,r){var i=``+t,a=``+n;if(!e&&i>a){var o=i;i=a,a=o}var s={v:i,w:a};return r&&(s.name=r),s}function Ci(e,t){return $(e,t.v,t.w,t.name)}export{v as $,Rt as A,He as B,Tn as C,vn as D,B as E,Ot as F,Ae as G,ze as H,O as I,T as J,ke as K,D as L,Pt as M,j as N,_n as O,jt as P,y as Q,Ke as R,V as S,bn as T,Re as U,Ve as V,je as W,x as X,S as Y,b as Z,W as _,Y as a,Ln as b,ni as c,$r as d,_ as et,Zr as f,$n as g,Ur as h,X as i,n as it,Ft as j,M as k,q as l,Wr as m,fi as n,m as nt,J as o,Jr as p,Oe as q,Z as r,r as rt,ii as s,yi as t,h as tt,ei as u,zn as v,Sn as w,Pn as x,Rn as y,E as z};
@@ -0,0 +1 @@
1
+ .discover-kind.svelte-qynhrf{white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.discover-kind[data-kind=entity].svelte-qynhrf{color:var(--accent)}.discover-kind[data-kind=event].svelte-qynhrf{color:var(--warning)}.discover-kind[data-kind=field].svelte-qynhrf{color:var(--muted-foreground)}.discover-kind[data-kind=role].svelte-qynhrf{color:var(--success)}.discover-kind[data-kind=actor].svelte-qynhrf{color:var(--flow-entity-border)}.discover-kind[data-kind=value].svelte-qynhrf{color:var(--flow-dependency-border)}.discover-kind[data-kind=rule].svelte-qynhrf{color:var(--error)}.table-wrap.svelte-12wij15{width:100%;min-height:0;overflow:auto}table.svelte-12wij15{border-collapse:collapse;table-layout:auto;width:100%;font-size:12px}.widths.svelte-12wij15 table:where(.svelte-12wij15){table-layout:fixed}caption.svelte-12wij15{color:var(--muted-foreground);text-align:left;padding:4px 6px;font-size:12px}th.svelte-12wij15{background:var(--surface);border-bottom:1px solid var(--border);color:var(--muted-foreground);letter-spacing:.02em;text-align:left;text-transform:uppercase;white-space:nowrap;z-index:1;padding:3px 8px;font-size:12px;font-weight:600;position:sticky;top:0}td.svelte-12wij15{border-bottom:1px solid var(--border-subtle);color:var(--foreground);vertical-align:middle;padding:0 8px}tbody.svelte-12wij15 tr:where(.svelte-12wij15){height:28px;max-height:32px}tbody.svelte-12wij15 tr[tabindex="0"]:where(.svelte-12wij15){cursor:pointer}tbody.svelte-12wij15 tr:where(.svelte-12wij15):hover,tbody.svelte-12wij15 tr:where(.svelte-12wij15):focus-visible{background:var(--row-hover);outline:none}tbody.svelte-12wij15 tr:where(.svelte-12wij15):focus-visible{box-shadow:inset 0 0 0 1px var(--ring)}.compact.svelte-12wij15 td:where(.svelte-12wij15){text-overflow:ellipsis;white-space:nowrap;max-width:320px;line-height:26px;overflow:hidden}.wrap.svelte-12wij15 tbody:where(.svelte-12wij15) tr:where(.svelte-12wij15){height:auto;max-height:none}.wrap.svelte-12wij15 td:where(.svelte-12wij15){text-overflow:clip;vertical-align:top;white-space:normal;max-width:none;padding-top:5px;padding-bottom:5px;line-height:1.45;overflow:visible}.full.svelte-12wij15{overflow:visible}.empty-row.svelte-12wij15 td:where(.svelte-12wij15){color:var(--muted-foreground);text-align:center;height:32px}.terminal-host.svelte-ljs6pt{background:var(--terminal-background);border:1px solid var(--border);border-radius:4px;width:100%;height:100%;min-height:120px;padding:4px;overflow:hidden}.terminal-host.svelte-ljs6pt .xterm{height:100%}.monaco-host.svelte-118shnj{border:1px solid var(--border);border-radius:4px;width:100%;height:100%;min-height:120px;overflow:hidden}.monaco-host.is-dirty.svelte-118shnj{border-color:var(--warning)}.feedback-result.svelte-k9y15h{background:var(--surface-raised);border:1px solid var(--border-strong);border-left:3px solid var(--success);color:var(--text);z-index:2147483647;border-radius:6px;align-items:flex-start;gap:8px;max-width:min(460px,100vw - 32px);padding:10px 12px;animation:.16s ease-out svelte-k9y15h-feedback-toast-in;display:flex;position:fixed;bottom:40px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000052}.feedback-result--error.svelte-k9y15h{border-color:var(--error);border-left-color:var(--error)}.feedback-result__icon.svelte-k9y15h{color:var(--success);margin-top:1px;display:flex}.feedback-result--error.svelte-k9y15h .feedback-result__icon:where(.svelte-k9y15h){color:var(--error)}.feedback-result__body.svelte-k9y15h{flex-direction:column;gap:3px;min-width:0;display:flex}.feedback-result__text.svelte-k9y15h{overflow-wrap:anywhere;margin:0;font-size:13px;font-weight:600}.feedback-result__link.svelte-k9y15h{color:var(--accent);overflow-wrap:anywhere;font-size:12px}.feedback-result__close.svelte-k9y15h{color:var(--muted);cursor:pointer;background:0 0;border:0;align-items:center;padding:2px;display:flex}.feedback-result__close.svelte-k9y15h:hover{color:var(--text)}@keyframes svelte-k9y15h-feedback-toast-in{0%{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.feedback-result.svelte-k9y15h{animation:none}}.feedback-marker.svelte-k9y15h{border:2px solid var(--accent);pointer-events:none;z-index:2147483646;border-radius:3px;position:fixed;box-shadow:0 0 0 2px #0000001f}.feedback-hint.svelte-k9y15h{background:var(--surface);border:1px solid var(--accent);color:var(--accent);pointer-events:none;z-index:2147483647;border-radius:999px;padding:.45rem 1rem;font-size:.85rem;font-weight:600;position:fixed;top:1rem;left:50%;transform:translate(-50%)}.feedback-panel.svelte-k9y15h{background:var(--surface);border:1px solid var(--border);color:var(--text);z-index:2147483647;border-radius:10px;flex-direction:column;gap:.6rem;padding:.9rem;display:flex;position:fixed;box-shadow:0 8px 30px #00000040}.feedback-panel.svelte-k9y15h header:where(.svelte-k9y15h){justify-content:space-between;align-items:center;display:flex}.feedback-drag.svelte-k9y15h{color:inherit;cursor:grab;font:inherit;text-align:left;touch-action:none;-webkit-user-select:none;user-select:none;background:0 0;border:0;border-radius:4px;flex:1;align-items:center;gap:.4rem;min-width:0;padding:0;display:flex}.feedback-drag.svelte-k9y15h:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.feedback-panel--dragging.svelte-k9y15h .feedback-drag:where(.svelte-k9y15h){cursor:grabbing}.feedback-close.svelte-k9y15h{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0 .2rem;font-size:1.1rem;line-height:1}.feedback-close.svelte-k9y15h:hover{color:var(--text)}.feedback-selector.svelte-k9y15h{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}.feedback-transcript.svelte-k9y15h{background:var(--background);border:1px solid var(--border);border-radius:6px;flex-direction:column;gap:.5rem;max-height:180px;margin:0;padding:.5rem;list-style:none;display:flex;overflow-y:auto}.feedback-message.svelte-k9y15h{flex-direction:column;gap:2px;max-width:92%;display:flex}.feedback-message[data-role=developer].svelte-k9y15h{align-self:flex-end;align-items:flex-end}.feedback-message[data-role=agent].svelte-k9y15h{align-self:flex-start;align-items:flex-start}.feedback-message__who.svelte-k9y15h{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:700;line-height:1.2}.feedback-turn.svelte-k9y15h{border:1px solid var(--border);color:var(--text);overflow-wrap:anywhere;white-space:pre-wrap;border-radius:6px;margin:0;padding:.4rem .55rem;font-size:.8rem}.feedback-turn--developer.svelte-k9y15h{background:var(--accent-surface);border-color:var(--accent)}.feedback-turn--agent.svelte-k9y15h{background:var(--surface-raised);border-color:var(--border-subtle)}.feedback-panel.svelte-k9y15h textarea:where(.svelte-k9y15h){background:var(--background);border:1px solid var(--border);color:var(--text);font:inherit;resize:vertical;border-radius:6px;width:100%;padding:.5rem;font-size:.9rem}.feedback-panel.svelte-k9y15h textarea:where(.svelte-k9y15h):focus{border-color:var(--accent);outline:none}.feedback-actions.svelte-k9y15h{gap:.5rem;display:flex}.feedback-actions.svelte-k9y15h button:where(.svelte-k9y15h){background:var(--accent);border:1px solid var(--accent);color:var(--surface);cursor:pointer;font:inherit;border-radius:6px;padding:.4rem .8rem;font-size:.85rem;font-weight:600}.feedback-actions.svelte-k9y15h button:where(.svelte-k9y15h):disabled{cursor:not-allowed;opacity:.5}.feedback-actions.svelte-k9y15h .feedback-secondary:where(.svelte-k9y15h){background:var(--surface);border-color:var(--border);color:var(--text)}.feedback-status.svelte-k9y15h{color:var(--muted);margin:0;font-size:.8rem}.feedback-error.svelte-k9y15h{color:var(--error);margin:0;font-size:.8rem}:host,:root{--d2h-bg-color:#fff;--d2h-border-color:#ddd;--d2h-dim-color:#0000004d;--d2h-line-border-color:#eee;--d2h-file-header-bg-color:#f7f7f7;--d2h-file-header-border-color:#d8d8d8;--d2h-empty-placeholder-bg-color:#f1f1f1;--d2h-empty-placeholder-border-color:#e1e1e1;--d2h-selected-color:#c8e1ff;--d2h-ins-bg-color:#dfd;--d2h-ins-border-color:#b4e2b4;--d2h-ins-highlight-bg-color:#97f295;--d2h-ins-label-color:#399839;--d2h-del-bg-color:#fee8e9;--d2h-del-border-color:#e9aeae;--d2h-del-highlight-bg-color:#ffb6ba;--d2h-del-label-color:#c33;--d2h-change-del-color:#fdf2d0;--d2h-change-ins-color:#ded;--d2h-info-bg-color:#f8fafd;--d2h-info-border-color:#d5e4f2;--d2h-change-label-color:#d0b44c;--d2h-moved-label-color:#3572b0;--d2h-dark-color:#e6edf3;--d2h-dark-bg-color:#0d1117;--d2h-dark-border-color:#30363d;--d2h-dark-dim-color:#6e7681;--d2h-dark-line-border-color:#21262d;--d2h-dark-file-header-bg-color:#161b22;--d2h-dark-file-header-border-color:#30363d;--d2h-dark-empty-placeholder-bg-color:#6e76811a;--d2h-dark-empty-placeholder-border-color:#30363d;--d2h-dark-selected-color:#388bfd1a;--d2h-dark-ins-bg-color:#2ea04326;--d2h-dark-ins-border-color:#2ea04366;--d2h-dark-ins-highlight-bg-color:#2ea04366;--d2h-dark-ins-label-color:#3fb950;--d2h-dark-del-bg-color:#f851491a;--d2h-dark-del-border-color:#f8514966;--d2h-dark-del-highlight-bg-color:#f8514966;--d2h-dark-del-label-color:#f85149;--d2h-dark-change-del-color:#d2992233;--d2h-dark-change-ins-color:#2ea04340;--d2h-dark-info-bg-color:#388bfd1a;--d2h-dark-info-border-color:#388bfd66;--d2h-dark-change-label-color:#d29922;--d2h-dark-moved-label-color:#3572b0}.d2h-wrapper{text-align:left}.d2h-file-header{background-color:#f7f7f7;background-color:var(--d2h-file-header-bg-color);border-bottom:1px solid #d8d8d8;border-bottom:1px solid var(--d2h-file-header-border-color);height:35px;padding:5px 10px;font-family:Source Sans Pro,Helvetica Neue,Helvetica,Arial,sans-serif;display:flex}.d2h-file-header.d2h-sticky-header{z-index:1;position:sticky;top:0}.d2h-file-stats{margin-left:auto;font-size:14px;display:flex}.d2h-lines-added{border:1px solid #b4e2b4;border:1px solid var(--d2h-ins-border-color);color:var(--d2h-ins-label-color);text-align:right;vertical-align:middle;border-radius:5px 0 0 5px;padding:2px}.d2h-lines-deleted{border:1px solid #e9aeae;border:1px solid var(--d2h-del-border-color);color:var(--d2h-del-label-color);text-align:left;vertical-align:middle;border-radius:0 5px 5px 0;margin-left:1px;padding:2px}.d2h-file-name-wrapper{align-items:center;width:100%;font-size:15px;display:flex}.d2h-file-name{text-overflow:ellipsis;white-space:nowrap;overflow-x:hidden}.d2h-file-wrapper{border:1px solid #ddd;border:1px solid var(--d2h-border-color);border-radius:3px;margin-bottom:1em}.d2h-file-collapse{cursor:pointer;border:1px solid #ddd;border:1px solid var(--d2h-border-color);border-radius:3px;justify-content:flex-end;align-items:center;padding:4px 8px;font-size:12px;display:none}.d2h-file-collapse.d2h-selected{background-color:#c8e1ff;background-color:var(--d2h-selected-color)}.d2h-file-collapse-input{margin:0 4px 0 0}.d2h-diff-table{border-collapse:collapse;width:100%;font-family:Menlo,Consolas,monospace;font-size:13px}.d2h-files-diff{width:100%;display:flex}.d2h-file-diff{overflow-y:hidden}.d2h-file-diff.d2h-d-none,.d2h-files-diff.d2h-d-none{display:none}.d2h-file-side-diff{width:50%;display:inline-block;overflow:scroll hidden}.d2h-code-line{width:calc(100% - 16em);padding:0 8em}.d2h-code-line,.d2h-code-side-line{-webkit-user-select:none;user-select:none;white-space:nowrap;display:inline-block}.d2h-code-side-line{width:calc(100% - 9em);padding:0 4.5em}.d2h-code-line-ctn{word-wrap:normal;-webkit-user-select:text;user-select:text;vertical-align:middle;white-space:pre;background:0 0;width:100%;padding:0;display:inline-block}.d2h-code-line del,.d2h-code-side-line del{background-color:#ffb6ba;background-color:var(--d2h-del-highlight-bg-color)}.d2h-code-line del,.d2h-code-line ins,.d2h-code-side-line del,.d2h-code-side-line ins{border-radius:.2em;margin-top:-1px;-webkit-text-decoration:none;text-decoration:none;display:inline-block}.d2h-code-line ins,.d2h-code-side-line ins{background-color:#97f295;background-color:var(--d2h-ins-highlight-bg-color);text-align:left}.d2h-code-line-prefix{word-wrap:normal;white-space:pre;background:0 0;padding:0;display:inline}.line-num1{float:left}.line-num1,.line-num2{box-sizing:border-box;text-overflow:ellipsis;width:3.5em;padding:0 .5em;overflow:hidden}.line-num2{float:right}.d2h-code-linenumber{background-color:#fff;background-color:var(--d2h-bg-color);border:solid #eee;border:solid var(--d2h-line-border-color);box-sizing:border-box;color:var(--d2h-dim-color);cursor:pointer;text-align:right;border-width:0 1px;width:7.5em;display:inline-block;position:absolute}.d2h-code-linenumber:after{content:"​"}.d2h-code-side-linenumber{background-color:#fff;background-color:var(--d2h-bg-color);border:solid #eee;border:solid var(--d2h-line-border-color);box-sizing:border-box;color:var(--d2h-dim-color);cursor:pointer;text-align:right;text-overflow:ellipsis;border-width:0 1px;width:4em;padding:0 .5em;display:inline-block;position:absolute;overflow:hidden}.d2h-code-side-linenumber:after{content:"​"}.d2h-code-side-emptyplaceholder,.d2h-emptyplaceholder{background-color:#f1f1f1;background-color:var(--d2h-empty-placeholder-bg-color);border-color:#e1e1e1;border-color:var(--d2h-empty-placeholder-border-color)}.d2h-code-line-prefix,.d2h-code-linenumber,.d2h-code-side-linenumber,.d2h-emptyplaceholder{-webkit-user-select:none;user-select:none}.d2h-code-linenumber,.d2h-code-side-linenumber{direction:rtl}.d2h-del{background-color:#fee8e9;background-color:var(--d2h-del-bg-color);border-color:#e9aeae;border-color:var(--d2h-del-border-color)}.d2h-ins{background-color:#dfd;background-color:var(--d2h-ins-bg-color);border-color:#b4e2b4;border-color:var(--d2h-ins-border-color)}.d2h-info{background-color:#f8fafd;background-color:var(--d2h-info-bg-color);border-color:#d5e4f2;border-color:var(--d2h-info-border-color);color:var(--d2h-dim-color)}.d2h-file-diff .d2h-del.d2h-change{background-color:#fdf2d0;background-color:var(--d2h-change-del-color)}.d2h-file-diff .d2h-ins.d2h-change{background-color:#ded;background-color:var(--d2h-change-ins-color)}.d2h-file-list-wrapper{margin-bottom:10px}.d2h-file-list-wrapper a{-webkit-text-decoration:none;text-decoration:none}.d2h-file-list-wrapper a,.d2h-file-list-wrapper a:visited{color:var(--d2h-moved-label-color)}.d2h-file-list-header{text-align:left}.d2h-file-list-title{font-weight:700}.d2h-file-list-line{text-align:left;display:flex}.d2h-file-list{margin:0;padding:0;list-style:none;display:block}.d2h-file-list>li{border-bottom:1px solid #ddd;border-bottom:1px solid var(--d2h-border-color);margin:0;padding:5px 10px}.d2h-file-list>li:last-child{border-bottom:none}.d2h-file-switch{cursor:pointer;font-size:10px;display:none}.d2h-icon{fill:currentColor;vertical-align:middle;margin-right:10px}.d2h-deleted{color:var(--d2h-del-label-color)}.d2h-added{color:var(--d2h-ins-label-color)}.d2h-changed{color:var(--d2h-change-label-color)}.d2h-moved{color:var(--d2h-moved-label-color)}.d2h-tag{background-color:#fff;background-color:var(--d2h-bg-color);margin-left:5px;padding:0 2px;font-size:10px;display:flex}.d2h-deleted-tag{border:1px solid #c33;border:1px solid var(--d2h-del-label-color)}.d2h-added-tag{border:1px solid #399839;border:1px solid var(--d2h-ins-label-color)}.d2h-changed-tag{border:1px solid #d0b44c;border:1px solid var(--d2h-change-label-color)}.d2h-moved-tag{border:1px solid #3572b0;border:1px solid var(--d2h-moved-label-color)}.d2h-dark-color-scheme{background-color:#0d1117;background-color:var(--d2h-dark-bg-color);color:var(--d2h-dark-color)}.d2h-dark-color-scheme .d2h-file-header{background-color:#161b22;background-color:var(--d2h-dark-file-header-bg-color);border-bottom:#30363d;border-bottom:var(--d2h-dark-file-header-border-color)}.d2h-dark-color-scheme .d2h-lines-added{border:1px solid #2ea04366;border:1px solid var(--d2h-dark-ins-border-color);color:var(--d2h-dark-ins-label-color)}.d2h-dark-color-scheme .d2h-lines-deleted{border:1px solid #f8514966;border:1px solid var(--d2h-dark-del-border-color);color:var(--d2h-dark-del-label-color)}.d2h-dark-color-scheme .d2h-code-line del,.d2h-dark-color-scheme .d2h-code-side-line del{background-color:#f8514966;background-color:var(--d2h-dark-del-highlight-bg-color)}.d2h-dark-color-scheme .d2h-code-line ins,.d2h-dark-color-scheme .d2h-code-side-line ins{background-color:#2ea04366;background-color:var(--d2h-dark-ins-highlight-bg-color)}.d2h-dark-color-scheme .d2h-diff-tbody{border-color:#30363d;border-color:var(--d2h-dark-border-color)}.d2h-dark-color-scheme .d2h-code-side-linenumber{background-color:#0d1117;background-color:var(--d2h-dark-bg-color);border-color:#21262d;border-color:var(--d2h-dark-line-border-color);color:var(--d2h-dark-dim-color)}.d2h-dark-color-scheme .d2h-files-diff .d2h-code-side-emptyplaceholder,.d2h-dark-color-scheme .d2h-files-diff .d2h-emptyplaceholder{background-color:#6e76811a;background-color:var(--d2h-dark-empty-placeholder-bg-color);border-color:#30363d;border-color:var(--d2h-dark-empty-placeholder-border-color)}.d2h-dark-color-scheme .d2h-code-linenumber{background-color:#0d1117;background-color:var(--d2h-dark-bg-color);border-color:#21262d;border-color:var(--d2h-dark-line-border-color);color:var(--d2h-dark-dim-color)}.d2h-dark-color-scheme .d2h-del{background-color:#f851491a;background-color:var(--d2h-dark-del-bg-color);border-color:#f8514966;border-color:var(--d2h-dark-del-border-color)}.d2h-dark-color-scheme .d2h-ins{background-color:#2ea04326;background-color:var(--d2h-dark-ins-bg-color);border-color:#2ea04366;border-color:var(--d2h-dark-ins-border-color)}.d2h-dark-color-scheme .d2h-info{background-color:#388bfd1a;background-color:var(--d2h-dark-info-bg-color);border-color:#388bfd66;border-color:var(--d2h-dark-info-border-color);color:var(--d2h-dark-dim-color)}.d2h-dark-color-scheme .d2h-file-diff .d2h-del.d2h-change{background-color:#d2992233;background-color:var(--d2h-dark-change-del-color)}.d2h-dark-color-scheme .d2h-file-diff .d2h-ins.d2h-change{background-color:#2ea04340;background-color:var(--d2h-dark-change-ins-color)}.d2h-dark-color-scheme .d2h-file-wrapper{border:1px solid #30363d;border:1px solid var(--d2h-dark-border-color)}.d2h-dark-color-scheme .d2h-file-collapse{border:1px solid #0d1117;border:1px solid var(--d2h-dark-bg-color)}.d2h-dark-color-scheme .d2h-file-collapse.d2h-selected{background-color:#388bfd1a;background-color:var(--d2h-dark-selected-color)}.d2h-dark-color-scheme .d2h-file-list-wrapper a,.d2h-dark-color-scheme .d2h-file-list-wrapper a:visited{color:var(--d2h-dark-moved-label-color)}.d2h-dark-color-scheme .d2h-file-list>li{border-bottom:1px solid #0d1117;border-bottom:1px solid var(--d2h-dark-bg-color)}.d2h-dark-color-scheme .d2h-deleted{color:var(--d2h-dark-del-label-color)}.d2h-dark-color-scheme .d2h-added{color:var(--d2h-dark-ins-label-color)}.d2h-dark-color-scheme .d2h-changed{color:var(--d2h-dark-change-label-color)}.d2h-dark-color-scheme .d2h-moved{color:var(--d2h-dark-moved-label-color)}.d2h-dark-color-scheme .d2h-tag{background-color:#0d1117;background-color:var(--d2h-dark-bg-color)}.d2h-dark-color-scheme .d2h-deleted-tag{border:1px solid #f85149;border:1px solid var(--d2h-dark-del-label-color)}.d2h-dark-color-scheme .d2h-added-tag{border:1px solid #3fb950;border:1px solid var(--d2h-dark-ins-label-color)}.d2h-dark-color-scheme .d2h-changed-tag{border:1px solid #d29922;border:1px solid var(--d2h-dark-change-label-color)}.d2h-dark-color-scheme .d2h-moved-tag{border:1px solid #3572b0;border:1px solid var(--d2h-dark-moved-label-color)}@media (prefers-color-scheme:dark){.d2h-auto-color-scheme{background-color:#0d1117;background-color:var(--d2h-dark-bg-color);color:var(--d2h-dark-color)}.d2h-auto-color-scheme .d2h-file-header{background-color:#161b22;background-color:var(--d2h-dark-file-header-bg-color);border-bottom:#30363d;border-bottom:var(--d2h-dark-file-header-border-color)}.d2h-auto-color-scheme .d2h-lines-added{border:1px solid #2ea04366;border:1px solid var(--d2h-dark-ins-border-color);color:var(--d2h-dark-ins-label-color)}.d2h-auto-color-scheme .d2h-lines-deleted{border:1px solid #f8514966;border:1px solid var(--d2h-dark-del-border-color);color:var(--d2h-dark-del-label-color)}.d2h-auto-color-scheme .d2h-code-line del,.d2h-auto-color-scheme .d2h-code-side-line del{background-color:#f8514966;background-color:var(--d2h-dark-del-highlight-bg-color)}.d2h-auto-color-scheme .d2h-code-line ins,.d2h-auto-color-scheme .d2h-code-side-line ins{background-color:#2ea04366;background-color:var(--d2h-dark-ins-highlight-bg-color)}.d2h-auto-color-scheme .d2h-diff-tbody{border-color:#30363d;border-color:var(--d2h-dark-border-color)}.d2h-auto-color-scheme .d2h-code-side-linenumber{background-color:#0d1117;background-color:var(--d2h-dark-bg-color);border-color:#21262d;border-color:var(--d2h-dark-line-border-color);color:var(--d2h-dark-dim-color)}.d2h-auto-color-scheme .d2h-files-diff .d2h-code-side-emptyplaceholder,.d2h-auto-color-scheme .d2h-files-diff .d2h-emptyplaceholder{background-color:#6e76811a;background-color:var(--d2h-dark-empty-placeholder-bg-color);border-color:#30363d;border-color:var(--d2h-dark-empty-placeholder-border-color)}.d2h-auto-color-scheme .d2h-code-linenumber{background-color:#0d1117;background-color:var(--d2h-dark-bg-color);border-color:#21262d;border-color:var(--d2h-dark-line-border-color);color:var(--d2h-dark-dim-color)}.d2h-auto-color-scheme .d2h-del{background-color:#f851491a;background-color:var(--d2h-dark-del-bg-color);border-color:#f8514966;border-color:var(--d2h-dark-del-border-color)}.d2h-auto-color-scheme .d2h-ins{background-color:#2ea04326;background-color:var(--d2h-dark-ins-bg-color);border-color:#2ea04366;border-color:var(--d2h-dark-ins-border-color)}.d2h-auto-color-scheme .d2h-info{background-color:#388bfd1a;background-color:var(--d2h-dark-info-bg-color);border-color:#388bfd66;border-color:var(--d2h-dark-info-border-color);color:var(--d2h-dark-dim-color)}.d2h-auto-color-scheme .d2h-file-diff .d2h-del.d2h-change{background-color:#d2992233;background-color:var(--d2h-dark-change-del-color)}.d2h-auto-color-scheme .d2h-file-diff .d2h-ins.d2h-change{background-color:#2ea04340;background-color:var(--d2h-dark-change-ins-color)}.d2h-auto-color-scheme .d2h-file-wrapper{border:1px solid #30363d;border:1px solid var(--d2h-dark-border-color)}.d2h-auto-color-scheme .d2h-file-collapse{border:1px solid #0d1117;border:1px solid var(--d2h-dark-bg-color)}.d2h-auto-color-scheme .d2h-file-collapse.d2h-selected{background-color:#388bfd1a;background-color:var(--d2h-dark-selected-color)}.d2h-auto-color-scheme .d2h-file-list-wrapper a,.d2h-auto-color-scheme .d2h-file-list-wrapper a:visited{color:var(--d2h-dark-moved-label-color)}.d2h-auto-color-scheme .d2h-file-list>li{border-bottom:1px solid #0d1117;border-bottom:1px solid var(--d2h-dark-bg-color)}.d2h-dark-color-scheme .d2h-deleted{color:var(--d2h-dark-del-label-color)}.d2h-auto-color-scheme .d2h-added{color:var(--d2h-dark-ins-label-color)}.d2h-auto-color-scheme .d2h-changed{color:var(--d2h-dark-change-label-color)}.d2h-auto-color-scheme .d2h-moved{color:var(--d2h-dark-moved-label-color)}.d2h-auto-color-scheme .d2h-tag{background-color:#0d1117;background-color:var(--d2h-dark-bg-color)}.d2h-auto-color-scheme .d2h-deleted-tag{border:1px solid #f85149;border:1px solid var(--d2h-dark-del-label-color)}.d2h-auto-color-scheme .d2h-added-tag{border:1px solid #3fb950;border:1px solid var(--d2h-dark-ins-label-color)}.d2h-auto-color-scheme .d2h-changed-tag{border:1px solid #d29922;border:1px solid var(--d2h-dark-change-label-color)}.d2h-auto-color-scheme .d2h-moved-tag{border:1px solid #3572b0;border:1px solid var(--d2h-dark-moved-label-color)}}.table-wrap.svelte-16rv22u{flex:1;width:100%;min-height:0;overflow:auto}table.svelte-16rv22u{border-collapse:collapse;table-layout:fixed;width:100%;font-size:12px}th.svelte-16rv22u{background:var(--surface);border-bottom:1px solid var(--border);color:var(--muted-foreground);letter-spacing:.06em;text-align:left;text-transform:uppercase;z-index:1;padding:2px 8px;font-size:10px;font-weight:700;position:sticky;top:0}td.svelte-16rv22u{border-bottom:1px solid var(--border-subtle);text-overflow:ellipsis;white-space:nowrap;max-width:0;height:28px;padding:0 8px;line-height:26px;overflow:hidden}tbody.svelte-16rv22u tr:where(.svelte-16rv22u){cursor:pointer;height:28px}tbody.svelte-16rv22u tr:where(.svelte-16rv22u):hover{background:var(--row-hover)}tbody.svelte-16rv22u tr:where(.svelte-16rv22u):focus-visible{background:var(--row-hover);outline:2px solid var(--ring);outline-offset:-2px}th.svelte-16rv22u:first-child{width:27%}th.svelte-16rv22u:nth-child(2),th.svelte-16rv22u:nth-child(3){width:11%}th.svelte-16rv22u:nth-child(4){width:19%}th.svelte-16rv22u:nth-child(5){width:22%}th.svelte-16rv22u:nth-child(6){width:10%}.adr-title.svelte-16rv22u{align-items:center;gap:6px;min-width:0;max-width:none;display:flex;overflow:hidden}.adr-title__text.svelte-16rv22u{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.adr-title.svelte-16rv22u .badge:where(.svelte-16rv22u){flex:none}.start-button.svelte-16rv22u{background:var(--primary);border:1px solid var(--primary);color:var(--primary-foreground);cursor:pointer;font:inherit;border-radius:3px;height:20px;padding:0 6px;font-size:11px}.start-button.svelte-16rv22u:disabled{opacity:.45}.empty.svelte-16rv22u{color:var(--muted-foreground);text-align:center}.page-header.svelte-49msuj{background:var(--surface);border:1px solid var(--border);border-radius:4px;flex:none;justify-content:space-between;align-items:flex-start;gap:12px;min-width:0;padding:10px 12px;display:flex}.page-header--flat.svelte-49msuj{background:0 0;border:0;border-radius:0;padding:0}.page-header__identity.svelte-49msuj{flex-direction:column;gap:2px;min-width:0;display:flex}.page-header__eyebrow.svelte-49msuj{color:var(--muted-foreground);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:10px;font-weight:700;line-height:1.2}.page-header__title.svelte-49msuj{color:var(--foreground);letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:20px;font-weight:650;line-height:1.2;overflow:hidden}.page-header__subtitle.svelte-49msuj{color:var(--muted-foreground);overflow-wrap:anywhere;margin:0;font-size:12px;line-height:1.45}.page-header__meta.svelte-49msuj{flex-wrap:wrap;align-items:center;gap:4px 12px;margin-top:4px;display:flex}.page-header__actions.svelte-49msuj{flex-wrap:wrap;flex:none;justify-content:flex-end;align-items:center;gap:6px;display:flex}.stage-track.svelte-1wf95hc{flex-direction:column;gap:8px;min-width:0;display:flex}.stage-track__steps.svelte-1wf95hc{gap:4px;min-width:0;margin:0;padding:0;list-style:none;display:flex}.stage-track__step.svelte-1wf95hc{border:1px solid var(--border-subtle);color:var(--muted-foreground);text-overflow:ellipsis;white-space:nowrap;border-radius:3px;flex:1 1 0;min-width:0;padding:4px 6px;font-size:11px;font-weight:600;overflow:hidden}.stage-track__step[data-complete=true].svelte-1wf95hc{border-color:var(--border);color:var(--foreground)}.stage-track__step[aria-current=step].svelte-1wf95hc{background:var(--accent-surface);border-color:var(--accent);color:var(--foreground)}.stage-track__detail.svelte-1wf95hc{color:var(--muted-foreground);flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin:0;font-size:11px;display:flex}.stage-track__work.svelte-1wf95hc{overflow-wrap:anywhere;min-width:0}.stage-track.svelte-1wf95hc a:where(.svelte-1wf95hc){color:var(--accent)}.scout-issues__empty.svelte-17gi8wz{text-align:center;justify-content:center;align-items:center;min-height:100%;padding:24px 16px;display:flex}.scout-issues__empty-body.svelte-17gi8wz{flex-direction:column;align-items:center;gap:4px;max-width:360px;display:flex}.scout-issues__empty-icon.svelte-17gi8wz{color:var(--muted-foreground);margin-bottom:4px;display:flex}.scout-issues__empty-title.svelte-17gi8wz{margin:0;font-size:13px;font-weight:600;line-height:1.3}.scout-issues__empty-copy.svelte-17gi8wz{color:var(--muted-foreground);margin:0;font-size:12px;line-height:1.45}.table-wrap.svelte-17gi8wz{width:100%;overflow:auto}tbody.svelte-17gi8wz tr:where(.svelte-17gi8wz):hover{background:var(--row-hover)}table.svelte-17gi8wz{border-collapse:collapse;table-layout:fixed;width:100%;font-size:12px}th.svelte-17gi8wz{background:var(--surface);border-bottom:1px solid var(--border);color:var(--muted-foreground);letter-spacing:.06em;text-align:left;text-transform:uppercase;padding:2px 8px;font-size:10px;font-weight:700}td.svelte-17gi8wz{border-bottom:1px solid var(--border-subtle);text-overflow:ellipsis;white-space:nowrap;max-width:0;height:28px;padding:0 8px;line-height:26px;overflow:hidden}th.svelte-17gi8wz:first-child{width:40%}th.svelte-17gi8wz:nth-child(2){width:20%}th.svelte-17gi8wz:nth-child(3){width:12%}th.svelte-17gi8wz:nth-child(4){width:15%}th.svelte-17gi8wz:nth-child(5){width:13%}.scout-issues-table__title.svelte-17gi8wz{overflow-wrap:anywhere}.scout-issues-table__title.svelte-17gi8wz a:where(.svelte-17gi8wz){color:var(--foreground);text-decoration:none}.scout-issues-table__title.svelte-17gi8wz a:where(.svelte-17gi8wz):hover{color:var(--accent);text-decoration:underline}.watchdog-page.svelte-8msku9{flex-direction:column;gap:12px;min-width:0;height:100%;min-height:0;padding:16px;display:flex;overflow:hidden}.watchdog-page__alerts.svelte-8msku9{flex-direction:column;flex:none;gap:6px;display:flex}.watchdog-latest.svelte-8msku9{flex:none}.watchdog-latest__body.svelte-8msku9{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 24px;display:flex}.watchdog-latest__verdict.svelte-8msku9{align-items:center;gap:8px;min-width:0;display:flex}.watchdog-latest__reason.svelte-8msku9{color:var(--foreground);overflow-wrap:anywhere;margin:0;font-size:12px;line-height:1.4}.watchdog-latest__reason--empty.svelte-8msku9{color:var(--muted-foreground)}.watchdog-latest__facts.svelte-8msku9{flex-wrap:wrap;gap:4px 24px;margin:0;display:flex}.watchdog-latest__facts.svelte-8msku9>div:where(.svelte-8msku9){flex-direction:column;gap:2px;min-width:0;display:flex}.watchdog-latest__facts.svelte-8msku9 dt:where(.svelte-8msku9){color:var(--muted-foreground);letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:700;line-height:1.2}.watchdog-latest__facts.svelte-8msku9 dd:where(.svelte-8msku9){overflow-wrap:anywhere;margin:0;font-size:11.5px;line-height:1.4}.watchdog-body.svelte-8msku9{flex:1;grid-template-columns:minmax(0,1.25fr) minmax(420px,1fr);gap:12px;min-width:0;min-height:0;display:grid}.watchdog-panel.svelte-8msku9{min-height:0}.watchdog-table.svelte-8msku9{border-collapse:collapse;table-layout:fixed;width:100%;font-size:12px}.watchdog-table.svelte-8msku9 th:where(.svelte-8msku9){background:var(--surface);border-bottom:1px solid var(--border);color:var(--muted-foreground);letter-spacing:.06em;text-align:left;text-transform:uppercase;z-index:1;padding:2px 8px;font-size:10px;font-weight:700;position:sticky;top:0}.watchdog-table.svelte-8msku9 td:where(.svelte-8msku9){border-bottom:1px solid var(--border-subtle);text-overflow:ellipsis;white-space:nowrap;max-width:0;height:27px;padding:0 8px;line-height:26px;overflow:hidden}.watchdog-table.svelte-8msku9 tbody:where(.svelte-8msku9) tr:where(.svelte-8msku9):hover{background:var(--row-hover)}.watchdog-table.svelte-8msku9 tbody:where(.svelte-8msku9) tr:where(.svelte-8msku9):last-child td:where(.svelte-8msku9){border-bottom:0}.watchdog-table__muted.svelte-8msku9{color:var(--muted-foreground)}.watchdog-table__links.svelte-8msku9{overflow-wrap:anywhere;white-space:normal;height:auto;padding-top:5px;padding-bottom:5px;line-height:1.4}.watchdog-table--issues.svelte-8msku9 th:where(.svelte-8msku9):nth-child(2){width:104px}.watchdog-table--issues.svelte-8msku9 th:where(.svelte-8msku9):nth-child(3){width:142px}.watchdog-table--issues.svelte-8msku9 th:where(.svelte-8msku9):nth-child(4){width:104px}.watchdog-table--issues.svelte-8msku9 th:where(.svelte-8msku9):nth-child(5){width:74px}.watchdog-table--cycles.svelte-8msku9 th:where(.svelte-8msku9):first-child{width:140px}.watchdog-table--cycles.svelte-8msku9 th:where(.svelte-8msku9):nth-child(2){width:100px}.watchdog-cycle__issues.svelte-8msku9{flex-wrap:wrap;gap:8px;display:flex}.watchdog-cycle__issue.svelte-8msku9{color:var(--accent);text-decoration:none}.watchdog-cycle__issue.svelte-8msku9:hover,.watchdog-cycle__issue.svelte-8msku9:focus-visible{text-decoration:underline}.watchdog-issue__title.svelte-8msku9{color:var(--foreground);text-decoration:none}.watchdog-issue__title.svelte-8msku9:hover,.watchdog-issue__title.svelte-8msku9:focus-visible{color:var(--accent);text-decoration:underline}.watchdog-empty.svelte-8msku9{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-height:100%;padding:24px 16px;display:flex}.watchdog-empty__icon.svelte-8msku9{color:var(--muted-foreground);margin-bottom:4px;display:flex}.watchdog-empty__title.svelte-8msku9{margin:0;font-size:13px;font-weight:600;line-height:1.3}.watchdog-empty__copy.svelte-8msku9{color:var(--muted-foreground);max-width:360px;margin:0;font-size:12px;line-height:1.45}@media (width<=1500px){.watchdog-body.svelte-8msku9{grid-template-rows:minmax(0,1.15fr) minmax(0,1fr);grid-template-columns:minmax(0,1fr)}}@media (width<=1100px){.watchdog-table--issues.svelte-8msku9 th:where(.svelte-8msku9):nth-child(2),.watchdog-table--issues.svelte-8msku9 td:where(.svelte-8msku9):nth-child(2){display:none}}.watchdog.svelte-2fkbcq{flex:none;display:inline-flex}.watchdog-trigger.svelte-2fkbcq{max-width:260px}.watchdog-popover.svelte-2fkbcq{background:var(--surface);border:1px solid var(--border);color:var(--foreground);white-space:normal;z-index:40;border-radius:6px;flex-direction:column;gap:6px;max-width:520px;max-height:50vh;padding:8px 10px;font-size:11px;display:flex;position:fixed;bottom:30px;right:8px;overflow:auto;box-shadow:0 8px 24px #00000040}.watchdog-summary.svelte-2fkbcq,.watchdog-reason.svelte-2fkbcq,.watchdog-empty.svelte-2fkbcq{margin:0}.watchdog-reason.svelte-2fkbcq{color:var(--muted-foreground)}.watchdog-issues.svelte-2fkbcq{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.watchdog-issues.svelte-2fkbcq a:where(.svelte-2fkbcq){color:var(--foreground);text-underline-offset:2px;text-decoration:underline}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--font-weight-medium:500;--radius-sm:.25rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.z-50{z-index:50}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.w-full{width:100%}.min-w-0{min-width:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rounded{border-radius:.25rem}.rounded-sm{border-radius:var(--radius-sm)}.border{border-style:var(--tw-border-style);border-width:1px}.border\!{border-style:var(--tw-border-style)!important;border-width:1px!important}.border-\[var\(--accent\)\]{border-color:var(--accent)}.border-\[var\(--border-strong\)\]{border-color:var(--border-strong)}.border-\[var\(--destructive\)\]{border-color:var(--destructive)}.border-\[var\(--primary\)\]{border-color:var(--primary)}.border-transparent{border-color:#0000}.bg-\[var\(--accent-surface\)\]{background-color:var(--accent-surface)}.bg-\[var\(--background\)\]{background-color:var(--background)}.bg-\[var\(--destructive\)\]{background-color:var(--destructive)}.bg-\[var\(--primary\)\]{background-color:var(--primary)}.bg-\[var\(--secondary\)\]{background-color:var(--secondary)}.bg-\[var\(--surface-raised\)\]{background-color:var(--surface-raised)}.bg-transparent{background-color:#0000}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.py-1{padding-block:var(--spacing)}.font-mono{font-family:var(--font-mono)}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.whitespace-nowrap{white-space:nowrap}.text-\[var\(--accent\)\]{color:var(--accent)}.text-\[var\(--destructive-foreground\)\]{color:var(--destructive-foreground)}.text-\[var\(--foreground\)\]{color:var(--foreground)}.text-\[var\(--primary\)\]{color:var(--primary)}.text-\[var\(--primary-foreground\)\]{color:var(--primary-foreground)}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.overline{text-decoration-line:overline}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring\!{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor)!important;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)!important}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.grayscale{--tw-grayscale:grayscale(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.outline-none{--tw-outline-style:none;outline-style:none}.block-1{block-size:var(--spacing)}.paused{animation-play-state:paused}.running{animation-play-state:running}.placeholder\:text-\[var\(--muted-foreground\)\]::placeholder{color:var(--muted-foreground)}@media (hover:hover){.hover\:bg-\[var\(--accent-surface\)\]:hover{background-color:var(--accent-surface)}.hover\:bg-\[var\(--primary-hover\)\]:hover{background-color:var(--primary-hover)}.hover\:bg-\[var\(--secondary\)\]:hover{background-color:var(--secondary)}.hover\:bg-\[var\(--secondary-hover\)\]:hover{background-color:var(--secondary-hover)}.hover\:text-\[var\(--accent\)\]:hover{color:var(--accent)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}}.focus-visible\:border-\[var\(--ring\)\]:focus-visible{border-color:var(--ring)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-\[var\(--ring\)\]:focus-visible{--tw-ring-color:var(--ring)}.focus-visible\:ring-offset-1:focus-visible{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:ring-offset-\[var\(--background\)\]:focus-visible{--tw-ring-offset-color:var(--background)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-45:disabled{opacity:.45}.disabled\:opacity-50:disabled{opacity:.5}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root,:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:#0d1117;--surface:#161b22;--surface-raised:#1c2128;--foreground:#e6edf3;--text:var(--foreground);--muted-foreground:#8b949e;--muted:var(--muted-foreground);--border:#30363d;--border-subtle:#21262d;--border-strong:#6e7681;--ring:#58a6ff;--primary:#1f6feb;--primary-hover:#388bfd;--primary-foreground:#fff;--secondary:#21262d;--secondary-hover:#30363d;--accent:#58a6ff;--accent-surface:#16233a;--destructive:#da3633;--destructive-foreground:#fff;--success:#3fb950;--success-surface:#16251b;--warning:#d29922;--warning-surface:#2b2411;--error:#ff7b72;--error-surface:#2b1513;--row-hover:#1b2129;--terminal-background:#0d1117;--activity-bar:#0a0d12;--badge-pending:#d29922;--badge-stale:#d29922;--font-sans:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--selection-background:#264f78}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:#fff;--surface:#f6f8fa;--surface-raised:#fff;--foreground:#1f2328;--text:var(--foreground);--muted-foreground:#57606a;--muted:var(--muted-foreground);--border:#d0d7de;--border-subtle:#eaeef2;--border-strong:#6e7781;--ring:#0969da;--primary:#0969da;--primary-hover:#0550ae;--primary-foreground:#fff;--secondary:#f6f8fa;--secondary-hover:#eaeef2;--accent:#0969da;--accent-surface:#eef4ff;--destructive:#cf222e;--destructive-foreground:#fff;--success:#1a7f37;--success-surface:#f0f7f2;--warning:#9a6700;--warning-surface:#fff8e5;--error:#cf222e;--error-surface:#fdf2f1;--row-hover:#f6f8fa;--terminal-background:#fff;--activity-bar:#f6f8fa;--badge-pending:#9a6700;--badge-stale:#9a6700;--selection-background:#b6d7ff;--flow-contract-border:#0969da;--flow-contract-surface:#eef4ff;--flow-entity-border:#8250df;--flow-entity-surface:#f6f1ff;--flow-naming-border:#1a7f37;--flow-naming-surface:#eaf6ed;--flow-data-border:#9a6700;--flow-data-surface:#fff8e5;--flow-dependency-border:#1f7a8c;--flow-dependency-surface:#eef8f9;--flow-irreversible-border:#b42318;--flow-irreversible-surface:#fdf2f1;--flow-structure-border:#656d76;--flow-structure-surface:#f0f2f4}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--flow-contract-border:#58a6ff;--flow-contract-surface:#16233a;--flow-entity-border:#bc8cff;--flow-entity-surface:#241a33;--flow-naming-border:#3fb950;--flow-naming-surface:#16251b;--flow-data-border:#e3b341;--flow-data-surface:#2b2411;--flow-dependency-border:#6cb6c8;--flow-dependency-surface:#13292c;--flow-irreversible-border:#ff7b72;--flow-irreversible-surface:#2b1513;--flow-structure-border:#9aa4ae;--flow-structure-surface:#22272c}*{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden}body{background:var(--background);color:var(--foreground);font-family:var(--font-sans);font-size:13px;line-height:1.45}#app{height:100dvh;overflow:hidden}::selection{background:var(--selection-background)}:where(button,[role=tab],a,input,textarea,select,[tabindex]):focus-visible{outline:2px solid var(--ring);outline-offset:1px}.mono,code,pre,kbd{font-family:var(--font-mono);font-size:12px}.muted{color:var(--muted-foreground)}.app-shell{flex-direction:column;width:100%;height:100dvh;display:flex;overflow:hidden}.shell-main{flex:1;width:100%;min-width:0;min-height:0;display:flex}.activity-bar{background:var(--activity-bar);border-right:1px solid var(--border);flex-direction:column;flex:0 0 72px;align-items:center;gap:4px;width:72px;padding:8px 0;display:flex}.activity-tab{color:var(--muted-foreground);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:64px;height:52px;padding:6px 4px;display:flex;position:relative}.activity-tab__label{letter-spacing:.06em;text-transform:uppercase;font-size:10px;font-weight:700;line-height:1}.activity-tab:hover{background:var(--secondary);color:var(--foreground)}.activity-tab[aria-selected=true]{background:var(--secondary);border-color:var(--border-strong);color:var(--foreground)}.activity-tab[aria-selected=true]:before{background:var(--accent);content:"";border-radius:0 2px 2px 0;width:2px;height:24px;position:absolute;top:14px;left:-5px}.activity-tab svg{width:18px;height:18px}.activity-bar__modes{flex-direction:column;align-items:center;gap:4px;width:100%;display:flex}.activity-bar__actions{border-top:1px solid var(--border);flex-direction:column;align-items:center;gap:4px;width:100%;margin-top:auto;padding-top:8px;display:flex}.activity-bar__action{position:relative}.activity-bar__action[aria-pressed=true]:before{background:var(--accent);content:"";border-radius:0 2px 2px 0;width:2px;height:16px;position:absolute;top:50%;left:-5px;transform:translateY(-50%)}.activity-bar__unread{background:var(--error);border:1px solid var(--activity-bar);border-radius:999px;width:6px;height:6px;position:absolute;top:4px;right:4px}.activity-tab__state{border:1px solid var(--activity-bar);border-radius:999px;width:6px;height:6px;position:absolute;top:6px;right:6px}.activity-tab__state[data-state=running]{background:var(--accent)}.activity-tab__state[data-state=attention],.activity-tab__state[data-state=stale]{background:var(--warning)}.activity-tab__state[data-state=idle]{background:var(--border-strong)}.pane-fill{width:100%;min-width:0;height:100%;min-height:0;display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;width:100%;min-width:0;height:100%;display:flex;overflow:hidden}.sidebar__body{flex:1;min-height:0;padding:6px;overflow:auto}.sidebar-group{margin-bottom:10px}.sidebar-group__title{color:var(--muted-foreground);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:6px;padding:2px 4px 4px;font-size:10px;font-weight:700;display:flex}.sidebar-item{color:var(--foreground);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:3px;align-items:center;gap:6px;width:100%;min-height:24px;padding:2px 6px;font-size:12px;display:flex}.sidebar-item:hover{background:var(--secondary)}.sidebar-item[aria-current=true]{background:var(--accent-surface);border-color:var(--border-strong)}.sidebar-item__label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.sidebar-item__meta{color:var(--muted-foreground);font-family:var(--font-mono);flex:none;font-size:10px}.sidebar-item__meta[data-tone=warning]{color:var(--warning)}.sidebar-item__meta[data-tone=error]{color:var(--error)}.sidebar-group--separated{border-top:1px solid var(--border-subtle);margin-top:10px;padding-top:6px}.sidebar-empty{color:var(--muted-foreground);padding:4px 6px;font-size:11px}.badge{border:1px solid var(--border-strong);color:var(--muted-foreground);white-space:nowrap;border-radius:999px;gap:3px;padding:2px 6px;font-size:10px;font-weight:600;line-height:1;display:inline-flex}.badge[data-tone=pending]{border-color:var(--badge-pending);color:var(--badge-pending)}.badge[data-tone=success]{border-color:var(--success);color:var(--success)}.badge[data-tone=stale],.badge[data-tone=warning]{border-color:var(--badge-stale);color:var(--badge-stale)}.badge[data-tone=error]{border-color:var(--error);color:var(--error)}.badge[data-tone=accent]{border-color:var(--accent);color:var(--accent)}.workspace-region{flex-direction:column;flex:1;width:100%;min-width:0;min-height:0;display:flex;overflow:hidden}.workspace{background:var(--background);flex:1;min-width:0;min-height:0;position:relative;overflow:hidden}.mode-workspace{width:100%;height:100%;overflow:hidden}.mode-workspace[hidden]{display:none}.mode-body{flex-direction:column;gap:8px;height:100%;min-height:0;padding:8px;display:flex;overflow:hidden}.split-fill{flex:1;width:100%;min-width:0;min-height:0;display:flex}.panel{background:var(--surface);border:1px solid var(--border);border-radius:4px;flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.panel--plain{background:0 0;border:0;border-radius:0}.panel__header{border-bottom:1px solid var(--border);flex:0 0 30px;justify-content:space-between;align-items:center;gap:8px;height:30px;padding:0 8px;display:flex}.panel__title{color:var(--foreground);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:12px;font-weight:600;overflow:hidden}.panel__subtitle{color:var(--muted-foreground);font-size:11px}.panel__body{flex:1;min-height:0;padding:8px;overflow:auto}.panel__body--flush{padding:0}.panel__footer{border-top:1px solid var(--border);flex:none;justify-content:flex-end;align-items:center;gap:6px;padding:6px 8px;display:flex}.scroll-column{flex-direction:column;flex:1;gap:8px;min-height:0;display:flex;overflow:auto}.toolbar{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.toolbar--between{justify-content:space-between}.field{flex-direction:column;gap:4px;min-width:0;display:flex}.field__label{color:var(--muted-foreground);font-size:11px;font-weight:600}.field__hint{color:var(--muted-foreground);font-size:11px}.stack-xs{flex-direction:column;gap:4px;min-height:0;display:flex}.stack-sm{flex-direction:column;gap:8px;min-height:0;display:flex}.row-sm{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.grow{flex:1;min-width:0;min-height:0}.textarea{background:var(--background);border:1px solid var(--border-strong);color:var(--foreground);font-family:var(--font-mono);resize:vertical;border-radius:4px;width:100%;min-height:64px;padding:6px;font-size:12px}.textarea:focus-visible{border-color:var(--ring);outline:2px solid var(--ring)}.kv-grid{grid-template-columns:max-content minmax(0,1fr);gap:2px 10px;font-size:12px;display:grid}.kv-grid dt{color:var(--muted-foreground)}.kv-grid dd{overflow-wrap:anywhere;min-width:0;margin:0}.message{border:1px solid var(--border);border-left:2px solid var(--accent);border-radius:4px;padding:6px 8px}.message[data-severity=error]{border-left-color:var(--error);background:var(--error-surface)}.message[data-severity=warning]{border-left-color:var(--warning);background:var(--warning-surface)}.message[data-severity=notice]{border-left-color:var(--accent);background:var(--accent-surface)}.message__text{overflow-wrap:anywhere;margin:0}.empty{color:var(--muted-foreground);margin:0;padding:8px;font-size:12px}.status-bar{background:var(--surface-raised);border-top:1px solid var(--border);white-space:nowrap;z-index:20;flex:0 0 26px;align-items:center;gap:8px;height:26px;padding:0 6px;font-size:11px;display:flex;overflow:hidden}.status-group{align-items:center;gap:4px;min-width:0;display:flex}.status-group--metrics{flex:0 auto;justify-content:flex-end;gap:6px;min-width:0}.status-item{color:var(--muted-foreground);text-overflow:ellipsis;border-radius:3px;flex:none;align-items:center;gap:5px;max-width:320px;height:20px;padding:0 5px;display:inline-flex;overflow:hidden}.status-item--button{cursor:pointer;font:inherit;background:0 0;border:1px solid #0000}.status-item--button:hover{background:var(--secondary);color:var(--foreground)}.status-divider{background:var(--border);flex:0 0 1px;height:12px}.status-metric__label{color:var(--muted-foreground);letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:700}.status-metric__value{color:var(--foreground);font-size:11px}.status-project{color:var(--foreground)}.status-project svg{color:var(--muted-foreground);flex:none}.status-project .mono{text-overflow:ellipsis;overflow:hidden}.status-dot{border-radius:999px;flex:none;width:7px;height:7px;display:inline-block}.status-dot[data-state=open]{background:var(--success)}.status-dot[data-state=connecting]{background:var(--warning)}.status-dot[data-state=closed]{background:var(--error)}.status-bar__spacer{flex:1}.status-versions{gap:8px}.status-versions__entry{align-items:baseline;gap:4px;display:inline-flex}.status-versions .mono{color:var(--foreground);font-size:10.5px}.notification-region{z-index:80;flex-direction:column;gap:6px;width:min(380px,100vw - 16px);max-width:380px;max-height:50vh;display:flex;position:fixed;bottom:34px;right:8px;overflow:hidden}.notification{background:var(--surface-raised);border:1px solid var(--border-strong);border-left:3px solid var(--accent);border-radius:4px;align-items:flex-start;gap:8px;padding:6px 8px;display:flex;box-shadow:0 6px 18px #00000047}.notification[data-severity=error]{border-left-color:var(--error)}.notification[data-severity=warning]{border-left-color:var(--warning)}.notification[data-severity=success]{border-left-color:var(--success)}.notification__body{flex:1;min-width:0}.notification__meta{color:var(--muted-foreground);text-transform:uppercase;font-size:10px}.notification__text{overflow-wrap:anywhere;margin:1px 0 0;font-size:12px}.notification__error{color:var(--error);overflow-wrap:anywhere;margin:2px 0 0;font-size:11px}.notification__actions{flex:none;align-items:flex-start;gap:2px;display:flex}.notification__link{color:var(--accent);white-space:nowrap;padding:3px 2px;font-size:11px;text-decoration:none}.notification__link:hover{text-decoration:underline}.dialog-overlay{z-index:100;background:#0000008c;position:fixed;inset:0}.dialog-content{background:var(--surface-raised);border:1px solid var(--border-strong);z-index:101;border-radius:6px;width:min(640px,100vw - 32px);max-width:640px;max-height:80vh;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 18px 48px #00000073}.dialog-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;display:flex}.dialog-title{margin:0;font-size:13px;font-weight:600}.dialog-body{max-height:calc(80vh - 92px);padding:8px;overflow:auto}.dialog-footer{border-top:1px solid var(--border);justify-content:flex-end;align-items:center;gap:6px;padding:8px 10px;display:flex}.palette{background:var(--surface-raised);border:1px solid var(--border-strong);z-index:101;border-radius:6px;width:min(680px,100vw - 32px);max-height:70vh;position:fixed;top:14%;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 18px 48px #00000073}.palette__search{border-bottom:1px solid var(--border);padding:8px}.palette__list{max-height:calc(70vh - 52px);padding:4px;overflow:auto}.palette__group{color:var(--muted-foreground);letter-spacing:.08em;text-transform:uppercase;padding:6px 8px 2px;font-size:10px;font-weight:700}.palette__item{color:var(--foreground);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:4px;align-items:center;gap:8px;width:100%;padding:5px 8px;display:flex}.palette__item[aria-selected=true]{background:var(--accent-surface);border-color:var(--border-strong)}.palette__item:disabled{color:var(--muted-foreground);cursor:not-allowed}.palette__item-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.palette__item-reason{color:var(--muted-foreground);font-size:10px}.palette__shortcut{color:var(--muted-foreground);font-family:var(--font-mono);font-size:10px}.palette__empty{color:var(--muted-foreground);text-align:center;padding:12px}.unsupported{background:var(--background);color:var(--foreground);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;width:100%;height:100dvh;padding:24px;display:flex}.unsupported h1{margin:0;font-size:16px}.unsupported p{color:var(--muted-foreground);max-width:46ch;margin:0}.diff-html{font-size:12px;overflow:auto}.diff-html .d2h-wrapper{color:var(--foreground);background:0 0}.diff-html .d2h-file-wrapper{border-color:var(--border);margin-bottom:8px}.diff-html .d2h-file-header,.diff-html .d2h-file-diff .d2h-code-line,.diff-html .d2h-code-side-line{background:var(--surface);color:var(--foreground)}.diff-html .d2h-code-line-ctn{color:var(--foreground)}.diff-html .d2h-ins{background:var(--success-surface)}.diff-html .d2h-del{background:var(--error-surface)}.agent-output{font-size:12px;overflow:auto}.agent-output>:first-child{margin-top:0}.agent-output>:last-child{margin-bottom:0}.agent-output pre{background:var(--background);border:1px solid var(--border);font-family:var(--font-mono);border-radius:4px;padding:6px;font-size:11px;overflow:auto}.agent-output code{font-family:var(--font-mono)}.agent-output table{border-collapse:collapse}.agent-output th,.agent-output td{border:1px solid var(--border);padding:2px 6px}.choice-list{flex-direction:column;gap:4px;display:flex}.choice{background:var(--background);border:1px solid var(--border-strong);color:var(--foreground);cursor:pointer;text-align:left;border-radius:4px;flex-direction:column;gap:2px;width:100%;padding:6px 8px;display:flex}.choice:hover{border-color:var(--ring);background:var(--secondary)}.choice__label{align-items:center;gap:6px;font-size:12px;font-weight:600;display:flex}.choice__description{color:var(--muted-foreground);font-size:11px}.choice__recommended{border:1px solid var(--success);color:var(--success);border-radius:999px;padding:1px 5px;font-size:10px;font-weight:600}.answer-form{align-items:center;gap:6px;display:flex}.activity-section{flex-direction:column;flex:1;gap:4px;min-height:0;display:flex}.activity-history summary{color:var(--muted-foreground);cursor:pointer;padding:2px 0;font-size:11px}.activity-log{flex-direction:column;gap:2px;max-height:140px;margin:0;padding-left:16px;display:flex;overflow:auto}.history-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.history-entry{border-bottom:1px solid var(--border-subtle);grid-template-columns:max-content minmax(0,1fr) max-content;gap:2px 10px;padding:4px 6px;display:grid}.steering-composer{flex-direction:column;gap:6px;display:flex}.steering-composer__actions{justify-content:flex-end;display:flex}.steering-state[data-state=waiting]{color:var(--warning)}.steering-state[data-state=read]{color:var(--success)}.steering-note{border-left:2px solid var(--border-strong);padding:4px 8px}.steering-note[data-status=new]{border-left-color:var(--accent)}.steering-meta{color:var(--muted-foreground);flex-wrap:wrap;gap:8px;font-size:10px;display:flex}.term-split{flex-direction:column;flex:1;gap:4px;min-height:0;display:flex}.term-split>.terminal-host{flex:1}.skill-editor{flex-direction:column;flex:1;gap:6px;min-height:0;display:flex}.verification-output{background:var(--background);border:1px solid var(--border);font-family:var(--font-mono);white-space:pre-wrap;border-radius:4px;max-height:220px;margin:0;padding:6px;font-size:11px;overflow:auto}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.pane-handle{background:var(--border);z-index:2;outline:none;flex:0 0 5px;position:relative}.pane-handle:after{content:"";position:absolute;inset:-2px}.pane-handle:hover,.pane-handle:focus-visible,.pane-handle[data-active]{background:var(--accent)}.pane-handle:focus-visible{box-shadow:0 0 0 2px var(--ring)}[data-category=contract]{--flow-category-border:var(--flow-contract-border);--flow-category-surface:var(--flow-contract-surface)}[data-category=entity]{--flow-category-border:var(--flow-entity-border);--flow-category-surface:var(--flow-entity-surface)}[data-category=naming]{--flow-category-border:var(--flow-naming-border);--flow-category-surface:var(--flow-naming-surface)}[data-category=data]{--flow-category-border:var(--flow-data-border);--flow-category-surface:var(--flow-data-surface)}[data-category=dependency]{--flow-category-border:var(--flow-dependency-border);--flow-category-surface:var(--flow-dependency-surface)}[data-category=irreversible]{--flow-category-border:var(--flow-irreversible-border);--flow-category-surface:var(--flow-irreversible-surface)}[data-category=structure]{--flow-category-border:var(--flow-structure-border);--flow-category-surface:var(--flow-structure-surface)}.badge[data-category]{background:var(--flow-category-surface);border-color:var(--flow-category-border);color:var(--flow-category-border)}.flow-widget{border-left:2px solid var(--flow-category-border,var(--border))}.flow-overview>*{flex:none}.flow-goal-panel{flex:none;height:100%;min-height:360px}.flow-goal__header{flex:0 0 44px;align-items:center;gap:12px;height:44px;padding:0 12px}.flow-goal__identity{align-items:center;gap:10px;min-width:0;display:flex}.flow-goal__title{letter-spacing:0;font-size:18px;font-weight:650;line-height:1.2}.flow-goal__state{flex:none}.flow-goal__actions{flex-wrap:nowrap;flex:none;align-items:center}.flow-goal-panel--collapsed{height:auto;min-height:0}.flow-goal-editor{display:flex}.flow-goal-activity{height:180px}.flow-activity-panel{flex:none;min-height:100%}.flow-activity-body{padding:4px;display:flex}.flow-decisions__header{flex:0 0 44px;align-items:center;gap:12px;height:44px;padding:0 12px}.flow-decisions__identity{align-items:center;gap:10px;min-width:0;display:flex}.flow-decisions__title{letter-spacing:0;font-size:18px;font-weight:650;line-height:1.2}.flow-decisions__state{flex:none}.flow-decisions__actions{flex-wrap:nowrap;flex:none;justify-content:flex-end;align-items:center}.discover-page{gap:24px;padding:0 2px 56px}.discover-page>*{flex:none}.discover-page .panel__body{flex:none;min-height:auto;overflow:visible}.discover-page__header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:8px 16px;display:flex}.discover-page__heading{flex-direction:column;gap:4px;min-width:0;display:flex}.discover-page__eyebrow{color:var(--muted-foreground);letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:700;line-height:1.2}.discover-page__title{color:var(--foreground);letter-spacing:-.01em;overflow-wrap:anywhere;margin:0;font-size:20px;font-weight:650;line-height:1.2}.discover-page__subtitle{color:var(--muted-foreground);max-width:72ch;margin:0;font-size:12px;line-height:1.45}.discover-page__actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;margin-top:2px;display:flex}.discover-page__header--compact{gap:4px}.discover-card{min-width:0}.discover-head{flex-direction:column;gap:8px;min-width:0;display:flex}.discover-head__top{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.discover-head__identity{flex-direction:column;gap:4px;min-width:0;display:flex}.discover-head__title{letter-spacing:-.01em;overflow-wrap:anywhere;margin:0;font-size:20px;font-weight:650;line-height:1.2}.discover-head__actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.discover-head__definition{max-width:72ch;margin:0;font-size:13px;line-height:1.45}.discover-head__meta{color:var(--muted-foreground);flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:11px;display:flex}.discover-sheet{grid-template-columns:minmax(320px,420px) minmax(0,1fr);align-items:start;gap:16px 24px;max-width:1440px;display:grid}.discover-col,.discover-rail{flex-direction:column;gap:12px;min-width:0;display:flex}.discover-block{border-top:1px solid var(--border);min-width:0;padding-top:10px}.discover-rail>.discover-block:first-child{border-top:0;padding-top:0}.discover-block__head{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px;display:flex}.discover-block__title{min-width:0;margin:0;font-size:12px;font-weight:600}.discover-block__meta{color:var(--muted-foreground);text-align:right;font-size:11px}.discover-subblock{margin-top:10px}.discover-subblock:first-of-type{margin-top:0}.discover-subblock__title{color:var(--muted-foreground);letter-spacing:.08em;text-transform:uppercase;margin:0 0 4px;font-size:10px;font-weight:700}.discover-body{gap:8px}.discover-notices{flex-direction:column;gap:6px;display:flex}.discover-notices .message{margin:0}.discover-run-tag{background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:4px;flex-wrap:wrap;align-items:center;gap:8px;min-width:0;padding:6px 8px;display:flex}.discover-run-tag strong{font-size:12px;font-weight:600}.discover-run-tag .muted{font-size:11px}.discover-run-tag__activity{color:var(--muted-foreground);font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;flex:160px;min-width:0;font-size:11px;overflow:hidden}.discover-run__header{background:var(--surface-raised);gap:12px}.discover-run__heading{align-items:center;gap:8px;min-width:0;display:flex}.discover-run__dot{background:var(--accent);border-radius:999px;flex:0 0 6px;width:6px;height:6px}.discover-run__meta{justify-content:flex-end;align-items:center;gap:10px;min-width:0;display:flex}.discover-run__started{white-space:nowrap;font-size:11px}.discover-run__stop{border:1px solid var(--border-subtle);color:var(--muted-foreground);cursor:pointer;font-family:var(--font-sans);white-space:nowrap;background:0 0;border-radius:4px;flex:none;align-items:center;height:24px;padding:0 8px;font-size:11px;font-weight:500;display:inline-flex}.discover-run__stop:hover:not(:disabled),.discover-run__stop:focus-visible{background:var(--error-surface);border-color:var(--error);color:var(--error)}.discover-run__stop:disabled{cursor:not-allowed;opacity:.45}.discover-run__body{flex-direction:column;gap:8px;padding:8px;display:flex}.discover-run__terminal{height:180px}.discover-question__message{margin:0;font-size:13px}.discover-answer{gap:8px;display:flex}.discover-answer input{flex:1}.discover-remote__form{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.discover-remote__form input{flex:280px;max-width:520px}.discover-remote__retained{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.discover-remote__label{color:var(--muted-foreground);font-size:12px}.discover-remote__select{background:var(--background);border:1px solid var(--border-strong);color:var(--foreground);border-radius:4px;flex:280px;max-width:520px;height:28px;padding:0 6px;font-size:12px}.discover-remote__select:disabled{opacity:.55}.discover-remote__list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.discover-remote__item{justify-content:space-between;align-items:center;gap:8px;min-height:24px;display:flex}.discover-remote__url{color:var(--muted-foreground);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.discover-remote__item--active .discover-remote__url{color:var(--foreground)}.discover-filter-empty__body{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.discover-filter-empty .empty{padding:0}.discover-skill-page{flex-direction:column;gap:8px;height:100%;min-height:0;display:flex}.discover-skill{flex-direction:column;flex:1;min-height:0;display:flex}.discover-skill__panel{flex:1;min-height:0}.discover-skill__header{align-items:flex-start;gap:12px}.discover-skill__identity{flex-direction:column;gap:2px;min-width:0;display:flex}.discover-skill__title{max-width:100%;line-height:1.2}.discover-skill__file{color:var(--muted-foreground);font-weight:400}.discover-skill__state{color:var(--muted-foreground);font-size:11px;line-height:1.2}.discover-skill__state[data-state=dirty]{color:var(--warning)}.discover-skill__state[data-state=missing]{color:var(--error)}.discover-skill__actions{flex:none;justify-content:flex-end;align-self:center}.discover-warning-list{margin:0;padding:0;list-style:none}.discover-facts{flex-direction:column;gap:6px;margin:8px 0 0;display:flex}.discover-fact{grid-template-columns:104px minmax(0,1fr);align-items:baseline;gap:10px;display:grid}.discover-fact dt{color:var(--muted-foreground);font-size:11px;line-height:1.45}.discover-fact dd{overflow-wrap:anywhere;min-width:0;margin:0;font-size:12px;line-height:1.45}.discover-mono{font-family:var(--font-mono);font-size:11.5px}.discover-chips{flex-wrap:wrap;gap:4px;margin:8px 0 0;display:flex}.code-chip{background:var(--background);border:1px solid var(--border-subtle);font-family:var(--font-mono);border-radius:3px;margin:0;padding:2px 6px;font-size:11.5px;line-height:1.4}a.code-chip--link{color:var(--accent);text-decoration:none}a.code-chip--link:hover,a.code-chip--link:focus-visible{border-color:var(--border-strong);text-decoration:underline}.discover-page .panel .table-wrap th{background:var(--surface)}.discover-page .table-wrap th{letter-spacing:.03em;padding:4px 8px;font-size:11px}.discover-page .table-wrap td{padding-left:8px;padding-right:8px}.discover-page .table-wrap tbody tr:last-child td{border-bottom:0}.discover-page .table-wrap td[data-column=line]{font-family:var(--font-mono);font-size:11.5px;line-height:1.5}.discover-page .table-wrap .discover-command-label{color:var(--muted-foreground);font-size:12px}.discover-command-missing{font-size:11.5px;font-style:italic}.discover-coverage{color:var(--muted-foreground);cursor:pointer;font:inherit;white-space:nowrap;background:0 0;border:0;padding:0}.discover-coverage:hover,.discover-coverage[aria-expanded=true]{color:var(--foreground);text-decoration:underline}.discover-page .table-wrap td.discover-mono{font-family:var(--font-mono);overflow-wrap:anywhere;white-space:pre-line;font-size:10.5px}.panel__subtitle{white-space:nowrap}.discover-page .discover-stats{gap:16px;margin:2px 0 0;display:flex}.discover-page .discover-stat{background:0 0;border:0;align-items:baseline;gap:5px;min-width:0;padding:0;display:flex}.discover-stat__value{font-variant-numeric:tabular-nums;font-size:18px;font-weight:650;line-height:1.2}.discover-stat__label{color:var(--muted-foreground);letter-spacing:.03em;text-transform:uppercase;font-size:10px}.discover-page .discover-command-line{margin-top:8px}.discover-command-line{grid-template-columns:96px minmax(0,1fr);align-items:center;gap:8px;font-size:12px;display:grid}.discover-command-line .code-chip{justify-self:start}.discover-test-summary{flex-direction:column;gap:8px;min-width:0;display:flex}.discover-card[data-field=testing] .table-wrap{margin-top:10px}.discover-card[data-field=testing] .table-wrap table{table-layout:fixed}.discover-card[data-field=testing] .table-wrap th:first-child{width:88px}.discover-card[data-field=testing] .table-wrap th:nth-child(2){width:104px}.discover-card[data-field=testing] .table-wrap th:nth-child(3){width:96px}.discover-quality-gate__name{font-weight:550}.discover-quality-gate__checks{color:var(--muted-foreground)}.discover-card[data-field=architecture]{min-width:0}.discover-contexts{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.discover-context{flex-direction:column;gap:4px;min-width:0;padding:8px 0;display:flex}.discover-context+.discover-context{border-top:1px solid var(--border-subtle)}.discover-context:first-child{padding-top:0}.discover-context:last-child{padding-bottom:0}.discover-context__head{flex-wrap:wrap;align-items:baseline;gap:2px 8px;min-width:0;display:flex}.discover-context__name{overflow-wrap:anywhere;flex:auto;min-width:0;font-size:13px;font-weight:600}.discover-context__responsibility{color:var(--muted-foreground);overflow-wrap:anywhere;margin:0;font-size:12px;line-height:1.45}.discover-context__entries{grid-template-columns:160px minmax(0,1fr);align-items:baseline;gap:4px 12px;min-width:0;display:grid}.discover-context__label{color:var(--muted-foreground);letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:700}.discover-context__entries .discover-chips{margin:0}.discover-boundaries{border-top:1px solid var(--border-subtle);flex-direction:column;margin:10px 0 0;padding:0;display:flex}.discover-boundary{grid-template-columns:160px minmax(0,1fr);align-items:baseline;gap:4px 12px;padding:8px 0;display:grid}.discover-boundary+.discover-boundary{border-top:1px solid var(--border-subtle)}.discover-boundary:last-child{padding-bottom:0}.discover-boundary dt{color:var(--muted-foreground);letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:700}.discover-boundary dd{overflow-wrap:anywhere;min-width:0;margin:0;font-size:12px;line-height:1.45}.discover-boundary .discover-chips{margin:0}.discover-boundary-note{color:var(--muted-foreground);margin:10px 0 0;font-size:12px;line-height:1.45}.discover-diagram{width:100%;min-height:96px;overflow:visible}.discover-diagram svg{max-width:100%;height:auto;margin:0 auto;display:block}.discover-diagram .node rect,.discover-diagram .node polygon,.discover-diagram .node circle{stroke-width:1px}.discover-diagram .edgePath .path{stroke-width:1.25px}.discover-diagram text{fill:var(--foreground)}.discover-search{flex:200px;width:100%;max-width:240px}.discover-page__actions.discover-glossary-controls{background:var(--surface-raised);border:1px solid var(--border);border-radius:4px;flex-wrap:wrap;flex-basis:100%;gap:8px;padding:4px}.discover-glossary-filters{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.discover-glossary-divider{background:var(--border);flex:0 0 1px;height:18px}.discover-toggle{color:var(--muted-foreground);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;font-size:11px;display:inline-flex}.discover-toggle input{opacity:0;width:1px;height:1px;position:absolute}.discover-toggle__track{background:var(--background);border:1px solid var(--border-strong);border-radius:999px;flex:none;width:26px;height:14px;position:relative}.discover-toggle__track:after{background:var(--muted-foreground);content:"";border-radius:999px;width:8px;height:8px;transition:left .12s,background .12s;position:absolute;top:2px;left:2px}.discover-toggle input:checked+.discover-toggle__track{background:var(--accent-surface);border-color:var(--accent)}.discover-toggle input:checked+.discover-toggle__track:after{background:var(--accent);left:14px}.discover-toggle input:focus-visible+.discover-toggle__track{outline:2px solid var(--ring);outline-offset:2px}.discover-toggle input:disabled+.discover-toggle__track,.discover-toggle input:disabled~.discover-toggle__label{cursor:not-allowed;opacity:.45}.discover-floor{align-items:center;gap:8px;display:flex}.discover-floor__label{color:var(--muted-foreground);letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:700}.discover-floor__input{accent-color:var(--accent);width:120px}.discover-floor__value{background:var(--background);border:1px solid var(--border-subtle);font-family:var(--font-mono);text-align:center;border-radius:3px;min-width:46px;padding:2px 6px;font-size:11px}.discover-uses{font-variant-numeric:tabular-nums;font-weight:600}.discover-examples{font-family:var(--font-mono);flex-wrap:wrap;gap:2px 4px;font-size:11px;display:inline-flex}.discover-examples__item{align-items:baseline;display:inline-flex}.discover-skill{flex-direction:column;min-height:0;display:flex}.discover-warning{border-bottom:1px solid var(--border-subtle);margin:0;padding:8px 10px;font-size:12px;line-height:1.5}.discover-warning:last-child{border-bottom:0}@media (width<=1240px){.discover-sheet{grid-template-columns:minmax(0,1fr)}.discover-col,.discover-rail{display:contents}}.sidebar-tab-row{align-items:center;gap:2px;display:flex}.sidebar-tab-row .sidebar-item{flex:1;min-width:0}.sidebar-disclosure{color:var(--muted-foreground);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:3px;flex:0 0 20px;justify-content:center;align-items:center;height:24px;padding:0;display:flex}.sidebar-disclosure:hover{background:var(--secondary);color:var(--foreground)}.sidebar-disclosure__icon{transition:transform .12s}.sidebar-disclosure__icon--open{transform:rotate(90deg)}.sidebar-submenu{border-left:1px solid var(--border);margin:2px 0 6px 10px;padding-left:6px}.sidebar-submenu__context{color:var(--muted-foreground);letter-spacing:.05em;text-transform:uppercase;padding:6px 6px 2px;font-size:10px;font-weight:700}.sidebar-item--nested{padding-left:8px}.goal-page{flex-direction:column;flex:1;gap:8px;min-height:0;display:flex}.goal-page--console{overflow:auto}.goal-page--fill{padding-bottom:56px;overflow:auto}.goal-notices{flex-direction:column;gap:6px;display:flex}.goal-empty-state{gap:8px}.goal-empty-state__title{margin:0;font-size:16px;font-weight:650}.goal-filters{flex:none}.goal-filters__body{flex-wrap:wrap;align-items:center;gap:8px;padding:6px 8px;display:flex}.goal-filters__body>input{flex:220px;max-width:360px}.filter-chips{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.filter-chip{border:1px solid var(--border-strong);color:var(--muted-foreground);cursor:pointer;background:0 0;border-radius:999px;height:24px;padding:0 8px;font-size:11px}.filter-chip:hover{background:var(--secondary);color:var(--foreground)}.filter-chip[aria-pressed=true]{background:var(--accent-surface);border-color:var(--accent);color:var(--foreground)}.goal-adrs-panel,.goal-skills{flex:1;min-height:0}.goal-activity{flex:1 0 220px;min-height:220px}.goal-activity--idle{flex:none;min-height:0}.goal-activity .panel__body{overflow:hidden}.goal-answer-input{background:var(--background);border:1px solid var(--border-strong);color:var(--foreground);font-family:var(--font-mono);border-radius:4px;flex:1;min-width:0;font-size:12px}.goal-answer-input:focus-visible{border-color:var(--ring);outline:2px solid var(--ring)}.goal-contradictions .message{font-size:12px}.sidebar-progress{background:var(--border-subtle);border-radius:999px;height:4px;margin:2px 4px 6px;overflow:hidden}.sidebar-progress>span{background:var(--success);height:100%;display:block}.goal-document{flex:1;min-height:0}.goal-document .goal-details{flex:1;min-height:0;padding:0;overflow:hidden}.goal-revision{flex-direction:column;flex:none;align-items:stretch;gap:6px;padding:8px}.goal-revision__heading{justify-content:space-between;align-items:center;gap:8px;display:flex}.goal-revision__input{resize:none;min-height:88px;padding:6px 8px}.goal-revision__hint{color:var(--muted-foreground);margin:0;font-size:11px}.goal-revision__actions{gap:6px;display:flex}.skill{flex-direction:column;gap:2px;display:flex}.skill__row{align-items:flex-start;gap:4px;display:flex}.skill__button{color:var(--foreground);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:4px;flex:1;justify-content:space-between;align-items:center;gap:8px;min-width:0;padding:4px 6px;display:flex}.skill__text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.skill__chevron{color:var(--muted-foreground);flex:none;transition:transform .12s}.skill__chevron--open{transform:rotate(90deg)}.skill__delete{color:var(--muted-foreground);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;flex:none;justify-content:center;align-items:center;width:28px;height:28px;padding:0;display:inline-flex}.skill__delete:hover:not(:disabled),.skill__delete:focus-visible{background:var(--error-surface);border-color:var(--error);color:var(--error)}.skill__delete:disabled{cursor:not-allowed;opacity:.45}.skill__button:hover{background:var(--secondary)}.skill__button[data-selected=true]{background:var(--accent-surface);border-color:var(--border-strong)}.skill__description{font-size:11px}.skill__detail{border-left:2px solid var(--border-strong);margin:0 0 4px 8px;padding:4px 0 4px 8px}.skill__path{color:var(--muted-foreground);font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;margin:0 0 8px;font-size:11.5px;line-height:1.4;display:block;overflow:hidden}.skill__document{color:var(--foreground);overflow-wrap:anywhere;max-width:940px;font-size:13px;line-height:1.55}.skill__document>:first-child{margin-top:0}.skill__document>:last-child{margin-bottom:0}.skill__document h1{letter-spacing:0;margin:0 0 12px;font-size:18px;font-weight:650;line-height:1.2}.skill__document h2{margin:16px 0 6px;font-size:13px;font-weight:650;line-height:1.45}.skill__document h3,.skill__document h4,.skill__document h5,.skill__document h6{margin:12px 0 4px;font-size:12px;font-weight:650;line-height:1.45}.skill__document p{margin:0 0 8px}.skill__document ul,.skill__document ol{margin:0 0 8px;padding-left:16px}.skill__document li+li{margin-top:4px}.skill__document li>p{margin:0}.skill__document strong{font-weight:650}.skill__document a{color:var(--accent);text-decoration:none}.skill__document a:hover,.skill__document a:focus-visible{text-decoration:underline}.skill__document code{background:var(--background);border:1px solid var(--border-subtle);border-radius:3px;padding:2px 6px;font-size:11.5px;line-height:1.4}.skill__document pre{background:var(--background);border:1px solid var(--border-subtle);border-radius:4px;margin:0 0 8px;padding:8px;overflow:auto}.skill__document pre code{background:0 0;border:0;border-radius:0;padding:0;font-size:12px}.skill__document blockquote{border-left:2px solid var(--border-strong);color:var(--muted-foreground);margin:0 0 8px;padding-left:10px}.skill__document hr{border:0;border-top:1px solid var(--border-subtle);margin:12px 0}.skill__document table{border-collapse:collapse;margin:0 0 8px}.skill__document th,.skill__document td{border:1px solid var(--border-subtle);text-align:left;padding:4px 8px}.skill__document th{background:var(--surface-raised);font-weight:600}.issues-overview,.issues-queue-page,.issues-runs-page,.issues-drafts-page,.issues-agents-page,.issues-agent-focus{flex-direction:column;gap:12px;height:100%;padding:16px;display:flex;overflow:auto}.issues-overview{min-height:0;overflow:hidden}.issues-overview__header{flex:none;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.issues-overview__title{margin:2px 0;font-size:18px;font-weight:600}.issues-overview__repo{color:var(--muted);font-size:11.5px}.issues-overview__body{flex:1;grid-template-columns:minmax(320px,1fr) minmax(360px,1.2fr);grid-auto-rows:minmax(0,1fr);align-items:stretch;gap:12px;min-height:0;display:grid}.issues-overview__side{flex-direction:column;gap:12px;min-height:0;display:flex;overflow:auto}.issues-overview__side>.panel{flex:none}@media (width<=1100px){.issues-overview__body{grid-template-columns:1fr}}.issues-facts{grid-template-columns:repeat(2,minmax(120px,1fr));gap:8px;margin:0;display:grid}.issues-poll{flex:0 auto;align-items:center;gap:6px;min-width:0;display:inline-flex;overflow:hidden}.issues-poll__dot{background:var(--border-strong);border-radius:999px;flex:none;width:6px;height:6px}.issues-poll[data-tone=active] .issues-poll__dot{background:var(--success)}.issues-poll[data-tone=stale] .issues-poll__dot,.issues-poll[data-tone=limited] .issues-poll__dot{background:var(--warning)}.issues-poll[data-tone=failed] .issues-poll__dot{background:var(--error)}.issues-poll__label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.issues-facts dt{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:10.5px}.issues-facts dd{overflow-wrap:anywhere;margin:2px 0 0;font-size:12px}.issues-notice{border:1px solid var(--warning);background:var(--warning-surface);border-radius:4px;margin:0;padding:6px 8px;font-size:11.5px}.issues-error{border:1px solid var(--error);background:var(--error-surface);border-radius:4px;margin:0;padding:6px 8px;font-size:11.5px}.issues-activity{background:var(--background);border:1px solid var(--border);white-space:pre-wrap;overflow-wrap:anywhere;tab-size:2;overscroll-behavior:contain;border-radius:4px;margin:0;padding:8px 10px;font-size:12px;line-height:1.45;overflow:auto}.issues-activity__line[data-kind=command]{background:var(--accent-surface);color:var(--foreground);-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:3px;padding:0 4px;font-weight:500}.issues-activity__prompt{color:var(--accent);font-weight:600}.issues-activity__empty{color:var(--muted-foreground)}.panel>.issues-activity{border:0;border-radius:0}.issues-activity-panel{min-height:0}.issues-activity-panel>.issues-activity{flex:1;min-height:0}.issues-run-detail .issues-activity{flex:none;min-height:180px;max-height:440px}.issues-question{border-top:1px solid var(--border);flex-direction:column;flex:none;gap:8px;padding:10px 12px;display:flex}.issues-answer{align-items:center;gap:6px;display:flex}.issues-queue,.issues-runs{margin:0;padding:0;list-style:none}.issues-queue__item,.issues-run{border-bottom:1px solid var(--border);text-align:left;align-items:center;gap:8px;width:100%;padding:7px 12px;font-size:12px;display:grid}.issues-queue__item{border-bottom-color:var(--border-subtle);grid-template-columns:44px minmax(0,1fr) auto;padding:6px 10px}.issues-queue__item:hover{background:var(--row-hover)}.issues-run{color:var(--foreground);background:0 0;grid-template-columns:minmax(0,1fr) auto auto}.issues-run:hover,.issues-run[aria-current=true]{background:var(--secondary)}.issues-queue__number{color:var(--muted-foreground);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;line-height:1.3;text-decoration:none;overflow:hidden}.issues-queue__number:hover,.issues-queue__number:focus-visible{color:var(--foreground);text-decoration:underline}.issues-queue__title{text-overflow:ellipsis;white-space:nowrap;min-width:0;line-height:1.3;overflow:hidden}.issues-queue__meta{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.issues-queue__empty{padding:10px}.issues-run-detail{border-top:1px solid var(--border-strong);flex-direction:column;gap:6px;padding:10px 12px;display:flex}.issues-drafts__body{flex:1;grid-template-columns:minmax(240px,340px) minmax(0,1fr);gap:12px;min-height:0;display:grid}.issues-drafts__body>.panel{flex-direction:column;min-height:0;display:flex}@media (width<=1100px){.issues-drafts__body{grid-template-columns:1fr}}.issues-drafts{margin:0;padding:0;list-style:none}.issues-draft{border-bottom:1px solid var(--border);width:100%;color:var(--foreground);text-align:left;background:0 0;border-radius:0;flex-direction:column;gap:2px;padding:7px 12px;font-size:12px;display:flex}.issues-draft:hover,.issues-draft[aria-current=true]{background:var(--secondary)}.issues-draft__heading{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.issues-draft__blocked{color:var(--warning);font-size:11px}.issues-drafts__empty{padding:10px 12px}.issues-activity-panel{flex-direction:column;display:flex}.issues-agent{border:1px solid var(--border);background:var(--surface);border-radius:4px;flex-direction:column;gap:8px;min-width:0;padding:10px;display:flex;overflow:hidden}.issues-agent[data-asked=true]{border-color:var(--warning)}.issues-agent__head{justify-content:space-between;align-items:center;gap:8px;min-height:28px;display:flex}.issues-agent__issue{color:var(--accent);font-weight:600;text-decoration:none}.issues-agent__issue:hover{text-decoration:underline}.issues-agent__activity{flex-direction:column;flex:auto;gap:4px;min-height:80px;display:flex}.issues-agent__activity-label{color:var(--muted-foreground);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:10px;font-weight:700;line-height:1.2}.issues-agent__activity .issues-activity{flex:1;min-height:56px;max-height:none}.issues-agent[data-asked=true] .issues-agent__activity{flex:none}.issues-agent[data-asked=true] .issues-agent__activity .issues-activity{flex:0 0 64px;min-height:64px;max-height:64px}.issues-agent>.issues-question{border:0;border-left:2px solid var(--warning);background:var(--warning-surface);border-radius:0 4px 4px 0;padding:8px 10px}.issues-agents-page{min-height:0;overflow:hidden}.issues-agent-grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));grid-auto-rows:max-content;align-content:start;align-items:stretch;gap:12px;min-height:0;display:grid;overflow:auto}.issues-agent__title{overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:2.9em;margin:0;font-size:13px;font-weight:600;line-height:1.45;display:-webkit-box;overflow:hidden}.issues-agent__meta{color:var(--muted-foreground);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:2px 6px;margin:0;font-size:11.5px;display:flex}.issues-agents-empty{max-width:560px}.issues-agents-empty__title{margin:0;font-size:13px;font-weight:600}.issues-agent-summary{margin:0;padding:0;list-style:none}.issues-agent-summary>li+li{border-top:1px solid var(--border-subtle)}.issues-agent-summary__empty{color:var(--muted-foreground);padding:12px 10px}.issues-agent-row{width:100%;color:var(--foreground);text-align:left;background:0 0;border-left:2px solid #0000;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:8px;padding:6px 10px 6px 8px;font-size:12px;display:grid}.issues-agent-row:hover{background:var(--row-hover)}.issues-agent-row[aria-current=true],.issues-agent-row[aria-current=true]:hover{background:var(--accent-surface);border-left-color:var(--accent)}.issues-agent-row__open{min-width:0;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:3px;grid-column:2/4;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:0;display:grid}.issues-agent-row__issue{color:var(--muted-foreground);font-variant-numeric:tabular-nums;line-height:1.3;text-decoration:none}.issues-agent-row__issue:hover,.issues-agent-row__issue:focus-visible{color:var(--accent);text-decoration:underline}.issues-agent-row[aria-current=true] .issues-agent-row__issue{color:var(--accent)}.issues-agent-row__title{text-overflow:ellipsis;white-space:nowrap;min-width:0;line-height:1.3;overflow:hidden}.issues-agent-row__meta{align-items:center;gap:6px;display:inline-flex}.issues-agent-row__elapsed{color:var(--muted-foreground);font-variant-numeric:tabular-nums;text-align:right;min-width:40px;font-size:11.5px;line-height:1.3}.issues-agent-row__close{border:1px solid var(--border-subtle);color:var(--muted-foreground);cursor:pointer;font-family:var(--font-sans);white-space:nowrap;background:0 0;border-radius:4px;flex:none;align-items:center;height:24px;padding:0 8px;font-size:11px;font-weight:500;display:inline-flex}.issues-agent-summary__item:hover .issues-agent-row__close{border-color:var(--border);color:var(--foreground)}.issues-agent-row__close:hover:not(:disabled),.issues-agent-row__close:focus-visible{background:var(--error-surface);border-color:var(--error);color:var(--error)}.issues-agent-row__close:disabled{cursor:not-allowed;opacity:.45}.issues-agent-output>.panel__body{flex-direction:column;flex:1;min-height:0;display:flex}.issues-agent-output .issues-activity{flex:1;min-height:120px}.issues-agent-summary>.issues-agent-summary__item{align-items:center;gap:8px;padding-right:8px;display:flex}.issues-agent-summary__item>.issues-agent-row{flex:1;min-width:0}.issues-agent-focus{min-height:0;overflow:hidden}.issues-agent-focus>.panel{flex:1;min-height:0}.issues-agent-focus>.panel>.panel__body{flex-direction:column;flex:1;min-height:0;display:flex}.issues-agent-focus .issues-activity{flex:1;min-height:200px}.issues-run-identity{justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.issues-run-identity__label{color:var(--muted-foreground);letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:700;line-height:1.2}.issues-run-identity__id{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:220px;overflow:hidden}.issues-run-identity__started{color:var(--muted-foreground);white-space:nowrap;font-size:11px}.issues-draft-detail{min-height:0;overflow:hidden}.issues-draft-detail__header{border-bottom:1px solid var(--border);flex:0 0 44px;justify-content:space-between;align-items:center;gap:12px;height:44px;padding:0 10px;display:flex}.issues-draft-detail__identity{flex-direction:column;gap:2px;min-width:0;display:flex}.issues-draft-detail__path{color:var(--muted-foreground);text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:1.3;overflow:hidden}.issues-draft-detail__actions{flex:none;align-items:center;gap:6px;display:flex}.issues-draft-detail__stop{border-color:var(--border-subtle);color:var(--muted-foreground);background:0 0;height:24px;padding:0 8px;font-size:11px}.issues-draft-detail__stop:hover:not(:disabled),.issues-draft-detail__stop:focus-visible{background:var(--error-surface);border-color:var(--error);color:var(--error)}.issues-draft-detail__body{flex-direction:column;flex:1;gap:16px;min-height:0;padding:12px;display:flex;overflow:auto}.issues-draft-detail__section{flex-direction:column;flex:none;gap:8px;min-width:0;display:flex}.issues-draft-detail__section+.issues-draft-detail__section{border-top:1px solid var(--border-subtle);padding-top:16px}.issues-draft-detail__section--activity{flex:220px;min-height:180px}.issues-draft-detail__section--activity .issues-activity{flex:1;min-height:160px}.issues-draft-detail__label{color:var(--muted-foreground);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:10px;font-weight:700;line-height:1.2}.issues-draft-detail__label--warning{color:var(--warning)}.issues-draft-detail__question{background:var(--warning-surface);border:1px solid var(--warning);border-radius:4px;flex-direction:column;flex:none;gap:8px;padding:10px 12px;display:flex}.issues-draft-detail__question .issues-question{background:0 0;border-top:0;padding:0}.issues-draft-detail__question .choice{background:var(--surface)}.issues-draft-detail__prose{color:var(--foreground);overflow-wrap:anywhere;white-space:pre-wrap;margin:0;font-size:12px;line-height:1.5}.issues-draft-detail__empty{color:var(--muted-foreground);margin:0;font-size:12px}.status-issues{border:1px solid #0000;max-width:260px}.status-issues__dot{background:var(--border-strong);border-radius:999px;flex:none;width:6px;height:6px}.status-issues[data-tone=accent] .status-issues__dot{background:var(--accent)}.status-issues[data-tone=error] .status-issues__dot{background:var(--error)}.status-issues__label{text-overflow:ellipsis;overflow:hidden}.issues-scout{flex-direction:column;gap:12px;height:100%;min-height:0;padding:16px;display:flex;overflow:hidden}.issues-scout__alerts{flex-direction:column;flex:none;gap:6px;display:flex}.issues-scout__body{flex:1;grid-template-columns:minmax(300px,360px) minmax(0,1fr);gap:12px;min-height:0;display:grid}.issues-scout__side{flex-direction:column;gap:12px;min-height:0;display:flex;overflow:auto}.issues-scout__side>.panel{flex:none}.issues-scout__main{flex-direction:column;gap:12px;min-width:0;min-height:0;display:flex}.issues-scout__main>.panel:first-child{flex:auto;min-height:160px}.issues-scout__main>.issues-activity-panel{flex:0 0 210px;min-height:150px}.scout-sync-at{font-size:11px}.scout-limits{flex-direction:column;gap:8px;display:flex}.scout-limits__field{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;flex-direction:column;gap:4px;font-size:10.5px;display:flex}.scout-limits__actions{justify-content:flex-end;display:flex}.scout-limits__hint{margin:0;font-size:11px;line-height:1.45}@media (width<=1100px){.issues-scout{overflow:auto}.issues-scout__body{grid-template-rows:max-content max-content;grid-template-columns:1fr}.issues-scout__side{overflow:visible}.issues-scout__main>.panel:first-child{flex:0 auto;max-height:320px}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}