@interf/compiler 0.7.3 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (302) hide show
  1. package/README.md +123 -89
  2. package/TRADEMARKS.md +1 -1
  3. package/agent-skills/interf-actions/SKILL.md +71 -0
  4. package/agent-skills/interf-actions/references/cli.md +190 -0
  5. package/apps/compiler-ui/.next/server/app/index.html +1 -0
  6. package/apps/compiler-ui/.next/static/XWKL548yXD_UOG4ID9G3J/_buildManifest.js +11 -0
  7. package/apps/compiler-ui/.next/static/XWKL548yXD_UOG4ID9G3J/_clientMiddlewareManifest.js +1 -0
  8. package/apps/compiler-ui/.next/static/XWKL548yXD_UOG4ID9G3J/_ssgManifest.js +1 -0
  9. package/apps/compiler-ui/.next/static/chunks/03~yq9q893hmn.js +1 -0
  10. package/apps/compiler-ui/.next/static/chunks/06z~l3kwb891e.js +1 -0
  11. package/apps/compiler-ui/.next/static/chunks/08g7lvje.te.u.js +1 -0
  12. package/apps/compiler-ui/.next/static/chunks/08m7vf5asqlsm.js +91 -0
  13. package/apps/compiler-ui/.next/static/chunks/0_i-3_5l9t2qe.js +1 -0
  14. package/apps/compiler-ui/.next/static/chunks/0b-ywny_j0g~0.js +1 -0
  15. package/apps/compiler-ui/.next/static/chunks/0b52v41o1gixx.js +1 -0
  16. package/apps/compiler-ui/.next/static/chunks/0fgt_8knmicoz.js +124 -0
  17. package/apps/compiler-ui/.next/static/chunks/0gpzgsv0w.q~m.js +31 -0
  18. package/apps/compiler-ui/.next/static/chunks/0ilwfezfvu6~-.js +1 -0
  19. package/apps/compiler-ui/.next/static/chunks/0n51hrfoufc7g.js +1 -0
  20. package/apps/compiler-ui/.next/static/chunks/0ti_66mx7~w2-.js +5 -0
  21. package/apps/compiler-ui/.next/static/chunks/0xxmf45eskdt~.css +1 -0
  22. package/apps/compiler-ui/.next/static/chunks/0y5z3t-z1c8ks.js.map +5 -0
  23. package/apps/compiler-ui/.next/static/chunks/13g~4mamjft.c.css +3 -0
  24. package/apps/compiler-ui/.next/static/chunks/14wtz~vq25~qq.js +1 -0
  25. package/apps/compiler-ui/.next/static/chunks/turbopack-109rtik40vwh5.js +1 -0
  26. package/apps/compiler-ui/.next/static/chunks/turbopack-10e~t1yzi4svj.js +1 -0
  27. package/apps/compiler-ui/.next/static/chunks/turbopack-worker-0sjn--fhq~1cg.js +1 -0
  28. package/apps/compiler-ui/.next/static/media/GeistMono_Variable.p.17jn9btb_52pq.woff2 +0 -0
  29. package/apps/compiler-ui/.next/static/media/Geist_Variable-s.p.0-te~ja_gpvcf.woff2 +0 -0
  30. package/apps/compiler-ui/.next/static/media/worker.102zas1s52_pf.js +109 -0
  31. package/builtin-workflows/interf/README.md +8 -8
  32. package/builtin-workflows/interf/compile/stages/shape/SKILL.md +4 -4
  33. package/builtin-workflows/interf/compile/stages/structure/SKILL.md +1 -1
  34. package/builtin-workflows/interf/improve/SKILL.md +1 -1
  35. package/builtin-workflows/interf/use/query/SKILL.md +1 -1
  36. package/builtin-workflows/interf/workflow.json +8 -8
  37. package/builtin-workflows/interf/workflow.schema.json +1 -1
  38. package/dist/cli/commands/check-draft.d.ts +5 -4
  39. package/dist/cli/commands/check-draft.js +18 -17
  40. package/dist/cli/commands/compile-controller.d.ts +3 -0
  41. package/dist/cli/commands/compile-controller.js +53 -45
  42. package/dist/cli/commands/compile.js +83 -27
  43. package/dist/cli/commands/compiled-flow.d.ts +3 -0
  44. package/dist/cli/commands/compiled-flow.js +9 -7
  45. package/dist/cli/commands/control-path.d.ts +11 -0
  46. package/dist/cli/commands/control-path.js +72 -0
  47. package/dist/cli/commands/create-workflow-wizard.d.ts +6 -0
  48. package/dist/cli/commands/create-workflow-wizard.js +191 -77
  49. package/dist/cli/commands/create.js +54 -40
  50. package/dist/cli/commands/default.js +4 -3
  51. package/dist/cli/commands/doctor.js +5 -5
  52. package/dist/cli/commands/executor-flow.js +1 -1
  53. package/dist/cli/commands/init.js +326 -76
  54. package/dist/cli/commands/list.js +8 -7
  55. package/dist/cli/commands/preparation-selection.d.ts +6 -0
  56. package/dist/cli/commands/preparation-selection.js +11 -0
  57. package/dist/cli/commands/reset.js +3 -3
  58. package/dist/cli/commands/source-config-wizard.d.ts +4 -3
  59. package/dist/cli/commands/source-config-wizard.js +175 -197
  60. package/dist/cli/commands/status.js +116 -8
  61. package/dist/cli/commands/test-flow.d.ts +1 -1
  62. package/dist/cli/commands/test-flow.js +31 -31
  63. package/dist/cli/commands/test.d.ts +4 -0
  64. package/dist/cli/commands/test.js +95 -58
  65. package/dist/cli/commands/verify.js +7 -7
  66. package/dist/cli/commands/web.d.ts +11 -0
  67. package/dist/cli/commands/web.js +373 -0
  68. package/dist/cli/index.d.ts +2 -1
  69. package/dist/cli/index.js +3 -1
  70. package/dist/index.d.ts +4 -2
  71. package/dist/index.js +3 -1
  72. package/dist/packages/agents/lib/execution.js +4 -2
  73. package/dist/packages/agents/lib/executors.d.ts +1 -0
  74. package/dist/packages/agents/lib/executors.js +1 -0
  75. package/dist/packages/agents/lib/render.d.ts +2 -2
  76. package/dist/packages/agents/lib/render.js +10 -9
  77. package/dist/packages/agents/lib/shells.d.ts +3 -11
  78. package/dist/packages/agents/lib/shells.js +45 -96
  79. package/dist/packages/agents/lib/types.d.ts +1 -0
  80. package/dist/packages/compiler/compiled-paths.d.ts +4 -1
  81. package/dist/packages/compiler/compiled-paths.js +7 -1
  82. package/dist/packages/compiler/compiled-pipeline.d.ts +7 -0
  83. package/dist/packages/compiler/compiled-pipeline.js +15 -4
  84. package/dist/packages/compiler/compiled-schema.js +1 -1
  85. package/dist/packages/compiler/compiled-stage-plan.d.ts +2 -2
  86. package/dist/packages/compiler/compiled-stage-plan.js +4 -4
  87. package/dist/packages/compiler/compiled-stage-runner.d.ts +5 -0
  88. package/dist/packages/compiler/compiled-stage-runner.js +50 -2
  89. package/dist/packages/compiler/compiled-target.d.ts +1 -1
  90. package/dist/packages/compiler/compiled-target.js +2 -2
  91. package/dist/packages/compiler/lib/schema.d.ts +161 -1
  92. package/dist/packages/compiler/lib/schema.js +87 -1
  93. package/dist/packages/compiler/raw-snapshot.d.ts +9 -2
  94. package/dist/packages/compiler/runtime-acceptance.js +1 -1
  95. package/dist/packages/compiler/runtime-contracts.js +2 -2
  96. package/dist/packages/compiler/runtime-prompt.js +6 -6
  97. package/dist/packages/compiler/runtime-reconcile.js +3 -3
  98. package/dist/packages/compiler/runtime-runs.js +3 -0
  99. package/dist/packages/compiler/runtime-types.d.ts +1 -0
  100. package/dist/packages/compiler/state-health.js +1 -1
  101. package/dist/packages/compiler/state-view.js +2 -2
  102. package/dist/packages/compiler/validate-compiled.js +11 -9
  103. package/dist/packages/execution/adapters.d.ts +15 -0
  104. package/dist/packages/execution/adapters.js +1 -0
  105. package/dist/packages/execution/events.d.ts +8 -0
  106. package/dist/packages/execution/events.js +16 -0
  107. package/dist/packages/execution/index.d.ts +9 -0
  108. package/dist/packages/execution/index.js +6 -0
  109. package/dist/packages/execution/lib/schema.d.ts +1554 -0
  110. package/dist/packages/execution/lib/schema.js +319 -0
  111. package/dist/packages/local-service/action-values.d.ts +23 -0
  112. package/dist/packages/local-service/action-values.js +31 -0
  113. package/dist/packages/local-service/client.d.ts +119 -0
  114. package/dist/packages/local-service/client.js +356 -0
  115. package/dist/packages/local-service/index.d.ts +15 -0
  116. package/dist/packages/local-service/index.js +11 -0
  117. package/dist/packages/local-service/lib/schema.d.ts +7355 -0
  118. package/dist/packages/local-service/lib/schema.js +636 -0
  119. package/dist/packages/local-service/routes.d.ts +27 -0
  120. package/dist/packages/local-service/routes.js +32 -0
  121. package/dist/packages/local-service/runtime.d.ts +134 -0
  122. package/dist/packages/local-service/runtime.js +2841 -0
  123. package/dist/packages/local-service/server.d.ts +17 -0
  124. package/dist/packages/local-service/server.js +572 -0
  125. package/dist/packages/project-model/index.d.ts +2 -1
  126. package/dist/packages/project-model/index.js +1 -0
  127. package/dist/packages/project-model/interf-detect.d.ts +6 -2
  128. package/dist/packages/project-model/interf-detect.js +25 -10
  129. package/dist/packages/project-model/interf-scaffold.js +9 -6
  130. package/dist/packages/project-model/interf.d.ts +1 -1
  131. package/dist/packages/project-model/interf.js +1 -1
  132. package/dist/packages/project-model/lib/schema.d.ts +80 -6
  133. package/dist/packages/project-model/lib/schema.js +29 -19
  134. package/dist/packages/project-model/source-config.d.ts +22 -13
  135. package/dist/packages/project-model/source-config.js +140 -123
  136. package/dist/packages/project-model/source-folders.d.ts +11 -0
  137. package/dist/packages/project-model/source-folders.js +110 -0
  138. package/dist/packages/testing/test-execution.js +5 -5
  139. package/dist/packages/testing/test-paths.js +1 -3
  140. package/dist/packages/workflow-authoring/workflow-authoring.d.ts +4 -6
  141. package/dist/packages/workflow-authoring/workflow-authoring.js +45 -86
  142. package/dist/packages/workflow-authoring/workflow-edit-session.d.ts +2 -0
  143. package/dist/packages/workflow-authoring/workflow-edit-session.js +80 -49
  144. package/dist/packages/workflow-authoring/workflow-improvement.js +2 -1
  145. package/dist/packages/workflow-package/context-interface.js +1 -1
  146. package/dist/packages/workflow-package/interf-workflow-package.d.ts +6 -0
  147. package/dist/packages/workflow-package/interf-workflow-package.js +115 -8
  148. package/dist/packages/workflow-package/local-workflows.js +33 -17
  149. package/dist/packages/workflow-package/workflow-definitions.d.ts +5 -5
  150. package/dist/packages/workflow-package/workflow-definitions.js +23 -22
  151. package/dist/packages/workflow-package/workflow-helpers.js +10 -6
  152. package/dist/packages/workflow-package/workflow-stage-runner.d.ts +1 -0
  153. package/dist/packages/workflow-package/workflow-stage-runner.js +2 -0
  154. package/package.json +17 -1
  155. package/dist/cli/commands/dataset-selection.d.ts +0 -6
  156. package/dist/cli/commands/dataset-selection.js +0 -11
  157. package/dist/lib/agent-args.d.ts +0 -1
  158. package/dist/lib/agent-args.js +0 -1
  159. package/dist/lib/agent-constants.d.ts +0 -1
  160. package/dist/lib/agent-constants.js +0 -1
  161. package/dist/lib/agent-detection.d.ts +0 -1
  162. package/dist/lib/agent-detection.js +0 -1
  163. package/dist/lib/agent-execution.d.ts +0 -1
  164. package/dist/lib/agent-execution.js +0 -1
  165. package/dist/lib/agent-logs.d.ts +0 -1
  166. package/dist/lib/agent-logs.js +0 -1
  167. package/dist/lib/agent-preflight.d.ts +0 -1
  168. package/dist/lib/agent-preflight.js +0 -1
  169. package/dist/lib/agent-render.d.ts +0 -1
  170. package/dist/lib/agent-render.js +0 -1
  171. package/dist/lib/agent-shells.d.ts +0 -1
  172. package/dist/lib/agent-shells.js +0 -1
  173. package/dist/lib/agent-status.d.ts +0 -1
  174. package/dist/lib/agent-status.js +0 -1
  175. package/dist/lib/agent-types.d.ts +0 -1
  176. package/dist/lib/agent-types.js +0 -1
  177. package/dist/lib/agents.d.ts +0 -1
  178. package/dist/lib/agents.js +0 -1
  179. package/dist/lib/builtin-compiled-workflow.d.ts +0 -1
  180. package/dist/lib/builtin-compiled-workflow.js +0 -1
  181. package/dist/lib/chart-guidance.d.ts +0 -1
  182. package/dist/lib/chart-guidance.js +0 -1
  183. package/dist/lib/compiled-compile.d.ts +0 -1
  184. package/dist/lib/compiled-compile.js +0 -1
  185. package/dist/lib/compiled-paths.d.ts +0 -1
  186. package/dist/lib/compiled-paths.js +0 -3
  187. package/dist/lib/compiled-raw.d.ts +0 -1
  188. package/dist/lib/compiled-raw.js +0 -3
  189. package/dist/lib/compiled-reset.d.ts +0 -1
  190. package/dist/lib/compiled-reset.js +0 -3
  191. package/dist/lib/compiled-schema.d.ts +0 -1
  192. package/dist/lib/compiled-schema.js +0 -1
  193. package/dist/lib/discovery.d.ts +0 -1
  194. package/dist/lib/discovery.js +0 -1
  195. package/dist/lib/execution-profile.d.ts +0 -1
  196. package/dist/lib/execution-profile.js +0 -1
  197. package/dist/lib/executors.d.ts +0 -1
  198. package/dist/lib/executors.js +0 -1
  199. package/dist/lib/filesystem.d.ts +0 -1
  200. package/dist/lib/filesystem.js +0 -1
  201. package/dist/lib/interf-bootstrap.d.ts +0 -1
  202. package/dist/lib/interf-bootstrap.js +0 -3
  203. package/dist/lib/interf-detect.d.ts +0 -1
  204. package/dist/lib/interf-detect.js +0 -3
  205. package/dist/lib/interf-scaffold.d.ts +0 -1
  206. package/dist/lib/interf-scaffold.js +0 -3
  207. package/dist/lib/interf-workflow-package.d.ts +0 -1
  208. package/dist/lib/interf-workflow-package.js +0 -1
  209. package/dist/lib/interf.d.ts +0 -1
  210. package/dist/lib/interf.js +0 -3
  211. package/dist/lib/local-workflows.d.ts +0 -1
  212. package/dist/lib/local-workflows.js +0 -1
  213. package/dist/lib/logger.d.ts +0 -1
  214. package/dist/lib/logger.js +0 -1
  215. package/dist/lib/package-root.d.ts +0 -1
  216. package/dist/lib/package-root.js +0 -1
  217. package/dist/lib/parse.d.ts +0 -1
  218. package/dist/lib/parse.js +0 -1
  219. package/dist/lib/project-paths.d.ts +0 -1
  220. package/dist/lib/project-paths.js +0 -3
  221. package/dist/lib/runtime-acceptance.d.ts +0 -1
  222. package/dist/lib/runtime-acceptance.js +0 -1
  223. package/dist/lib/runtime-contracts.d.ts +0 -1
  224. package/dist/lib/runtime-contracts.js +0 -1
  225. package/dist/lib/runtime-inventory.d.ts +0 -1
  226. package/dist/lib/runtime-inventory.js +0 -1
  227. package/dist/lib/runtime-paths.d.ts +0 -1
  228. package/dist/lib/runtime-paths.js +0 -1
  229. package/dist/lib/runtime-prompt.d.ts +0 -1
  230. package/dist/lib/runtime-prompt.js +0 -1
  231. package/dist/lib/runtime-reconcile.d.ts +0 -1
  232. package/dist/lib/runtime-reconcile.js +0 -1
  233. package/dist/lib/runtime-runs.d.ts +0 -1
  234. package/dist/lib/runtime-runs.js +0 -1
  235. package/dist/lib/runtime-types.d.ts +0 -1
  236. package/dist/lib/runtime-types.js +0 -1
  237. package/dist/lib/runtime.d.ts +0 -1
  238. package/dist/lib/runtime.js +0 -1
  239. package/dist/lib/schema.d.ts +0 -4
  240. package/dist/lib/schema.js +0 -6
  241. package/dist/lib/source-config.d.ts +0 -1
  242. package/dist/lib/source-config.js +0 -3
  243. package/dist/lib/state-artifacts.d.ts +0 -1
  244. package/dist/lib/state-artifacts.js +0 -1
  245. package/dist/lib/state-health.d.ts +0 -1
  246. package/dist/lib/state-health.js +0 -1
  247. package/dist/lib/state-io.d.ts +0 -1
  248. package/dist/lib/state-io.js +0 -1
  249. package/dist/lib/state-paths.d.ts +0 -1
  250. package/dist/lib/state-paths.js +0 -1
  251. package/dist/lib/state-view.d.ts +0 -1
  252. package/dist/lib/state-view.js +0 -1
  253. package/dist/lib/state.d.ts +0 -1
  254. package/dist/lib/state.js +0 -1
  255. package/dist/lib/test-execution.d.ts +0 -1
  256. package/dist/lib/test-execution.js +0 -3
  257. package/dist/lib/test-matrices.d.ts +0 -1
  258. package/dist/lib/test-matrices.js +0 -3
  259. package/dist/lib/test-paths.d.ts +0 -1
  260. package/dist/lib/test-paths.js +0 -3
  261. package/dist/lib/test-profile-presets.d.ts +0 -1
  262. package/dist/lib/test-profile-presets.js +0 -3
  263. package/dist/lib/test-sandbox.d.ts +0 -1
  264. package/dist/lib/test-sandbox.js +0 -3
  265. package/dist/lib/test-specs.d.ts +0 -1
  266. package/dist/lib/test-specs.js +0 -3
  267. package/dist/lib/test-targets.d.ts +0 -1
  268. package/dist/lib/test-targets.js +0 -3
  269. package/dist/lib/test-types.d.ts +0 -1
  270. package/dist/lib/test-types.js +0 -3
  271. package/dist/lib/test.d.ts +0 -1
  272. package/dist/lib/test.js +0 -3
  273. package/dist/lib/util.d.ts +0 -1
  274. package/dist/lib/util.js +0 -1
  275. package/dist/lib/validate-compiled.d.ts +0 -1
  276. package/dist/lib/validate-compiled.js +0 -1
  277. package/dist/lib/validate-helpers.d.ts +0 -1
  278. package/dist/lib/validate-helpers.js +0 -1
  279. package/dist/lib/validate.d.ts +0 -1
  280. package/dist/lib/validate.js +0 -1
  281. package/dist/lib/workflow-authoring.d.ts +0 -1
  282. package/dist/lib/workflow-authoring.js +0 -1
  283. package/dist/lib/workflow-definitions.d.ts +0 -1
  284. package/dist/lib/workflow-definitions.js +0 -1
  285. package/dist/lib/workflow-edit-session.d.ts +0 -1
  286. package/dist/lib/workflow-edit-session.js +0 -1
  287. package/dist/lib/workflow-edit-utils.d.ts +0 -1
  288. package/dist/lib/workflow-edit-utils.js +0 -1
  289. package/dist/lib/workflow-helpers.d.ts +0 -1
  290. package/dist/lib/workflow-helpers.js +0 -1
  291. package/dist/lib/workflow-improvement.d.ts +0 -1
  292. package/dist/lib/workflow-improvement.js +0 -1
  293. package/dist/lib/workflow-primitives.d.ts +0 -1
  294. package/dist/lib/workflow-primitives.js +0 -1
  295. package/dist/lib/workflow-review-paths.d.ts +0 -1
  296. package/dist/lib/workflow-review-paths.js +0 -1
  297. package/dist/lib/workflow-stage-policy.d.ts +0 -1
  298. package/dist/lib/workflow-stage-policy.js +0 -1
  299. package/dist/lib/workflow-stage-runner.d.ts +0 -1
  300. package/dist/lib/workflow-stage-runner.js +0 -1
  301. package/dist/lib/workflows.d.ts +0 -1
  302. package/dist/lib/workflows.js +0 -1
