@viraatdas/rudder 2.12.9 → 2.12.10

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.
package/README.md CHANGED
@@ -13,8 +13,10 @@
13
13
 
14
14
  Rudder runs coding agents the way they should be used: several at once,
15
15
  isolated, reviewable, and easy to merge. It opens a native three-pane dashboard,
16
- gives every task its own git worktree, and runs real Claude Code or Codex
17
- processes in the worker pane.
16
+ gives isolated tasks their own jj workspace, and runs real Claude Code or Codex
17
+ processes in the worker pane. Plain requests instead get one end-to-end owner in
18
+ the main checkout, so implementation, release, and deployment do not fall between
19
+ separate agents unless you explicitly ask for a DAG.
18
20
 
19
21
  > **AI agents and contributors:** this README is for using Rudder. If you are
20
22
  > an AI agent (or a human) working on the Rudder codebase itself, read
@@ -53,10 +55,11 @@ rudder
53
55
  ```
54
56
 
55
57
  With no arguments, `rudder` opens the dashboard. Type in the bottom input and
56
- press `Enter` to hand the request to the orchestrator. It can answer, inspect the
57
- repo, or plan a DAG and run isolated workers. Use `/run <task>` when you want
58
- exactly one isolated mergeable worker with no DAG. Use `/ask <text>` when you
59
- want a one-off agent in the main checkout with no merge step.
58
+ press `Enter` to give the request to a single end-to-end main-checkout agent.
59
+ That agent owns implementation, relevant tests, and any push/deploy/install work
60
+ the request explicitly authorizes. Use `/plan <task>` when you want a reviewed
61
+ multi-agent DAG, `/run <task>` for exactly one isolated mergeable worker with no
62
+ DAG, or `/ask <text>` for a separate one-off main-checkout conversation.
60
63
 
61
64
  If a task needs shared local context like API tokens, private URLs, account ids,
62
65
  or environment values, save it with `/share <text>` in the task input. Rudder
@@ -96,7 +99,7 @@ to `~/.rudder/config.json`.
96
99
  │ task list │ live Claude Code or Codex terminal │
97
100
  │ status/model │ DAG-over-orchestrator, scrollback, review │
98
101
  ├───────────────┴────────────────────────────────────────────┤
99
- │ task input: orchestrator by default, /run single, /ask direct
102
+ │ task input: main owner by default, /plan DAG, /run isolated
100
103
  └──────────────────────────────────────────────────────────────┘
101
104
  ```
102
105
 
@@ -120,7 +123,8 @@ your browser. The board is a second control surface, not just a monitor: open a
120
123
  task to send an update while it runs, or request changes from Review to resume
121
124
  the same agent in the same workspace. The task's update thread records your
122
125
  directions alongside the latest worker activity. `+ Task` follows the same
123
- orchestrator path as typing in the dashboard task pane.
126
+ end-to-end main-owner path as typing in the dashboard task pane; use `/plan` in
127
+ the native dashboard for an explicit DAG.
124
128
 
125
129
  The board also works on its own with `rudder board`: in that mode updates
126
130
  redirect or resume the detached worker directly and move revised work back
@@ -212,18 +216,23 @@ reused next time. Rudder refreshes model metadata from
212
216
  `https://models.dev/api.json` and falls back to local caches when offline.
213
217
  The native Codex picker also reads `~/.codex/models_cache.json`, so account-specific
214
218
  models such as the GPT-5.6 Sol/Terra/Luna family appear as soon as Codex exposes them.
219
+ Implementation, review, resume, and shipping Codex sessions keep Codex plugins and
220
+ Computer Use enabled, matching a direct Codex session. Read-only planner sessions
221
+ disable both capabilities so planning cannot cause external side effects.
215
222
 
216
223
  ## One-Off and Planning
217
224
 
218
225
  Type a fresh request in the bottom task input. When no plan is active, Rudder
219
- starts the orchestrator, which can inspect the repo, plan the work, and spawn
220
- isolated workers when needed.
226
+ starts or continues one main-checkout agent as the end-to-end owner. It can inspect,
227
+ edit, test, commit, release, and deploy according to the request and the repository's
228
+ instructions. Rudder does not silently split a plain request across a planner and
229
+ workers, which keeps final delivery ownership unambiguous.
221
230
 
222
231
  Use `/ask <text>` for a one-off conversational agent in the main checkout, with
223
232
  no DAG and no merge step. Use `/run <task>` for exactly one isolated worker that
224
233
  lands in Review and merges back with `m` or `/merge-all`. Use `/plan <text>` when
225
- you want to be explicit about the orchestrator / DAG path; it is the same route
226
- as plain input.
234
+ you want the orchestrator / DAG path: the read-only planner decomposes the task,
235
+ then separate isolated workers implement its nodes.
227
236
 
228
237
  For planned work, Rudder runs a dedicated Claude Code orchestrator PTY with a DAG
229
238
  pane above it. The flow stays inside Rudder: the orchestrator researches
@@ -254,8 +263,9 @@ After launch, typing a new task folds it into the running DAG as a new node. Whe
254
263
  finishes, Rudder reads back what it did and what work it found remaining (reconstructing it
255
264
  from the diff if the agent did not say), so the plan keeps growing on its own. Type a
256
265
  sweeping change ("rewrite this in Rust instead") and the plan re-plans around the work
257
- already done. The queued plan survives a restart, so quitting mid-plan resumes where you
258
- left off.
266
+ already done. The queued plan and workspaces survive a restart. Closing the dashboard
267
+ marks owned live PTYs `paused` and removes their dead process ids; select a paused row
268
+ and press `Enter` to resume it (reusing its backend session when available).
259
269
 
260
270
  The orchestrator also handles worker operations in natural language. For example, tell it
261
271
  "pause the current tasks and resume them on Codex gpt-5.6 at max effort." It resolves the
@@ -266,12 +276,11 @@ with a handoff to inspect and continue the existing diff.
266
276
 
267
277
  ## Worktrees and merging
268
278
 
269
- Planned worker tasks run in their own git worktrees under `.rudder-worktrees/`
270
- inside your project (gitignored), so parallel DAG agents never edit the same
271
- checkout and every Rudder path stays within the project boundary. One-off agents
272
- are the exception: they intentionally run in the main checkout. Run records live
273
- under `.rudder/runs/`. If you quit Rudder, live workers stop but the agents stay
274
- listed the next time you open Rudder in that repo.
279
+ Planned and `/run` worker tasks run in their own jj workspaces under a sibling
280
+ `.rudder-worktrees` area, so parallel agents never edit the same checkout. Plain
281
+ main-owner and `/ask` agents intentionally run in the main checkout. Run records
282
+ live under `.rudder/runs/`. If you quit Rudder, live workers become `paused`, keep
283
+ their workspace/session metadata, and stay listed when you reopen the repo.
275
284
 
276
285
  - Press `m` to merge the selected completed agent back into its branch.
277
286
  - Press `M` to merge all completed agents. Rudder confirms first.
@@ -300,6 +309,21 @@ rudder cleanup
300
309
  `rudder stop` records a durable cancellation request and terminates the native PTY process
301
310
  group. Cancellation is terminal: a resulting signal exit cannot be relabeled as a failure.
302
311
 
312
+ ## Shipping and delivery evidence
313
+
314
+ Rudder treats these as different facts: an agent finished, changes merged locally,
315
+ a revision was pushed, and a product was deployed. A task that explicitly asks to
316
+ deploy, publish, release, install, or launch remains `delivery proof needed` until
317
+ its completion report records the target, delivery kind, verification time, and at
318
+ least one real smoke check. Verified web URLs, installed macOS app paths, provider
319
+ deployment ids, revisions, and versions are persisted in `.rudder/runs/<id>/run.json`
320
+ and shown in the native dashboard, web board, and generated `RUDDER.md`.
321
+
322
+ Pushing a commit is never presented as proof that a host deployed it. Likewise,
323
+ building a macOS app is not the same as replacing and launching the installed app.
324
+ If delivery fails or needs credentials/user input, the row says `delivery blocked`
325
+ instead of incorrectly moving to deployed.
326
+
303
327
  ## Review
304
328
 
305
329
  Press `v` on an agent to toggle a review of its worktree, showing the run's diff.
@@ -376,6 +400,9 @@ rudder cleanup
376
400
  - Stale behavior after an upgrade: restart any already-running Rudder dashboards
377
401
  so no old `rudder-native` process lingers. New `rudder` launches auto-update
378
402
  unless `RUDDER_DISABLE_AUTO_UPDATE=1` is set.
403
+ - Sustained CPU/redraw load: version 2.12.9 and newer cache Codex plan-output scans,
404
+ avoid reparsing unchanged planner JSON, throttle background PTY drains, and redraw
405
+ only dirty frames. Upgrade and restart any dashboard launched by 2.12.8 or older.
379
406
  - Trackpad scrolling: confirm your terminal sends scroll events with
380
407
  `rudder mouse-test parsed`. Set `RUDDER_WHEEL_SCROLL_ROWS=<n>` to change the
381
408
  scroll step, or `RUDDER_MOUSE_DEBUG=1` to inspect routing.
package/dist/backends.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { randomUUID } from "node:crypto";
2
2
  import { spawn } from "node:child_process";
3
- import { CODEX_RUDDER_CONFIG_ARGS, codexLaunchEnv, ensureRudderCodexBinary } from "./codex-binary.js";
3
+ import { CODEX_RUDDER_WORKER_CONFIG_ARGS, codexLaunchEnv, ensureRudderCodexBinary } from "./codex-binary.js";
4
4
  import { loadAuthStore, loadConfig, saveRunRecord } from "./state.js";
5
5
  import { normalizeEffortForBackend } from "./effort.js";
6
6
  import { commandExists, formatMissingToolMessage, isMissingToolSpawnError, isRecord, lineSplitBuffer, MissingToolError, nowIso, parseJsonLine, runCommand, stripRudderPromptWrappers, textFromAssistantMessage, } from "./util.js";