@@ -0,0 +1,3 @@
1
+ @font-face{font-family:GeistMono;src:url(../media/GeistMono_Variable.p.17jn9btb_52pq.woff2)format("woff2");font-display:swap;font-weight:100 900}.geistmono_157ca88a-module__uNhmwG__className{font-family:GeistMono,ui-monospace,SFMono-Regular,Roboto Mono,Menlo,Monaco,Liberation Mono,DejaVu Sans Mono,Courier New,monospace}.geistmono_157ca88a-module__uNhmwG__variable{--font-geist-mono:"GeistMono", ui-monospace, SFMono-Regular, Roboto Mono, Menlo, Monaco, Liberation Mono, DejaVu Sans Mono, Courier New, monospace}
2
+ @font-face{font-family:GeistSans;src:url(../media/Geist_Variable-s.p.0-te~ja_gpvcf.woff2)format("woff2");font-display:swap;font-weight:100 900}@font-face{font-family:GeistSans Fallback;src:local(Arial);ascent-override:94.56%;descent-override:27.76%;line-gap-override:0.0%;size-adjust:106.28%}.geistsans_d5a4f12f-module__iZqIaq__className{font-family:GeistSans,GeistSans Fallback}.geistsans_d5a4f12f-module__iZqIaq__variable{--font-geist-sans:"GeistSans", "GeistSans Fallback"}
3
+ @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-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction: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-duration:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, 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;--color-red-400:#ff6568;--color-red-700:#bf000f;--color-red-900:#82181a;--color-blue-400:#54a2ff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-medium:500;--font-weight-semibold:600;--tracking-tight:-.025em;--tracking-wide:.025em;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--animate-spin:spin 1s linear infinite;--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)}@supports (color:lab(0% 0 0)){:root,:host{--color-red-400:lab(63.7053% 60.745 31.3109);--color-red-700:lab(40.4273% 67.2623 53.7441);--color-red-900:lab(28.5139% 44.5539 29.0463);--color-blue-400:lab(65.0361% -1.42065 -56.9802)}}}@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,ui-sans-serif, system-ui, 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{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{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.\!absolute{position:absolute!important}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.\!top-2{top:calc(var(--spacing) * 2)!important}.-top-3{top:calc(var(--spacing) * -3)}.top-0{top:calc(var(--spacing) * 0)}.top-3{top:calc(var(--spacing) * 3)}.top-9{top:calc(var(--spacing) * 9)}.\!right-2{right:calc(var(--spacing) * 2)!important}.right-2{right:calc(var(--spacing) * 2)}.right-4{right:calc(var(--spacing) * 4)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-2{bottom:calc(var(--spacing) * 2)}.left-0{left:calc(var(--spacing) * 0)}.left-3{left:calc(var(--spacing) * 3)}.left-6{left:calc(var(--spacing) * 6)}.z-10{z-index:10}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing) * 0)}.m-4{margin:calc(var(--spacing) * 4)}.mx-2\.5{margin-inline:calc(var(--spacing) * 2.5)}.my-1\.5{margin-block:calc(var(--spacing) * 1.5)}.my-2{margin-block:calc(var(--spacing) * 2)}.my-3\.5{margin-block:calc(var(--spacing) * 3.5)}.my-4{margin-block:calc(var(--spacing) * 4)}.mt-0{margin-top:calc(var(--spacing) * 0)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-3{margin-right:calc(var(--spacing) * 3)}.-mb-px{margin-bottom:-1px}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-6{margin-left:calc(var(--spacing) * 6)}.ml-12{margin-left:calc(var(--spacing) * 12)}.ml-16{margin-left:calc(var(--spacing) * 16)}.\!flex{display:flex!important}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.\!h-6{height:calc(var(--spacing) * 6)!important}.h-2{height:calc(var(--spacing) * 2)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-\[20px\]{height:20px}.h-\[56px\]{height:56px}.h-full{height:100%}.h-px{height:1px}.max-h-\[200px\]{max-height:200px}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-\[32px\]{min-height:32px}.\!w-6{width:calc(var(--spacing) * 6)!important}.w-0{width:calc(var(--spacing) * 0)}.w-1{width:calc(var(--spacing) * 1)}.w-2{width:calc(var(--spacing) * 2)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-\[10\%\]{width:10%}.w-\[20\%\]{width:20%}.w-\[35\%\]{width:35%}.w-\[55\%\]{width:55%}.w-\[75\%\]{width:75%}.w-\[90\%\]{width:90%}.w-full{width:100%}.w-px{width:1px}.max-w-\[70\%\]{max-width:70%}.max-w-\[800px\]{max-width:800px}.max-w-none{max-width:none}.min-w-0{min-width:calc(var(--spacing) * 0)}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-translate-y-px{--tw-translate-y:-1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.flex-col{flex-direction:column}.\!items-center{align-items:center!important}.items-center{align-items:center}.items-start{align-items:flex-start}.\!justify-center{justify-content:center!important}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-0{gap:calc(var(--spacing) * 0)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}.self-stretch{align-self:stretch}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.\!rounded-md{border-radius:var(--radius-md)!important}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-bl-lg{border-bottom-left-radius:var(--radius-lg)}.\!border{border-style:var(--tw-border-style)!important;border-width:1px!important}.border{border-style:var(--tw-border-style);border-width:1px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-red-400{border-color:var(--color-red-400)}.\!bg-\[var\(--ds-background-100\)\]{background-color:var(--ds-background-100)!important}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.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)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-8{padding-block:calc(var(--spacing) * 8)}.pt-0{padding-top:calc(var(--spacing) * 0)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-9{padding-top:calc(var(--spacing) * 9)}.pr-10{padding-right:calc(var(--spacing) * 10)}.pb-1\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-8{padding-bottom:calc(var(--spacing) * 8)}.pl-6{padding-left:calc(var(--spacing) * 6)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.leading-none{--tw-leading:1;line-height:1}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-words{overflow-wrap:break-word}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.\!text-\[var\(--ds-gray-800\)\]{color:var(--ds-gray-800)!important}.text-red-900{color:var(--color-red-900)}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.decoration-transparent{text-decoration-color:#0000}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.shadow-sm{--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)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);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))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.select-none{-webkit-user-select:none;user-select:none}.group-open\:rotate-90:is(:where(.group):is([open],:popover-open,:open) *){rotate:90deg}@media (hover:hover){.group-hover\/copy\:opacity-100:is(:where(.group\/copy):hover *),.group-hover\/payload\:opacity-100:is(:where(.group\/payload):hover *){opacity:1}}.first-letter\:uppercase:first-letter{text-transform:uppercase}.first\:mt-0:first-child{margin-top:calc(var(--spacing) * 0)}@media (hover:hover){.hover\:\!bg-\[var\(--ds-gray-alpha-200\)\]:hover{background-color:var(--ds-gray-alpha-200)!important}.hover\:\!bg-\[var\(--ds-red-200\)\]:hover{background-color:var(--ds-red-200)!important}.hover\:bg-\[var\(--ds-gray-alpha-100\)\]:hover{background-color:var(--ds-gray-alpha-100)}.hover\:bg-\[var\(--ds-gray-alpha-200\)\]:hover{background-color:var(--ds-gray-alpha-200)}.hover\:bg-blue-400\/50:hover{background-color:#54a2ff80}@supports (color:color-mix(in lab, red, red)){.hover\:bg-blue-400\/50:hover{background-color:color-mix(in oklab, var(--color-blue-400) 50%, transparent)}}.hover\:brightness-95:hover{--tw-brightness:brightness(95%);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,)}}.active\:\!scale-95:active{--tw-scale-x:95%!important;--tw-scale-y:95%!important;--tw-scale-z:95%!important;scale:var(--tw-scale-x) var(--tw-scale-y)!important}.active\:\!bg-\[var\(--ds-gray-alpha-300\)\]:active{background-color:var(--ds-gray-alpha-300)!important}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}@media (prefers-color-scheme:dark){.dark\:border-red-700{border-color:var(--color-red-700)}}.\[\&_p\]\:leading-relaxed p{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.\[\&\:\:-webkit-details-marker\]\:hidden::-webkit-details-marker{display:none}.\[\&\>\*\:first-child\]\:mt-0>:first-child{margin-top:calc(var(--spacing) * 0)}.\[\&\>\*\:last-child\]\:mb-0>:last-child{margin-bottom:calc(var(--spacing) * 0)}.\[\&\>svg\]\:absolute>svg{position:absolute}.\[\&\>svg\]\:top-4>svg{top:calc(var(--spacing) * 4)}.\[\&\>svg\]\:left-4>svg{left:calc(var(--spacing) * 4)}.\[\&\>svg\]\:text-red-900>svg{color:var(--color-red-900)}.\[\&\>svg\+div\]\:translate-y-\[-3px\]>svg+div{--tw-translate-y:-3px;translate:var(--tw-translate-x) var(--tw-translate-y)}.\[\&\>svg\~\*\]\:pl-7>svg~*{padding-left:calc(var(--spacing) * 7)}}:root{--ds-background-100:#fff;--ds-background-200:#fafafa;--ds-gray-100:#f2f2f2;--ds-gray-200:#ebebeb;--ds-gray-300:#e6e6e6;--ds-gray-400:#ebebeb;--ds-gray-500:#c9c9c9;--ds-gray-600:#a8a8a8;--ds-gray-700:#8f8f8f;--ds-gray-800:#7d7d7d;--ds-gray-900:#666;--ds-gray-1000:#171717;--ds-gray-alpha-100:#0000000d;--ds-gray-alpha-200:#00000015;--ds-gray-alpha-400:#00000014;--ds-gray-alpha-700:#00000070;--ds-gray-alpha-1000:#000000e8;--ds-blue-100:#f0f7ff;--ds-blue-200:#ebf5ff;--ds-blue-300:#e0f0ff;--ds-blue-400:#cce6ff;--ds-blue-500:#99ceff;--ds-blue-600:#52aeff;--ds-blue-700:#0072f5;--ds-blue-900:#0068d6;--ds-red-100:#fff0f0;--ds-red-200:#ffebeb;--ds-red-300:#ffe6e6;--ds-red-400:#fdd8d8;--ds-red-500:#f8b9b9;--ds-red-600:#f87275;--ds-red-700:#e5484d;--ds-red-900:#cb2a2f;--ds-amber-100:#fff6e6;--ds-amber-200:#fff4d6;--ds-amber-300:#fef0cd;--ds-amber-400:#ffdd8f;--ds-amber-500:#ffc96b;--ds-amber-600:#f5b047;--ds-amber-700:#ffb224;--ds-amber-900:#a35200;--ds-green-100:#effbef;--ds-green-200:#ebfaeb;--ds-green-300:#daf6da;--ds-green-400:#c6f1c7;--ds-green-500:#99e69e;--ds-green-600:#6cda75;--ds-green-700:#45a557;--ds-green-900:#297a3a;--ds-teal-200:#e5faf6;--ds-teal-400:#bef4eb;--ds-teal-500:#86ead9;--ds-teal-900:#067a6e;--ds-purple-100:#f9f0ff;--ds-purple-200:#f9f1fe;--ds-purple-300:#f4e8fc;--ds-purple-400:#eddcf9;--ds-purple-500:#d5b1f1;--ds-purple-600:#bf89ec;--ds-purple-700:#8e4ec6;--ds-purple-900:#7820bc;--ds-pink-200:#feecf2;--ds-pink-400:#f9d7e2;--ds-pink-500:#f5b8cc;--ds-pink-900:#bd2864;--ds-shadow-small:0px 1px 2px #0000000a}.dark-theme,.dark,[data-theme=dark]{--ds-background-100:#121212;--ds-background-200:#1a1a1a;--ds-gray-100:#1c1c1c;--ds-gray-200:#242424;--ds-gray-300:#2b2b2b;--ds-gray-400:#242424;--ds-gray-500:#3b3b3b;--ds-gray-600:#575757;--ds-gray-700:#707070;--ds-gray-800:#828282;--ds-gray-900:#a1a1a1;--ds-gray-1000:#ededed;--ds-gray-alpha-100:#ffffff0f;--ds-gray-alpha-200:#ffffff17;--ds-gray-alpha-400:#ffffff24;--ds-gray-alpha-700:#ffffff73;--ds-gray-alpha-1000:#ffffffeb;--ds-blue-100:#0f1c2e;--ds-blue-200:#10233d;--ds-blue-300:#0f2f57;--ds-blue-400:#0d3868;--ds-blue-500:#0a4380;--ds-blue-600:#075cb0;--ds-blue-700:#0073e6;--ds-blue-900:#70b8ff;--ds-red-100:#2a1314;--ds-red-200:#3c1618;--ds-red-300:#561a1e;--ds-red-400:#671e21;--ds-red-500:#832126;--ds-red-600:#c41c22;--ds-red-700:#e5484d;--ds-red-900:#ff8589;--ds-amber-100:#291800;--ds-amber-200:#381f00;--ds-amber-300:#4d2a00;--ds-amber-400:#573300;--ds-amber-500:#704100;--ds-amber-600:#995c00;--ds-amber-700:#ffb224;--ds-amber-900:#ffd68a;--ds-green-100:#0b2212;--ds-green-200:#0f2e18;--ds-green-300:#12361b;--ds-green-400:#0c451b;--ds-green-500:#126426;--ds-green-600:#1a9338;--ds-green-700:#45a557;--ds-green-900:#97d897;--ds-teal-200:#062d26;--ds-teal-400:#0d4a40;--ds-teal-500:#115f52;--ds-teal-900:#47ebca;--ds-purple-100:#231528;--ds-purple-200:#2e1938;--ds-purple-300:#422154;--ds-purple-400:#4f2768;--ds-purple-500:#5f2e85;--ds-purple-600:#8e4ec6;--ds-purple-700:#8e4ec6;--ds-purple-900:#bf7af0;--ds-pink-200:#2f1822;--ds-pink-400:#5c243a;--ds-pink-500:#7a2949;--ds-pink-900:#f075a6;--ds-shadow-small:0px 1px 2px #0000004d}.react-flow{--xy-edge-stroke-default:#b1b1b7;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#555;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#e2e2e2;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:transparent;--xy-background-pattern-dots-color-default:#91919a;--xy-background-pattern-lines-color-default:#eee;--xy-background-pattern-cross-color-default:#e2e2e2;background-color:var(--xy-background-color,var(--xy-background-color-default));--xy-node-color-default:inherit;--xy-node-border-default:1px solid #1a192b;--xy-node-background-color-default:#fff;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #00000014;--xy-node-boxshadow-selected-default:0 0 0 .5px #1a192b;--xy-node-border-radius-default:3px;--xy-handle-background-color-default:#1a192b;--xy-handle-border-color-default:#fff;--xy-selection-background-color-default:#0059dc14;--xy-selection-border-default:1px dotted #0059dccc;--xy-controls-button-background-color-default:#fefefe;--xy-controls-button-background-color-hover-default:#f4f4f4;--xy-controls-button-color-default:inherit;--xy-controls-button-color-hover-default:inherit;--xy-controls-button-border-color-default:#eee;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9;direction:ltr}.react-flow.dark{--xy-edge-stroke-default:#3e3e3e;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#727272;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#2b2b2b;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#141414;--xy-background-pattern-dots-color-default:#777;--xy-background-pattern-lines-color-default:#777;--xy-background-pattern-cross-color-default:#777;--xy-node-color-default:#f8f8f8;--xy-node-border-default:1px solid #3c3c3c;--xy-node-background-color-default:#1e1e1e;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #ffffff14;--xy-node-boxshadow-selected-default:0 0 0 .5px #999;--xy-handle-background-color-default:#bebebe;--xy-handle-border-color-default:#1e1e1e;--xy-selection-background-color-default:#c8c8dc14;--xy-selection-border-default:1px dotted #c8c8dccc;--xy-controls-button-background-color-default:#2b2b2b;--xy-controls-button-background-color-hover-default:#3e3e3e;--xy-controls-button-color-default:#f8f8f8;--xy-controls-button-color-hover-default:#fff;--xy-controls-button-border-color-default:#5b5b5b;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#141414;--xy-edge-label-color-default:#f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props,var(--xy-background-color,var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width,var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke,var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width,var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{pointer-events:none;position:absolute;overflow:visible}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected,var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:.5s linear infinite dashdraw}svg.react-flow__connectionline{z-index:1001;position:absolute;overflow:visible}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;background-color:var(--xy-handle-background-color,var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color,var(--xy-handle-border-color-default));border-radius:100%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:0;left:50%;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{z-index:5;margin:15px;position:absolute}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px)translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px)translateY(-50%)}.react-flow__attribution{background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__viewport-portal{-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__minimap{background:var(--xy-minimap-background-color-props,var(--xy-minimap-background-color,var(--xy-minimap-background-color-default)))}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var(--xy-minimap-mask-background-color-props,var(--xy-minimap-mask-background-color,var(--xy-minimap-mask-background-color-default)));stroke:var(--xy-minimap-mask-stroke-color-props,var(--xy-minimap-mask-stroke-color,var(--xy-minimap-mask-stroke-color-default)));stroke-width:var(--xy-minimap-mask-stroke-width-props,var(--xy-minimap-mask-stroke-width,var(--xy-minimap-mask-stroke-width-default)))}.react-flow__minimap-node{fill:var(--xy-minimap-node-background-color-props,var(--xy-minimap-node-background-color,var(--xy-minimap-node-background-color-default)));stroke:var(--xy-minimap-node-stroke-color-props,var(--xy-minimap-node-stroke-color,var(--xy-minimap-node-stroke-color-default)));stroke-width:var(--xy-minimap-node-stroke-width-props,var(--xy-minimap-node-stroke-width,var(--xy-minimap-node-stroke-width-default)))}.react-flow__background-pattern.dots{fill:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-dots-color-default)))}.react-flow__background-pattern.lines{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-lines-color-default)))}.react-flow__background-pattern.cross{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-cross-color-default)))}.react-flow__controls{box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default));flex-direction:column;display:flex}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border:none;border-bottom:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)));width:26px;height:26px;color:var(--xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default)));cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:4px;display:flex}.react-flow__controls-button svg{fill:currentColor;width:100%;max-width:12px;max-height:12px}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));width:150px;color:var(--xy-node-color,var(--xy-node-color-default));text-align:center;border:var(--xy-node-border,var(--xy-node-border-default));background-color:var(--xy-node-background-color,var(--xy-node-background-color-default));padding:10px;font-size:12px}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover,var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected,var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color,var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color,var(--xy-selection-background-color-default));border:var(--xy-selection-border,var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var(--xy-controls-button-background-color-hover-props,var(--xy-controls-button-background-color-hover,var(--xy-controls-button-background-color-hover-default)));color:var(--xy-controls-button-color-hover-props,var(--xy-controls-button-color-hover,var(--xy-controls-button-color-hover-default)))}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)))}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;width:5px;height:5px;translate:-50% -50%}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color,var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color,var(--xy-edge-label-color-default))}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page-gutter:clamp(24px, 7.4vw, 152px);--font-sans:var(--font-geist-sans), ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:var(--font-geist-mono), ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;--background:#080808;--foreground:#f2f2f2;--card:#0d0d0d;--card-foreground:var(--foreground);--popover:#111;--popover-foreground:var(--foreground);--primary:#f2f2f2;--primary-foreground:#080808;--secondary:#171717;--secondary-foreground:var(--foreground);--muted:#171717;--muted-foreground:#9b9b9b;--accent:#181818;--accent-foreground:var(--foreground);--control:#242424;--control-hover:#181818;--control-active:#070707;--control-border:#3a3a3a;--field:#090909;--canvas:#050505;--destructive:#ff5f57;--destructive-foreground:#fff;--border:#262626;--input:#383838;--ring:#60a5fa;--radius:8px;--bg:var(--background);--panel:var(--card);--panel-raised:var(--popover);--panel-soft:var(--secondary);--line:var(--border);--line-strong:var(--input);--ink:var(--foreground);--muted-2:#6f6f6f;--green:#43d08a;--green-soft:#43d08a2e;--blue:#60a5fa;--blue-soft:#60a5fa33;--red:#ff5f57;--red-soft:#ff5f572e;--amber:#f7c948;--amber-soft:#f7c94829;--text-shadow:0 1px 0 #00000059}html.light{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:#fff;--foreground:#171717;--card:#fff;--card-foreground:var(--foreground);--popover:#fafafa;--popover-foreground:var(--foreground);--primary:#171717;--primary-foreground:#fff;--secondary:#f5f5f5;--secondary-foreground:var(--foreground);--muted:#f5f5f5;--muted-foreground:#737373;--accent:#f5f5f5;--accent-foreground:var(--foreground);--control:#f5f5f5;--control-hover:#eee;--control-active:#fff;--control-border:#d4d4d4;--field:#fff;--canvas:#fff;--border:#e5e5e5;--input:#d4d4d4;--bg:var(--background);--panel:var(--card);--panel-raised:var(--popover);--panel-soft:var(--secondary);--line:var(--border);--line-strong:var(--input);--ink:var(--foreground);--muted-2:#8a8a8a;--text-shadow:none}*{box-sizing:border-box}html,body{background:var(--bg);min-height:100%;color:var(--ink);font-family:var(--font-sans);-webkit-tap-highlight-color:#f2f2f21a;margin:0}body{overflow-x:hidden}button,input,select,textarea{font:inherit}button{color:inherit;touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,tr[role=button]:focus-visible{box-shadow:0 0 0 2px var(--blue);outline:0}h1,h2,h3,p{margin-top:0}code,time{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.compiler-shell{width:100%;min-height:100vh;padding-bottom:42px}.compiler-shell.run-canvas-mode,.compiler-shell.source-canvas-mode{height:100dvh;min-height:100dvh;padding-bottom:0;overflow:hidden}.run-canvas-mode .top-nav{position:relative}.content-shell{width:100%;padding:34px var(--page-gutter) 0;margin:0 auto}.run-canvas-shell,.workflow-canvas-shell{height:calc(100dvh - 77px);padding:18px 28px 0;overflow:hidden}.source-canvas-shell{height:calc(100dvh - 77px);padding:34px var(--page-gutter) 0;overflow:hidden}.detail-wide-shell{padding:18px 28px 0}.top-nav{z-index:40;border-bottom:1px solid var(--line);background:var(--bg);justify-content:space-between;align-items:center;gap:20px;min-height:78px;padding:16px 24px;display:flex;position:sticky;top:0}.brand-row,.nav-actions,.run-action-row,.filter-controls{align-items:center;display:flex}.brand-row{gap:18px;min-width:0}.brand-link{color:var(--ink);letter-spacing:0;text-shadow:var(--text-shadow);flex:none;align-items:center;font-size:clamp(1.18rem,1.7vw,1.55rem);font-weight:780;line-height:1;text-decoration:none;display:inline-flex}.brand-link:hover{color:#fff}.brand-mark{border:1px solid var(--line-strong);object-fit:cover;border-radius:12px;width:48px;height:48px}.nav-divider{background:var(--line);width:1px;height:32px}.path-open-control{min-width:0;color:var(--muted-foreground);text-align:left;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2px 14px;display:grid}.path-open-control:hover code,.path-open-control:focus-within code{color:var(--ink)}.path-open-copy{gap:2px;min-width:0;display:grid;overflow:hidden}.path-open-control.disabled code{color:var(--muted-foreground)}.path-open-control span{color:var(--muted-2);letter-spacing:.08em;text-transform:uppercase;font-size:.66rem;font-weight:850;line-height:1}.path-open-control code{min-width:0;color:var(--muted-foreground);text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;font-weight:700;line-height:1.2;overflow:hidden}.path-open-action{opacity:0;pointer-events:none;transition:opacity .12s}.path-open-control:hover .path-open-action,.path-open-control:focus-within .path-open-action{opacity:1;pointer-events:auto}.local-path{max-width:min(680px,48vw)}.local-path .path-open-copy{align-items:baseline;gap:8px;display:flex}.local-path span{color:var(--muted-foreground);letter-spacing:0;text-transform:none;flex:none;font-size:.9rem;font-weight:520;line-height:1.1}.local-path span:after{content:":"}.local-path code{color:var(--muted-foreground);font-family:var(--font-sans);font-size:.9rem;font-weight:520}.nav-actions{flex:none;gap:10px}.theme-switcher{border:1px solid var(--control-border);background:var(--control);border-radius:8px;gap:2px;min-height:36px;padding:3px;display:inline-flex;box-shadow:inset 0 1px #ffffff0a}.theme-switcher button{width:30px;min-height:28px;color:var(--muted-foreground);cursor:pointer;background:0 0;border:0;border-radius:7px;justify-content:center;align-items:center;display:inline-flex}.theme-switcher button.active{background:var(--control-active);color:var(--ink)}.theme-switcher button:hover{color:var(--ink)}.health-link,.icon-button,.docs-link,.toolbar-button,.segmented-tabs,.detail-tabs,.status-badge{border:1px solid var(--line-strong);background:var(--panel-raised);box-shadow:inset 0 1px #ffffff0a}.health-link{min-height:36px;color:var(--ink);background:0 0;border-color:#0000;align-items:center;gap:9px;padding:0 12px;font-size:.88rem;font-weight:700;text-decoration:none;display:inline-flex}.icon-button,.docs-link,.toolbar-button,.dataset-action-button,.local-open-button{min-height:36px;color:var(--ink);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:0 13px;font-size:.84rem;font-weight:700;text-decoration:none;display:inline-flex}.icon-button:hover,.docs-link:hover,.toolbar-button:hover,.dataset-action-button:hover,.local-open-button:hover,.segmented-tabs button:hover,.detail-tabs button:hover,.runs-table tr[role=button]:hover{background:var(--control-hover)}html.light .brand-link:hover{color:#000}html.light .theme-switcher button.active,html.light .segmented-tabs button.active,html.light .detail-tabs button.active{background:#fff;box-shadow:0 1px 2px #0000001a}html.light .icon-button:hover,html.light .docs-link:hover,html.light .toolbar-button:hover,html.light .dataset-action-button:hover,html.light .local-open-button:hover,html.light .segmented-tabs button:hover,html.light .detail-tabs button:hover,html.light .runs-table tr[role=button]:hover{background:#f5f5f5}.offline-panel{border:1px solid var(--line);background:var(--panel);border-radius:8px;margin-top:34px;padding:18px}.offline-panel p{margin-bottom:10px}.offline-panel code{color:var(--red);overflow-wrap:anywhere;display:block}.segmented-tabs,.detail-tabs{border-color:var(--control-border);background:var(--control);border-radius:8px;gap:4px;padding:4px;display:inline-flex}.segmented-tabs{justify-self:start;margin:0 0 24px}.segmented-tabs button,.detail-tabs button{min-height:34px;color:var(--muted-foreground);cursor:pointer;background:0 0;border:0;border-radius:7px;font-size:.88rem;font-weight:750}.segmented-tabs button{min-width:86px;padding:0 16px}.detail-tabs button{min-width:88px;padding:0 13px}.segmented-tabs button.active,.detail-tabs button.active{background:var(--control-active);color:var(--ink)}.run-workspace,.run-detail-page{gap:12px;display:grid}.run-list-head{align-items:end}.run-detail-page{grid-template-rows:auto minmax(0,1fr);height:100%;min-height:0}.compiler-workspace-grid,.compiler-workspace-grid.agent-panel-collapsed{display:block}.compiler-main-stack{min-width:0}.run-canvas-shell .compiler-main-stack,.workflow-canvas-shell .compiler-main-stack{height:100%;min-height:0}.source-canvas-shell .compiler-main-stack{grid-template-rows:auto minmax(0,1fr);height:100%;min-height:0;display:grid}.workflow-canvas-shell .source-layout{height:100%;min-height:0;overflow:hidden}.agent-chat-panel{z-index:90;border:1px solid var(--line);background:var(--panel);border-radius:8px;grid-template-rows:auto minmax(0,1fr) auto auto;gap:10px;width:min(420px,100vw - 24px);height:min(640px,100dvh - 96px);min-height:0;padding:16px;display:grid;position:fixed;bottom:88px;right:20px;overflow:hidden;box-shadow:0 24px 80px #00000085}.agent-panel-head,.proposal-title-row,.agent-head-actions,.proposal-actions{align-items:center;display:flex}.agent-panel-head,.proposal-title-row,.agent-head-actions{justify-content:space-between;gap:12px}.agent-head-actions{gap:8px}.agent-review-pill{border:1px solid var(--line-strong);background:var(--panel-raised);min-height:30px;color:var(--muted-foreground);white-space:nowrap;border-radius:999px;align-items:center;padding:0 10px;font-size:.76rem;font-weight:800;display:inline-flex}.agent-field span,.proposal-meta,.agent-empty{color:var(--muted-foreground);font-size:.78rem}.agent-title{align-items:center;gap:10px;min-width:0;display:flex}.agent-title svg{color:var(--green);flex:none}.agent-title-copy{gap:4px;min-width:0;display:grid}.agent-panel-head h2{color:var(--ink);letter-spacing:0;margin:0;font-size:.94rem;font-weight:800;line-height:1.1}.agent-status-label{min-width:0;color:var(--muted-foreground);letter-spacing:0;text-transform:uppercase;align-items:center;gap:6px;font-size:.74rem;font-weight:800;line-height:1;display:flex}.agent-executor-switcher{min-width:0;color:var(--muted-foreground);align-items:center;gap:6px;display:inline-flex}.agent-executor-switcher select{appearance:none;min-width:0;max-width:180px;height:30px;color:var(--muted-foreground);cursor:pointer;background:0 0;border:0;padding:0;font-size:.78rem;font-weight:800;line-height:1.1}.agent-executor-switcher select:disabled{opacity:1}.agent-executor-switcher svg{color:var(--muted-foreground);flex:none}.agent-executor-switcher svg:last-child{pointer-events:none;transform:rotate(90deg)}.agent-status-dot{background:var(--muted-2);border-radius:999px;width:8px;height:8px}.agent-status-dot.status-ok{background:var(--green)}.agent-status-dot.status-fail{background:var(--red)}.agent-collapse-button{border:1px solid var(--line);color:var(--muted-foreground);cursor:pointer;background:#0a0a0a;border-radius:7px;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.agent-launcher{z-index:91;border:1px solid var(--line-strong);background:var(--panel-raised);width:48px;height:48px;color:var(--green);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;display:inline-flex;position:fixed;bottom:20px;right:20px;box-shadow:0 18px 48px #0000006b}.agent-collapse-button:hover,.agent-launcher:hover{color:var(--green);background:#171717}.agent-launcher.open{background:var(--panel-raised);color:var(--green)}.rail-status-dot{background:currentColor;border-radius:999px;width:7px;height:7px;position:absolute;bottom:6px;right:6px}.agent-settings{border:1px solid var(--line);background:var(--panel-soft);border-radius:8px;min-width:0;padding:8px 10px}.agent-settings summary{color:var(--muted-foreground);cursor:pointer;justify-content:space-between;align-items:center;gap:8px;font-size:.78rem;line-height:1.35;display:flex}.agent-settings summary::-webkit-details-marker{display:none}.agent-settings[open] summary svg{transform:rotate(90deg)}.agent-control-grid{grid-template-columns:1fr;gap:8px;padding-top:10px;display:grid}.agent-field{gap:6px;display:grid}.agent-field select,.agent-compose textarea{border:1px solid var(--line-strong);background:var(--field);width:100%;color:var(--ink);border-radius:8px}.agent-field select{height:38px;padding:0 12px}.chat-transcript{scrollbar-gutter:stable;scrollbar-color:var(--line-strong) transparent;scrollbar-width:thin;align-content:start;gap:12px;min-height:0;padding:2px 2px 8px;display:grid;overflow-y:auto}.chat-transcript::-webkit-scrollbar{width:8px}.chat-transcript::-webkit-scrollbar-track{background:0 0}.chat-transcript::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:999px}.chat-turn{gap:8px;display:grid}.chat-turn.pending{opacity:1}.chat-message{gap:9px;min-width:0;display:grid}.chat-message p{border:1px solid var(--line);width:fit-content;max-width:100%;color:var(--ink);overflow-wrap:anywhere;border-radius:8px;margin:0;padding:8px 10px;font-size:.82rem;line-height:1.42}.chat-message.user{justify-items:end}.chat-message.user p{border-color:var(--line-strong);color:#dedede;background:0 0}.chat-message.assistant p{background:var(--field)}.chat-message.assistant .planning-copy{color:var(--muted-foreground);align-items:center;gap:8px;display:inline-flex}.command-preview{border:1px solid var(--line);background:var(--canvas);border-radius:8px;gap:5px;width:100%;padding:9px 10px;display:grid}.command-preview span{color:var(--muted-2);text-transform:uppercase;font-size:.68rem;font-weight:850;line-height:1}.command-preview code{color:#dedede;font-family:var(--font-mono);overflow-wrap:anywhere;font-size:.78rem;line-height:1.4}.proposal-actions button{border:1px solid var(--line-strong);background:var(--panel-raised);min-height:32px;color:var(--ink);cursor:pointer;border-radius:7px;flex:1;justify-content:center;align-items:center;gap:6px;font-size:.78rem;font-weight:750;display:inline-flex}.proposal-actions button:hover{background:#181818}.agent-suggestions{border-top:1px solid var(--line);scrollbar-width:none;gap:8px;min-width:0;padding:12px 1px 2px;display:flex;overflow-x:auto}.agent-suggestions::-webkit-scrollbar{display:none}.agent-suggestions button{border:1px solid var(--line-strong);min-height:32px;color:var(--ink);cursor:pointer;background:0 0;border-radius:999px;flex:none;padding:0 11px;font-size:.78rem;font-weight:800}.agent-suggestions button:hover{background:var(--control-hover)}.agent-compose{align-items:stretch;gap:8px;display:grid}.agent-input-shell{border:1px solid var(--line-strong);background:var(--field);border-radius:8px;grid-template-rows:minmax(64px,auto) auto;align-items:stretch;gap:10px;min-width:0;padding:12px;display:grid}.agent-input-shell:focus-within{border-color:var(--blue);box-shadow:0 0 0 2px var(--blue)}.agent-compose textarea{resize:none;background:0 0;border:0;min-height:64px;max-height:130px;padding:0;line-height:1.4}.agent-compose textarea:focus-visible{box-shadow:none}.agent-compose-footer{justify-content:space-between;align-items:center;gap:10px;min-width:0;display:flex}.agent-attached-values{border:1px solid var(--line);background:var(--panel-soft);min-width:0;color:var(--muted-foreground);border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:7px 9px;font-size:.76rem;font-weight:850;display:flex}.agent-attached-values button{border:1px solid var(--line);min-height:24px;color:var(--ink);cursor:pointer;background:0 0;border-radius:6px;padding:0 8px;font-size:.72rem;font-weight:800}.send-button{border:1px solid var(--line-strong);background:var(--panel-raised);min-height:36px;color:var(--ink);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:0 12px;font-weight:850;display:inline-flex}.send-button:disabled{cursor:not-allowed;opacity:.48}.agent-error{color:var(--red);margin:0;font-size:.78rem;line-height:1.4}.proposal-card{border:1px solid var(--line);background:#0a0a0a;border-radius:8px;gap:10px;padding:12px;display:grid}.proposal-card.compact{background:#080808}.chat-turn.historical{opacity:.78}.proposal-card.historical{background:#070707;gap:8px}.proposal-card.actionable{border-color:var(--line-strong);box-shadow:inset 0 1px #ffffff0a}.proposal-skeleton{overflow:hidden}.skeleton-line{background:linear-gradient(90deg,#ffffff0f,#ffffff21,#ffffff0f) 0 0/180% 100%;border-radius:999px;width:68%;height:10px;animation:1.2s ease-in-out infinite skeleton-pulse}.skeleton-line.wide{width:92%}.spin{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes skeleton-pulse{0%{background-position:100% 0}to{background-position:-100% 0}}.proposal-title-row strong{overflow-wrap:anywhere;min-width:0;font-size:.9rem;line-height:1.32}.proposal-card p{color:var(--muted-foreground);margin:0;font-size:.82rem;line-height:1.45}.proposal-meta{flex-wrap:wrap;gap:8px;display:flex}.proposal-meta span{border:1px solid var(--line);background:var(--panel-raised);border-radius:999px;padding:2px 7px}.proposal-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;display:grid}.proposal-detail-grid div{gap:3px;min-width:0;display:grid}.proposal-detail-grid dt{color:var(--muted-2);text-transform:uppercase;font-size:.68rem;font-weight:850;line-height:1}.proposal-detail-grid dd{color:var(--ink);overflow-wrap:anywhere;margin:0;font-size:.78rem;line-height:1.35}.proposal-detail-grid dd.mono{font-family:var(--font-mono);font-size:.72rem}.proposal-actions{gap:8px}.proposal-run-link{border:1px solid var(--line-strong);background:var(--panel-raised);min-height:32px;color:var(--ink);cursor:pointer;border-radius:7px;justify-content:center;align-items:center;gap:6px;font-size:.78rem;font-weight:800;display:inline-flex}.proposal-run-link:hover{background:var(--control-hover)}.payload-details{border-top:1px solid var(--line);padding-top:8px}.payload-details summary{color:var(--muted-foreground);cursor:pointer;font-size:.76rem;font-weight:800}.breadcrumb-row{color:var(--muted-foreground);align-items:center;gap:10px;font-size:.86rem;display:flex}.breadcrumb-row button{color:var(--ink);cursor:pointer;background:0 0;border:0;font-weight:800}.breadcrumb-row code{color:var(--muted-foreground);overflow-wrap:anywhere}.filter-controls{flex-wrap:wrap;justify-content:flex-end;align-items:flex-end;gap:8px;min-width:0}.filter-controls label{gap:5px;display:grid}.filter-controls label span{color:var(--muted-2);text-transform:uppercase;font-size:.7rem;font-weight:750}.filter-controls select{border:1px solid var(--line-strong);background:var(--panel-raised);min-width:178px;height:38px;color:var(--ink);border-radius:8px;padding:0 34px 0 12px}.filter-controls .toolbar-button{min-width:98px;min-height:38px}.runs-view{gap:14px;display:grid}.runs-head-controls{flex:0 0 min(760px,56vw);grid-template-columns:minmax(240px,340px) 190px auto;justify-content:flex-end;align-items:end;gap:8px;min-width:0;display:grid}.runs-head-controls label,.runs-search-field{gap:5px;min-width:0;display:grid}.runs-search-field,.runs-head-controls label:not(.runs-search-field){width:100%}.runs-head-controls label span,.runs-search-field span{color:var(--muted-2);text-transform:uppercase;font-size:.7rem;font-weight:800}.runs-head-controls select,.runs-search-field input{border:1px solid var(--line-strong);background-color:var(--panel-raised);min-height:34px;color:var(--ink);border-radius:8px;font-size:.84rem;font-weight:700}.runs-head-controls select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--muted-foreground) 50%), linear-gradient(135deg, var(--muted-foreground) 50%, transparent 50%);background-position:calc(100% - 17px),calc(100% - 12px);background-repeat:no-repeat;background-size:5px 5px;width:100%;padding:0 34px 0 12px}.runs-head-controls .toolbar-button{align-self:end;min-width:84px;min-height:34px}.runs-search-field input{width:100%;padding:0 14px}.run-status-filter-row{grid-template-columns:repeat(6,minmax(120px,1fr));gap:8px;min-width:0;display:grid}.run-status-filter{border:1px solid var(--line);background:var(--panel-soft);min-height:34px;color:var(--ink);cursor:pointer;border-radius:8px;flex:none;align-items:center;gap:7px;padding:0 9px;display:flex}.run-status-filter:hover,.run-status-filter.active{border-color:var(--line-strong);background:var(--control-hover)}.run-status-filter strong{font-size:.78rem}.run-status-filter em{color:var(--muted-foreground);margin-left:auto;font-style:normal;font-weight:800}.table-frame{border:1px solid var(--line);background:var(--panel);border-radius:8px;overflow:auto}.runs-table{border-collapse:collapse;width:100%;min-width:1120px}.runs-table th,.runs-table td{border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;padding:13px 18px}.runs-table th{z-index:1;background:var(--panel);color:var(--muted-foreground);font-size:.8rem;font-weight:800;position:sticky;top:0}.runs-table td{color:var(--ink);font-size:.9rem}.runs-table tr:last-child td{border-bottom:0}.runs-table code{color:#d6d6d6;overflow-wrap:anywhere;font-size:.78rem}.runs-table time,.runs-table td span{color:var(--muted-foreground)}.run-name-cell{gap:5px;min-width:0;display:grid}.run-name-cell strong,.run-name-cell span{overflow-wrap:anywhere}.run-name-cell strong{font-size:.95rem}.run-name-cell span{color:var(--muted-foreground);font-size:.8rem}.empty-table{min-height:112px;color:var(--muted-foreground);text-align:center;place-items:center;gap:8px;padding:22px;display:grid}.empty-table strong{color:var(--ink);font-size:1rem}.detail-panel,.run-header-card,.empty-detail{border:1px solid var(--line);background:var(--panel);border-radius:8px}.run-detail{grid-template-rows:auto auto minmax(0,1fr);gap:14px;min-width:0;height:100%;min-height:0;display:grid;overflow:hidden}.run-header-card{gap:22px;min-width:0;padding:18px;display:grid}.run-detail>.detail-panel{min-height:0;overflow:auto}.workflow-trace-frame,.workflow-events-frame,.run-readiness-frame{border:1px solid var(--line);background:var(--canvas);border-radius:8px;min-width:0;min-height:0}.workflow-trace-frame,.workflow-events-frame{height:100%;overflow:hidden}.eyebrow{color:var(--muted-foreground);letter-spacing:.12em;text-transform:uppercase;margin:0 0 6px;font-size:.72rem;font-weight:850}.empty-state{min-height:116px;color:var(--muted-foreground);text-align:center;place-items:center;gap:8px;padding:18px;display:grid}.empty-state strong{color:var(--ink)}.empty-detail{color:var(--muted-foreground);align-content:center;justify-items:center}.empty-detail strong{color:var(--ink)}.run-overview,.run-metadata,.panel-title{justify-content:space-between;align-items:start;gap:18px;display:flex}.run-overview h1{margin:0;font-size:1.25rem;line-height:1.25}.run-overview p,.metric-box p,.compact-list p,.failure-text,.muted{color:var(--muted-foreground);font-size:.86rem;line-height:1.45}.run-overview p,.compact-list p{margin-bottom:0}.run-action-row{gap:10px}.run-metadata{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));padding:8px 0 4px;display:grid}.run-context-panel{border-top:1px solid var(--line);grid-template-columns:minmax(300px,.62fr) minmax(0,1.38fr);gap:16px;min-width:0;padding-top:16px;display:grid}.run-context-copy{align-content:start;gap:8px;min-width:0;display:grid}.run-context-copy span{color:var(--muted-foreground);letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:850}.run-context-copy p{color:var(--ink);margin:0;font-size:.86rem;line-height:1.45}.run-context-metrics{grid-template-columns:repeat(5,minmax(112px,1fr))}.run-readiness-frame{align-content:start;height:100%;overflow:auto}.run-readiness-metrics{grid-template-columns:repeat(5,minmax(120px,1fr))}.readiness-check-section{gap:10px;min-width:0;display:grid}.meta-item{gap:6px;min-width:0;display:grid}.meta-item span{color:var(--muted-foreground);font-size:.75rem;font-weight:700}.meta-item strong,.meta-item code{min-width:0;color:var(--ink);overflow-wrap:anywhere;font-size:.8rem}.failure-text{color:var(--red);margin:0}.metric-box{border:1px solid var(--line);background:var(--panel-soft);border-radius:8px;min-width:0;min-height:76px;padding:10px 12px}.metric-box span{color:var(--muted-foreground);text-transform:uppercase;margin:0 0 5px;font-size:.72rem;font-weight:800;display:block}.check-stack{gap:8px;display:grid}.check-stack article,.compact-list article{border-top:1px solid var(--line);grid-template-columns:72px minmax(0,1fr);align-items:start;gap:12px;min-width:0;padding:10px 0;display:grid}.check-stack article span{text-transform:uppercase;font-size:.72rem;font-weight:850}.check-stack article p{color:var(--ink);overflow-wrap:anywhere;margin:0;font-size:.84rem;line-height:1.45}.workflow-canvas{border:1px solid var(--line);background-color:#050505;background-image:radial-gradient(circle,#fff3 1px,#0000 1px),none;background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:28px 28px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;border-radius:8px;min-height:560px;position:relative;overflow:auto}.canvas-legend{z-index:2;border:1px solid var(--line);width:230px;color:var(--muted-foreground);background:#0a0a0aeb;border-radius:8px;gap:9px;margin:16px;padding:12px;font-size:.78rem;display:grid;position:sticky;top:16px;left:16px}.canvas-legend span{align-items:center;gap:8px;display:flex}.legend-dot{border-radius:99px;width:10px;height:10px;display:inline-block}.legend-dot.start{background:var(--blue)}.legend-dot.stage{background:var(--green)}.legend-line{background:var(--line-strong);width:22px;height:2px;display:inline-block}.graph-stack{justify-items:center;min-width:820px;padding:4px 24px 44px;display:grid}.graph-step{justify-items:center;display:grid}.graph-connector{background:var(--line-strong);width:2px;height:84px;display:block}.graph-node{background:var(--panel-raised);width:min(440px,76vw);min-height:86px;color:var(--green);text-align:center;border:1px solid;border-radius:8px;justify-items:center;gap:7px;padding:14px 18px;display:grid;box-shadow:0 18px 40px #00000047}.graph-node.start,.graph-node.end{color:var(--blue);background:#102033}.graph-node strong{color:var(--ink);overflow-wrap:anywhere;font-size:1rem;line-height:1.25}.graph-node p{color:var(--muted-foreground);margin:0;font-size:.78rem;line-height:1.35}.node-icon{border:2px solid;border-radius:99px;width:18px;height:18px;display:block}.node-icon.stage{border-radius:5px}.detail-panel{gap:16px;padding:18px;display:grid}.evidence-stack{border:1px solid var(--line);background:var(--panel-raised);border-radius:8px;gap:12px;min-width:0;padding:12px;display:grid}.panel-title h2{margin:0;font-size:1.03rem}.panel-title span{color:var(--muted-foreground);font-size:.82rem}.metric-grid{grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:10px;display:grid}.metric-box strong{color:var(--ink);overflow-wrap:anywhere;font-size:1rem;line-height:1.22;display:block}.metric-box p{margin:5px 0 0}.run-context-metrics .metric-box p{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.local-open-button{border:1px solid var(--control-border);background:var(--panel-raised);min-height:36px;color:var(--ink);cursor:pointer;white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:0 13px;font-size:.84rem;font-weight:800;line-height:1;text-decoration:none;display:inline-flex}.local-open-button:hover{border-color:var(--line-strong);background:var(--control-hover)}.local-open-button.primary{background:var(--green-soft);min-height:40px;color:var(--green);border-color:#43d08a70;padding:0 14px;box-shadow:inset 0 1px #ffffff0d}.local-open-button.primary:hover{background:#43d08a3d}.local-open-button.compact{border-radius:7px;min-height:26px;padding-inline:8px;font-size:.68rem;line-height:1}.local-open-button.failed{color:var(--red)}.tab-grid{grid-template-columns:minmax(0,1.4fr) minmax(320px,.6fr);align-items:start;gap:18px;display:grid}.compact-list{gap:2px;display:grid}.compact-list article{grid-template-columns:auto minmax(0,1fr)}.compact-list strong,.compact-list p{overflow-wrap:anywhere}.workflow-layout{grid-template-columns:minmax(330px,.42fr) minmax(0,1fr);align-items:start;gap:18px;display:grid}.workflow-list-layout{gap:18px;display:grid}.page-head{justify-content:space-between;align-items:end;gap:18px;min-width:0;display:flex}.page-head>div:not(.filter-controls){gap:10px;min-width:0;display:grid}.page-head>.filter-controls{flex:none;display:flex}.page-head h1{overflow-wrap:anywhere;margin:0;font-size:1.4rem;line-height:1.15}.page-head p{color:var(--muted-foreground);font-family:var(--font-mono);overflow-wrap:anywhere;margin:0;font-size:.84rem}.page-path-control,.section-path-control{background:0 0;border:1px solid #0000;border-radius:8px;width:min(760px,100%);padding:7px 9px}.page-path-control:hover,.page-path-control:focus-within,.section-path-control:hover,.section-path-control:focus-within{border-color:var(--line);background:var(--field)}.page-path-control code,.section-path-control code{font-family:var(--font-mono);font-size:.84rem}.page-head>.toolbar-button,.page-head>.dataset-action-button{flex:none}.workflow-table-frame{max-height:calc(100vh - 220px)}.workflow-table-frame .runs-table{min-width:560px}.workflow-table-wide .runs-table{min-width:1100px}.row-action-menu{display:inline-flex;position:relative}.row-action-trigger{width:34px;height:30px;color:var(--muted-foreground);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;justify-content:center;align-items:center;display:inline-flex}.row-action-trigger.active,.row-action-trigger:hover{border-color:var(--control-border);background:var(--control-hover);color:var(--ink)}.row-action-menu-content{z-index:80;border:1px solid var(--line-strong);background:var(--panel-raised);border-radius:8px;min-width:150px;max-height:min(260px,100dvh - 24px);padding:5px;display:grid;position:fixed;overflow:auto;box-shadow:0 16px 42px #00000061}.row-action-menu-content button{min-height:32px;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:0 10px;font-size:.78rem;font-weight:760}.row-action-menu-content button:hover{background:var(--control-hover)}.row-action-menu-content button.destructive{color:var(--red)}.action-dialog-backdrop{z-index:120;background:#00000094;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.action-dialog{border:1px solid var(--line-strong);background:var(--panel-raised);width:min(680px,100vw - 32px);max-height:min(820px,100dvh - 32px);font-family:var(--font-sans);border-radius:8px;gap:18px;padding:20px;display:grid;overflow:auto;box-shadow:0 24px 80px #0000007a}.action-dialog-head,.action-dialog-actions{justify-content:space-between;align-items:flex-start;gap:12px;min-width:0;display:flex}.action-dialog-head h2{margin:0 0 7px;font-size:1.08rem;line-height:1.2}.action-dialog-head p{color:var(--muted-foreground);overflow-wrap:anywhere;margin:0;font-size:.86rem;line-height:1.45}.action-form{gap:16px;display:grid}.action-form-field{gap:7px;min-width:0;display:grid}.action-form-field>span{color:var(--ink);font-size:.88rem;font-weight:800}.action-form-field p{color:var(--muted-foreground);margin:-2px 0 0;font-size:.82rem;line-height:1.4}.action-form-field input,.action-form-field select,.action-form-field textarea{border:1px solid var(--line-strong);background:var(--field);width:100%;min-width:0;color:var(--ink);font-family:var(--font-sans);border-radius:8px;font-size:.9rem}.action-form-field input,.action-form-field select{height:38px;padding:0 11px}.action-form-field select{appearance:none;cursor:pointer;background-image:linear-gradient(45deg, transparent 50%, var(--muted-foreground) 50%), linear-gradient(135deg, var(--muted-foreground) 50%, transparent 50%);background-position:calc(100% - 18px),calc(100% - 12px);background-repeat:no-repeat;background-size:6px 6px;padding-right:38px}.action-form-field select::-ms-expand{display:none}.action-form-field textarea{resize:vertical;min-height:82px;padding:10px 11px;line-height:1.4}.action-form-readonly{border:1px solid var(--line);background:var(--panel-soft);border-radius:8px;min-width:0;padding:10px 11px}.action-form-readonly code{color:var(--muted-foreground);font-family:var(--font-sans);overflow-wrap:anywhere;font-size:.86rem;font-weight:560;line-height:1.35;display:block}.action-form-field [aria-invalid=true]{border-color:var(--red)}.action-form-field strong{color:var(--red);font-size:.75rem;line-height:1.35}.action-values-preview{border:1px solid var(--line);background:var(--panel-soft);border-radius:8px;min-width:0;padding:10px 11px}.action-values-preview summary{color:var(--muted-foreground);cursor:pointer;font-size:.8rem;font-weight:850}.action-values-preview>div{max-height:220px;margin-top:8px;overflow:auto}.action-dialog-actions{justify-content:flex-end;align-items:center}.workflow-detail{gap:18px;min-width:0;display:grid}.workflow-detail-canvas-mode{flex-direction:column;height:calc(100dvh - 112px);min-height:0;display:flex;overflow:hidden}.workflow-canvas-shell .workflow-detail-canvas-mode{height:100%}.workflow-canvas-shell .context-workspace-canvas-mode{flex-direction:column;height:100%;min-height:0;display:flex;overflow:hidden}.workflow-detail-canvas-mode>.source-tab-panel,.context-workspace-canvas-mode>.source-tab-panel{height:100%;min-height:0;overflow:hidden}.workflow-detail-head{border:1px solid var(--line);background:var(--panel);border-radius:8px;justify-content:space-between;align-items:flex-start;gap:28px;min-width:0;padding:22px;display:flex}.workflow-detail-head>div:first-child{gap:9px;min-width:0;display:grid}.workflow-detail-head h1{overflow-wrap:anywhere;margin:0;font-size:1.35rem;line-height:1.16}.workflow-detail-head p{max-width:820px;color:var(--muted-foreground);overflow-wrap:anywhere;margin:0;font-size:.86rem;line-height:1.42}.workflow-detail-head code{color:var(--muted-foreground);overflow-wrap:anywhere;font-size:.82rem}.workflow-detail-graph{border:1px solid var(--line);background:#050505;border-radius:8px;grid-template-rows:minmax(0,1fr);min-width:0;height:calc(100vh - 380px);min-height:520px;display:grid;position:relative;overflow:hidden}.workflow-detail-canvas-mode .workflow-detail-graph,.context-workspace-canvas-mode>.workflow-detail-graph{flex:auto;height:auto;min-height:0}.workflow-detail-graph>.workflow-graph-layout{height:100%;min-height:0}.close-button{width:34px;height:34px;color:var(--muted-foreground);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;justify-content:center;align-items:center;display:inline-flex}.close-button:hover{border-color:var(--control-border);background:var(--control-hover);color:var(--ink)}.workflow-graph-layout{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr);min-width:0;height:100%;min-height:0;max-height:100%;display:grid;overflow:hidden}.workflow-graph-layout.has-inspector{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,2fr) minmax(340px,.72fr);align-items:stretch}.workflow-graph-layout.has-inspector>.workflow-flow-canvas,.workflow-graph-layout.has-inspector>.workflow-stage-inspector{height:100%;min-height:0;max-height:100%}.workflow-flow-canvas{background:#050505;min-width:0;height:100%;min-height:0;position:relative;overflow:hidden}.workflow-flow-canvas .react-flow{background:#050505}.workflow-flow-canvas .react-flow__node{font-family:inherit}.workflow-flow-canvas .react-flow__handle{background:#050505;border:2px solid #d4d4d4;width:10px;height:10px}.workflow-flow-canvas .react-flow__edge-path{stroke-linecap:round}.workflow-flow-canvas .react-flow__controls,.workflow-flow-canvas .react-flow__minimap{border:1px solid var(--line);background:#0a0a0ae0;border-radius:8px;overflow:hidden;box-shadow:0 14px 34px #00000059}.workflow-flow-canvas .react-flow__controls-button{border-bottom:1px solid var(--line);color:var(--ink);background:#0b0b0b}.workflow-flow-canvas .react-flow__controls-button:hover{background:#181818}.workflow-flow-canvas .react-flow__minimap{background:#090909}.workflow-flow-legend{border:1px solid var(--line);min-width:210px;color:var(--muted-foreground);background:#0a0a0aeb;border-radius:8px;gap:9px;padding:12px;font-size:.78rem;display:grid}.workflow-flow-legend span{align-items:center;gap:8px;display:flex}.workflow-stage-inspector{overscroll-behavior:contain;border-left:1px solid var(--line);background:var(--panel);scrollbar-gutter:stable;scrollbar-color:#5c5c5c #111;scrollbar-width:auto;align-content:start;align-self:stretch;gap:12px;height:100%;min-height:0;max-height:100%;padding:18px 18px 76px;display:grid;overflow:hidden scroll}.workflow-stage-inspector::-webkit-scrollbar{width:12px}.workflow-stage-inspector::-webkit-scrollbar-track{border-left:1px solid var(--line);background:#111}.workflow-stage-inspector::-webkit-scrollbar-thumb{background:#5c5c5c;border:3px solid #111;border-radius:999px}.workflow-package-inspector{gap:14px}.workflow-stage-inspector .close-button{justify-self:end;width:auto;padding:0 10px;font-size:.74rem;font-weight:800}.workflow-stage-inspector h2,.workflow-stage-inspector h3,.workflow-stage-inspector p{margin:0}.workflow-stage-inspector h2{color:var(--ink);font-size:1.02rem;line-height:1.25}.workflow-stage-inspector h3{color:var(--muted-foreground);letter-spacing:.04em;text-transform:uppercase;font-size:.72rem;font-weight:850}.workflow-stage-inspector p{color:var(--muted-foreground);font-size:.8rem;line-height:1.45}.stage-drawer-meta{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.stage-drawer-section{border-top:1px solid var(--line);gap:6px;min-width:0;padding-top:10px;display:grid}.workflow-file-tree{gap:7px;min-width:0;display:grid}.workflow-file-row{border:1px solid var(--line);background:var(--panel-raised);border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0;padding:8px;display:grid}.workflow-file-main{min-width:0;color:inherit;text-align:left;background:0 0;border:0;align-items:center;gap:9px;padding:0;display:flex}button.workflow-file-main{cursor:pointer}button.workflow-file-main:hover strong{color:var(--ink)}.workflow-file-main svg{color:var(--muted-foreground);flex:none}.workflow-file-main>div{gap:2px;min-width:0;display:grid}.workflow-file-main strong,.workflow-file-main span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.workflow-file-main strong{color:var(--ink);font-size:.8rem;line-height:1.2}.workflow-file-main span{color:var(--muted-foreground);font-family:var(--font-mono);font-size:.68rem;line-height:1.25}.workflow-file-row .local-open-button{min-height:30px}.flow-node-label{text-align:center;place-items:center;gap:6px;min-width:0;padding:8px 10px;display:grid}.flow-node-label strong{color:var(--ink);overflow-wrap:anywhere;font-size:1rem;line-height:1.25}.flow-node-label span,.flow-node-label em{color:var(--muted-foreground);overflow-wrap:anywhere;font-size:.78rem;font-style:normal;line-height:1.35}.source-home-layout{grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);align-items:start;gap:16px;min-width:0;display:grid}.portable-context-layout{grid-template-columns:minmax(0,1fr)}.source-home-side{gap:16px;min-width:0;display:grid}.source-home-panel{border:1px solid var(--line);background:var(--panel);border-radius:8px;gap:14px;min-width:0;padding:14px;display:grid}.source-home-panel .file-explorer{background:0 0;border:0;padding:0}.source-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.portable-workspace-panel .source-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.source-action-group{flex-wrap:wrap;justify-content:flex-end;gap:8px;width:max-content;max-width:100%;display:inline-flex}.source-action-group .dataset-action-button{text-align:center;min-height:38px}.source-action-group .dataset-action-button:hover{border-color:var(--control-border)}.source-folder-view{grid-template-rows:auto minmax(0,1fr);height:100%;min-height:0;overflow:hidden}.source-folder-view .workspace-home-grid{height:100%;min-height:0;overflow:hidden}.source-folder-view .workspace-source-root{grid-template-rows:auto auto minmax(0,1fr);height:100%;min-height:0;overflow:hidden}.source-folder-view .workspace-source-root.empty-source-root{height:auto}.source-folder-view .workspace-source-root .file-explorer{height:100%;max-height:none}.source-folder-view .source-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.file-explorer{border:1px solid var(--line);background:var(--panel-raised);min-width:0;max-height:min(58vh,640px);font-family:var(--font-mono);scrollbar-color:var(--line-strong) transparent;scrollbar-width:thin;border-radius:8px;overflow:auto}.file-explorer-head,.file-explorer-root,.file-explorer-row{min-width:0}.file-explorer-head{z-index:1;border-bottom:1px solid var(--line);background:var(--panel-raised);justify-content:space-between;align-items:center;gap:12px;min-height:34px;padding:8px 10px;display:flex;position:sticky;top:0}.file-explorer-head span{color:var(--ink);font-family:var(--font-sans);font-size:.78rem;font-weight:850}.file-explorer-head em{color:var(--muted-foreground);white-space:nowrap;font-size:.68rem;font-style:normal}.file-explorer-root,.file-explorer-row{align-items:center;gap:7px;display:grid}.file-explorer-root{border-bottom:1px solid var(--line);background:0 0;grid-template-columns:16px minmax(0,1fr) auto;min-height:38px;padding:7px 10px}.file-explorer-items{gap:1px;padding:5px 6px 7px;display:grid}.file-explorer-row{min-height:30px;color:var(--muted-foreground);padding-block:4px;background:0 0;border:1px solid #0000;border-radius:6px;grid-template-columns:16px 16px minmax(0,1fr) auto;padding-right:7px}.file-explorer-row:hover,.file-explorer-row:focus-within{border-color:var(--line);background:var(--field)}.file-explorer-row.folder{color:var(--ink)}.file-explorer-root svg,.file-explorer-row svg{color:var(--muted-foreground);flex:none}.file-explorer-disclosure,.file-explorer-label{color:inherit;cursor:pointer;background:0 0;border:0}.file-explorer-disclosure{border-radius:4px;place-items:center;width:16px;height:16px;padding:0;display:grid}.file-explorer-disclosure:hover{background:var(--control-hover)}.file-explorer-disclosure svg{transition:transform .12s}.file-explorer-disclosure.expanded svg{transform:rotate(90deg)}.file-explorer-spacer{width:16px;height:16px}.file-explorer-root>div,.file-explorer-label,.file-explorer-row>div:not(.file-explorer-actions){text-align:left;gap:1px;min-width:0;display:grid}.file-explorer-label{padding:0}.file-explorer-root strong,.file-explorer-label strong,.file-explorer-row strong{min-width:0;color:var(--ink);font-family:var(--font-sans);text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;font-weight:800;line-height:1.2;display:block;overflow:hidden}.file-explorer-root span,.file-explorer-label span,.file-explorer-row span{min-width:0;color:var(--muted-foreground);text-overflow:ellipsis;white-space:nowrap;font-size:.66rem;line-height:1.2;display:block;overflow:hidden}.file-explorer-actions{opacity:0;pointer-events:none;justify-content:flex-end;align-items:center;min-width:46px;transition:opacity .12s;display:flex}.file-explorer-root:hover .file-explorer-actions,.file-explorer-root:focus-within .file-explorer-actions,.file-explorer-row:hover .file-explorer-actions,.file-explorer-row:focus-within .file-explorer-actions{opacity:1;pointer-events:auto}.file-explorer-actions .local-open-button{min-height:26px}.portable-empty{border:1px solid var(--line);background:var(--panel);border-radius:8px}.source-file-details{border-top:1px solid var(--line);padding-top:12px}.source-file-details summary{color:var(--ink);cursor:pointer;font-size:.86rem;font-weight:800}.source-file-list{gap:10px;max-height:320px;margin-top:12px;display:grid;overflow:auto}.source-file-list div{border-top:1px solid var(--line);gap:4px;padding:10px 0;display:grid}.source-file-list strong,.source-file-list span{overflow-wrap:anywhere;min-width:0}.source-file-list strong{color:var(--ink);font-size:.84rem}.source-file-list span{color:var(--muted-foreground);font-size:.78rem}.source-layout{gap:18px;display:grid}.workspace-home{gap:18px;min-width:0;display:grid}.workspace-home-head{justify-content:space-between;align-items:end;gap:18px;min-width:0;display:flex}.workspace-home-head>div{gap:10px;min-width:0;display:grid}.workspace-home-head h1{overflow-wrap:anywhere;margin:0;font-size:1.4rem;line-height:1.15}.workspace-home-head p{color:var(--muted-foreground);font-family:var(--font-mono);overflow-wrap:anywhere;margin:0;font-size:.84rem}.workspace-home-grid{grid-template-columns:minmax(0,.95fr) minmax(390px,.7fr);align-items:start;gap:16px;min-width:0;display:grid}.workspace-home-grid.source-only{grid-template-columns:minmax(0,1fr)}.workspace-panel{border:1px solid var(--line);background:var(--panel);border-radius:8px;gap:14px;min-width:0;padding:14px;display:grid}.workspace-source-root .file-tree-outline{max-height:min(64vh,720px)}.workspace-table-frame .workspace-table{min-width:980px}.workspace-row-actions{justify-content:flex-start}.dataset-workflow-tab{height:100%;min-height:0;overflow:hidden}.readiness-evidence-panel{border:1px solid var(--line);background:var(--panel);border-radius:8px;gap:14px;min-width:0;padding:14px;display:grid}.proof-disclosure{border:1px solid var(--line);background:var(--panel-raised);border-radius:8px;min-width:0;overflow:hidden}.proof-disclosure summary{min-width:0;color:var(--ink);cursor:pointer;justify-content:space-between;align-items:center;gap:16px;padding:12px;list-style:none;display:flex}.proof-disclosure summary::-webkit-details-marker{display:none}.proof-disclosure summary span{color:var(--ink);font-size:.88rem;font-weight:800}.proof-disclosure summary strong{color:var(--muted-foreground);font-size:.78rem}.proof-disclosure>.workflow-stage-evidence-list,.proof-disclosure>.check-stack,.proof-disclosure>.muted{margin:0 12px 12px}.compact-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.workflow-stage-evidence-list{border:1px solid var(--line);background:var(--panel-raised);border-radius:8px;gap:0;min-width:0;display:grid;overflow:hidden}.workflow-stage-evidence-list article{border-bottom:1px solid var(--line);grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px;min-width:0;padding:11px;display:grid}.workflow-stage-evidence-list article:last-child{border-bottom:0}.workflow-stage-evidence-list strong,.workflow-stage-evidence-list p,.workflow-stage-evidence-list span{overflow-wrap:anywhere}.workflow-stage-evidence-list strong{color:var(--ink);font-size:.84rem;line-height:1.25;display:block}.workflow-stage-evidence-list p,.workflow-stage-evidence-list span{color:var(--muted-foreground);margin:4px 0 0;font-size:.76rem;line-height:1.35}.compact-evidence{padding:10px}.folder-identity,.dataset-action-group,.source-section-head{align-items:flex-start;display:flex}.workspace-detail-controls{justify-content:space-between;align-items:center;gap:12px;min-width:0;display:flex}.workspace-detail-controls .source-detail-tabs{flex:0 auto;min-width:0}.context-workspace-head-actions{flex:none;justify-items:end;gap:10px;min-width:0;display:grid}.context-workspace-head-actions .local-open-button{width:auto;min-width:220px}.context-workspace-action-panel{border:1px solid var(--line);background:var(--panel-raised);border-radius:8px;justify-content:flex-end;width:max-content;min-width:0;max-width:100%;padding:10px;display:flex}.context-workspace-action-panel .dataset-action-group{flex-wrap:wrap;justify-content:flex-end;width:auto}.context-workspace-action-panel .dataset-action-button{min-height:34px;padding-inline:11px}.folder-identity{min-width:0;color:var(--muted-foreground);gap:10px}.folder-identity svg{flex:none;margin-top:3px}.folder-identity>div{gap:3px;min-width:0;display:grid}.folder-identity span{text-transform:uppercase;font-size:.72rem;font-weight:800}.folder-identity code{color:var(--muted-foreground);overflow-wrap:anywhere;font-size:.82rem}.dataset-action-group{flex-wrap:wrap;gap:8px;padding:0}.dataset-action-button{border:1px solid var(--control-border);background:var(--panel-raised);min-height:36px;color:var(--ink);cursor:pointer;white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:0 13px;font-size:.84rem;font-weight:800;line-height:1;display:inline-flex}.dataset-action-button:hover{border-color:var(--line-strong);background:var(--control-hover);color:var(--ink)}.dataset-action-button.failed{color:var(--red)}.source-detail-tabs{margin:0}.source-tab-panel{gap:16px;min-width:0;display:grid}.source-section-head{justify-content:space-between;gap:16px;padding-bottom:2px}.source-section-head h2{margin:0 0 4px;font-size:1.05rem}.source-section-head p{color:var(--muted-foreground);overflow-wrap:anywhere;margin:0;font-size:.82rem}.error-box{border:1px solid var(--red);background:var(--red-soft);border-radius:8px;gap:8px;padding:12px;display:grid}.error-box strong{color:var(--red)}.error-box code{color:var(--ink);overflow-wrap:anywhere}.key-value-list{gap:14px;display:grid}.status-badge{width:max-content;min-height:26px;color:var(--muted-foreground);white-space:nowrap;border-radius:999px;align-items:center;gap:7px;padding:0 9px;font-size:.78rem;font-weight:800;display:inline-flex}.status-badge em{color:var(--muted-foreground);font-style:normal;font-weight:650}.status-dot{background:currentColor;border-radius:99px;width:8px;height:8px;display:inline-block}.status-ok,.status-ok .status-dot{color:var(--green)}.status-run,.status-run .status-dot{color:var(--blue)}.status-wait,.status-wait .status-dot{color:var(--amber)}.status-fail,.status-fail .status-dot{color:var(--red)}.status-skip,.status-skip .status-dot,.status-idle,.status-idle .status-dot{color:var(--muted-foreground)}@media (max-width:1100px){:root{--page-gutter:24px}.content-shell{padding-inline:var(--page-gutter)}.top-nav,.run-overview,.workflow-detail-head,.page-head,.workspace-home-head,.workspace-detail-controls{flex-direction:column;align-items:stretch}.nav-actions,.filter-controls,.source-action-group{justify-content:flex-start}.runs-head-controls{justify-content:flex-start;width:100%}.run-status-filter-row{grid-template-columns:repeat(3,minmax(0,1fr))}.context-workspace-head-actions{width:100%}.run-metadata,.run-context-panel,.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tab-grid,.workflow-layout,.workflow-graph-layout.has-inspector,.workspace-home-grid,.source-home-layout{grid-template-columns:1fr}.workflow-stage-inspector{border-top:1px solid var(--line);border-left:0}.source-metrics,.portable-workspace-panel .source-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.agent-chat-panel{width:calc(100vw - 24px);height:min(560px,100dvh - 92px);bottom:80px;right:12px}.agent-launcher{bottom:12px;right:12px}.action-dialog-backdrop{align-items:end;padding:12px}.action-dialog{width:100%;max-height:calc(100dvh - 24px)}}@media (max-width:680px){:root{--page-gutter:12px}.content-shell{padding-inline:var(--page-gutter)}.top-nav{padding:14px 16px}.brand-row{flex-wrap:wrap}.local-path{flex-basis:100%}.segmented-tabs,.detail-tabs{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid}.segmented-tabs button,.detail-tabs button{min-width:0}.runs-head-controls,.run-status-filter-row{grid-template-columns:1fr;display:grid}.runs-head-controls label,.runs-head-controls label:not(.runs-search-field),.runs-search-field{flex:auto}.run-detail,.detail-panel{padding:14px}.run-metadata,.run-context-panel,.metric-grid,.agent-control-grid,.source-metrics{grid-template-columns:1fr}.context-workspace-action-panel .dataset-action-group,.source-action-group{justify-content:stretch;width:100%}.context-workspace-action-panel{width:100%}.source-action-group .dataset-action-button,.context-workspace-action-panel .dataset-action-button,.context-workspace-head-actions .local-open-button{flex:100%}.source-home-layout{grid-template-columns:1fr;gap:5px;display:grid}.action-dialog-head,.action-dialog-actions{flex-direction:column;align-items:stretch}.action-dialog-actions .toolbar-button,.action-dialog-actions .dataset-action-button{width:100%}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@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-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{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}@property --tw-duration{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,68405,e=>{"use strict";var i=e.i(20982);e.s([],49974),e.i(49974),e.s(["Mermaid",()=>i.e],68405)}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,{otherChunks:["static/chunks/0gpzgsv0w.q~m.js","static/chunks/0ti_66mx7~w2-.js","static/chunks/0ilwfezfvu6~-.js"],runtimeModuleIds:[54940]}]),(()=>{let e;if(!Array.isArray(globalThis.TURBOPACK))return;let t="/_next/",r=function(){if(null!=self.TURBOPACK_ASSET_SUFFIX)return self.TURBOPACK_ASSET_SUFFIX;let e=document?.currentScript?.getAttribute?.("src")??"",t=e.indexOf("?");return t>=0?e.slice(t):""}(),n=["NEXT_DEPLOYMENT_ID","NEXT_CLIENT_ASSET_SUFFIX"];var o,i=((o=i||{})[o.Runtime=0]="Runtime",o[o.Parent=1]="Parent",o[o.Update=2]="Update",o);let l=new WeakMap;function s(e,t){this.m=e,this.e=t}let u=s.prototype,a=Object.prototype.hasOwnProperty,c="u">typeof Symbol&&Symbol.toStringTag;function f(e,t,r){a.call(e,t)||Object.defineProperty(e,t,r)}function p(e,t){let r=e[t];return r||(r=h(t),e[t]=r),r}function h(e){return{exports:{},error:void 0,id:e,namespaceObject:void 0}}function d(e,t){f(e,"__esModule",{value:!0}),c&&f(e,c,{value:"Module"});let r=0;for(;r<t.length;){let n=t[r++],o=t[r++];if("number"==typeof o)if(0===o)f(e,n,{value:t[r++],enumerable:!0,writable:!1});else throw Error(`unexpected tag: ${o}`);else"function"==typeof t[r]?f(e,n,{get:o,set:t[r++],enumerable:!0}):f(e,n,{get:o,enumerable:!0})}Object.seal(e)}function m(e,t){(null!=t?p(this.c,t):this.m).exports=e}u.s=function(e,t){let r,n;null!=t?n=(r=p(this.c,t)).exports:(r=this.m,n=this.e),r.namespaceObject=n,d(n,e)},u.j=function(e,t){var r,n;let o,i,s;null!=t?i=(o=p(this.c,t)).exports:(o=this.m,i=this.e);let u=(r=o,n=i,(s=l.get(r))||(l.set(r,s=[]),r.exports=r.namespaceObject=new Proxy(n,{get(e,t){if(a.call(e,t)||"default"===t||"__esModule"===t)return Reflect.get(e,t);for(let e of s){let r=Reflect.get(e,t);if(void 0!==r)return r}},ownKeys(e){let t=Reflect.ownKeys(e);for(let e of s)for(let r of Reflect.ownKeys(e))"default"===r||t.includes(r)||t.push(r);return t}})),s);"object"==typeof e&&null!==e&&u.push(e)},u.v=m,u.n=function(e,t){let r;(r=null!=t?p(this.c,t):this.m).exports=r.namespaceObject=e};let b=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,y=[null,b({}),b([]),b(b)];function g(e,t,r){let n=[],o=-1;for(let t=e;("object"==typeof t||"function"==typeof t)&&!y.includes(t);t=b(t))for(let r of Object.getOwnPropertyNames(t))n.push(r,function(e,t){return()=>e[t]}(e,r)),-1===o&&"default"===r&&(o=n.length-1);return r&&o>=0||(o>=0?n.splice(o,1,0,e):n.push("default",0,e)),d(t,n),t}function w(e){let t=B(e,this.m);if(t.namespaceObject)return t.namespaceObject;let r=t.exports;return t.namespaceObject=g(r,"function"==typeof r?function(...e){return r.apply(this,e)}:Object.create(null),r&&r.__esModule)}function O(e){let t=e.indexOf("#");-1!==t&&(e=e.substring(0,t));let r=e.indexOf("?");return -1!==r&&(e=e.substring(0,r)),e}function j(){let e,t;return{promise:new Promise((r,n)=>{t=n,e=r}),resolve:e,reject:t}}u.i=w,u.A=function(e){return this.r(e)(w.bind(this))},u.t="function"==typeof require?require:function(){throw Error("Unexpected use of runtime require")},u.r=function(e){return B(e,this.m).exports},u.f=function(e){function t(t){if(t=O(t),a.call(e,t))return e[t].module();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r}return t.keys=()=>Object.keys(e),t.resolve=t=>{if(t=O(t),a.call(e,t))return e[t].id();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r},t.import=async e=>await t(e),t};let k=Symbol("turbopack queues"),v=Symbol("turbopack exports"),U=Symbol("turbopack error");function C(e){e&&1!==e.status&&(e.status=1,e.forEach(e=>e.queueCount--),e.forEach(e=>e.queueCount--?e.queueCount++:e()))}u.a=function(e,t){let r=this.m,n=t?Object.assign([],{status:-1}):void 0,o=new Set,{resolve:i,reject:l,promise:s}=j(),u=Object.assign(s,{[v]:r.exports,[k]:e=>{n&&e(n),o.forEach(e),u.catch(()=>{})}}),a={get:()=>u,set(e){e!==u&&(u[v]=e)}};Object.defineProperty(r,"exports",a),Object.defineProperty(r,"namespaceObject",a),e(function(e){let t=e.map(e=>{if(null!==e&&"object"==typeof e){if(k in e)return e;if(null!=e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then){let t=Object.assign([],{status:0}),r={[v]:{},[k]:e=>e(t)};return e.then(e=>{r[v]=e,C(t)},e=>{r[U]=e,C(t)}),r}}return{[v]:e,[k]:()=>{}}}),r=()=>t.map(e=>{if(e[U])throw e[U];return e[v]}),{promise:i,resolve:l}=j(),s=Object.assign(()=>l(r),{queueCount:0});function u(e){e!==n&&!o.has(e)&&(o.add(e),e&&0===e.status&&(s.queueCount++,e.push(s)))}return t.map(e=>e[k](u)),s.queueCount?i:r()},function(e){e?l(u[U]=e):i(u[v]),C(n)}),n&&-1===n.status&&(n.status=0)};let P=function(e){let t=new URL(e,"x:/"),r={};for(let e in t)r[e]=t[e];for(let t in r.href=e,r.pathname=e.replace(/[?#].*/,""),r.origin=r.protocol="",r.toString=r.toJSON=(...t)=>e,r)Object.defineProperty(this,t,{enumerable:!0,configurable:!0,value:r[t]})};function R(e,t){throw Error(`Invariant: ${t(e)}`)}P.prototype=URL.prototype,u.U=P,u.z=function(e){throw Error("dynamic usage of require is not supported")},u.g=globalThis;let S=s.prototype,$=new Map;u.M=$;let _=new Map,E=new Map;async function T(e,t,r){let n;if("string"==typeof r)return M(e,t,N(r));let o=r.included||[],i=o.map(e=>!!$.has(e)||_.get(e));if(i.length>0&&i.every(e=>e))return void await Promise.all(i);let l=r.moduleChunks||[],s=l.map(e=>E.get(e)).filter(e=>e);if(s.length>0){if(s.length===l.length)return void await Promise.all(s);let r=new Set;for(let e of l)E.has(e)||r.add(e);for(let n of r){let r=M(e,t,N(n));E.set(n,r),s.push(r)}n=Promise.all(s)}else{for(let o of(n=M(e,t,N(r.path)),l))E.has(o)||E.set(o,n)}for(let e of o)_.has(e)||_.set(e,n);await n}S.l=function(e){return T(i.Parent,this.m.id,e)};let A=Promise.resolve(void 0),x=new WeakMap;function M(t,r,n){let o=e.loadChunkCached(t,n),l=x.get(o);if(void 0===l){let e=x.set.bind(x,o,A);l=o.then(e).catch(e=>{let o;switch(t){case i.Runtime:o=`as a runtime dependency of chunk ${r}`;break;case i.Parent:o=`from module ${r}`;break;case i.Update:o="from an HMR update";break;default:R(t,e=>`Unknown source type: ${e}`)}let l=Error(`Failed to load chunk ${n} ${o}${e?`: ${e}`:""}`,e?{cause:e}:void 0);throw l.name="ChunkLoadError",l}),x.set(o,l)}return l}function N(e){return`${t}${e.split("/").map(e=>encodeURIComponent(e)).join("/")}${r}`}S.L=function(e){return M(i.Parent,this.m.id,e)},S.R=function(e){let t=this.r(e);return t?.default??t},S.P=function(e){return`/ROOT/${e??""}`},S.q=function(e,t){m.call(this,`${e}${r}`,t)},S.b=function(e,t,o,i){let l="SharedWorker"===e.name,s=[o.map(e=>N(e)).reverse(),r];for(let e of n)s.push(globalThis[e]);let u=new URL(N(t),location.origin),a=JSON.stringify(s);return l?u.searchParams.set("params",a):u.hash="#params="+encodeURIComponent(a),new e(u,i?{...i,type:void 0}:void 0)};let q=/\.js(?:\?[^#]*)?(?:#.*)?$/,K=/\.css(?:\?[^#]*)?(?:#.*)?$/;function L(e){return K.test(e)}u.w=function(t,r,n){return e.loadWebAssembly(i.Parent,this.m.id,t,r,n)},u.u=function(t,r){return e.loadWebAssemblyModule(i.Parent,this.m.id,t,r)};let I={};u.c=I;let B=(e,t)=>{let r=I[e];if(r){if(r.error)throw r.error;return r}return W(e,i.Parent,t.id)};function W(e,t,r){let n=$.get(e);if("function"!=typeof n)throw Error(function(e,t,r){let n;switch(t){case 0:n=`as a runtime entry of chunk ${r}`;break;case 1:n=`because it was required from module ${r}`;break;case 2:n="because of an HMR update";break;default:R(t,e=>`Unknown source type: ${e}`)}return`Module ${e} was instantiated ${n}, but the module factory is not available.`}(e,t,r));let o=h(e),i=o.exports;I[e]=o;let l=new s(o,i);try{n(l,o,i)}catch(e){throw o.error=e,e}return o.namespaceObject&&o.exports!==o.namespaceObject&&g(o.exports,o.namespaceObject),o}function F(t){let r,n=function(e){if("string"==typeof e)return e;if(e)return{src:e.getAttribute("src")};if("u">typeof TURBOPACK_NEXT_CHUNK_URLS)return{src:TURBOPACK_NEXT_CHUNK_URLS.pop()};throw Error("chunk path empty but not in a worker")}(t[0]);return 2===t.length?r=t[1]:(r=void 0,!function(e,t){let r=1;for(;r<e.length;){let n,o=r+1;for(;o<e.length&&"function"!=typeof e[o];)o++;if(o===e.length)throw Error("malformed chunk format, expected a factory function");let i=e[o];for(let i=r;i<o;i++){let r=e[i],o=t.get(r);if(o){n=o;break}}let l=n??i,s=!1;for(let n=r;n<o;n++){let r=e[n];t.has(r)||(s||(l===i&&Object.defineProperty(i,"name",{value:"module evaluation"}),s=!0),t.set(r,l))}r=o+1}}(t,$)),e.registerChunk(n,r)}let X=new Map;function D(e){let t=X.get(e);if(!t){let r,n;t={resolved:!1,loadingStarted:!1,promise:new Promise((e,t)=>{r=e,n=t}),resolve:()=>{t.resolved=!0,r()},reject:n},X.set(e,t)}return t}e={async registerChunk(e,r){let n=function(e){if("string"==typeof e)return e;let r=decodeURIComponent(e.src.replace(/[?#].*$/,""));return r.startsWith(t)?r.slice(t.length):r}(e);if(D("string"==typeof e?N(e):e.src).resolve(),null!=r){for(let e of r.otherChunks)D(N("string"==typeof e?e:e.path));if(await Promise.all(r.otherChunks.map(e=>T(i.Runtime,n,e))),r.runtimeModuleIds.length>0)for(let e of r.runtimeModuleIds)!function(e,t){let r=I[t];if(r){if(r.error)throw r.error;return}W(t,i.Runtime,e)}(n,e)}},loadChunkCached:(e,t)=>(function(e,t){let r=D(t);if(r.loadingStarted)return r.promise;if(e===i.Runtime)return r.loadingStarted=!0,L(t)&&r.resolve(),r.promise;if("function"==typeof importScripts)if(L(t));else if(q.test(t))self.TURBOPACK_NEXT_CHUNK_URLS.push(t),importScripts(t);else throw Error(`can't infer type of chunk from URL ${t} in worker`);else{let e=decodeURI(t);if(L(t))if(document.querySelectorAll(`link[rel=stylesheet][href="${t}"],link[rel=stylesheet][href^="${t}?"],link[rel=stylesheet][href="${e}"],link[rel=stylesheet][href^="${e}?"]`).length>0)r.resolve();else{let e=document.createElement("link");e.rel="stylesheet",e.href=t,e.onerror=()=>{r.reject()},e.onload=()=>{r.resolve()},document.head.appendChild(e)}else if(q.test(t)){let n=document.querySelectorAll(`script[src="${t}"],script[src^="${t}?"],script[src="${e}"],script[src^="${e}?"]`);if(n.length>0)for(let e of Array.from(n))e.addEventListener("error",()=>{r.reject()});else{let e=document.createElement("script");e.src=t,e.onerror=()=>{r.reject()},document.head.appendChild(e)}}else throw Error(`can't infer type of chunk from URL ${t}`)}return r.loadingStarted=!0,r.promise})(e,t),async loadWebAssembly(e,t,r,n,o){let i=fetch(N(r)),{instance:l}=await WebAssembly.instantiateStreaming(i,o);return l.exports},async loadWebAssemblyModule(e,t,r,n){let o=fetch(N(r));return await WebAssembly.compileStreaming(o)}};let H=globalThis.TURBOPACK;globalThis.TURBOPACK={push:F},H.forEach(F)})();
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,{otherChunks:["static/chunks/0b52v41o1gixx.js","static/chunks/0_i-3_5l9t2qe.js"],runtimeModuleIds:[12331]}]),(()=>{let e;if(!Array.isArray(globalThis.TURBOPACK))return;let t="/_next/",r=function(){if(null!=self.TURBOPACK_ASSET_SUFFIX)return self.TURBOPACK_ASSET_SUFFIX;let e=document?.currentScript?.getAttribute?.("src")??"",t=e.indexOf("?");return t>=0?e.slice(t):""}(),n=["NEXT_DEPLOYMENT_ID","NEXT_CLIENT_ASSET_SUFFIX"];var o,i=((o=i||{})[o.Runtime=0]="Runtime",o[o.Parent=1]="Parent",o[o.Update=2]="Update",o);let l=new WeakMap;function u(e,t){this.m=e,this.e=t}let s=u.prototype,a=Object.prototype.hasOwnProperty,c="u">typeof Symbol&&Symbol.toStringTag;function f(e,t,r){a.call(e,t)||Object.defineProperty(e,t,r)}function p(e,t){let r=e[t];return r||(r=h(t),e[t]=r),r}function h(e){return{exports:{},error:void 0,id:e,namespaceObject:void 0}}function d(e,t){f(e,"__esModule",{value:!0}),c&&f(e,c,{value:"Module"});let r=0;for(;r<t.length;){let n=t[r++],o=t[r++];if("number"==typeof o)if(0===o)f(e,n,{value:t[r++],enumerable:!0,writable:!1});else throw Error(`unexpected tag: ${o}`);else"function"==typeof t[r]?f(e,n,{get:o,set:t[r++],enumerable:!0}):f(e,n,{get:o,enumerable:!0})}Object.seal(e)}function m(e,t){(null!=t?p(this.c,t):this.m).exports=e}s.s=function(e,t){let r,n;null!=t?n=(r=p(this.c,t)).exports:(r=this.m,n=this.e),r.namespaceObject=n,d(n,e)},s.j=function(e,t){var r,n;let o,i,u;null!=t?i=(o=p(this.c,t)).exports:(o=this.m,i=this.e);let s=(r=o,n=i,(u=l.get(r))||(l.set(r,u=[]),r.exports=r.namespaceObject=new Proxy(n,{get(e,t){if(a.call(e,t)||"default"===t||"__esModule"===t)return Reflect.get(e,t);for(let e of u){let r=Reflect.get(e,t);if(void 0!==r)return r}},ownKeys(e){let t=Reflect.ownKeys(e);for(let e of u)for(let r of Reflect.ownKeys(e))"default"===r||t.includes(r)||t.push(r);return t}})),u);"object"==typeof e&&null!==e&&s.push(e)},s.v=m,s.n=function(e,t){let r;(r=null!=t?p(this.c,t):this.m).exports=r.namespaceObject=e};let b=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,y=[null,b({}),b([]),b(b)];function g(e,t,r){let n=[],o=-1;for(let t=e;("object"==typeof t||"function"==typeof t)&&!y.includes(t);t=b(t))for(let r of Object.getOwnPropertyNames(t))n.push(r,function(e,t){return()=>e[t]}(e,r)),-1===o&&"default"===r&&(o=n.length-1);return r&&o>=0||(o>=0?n.splice(o,1,0,e):n.push("default",0,e)),d(t,n),t}function O(e){let t=B(e,this.m);if(t.namespaceObject)return t.namespaceObject;let r=t.exports;return t.namespaceObject=g(r,"function"==typeof r?function(...e){return r.apply(this,e)}:Object.create(null),r&&r.__esModule)}function w(e){let t=e.indexOf("#");-1!==t&&(e=e.substring(0,t));let r=e.indexOf("?");return -1!==r&&(e=e.substring(0,r)),e}function j(){let e,t;return{promise:new Promise((r,n)=>{t=n,e=r}),resolve:e,reject:t}}s.i=O,s.A=function(e){return this.r(e)(O.bind(this))},s.t="function"==typeof require?require:function(){throw Error("Unexpected use of runtime require")},s.r=function(e){return B(e,this.m).exports},s.f=function(e){function t(t){if(t=w(t),a.call(e,t))return e[t].module();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r}return t.keys=()=>Object.keys(e),t.resolve=t=>{if(t=w(t),a.call(e,t))return e[t].id();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r},t.import=async e=>await t(e),t};let k=Symbol("turbopack queues"),U=Symbol("turbopack exports"),v=Symbol("turbopack error");function C(e){e&&1!==e.status&&(e.status=1,e.forEach(e=>e.queueCount--),e.forEach(e=>e.queueCount--?e.queueCount++:e()))}s.a=function(e,t){let r=this.m,n=t?Object.assign([],{status:-1}):void 0,o=new Set,{resolve:i,reject:l,promise:u}=j(),s=Object.assign(u,{[U]:r.exports,[k]:e=>{n&&e(n),o.forEach(e),s.catch(()=>{})}}),a={get:()=>s,set(e){e!==s&&(s[U]=e)}};Object.defineProperty(r,"exports",a),Object.defineProperty(r,"namespaceObject",a),e(function(e){let t=e.map(e=>{if(null!==e&&"object"==typeof e){if(k in e)return e;if(null!=e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then){let t=Object.assign([],{status:0}),r={[U]:{},[k]:e=>e(t)};return e.then(e=>{r[U]=e,C(t)},e=>{r[v]=e,C(t)}),r}}return{[U]:e,[k]:()=>{}}}),r=()=>t.map(e=>{if(e[v])throw e[v];return e[U]}),{promise:i,resolve:l}=j(),u=Object.assign(()=>l(r),{queueCount:0});function s(e){e!==n&&!o.has(e)&&(o.add(e),e&&0===e.status&&(u.queueCount++,e.push(u)))}return t.map(e=>e[k](s)),u.queueCount?i:r()},function(e){e?l(s[v]=e):i(s[U]),C(n)}),n&&-1===n.status&&(n.status=0)};let P=function(e){let t=new URL(e,"x:/"),r={};for(let e in t)r[e]=t[e];for(let t in r.href=e,r.pathname=e.replace(/[?#].*/,""),r.origin=r.protocol="",r.toString=r.toJSON=(...t)=>e,r)Object.defineProperty(this,t,{enumerable:!0,configurable:!0,value:r[t]})};function R(e,t){throw Error(`Invariant: ${t(e)}`)}P.prototype=URL.prototype,s.U=P,s.z=function(e){throw Error("dynamic usage of require is not supported")},s.g=globalThis;let S=u.prototype,$=new Map;s.M=$;let _=new Map,E=new Map;async function T(e,t,r){let n;if("string"==typeof r)return M(e,t,N(r));let o=r.included||[],i=o.map(e=>!!$.has(e)||_.get(e));if(i.length>0&&i.every(e=>e))return void await Promise.all(i);let l=r.moduleChunks||[],u=l.map(e=>E.get(e)).filter(e=>e);if(u.length>0){if(u.length===l.length)return void await Promise.all(u);let r=new Set;for(let e of l)E.has(e)||r.add(e);for(let n of r){let r=M(e,t,N(n));E.set(n,r),u.push(r)}n=Promise.all(u)}else{for(let o of(n=M(e,t,N(r.path)),l))E.has(o)||E.set(o,n)}for(let e of o)_.has(e)||_.set(e,n);await n}S.l=function(e){return T(i.Parent,this.m.id,e)};let A=Promise.resolve(void 0),x=new WeakMap;function M(t,r,n){let o=e.loadChunkCached(t,n),l=x.get(o);if(void 0===l){let e=x.set.bind(x,o,A);l=o.then(e).catch(e=>{let o;switch(t){case i.Runtime:o=`as a runtime dependency of chunk ${r}`;break;case i.Parent:o=`from module ${r}`;break;case i.Update:o="from an HMR update";break;default:R(t,e=>`Unknown source type: ${e}`)}let l=Error(`Failed to load chunk ${n} ${o}${e?`: ${e}`:""}`,e?{cause:e}:void 0);throw l.name="ChunkLoadError",l}),x.set(o,l)}return l}function N(e){return`${t}${e.split("/").map(e=>encodeURIComponent(e)).join("/")}${r}`}S.L=function(e){return M(i.Parent,this.m.id,e)},S.R=function(e){let t=this.r(e);return t?.default??t},S.P=function(e){return`/ROOT/${e??""}`},S.q=function(e,t){m.call(this,`${e}${r}`,t)},S.b=function(e,t,o,i){let l="SharedWorker"===e.name,u=[o.map(e=>N(e)).reverse(),r];for(let e of n)u.push(globalThis[e]);let s=new URL(N(t),location.origin),a=JSON.stringify(u);return l?s.searchParams.set("params",a):s.hash="#params="+encodeURIComponent(a),new e(s,i?{...i,type:void 0}:void 0)};let q=/\.js(?:\?[^#]*)?(?:#.*)?$/,K=/\.css(?:\?[^#]*)?(?:#.*)?$/;function L(e){return K.test(e)}s.w=function(t,r,n){return e.loadWebAssembly(i.Parent,this.m.id,t,r,n)},s.u=function(t,r){return e.loadWebAssemblyModule(i.Parent,this.m.id,t,r)};let I={};s.c=I;let B=(e,t)=>{let r=I[e];if(r){if(r.error)throw r.error;return r}return W(e,i.Parent,t.id)};function W(e,t,r){let n=$.get(e);if("function"!=typeof n)throw Error(function(e,t,r){let n;switch(t){case 0:n=`as a runtime entry of chunk ${r}`;break;case 1:n=`because it was required from module ${r}`;break;case 2:n="because of an HMR update";break;default:R(t,e=>`Unknown source type: ${e}`)}return`Module ${e} was instantiated ${n}, but the module factory is not available.`}(e,t,r));let o=h(e),i=o.exports;I[e]=o;let l=new u(o,i);try{n(l,o,i)}catch(e){throw o.error=e,e}return o.namespaceObject&&o.exports!==o.namespaceObject&&g(o.exports,o.namespaceObject),o}function F(t){let r,n=function(e){if("string"==typeof e)return e;if(e)return{src:e.getAttribute("src")};if("u">typeof TURBOPACK_NEXT_CHUNK_URLS)return{src:TURBOPACK_NEXT_CHUNK_URLS.pop()};throw Error("chunk path empty but not in a worker")}(t[0]);return 2===t.length?r=t[1]:(r=void 0,!function(e,t){let r=1;for(;r<e.length;){let n,o=r+1;for(;o<e.length&&"function"!=typeof e[o];)o++;if(o===e.length)throw Error("malformed chunk format, expected a factory function");let i=e[o];for(let i=r;i<o;i++){let r=e[i],o=t.get(r);if(o){n=o;break}}let l=n??i,u=!1;for(let n=r;n<o;n++){let r=e[n];t.has(r)||(u||(l===i&&Object.defineProperty(i,"name",{value:"module evaluation"}),u=!0),t.set(r,l))}r=o+1}}(t,$)),e.registerChunk(n,r)}let X=new Map;function D(e){let t=X.get(e);if(!t){let r,n;t={resolved:!1,loadingStarted:!1,promise:new Promise((e,t)=>{r=e,n=t}),resolve:()=>{t.resolved=!0,r()},reject:n},X.set(e,t)}return t}e={async registerChunk(e,r){let n=function(e){if("string"==typeof e)return e;let r=decodeURIComponent(e.src.replace(/[?#].*$/,""));return r.startsWith(t)?r.slice(t.length):r}(e);if(D("string"==typeof e?N(e):e.src).resolve(),null!=r){for(let e of r.otherChunks)D(N("string"==typeof e?e:e.path));if(await Promise.all(r.otherChunks.map(e=>T(i.Runtime,n,e))),r.runtimeModuleIds.length>0)for(let e of r.runtimeModuleIds)!function(e,t){let r=I[t];if(r){if(r.error)throw r.error;return}W(t,i.Runtime,e)}(n,e)}},loadChunkCached:(e,t)=>(function(e,t){let r=D(t);if(r.loadingStarted)return r.promise;if(e===i.Runtime)return r.loadingStarted=!0,L(t)&&r.resolve(),r.promise;if("function"==typeof importScripts)if(L(t));else if(q.test(t))self.TURBOPACK_NEXT_CHUNK_URLS.push(t),importScripts(t);else throw Error(`can't infer type of chunk from URL ${t} in worker`);else{let e=decodeURI(t);if(L(t))if(document.querySelectorAll(`link[rel=stylesheet][href="${t}"],link[rel=stylesheet][href^="${t}?"],link[rel=stylesheet][href="${e}"],link[rel=stylesheet][href^="${e}?"]`).length>0)r.resolve();else{let e=document.createElement("link");e.rel="stylesheet",e.href=t,e.onerror=()=>{r.reject()},e.onload=()=>{r.resolve()},document.head.appendChild(e)}else if(q.test(t)){let n=document.querySelectorAll(`script[src="${t}"],script[src^="${t}?"],script[src="${e}"],script[src^="${e}?"]`);if(n.length>0)for(let e of Array.from(n))e.addEventListener("error",()=>{r.reject()});else{let e=document.createElement("script");e.src=t,e.onerror=()=>{r.reject()},document.head.appendChild(e)}}else throw Error(`can't infer type of chunk from URL ${t}`)}return r.loadingStarted=!0,r.promise})(e,t),async loadWebAssembly(e,t,r,n,o){let i=fetch(N(r)),{instance:l}=await WebAssembly.instantiateStreaming(i,o);return l.exports},async loadWebAssemblyModule(e,t,r,n){let o=fetch(N(r));return await WebAssembly.compileStreaming(o)}};let H=globalThis.TURBOPACK;globalThis.TURBOPACK={push:F},H.forEach(F)})();
@@ -0,0 +1 @@
1
+ !function(){function r(r){throw console.error(r),Error(r)}void 0!==self.WorkerGlobalScope&&self instanceof self.WorkerGlobalScope||r("Worker entrypoint must be loaded in a worker context");var o=new URL(location.href),e=o.searchParams.get("params");!e&&o.hash.startsWith("#params=")&&(e=decodeURIComponent(o.hash.slice(8))),e||r("Missing worker bootstrap config");var i=JSON.parse(e),n=r=>"string"==typeof i[r]?i[r]:"",s=Array.isArray(i[0])?i[0]:[];if(Object.assign(self,{TURBOPACK_NEXT_CHUNK_URLS:s,TURBOPACK_ASSET_SUFFIX:n(1),NEXT_DEPLOYMENT_ID:n(2),NEXT_CLIENT_ASSET_SUFFIX:n(3)}),s.length>0){for(var t=[],a=0;a<s.length;a++){var l=new URL(s[a],location.origin);l.origin!==location.origin&&r("Refusing to load script from foreign origin: "+l.origin),t.push(l.toString())}s.reverse(),importScripts.apply(self,t)}}();
@@ -0,0 +1,109 @@
1
+ import { addToRow } from './util/tree';
2
+ // The most recent requestId
3
+ let requestId = 0;
4
+ self.addEventListener('message', (event) => {
5
+ const data = event.data;
6
+ requestId = Math.max(requestId, data?.requestId || 0);
7
+ switch (data.type) {
8
+ case 'calculateSpanPositions':
9
+ calculateSpanPositions(data.root);
10
+ break;
11
+ case 'filterSpans':
12
+ filterSpans(data.root, data.filter);
13
+ break;
14
+ default:
15
+ break;
16
+ }
17
+ });
18
+ const positionHelper = (node, pending) => {
19
+ if ('parent' in node) {
20
+ const n = node;
21
+ n.row = -1;
22
+ n.isVisible = true;
23
+ pending.push(n);
24
+ }
25
+ const sortedChildren = node.children
26
+ .slice()
27
+ .sort((a, b) => a.startTime - b.startTime || b.duration - a.duration);
28
+ for (const child of sortedChildren) {
29
+ positionHelper(child, pending);
30
+ }
31
+ };
32
+ const calculateSpanPositions = (root) => {
33
+ const responseId = requestId;
34
+ const placed = [];
35
+ const pending = [];
36
+ positionHelper(root, pending);
37
+ let lastFlushT = Date.now() - 10;
38
+ let lastFlushC = -64;
39
+ let count = 0;
40
+ const flush = () => {
41
+ for (const row of placed) {
42
+ row.sort((a, b) => a.startTime - b.startTime);
43
+ }
44
+ const message = {
45
+ requestId: responseId,
46
+ type: 'setRowsResult',
47
+ rows: placed,
48
+ isEnd: !pending.length,
49
+ };
50
+ postMessage(message);
51
+ lastFlushT = Date.now();
52
+ lastFlushC = count;
53
+ };
54
+ while (true) {
55
+ const node = pending.shift();
56
+ if (!node) {
57
+ flush();
58
+ return;
59
+ }
60
+ addToRow(placed, node, 0.001);
61
+ ++count;
62
+ if (Date.now() - lastFlushT >= 15 || count - lastFlushC >= 256) {
63
+ flush();
64
+ }
65
+ }
66
+ };
67
+ const ATTR_FILTER_REGEX = /(?<=^|\s)(?<pair>(?<key>[\w.]+):(?<value>\S*))/g;
68
+ const filterSpans = (root, filter) => {
69
+ const responseId = requestId;
70
+ const matches = new Set();
71
+ const name = filter
72
+ .replace(ATTR_FILTER_REGEX, '')
73
+ .replace(/\s{2,}/g, ' ')
74
+ .trim();
75
+ const attrs = [];
76
+ for (const m of filter.matchAll(ATTR_FILTER_REGEX)) {
77
+ const { key = '', value = '' } = m.groups || {};
78
+ attrs.push([key, value.toLocaleLowerCase()]);
79
+ }
80
+ const match = (span) => {
81
+ const nameMatch = span.name.toLocaleLowerCase().includes(name) ||
82
+ span.spanId.toLocaleLowerCase().includes(name);
83
+ if (!nameMatch)
84
+ return false;
85
+ // TODO: support resource attribute filtering
86
+ return attrs.every(([key, value]) => {
87
+ const v = span.attributes[key];
88
+ if (!v)
89
+ return false;
90
+ return String(v).toLocaleLowerCase().includes(value);
91
+ });
92
+ };
93
+ const helper = (node) => {
94
+ for (const child of node.children) {
95
+ if (match(child.span)) {
96
+ matches.add(child.span.spanId);
97
+ }
98
+ helper(child);
99
+ }
100
+ };
101
+ helper(root);
102
+ const message = {
103
+ requestId: responseId,
104
+ type: 'updateHighlight',
105
+ matches,
106
+ };
107
+ postMessage(message);
108
+ };
109
+ //# sourceMappingURL=worker.js.map
@@ -1,11 +1,11 @@
1
- # Interf (Built-in Workflow)
1
+ # Built-in Interf Method
2
2
 
3
- Interf's built-in workflow: summarize source-grounded evidence, structure the cross-file layer, then shape the final portable context around its task focus and checks.
3
+ Built-in file-processing Method: summarize source-grounded evidence, structure cross-file connections, and shape portable context around the saved readiness checks.
4
4
 
5
5
  ## Purpose
6
6
 
7
- - General portable-context workflow for agent use
8
- - Compile mixed raw files into evidence-backed summaries, cross-file structure, and a usable entrypoint for agents answering the questions this task depends on.
7
+ - General portable-context Method for agent use
8
+ - Compile mixed raw files into evidence-backed summaries, cross-file structure, and a usable entrypoint for agents running the readiness checks this task depends on.
9
9
 
10
10
  ## Zones
11
11
 
@@ -14,18 +14,18 @@ Interf's built-in workflow: summarize source-grounded evidence, structure the cr
14
14
  - `knowledge-entities` — output directory at `knowledge/entities`
15
15
  - `knowledge-claims` — output directory at `knowledge/claims`
16
16
  - `knowledge-indexes` — output directory at `knowledge/indexes`
17
- - `home` — output file at `home.md` used as the primary entrypoint for this workflow
17
+ - `home` — output file at `home.md` used as the primary entrypoint for this Method
18
18
  - `runtime` — runtime zone at `.interf/runtime`
19
19
 
20
20
  ## Stages
21
21
 
22
22
  - `summarize` — Turn source files into per-file summaries. (compiled-file-evidence; reads: raw, runtime; writes: summaries)
23
23
  - `structure` — Build the cross-file knowledge structure from the summaries. (compiled-knowledge-structure; reads: summaries, runtime; writes: knowledge-entities, knowledge-claims, knowledge-indexes)
24
- - `shape` — Shape the final portable context around the saved task focus and checks. (compiled-query-shape; reads: raw, summaries, knowledge-entities, knowledge-claims, knowledge-indexes, runtime; writes: knowledge-indexes, home)
24
+ - `shape` — Shape the final portable context around the saved task focus and readiness checks. (compiled-query-shape; reads: raw, summaries, knowledge-entities, knowledge-claims, knowledge-indexes, runtime; writes: knowledge-indexes, home)
25
25
 
26
26
  ## Why `home.md` exists here
27
27
 
28
- This built-in workflow creates `home.md` as the main agent entrypoint for the portable context.
29
- That is behavior of the `interf` workflow, not a compiler-wide rule.
28
+ This built-in Method creates `home.md` as the main agent entrypoint for the portable context.
29
+ That is behavior of the `interf` Method, not a compiler-wide rule.
30
30
 
31
31
  This package is the built-in seed for `interf`.
@@ -1,12 +1,12 @@
1
1
  # Shape
2
2
 
3
- Shape the final portable context around the saved task focus and checks.
3
+ Shape the final portable context around the saved task focus and readiness checks.
4
4
 
5
5
  Contract type: `compiled-query-shape`
6
6
 
7
7
  ## Requirements
8
8
 
9
- - Use the compiled task focus plus saved truth-check question text to shape `home.md` and retrieval routes.
9
+ - Use the compiled task focus plus saved readiness-check text to shape `home.md` and retrieval routes.
10
10
  - Rewrite `home.md` into a real entrypoint note. Do not leave the scaffold `Not yet compiled.` placeholder in place.
11
11
  - When you add wikilinks, target real compiled notes by exact basename or explicit relative path.
12
12
  - If you introduce a new note name in `home.md` or another shaped output, the same stage must also create that note file.
@@ -22,10 +22,10 @@ Contract type: `compiled-query-shape`
22
22
 
23
23
  ## Notes
24
24
 
25
- - Use the saved task focus and checks to bias the final portable context toward the job it should be especially good at.
25
+ - Use the saved task focus and readiness checks to bias the final portable context toward the job it should be especially good at.
26
26
  - Do not copy expected answers into the final portable context just because the checks imply them.
27
27
  - Prefer the saved summary evidence and structured notes when they already preserve the bounded chart/table reads plus provenance you need.
28
28
  - Reopen `raw/` during shaping only when the compiled layer is missing the needed value, the metric family is ambiguous, or the earlier bounded read is clearly inconsistent.
29
- - If a saved truth check depends on chart-derived or table-derived values, carry the final bounded reads forward into focused notes with provenance instead of repeatedly recomputing them from raw.
29
+ - If a saved readiness check depends on chart-derived or table-derived values, carry the final bounded reads forward into focused notes with provenance instead of repeatedly recomputing them from raw.
30
30
  - Prefer better routing, prioritization, and focused navigation over speculative synthesis.
31
31
  - Any wikilinks you add to `home.md` or indexes must resolve to real compiled note basenames or explicit relative paths.
@@ -15,7 +15,7 @@ Contract type: `compiled-knowledge-structure`
15
15
 
16
16
  - Bias structure toward canonical entities, claims, timelines, and stable indexes.
17
17
  - Use taxonomy and ontology only as means to improve retrieval, navigation, and evidence tracking.
18
- - For small datasets, prefer a minimal stable substrate over exhaustive graph sprawl.
18
+ - For small source folders, prefer a minimal stable substrate over exhaustive graph sprawl.
19
19
  - When you add wikilinks, target real compiled notes by exact basename or explicit relative path. Do not invent title-style links unless that exact title is also a declared note label or alias.
20
20
  - Do not add wikilinks in structure outputs to files that the shape stage creates later. If a route belongs in `home.md` or a later shaped note, leave plain text now and let the later stage add the link.
21
21
  - For summary references, prefer explicit links like `[[summaries/<file-stem>]]` or plain code paths. For knowledge notes, prefer the final filename stem under `knowledge/`.
@@ -14,5 +14,5 @@ Default loop:
14
14
  Guardrails:
15
15
  - do not edit checks, test specs, or raw source files
16
16
  - do not hardcode expected answers into workflow docs
17
- - keep this package standalone; do not add or rely on runtime `extends` or fallback behavior
17
+ - keep this package standalone; do not add or rely on runtime `extends`
18
18
  - prefer small, defensible workflow changes over random churn
@@ -12,7 +12,7 @@ Answering rule:
12
12
  - do not modify files under `raw/`
13
13
  - when a number is chart-derived, say that explicitly
14
14
  - if the compiled layer already contains a bounded chart-derived read for the exact metric and year the user asked about, answer from that compiled read first
15
- - use `raw/` to confirm the source page, metric family, or provenance, not to replace a good compiled bounded read with a second incompatible range
15
+ - use `raw/` to confirm the source page, metric family, or provenance, not to replace a good compiled bounded read with a mismatched range
16
16
  - when the compiled layer preserves a bounded chart-derived range, keep that bounded range in the answer instead of collapsing it to a midpoint or pseudo-exact single value
17
17
  - match the granularity of the visible axis labels or bands and do not invent finer precision than the chart supports
18
18
  - when reading charts, verify you are on the correct metric family and year before answering
@@ -6,11 +6,11 @@
6
6
  "version": 1
7
7
  },
8
8
  "purpose": {
9
- "label": "General compiled context workflow for agent use",
10
- "task_hint": "Compile mixed raw files into evidence-backed summaries, cross-file structure, and a usable entrypoint for agents answering the questions this task depends on."
9
+ "label": "Built-in portable-context workflow for agent use",
10
+ "task_hint": "Compile mixed raw files into evidence-backed summaries, cross-file structure, and a usable entrypoint for agents running the readiness checks this task depends on."
11
11
  },
12
- "label": "Interf (Built-in)",
13
- "hint": "Interf's built-in workflow: summarize source-grounded evidence, structure the cross-file layer, then shape the final portable context around its task focus and checks.",
12
+ "label": "Built-in Interf Workflow",
13
+ "hint": "Built-in file-processing workflow: summarize source-grounded evidence, structure cross-file connections, and shape portable context around the saved readiness checks.",
14
14
  "stages": [
15
15
  {
16
16
  "id": "summarize",
@@ -82,7 +82,7 @@
82
82
  {
83
83
  "id": "shape",
84
84
  "label": "Shape",
85
- "description": "Shape the final portable context around the saved task focus and checks.",
85
+ "description": "Shape the final portable context around the saved task focus and readiness checks.",
86
86
  "contract_type": "compiled-query-shape",
87
87
  "skill_dir": "shape",
88
88
  "reads": [
@@ -129,15 +129,15 @@
129
129
  "structure": [
130
130
  "Bias structure toward canonical entities, claims, timelines, and stable indexes.",
131
131
  "Use taxonomy and ontology only as means to improve retrieval, navigation, and evidence tracking.",
132
- "For small datasets, prefer a minimal stable substrate over exhaustive graph sprawl.",
132
+ "For small Source Folders, prefer a minimal stable substrate over exhaustive graph sprawl.",
133
133
  "When you add wikilinks, target real compiled notes by exact basename or explicit relative path. Do not invent title-style links unless that exact title is also a declared note label or alias.",
134
134
  "Do not add wikilinks in structure outputs to files that the shape stage creates later. If a route belongs in `home.md` or a later shaped note, leave plain text now and let the later stage add the link.",
135
135
  "For summary references, prefer explicit links like `[[summaries/<file-stem>]]` or plain code paths. For knowledge notes, prefer the final filename stem under `knowledge/`."
136
136
  ],
137
137
  "shape": [
138
- "Use the saved task focus and checks to bias the final portable context toward the job it should be especially good at.",
138
+ "Use the saved task focus and readiness checks to bias the final portable context toward the job it should be especially good at.",
139
139
  "Do not copy expected answers into the final portable context just because the checks imply them.",
140
- "If a saved truth check depends on chart-derived or table-derived values, verify the needed evidence in `raw/` while shaping and write focused notes that preserve bounded values plus provenance.",
140
+ "If a saved readiness check depends on chart-derived or table-derived values, verify the needed evidence in `raw/` while shaping and write focused notes that preserve bounded values plus provenance.",
141
141
  "Prefer better routing, prioritization, and focused navigation over speculative synthesis.",
142
142
  "Any wikilinks you add to `home.md` or indexes must resolve to real compiled note basenames or explicit relative paths."
143
143
  ]
@@ -11,7 +11,7 @@
11
11
  "kind": "directory",
12
12
  "required": true,
13
13
  "owned_by": [],
14
- "description": "Dataset-local raw snapshot copied from the dataset for direct evidence and verification."
14
+ "description": "Preparation-local raw snapshot copied from the source folder for direct evidence and verification."
15
15
  },
16
16
  {
17
17
  "id": "summaries",
@@ -1,19 +1,20 @@
1
1
  import type { WorkflowExecutor } from "../../packages/agents/lib/executors.js";
2
- import type { SourceTruthCheck } from "../../packages/project-model/lib/schema.js";
3
- export declare function buildTruthCheckDraftPrompt(options: {
2
+ import type { SourceReadinessCheck } from "../../packages/project-model/lib/schema.js";
3
+ export declare function buildReadinessCheckDraftPrompt(options: {
4
4
  datasetName: string;
5
5
  datasetPath: string;
6
6
  about?: string;
7
7
  outputPath: string;
8
8
  targetCount: number;
9
9
  }): string;
10
- export declare function draftTruthChecks(options: {
10
+ export declare function draftReadinessChecks(options: {
11
11
  datasetName: string;
12
12
  datasetPath: string;
13
13
  about?: string;
14
14
  executor: WorkflowExecutor;
15
15
  targetCount?: number;
16
+ onStatus?: (line: string) => void;
16
17
  }): Promise<{
17
- checks: SourceTruthCheck[] | null;
18
+ checks: SourceReadinessCheck[] | null;
18
19
  error?: string;
19
20
  }>;