@@ -168,7 +168,7 @@ function codexBackend() {
168
168
  "--dangerously-bypass-approvals-and-sandbox",
169
169
  "--enable",
170
170
  "goals",
171
- ...CODEX_RUDDER_CONFIG_ARGS,
171
+ ...CODEX_RUDDER_WORKER_CONFIG_ARGS,
172
172
  effort ? "-c" : undefined,
173
173
  effort ? `model_reasoning_effort="${effort}"` : undefined,
174
174
  sessionId,
@@ -184,7 +184,7 @@ function codexBackend() {
184
184
  "--dangerously-bypass-approvals-and-sandbox",
185
185
  "--enable",
186
186
  "goals",
187
- ...CODEX_RUDDER_CONFIG_ARGS,
187
+ ...CODEX_RUDDER_WORKER_CONFIG_ARGS,
188
188
  effort ? "-c" : undefined,
189
189
  effort ? `model_reasoning_effort="${effort}"` : undefined,
190
190
  `${request.contract}\n\n${prompt}`,
@@ -1 +1 @@
1
- {"version":3,"file":"backends.js","sourceRoot":"","sources":["../src/backends.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACtG,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EACL,aAAa,EACb,wBAAwB,EACxB,uBAAuB,EACvB,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,MAAM,EACN,aAAa,EACb,UAAU,EACV,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,WAAW,CAAC;AAEnB,MAAM,UAAU,UAAU,CAAC,EAAa;IACtC,+EAA+E;IAC/E,gFAAgF;IAChF,8EAA8E;IAC9E,iFAAiF;IACjF,oEAAoE;IACpE,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,GAAG,EAAE,CAAC;QAC5C,OAAO,WAAW,CAAC,EAAE,CAAC,CAAC;IACzB,CAAC;IACD,IAAI,EAAE,KAAK,QAAQ,EAAE,CAAC;QACpB,OAAO,aAAa,EAAE,CAAC;IACzB,CAAC;IACD,IAAI,EAAE,KAAK,OAAO,EAAE,CAAC;QACnB,OAAO,YAAY,EAAE,CAAC;IACxB,CAAC;IACD,OAAO,WAAW,EAAE,CAAC;AACvB,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,WAAW,CAAC,EAAa;IAChC,OAAO;QACL,EAAE;QACF,KAAK,CAAC,MAAM;YACV,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,sCAAsC,EAAE,CAAC;QACvE,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI;YACrB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;YAC7C,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;YACvC,yEAAyE;YACzE,qEAAqE;YACrE,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG;gBACpB,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;gBAC9B,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,IAAI,MAAM,EAAE;aACtD,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC;YAC/B,MAAM,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAClC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,IAAI,CAAC,CAAC;YACtE,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;gBAChB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YAC/D,CAAC;YACD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;YAChE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;YACxD,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,2DAA2D,CAAC,CAAC,CAAC;YACjG,MAAM,OAAO,GAAa,EAAE,CAAC;YAC7B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBACpC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC/B,IAAI,CAAC,GAAG,EAAE,CAAC;oBACT,SAAS;gBACX,CAAC;gBACD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBACrC,qEAAqE;gBACrE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;oBACzC,SAAS;gBACX,CAAC;gBACD,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBACzD,MAAM,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,EAAE,MAAM,CAAC,CAAC;gBACrF,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC;YACD,MAAM,IAAI,CAAC;gBACT,EAAE,EAAE,MAAM,EAAE;gBACZ,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE;gBACrB,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,OAAO,CAAC,MAAM;oBACrB,CAAC,CAAC,sBAAsB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,iDAAiD;oBAC3F,CAAC,CAAC,6DAA6D;aAClE,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG;gBACpB,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;gBAC9B,OAAO,EAAE,MAAM,EAAE;gBACjB,QAAQ,EAAE,CAAC;gBACX,MAAM,EAAE,IAAI;aACb,CAAC;YACF,MAAM,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAClC,OAAO,CAAC,CAAC;QACX,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,aAAa;IACpB,OAAO;QACL,EAAE,EAAE,QAAQ;QACZ,KAAK,CAAC,MAAM;YACV,OAAO,aAAa,CAAC,QAAQ,CAAC;gBAC5B,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE;gBACvC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,wBAAwB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjE,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI;YACrB,MAAM,MAAM,GAAG,yBAAyB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACzD,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,eAAe,CAAC;YAC/D,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACxD,MAAM,SAAS,GAAG,iBAAiB,IAAI,UAAU,EAAE,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG;gBACpB,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;gBAC9B,eAAe,EAAE,SAAS;aAC3B,CAAC;YACF,MAAM,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAClC,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,CAAC;YAC1C,MAAM,MAAM,GAAG,yBAAyB,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACvE,MAAM,IAAI,GAAG,OAAO,CAAC;gBACnB,IAAI;gBACJ,MAAM;gBACN,SAAS;gBACT,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,QAAQ;gBAC7B,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;gBAC/B,MAAM;gBACN,mBAAmB;gBACnB,mBAAmB;gBACnB,gCAAgC;gBAChC,iBAAiB;gBACjB,aAAa;gBACb,WAAW;gBACX,4BAA4B;gBAC5B,wBAAwB;gBACxB,OAAO,CAAC,QAAQ;gBAChB,GAAG,CAAC,UAAU,IAAI,iBAAiB;oBACjC,CAAC,CAAC,CAAC,UAAU,EAAE,iBAAiB,EAAE,gBAAgB,CAAC;oBACnD,CAAC,CAAC,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;aACjC,CAAC,CAAC;YACH,OAAO,MAAM,cAAc,CAAC;gBAC1B,OAAO,EAAE,QAAQ;gBACjB,IAAI;gBACJ,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI;gBAC9B,GAAG;gBACH,OAAO;gBACP,IAAI;aACL,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,YAAY;IACnB,OAAO;QACL,EAAE,EAAE,OAAO;QACX,KAAK,CAAC,MAAM;YACV,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,uBAAuB,EAAE,CAAC;gBAC/C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,yBAAyB,MAAM,EAAE,EAAE,CAAC;YAClE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACxF,CAAC;QACH,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI;YACrB,MAAM,MAAM,GAAG,yBAAyB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACzD,MAAM,OAAO,GAAG,MAAM,uBAAuB,EAAE,CAAC;YAChD,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC7D,MAAM,MAAM,GAAG,yBAAyB,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACtE,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,eAAe,CAAC;YACvD,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;YAC9E,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU;gBAC7B,CAAC,CAAC;oBACE,MAAM;oBACN,QAAQ;oBACR,QAAQ;oBACR,SAAS;oBACT,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,SAAS;oBAC9B,4CAA4C;oBAC5C,UAAU;oBACV,OAAO;oBACP,GAAG,wBAAwB;oBAC3B,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;oBACzB,MAAM,CAAC,CAAC,CAAC,2BAA2B,MAAM,GAAG,CAAC,CAAC,CAAC,SAAS;oBACzD,SAAS;oBACT,GAAG,OAAO,CAAC,QAAQ,OAAO,MAAM,EAAE;iBACnC;gBACH,CAAC,CAAC;oBACE,MAAM;oBACN,QAAQ;oBACR,SAAS;oBACT,OAAO;oBACP,SAAS;oBACT,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,SAAS;oBAC9B,4CAA4C;oBAC5C,UAAU;oBACV,OAAO;oBACP,GAAG,wBAAwB;oBAC3B,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;oBACzB,MAAM,CAAC,CAAC,CAAC,2BAA2B,MAAM,GAAG,CAAC,CAAC,CAAC,SAAS;oBACzD,GAAG,OAAO,CAAC,QAAQ,OAAO,MAAM,EAAE;iBACnC,CAAC,CAAC;YACP,OAAO,MAAM,cAAc,CAAC;gBAC1B,OAAO;gBACP,IAAI;gBACJ,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI;gBAC9B,GAAG;gBACH,OAAO;gBACP,IAAI;aACL,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,MAAiC;IAChD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,WAAW;IAClB,OAAO;QACL,EAAE,EAAE,MAAM;QACV,KAAK,CAAC,MAAM;YACV,OAAO,aAAa,CAAC,MAAM,CAAC;gBAC1B,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE;gBACrC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,wBAAwB,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/D,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI;YACrB,MAAM,MAAM,GAAG,yBAAyB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACzD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACvE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;YACxB,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpE,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG;gBACpB,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;gBAC9B,WAAW;aACZ,CAAC;YACF,MAAM,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAClC,MAAM,UAAU,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE;gBAC/E,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI;gBAC9B,GAAG;aACJ,CAAC,CAAC;YACH,MAAM,IAAI,GAAG;gBACX,eAAe;gBACf,UAAU;gBACV,MAAM;gBACN,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpC,OAAO;gBACP,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI;gBACzB,OAAO;gBACP,IAAI;gBACJ,WAAW;gBACX,GAAG,OAAO,CAAC,QAAQ,OAAO,MAAM,EAAE;aACnC,CAAC;YACF,OAAO,MAAM,cAAc,CAAC;gBAC1B,OAAO,EAAE,MAAM;gBACf,IAAI;gBACJ,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI;gBAC9B,GAAG;gBACH,OAAO;gBACP,IAAI;aACL,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,KAAyB,EAAE,MAA+B;IAChF,MAAM,aAAa,GAAG,KAAK,IAAI,SAAS,CAAC;IACzC,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO,aAAa,CAAC;IACvB,CAAC;IACD,MAAM,cAAc,GAAG,yBAAyB,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,OAAO,CAAC;IAC7E,OAAO,GAAG,aAAa,IAAI,cAAc,EAAE,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAgC;IAC/D,MAAM,KAAK,GAAG,MAAM,aAAa,EAAE,CAAC;IACpC,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IACzD,MAAM,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC/B,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;QAC7B,4EAA4E;QAC5E,gFAAgF;QAChF,yCAAyC;QACzC,MAAM,YAAY,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC;QACzD,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,EAAE;YAClC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACvC,uBAAuB;YACvB,eAAe;YACf,mBAAmB;SACpB,CAAC,CAAC;QACH,IAAI,OAAO,EAAE,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAC/C,GAAG,CAAC,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC;QACtC,CAAC;QACD,IAAI,OAAO,EAAE,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAC/C,iFAAiF;YACjF,+EAA+E;YAC/E,GAAG,CAAC,uBAAuB,GAAG,OAAO,CAAC,KAAK,CAAC;QAC9C,CAAC;IACH,CAAC;IACD,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,MAAM,YAAY,GAAG,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC;QACxD,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,EAAE;YAClC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACvC,sBAAsB;YACtB,YAAY;YACZ,gBAAgB;SACjB,CAAC,CAAC;QACH,IAAI,OAAO,EAAE,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAC/C,GAAG,CAAC,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC;QACnC,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,YAAY,CAAC,KAAuB,EAAE,GAAa;IAC1D,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACnC,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,MAO7B;IACC,MAAM,MAAM,CAAC,IAAI,CAAC;QAChB,EAAE,EAAE,MAAM,EAAE;QACZ,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QAC5B,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,GAAG,MAAM,CAAC,OAAO,UAAU;QACpC,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE;KACrD,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE;QAC/C,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;KAClC,CAAC,CAAC;IACH,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG;QAC3B,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;QACrC,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,UAAU,EAAE,KAAK,CAAC,GAAG;QACrB,oEAAoE;QACpE,sEAAsE;QACtE,oDAAoD;QACpD,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,IAAI,MAAM,EAAE;KAC7D,CAAC;IACF,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC;IACtC,MAAM,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAEzC,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,MAAM,WAAW,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC;IAChD,yEAAyE;IACzE,yEAAyE;IACzE,0EAA0E;IAC1E,qEAAqE;IACrE,MAAM,UAAU,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IAC3C,IAAI,SAAS,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAClC,MAAM,kBAAkB,GAAG,CAAC,IAAY,EAAE,MAAe,EAAE,EAAE;QAC3D,SAAS,GAAG,SAAS;aAClB,IAAI,CAAC,KAAK,IAAI,EAAE;YACf,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAClC,MAAM,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QACpF,CAAC,CAAC;aACD,KAAK,CAAC,KAAK,EAAE,KAAc,EAAE,EAAE;YAC9B,MAAM,MAAM,CAAC,IAAI,CAAC;gBAChB,EAAE,EAAE,MAAM,EAAE;gBACZ,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBAC5B,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAChE,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IACF,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;QACxC,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC9C,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC;QACrB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAC/B,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,CAAC,CAAC;IACH,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;QACxC,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC9C,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC;QACrB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAC/B,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACjC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC1B,IAAI,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnC,MAAM,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC7C,OAAO;YACT,CAAC;YACD,KAAK,MAAM,CAAC,IAAI,CAAC;gBACf,EAAE,EAAE,MAAM,EAAE;gBACZ,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBAC5B,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB,CAAC,CAAC;YACH,OAAO,CAAC,CAAC,CAAC,CAAC;QACb,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YACjC,IAAI,OAAO,EAAE,CAAC;gBACZ,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACrC,CAAC;YACD,IAAI,OAAO,EAAE,CAAC;gBACZ,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACpC,CAAC;YACD,KAAK,CAAC,KAAK,IAAI,EAAE;gBACf,MAAM,SAAS,CAAC;gBAChB,sEAAsE;gBACtE,wEAAwE;gBACxE,uEAAuE;gBACvE,IAAI,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC7C,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;oBAC3C,IAAI,CAAC,QAAQ,IAAI,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,MAAM,IAAI,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;wBAC1F,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC;wBACnF,MAAM,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBAC3C,CAAC;gBACH,CAAC;gBACD,MAAM,MAAM,CAAC,IAAI,CAAC;oBAChB,EAAE,EAAE,MAAM,EAAE;oBACZ,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBAC5B,IAAI,EAAE,cAAc;oBACpB,OAAO,EAAE,GAAG,MAAM,CAAC,OAAO,gBAAgB,IAAI,IAAI,MAAM,IAAI,SAAS,EAAE;oBACvE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,MAAM,EAAE,MAAM,IAAI,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,UAAU,EAAE,EAAE;iBAChF,CAAC,CAAC;gBACH,OAAO,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,CAAC,CAAC,EAAE,CAAC;QACP,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,GAAsB,EACtB,IAAY,EACZ,IAA2C,EAC3C,MAAe,EACf,WAA0C;IAE1C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;IACT,CAAC;IACD,IAAI,mCAAmC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACtD,OAAO;IACT,CAAC;IACD,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,MAAM,EAAE,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAC7F,IAAI,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;QACjC,WAAW,CAAC,gBAAgB,GAAG,IAAI,CAAC;IACtC,CAAC;IACD,MAAM,SAAS,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACnD,IAAI,SAAS,IAAI,GAAG,CAAC,OAAO,EAAE,eAAe,KAAK,SAAS,EAAE,CAAC;QAC5D,GAAG,CAAC,OAAO,GAAG;YACZ,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;YACtB,eAAe,EAAE,SAAS;SAC3B,CAAC;QACF,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IACD,MAAM,IAAI,CAAC;QACT,EAAE,EAAE,MAAM,EAAE;QACZ,KAAK,EAAE,GAAG,CAAC,EAAE;QACb,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,gBAAgB;QACjD,OAAO,EAAE,OAAO,IAAI,SAAS;QAC7B,IAAI,EAAE,MAAM,IAAI,OAAO;KACxB,CAAC,CAAC;AACL,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAa;IAC7C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACtC,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,UAAU,CAAC;IAChE,kEAAkE;IAClE,+EAA+E;IAC/E,gDAAgD;IAChD,OAAO,IAAI,CAAC,IAAI,KAAK,gBAAgB,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;QACzE,CAAC,CAAC,IAAI,CAAC,SAAS;QAChB,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,SAAS,cAAc,CAAC,GAAsB;IAC5C,MAAM,iBAAiB,GAAG,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC;IACjD,MAAM,iBAAiB,GAAG,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC;IACjD,OAAO,aAAa,CAClB,GAAG,EACH,iBAAiB;QACf,CAAC,CAAC,EAAE,iBAAiB,EAAE;QACvB,CAAC,CAAC,iBAAiB;YACjB,CAAC,CAAC,EAAE,iBAAiB,EAAE;YACvB,CAAC,CAAC,SAAS,CAChB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,eAAe,CAAC,KAAwC,EAAE,IAAY;IAC7E,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,OAAO;IACT,CAAC;IAED,8DAA8D;IAC9D,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,KAAK,EAAE,CAAC;YACV,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO;IACT,CAAC;IACD,8EAA8E;IAC9E,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5D,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACpD,IAAI,KAAK,EAAE,CAAC;YACV,6DAA6D;YAC7D,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC;YAC3B,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;QAC/B,CAAC;QACD,OAAO;IACT,CAAC;IACD,oEAAoE;IACpE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IACtE,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxE,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;QACpG,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;YACtD,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAC7C,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAC7D,qEAAqE;YACrE,uDAAuD;YACvD,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,KAAK,GACT,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC;QAC/B,WAAW,CAAC,KAAK,CAAC,2BAA2B,CAAC;QAC9C,WAAW,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAChD,IAAI,KAAK,GAAG,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC3B,CAAC;AAED,SAAS,UAAU,CAAC,KAAwC,EAAE,KAAa,EAAE,MAAc;IACzF,IAAI,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAChD,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;QACpB,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;IACxB,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAa,EAAE,gBAAyB;IACnE,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtC,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,MAAM,GAAG,IAA+B,CAAC;IAC/C,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7D,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC1G,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;QAC1B,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,gBAAgB,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAClE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;QACpC,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,aAAa,KAAK,qBAAqB,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YACnG,OAAO,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACvE,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;IAC9B,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAChC,IAAI,gBAAgB,EAAE,CAAC;YACrB,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACtE,OAAO,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;QAC/C,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACjC,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7E,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACvC,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC;IACD,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAa;IACzC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7E,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACzB,OAAO,KAAK,CAAC,IAAI,KAAK,qBAAqB,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;AAC/G,CAAC"}
1
+ {"version":3,"file":"backends.js","sourceRoot":"","sources":["../src/backends.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- var Q,k,Te,ft,P,we,Ce,Re,oe,K,j,Me,ce,ae,ie,mt,J={},z=[],gt=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,Z=Array.isArray;function $(e,t){for(var n in t)e[n]=t[n];return e}function de(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function yt(e,t,n){var o,s,i,l={};for(i in t)i=="key"?o=t[i]:i=="ref"?s=t[i]:l[i]=t[i];if(arguments.length>2&&(l.children=arguments.length>3?Q.call(arguments,2):n),typeof e=="function"&&e.defaultProps!=null)for(i in e.defaultProps)l[i]===void 0&&(l[i]=e.defaultProps[i]);return Y(e,l,o,s,null)}function Y(e,t,n,o,s){var i={type:e,props:t,key:n,ref:o,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:s??++Te,__i:-1,__u:0};return s==null&&k.vnode!=null&&k.vnode(i),i}function H(e){return e.children}function G(e,t){this.props=e,this.context=t}function B(e,t){if(t==null)return e.__?B(e.__,e.__i+1):null;for(var n;t<e.__k.length;t++)if((n=e.__k[t])!=null&&n.__e!=null)return n.__e;return typeof e.type=="function"?B(e):null}function vt(e){if(e.__P&&e.__d){var t=e.__v,n=t.__e,o=[],s=[],i=$({},t);i.__v=t.__v+1,k.vnode&&k.vnode(i),ue(e.__P,i,t,e.__n,e.__P.namespaceURI,32&t.__u?[n]:null,o,n??B(t),!!(32&t.__u),s),i.__v=t.__v,i.__.__k[i.__i]=i,Le(o,i,s),t.__e=t.__=null,i.__e!=n&&De(i)}}function De(e){if((e=e.__)!=null&&e.__c!=null)return e.__e=e.__c.base=null,e.__k.some(function(t){if(t!=null&&t.__e!=null)return e.__e=e.__c.base=t.__e}),De(e)}function Ee(e){(!e.__d&&(e.__d=!0)&&P.push(e)&&!X.__r++||we!=k.debounceRendering)&&((we=k.debounceRendering)||Ce)(X)}function X(){try{for(var e,t=1;P.length;)P.length>t&&P.sort(Re),e=P.shift(),t=P.length,vt(e)}finally{P.length=X.__r=0}}function Ae(e,t,n,o,s,i,l,u,d,c,p){var a,_,f,v,h,y,m,g=o&&o.__k||z,w=t.length;for(d=ht(n,t,g,d,w),a=0;a<w;a++)(f=n.__k[a])!=null&&(_=f.__i!=-1&&g[f.__i]||J,f.__i=a,y=ue(e,f,_,s,i,l,u,d,c,p),v=f.__e,f.ref&&_.ref!=f.ref&&(_.ref&&pe(_.ref,null,f),p.push(f.ref,f.__c||v,f)),h==null&&v!=null&&(h=v),(m=!!(4&f.__u))||_.__k===f.__k?(d=Ne(f,d,e,m),m&&_.__e&&(_.__e=null)):typeof f.type=="function"&&y!==void 0?d=y:v&&(d=v.nextSibling),f.__u&=-7);return n.__e=h,d}function ht(e,t,n,o,s){var i,l,u,d,c,p=n.length,a=p,_=0;for(e.__k=new Array(s),i=0;i<s;i++)(l=t[i])!=null&&typeof l!="boolean"&&typeof l!="function"?(typeof l=="string"||typeof l=="number"||typeof l=="bigint"||l.constructor==String?l=e.__k[i]=Y(null,l,null,null,null):Z(l)?l=e.__k[i]=Y(H,{children:l},null,null,null):l.constructor===void 0&&l.__b>0?l=e.__k[i]=Y(l.type,l.props,l.key,l.ref?l.ref:null,l.__v):e.__k[i]=l,d=i+_,l.__=e,l.__b=e.__b+1,u=null,(c=l.__i=bt(l,n,d,a))!=-1&&(a--,(u=n[c])&&(u.__u|=2)),u==null||u.__v==null?(c==-1&&(s>p?_--:s<p&&_++),typeof l.type!="function"&&(l.__u|=4)):c!=d&&(c==d-1?_--:c==d+1?_++:(c>d?_--:_++,l.__u|=4))):e.__k[i]=null;if(a)for(i=0;i<p;i++)(u=n[i])!=null&&!(2&u.__u)&&(u.__e==o&&(o=B(u)),Pe(u,u));return o}function Ne(e,t,n,o){var s,i;if(typeof e.type=="function"){for(s=e.__k,i=0;s&&i<s.length;i++)s[i]&&(s[i].__=e,t=Ne(s[i],t,n,o));return t}e.__e!=t&&(o&&(t&&e.type&&!t.parentNode&&(t=B(e)),n.insertBefore(e.__e,t||null)),t=e.__e);do t=t&&t.nextSibling;while(t!=null&&t.nodeType==8);return t}function bt(e,t,n,o){var s,i,l,u=e.key,d=e.type,c=t[n],p=c!=null&&(2&c.__u)==0;if(c===null&&u==null||p&&u==c.key&&d==c.type)return n;if(o>(p?1:0)){for(s=n-1,i=n+1;s>=0||i<t.length;)if((c=t[l=s>=0?s--:i++])!=null&&!(2&c.__u)&&u==c.key&&d==c.type)return l}return-1}function xe(e,t,n){t[0]=="-"?e.setProperty(t,n??""):e[t]=n==null?"":typeof n!="number"||gt.test(t)?n:n+"px"}function W(e,t,n,o,s){var i,l;e:if(t=="style")if(typeof n=="string")e.style.cssText=n;else{if(typeof o=="string"&&(e.style.cssText=o=""),o)for(t in o)n&&t in n||xe(e.style,t,"");if(n)for(t in n)o&&n[t]==o[t]||xe(e.style,t,n[t])}else if(t[0]=="o"&&t[1]=="n")i=t!=(t=t.replace(Me,"$1")),l=t.toLowerCase(),t=l in e||t=="onFocusOut"||t=="onFocusIn"?l.slice(2):t.slice(2),e.l||(e.l={}),e.l[t+i]=n,n?o?n[j]=o[j]:(n[j]=ce,e.addEventListener(t,i?ie:ae,i)):e.removeEventListener(t,i?ie:ae,i);else{if(s=="http://www.w3.org/2000/svg")t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(t!="width"&&t!="height"&&t!="href"&&t!="list"&&t!="form"&&t!="tabIndex"&&t!="download"&&t!="rowSpan"&&t!="colSpan"&&t!="role"&&t!="popover"&&t in e)try{e[t]=n??"";break e}catch{}typeof n=="function"||(n==null||n===!1&&t[4]!="-"?e.removeAttribute(t):e.setAttribute(t,t=="popover"&&n==1?"":n))}}function Se(e){return function(t){if(this.l){var n=this.l[t.type+e];if(t[K]==null)t[K]=ce++;else if(t[K]<n[j])return;return n(k.event?k.event(t):t)}}}function ue(e,t,n,o,s,i,l,u,d,c){var p,a,_,f,v,h,y,m,g,w,x,M,V,U,b,R=t.type;if(t.constructor!==void 0)return null;128&n.__u&&(d=!!(32&n.__u),i=[u=t.__e=n.__e]),(p=k.__b)&&p(t);e:if(typeof R=="function")try{if(m=t.props,g=R.prototype&&R.prototype.render,w=(p=R.contextType)&&o[p.__c],x=p?w?w.props.value:p.__:o,n.__c?y=(a=t.__c=n.__c).__=a.__E:(g?t.__c=a=new R(m,x):(t.__c=a=new G(m,x),a.constructor=R,a.render=wt),w&&w.sub(a),a.state||(a.state={}),a.__n=o,_=a.__d=!0,a.__h=[],a._sb=[]),g&&a.__s==null&&(a.__s=a.state),g&&R.getDerivedStateFromProps!=null&&(a.__s==a.state&&(a.__s=$({},a.__s)),$(a.__s,R.getDerivedStateFromProps(m,a.__s))),f=a.props,v=a.state,a.__v=t,_)g&&R.getDerivedStateFromProps==null&&a.componentWillMount!=null&&a.componentWillMount(),g&&a.componentDidMount!=null&&a.__h.push(a.componentDidMount);else{if(g&&R.getDerivedStateFromProps==null&&m!==f&&a.componentWillReceiveProps!=null&&a.componentWillReceiveProps(m,x),t.__v==n.__v||!a.__e&&a.shouldComponentUpdate!=null&&a.shouldComponentUpdate(m,a.__s,x)===!1){t.__v!=n.__v&&(a.props=m,a.state=a.__s,a.__d=!1),t.__e=n.__e,t.__k=n.__k,t.__k.some(function(D){D&&(D.__=t)}),z.push.apply(a.__h,a._sb),a._sb=[],a.__h.length&&l.push(a);break e}a.componentWillUpdate!=null&&a.componentWillUpdate(m,a.__s,x),g&&a.componentDidUpdate!=null&&a.__h.push(function(){a.componentDidUpdate(f,v,h)})}if(a.context=x,a.props=m,a.__P=e,a.__e=!1,M=k.__r,V=0,g)a.state=a.__s,a.__d=!1,M&&M(t),p=a.render(a.props,a.state,a.context),z.push.apply(a.__h,a._sb),a._sb=[];else do a.__d=!1,M&&M(t),p=a.render(a.props,a.state,a.context),a.state=a.__s;while(a.__d&&++V<25);a.state=a.__s,a.getChildContext!=null&&(o=$($({},o),a.getChildContext())),g&&!_&&a.getSnapshotBeforeUpdate!=null&&(h=a.getSnapshotBeforeUpdate(f,v)),U=p!=null&&p.type===H&&p.key==null?$e(p.props.children):p,u=Ae(e,Z(U)?U:[U],t,n,o,s,i,l,u,d,c),a.base=t.__e,t.__u&=-161,a.__h.length&&l.push(a),y&&(a.__E=a.__=null)}catch(D){if(t.__v=null,d||i!=null)if(D.then){for(t.__u|=d?160:128;u&&u.nodeType==8&&u.nextSibling;)u=u.nextSibling;i[i.indexOf(u)]=null,t.__e=u}else{for(b=i.length;b--;)de(i[b]);le(t)}else t.__e=n.__e,t.__k=n.__k,D.then||le(t);k.__e(D,t,n)}else i==null&&t.__v==n.__v?(t.__k=n.__k,t.__e=n.__e):u=t.__e=kt(n.__e,t,n,o,s,i,l,d,c);return(p=k.diffed)&&p(t),128&t.__u?void 0:u}function le(e){e&&(e.__c&&(e.__c.__e=!0),e.__k&&e.__k.some(le))}function Le(e,t,n){for(var o=0;o<n.length;o++)pe(n[o],n[++o],n[++o]);k.__c&&k.__c(t,e),e.some(function(s){try{e=s.__h,s.__h=[],e.some(function(i){i.call(s)})}catch(i){k.__e(i,s.__v)}})}function $e(e){return typeof e!="object"||e==null||e.__b>0?e:Z(e)?e.map($e):e.constructor!==void 0?null:$({},e)}function kt(e,t,n,o,s,i,l,u,d){var c,p,a,_,f,v,h,y=n.props||J,m=t.props,g=t.type;if(g=="svg"?s="http://www.w3.org/2000/svg":g=="math"?s="http://www.w3.org/1998/Math/MathML":s||(s="http://www.w3.org/1999/xhtml"),i!=null){for(c=0;c<i.length;c++)if((f=i[c])&&"setAttribute"in f==!!g&&(g?f.localName==g:f.nodeType==3)){e=f,i[c]=null;break}}if(e==null){if(g==null)return document.createTextNode(m);e=document.createElementNS(s,g,m.is&&m),u&&(k.__m&&k.__m(t,i),u=!1),i=null}if(g==null)y===m||u&&e.data==m||(e.data=m);else{if(i=g=="textarea"&&m.defaultValue!=null?null:i&&Q.call(e.childNodes),!u&&i!=null)for(y={},c=0;c<e.attributes.length;c++)y[(f=e.attributes[c]).name]=f.value;for(c in y)f=y[c],c=="dangerouslySetInnerHTML"?a=f:c=="children"||c in m||c=="value"&&"defaultValue"in m||c=="checked"&&"defaultChecked"in m||W(e,c,null,f,s);for(c in m)f=m[c],c=="children"?_=f:c=="dangerouslySetInnerHTML"?p=f:c=="value"?v=f:c=="checked"?h=f:u&&typeof f!="function"||y[c]===f||W(e,c,f,y[c],s);if(p)u||a&&(p.__html==a.__html||p.__html==e.innerHTML)||(e.innerHTML=p.__html),t.__k=[];else if(a&&(e.innerHTML=""),Ae(t.type=="template"?e.content:e,Z(_)?_:[_],t,n,o,g=="foreignObject"?"http://www.w3.org/1999/xhtml":s,i,l,i?i[0]:n.__k&&B(n,0),u,d),i!=null)for(c=i.length;c--;)de(i[c]);u&&g!="textarea"||(c="value",g=="progress"&&v==null?e.removeAttribute("value"):v!=null&&(v!==e[c]||g=="progress"&&!v||g=="option"&&v!=y[c])&&W(e,c,v,y[c],s),c="checked",h!=null&&h!=e[c]&&W(e,c,h,y[c],s))}return e}function pe(e,t,n){try{if(typeof e=="function"){var o=typeof e.__u=="function";o&&e.__u(),o&&t==null||(e.__u=e(t))}else e.current=t}catch(s){k.__e(s,n)}}function Pe(e,t,n){var o,s;if(k.unmount&&k.unmount(e),(o=e.ref)&&(o.current&&o.current!=e.__e||pe(o,null,t)),(o=e.__c)!=null){if(o.componentWillUnmount)try{o.componentWillUnmount()}catch(i){k.__e(i,t)}o.base=o.__P=null}if(o=e.__k)for(s=0;s<o.length;s++)o[s]&&Pe(o[s],t,n||typeof e.type!="function");n||de(e.__e),e.__c=e.__=e.__e=void 0}function wt(e,t,n){return this.constructor(e,n)}function Ie(e,t,n){var o,s,i,l;t==document&&(t=document.documentElement),k.__&&k.__(e,t),s=(o=typeof n=="function")?null:n&&n.__k||t.__k,i=[],l=[],ue(t,e=(!o&&n||t).__k=yt(H,null,[e]),s||J,J,t.namespaceURI,!o&&n?[n]:s?null:t.firstChild?Q.call(t.childNodes):null,i,!o&&n?n:s?s.__e:t.firstChild,o,l),Le(i,e,l)}Q=z.slice,k={__e:function(e,t,n,o){for(var s,i,l;t=t.__;)if((s=t.__c)&&!s.__)try{if((i=s.constructor)&&i.getDerivedStateFromError!=null&&(s.setState(i.getDerivedStateFromError(e)),l=s.__d),s.componentDidCatch!=null&&(s.componentDidCatch(e,o||{}),l=s.__d),l)return s.__E=s}catch(u){e=u}throw e}},Te=0,ft=function(e){return e!=null&&e.constructor===void 0},G.prototype.setState=function(e,t){var n;n=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=$({},this.state),typeof e=="function"&&(e=e($({},n),this.props)),e&&$(n,e),e!=null&&this.__v&&(t&&this._sb.push(t),Ee(this))},G.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),Ee(this))},G.prototype.render=H,P=[],Ce=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,Re=function(e,t){return e.__v.__b-t.__v.__b},X.__r=0,oe=Math.random().toString(8),K="__d"+oe,j="__a"+oe,Me=/(PointerCapture)$|Capture$/i,ce=0,ae=Se(!1),ie=Se(!0),mt=0;var F,S,_e,Ue,te=0,We=[],T=k,Oe=T.__b,Be=T.__r,He=T.diffed,qe=T.__c,je=T.unmount,Fe=T.__;function me(e,t){T.__h&&T.__h(S,e,te||t),te=0;var n=S.__H||(S.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function C(e){return te=1,ge(Ye,e)}function ge(e,t,n){var o=me(F++,2);if(o.t=e,!o.__c&&(o.__=[n?n(t):Ye(void 0,t),function(u){var d=o.__N?o.__N[0]:o.__[0],c=o.t(d,u);d!==c&&(o.__N=[c,o.__[1]],o.__c.setState({}))}],o.__c=S,!S.__f)){var s=function(u,d,c){if(!o.__c.__H)return!0;var p=o.__c.__H.__.filter(function(_){return _.__c});if(p.every(function(_){return!_.__N}))return!i||i.call(this,u,d,c);var a=o.__c.props!==u;return p.some(function(_){if(_.__N){var f=_.__[0];_.__=_.__N,_.__N=void 0,f!==_.__[0]&&(a=!0)}}),i&&i.call(this,u,d,c)||a};S.__f=!0;var i=S.shouldComponentUpdate,l=S.componentWillUpdate;S.componentWillUpdate=function(u,d,c){if(this.__e){var p=i;i=void 0,s(u,d,c),i=p}l&&l.call(this,u,d,c)},S.shouldComponentUpdate=s}return o.__N||o.__}function N(e,t){var n=me(F++,3);!T.__s&&Ke(n.__H,t)&&(n.__=e,n.u=t,S.__H.__h.push(n))}function A(e){return te=5,I(function(){return{current:e}},[])}function I(e,t){var n=me(F++,7);return Ke(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}function Et(){for(var e;e=We.shift();){var t=e.__H;if(e.__P&&t)try{t.__h.some(ee),t.__h.some(fe),t.__h=[]}catch(n){t.__h=[],T.__e(n,e.__v)}}}T.__b=function(e){S=null,Oe&&Oe(e)},T.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),Fe&&Fe(e,t)},T.__r=function(e){Be&&Be(e),F=0;var t=(S=e.__c).__H;t&&(_e===S?(t.__h=[],S.__h=[],t.__.some(function(n){n.__N&&(n.__=n.__N),n.u=n.__N=void 0})):(t.__h.some(ee),t.__h.some(fe),t.__h=[],F=0)),_e=S},T.diffed=function(e){He&&He(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(We.push(t)!==1&&Ue===T.requestAnimationFrame||((Ue=T.requestAnimationFrame)||xt)(Et)),t.__H.__.some(function(n){n.u&&(n.__H=n.u),n.u=void 0})),_e=S=null},T.__c=function(e,t){t.some(function(n){try{n.__h.some(ee),n.__h=n.__h.filter(function(o){return!o.__||fe(o)})}catch(o){t.some(function(s){s.__h&&(s.__h=[])}),t=[],T.__e(o,n.__v)}}),qe&&qe(e,t)},T.unmount=function(e){je&&je(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.some(function(o){try{ee(o)}catch(s){t=s}}),n.__H=void 0,t&&T.__e(t,n.__v))};var Ve=typeof requestAnimationFrame=="function";function xt(e){var t,n=function(){clearTimeout(o),Ve&&cancelAnimationFrame(t),setTimeout(e)},o=setTimeout(n,35);Ve&&(t=requestAnimationFrame(n))}function ee(e){var t=S,n=e.__c;typeof n=="function"&&(e.__c=void 0,n()),S=t}function fe(e){var t=S;e.__c=e.__(),S=t}function Ke(e,t){return!e||e.length!==t.length||t.some(function(n,o){return n!==e[o]})}function Ye(e,t){return typeof t=="function"?t(e):t}async function q(e){if(!e.ok){let t=await e.text().catch(()=>"");throw new Error(`${e.status} ${e.statusText}${t?`: ${t}`:""}`)}return e.json()}function ne(e){return{"x-rudder-token":typeof window<"u"&&window.__RUDDER_TOKEN__||"",...e??{}}}async function Ge(){return q(await fetch("/api/projects"))}async function Je(e){return q(await fetch(`/api/projects/${encodeURIComponent(e)}/state`))}async function ze(e,t,n=200){let o=await fetch(`/api/projects/${encodeURIComponent(e)}/tasks/${encodeURIComponent(t)}/log?tail=${n}`);if(!o.ok)throw new Error(`${o.status} ${o.statusText}`);return o.text()}async function Xe(e,t){let n=tt();return q(await nt(`/api/projects/${encodeURIComponent(e)}/tasks`,{method:"POST",headers:ne({"content-type":"application/json"}),body:JSON.stringify({prompt:t,requestId:n})}))}async function Qe(e,t){return q(await fetch(`/api/projects/${encodeURIComponent(e)}/tasks/${encodeURIComponent(t)}/merge`,{method:"POST",headers:ne()}))}async function Ze(e,t){let n=await fetch(`/api/projects/${encodeURIComponent(e)}/tasks/${encodeURIComponent(t)}/cancel`,{method:"POST",headers:ne()});if(!n.ok)throw new Error(`${n.status} ${n.statusText}`)}async function et(e,t,n){let o=tt(),s=t==="conductor"?`/api/projects/${encodeURIComponent(e)}/steer`:`/api/projects/${encodeURIComponent(e)}/tasks/${encodeURIComponent(t)}/steer`;return q(await nt(s,{method:"POST",headers:ne({"content-type":"application/json"}),body:JSON.stringify({instruction:n,requestId:o})}))}function tt(){return globalThis.crypto?.randomUUID?.()??`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}-${Math.random().toString(36).slice(2)}`}async function nt(e,t){try{return await fetch(e,t)}catch{return await new Promise(n=>setTimeout(n,150)),fetch(e,t)}}async function ye(e,t){return q(await fetch(`/api/projects/${encodeURIComponent(e)}/steer-receipts/${encodeURIComponent(t)}`))}function rt(e){return`/api/projects/${encodeURIComponent(e)}/events`}function St(){return{nodes:new Map,edges:[],gates:[],memory:[],activity:[],loaded:!1}}function Tt(e,t){switch(t.type){case"SNAPSHOT":{let n=new Map;for(let o of t.snapshot.nodes)n.set(o.id,o);return{nodes:n,edges:t.snapshot.edges??[],gates:t.snapshot.gates??[],memory:t.snapshot.memory??[],activity:t.snapshot.activity??[],loaded:!0}}case"NODE_UPSERT":{let n=new Map(e.nodes);return n.set(t.node.id,t.node),{...e,nodes:n}}case"NODE_REMOVE":{if(!e.nodes.has(t.id))return e;let n=new Map(e.nodes);return n.delete(t.id),{...e,nodes:n}}case"EDGE_UPSERT":{let n=e.edges.filter(o=>!(o.from===t.edge.from&&o.to===t.edge.to&&o.kind===t.edge.kind));return n.push(t.edge),{...e,edges:n}}case"EDGE_REMOVE":return{...e,edges:e.edges.filter(n=>!(n.from===t.from&&n.to===t.to))};case"MEMORY":return{...e,memory:t.memory};case"ACTIVITY":return{...e,activity:t.activity};default:return e}}function st(e){let[t,n]=ge(Tt,void 0,St),[o,s]=C("connecting"),[i,l]=C(""),u=A(!1);return N(()=>{let d=!1;u.current=!1;async function c(){try{let a=await Je(e);if(d)return;l(a.name||e),n({type:"SNAPSHOT",snapshot:a})}catch{}}c();let p=new EventSource(rt(e));return p.addEventListener("open",()=>{d||(u.current&&c(),u.current=!0,s("live"))}),p.addEventListener("snapshot",a=>{if(!d)try{let _=JSON.parse(a.data);l(_.name||e),n({type:"SNAPSHOT",snapshot:_})}catch{}}),p.addEventListener("node.added",a=>{if(!d)try{n({type:"NODE_UPSERT",node:JSON.parse(a.data)})}catch{}}),p.addEventListener("node.updated",a=>{if(!d)try{n({type:"NODE_UPSERT",node:JSON.parse(a.data)})}catch{}}),p.addEventListener("node.removed",a=>{if(!d)try{let _=JSON.parse(a.data),f=typeof _=="string"?_:_.id;f&&n({type:"NODE_REMOVE",id:f})}catch{}}),p.addEventListener("edge.added",a=>{if(!d)try{n({type:"EDGE_UPSERT",edge:JSON.parse(a.data)})}catch{}}),p.addEventListener("edge.removed",a=>{if(!d)try{let _=JSON.parse(a.data);_?.from&&_?.to&&n({type:"EDGE_REMOVE",from:_.from,to:_.to})}catch{}}),p.addEventListener("memory.updated",a=>{if(!d)try{let _=JSON.parse(a.data),f=Array.isArray(_)?_:_.memory??[];n({type:"MEMORY",memory:f})}catch{}}),p.addEventListener("activity.updated",a=>{if(!d)try{let _=JSON.parse(a.data),f=Array.isArray(_)?_:_.activity??[];n({type:"ACTIVITY",activity:f})}catch{}}),p.addEventListener("error",()=>{d||s(u.current?"reconnecting":"connecting")}),()=>{d=!0,p.close()}},[e]),{state:t,conn:o,name:i}}var Ct=0,tn=Array.isArray;function r(e,t,n,o,s,i){t||(t={});var l,u,d=t;if("ref"in d)for(u in d={},t)u=="ref"?l=t[u]:d[u]=t[u];var c={type:e,props:d,key:n,ref:l,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--Ct,__i:-1,__u:0,__source:s,__self:i};if(typeof e=="function"&&(l=e.defaultProps))for(u in l)d[u]===void 0&&(d[u]=l[u]);return k.vnode&&k.vnode(c),c}var at=[{key:"todo",label:"Todo"},{key:"running",label:"Running"},{key:"review",label:"Review"},{key:"done",label:"Done"}];function he(e){if(e.merge&&e.merge.status==="merge-conflict")return"conflict";if(e.blocked)return"blocked";switch(e.status){case"running":case"steering":case"verifying":case"created":return"running";case"completed":return"review";case"merged":return"done";case"failed":return"failed";case"cancelled":return"failed";case"merge-conflict":return"conflict";default:return e.column}}function re(e){return e.merge&&e.merge.status==="merge-conflict"?"conflict":e.blocked?"blocked":e.status||e.column}function it(e){return["running","steering","verifying","created"].includes(e.status)}function se(e){return e>=1e3?`${(e/1e3).toFixed(e>=1e4?0:1)}k`:String(e)}function lt(){let[e,t]=C(null),[n,o]=C(null);return N(()=>{let s=!1;return Ge().then(i=>{s||t(i.projects??[])}).catch(i=>{s||o(String(i?.message??i))}),()=>{s=!0}},[]),r("div",{class:"page",children:[r("header",{class:"topbar",children:r("div",{class:"brand",children:[r("span",{class:"brand-mark",children:"\u25B0"}),r("span",{class:"brand-name",children:"Rudder"}),r("span",{class:"brand-sub mono",children:"board"})]})}),r("main",{class:"index-main",children:[r("h1",{class:"index-title",children:"Projects"}),r("p",{class:"index-lede",children:"Local agent runs, projected live. Pick a repo."}),n&&r("div",{class:"banner banner-error mono",children:["failed to load projects: ",n]}),e===null&&!n&&r("div",{class:"tile-grid",children:[r(ve,{}),r(ve,{}),r(ve,{})]}),e!==null&&e.length===0&&r("div",{class:"empty",children:[r("div",{class:"empty-title",children:"no projects yet"}),r("div",{class:"empty-sub mono",children:"start a run in any repo and it registers here"})]}),e!==null&&e.length>0&&r("div",{class:"tile-grid",children:e.map(s=>r(Rt,{project:s},s.slug))})]})]})}function Rt({project:e}){let t=e.counts,n=()=>{window.location.href=`/rudder/${encodeURIComponent(e.slug)}`},o=[{token:"running",label:"running",n:t.running},{token:"review",label:"review",n:t.review},{token:"todo",label:"todo",n:t.todo},{token:"done",label:"done",n:t.done},{token:"blocked",label:"blocked",n:t.blocked},{token:"failed",label:"failed",n:t.failed}];return r("button",{class:"tile",onClick:n,type:"button",children:[r("div",{class:"tile-head",children:r("span",{class:"tile-name",children:e.name})}),r("div",{class:"tile-path mono",children:e.repoRoot}),r("div",{class:"tile-counts",children:o.map(s=>r("span",{class:`count count-${s.token}`,"data-zero":s.n===0,children:[r("span",{class:"count-n mono",children:s.n}),r("span",{class:"count-label",children:s.label})]},s.label))})]})}function ve(){return r("div",{class:"tile tile-skeleton","aria-hidden":"true",children:[r("div",{class:"skel skel-line",style:"width: 52%"}),r("div",{class:"skel skel-line",style:"width: 78%"}),r("div",{class:"skel skel-row"})]})}var ct="rudder.board.view";function Mt(){try{let e=localStorage.getItem(ct);if(e==="board"||e==="nest"||e==="activity"||e==="memory")return e}catch{}return"board"}function dt({slug:e}){let{state:t,conn:n,name:o}=st(e),[s,i]=C(Mt),[l,u]=C(null),d=A(null),c=window.__RUDDER_CONTROL_MODE__??"projector",p=window.__RUDDER_CAN_MUTATE__!==!1,a=h=>{i(h);try{localStorage.setItem(ct,h)}catch{}},_=I(()=>Array.from(t.nodes.values()),[t.nodes]),f=l?t.nodes.get(l)??null:null,v=(h,y)=>{d.current=y,u(h)};return r("div",{class:"page board-page",children:[r(Dt,{slug:e,name:o||e,conn:n,view:s,onView:a,memoryCount:t.memory.length,latestActivity:t.activity.length?t.activity[t.activity.length-1]:null,canMutate:p}),r("main",{class:"board-main",children:!t.loaded&&n!=="reconnecting"?r(Wt,{}):s==="board"?r(Lt,{nodes:_,onOpen:v,selected:l}):s==="nest"?r(Ot,{nodes:_,edges:t.edges,onOpen:v,selected:l}):s==="activity"?r(Ft,{slug:e,activity:t.activity,canSteerConductor:p&&c==="projector"}):r(Vt,{memory:t.memory})}),f&&r(Bt,{slug:e,node:f,onClose:()=>u(null),returnFocus:d.current,canMutate:p})]})}function Dt({slug:e,name:t,conn:n,view:o,onView:s,memoryCount:i,latestActivity:l,canMutate:u}){let[d,c]=C(!1);return r("header",{class:"topbar board-topbar",children:[r("div",{class:"brand",children:[r("a",{class:"brand-link",href:"/rudder",title:"Back to all projects",children:[r("span",{class:"brand-mark",children:"\u25B0"}),r("span",{class:"brand-back",children:"\u2190 all projects"})]}),r("span",{class:"brand-name",children:t}),r(At,{conn:n}),l&&o!=="activity"&&r("button",{type:"button",class:"activity-ticker mono",title:"Latest activity \u2014 click for the full feed",onClick:()=>s("activity"),children:[r("span",{class:"pulse-dot","aria-hidden":"true"}),r("span",{class:"activity-ticker-text",children:l.text})]})]}),r("div",{class:"toolbar-actions",children:[r("div",{class:"view-toggle",role:"group","aria-label":"View",children:[r("button",{type:"button","aria-pressed":o==="board",class:`toggle ${o==="board"?"toggle-on":""}`,onClick:()=>s("board"),children:"Board"}),r("button",{type:"button","aria-pressed":o==="nest",class:`toggle ${o==="nest"?"toggle-on":""}`,onClick:()=>s("nest"),title:"Nest / DAG view",children:"Nest"}),r("button",{type:"button","aria-pressed":o==="activity",class:`toggle ${o==="activity"?"toggle-on":""}`,onClick:()=>s("activity"),title:"Live activity feed",children:"Activity"}),r("button",{type:"button","aria-pressed":o==="memory",class:`toggle ${o==="memory"?"toggle-on":""}`,onClick:()=>s("memory"),children:["Memory",i>0&&r("span",{class:"toggle-badge mono",children:i})]})]}),u?r("button",{type:"button",class:"btn btn-accent",onClick:()=>c(!0),children:"+ Task"}):r("span",{class:"readonly-pill mono",title:"Open this project's own Rudder board to make changes",children:"read-only"})]}),d&&r(Nt,{slug:e,onClose:()=>c(!1)})]})}function At({conn:e}){if(e==="live")return r("span",{class:"conn conn-live",title:"Live",children:[r("span",{class:"conn-dot"}),r("span",{class:"conn-label mono",children:"live"})]});let t=e==="connecting"?"connecting":"reconnecting";return r("span",{class:"conn conn-warn",title:t,children:[r("span",{class:"conn-dot conn-dot-pulse"}),r("span",{class:"conn-label mono",children:t})]})}function Nt({slug:e,onClose:t}){let[n,o]=C(""),[s,i]=C(!1),[l,u]=C(null),[d,c]=C(null),p=A(null),a=A(null),_=A(!1),f=A(t);f.current=t,_.current=s,N(()=>{let y=document.activeElement;p.current?.focus();let m=g=>{if(g.key==="Escape"){g.preventDefault(),_.current||f.current();return}if(g.key!=="Tab"||!a.current)return;let w=Array.from(a.current.querySelectorAll('button:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])')),x=w[0],M=w[w.length-1];x&&M&&g.shiftKey&&document.activeElement===x?(g.preventDefault(),M.focus()):x&&M&&!g.shiftKey&&document.activeElement===M&&(g.preventDefault(),x.focus())};return window.addEventListener("keydown",m),()=>{window.removeEventListener("keydown",m),y?.focus()}},[]),N(()=>{if(d?.state!=="queued"||!d.requestId)return;let y=!1,m,g=async()=>{try{let w=await ye(e,d.requestId);if(y)return;if(w.status==="delivered"){c({requestId:w.requestId,state:"delivered",message:"Delivered to the native conductor"});return}if(w.status==="failed"){c(null),u(w.error||"The native conductor could not accept the task");return}}catch{}y||(m=window.setTimeout(g,500))};return m=window.setTimeout(g,250),()=>{y=!0,m!==void 0&&window.clearTimeout(m)}},[e,d?.state,d?.requestId]);let v=async()=>{let y=n.trim();if(!(!y||s)){i(!0),u(null),c(null);try{let m=await Xe(e,y);if(m.status==="queued"){o(""),c({requestId:m.requestId,state:"queued",message:"Queued for the native conductor"}),i(!1);return}if(m.status==="failed")throw new Error("The task could not be delivered to the conductor");t()}catch(m){u(String(m?.message??m)),i(!1)}}};return r("div",{class:"overlay",onClick:()=>{s||t()},children:r("form",{ref:a,class:"composer",onClick:y=>y.stopPropagation(),onSubmit:y=>{y.preventDefault(),v()},role:"dialog","aria-modal":"true","aria-labelledby":"new-task-title","aria-busy":s,children:[r("div",{class:"composer-head",children:[r("span",{class:"composer-title",id:"new-task-title",children:"New task"}),r("span",{class:"composer-hint mono",id:"new-task-hint",children:"\u2318/Ctrl + Enter to run \xB7 Esc to close"})]}),r("label",{class:"sr-only",for:"new-task-prompt",children:"Task description"}),r("textarea",{ref:p,id:"new-task-prompt",class:"composer-input mono",rows:5,placeholder:"Describe the task. The agent decomposes and schedules it.",value:n,"aria-describedby":"new-task-hint",onInput:y=>o(y.target.value),onKeyDown:y=>{(y.metaKey||y.ctrlKey)&&y.key==="Enter"&&(y.preventDefault(),v())},readOnly:s}),l&&r("div",{class:"banner banner-error mono",role:"alert",children:l}),d&&r("div",{class:"banner mono",role:"status",children:d.message}),r("div",{class:"composer-actions",children:[r("button",{type:"button",class:"btn",onClick:t,disabled:s,children:d?"Close":"Cancel"}),r("button",{type:"submit",class:"btn btn-accent",disabled:s||!n.trim(),children:s?"Running\u2026":"Run task"})]})]})})}function Lt({nodes:e,onOpen:t,selected:n}){let o=I(()=>{let s={todo:[],running:[],review:[],done:[]};for(let i of e)(s[i.column]??s.todo).push(i);for(let i of Object.keys(s))s[i].sort((l,u)=>l.updatedAt<u.updatedAt?1:-1);return s},[e]);return r("div",{class:"board",children:at.map(s=>{let i=o[s.key];return r("section",{class:"column","data-column":s.key,children:[r("header",{class:"column-head",children:[r("span",{class:"column-title",children:s.label}),r("span",{class:"column-count mono",children:i.length})]}),r("div",{class:"column-body",children:i.length===0?r("div",{class:"column-empty mono",children:"empty"}):i.map(l=>r($t,{node:l,onOpen:t,selected:n===l.id},l.id))})]},s.key)})})}function $t({node:e,onOpen:t,selected:n}){let o=he(e),s=it(e),i=e.deps.hard.length+e.deps.soft.length;return r("article",{class:`card ${n?"card-selected":""}`,"data-status":o,"data-task-id":e.id,tabIndex:0,role:"button","aria-haspopup":"dialog","aria-expanded":n,onClick:l=>t(e.id,l.currentTarget),onKeyDown:l=>{(l.key==="Enter"||l.key===" ")&&(l.preventDefault(),t(e.id,l.currentTarget))},children:[r("div",{class:"card-spine","data-status":o}),r("div",{class:"card-body",children:[r("div",{class:"card-top",children:[r("span",{class:"card-status mono","data-status":o,children:re(e)}),e.blocked&&r("span",{class:"flag flag-blocked mono",children:"blocked"})]}),r("h3",{class:"card-title",children:e.title}),r("div",{class:"card-meta mono",children:[r("span",{class:"card-backend",children:e.backend}),e.model&&r("span",{class:"card-model",children:e.model}),e.effort&&r("span",{class:"card-effort",children:e.effort})]}),e.lastLine&&r("div",{class:"card-lastline mono",children:[s&&r("span",{class:"pulse-dot","aria-hidden":"true"}),r("span",{class:"lastline-text",children:e.lastLine})]}),r("div",{class:"card-foot",children:[e.tokens&&r("span",{class:"tokens mono",title:"input / output tokens",children:[r("span",{class:"tok-in",children:["\u2193",se(e.tokens.input)]}),r("span",{class:"tok-out",children:["\u2191",se(e.tokens.output)]})]}),i>0&&r("span",{class:"dep-badge mono",title:"upstream dependencies",children:[e.deps.hard.length>0&&r("span",{class:"dep dep-hard",title:`${e.deps.hard.length} hard dependency(ies)`,children:["\u2191",e.deps.hard.length," hard"]}),e.deps.soft.length>0&&r("span",{class:"dep dep-soft",title:`${e.deps.soft.length} soft dependency(ies)`,children:["\u2191",e.deps.soft.length," soft"]})]})]})]})]})}var E={boxW:220,boxH:64,gapX:96,gapY:26,padX:40,padY:40,spineW:5};function Pt(e,t){let n=new Map;for(let l of e)n.set(l.id,l.deps.hard.filter(u=>t.has(u)&&u!==l.id));let o=new Map,s=new Set,i=l=>{let u=o.get(l);if(u!==void 0)return u;if(s.has(l))return 0;s.add(l);let d=n.get(l)??[],c=-1;for(let a of d)c=Math.max(c,i(a));s.delete(l);let p=c+1;return o.set(l,p),p};for(let l of e)i(l.id);return o}function It(e){let t=new Set(e.map(p=>p.id)),n=Pt(e,t),o=new Map;for(let p of e){let a=n.get(p.id)??0,_=o.get(a);_?_.push(p):o.set(a,[p])}let s=new Map,i=Array.from(o.keys()).sort((p,a)=>p-a),l=0;for(let p of i){let a=o.get(p);a.sort((v,h)=>v.createdAt!==h.createdAt?v.createdAt<h.createdAt?-1:1:v.id<h.id?-1:1);let _=E.padX+p*(E.boxW+E.gapX),f=E.padY;for(let v of a)s.set(v.id,{x:_,y:f}),f+=E.boxH+E.gapY;l=Math.max(l,f-E.gapY)}let u=i.length?i[i.length-1]:0,d=E.padX*2+(u+1)*E.boxW+u*E.gapX,c=Math.max(l+E.padY,E.padY*2+E.boxH);return{pos:s,width:d,height:c}}function Ut(e,t){return e.length<=t?e:`${e.slice(0,Math.max(0,t-1)).trimEnd()}\u2026`}function Ot({nodes:e,edges:t,onOpen:n,selected:o}){let s=I(()=>It(e),[e]),i=I(()=>new Set(e.map(d=>d.id)),[e]);if(e.length===0)return r("div",{class:"empty",children:[r("div",{class:"empty-title",children:"no tasks in the graph yet"}),r("div",{class:"empty-sub mono",children:"the dependency DAG renders here once tasks exist"})]});let l=t.filter(d=>i.has(d.from)&&i.has(d.to)),u=d=>{let c=s.pos.get(d.from),p=s.pos.get(d.to);if(!c||!p)return null;let a=c.x+E.boxW,_=c.y+E.boxH/2,f=p.x,v=p.y+E.boxH/2,h=Math.max(28,(f-a)/2);return`M ${a} ${_} C ${a+h} ${_}, ${f-h} ${v}, ${f} ${v}`};return r("div",{class:"nest",children:r("svg",{class:"nest-svg",width:s.width,height:s.height,viewBox:`0 0 ${s.width} ${s.height}`,role:"group","aria-label":"Task dependency graph",children:[r("defs",{children:[r("marker",{id:"arrow",viewBox:"0 0 10 10",refX:"9",refY:"5",markerWidth:"7",markerHeight:"7",orient:"auto-start-reverse",children:r("path",{d:"M 0 0 L 10 5 L 0 10 z",class:"arrow-head"})}),r("marker",{id:"arrow-soft",viewBox:"0 0 10 10",refX:"9",refY:"5",markerWidth:"6",markerHeight:"6",orient:"auto-start-reverse",children:r("path",{d:"M 0 0 L 10 5 L 0 10 z",class:"arrow-head-soft"})})]}),r("g",{class:"nest-edges",children:l.map((d,c)=>{let p=u(d);return p?r("path",{d:p,fill:"none",class:d.kind==="hard"?"edge edge-hard":"edge edge-soft"},`${d.from}->${d.to}:${d.kind}:${c}`):null})}),r("g",{class:"nest-nodes",children:e.map(d=>{let c=s.pos.get(d.id);if(!c)return null;let p=he(d),a=o===d.id,_=f=>n(d.id,f);return r("g",{class:`node ${a?"node-selected":""}`,"data-status":p,"data-task-id":d.id,transform:`translate(${c.x} ${c.y})`,tabIndex:0,role:"button","aria-label":`${re(d)}: ${d.title}`,"aria-haspopup":"dialog","aria-expanded":a,onClick:f=>_(f.currentTarget),onKeyDown:f=>{(f.key==="Enter"||f.key===" ")&&(f.preventDefault(),_(f.currentTarget))},children:[r("rect",{class:"node-box",x:"0",y:"0",width:E.boxW,height:E.boxH}),r("rect",{class:"node-spine",x:"0",y:"0",width:E.spineW,height:E.boxH}),r("text",{class:"node-status mono",x:E.spineW+12,y:"22",children:re(d)}),r("text",{class:"node-title",x:E.spineW+12,y:"44",children:Ut(d.title,30)})]},d.id)})})]})})}function Bt({slug:e,node:t,onClose:n,returnFocus:o,canMutate:s}){let[i,l]=C(null),[u,d]=C(null),[c,p]=C({busy:!1,msg:null,err:null}),a=A(null),_=A(n);_.current=n;let f=he(t),v=it(t),h=t.status==="completed"||t.status==="review",y=h||t.column==="review",m=v||h,g=h&&!v,w=t.runId??t.id,x=`task-update-${t.id.replace(/[^A-Za-z0-9_-]/g,"-")}`;N(()=>{let b=o??document.activeElement,R=window.requestAnimationFrame(()=>{(a.current?.querySelector("[data-autofocus]")??a.current)?.focus()}),D=L=>{if(L.key==="Escape"){L.preventDefault(),_.current();return}if(L.key!=="Tab"||!a.current)return;let O=Array.from(a.current.querySelectorAll('a[href], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), [tabindex]:not([tabindex="-1"])'));if(O.length===0){L.preventDefault(),a.current.focus();return}let be=O[0],ke=O[O.length-1];L.shiftKey&&document.activeElement===be?(L.preventDefault(),ke.focus()):!L.shiftKey&&document.activeElement===ke&&(L.preventDefault(),be.focus())};return window.addEventListener("keydown",D),()=>{window.cancelAnimationFrame(R),window.removeEventListener("keydown",D),b?.isConnected?b.focus():Array.from(document.querySelectorAll("[data-task-id]")).find(O=>O.getAttribute("data-task-id")===t.id)?.focus()}},[t.id]),N(()=>{let b=!1;return l(null),d(null),ze(e,w,200).then(R=>{b||l(R)}).catch(R=>{b||d(String(R?.message??R))}),()=>{b=!0}},[e,w]);let M=I(()=>{let b=i??"";return!t.lastLine||b.trimEnd().endsWith(t.lastLine.trimEnd())?b:b?`${b}
2
- ${t.lastLine}`:t.lastLine},[i,t.lastLine]),V=async()=>{p({busy:!0,msg:null,err:null});try{let b=await Qe(e,w);if(b.status==="merge-conflict"||b.status==="conflict"||b.status==="blocked"){let D=b.conflictedFiles?.length??0;p({busy:!1,msg:null,err:D?`conflict in ${D} file(s)`:"merge conflict"})}else p({busy:!1,msg:b.status,err:null})}catch(b){p({busy:!1,msg:null,err:String(b?.message??b)})}},U=async()=>{p({busy:!0,msg:null,err:null});try{await Ze(e,w),p({busy:!1,msg:"cancel requested",err:null})}catch(b){p({busy:!1,msg:null,err:String(b?.message??b)})}};return r("div",{class:"drawer-overlay",onClick:n,children:r("aside",{ref:a,class:"drawer",onClick:b=>b.stopPropagation(),"data-status":f,role:"dialog","aria-modal":"true","aria-labelledby":"task-detail-title",tabIndex:-1,children:[r("div",{class:"drawer-spine","data-status":f}),r("header",{class:"drawer-head",children:[r("div",{class:"drawer-head-top",children:[r("span",{class:"card-status mono","data-status":f,children:re(t)}),r("button",{type:"button",class:"drawer-close",onClick:n,"aria-label":"Close",children:"\u2715"})]}),r("h2",{class:"drawer-title",id:"task-detail-title",children:t.title}),r("div",{class:"drawer-meta mono",children:[r("span",{children:t.backend}),t.model&&r("span",{children:t.model}),t.effort&&r("span",{children:t.effort}),t.tokens&&r("span",{children:["\u2193",se(t.tokens.input)," \u2191",se(t.tokens.output)]})]}),t.worktree&&r("div",{class:"drawer-worktree mono",title:t.worktree.path,children:t.worktree.workspaceName??t.worktree.path})]}),s&&r("div",{class:"drawer-actions",children:[y&&r("button",{type:"button",class:"btn btn-accent",onClick:V,disabled:c.busy,children:c.busy?"Merging\u2026":"Merge"}),g&&r("button",{type:"button",class:"btn",onClick:()=>document.getElementById(x)?.focus(),disabled:c.busy,children:"Request changes"}),v&&r("button",{type:"button",class:"btn btn-danger",onClick:U,disabled:c.busy,children:c.busy?"Stopping\u2026":"Stop"}),c.msg&&r("span",{class:"action-msg","aria-live":"polite",children:c.msg}),c.err&&r("span",{class:"action-err",role:"alert",children:c.err})]}),r("div",{class:"drawer-scroll",children:[r(Ht,{updates:t.updates??[],lastLine:t.lastLine}),r("div",{class:"drawer-log",children:[r("div",{class:"drawer-log-head mono",children:[r("span",{children:"Worker log"}),v&&r("span",{class:"pulse-dot","aria-hidden":"true"})]}),r(jt,{text:M,error:u,loading:i===null&&!u})]})]}),s&&m&&r("div",{class:"drawer-steer",children:r(ut,{slug:e,targetId:w,inputId:x,label:g?"Request changes":"Send update",submitLabel:g?"Request changes":"Send update",placeholder:g?"Describe what should change before this task is merged.":"Add context or redirect this worker.",autoFocus:!0})})]})})}function Ht({updates:e,lastLine:t}){let n=e.filter(o=>o.instruction.trim());return r("section",{class:"task-updates","aria-labelledby":"task-updates-title",children:[r("div",{class:"task-updates-head",children:[r("h3",{id:"task-updates-title",children:"Updates"}),n.length>0&&r("span",{class:"task-updates-count mono",children:n.length})]}),r("div",{class:"task-thread",children:[n.length===0&&!t&&r("p",{class:"task-thread-empty",children:"No updates have been sent yet."}),n.map((o,s)=>r("article",{class:"task-update task-update-user",children:[r("div",{class:"task-update-avatar","aria-hidden":"true",children:"Y"}),r("div",{class:"task-update-body",children:[r("div",{class:"task-update-meta",children:[r("span",{children:qt(o.source)}),r("time",{class:"mono",dateTime:o.ts,children:pt(o.ts)})]}),r("p",{children:o.instruction})]})]},`${o.ts}-${s}`)),t&&r("article",{class:"task-update task-update-agent",children:[r("div",{class:"task-update-avatar task-update-avatar-agent","aria-hidden":"true",children:"R"}),r("div",{class:"task-update-body",children:[r("div",{class:"task-update-meta",children:r("span",{children:"Latest from worker"})}),r("p",{class:"mono",children:t})]})]})]})]})}function qt(e){let t=(e??"").trim().toLowerCase();return!t||t==="user"||t==="web"||t==="operator"||t==="regoal"?"You":t==="steerer"||t==="rudder"?"Rudder":e??"You"}function jt({text:e,error:t,loading:n}){let o=A(null);return N(()=>{let s=o.current;s&&(s.scrollTop=s.scrollHeight)},[e]),t?r("div",{class:"banner banner-error mono",children:["log unavailable: ",t]}):n?r("div",{class:"log-pre log-loading mono","aria-label":"Loading worker log",children:[r("div",{class:"skel skel-line",style:"width:70%"}),r("div",{class:"skel skel-line",style:"width:90%"}),r("div",{class:"skel skel-line",style:"width:55%"})]}):r("pre",{ref:o,class:"log-pre mono",children:e||"no output yet"})}function ot(e){return e.status==="failed"?e.error||"Delivery failed":e.status==="accepted"?e.mode==="resumed"?"Accepted \xB7 agent is resuming":"Accepted \xB7 agent is restarting":e.status==="delivered"?e.mode==="resumed"?"Delivered \xB7 agent resumed":"Delivered to agent":e.mode==="resumed"?"Queued \xB7 agent is resuming":e.mode==="redirected"?"Queued for the live agent":"Queued for delivery"}function ut({slug:e,targetId:t,inputId:n,label:o,submitLabel:s,placeholder:i,autoFocus:l=!1}){let[u,d]=C(""),[c,p]=C(!1),[a,_]=C(null),[f,v]=C(null);N(()=>{if(a?.state!=="queued"||!a.requestId||window.__RUDDER_CONTROL_MODE__!=="projector")return;let m=!1,g,w=async()=>{try{let x=await ye(e,a.requestId);if(m)return;if(x.status==="delivered"||x.status==="failed"){_(M=>M?.requestId===x.requestId?{...M,state:x.status,message:ot(x)}:M);return}}catch{}m||(g=window.setTimeout(w,500))};return g=window.setTimeout(w,250),()=>{m=!0,g!==void 0&&window.clearTimeout(g)}},[e,a?.state,a?.requestId]);let h=async()=>{let m=u.trim();if(!(!m||c)){p(!0),_({instruction:m,state:"sending",message:"Sending request\u2026"}),v(null);try{let g=await et(e,t,m);d(""),_({instruction:m,requestId:g.requestId,state:g.status,message:ot(g)})}catch(g){_(null),v(String(g?.message??g))}finally{p(!1)}}},y=m=>{(m.metaKey||m.ctrlKey)&&m.key==="Enter"&&(m.preventDefault(),h())};return r("form",{class:"steer",onSubmit:m=>{m.preventDefault(),h()},"aria-busy":c,children:[r("label",{class:"steer-label",for:n,children:o}),r("textarea",{id:n,class:"steer-input",rows:3,maxLength:8e3,placeholder:i,value:u,disabled:c,"data-autofocus":l?"true":void 0,"aria-describedby":`${n}-hint${a?` ${n}-status`:""}`,onInput:m=>{d(m.target.value),f&&v(null)},onKeyDown:y}),r("div",{class:"steer-actions",children:[r("span",{class:"steer-hint",id:`${n}-hint`,children:"\u2318/Ctrl + Enter to send"}),r("button",{type:"submit",class:"btn btn-accent",disabled:c||!u.trim(),children:c?"Sending\u2026":s})]}),a&&r("div",{class:`steer-feedback steer-feedback-${a.state}`,id:`${n}-status`,"aria-live":"polite",children:[r("span",{class:"steer-feedback-state",children:a.message}),r("span",{class:"steer-feedback-text",children:a.instruction})]}),f&&r("div",{class:"action-err steer-error",role:"alert",children:["Could not send: ",f]})]})}function Ft({slug:e,activity:t,canSteerConductor:n}){let o=A(null);return N(()=>{let s=o.current;s&&(s.scrollTop=s.scrollHeight)},[t]),r("div",{class:"activity",children:[n&&r("div",{class:"activity-steer",children:r(ut,{slug:e,targetId:"conductor",inputId:"conductor-update",label:"Message conductor",submitLabel:"Send update",placeholder:"Tell the live orchestrator what to do next."})}),t.length===0?r("div",{class:"empty",children:[r("div",{class:"empty-title",children:"no activity yet"}),r("div",{class:"empty-sub mono",children:"the conductor narrates what it is doing here as work runs"})]}):r("div",{class:"activity-feed",ref:o,children:t.map((s,i)=>r("div",{class:`activity-entry activity-${s.kind}`,children:[r("span",{class:"activity-dot","aria-hidden":"true"}),r("span",{class:"activity-text",children:s.text}),s.ts&&r("span",{class:"activity-ts mono",children:pt(s.ts)})]},`${s.ts??""}-${i}`))})]})}function pt(e){let t=/^\d{10,}$/.test(e.trim())?Number(e):e,n=new Date(t);return Number.isNaN(n.getTime())?"":n.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}function Vt({memory:e}){return e.length===0?r("div",{class:"empty",children:[r("div",{class:"empty-title",children:"no decisions recorded yet"}),r("div",{class:"empty-sub mono",children:"agents append cross-cutting decisions here as they work"})]}):r("div",{class:"memory",children:e.map((t,n)=>r("article",{class:"memory-entry",children:[r("div",{class:"memory-bead","aria-hidden":"true"}),r("div",{class:"memory-content",children:[r("p",{class:"memory-text",children:t.text}),r("div",{class:"memory-meta mono",children:[t.owner&&r("span",{class:"memory-owner",children:t.owner}),t.ts&&r("span",{class:"memory-ts",children:t.ts})]})]})]},n))})}function Wt(){return r("div",{class:"board","aria-hidden":"true",children:at.map(e=>r("section",{class:"column",children:[r("header",{class:"column-head",children:[r("span",{class:"column-title",children:e.label}),r("span",{class:"column-count mono",children:"\xB7"})]}),r("div",{class:"column-body",children:[r("div",{class:"card card-skeleton",children:[r("div",{class:"skel skel-line",style:"width:60%"}),r("div",{class:"skel skel-line",style:"width:85%"})]}),e.key==="running"&&r("div",{class:"card card-skeleton",children:[r("div",{class:"skel skel-line",style:"width:70%"}),r("div",{class:"skel skel-line",style:"width:50%"})]})]})]},e.key))})}function Kt(){let e=(window.__RUDDER_SLUG__??"").trim();return e?r(dt,{slug:e}):r(lt,{})}var _t=document.getElementById("app");_t&&Ie(r(Kt,{}),_t);
1
+ var Q,k,Te,mt,P,we,Ce,Re,oe,K,j,Me,ce,ae,ie,gt,J={},z=[],yt=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,Z=Array.isArray;function $(e,t){for(var n in t)e[n]=t[n];return e}function de(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function vt(e,t,n){var o,s,i,l={};for(i in t)i=="key"?o=t[i]:i=="ref"?s=t[i]:l[i]=t[i];if(arguments.length>2&&(l.children=arguments.length>3?Q.call(arguments,2):n),typeof e=="function"&&e.defaultProps!=null)for(i in e.defaultProps)l[i]===void 0&&(l[i]=e.defaultProps[i]);return Y(e,l,o,s,null)}function Y(e,t,n,o,s){var i={type:e,props:t,key:n,ref:o,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:s??++Te,__i:-1,__u:0};return s==null&&k.vnode!=null&&k.vnode(i),i}function q(e){return e.children}function G(e,t){this.props=e,this.context=t}function B(e,t){if(t==null)return e.__?B(e.__,e.__i+1):null;for(var n;t<e.__k.length;t++)if((n=e.__k[t])!=null&&n.__e!=null)return n.__e;return typeof e.type=="function"?B(e):null}function ht(e){if(e.__P&&e.__d){var t=e.__v,n=t.__e,o=[],s=[],i=$({},t);i.__v=t.__v+1,k.vnode&&k.vnode(i),ue(e.__P,i,t,e.__n,e.__P.namespaceURI,32&t.__u?[n]:null,o,n??B(t),!!(32&t.__u),s),i.__v=t.__v,i.__.__k[i.__i]=i,Le(o,i,s),t.__e=t.__=null,i.__e!=n&&De(i)}}function De(e){if((e=e.__)!=null&&e.__c!=null)return e.__e=e.__c.base=null,e.__k.some(function(t){if(t!=null&&t.__e!=null)return e.__e=e.__c.base=t.__e}),De(e)}function Ee(e){(!e.__d&&(e.__d=!0)&&P.push(e)&&!X.__r++||we!=k.debounceRendering)&&((we=k.debounceRendering)||Ce)(X)}function X(){try{for(var e,t=1;P.length;)P.length>t&&P.sort(Re),e=P.shift(),t=P.length,ht(e)}finally{P.length=X.__r=0}}function Ae(e,t,n,o,s,i,l,u,d,c,p){var a,_,f,v,h,y,m,g=o&&o.__k||z,w=t.length;for(d=bt(n,t,g,d,w),a=0;a<w;a++)(f=n.__k[a])!=null&&(_=f.__i!=-1&&g[f.__i]||J,f.__i=a,y=ue(e,f,_,s,i,l,u,d,c,p),v=f.__e,f.ref&&_.ref!=f.ref&&(_.ref&&pe(_.ref,null,f),p.push(f.ref,f.__c||v,f)),h==null&&v!=null&&(h=v),(m=!!(4&f.__u))||_.__k===f.__k?(d=Ne(f,d,e,m),m&&_.__e&&(_.__e=null)):typeof f.type=="function"&&y!==void 0?d=y:v&&(d=v.nextSibling),f.__u&=-7);return n.__e=h,d}function bt(e,t,n,o,s){var i,l,u,d,c,p=n.length,a=p,_=0;for(e.__k=new Array(s),i=0;i<s;i++)(l=t[i])!=null&&typeof l!="boolean"&&typeof l!="function"?(typeof l=="string"||typeof l=="number"||typeof l=="bigint"||l.constructor==String?l=e.__k[i]=Y(null,l,null,null,null):Z(l)?l=e.__k[i]=Y(q,{children:l},null,null,null):l.constructor===void 0&&l.__b>0?l=e.__k[i]=Y(l.type,l.props,l.key,l.ref?l.ref:null,l.__v):e.__k[i]=l,d=i+_,l.__=e,l.__b=e.__b+1,u=null,(c=l.__i=kt(l,n,d,a))!=-1&&(a--,(u=n[c])&&(u.__u|=2)),u==null||u.__v==null?(c==-1&&(s>p?_--:s<p&&_++),typeof l.type!="function"&&(l.__u|=4)):c!=d&&(c==d-1?_--:c==d+1?_++:(c>d?_--:_++,l.__u|=4))):e.__k[i]=null;if(a)for(i=0;i<p;i++)(u=n[i])!=null&&!(2&u.__u)&&(u.__e==o&&(o=B(u)),Pe(u,u));return o}function Ne(e,t,n,o){var s,i;if(typeof e.type=="function"){for(s=e.__k,i=0;s&&i<s.length;i++)s[i]&&(s[i].__=e,t=Ne(s[i],t,n,o));return t}e.__e!=t&&(o&&(t&&e.type&&!t.parentNode&&(t=B(e)),n.insertBefore(e.__e,t||null)),t=e.__e);do t=t&&t.nextSibling;while(t!=null&&t.nodeType==8);return t}function kt(e,t,n,o){var s,i,l,u=e.key,d=e.type,c=t[n],p=c!=null&&(2&c.__u)==0;if(c===null&&u==null||p&&u==c.key&&d==c.type)return n;if(o>(p?1:0)){for(s=n-1,i=n+1;s>=0||i<t.length;)if((c=t[l=s>=0?s--:i++])!=null&&!(2&c.__u)&&u==c.key&&d==c.type)return l}return-1}function xe(e,t,n){t[0]=="-"?e.setProperty(t,n??""):e[t]=n==null?"":typeof n!="number"||yt.test(t)?n:n+"px"}function W(e,t,n,o,s){var i,l;e:if(t=="style")if(typeof n=="string")e.style.cssText=n;else{if(typeof o=="string"&&(e.style.cssText=o=""),o)for(t in o)n&&t in n||xe(e.style,t,"");if(n)for(t in n)o&&n[t]==o[t]||xe(e.style,t,n[t])}else if(t[0]=="o"&&t[1]=="n")i=t!=(t=t.replace(Me,"$1")),l=t.toLowerCase(),t=l in e||t=="onFocusOut"||t=="onFocusIn"?l.slice(2):t.slice(2),e.l||(e.l={}),e.l[t+i]=n,n?o?n[j]=o[j]:(n[j]=ce,e.addEventListener(t,i?ie:ae,i)):e.removeEventListener(t,i?ie:ae,i);else{if(s=="http://www.w3.org/2000/svg")t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(t!="width"&&t!="height"&&t!="href"&&t!="list"&&t!="form"&&t!="tabIndex"&&t!="download"&&t!="rowSpan"&&t!="colSpan"&&t!="role"&&t!="popover"&&t in e)try{e[t]=n??"";break e}catch{}typeof n=="function"||(n==null||n===!1&&t[4]!="-"?e.removeAttribute(t):e.setAttribute(t,t=="popover"&&n==1?"":n))}}function Se(e){return function(t){if(this.l){var n=this.l[t.type+e];if(t[K]==null)t[K]=ce++;else if(t[K]<n[j])return;return n(k.event?k.event(t):t)}}}function ue(e,t,n,o,s,i,l,u,d,c){var p,a,_,f,v,h,y,m,g,w,x,M,V,U,b,R=t.type;if(t.constructor!==void 0)return null;128&n.__u&&(d=!!(32&n.__u),i=[u=t.__e=n.__e]),(p=k.__b)&&p(t);e:if(typeof R=="function")try{if(m=t.props,g=R.prototype&&R.prototype.render,w=(p=R.contextType)&&o[p.__c],x=p?w?w.props.value:p.__:o,n.__c?y=(a=t.__c=n.__c).__=a.__E:(g?t.__c=a=new R(m,x):(t.__c=a=new G(m,x),a.constructor=R,a.render=Et),w&&w.sub(a),a.state||(a.state={}),a.__n=o,_=a.__d=!0,a.__h=[],a._sb=[]),g&&a.__s==null&&(a.__s=a.state),g&&R.getDerivedStateFromProps!=null&&(a.__s==a.state&&(a.__s=$({},a.__s)),$(a.__s,R.getDerivedStateFromProps(m,a.__s))),f=a.props,v=a.state,a.__v=t,_)g&&R.getDerivedStateFromProps==null&&a.componentWillMount!=null&&a.componentWillMount(),g&&a.componentDidMount!=null&&a.__h.push(a.componentDidMount);else{if(g&&R.getDerivedStateFromProps==null&&m!==f&&a.componentWillReceiveProps!=null&&a.componentWillReceiveProps(m,x),t.__v==n.__v||!a.__e&&a.shouldComponentUpdate!=null&&a.shouldComponentUpdate(m,a.__s,x)===!1){t.__v!=n.__v&&(a.props=m,a.state=a.__s,a.__d=!1),t.__e=n.__e,t.__k=n.__k,t.__k.some(function(D){D&&(D.__=t)}),z.push.apply(a.__h,a._sb),a._sb=[],a.__h.length&&l.push(a);break e}a.componentWillUpdate!=null&&a.componentWillUpdate(m,a.__s,x),g&&a.componentDidUpdate!=null&&a.__h.push(function(){a.componentDidUpdate(f,v,h)})}if(a.context=x,a.props=m,a.__P=e,a.__e=!1,M=k.__r,V=0,g)a.state=a.__s,a.__d=!1,M&&M(t),p=a.render(a.props,a.state,a.context),z.push.apply(a.__h,a._sb),a._sb=[];else do a.__d=!1,M&&M(t),p=a.render(a.props,a.state,a.context),a.state=a.__s;while(a.__d&&++V<25);a.state=a.__s,a.getChildContext!=null&&(o=$($({},o),a.getChildContext())),g&&!_&&a.getSnapshotBeforeUpdate!=null&&(h=a.getSnapshotBeforeUpdate(f,v)),U=p!=null&&p.type===q&&p.key==null?$e(p.props.children):p,u=Ae(e,Z(U)?U:[U],t,n,o,s,i,l,u,d,c),a.base=t.__e,t.__u&=-161,a.__h.length&&l.push(a),y&&(a.__E=a.__=null)}catch(D){if(t.__v=null,d||i!=null)if(D.then){for(t.__u|=d?160:128;u&&u.nodeType==8&&u.nextSibling;)u=u.nextSibling;i[i.indexOf(u)]=null,t.__e=u}else{for(b=i.length;b--;)de(i[b]);le(t)}else t.__e=n.__e,t.__k=n.__k,D.then||le(t);k.__e(D,t,n)}else i==null&&t.__v==n.__v?(t.__k=n.__k,t.__e=n.__e):u=t.__e=wt(n.__e,t,n,o,s,i,l,d,c);return(p=k.diffed)&&p(t),128&t.__u?void 0:u}function le(e){e&&(e.__c&&(e.__c.__e=!0),e.__k&&e.__k.some(le))}function Le(e,t,n){for(var o=0;o<n.length;o++)pe(n[o],n[++o],n[++o]);k.__c&&k.__c(t,e),e.some(function(s){try{e=s.__h,s.__h=[],e.some(function(i){i.call(s)})}catch(i){k.__e(i,s.__v)}})}function $e(e){return typeof e!="object"||e==null||e.__b>0?e:Z(e)?e.map($e):e.constructor!==void 0?null:$({},e)}function wt(e,t,n,o,s,i,l,u,d){var c,p,a,_,f,v,h,y=n.props||J,m=t.props,g=t.type;if(g=="svg"?s="http://www.w3.org/2000/svg":g=="math"?s="http://www.w3.org/1998/Math/MathML":s||(s="http://www.w3.org/1999/xhtml"),i!=null){for(c=0;c<i.length;c++)if((f=i[c])&&"setAttribute"in f==!!g&&(g?f.localName==g:f.nodeType==3)){e=f,i[c]=null;break}}if(e==null){if(g==null)return document.createTextNode(m);e=document.createElementNS(s,g,m.is&&m),u&&(k.__m&&k.__m(t,i),u=!1),i=null}if(g==null)y===m||u&&e.data==m||(e.data=m);else{if(i=g=="textarea"&&m.defaultValue!=null?null:i&&Q.call(e.childNodes),!u&&i!=null)for(y={},c=0;c<e.attributes.length;c++)y[(f=e.attributes[c]).name]=f.value;for(c in y)f=y[c],c=="dangerouslySetInnerHTML"?a=f:c=="children"||c in m||c=="value"&&"defaultValue"in m||c=="checked"&&"defaultChecked"in m||W(e,c,null,f,s);for(c in m)f=m[c],c=="children"?_=f:c=="dangerouslySetInnerHTML"?p=f:c=="value"?v=f:c=="checked"?h=f:u&&typeof f!="function"||y[c]===f||W(e,c,f,y[c],s);if(p)u||a&&(p.__html==a.__html||p.__html==e.innerHTML)||(e.innerHTML=p.__html),t.__k=[];else if(a&&(e.innerHTML=""),Ae(t.type=="template"?e.content:e,Z(_)?_:[_],t,n,o,g=="foreignObject"?"http://www.w3.org/1999/xhtml":s,i,l,i?i[0]:n.__k&&B(n,0),u,d),i!=null)for(c=i.length;c--;)de(i[c]);u&&g!="textarea"||(c="value",g=="progress"&&v==null?e.removeAttribute("value"):v!=null&&(v!==e[c]||g=="progress"&&!v||g=="option"&&v!=y[c])&&W(e,c,v,y[c],s),c="checked",h!=null&&h!=e[c]&&W(e,c,h,y[c],s))}return e}function pe(e,t,n){try{if(typeof e=="function"){var o=typeof e.__u=="function";o&&e.__u(),o&&t==null||(e.__u=e(t))}else e.current=t}catch(s){k.__e(s,n)}}function Pe(e,t,n){var o,s;if(k.unmount&&k.unmount(e),(o=e.ref)&&(o.current&&o.current!=e.__e||pe(o,null,t)),(o=e.__c)!=null){if(o.componentWillUnmount)try{o.componentWillUnmount()}catch(i){k.__e(i,t)}o.base=o.__P=null}if(o=e.__k)for(s=0;s<o.length;s++)o[s]&&Pe(o[s],t,n||typeof e.type!="function");n||de(e.__e),e.__c=e.__=e.__e=void 0}function Et(e,t,n){return this.constructor(e,n)}function Ie(e,t,n){var o,s,i,l;t==document&&(t=document.documentElement),k.__&&k.__(e,t),s=(o=typeof n=="function")?null:n&&n.__k||t.__k,i=[],l=[],ue(t,e=(!o&&n||t).__k=vt(q,null,[e]),s||J,J,t.namespaceURI,!o&&n?[n]:s?null:t.firstChild?Q.call(t.childNodes):null,i,!o&&n?n:s?s.__e:t.firstChild,o,l),Le(i,e,l)}Q=z.slice,k={__e:function(e,t,n,o){for(var s,i,l;t=t.__;)if((s=t.__c)&&!s.__)try{if((i=s.constructor)&&i.getDerivedStateFromError!=null&&(s.setState(i.getDerivedStateFromError(e)),l=s.__d),s.componentDidCatch!=null&&(s.componentDidCatch(e,o||{}),l=s.__d),l)return s.__E=s}catch(u){e=u}throw e}},Te=0,mt=function(e){return e!=null&&e.constructor===void 0},G.prototype.setState=function(e,t){var n;n=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=$({},this.state),typeof e=="function"&&(e=e($({},n),this.props)),e&&$(n,e),e!=null&&this.__v&&(t&&this._sb.push(t),Ee(this))},G.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),Ee(this))},G.prototype.render=q,P=[],Ce=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,Re=function(e,t){return e.__v.__b-t.__v.__b},X.__r=0,oe=Math.random().toString(8),K="__d"+oe,j="__a"+oe,Me=/(PointerCapture)$|Capture$/i,ce=0,ae=Se(!1),ie=Se(!0),gt=0;var F,S,_e,Ue,te=0,We=[],T=k,Oe=T.__b,Be=T.__r,qe=T.diffed,He=T.__c,je=T.unmount,Fe=T.__;function me(e,t){T.__h&&T.__h(S,e,te||t),te=0;var n=S.__H||(S.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function C(e){return te=1,ge(Ye,e)}function ge(e,t,n){var o=me(F++,2);if(o.t=e,!o.__c&&(o.__=[n?n(t):Ye(void 0,t),function(u){var d=o.__N?o.__N[0]:o.__[0],c=o.t(d,u);d!==c&&(o.__N=[c,o.__[1]],o.__c.setState({}))}],o.__c=S,!S.__f)){var s=function(u,d,c){if(!o.__c.__H)return!0;var p=o.__c.__H.__.filter(function(_){return _.__c});if(p.every(function(_){return!_.__N}))return!i||i.call(this,u,d,c);var a=o.__c.props!==u;return p.some(function(_){if(_.__N){var f=_.__[0];_.__=_.__N,_.__N=void 0,f!==_.__[0]&&(a=!0)}}),i&&i.call(this,u,d,c)||a};S.__f=!0;var i=S.shouldComponentUpdate,l=S.componentWillUpdate;S.componentWillUpdate=function(u,d,c){if(this.__e){var p=i;i=void 0,s(u,d,c),i=p}l&&l.call(this,u,d,c)},S.shouldComponentUpdate=s}return o.__N||o.__}function N(e,t){var n=me(F++,3);!T.__s&&Ke(n.__H,t)&&(n.__=e,n.u=t,S.__H.__h.push(n))}function A(e){return te=5,I(function(){return{current:e}},[])}function I(e,t){var n=me(F++,7);return Ke(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}function xt(){for(var e;e=We.shift();){var t=e.__H;if(e.__P&&t)try{t.__h.some(ee),t.__h.some(fe),t.__h=[]}catch(n){t.__h=[],T.__e(n,e.__v)}}}T.__b=function(e){S=null,Oe&&Oe(e)},T.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),Fe&&Fe(e,t)},T.__r=function(e){Be&&Be(e),F=0;var t=(S=e.__c).__H;t&&(_e===S?(t.__h=[],S.__h=[],t.__.some(function(n){n.__N&&(n.__=n.__N),n.u=n.__N=void 0})):(t.__h.some(ee),t.__h.some(fe),t.__h=[],F=0)),_e=S},T.diffed=function(e){qe&&qe(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(We.push(t)!==1&&Ue===T.requestAnimationFrame||((Ue=T.requestAnimationFrame)||St)(xt)),t.__H.__.some(function(n){n.u&&(n.__H=n.u),n.u=void 0})),_e=S=null},T.__c=function(e,t){t.some(function(n){try{n.__h.some(ee),n.__h=n.__h.filter(function(o){return!o.__||fe(o)})}catch(o){t.some(function(s){s.__h&&(s.__h=[])}),t=[],T.__e(o,n.__v)}}),He&&He(e,t)},T.unmount=function(e){je&&je(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.some(function(o){try{ee(o)}catch(s){t=s}}),n.__H=void 0,t&&T.__e(t,n.__v))};var Ve=typeof requestAnimationFrame=="function";function St(e){var t,n=function(){clearTimeout(o),Ve&&cancelAnimationFrame(t),setTimeout(e)},o=setTimeout(n,35);Ve&&(t=requestAnimationFrame(n))}function ee(e){var t=S,n=e.__c;typeof n=="function"&&(e.__c=void 0,n()),S=t}function fe(e){var t=S;e.__c=e.__(),S=t}function Ke(e,t){return!e||e.length!==t.length||t.some(function(n,o){return n!==e[o]})}function Ye(e,t){return typeof t=="function"?t(e):t}async function H(e){if(!e.ok){let t=await e.text().catch(()=>"");throw new Error(`${e.status} ${e.statusText}${t?`: ${t}`:""}`)}return e.json()}function ne(e){return{"x-rudder-token":typeof window<"u"&&window.__RUDDER_TOKEN__||"",...e??{}}}async function Ge(){return H(await fetch("/api/projects"))}async function Je(e){return H(await fetch(`/api/projects/${encodeURIComponent(e)}/state`))}async function ze(e,t,n=200){let o=await fetch(`/api/projects/${encodeURIComponent(e)}/tasks/${encodeURIComponent(t)}/log?tail=${n}`);if(!o.ok)throw new Error(`${o.status} ${o.statusText}`);return o.text()}async function Xe(e,t){let n=tt();return H(await nt(`/api/projects/${encodeURIComponent(e)}/tasks`,{method:"POST",headers:ne({"content-type":"application/json"}),body:JSON.stringify({prompt:t,requestId:n})}))}async function Qe(e,t){return H(await fetch(`/api/projects/${encodeURIComponent(e)}/tasks/${encodeURIComponent(t)}/merge`,{method:"POST",headers:ne()}))}async function Ze(e,t){let n=await fetch(`/api/projects/${encodeURIComponent(e)}/tasks/${encodeURIComponent(t)}/cancel`,{method:"POST",headers:ne()});if(!n.ok)throw new Error(`${n.status} ${n.statusText}`)}async function et(e,t,n){let o=tt(),s=t==="conductor"?`/api/projects/${encodeURIComponent(e)}/steer`:`/api/projects/${encodeURIComponent(e)}/tasks/${encodeURIComponent(t)}/steer`;return H(await nt(s,{method:"POST",headers:ne({"content-type":"application/json"}),body:JSON.stringify({instruction:n,requestId:o})}))}function tt(){return globalThis.crypto?.randomUUID?.()??`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}-${Math.random().toString(36).slice(2)}`}async function nt(e,t){try{return await fetch(e,t)}catch{return await new Promise(n=>setTimeout(n,150)),fetch(e,t)}}async function ye(e,t){return H(await fetch(`/api/projects/${encodeURIComponent(e)}/steer-receipts/${encodeURIComponent(t)}`))}function rt(e){return`/api/projects/${encodeURIComponent(e)}/events`}function Tt(){return{nodes:new Map,edges:[],gates:[],memory:[],activity:[],loaded:!1}}function Ct(e,t){switch(t.type){case"SNAPSHOT":{let n=new Map;for(let o of t.snapshot.nodes)n.set(o.id,o);return{nodes:n,edges:t.snapshot.edges??[],gates:t.snapshot.gates??[],memory:t.snapshot.memory??[],activity:t.snapshot.activity??[],loaded:!0}}case"NODE_UPSERT":{let n=new Map(e.nodes);return n.set(t.node.id,t.node),{...e,nodes:n}}case"NODE_REMOVE":{if(!e.nodes.has(t.id))return e;let n=new Map(e.nodes);return n.delete(t.id),{...e,nodes:n}}case"EDGE_UPSERT":{let n=e.edges.filter(o=>!(o.from===t.edge.from&&o.to===t.edge.to&&o.kind===t.edge.kind));return n.push(t.edge),{...e,edges:n}}case"EDGE_REMOVE":return{...e,edges:e.edges.filter(n=>!(n.from===t.from&&n.to===t.to))};case"MEMORY":return{...e,memory:t.memory};case"ACTIVITY":return{...e,activity:t.activity};default:return e}}function st(e){let[t,n]=ge(Ct,void 0,Tt),[o,s]=C("connecting"),[i,l]=C(""),u=A(!1);return N(()=>{let d=!1;u.current=!1;async function c(){try{let a=await Je(e);if(d)return;l(a.name||e),n({type:"SNAPSHOT",snapshot:a})}catch{}}c();let p=new EventSource(rt(e));return p.addEventListener("open",()=>{d||(u.current&&c(),u.current=!0,s("live"))}),p.addEventListener("snapshot",a=>{if(!d)try{let _=JSON.parse(a.data);l(_.name||e),n({type:"SNAPSHOT",snapshot:_})}catch{}}),p.addEventListener("node.added",a=>{if(!d)try{n({type:"NODE_UPSERT",node:JSON.parse(a.data)})}catch{}}),p.addEventListener("node.updated",a=>{if(!d)try{n({type:"NODE_UPSERT",node:JSON.parse(a.data)})}catch{}}),p.addEventListener("node.removed",a=>{if(!d)try{let _=JSON.parse(a.data),f=typeof _=="string"?_:_.id;f&&n({type:"NODE_REMOVE",id:f})}catch{}}),p.addEventListener("edge.added",a=>{if(!d)try{n({type:"EDGE_UPSERT",edge:JSON.parse(a.data)})}catch{}}),p.addEventListener("edge.removed",a=>{if(!d)try{let _=JSON.parse(a.data);_?.from&&_?.to&&n({type:"EDGE_REMOVE",from:_.from,to:_.to})}catch{}}),p.addEventListener("memory.updated",a=>{if(!d)try{let _=JSON.parse(a.data),f=Array.isArray(_)?_:_.memory??[];n({type:"MEMORY",memory:f})}catch{}}),p.addEventListener("activity.updated",a=>{if(!d)try{let _=JSON.parse(a.data),f=Array.isArray(_)?_:_.activity??[];n({type:"ACTIVITY",activity:f})}catch{}}),p.addEventListener("error",()=>{d||s(u.current?"reconnecting":"connecting")}),()=>{d=!0,p.close()}},[e]),{state:t,conn:o,name:i}}var Rt=0,nn=Array.isArray;function r(e,t,n,o,s,i){t||(t={});var l,u,d=t;if("ref"in d)for(u in d={},t)u=="ref"?l=t[u]:d[u]=t[u];var c={type:e,props:d,key:n,ref:l,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--Rt,__i:-1,__u:0,__source:s,__self:i};if(typeof e=="function"&&(l=e.defaultProps))for(u in l)d[u]===void 0&&(d[u]=l[u]);return k.vnode&&k.vnode(c),c}var at=[{key:"todo",label:"Todo"},{key:"running",label:"Running"},{key:"review",label:"Review"},{key:"done",label:"Done"}];function it(e){let t=e.delivery;return!!(t?.required&&(t.status==="deployed"||t.status==="verified")&&t.kind?.trim()&&t.target?.trim()&&t.verifiedAt?.trim()&&t.checks?.length)}function he(e){if(e.merge&&e.merge.status==="merge-conflict")return"conflict";if(e.blocked)return"blocked";if(e.delivery?.required&&e.status==="completed")return e.delivery.status==="blocked"||e.delivery.status==="failed"?"failed":it(e)?"done":"review";switch(e.status){case"running":case"steering":case"verifying":case"created":return"running";case"completed":return"review";case"merged":return"done";case"failed":return"failed";case"cancelled":return"failed";case"paused":return"done";case"merge-conflict":return"conflict";default:return e.column}}function re(e){return e.merge&&e.merge.status==="merge-conflict"?"conflict":e.blocked?"blocked":e.delivery?.required&&e.status==="completed"?e.delivery.status==="blocked"||e.delivery.status==="failed"?"delivery blocked":it(e)?"deployed":"delivery proof needed":e.status||e.column}function lt(e){return["running","steering","verifying","created"].includes(e.status)}function se(e){return e>=1e3?`${(e/1e3).toFixed(e>=1e4?0:1)}k`:String(e)}function ct(){let[e,t]=C(null),[n,o]=C(null);return N(()=>{let s=!1;return Ge().then(i=>{s||t(i.projects??[])}).catch(i=>{s||o(String(i?.message??i))}),()=>{s=!0}},[]),r("div",{class:"page",children:[r("header",{class:"topbar",children:r("div",{class:"brand",children:[r("span",{class:"brand-mark",children:"\u25B0"}),r("span",{class:"brand-name",children:"Rudder"}),r("span",{class:"brand-sub mono",children:"board"})]})}),r("main",{class:"index-main",children:[r("h1",{class:"index-title",children:"Projects"}),r("p",{class:"index-lede",children:"Local agent runs, projected live. Pick a repo."}),n&&r("div",{class:"banner banner-error mono",children:["failed to load projects: ",n]}),e===null&&!n&&r("div",{class:"tile-grid",children:[r(ve,{}),r(ve,{}),r(ve,{})]}),e!==null&&e.length===0&&r("div",{class:"empty",children:[r("div",{class:"empty-title",children:"no projects yet"}),r("div",{class:"empty-sub mono",children:"start a run in any repo and it registers here"})]}),e!==null&&e.length>0&&r("div",{class:"tile-grid",children:e.map(s=>r(Mt,{project:s},s.slug))})]})]})}function Mt({project:e}){let t=e.counts,n=()=>{window.location.href=`/rudder/${encodeURIComponent(e.slug)}`},o=[{token:"running",label:"running",n:t.running},{token:"review",label:"review",n:t.review},{token:"todo",label:"todo",n:t.todo},{token:"done",label:"done",n:t.done},{token:"blocked",label:"blocked",n:t.blocked},{token:"failed",label:"failed",n:t.failed}];return r("button",{class:"tile",onClick:n,type:"button",children:[r("div",{class:"tile-head",children:r("span",{class:"tile-name",children:e.name})}),r("div",{class:"tile-path mono",children:e.repoRoot}),r("div",{class:"tile-counts",children:o.map(s=>r("span",{class:`count count-${s.token}`,"data-zero":s.n===0,children:[r("span",{class:"count-n mono",children:s.n}),r("span",{class:"count-label",children:s.label})]},s.label))})]})}function ve(){return r("div",{class:"tile tile-skeleton","aria-hidden":"true",children:[r("div",{class:"skel skel-line",style:"width: 52%"}),r("div",{class:"skel skel-line",style:"width: 78%"}),r("div",{class:"skel skel-row"})]})}var dt="rudder.board.view";function Dt(){try{let e=localStorage.getItem(dt);if(e==="board"||e==="nest"||e==="activity"||e==="memory")return e}catch{}return"board"}function ut({slug:e}){let{state:t,conn:n,name:o}=st(e),[s,i]=C(Dt),[l,u]=C(null),d=A(null),c=window.__RUDDER_CONTROL_MODE__??"projector",p=window.__RUDDER_CAN_MUTATE__!==!1,a=h=>{i(h);try{localStorage.setItem(dt,h)}catch{}},_=I(()=>Array.from(t.nodes.values()),[t.nodes]),f=l?t.nodes.get(l)??null:null,v=(h,y)=>{d.current=y,u(h)};return r("div",{class:"page board-page",children:[r(At,{slug:e,name:o||e,conn:n,view:s,onView:a,memoryCount:t.memory.length,latestActivity:t.activity.length?t.activity[t.activity.length-1]:null,canMutate:p}),r("main",{class:"board-main",children:!t.loaded&&n!=="reconnecting"?r(Kt,{}):s==="board"?r($t,{nodes:_,onOpen:v,selected:l}):s==="nest"?r(Bt,{nodes:_,edges:t.edges,onOpen:v,selected:l}):s==="activity"?r(Vt,{slug:e,activity:t.activity,canSteerConductor:p&&c==="projector"}):r(Wt,{memory:t.memory})}),f&&r(qt,{slug:e,node:f,onClose:()=>u(null),returnFocus:d.current,canMutate:p})]})}function At({slug:e,name:t,conn:n,view:o,onView:s,memoryCount:i,latestActivity:l,canMutate:u}){let[d,c]=C(!1);return r("header",{class:"topbar board-topbar",children:[r("div",{class:"brand",children:[r("a",{class:"brand-link",href:"/rudder",title:"Back to all projects",children:[r("span",{class:"brand-mark",children:"\u25B0"}),r("span",{class:"brand-back",children:"\u2190 all projects"})]}),r("span",{class:"brand-name",children:t}),r(Nt,{conn:n}),l&&o!=="activity"&&r("button",{type:"button",class:"activity-ticker mono",title:"Latest activity \u2014 click for the full feed",onClick:()=>s("activity"),children:[r("span",{class:"pulse-dot","aria-hidden":"true"}),r("span",{class:"activity-ticker-text",children:l.text})]})]}),r("div",{class:"toolbar-actions",children:[r("div",{class:"view-toggle",role:"group","aria-label":"View",children:[r("button",{type:"button","aria-pressed":o==="board",class:`toggle ${o==="board"?"toggle-on":""}`,onClick:()=>s("board"),children:"Board"}),r("button",{type:"button","aria-pressed":o==="nest",class:`toggle ${o==="nest"?"toggle-on":""}`,onClick:()=>s("nest"),title:"Nest / DAG view",children:"Nest"}),r("button",{type:"button","aria-pressed":o==="activity",class:`toggle ${o==="activity"?"toggle-on":""}`,onClick:()=>s("activity"),title:"Live activity feed",children:"Activity"}),r("button",{type:"button","aria-pressed":o==="memory",class:`toggle ${o==="memory"?"toggle-on":""}`,onClick:()=>s("memory"),children:["Memory",i>0&&r("span",{class:"toggle-badge mono",children:i})]})]}),u?r("button",{type:"button",class:"btn btn-accent",onClick:()=>c(!0),children:"+ Task"}):r("span",{class:"readonly-pill mono",title:"Open this project's own Rudder board to make changes",children:"read-only"})]}),d&&r(Lt,{slug:e,onClose:()=>c(!1)})]})}function Nt({conn:e}){if(e==="live")return r("span",{class:"conn conn-live",title:"Live",children:[r("span",{class:"conn-dot"}),r("span",{class:"conn-label mono",children:"live"})]});let t=e==="connecting"?"connecting":"reconnecting";return r("span",{class:"conn conn-warn",title:t,children:[r("span",{class:"conn-dot conn-dot-pulse"}),r("span",{class:"conn-label mono",children:t})]})}function Lt({slug:e,onClose:t}){let[n,o]=C(""),[s,i]=C(!1),[l,u]=C(null),[d,c]=C(null),p=A(null),a=A(null),_=A(!1),f=A(t);f.current=t,_.current=s,N(()=>{let y=document.activeElement;p.current?.focus();let m=g=>{if(g.key==="Escape"){g.preventDefault(),_.current||f.current();return}if(g.key!=="Tab"||!a.current)return;let w=Array.from(a.current.querySelectorAll('button:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])')),x=w[0],M=w[w.length-1];x&&M&&g.shiftKey&&document.activeElement===x?(g.preventDefault(),M.focus()):x&&M&&!g.shiftKey&&document.activeElement===M&&(g.preventDefault(),x.focus())};return window.addEventListener("keydown",m),()=>{window.removeEventListener("keydown",m),y?.focus()}},[]),N(()=>{if(d?.state!=="queued"||!d.requestId)return;let y=!1,m,g=async()=>{try{let w=await ye(e,d.requestId);if(y)return;if(w.status==="delivered"){c({requestId:w.requestId,state:"delivered",message:"Delivered to the native conductor"});return}if(w.status==="failed"){c(null),u(w.error||"The native conductor could not accept the task");return}}catch{}y||(m=window.setTimeout(g,500))};return m=window.setTimeout(g,250),()=>{y=!0,m!==void 0&&window.clearTimeout(m)}},[e,d?.state,d?.requestId]);let v=async()=>{let y=n.trim();if(!(!y||s)){i(!0),u(null),c(null);try{let m=await Xe(e,y);if(m.status==="queued"){o(""),c({requestId:m.requestId,state:"queued",message:"Queued for the native conductor"}),i(!1);return}if(m.status==="failed")throw new Error("The task could not be delivered to the conductor");t()}catch(m){u(String(m?.message??m)),i(!1)}}};return r("div",{class:"overlay",onClick:()=>{s||t()},children:r("form",{ref:a,class:"composer",onClick:y=>y.stopPropagation(),onSubmit:y=>{y.preventDefault(),v()},role:"dialog","aria-modal":"true","aria-labelledby":"new-task-title","aria-busy":s,children:[r("div",{class:"composer-head",children:[r("span",{class:"composer-title",id:"new-task-title",children:"New task"}),r("span",{class:"composer-hint mono",id:"new-task-hint",children:"\u2318/Ctrl + Enter to run \xB7 Esc to close"})]}),r("label",{class:"sr-only",for:"new-task-prompt",children:"Task description"}),r("textarea",{ref:p,id:"new-task-prompt",class:"composer-input mono",rows:5,placeholder:"Describe the task. The agent decomposes and schedules it.",value:n,"aria-describedby":"new-task-hint",onInput:y=>o(y.target.value),onKeyDown:y=>{(y.metaKey||y.ctrlKey)&&y.key==="Enter"&&(y.preventDefault(),v())},readOnly:s}),l&&r("div",{class:"banner banner-error mono",role:"alert",children:l}),d&&r("div",{class:"banner mono",role:"status",children:d.message}),r("div",{class:"composer-actions",children:[r("button",{type:"button",class:"btn",onClick:t,disabled:s,children:d?"Close":"Cancel"}),r("button",{type:"submit",class:"btn btn-accent",disabled:s||!n.trim(),children:s?"Running\u2026":"Run task"})]})]})})}function $t({nodes:e,onOpen:t,selected:n}){let o=I(()=>{let s={todo:[],running:[],review:[],done:[]};for(let i of e)(s[i.column]??s.todo).push(i);for(let i of Object.keys(s))s[i].sort((l,u)=>l.updatedAt<u.updatedAt?1:-1);return s},[e]);return r("div",{class:"board",children:at.map(s=>{let i=o[s.key];return r("section",{class:"column","data-column":s.key,children:[r("header",{class:"column-head",children:[r("span",{class:"column-title",children:s.label}),r("span",{class:"column-count mono",children:i.length})]}),r("div",{class:"column-body",children:i.length===0?r("div",{class:"column-empty mono",children:"empty"}):i.map(l=>r(Pt,{node:l,onOpen:t,selected:n===l.id},l.id))})]},s.key)})})}function Pt({node:e,onOpen:t,selected:n}){let o=he(e),s=lt(e),i=e.deps.hard.length+e.deps.soft.length;return r("article",{class:`card ${n?"card-selected":""}`,"data-status":o,"data-task-id":e.id,tabIndex:0,role:"button","aria-haspopup":"dialog","aria-expanded":n,onClick:l=>t(e.id,l.currentTarget),onKeyDown:l=>{(l.key==="Enter"||l.key===" ")&&(l.preventDefault(),t(e.id,l.currentTarget))},children:[r("div",{class:"card-spine","data-status":o}),r("div",{class:"card-body",children:[r("div",{class:"card-top",children:[r("span",{class:"card-status mono","data-status":o,children:re(e)}),e.blocked&&r("span",{class:"flag flag-blocked mono",children:"blocked"})]}),r("h3",{class:"card-title",children:e.title}),r("div",{class:"card-meta mono",children:[r("span",{class:"card-backend",children:e.backend}),e.model&&r("span",{class:"card-model",children:e.model}),e.effort&&r("span",{class:"card-effort",children:e.effort})]}),e.delivery?.required&&r("div",{class:"card-lastline mono",children:r("span",{class:"lastline-text",children:["delivery ",e.delivery.status," \xB7 ",e.delivery.target??"target not recorded",e.delivery.checks?.length?` \xB7 ${e.delivery.checks.length} check${e.delivery.checks.length===1?"":"s"}`:""]})}),e.lastLine&&r("div",{class:"card-lastline mono",children:[s&&r("span",{class:"pulse-dot","aria-hidden":"true"}),r("span",{class:"lastline-text",children:e.lastLine})]}),r("div",{class:"card-foot",children:[e.tokens&&r("span",{class:"tokens mono",title:"input / output tokens",children:[r("span",{class:"tok-in",children:["\u2193",se(e.tokens.input)]}),r("span",{class:"tok-out",children:["\u2191",se(e.tokens.output)]})]}),i>0&&r("span",{class:"dep-badge mono",title:"upstream dependencies",children:[e.deps.hard.length>0&&r("span",{class:"dep dep-hard",title:`${e.deps.hard.length} hard dependency(ies)`,children:["\u2191",e.deps.hard.length," hard"]}),e.deps.soft.length>0&&r("span",{class:"dep dep-soft",title:`${e.deps.soft.length} soft dependency(ies)`,children:["\u2191",e.deps.soft.length," soft"]})]})]})]})]})}var E={boxW:220,boxH:64,gapX:96,gapY:26,padX:40,padY:40,spineW:5};function It(e,t){let n=new Map;for(let l of e)n.set(l.id,l.deps.hard.filter(u=>t.has(u)&&u!==l.id));let o=new Map,s=new Set,i=l=>{let u=o.get(l);if(u!==void 0)return u;if(s.has(l))return 0;s.add(l);let d=n.get(l)??[],c=-1;for(let a of d)c=Math.max(c,i(a));s.delete(l);let p=c+1;return o.set(l,p),p};for(let l of e)i(l.id);return o}function Ut(e){let t=new Set(e.map(p=>p.id)),n=It(e,t),o=new Map;for(let p of e){let a=n.get(p.id)??0,_=o.get(a);_?_.push(p):o.set(a,[p])}let s=new Map,i=Array.from(o.keys()).sort((p,a)=>p-a),l=0;for(let p of i){let a=o.get(p);a.sort((v,h)=>v.createdAt!==h.createdAt?v.createdAt<h.createdAt?-1:1:v.id<h.id?-1:1);let _=E.padX+p*(E.boxW+E.gapX),f=E.padY;for(let v of a)s.set(v.id,{x:_,y:f}),f+=E.boxH+E.gapY;l=Math.max(l,f-E.gapY)}let u=i.length?i[i.length-1]:0,d=E.padX*2+(u+1)*E.boxW+u*E.gapX,c=Math.max(l+E.padY,E.padY*2+E.boxH);return{pos:s,width:d,height:c}}function Ot(e,t){return e.length<=t?e:`${e.slice(0,Math.max(0,t-1)).trimEnd()}\u2026`}function Bt({nodes:e,edges:t,onOpen:n,selected:o}){let s=I(()=>Ut(e),[e]),i=I(()=>new Set(e.map(d=>d.id)),[e]);if(e.length===0)return r("div",{class:"empty",children:[r("div",{class:"empty-title",children:"no tasks in the graph yet"}),r("div",{class:"empty-sub mono",children:"the dependency DAG renders here once tasks exist"})]});let l=t.filter(d=>i.has(d.from)&&i.has(d.to)),u=d=>{let c=s.pos.get(d.from),p=s.pos.get(d.to);if(!c||!p)return null;let a=c.x+E.boxW,_=c.y+E.boxH/2,f=p.x,v=p.y+E.boxH/2,h=Math.max(28,(f-a)/2);return`M ${a} ${_} C ${a+h} ${_}, ${f-h} ${v}, ${f} ${v}`};return r("div",{class:"nest",children:r("svg",{class:"nest-svg",width:s.width,height:s.height,viewBox:`0 0 ${s.width} ${s.height}`,role:"group","aria-label":"Task dependency graph",children:[r("defs",{children:[r("marker",{id:"arrow",viewBox:"0 0 10 10",refX:"9",refY:"5",markerWidth:"7",markerHeight:"7",orient:"auto-start-reverse",children:r("path",{d:"M 0 0 L 10 5 L 0 10 z",class:"arrow-head"})}),r("marker",{id:"arrow-soft",viewBox:"0 0 10 10",refX:"9",refY:"5",markerWidth:"6",markerHeight:"6",orient:"auto-start-reverse",children:r("path",{d:"M 0 0 L 10 5 L 0 10 z",class:"arrow-head-soft"})})]}),r("g",{class:"nest-edges",children:l.map((d,c)=>{let p=u(d);return p?r("path",{d:p,fill:"none",class:d.kind==="hard"?"edge edge-hard":"edge edge-soft"},`${d.from}->${d.to}:${d.kind}:${c}`):null})}),r("g",{class:"nest-nodes",children:e.map(d=>{let c=s.pos.get(d.id);if(!c)return null;let p=he(d),a=o===d.id,_=f=>n(d.id,f);return r("g",{class:`node ${a?"node-selected":""}`,"data-status":p,"data-task-id":d.id,transform:`translate(${c.x} ${c.y})`,tabIndex:0,role:"button","aria-label":`${re(d)}: ${d.title}`,"aria-haspopup":"dialog","aria-expanded":a,onClick:f=>_(f.currentTarget),onKeyDown:f=>{(f.key==="Enter"||f.key===" ")&&(f.preventDefault(),_(f.currentTarget))},children:[r("rect",{class:"node-box",x:"0",y:"0",width:E.boxW,height:E.boxH}),r("rect",{class:"node-spine",x:"0",y:"0",width:E.spineW,height:E.boxH}),r("text",{class:"node-status mono",x:E.spineW+12,y:"22",children:re(d)}),r("text",{class:"node-title",x:E.spineW+12,y:"44",children:Ot(d.title,30)})]},d.id)})})]})})}function qt({slug:e,node:t,onClose:n,returnFocus:o,canMutate:s}){let[i,l]=C(null),[u,d]=C(null),[c,p]=C({busy:!1,msg:null,err:null}),a=A(null),_=A(n);_.current=n;let f=he(t),v=lt(t),h=t.status==="completed"||t.status==="review",y=h||t.column==="review",m=v||h,g=h&&!v,w=t.runId??t.id,x=`task-update-${t.id.replace(/[^A-Za-z0-9_-]/g,"-")}`;N(()=>{let b=o??document.activeElement,R=window.requestAnimationFrame(()=>{(a.current?.querySelector("[data-autofocus]")??a.current)?.focus()}),D=L=>{if(L.key==="Escape"){L.preventDefault(),_.current();return}if(L.key!=="Tab"||!a.current)return;let O=Array.from(a.current.querySelectorAll('a[href], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), [tabindex]:not([tabindex="-1"])'));if(O.length===0){L.preventDefault(),a.current.focus();return}let be=O[0],ke=O[O.length-1];L.shiftKey&&document.activeElement===be?(L.preventDefault(),ke.focus()):!L.shiftKey&&document.activeElement===ke&&(L.preventDefault(),be.focus())};return window.addEventListener("keydown",D),()=>{window.cancelAnimationFrame(R),window.removeEventListener("keydown",D),b?.isConnected?b.focus():Array.from(document.querySelectorAll("[data-task-id]")).find(O=>O.getAttribute("data-task-id")===t.id)?.focus()}},[t.id]),N(()=>{let b=!1;return l(null),d(null),ze(e,w,200).then(R=>{b||l(R)}).catch(R=>{b||d(String(R?.message??R))}),()=>{b=!0}},[e,w]);let M=I(()=>{let b=i??"";return!t.lastLine||b.trimEnd().endsWith(t.lastLine.trimEnd())?b:b?`${b}
2
+ ${t.lastLine}`:t.lastLine},[i,t.lastLine]),V=async()=>{p({busy:!0,msg:null,err:null});try{let b=await Qe(e,w);if(b.status==="merge-conflict"||b.status==="conflict"||b.status==="blocked"){let D=b.conflictedFiles?.length??0;p({busy:!1,msg:null,err:D?`conflict in ${D} file(s)`:"merge conflict"})}else p({busy:!1,msg:b.status,err:null})}catch(b){p({busy:!1,msg:null,err:String(b?.message??b)})}},U=async()=>{p({busy:!0,msg:null,err:null});try{await Ze(e,w),p({busy:!1,msg:"cancel requested",err:null})}catch(b){p({busy:!1,msg:null,err:String(b?.message??b)})}};return r("div",{class:"drawer-overlay",onClick:n,children:r("aside",{ref:a,class:"drawer",onClick:b=>b.stopPropagation(),"data-status":f,role:"dialog","aria-modal":"true","aria-labelledby":"task-detail-title",tabIndex:-1,children:[r("div",{class:"drawer-spine","data-status":f}),r("header",{class:"drawer-head",children:[r("div",{class:"drawer-head-top",children:[r("span",{class:"card-status mono","data-status":f,children:re(t)}),r("button",{type:"button",class:"drawer-close",onClick:n,"aria-label":"Close",children:"\u2715"})]}),r("h2",{class:"drawer-title",id:"task-detail-title",children:t.title}),r("div",{class:"drawer-meta mono",children:[r("span",{children:t.backend}),t.model&&r("span",{children:t.model}),t.effort&&r("span",{children:t.effort}),t.tokens&&r("span",{children:["\u2193",se(t.tokens.input)," \u2191",se(t.tokens.output)]})]}),t.worktree&&r("div",{class:"drawer-worktree mono",title:t.worktree.path,children:t.worktree.workspaceName??t.worktree.path}),t.delivery?.required&&r("div",{class:"drawer-worktree mono",title:t.delivery.url??t.delivery.appPath??t.delivery.target,children:["delivery ",t.delivery.status," \xB7 ",t.delivery.target??"target not recorded",t.delivery.revision?` \xB7 ${t.delivery.revision}`:""]})]}),s&&r("div",{class:"drawer-actions",children:[y&&r("button",{type:"button",class:"btn btn-accent",onClick:V,disabled:c.busy,children:c.busy?"Merging\u2026":"Merge"}),g&&r("button",{type:"button",class:"btn",onClick:()=>document.getElementById(x)?.focus(),disabled:c.busy,children:"Request changes"}),v&&r("button",{type:"button",class:"btn btn-danger",onClick:U,disabled:c.busy,children:c.busy?"Stopping\u2026":"Stop"}),c.msg&&r("span",{class:"action-msg","aria-live":"polite",children:c.msg}),c.err&&r("span",{class:"action-err",role:"alert",children:c.err})]}),r("div",{class:"drawer-scroll",children:[r(Ht,{updates:t.updates??[],lastLine:t.lastLine}),r("div",{class:"drawer-log",children:[r("div",{class:"drawer-log-head mono",children:[r("span",{children:"Worker log"}),v&&r("span",{class:"pulse-dot","aria-hidden":"true"})]}),r(Ft,{text:M,error:u,loading:i===null&&!u})]})]}),s&&m&&r("div",{class:"drawer-steer",children:r(pt,{slug:e,targetId:w,inputId:x,label:g?"Request changes":"Send update",submitLabel:g?"Request changes":"Send update",placeholder:g?"Describe what should change before this task is merged.":"Add context or redirect this worker.",autoFocus:!0})})]})})}function Ht({updates:e,lastLine:t}){let n=e.filter(o=>o.instruction.trim());return r("section",{class:"task-updates","aria-labelledby":"task-updates-title",children:[r("div",{class:"task-updates-head",children:[r("h3",{id:"task-updates-title",children:"Updates"}),n.length>0&&r("span",{class:"task-updates-count mono",children:n.length})]}),r("div",{class:"task-thread",children:[n.length===0&&!t&&r("p",{class:"task-thread-empty",children:"No updates have been sent yet."}),n.map((o,s)=>r("article",{class:"task-update task-update-user",children:[r("div",{class:"task-update-avatar","aria-hidden":"true",children:"Y"}),r("div",{class:"task-update-body",children:[r("div",{class:"task-update-meta",children:[r("span",{children:jt(o.source)}),r("time",{class:"mono",dateTime:o.ts,children:_t(o.ts)})]}),r("p",{children:o.instruction})]})]},`${o.ts}-${s}`)),t&&r("article",{class:"task-update task-update-agent",children:[r("div",{class:"task-update-avatar task-update-avatar-agent","aria-hidden":"true",children:"R"}),r("div",{class:"task-update-body",children:[r("div",{class:"task-update-meta",children:r("span",{children:"Latest from worker"})}),r("p",{class:"mono",children:t})]})]})]})]})}function jt(e){let t=(e??"").trim().toLowerCase();return!t||t==="user"||t==="web"||t==="operator"||t==="regoal"?"You":t==="steerer"||t==="rudder"?"Rudder":e??"You"}function Ft({text:e,error:t,loading:n}){let o=A(null);return N(()=>{let s=o.current;s&&(s.scrollTop=s.scrollHeight)},[e]),t?r("div",{class:"banner banner-error mono",children:["log unavailable: ",t]}):n?r("div",{class:"log-pre log-loading mono","aria-label":"Loading worker log",children:[r("div",{class:"skel skel-line",style:"width:70%"}),r("div",{class:"skel skel-line",style:"width:90%"}),r("div",{class:"skel skel-line",style:"width:55%"})]}):r("pre",{ref:o,class:"log-pre mono",children:e||"no output yet"})}function ot(e){return e.status==="failed"?e.error||"Delivery failed":e.status==="accepted"?e.mode==="resumed"?"Accepted \xB7 agent is resuming":"Accepted \xB7 agent is restarting":e.status==="delivered"?e.mode==="resumed"?"Delivered \xB7 agent resumed":"Delivered to agent":e.mode==="resumed"?"Queued \xB7 agent is resuming":e.mode==="redirected"?"Queued for the live agent":"Queued for delivery"}function pt({slug:e,targetId:t,inputId:n,label:o,submitLabel:s,placeholder:i,autoFocus:l=!1}){let[u,d]=C(""),[c,p]=C(!1),[a,_]=C(null),[f,v]=C(null);N(()=>{if(a?.state!=="queued"||!a.requestId||window.__RUDDER_CONTROL_MODE__!=="projector")return;let m=!1,g,w=async()=>{try{let x=await ye(e,a.requestId);if(m)return;if(x.status==="delivered"||x.status==="failed"){_(M=>M?.requestId===x.requestId?{...M,state:x.status,message:ot(x)}:M);return}}catch{}m||(g=window.setTimeout(w,500))};return g=window.setTimeout(w,250),()=>{m=!0,g!==void 0&&window.clearTimeout(g)}},[e,a?.state,a?.requestId]);let h=async()=>{let m=u.trim();if(!(!m||c)){p(!0),_({instruction:m,state:"sending",message:"Sending request\u2026"}),v(null);try{let g=await et(e,t,m);d(""),_({instruction:m,requestId:g.requestId,state:g.status,message:ot(g)})}catch(g){_(null),v(String(g?.message??g))}finally{p(!1)}}},y=m=>{(m.metaKey||m.ctrlKey)&&m.key==="Enter"&&(m.preventDefault(),h())};return r("form",{class:"steer",onSubmit:m=>{m.preventDefault(),h()},"aria-busy":c,children:[r("label",{class:"steer-label",for:n,children:o}),r("textarea",{id:n,class:"steer-input",rows:3,maxLength:8e3,placeholder:i,value:u,disabled:c,"data-autofocus":l?"true":void 0,"aria-describedby":`${n}-hint${a?` ${n}-status`:""}`,onInput:m=>{d(m.target.value),f&&v(null)},onKeyDown:y}),r("div",{class:"steer-actions",children:[r("span",{class:"steer-hint",id:`${n}-hint`,children:"\u2318/Ctrl + Enter to send"}),r("button",{type:"submit",class:"btn btn-accent",disabled:c||!u.trim(),children:c?"Sending\u2026":s})]}),a&&r("div",{class:`steer-feedback steer-feedback-${a.state}`,id:`${n}-status`,"aria-live":"polite",children:[r("span",{class:"steer-feedback-state",children:a.message}),r("span",{class:"steer-feedback-text",children:a.instruction})]}),f&&r("div",{class:"action-err steer-error",role:"alert",children:["Could not send: ",f]})]})}function Vt({slug:e,activity:t,canSteerConductor:n}){let o=A(null);return N(()=>{let s=o.current;s&&(s.scrollTop=s.scrollHeight)},[t]),r("div",{class:"activity",children:[n&&r("div",{class:"activity-steer",children:r(pt,{slug:e,targetId:"conductor",inputId:"conductor-update",label:"Message conductor",submitLabel:"Send update",placeholder:"Tell the live orchestrator what to do next."})}),t.length===0?r("div",{class:"empty",children:[r("div",{class:"empty-title",children:"no activity yet"}),r("div",{class:"empty-sub mono",children:"the conductor narrates what it is doing here as work runs"})]}):r("div",{class:"activity-feed",ref:o,children:t.map((s,i)=>r("div",{class:`activity-entry activity-${s.kind}`,children:[r("span",{class:"activity-dot","aria-hidden":"true"}),r("span",{class:"activity-text",children:s.text}),s.ts&&r("span",{class:"activity-ts mono",children:_t(s.ts)})]},`${s.ts??""}-${i}`))})]})}function _t(e){let t=/^\d{10,}$/.test(e.trim())?Number(e):e,n=new Date(t);return Number.isNaN(n.getTime())?"":n.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}function Wt({memory:e}){return e.length===0?r("div",{class:"empty",children:[r("div",{class:"empty-title",children:"no decisions recorded yet"}),r("div",{class:"empty-sub mono",children:"agents append cross-cutting decisions here as they work"})]}):r("div",{class:"memory",children:e.map((t,n)=>r("article",{class:"memory-entry",children:[r("div",{class:"memory-bead","aria-hidden":"true"}),r("div",{class:"memory-content",children:[r("p",{class:"memory-text",children:t.text}),r("div",{class:"memory-meta mono",children:[t.owner&&r("span",{class:"memory-owner",children:t.owner}),t.ts&&r("span",{class:"memory-ts",children:t.ts})]})]})]},n))})}function Kt(){return r("div",{class:"board","aria-hidden":"true",children:at.map(e=>r("section",{class:"column",children:[r("header",{class:"column-head",children:[r("span",{class:"column-title",children:e.label}),r("span",{class:"column-count mono",children:"\xB7"})]}),r("div",{class:"column-body",children:[r("div",{class:"card card-skeleton",children:[r("div",{class:"skel skel-line",style:"width:60%"}),r("div",{class:"skel skel-line",style:"width:85%"})]}),e.key==="running"&&r("div",{class:"card card-skeleton",children:[r("div",{class:"skel skel-line",style:"width:70%"}),r("div",{class:"skel skel-line",style:"width:50%"})]})]})]},e.key))})}function Yt(){let e=(window.__RUDDER_SLUG__??"").trim();return e?r(ut,{slug:e}):r(ct,{})}var ft=document.getElementById("app");ft&&Ie(r(Yt,{}),ft);
@@ -7,7 +7,7 @@ export declare function getBoardToken(): string;
7
7
  export declare function isLoopbackHost(req: IncomingMessage): boolean;
8
8
  export declare function hasValidToken(req: IncomingMessage): boolean;
9
9
  import type { RudderBus } from "../bus.js";
10
- import type { BoardNode, BoardSnapshot, MemoryEntry, RunStatus } from "../types.js";
10
+ import type { BoardNode, BoardSnapshot, MemoryEntry, RunRecord, RunStatus } from "../types.js";
11
11
  export type BoardDaemonHandle = {
12
12
  port: number;
13
13
  url: string;
@@ -23,6 +23,10 @@ export declare function startBoardDaemon(opts: {
23
23
  controlMode?: BoardControlMode;
24
24
  }): Promise<BoardDaemonHandle>;
25
25
  export declare function columnForStatus(status: RunStatus): BoardNode["column"];
26
+ export declare function hasVerifiedDelivery(run: RunRecord): boolean;
27
+ /** Process completion is terminal for direct/main-checkout work, but a requested
28
+ * delivery remains in review until its structured target + smoke proof exists. */
29
+ export declare function columnForRun(run: RunRecord): BoardNode["column"];
26
30
  /**
27
31
  * Memory view: parse DECISIONS.md (repo root) into entries. The current format is one
28
32
  * `## title` block per decision, with `- **What:**` / `- **Did:**` / `- **Decision:**`
@@ -960,11 +960,29 @@ export function columnForStatus(status) {
960
960
  case "merged":
961
961
  case "failed":
962
962
  case "cancelled":
963
+ case "paused":
963
964
  return "done";
964
965
  default:
965
966
  return "todo";
966
967
  }
967
968
  }
969
+ export function hasVerifiedDelivery(run) {
970
+ const delivery = run.delivery;
971
+ return Boolean(delivery?.required &&
972
+ (delivery.status === "deployed" || delivery.status === "verified") &&
973
+ delivery.kind?.trim() &&
974
+ delivery.target?.trim() &&
975
+ delivery.verifiedAt?.trim() &&
976
+ delivery.checks?.length);
977
+ }
978
+ /** Process completion is terminal for direct/main-checkout work, but a requested
979
+ * delivery remains in review until its structured target + smoke proof exists. */
980
+ export function columnForRun(run) {
981
+ if (run.status === "completed" && !run.worktree.enabled) {
982
+ return run.delivery?.required && !hasVerifiedDelivery(run) ? "review" : "done";
983
+ }
984
+ return columnForStatus(run.status);
985
+ }
968
986
  function userUpdates(run) {
969
987
  const turns = run.turns ?? [];
970
988
  const start = turns[0]?.prompt === run.task ? 1 : 0;
@@ -981,7 +999,7 @@ function projectRunToNode(run, lastLine, graphNode) {
981
999
  runId: run.id,
982
1000
  title: graphNode?.title || run.taskSummary || run.task,
983
1001
  status: graphNode?.status ?? run.status,
984
- column: graphNode ? columnForNodeStatus(graphNode.status) : columnForStatus(run.status),
1002
+ column: graphNode ? columnForNodeStatus(graphNode.status) : columnForRun(run),
985
1003
  blocked: graphNode?.status === "blocked",
986
1004
  backend: run.backend,
987
1005
  model: run.model,
@@ -995,6 +1013,7 @@ function projectRunToNode(run, lastLine, graphNode) {
995
1013
  ? { path: run.worktree.path, workspaceName: run.worktree.workspaceName }
996
1014
  : null,
997
1015
  merge: run.merge ?? null,
1016
+ delivery: run.delivery,
998
1017
  updates: userUpdates(run),
999
1018
  };
1000
1019
  }
@@ -1110,7 +1129,7 @@ async function buildProjectSummary(project) {
1110
1129
  counts.failed += 1;
1111
1130
  }
1112
1131
  else {
1113
- counts[columnForStatus(run.status)] += 1;
1132
+ counts[columnForRun(run)] += 1;
1114
1133
  }
1115
1134
  const stamp = run.updatedAt || run.createdAt;
1116
1135
  if (stamp && stamp > lastActivityAt) {