@viraatdas/rudder 2.10.14 → 2.10.17

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
@@ -108,6 +108,19 @@ to `~/.rudder/config.json`.
108
108
  Mouse wheel and trackpad scroll the pane under the pointer. Over the worker or
109
109
  review pane they scroll Rudder's captured scrollback.
110
110
 
111
+ ### Web board
112
+
113
+ Press `o` in the agents pane (or type `/web`) to open the live project board in
114
+ your browser. The board is a second control surface, not just a monitor: open a
115
+ task to send an update while it runs, or request changes from Review to resume
116
+ the same agent in the same workspace. The task's update thread records your
117
+ directions alongside the latest worker activity. `+ Task` follows the same
118
+ orchestrator path as typing in the dashboard task pane.
119
+
120
+ The board also works on its own with `rudder board`: in that mode updates
121
+ redirect or resume the detached worker directly and move revised work back
122
+ through Review before it can merge.
123
+
111
124
  ## Keyboard shortcuts
112
125
 
113
126
  **Direct (work from any pane):**
@@ -147,7 +160,8 @@ scroll the pane.
147
160
 
148
161
  **In the agents pane:** `j` / `k` or arrows move the selection, `Enter` focuses
149
162
  the worker, `m` / `M` / `R` / `r` / `d` act on the selection, `x` stops a running
150
- agent (keeping its worktree), and `g` toggles the nested DAG view.
163
+ agent (keeping its worktree), `g` toggles the nested DAG view, and `o` opens the
164
+ web board.
151
165
 
152
166
  ## Commands and Orchestrator Skills
153
167
 
package/dist/backends.js CHANGED
@@ -42,10 +42,14 @@ function fakeBackend(id) {
42
42
  // test's ordering assertions) see the same run.process timing shape.
43
43
  request.run.process = {
44
44
  ...(request.run.process ?? {}),
45
- startedAt: nowIso(),
45
+ startedAt: request.run.process?.startedAt ?? nowIso(),
46
46
  };
47
47
  request.run.status = "running";
48
- await saveRunRecord(request.run);
48
+ await saveBackendRun(request.run);
49
+ const delayMs = Number(process.env.RUDDER_FAKE_BACKEND_DELAY_MS) || 0;
50
+ if (delayMs > 0) {
51
+ await new Promise((resolve) => setTimeout(resolve, delayMs));
52
+ }
49
53
  const root = request.run.worktree?.path ?? request.run.repoRoot;
50
54
  const source = request.run.task ?? request.prompt ?? "";
51
55
  const blocks = [...source.matchAll(/\[\[FAKE_FILE:(.+?)\]\]\n([\s\S]*?)\n\[\[\/FAKE_FILE\]\]/g)];
@@ -79,7 +83,7 @@ function fakeBackend(id) {
79
83
  exitCode: 0,
80
84
  signal: null,
81
85
  };
82
- await saveRunRecord(request.run);
86
+ await saveBackendRun(request.run);
83
87
  return 0;
84
88
  },
85
89
  };
@@ -101,7 +105,7 @@ function claudeBackend() {
101
105
  ...(request.run.session ?? {}),
102
106
  nativeSessionId: sessionId,
103
107
  };
104
- await saveRunRecord(request.run);
108
+ await saveBackendRun(request.run);
105
109
  const env = await backendEnv("anthropic");
106
110
  const effort = normalizeEffortForBackend("claude", request.run.effort);
107
111
  const args = compact([
@@ -152,21 +156,39 @@ function codexBackend() {
152
156
  const command = await ensureRudderCodexBinary();
153
157
  const env = await codexLaunchEnv(await backendEnv("openai"));
154
158
  const effort = normalizeEffortForBackend("codex", request.run.effort);
155
- const args = compact([
156
- "exec",
157
- "--json",
158
- "--color",
159
- "never",
160
- "--model",
161
- request.run.model || "gpt-5.5",
162
- "--dangerously-bypass-approvals-and-sandbox",
163
- "--enable",
164
- "goals",
165
- ...CODEX_RUDDER_CONFIG_ARGS,
166
- effort ? "-c" : undefined,
167
- effort ? `model_reasoning_effort="${effort}"` : undefined,
168
- `${request.contract}\n\n${prompt}`,
169
- ]);
159
+ const sessionId = request.run.session?.nativeSessionId;
160
+ const isFollowUp = (request.run.turns?.length ?? 0) > 1 && Boolean(sessionId);
161
+ const args = compact(isFollowUp
162
+ ? [
163
+ "exec",
164
+ "resume",
165
+ "--json",
166
+ "--model",
167
+ request.run.model || "gpt-5.5",
168
+ "--dangerously-bypass-approvals-and-sandbox",
169
+ "--enable",
170
+ "goals",
171
+ ...CODEX_RUDDER_CONFIG_ARGS,
172
+ effort ? "-c" : undefined,
173
+ effort ? `model_reasoning_effort="${effort}"` : undefined,
174
+ sessionId,
175
+ `${request.contract}\n\n${prompt}`,
176
+ ]
177
+ : [
178
+ "exec",
179
+ "--json",
180
+ "--color",
181
+ "never",
182
+ "--model",
183
+ request.run.model || "gpt-5.5",
184
+ "--dangerously-bypass-approvals-and-sandbox",
185
+ "--enable",
186
+ "goals",
187
+ ...CODEX_RUDDER_CONFIG_ARGS,
188
+ effort ? "-c" : undefined,
189
+ effort ? `model_reasoning_effort="${effort}"` : undefined,
190
+ `${request.contract}\n\n${prompt}`,
191
+ ]);
170
192
  return await spawnAndStream({
171
193
  command,
172
194
  args,
@@ -198,7 +220,7 @@ function acpxBackend() {
198
220
  ...(request.run.session ?? {}),
199
221
  sessionName,
200
222
  };
201
- await saveRunRecord(request.run);
223
+ await saveBackendRun(request.run);
202
224
  await runCommand("acpx", ["codex", "sessions", "ensure", "--name", sessionName], {
203
225
  cwd: request.run.worktree.path,
204
226
  env,
@@ -297,10 +319,14 @@ async function spawnAndStream(params) {
297
319
  params.request.run.process = {
298
320
  ...(params.request.run.process ?? {}),
299
321
  pid: child.pid,
300
- startedAt: nowIso(),
322
+ backendPid: child.pid,
323
+ // startedAt identifies the owning worker attempt (and is the legacy
324
+ // ownership token when attemptId is absent). Do not replace it merely
325
+ // because the backend child started a moment later.
326
+ startedAt: params.request.run.process?.startedAt ?? nowIso(),
301
327
  };
302
328
  params.request.run.status = "running";
303
- await saveRunRecord(params.request.run);
329
+ await saveBackendRun(params.request.run);
304
330
  let outRest = "";
305
331
  let errRest = "";
306
332
  const streamState = { sawStreamingText: false };
@@ -371,7 +397,7 @@ async function spawnAndStream(params) {
371
397
  const previous = params.request.run.tokens;
372
398
  if (!previous || usageState.input + usageState.output >= previous.input + previous.output) {
373
399
  params.request.run.tokens = { input: usageState.input, output: usageState.output };
374
- await saveRunRecord(params.request.run);
400
+ await saveBackendRun(params.request.run);
375
401
  }
376
402
  }
377
403
  await params.emit({
@@ -405,7 +431,7 @@ async function emitBackendLine(run, line, emit, stderr, streamState) {
405
431
  ...(run.session ?? {}),
406
432
  nativeSessionId: sessionId,
407
433
  };
408
- await saveRunRecord(run);
434
+ await saveBackendRun(run);
409
435
  }
410
436
  await emit({
411
437
  ts: nowIso(),
@@ -416,7 +442,25 @@ async function emitBackendLine(run, line, emit, stderr, streamState) {
416
442
  });
417
443
  }
418
444
  function sessionIdFromBackendData(data) {
419
- return isRecord(data) && typeof data.session_id === "string" ? data.session_id : undefined;
445
+ if (!isRecord(data))
446
+ return undefined;
447
+ if (typeof data.session_id === "string")
448
+ return data.session_id;
449
+ // `codex exec --json` announces the resumable conversation with a
450
+ // thread.started event. Persist it so a web steer resumes model context rather
451
+ // than merely re-running in the same workspace.
452
+ return data.type === "thread.started" && typeof data.thread_id === "string"
453
+ ? data.thread_id
454
+ : undefined;
455
+ }
456
+ function saveBackendRun(run) {
457
+ const expectedAttemptId = run.process?.attemptId;
458
+ const expectedStartedAt = run.process?.startedAt;
459
+ return saveRunRecord(run, expectedAttemptId
460
+ ? { expectedAttemptId }
461
+ : expectedStartedAt
462
+ ? { expectedStartedAt }
463
+ : undefined);
420
464
  }
421
465
  /**
422
466
  * Best-effort token accounting. Parses a single backend stream line and raises
@@ -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,MAAM,EAAE;aACpB,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC;YAC/B,MAAM,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACjC,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,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACjC,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,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACjC,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,IAAI,GAAG,OAAO,CAAC;gBACnB,MAAM;gBACN,QAAQ;gBACR,SAAS;gBACT,OAAO;gBACP,SAAS;gBACT,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,SAAS;gBAC9B,4CAA4C;gBAC5C,UAAU;gBACV,OAAO;gBACP,GAAG,wBAAwB;gBAC3B,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;gBACzB,MAAM,CAAC,CAAC,CAAC,2BAA2B,MAAM,GAAG,CAAC,CAAC,CAAC,SAAS;gBACzD,GAAG,OAAO,CAAC,QAAQ,OAAO,MAAM,EAAE;aACnC,CAAC,CAAC;YACH,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,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACjC,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,SAAS,EAAE,MAAM,EAAE;KACpB,CAAC;IACF,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC;IACtC,MAAM,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAExC,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,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBAC1C,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,aAAa,CAAC,GAAG,CAAC,CAAC;IAC3B,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,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7F,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 +1 @@
1
- :root{--paper: #ffffff;--paper-2: #f6f7f9;--card: #ffffff;--ink: #1a1a1a;--ink-2: #5b6470;--line: #e6e7eb;--line-strong: #d3d6dc;--accent: #0b747c;--accent-deep: #0b6e74;--st-todo: #6b7280;--st-running: #b45309;--st-review: #0b747c;--st-done: #15803d;--st-failed: #c0392b;--st-conflict: #a21caf;--st-blocked: #64748b;--shadow-sm: 0 1px 2px rgba(16, 24, 40, .06);--shadow: 0 4px 14px rgba(16, 24, 40, .08);--shadow-lg: 0 16px 40px rgba(16, 24, 40, .1);--radius: 10px;--sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, monospace;--t-fast: .12s cubic-bezier(.2, .7, .2, 1);--t-slow: .2s cubic-bezier(.2, .7, .2, 1);color:var(--ink);background:var(--paper);font-family:var(--sans);font-size:15px;line-height:1.4;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--paper);color:var(--ink);min-height:100%}body:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background-image:linear-gradient(rgba(21,21,21,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(21,21,21,.022) 1px,transparent 1px);background-size:48px 48px;-webkit-mask-image:linear-gradient(to bottom,#000 0%,transparent 80%);mask-image:linear-gradient(to bottom,#000 0%,transparent 80%)}.mono{font-family:var(--mono);font-variant-ligatures:none}button{font-family:inherit}[data-status=todo]{--sc: var(--st-todo)}[data-status=running]{--sc: var(--st-running)}[data-status=review]{--sc: var(--st-review)}[data-status=done]{--sc: var(--st-done)}[data-status=failed]{--sc: var(--st-failed)}[data-status=conflict]{--sc: var(--st-conflict)}[data-status=blocked]{--sc: var(--st-blocked)}.page{min-height:100vh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 24px;background:var(--paper);border-bottom:1px solid var(--line-strong)}.brand{display:inline-flex;align-items:center;gap:10px}.brand-link{display:inline-flex;align-items:center;text-decoration:none;color:inherit;transition:transform var(--t-fast)}.brand-link:hover{transform:translate(-1px,-1px)}.brand-mark{color:var(--accent);font-size:19px;line-height:1}.brand-back{margin-left:6px;font-size:12px;color:var(--ink-2);white-space:nowrap}.brand-link:hover .brand-back{color:var(--accent)}.brand-name{font-size:15px;font-weight:600;letter-spacing:-.01em}.brand-sub{padding:1px 6px;border:1px solid var(--line);font-size:11px;color:var(--ink-2);text-transform:uppercase;letter-spacing:.08em}.btn{appearance:none;display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border:1px solid var(--line-strong);background:var(--card);color:var(--ink);font-size:13px;font-weight:560;cursor:pointer;box-shadow:var(--shadow-sm);transition:transform var(--t-fast),box-shadow var(--t-fast),background var(--t-fast)}.btn:hover:not(:disabled){transform:translate(-2px,-2px);box-shadow:var(--shadow)}.btn:active:not(:disabled){transform:translate(0);box-shadow:var(--shadow-sm)}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:var(--shadow-sm)}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-accent{background:var(--accent);color:#fff;border-color:var(--accent-deep)}.btn-accent:hover:not(:disabled){background:var(--accent-deep)}.btn-danger{background:var(--card);color:var(--st-failed);border-color:var(--st-failed)}.btn-danger:hover:not(:disabled){background:var(--st-failed);color:#fff}.index-main{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:48px 24px 80px}.index-title{margin:0;font-size:44px;font-weight:380;letter-spacing:-.02em;line-height:.95}.index-lede{margin:12px 0 40px;color:var(--ink-2);font-size:17px;max-width:60ch}.tile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:18px}.tile{display:block;width:100%;text-align:left;padding:20px;border:1px solid var(--line-strong);background:var(--card);box-shadow:var(--shadow-sm);cursor:pointer;transition:transform var(--t-fast),box-shadow var(--t-fast)}.tile:hover{transform:translate(-2px,-2px);box-shadow:var(--shadow)}.tile:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tile-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.tile-name{font-size:19px;font-weight:560;letter-spacing:-.01em}.tile-path{margin-top:6px;color:var(--ink-2);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tile-counts{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.count{display:inline-flex;align-items:center;gap:6px;padding:3px 8px;border:1px solid var(--line);background:var(--paper)}.count[data-zero=true]{opacity:.4}.count-n{font-size:13px;font-weight:700}.count-label{font-size:11px;color:var(--ink-2);text-transform:uppercase;letter-spacing:.06em}.count-running .count-n{color:var(--st-running)}.count-review .count-n{color:var(--st-review)}.count-todo .count-n{color:var(--st-todo)}.count-done .count-n{color:var(--st-done)}.count-blocked .count-n{color:var(--st-blocked)}.count-failed .count-n{color:var(--st-failed)}.board-page{height:100vh;overflow:hidden}.board-topbar{flex:0 0 auto}.toolbar-actions{display:flex;align-items:center;gap:12px}.view-toggle{display:inline-flex;border:1px solid var(--line-strong);background:var(--card);box-shadow:var(--shadow-sm)}.toggle{appearance:none;display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border:none;border-right:1px solid var(--line);background:transparent;color:var(--ink-2);font-size:13px;font-weight:560;cursor:pointer;transition:background var(--t-fast),color var(--t-fast)}.toggle:last-child{border-right:none}.toggle:hover:not(:disabled):not(.toggle-on){background:var(--paper-2);color:var(--ink)}.toggle-on{background:var(--ink);color:var(--paper)}.toggle-disabled{opacity:.4;cursor:not-allowed}.toggle-badge{padding:0 5px;font-size:10px;font-weight:700;background:var(--accent);color:#fff}.toggle-on .toggle-badge{background:var(--paper);color:var(--ink)}.conn{display:inline-flex;align-items:center;gap:6px;margin-left:4px;padding:2px 8px;border:1px solid var(--line)}.conn-dot{width:7px;height:7px;background:var(--st-done)}.conn-live .conn-dot{background:var(--st-done)}.conn-warn{border-color:var(--st-running)}.conn-warn .conn-dot{background:var(--st-running)}.conn-dot-pulse{animation:pulse 1.1s ease-in-out infinite}.conn-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2)}.board-main{flex:1;min-height:0;overflow:hidden;padding:18px 18px 0}.board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;height:100%}.column{display:flex;flex-direction:column;min-height:0;background:var(--paper-2);border:1px solid var(--line)}.column-head{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:11px 14px;border-bottom:1px solid var(--line);background:var(--paper-2)}.column-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-2)}.column-count{font-size:12px;font-weight:700;color:var(--ink);padding:1px 7px;border:1px solid var(--line);background:var(--paper)}.column-body{flex:1;min-height:0;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:12px}.column-empty{padding:16px 4px;text-align:center;color:var(--ink-2);opacity:.55;font-size:12px;text-transform:uppercase;letter-spacing:.08em}.card{position:relative;display:flex;padding:0;border:1px solid var(--line-strong);background:var(--card);box-shadow:var(--shadow-sm);cursor:pointer;overflow:hidden;transition:transform var(--t-fast),box-shadow var(--t-fast)}.card:hover{transform:translate(-2px,-2px);box-shadow:var(--shadow)}.card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.card-selected{box-shadow:0 0 0 2px var(--accent),var(--shadow)}.card-spine{flex:0 0 4px;width:4px;background:var(--sc, var(--st-todo))}.card-body{flex:1;min-width:0;padding:12px 14px;display:flex;flex-direction:column;gap:8px}.card-top{display:flex;align-items:center;gap:8px}.card-status{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--sc, var(--st-todo))}.flag{padding:1px 6px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.flag-blocked{color:#fff;background:var(--st-blocked)}.card-title{margin:0;font-size:14px;font-weight:560;line-height:1.3;letter-spacing:-.005em;color:var(--ink);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.card-meta{display:flex;flex-wrap:wrap;gap:8px;font-size:11px;color:var(--ink-2)}.card-backend{color:var(--ink);font-weight:700}.card-model{color:var(--st-conflict)}.card-effort{color:var(--ink-2)}.card-lastline{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--ink-2);background:var(--paper);border:1px solid var(--line);padding:5px 8px}.lastline-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.pulse-dot{flex:0 0 auto;width:7px;height:7px;background:var(--st-running);animation:pulse 1.1s ease-in-out infinite}.card-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px}.tokens{display:inline-flex;gap:8px;color:var(--ink-2)}.tok-in{color:var(--st-review)}.tok-out{color:var(--st-running)}.dep-badge{display:inline-flex;gap:6px}.dep{padding:1px 5px;border:1px solid var(--line);font-size:10px;text-transform:uppercase;letter-spacing:.04em}.dep-hard{color:var(--st-failed);border-color:var(--st-failed)}.dep-soft{color:var(--ink-2)}.overlay{position:fixed;inset:0;z-index:40;display:flex;align-items:flex-start;justify-content:center;padding-top:12vh;background:#15151552;animation:fade var(--t-slow)}.composer{width:min(640px,calc(100vw - 48px));background:var(--card);border:1px solid var(--line-strong);box-shadow:var(--shadow-lg);animation:rise var(--t-slow)}.composer-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line)}.composer-title{font-size:15px;font-weight:600}.composer-hint{font-size:11px;color:var(--ink-2)}.composer-input{display:block;width:100%;border:none;border-bottom:1px solid var(--line);background:var(--paper);color:var(--ink);padding:14px 16px;font-size:13px;line-height:1.5;resize:vertical}.composer-input:focus{outline:none;background:#fff}.composer-input::placeholder{color:var(--ink-2);opacity:.7}.composer-actions{display:flex;justify-content:flex-end;gap:10px;padding:14px 16px}.drawer-overlay{position:fixed;inset:0;z-index:50;background:#15151552;animation:fade var(--t-slow)}.drawer{position:absolute;top:0;right:0;height:100%;width:min(560px,calc(100vw - 40px));display:flex;flex-direction:column;background:var(--card);border-left:1px solid var(--line-strong);box-shadow:var(--shadow-lg);animation:slide-in var(--t-slow)}.drawer-spine{position:absolute;top:0;left:0;bottom:0;width:4px;background:var(--sc, var(--st-todo))}.drawer-head{flex:0 0 auto;padding:18px 20px 16px 22px;border-bottom:1px solid var(--line)}.drawer-head-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.drawer-close{appearance:none;border:1px solid var(--line);background:var(--paper);color:var(--ink-2);width:26px;height:26px;cursor:pointer;font-size:12px;transition:background var(--t-fast),color var(--t-fast)}.drawer-close:hover{background:var(--ink);color:var(--paper)}.drawer-title{margin:0 0 10px;font-size:20px;font-weight:500;letter-spacing:-.01em;line-height:1.2}.drawer-meta{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--ink-2)}.drawer-meta span:first-child{color:var(--ink);font-weight:700}.drawer-worktree{margin-top:10px;padding:5px 8px;background:var(--paper);border:1px solid var(--line);font-size:11px;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drawer-actions{flex:0 0 auto;display:flex;align-items:center;gap:10px;padding:14px 20px 14px 22px;border-bottom:1px solid var(--line)}.action-msg{font-size:12px;color:var(--st-done)}.action-err{font-size:12px;color:var(--st-failed)}.drawer-log{flex:1;min-height:0;display:flex;flex-direction:column;padding:0 0 0 18px}.drawer-log-head{display:flex;align-items:center;gap:8px;padding:12px 20px 8px 4px;font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-2)}.log-pre{flex:1;min-height:0;margin:0;overflow:auto;padding:14px 20px 20px 4px;font-size:12px;line-height:1.5;color:var(--ink);white-space:pre-wrap;word-break:break-word;background:var(--paper);border-top:1px solid var(--line)}.memory{flex:1;overflow-y:auto;max-width:860px;margin:0 auto;padding:8px 6px 40px;display:flex;flex-direction:column;gap:0}.memory-entry{position:relative;display:flex;gap:16px;padding:16px 4px 16px 0;border-bottom:1px solid var(--line)}.memory-bead{flex:0 0 auto;margin-top:5px;width:11px;height:11px;background:var(--accent);border:1px solid var(--line-strong)}.memory-content{flex:1;min-width:0}.memory-text{margin:0;font-size:14px;line-height:1.5;color:var(--ink)}.memory-meta{display:flex;gap:12px;margin-top:6px;font-size:11px;color:var(--ink-2)}.memory-owner{color:var(--accent);font-weight:700}.nest{height:100%;min-height:0;overflow:auto;padding:8px 4px 24px}.nest-svg{display:block}.nest .edge-hard{stroke:var(--line-strong);stroke-width:2;marker-end:url(#arrow)}.nest .edge-soft{stroke:var(--line);stroke-width:1.5;stroke-dasharray:4 4;opacity:.6;marker-end:url(#arrow-soft)}.nest .arrow-head{fill:var(--line-strong)}.nest .arrow-head-soft{fill:var(--line)}.nest .node{cursor:pointer}.nest .node:focus-visible{outline:none}.nest .node-box{fill:var(--card);stroke:var(--sc, var(--st-todo));stroke-width:2;transition:transform var(--t-fast)}.nest .node:hover .node-box{fill:var(--paper)}.nest .node-selected .node-box{stroke:var(--accent);stroke-width:3}.nest .node-spine{fill:var(--sc, var(--st-todo))}.nest .node-status{fill:var(--sc, var(--st-todo));font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.nest .node-title{fill:var(--ink);font-family:var(--sans);font-size:13px;font-weight:560}.nest .node:focus-visible .node-box{stroke:var(--accent);stroke-width:3}.banner{padding:10px 12px;border:1px solid var(--line-strong);font-size:12px;margin:12px 0}.banner-error{color:var(--st-failed);border-color:var(--st-failed);background:var(--card)}.empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:80px 20px;text-align:center}.empty-title{font-size:18px;font-weight:500;color:var(--ink)}.empty-sub{font-size:12px;color:var(--ink-2)}.tile-skeleton,.card-skeleton{cursor:default;display:flex;flex-direction:column;gap:10px;padding:18px}.card-skeleton:hover,.tile-skeleton:hover{transform:none;box-shadow:var(--shadow-sm)}.skel{background:var(--paper-2);border:1px solid var(--line)}.skel-line{height:12px}.skel-row{height:28px;margin-top:8px}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.8)}}@keyframes slide-in{0%{transform:translate(24px);opacity:.6}to{transform:translate(0);opacity:1}}@keyframes rise{0%{transform:translateY(-12px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes fade{0%{opacity:0}to{opacity:1}}@media (max-width: 900px){.board{grid-template-columns:repeat(2,minmax(0,1fr));height:auto}.board-page{height:auto;overflow:auto}.board-main{overflow:visible}.column{min-height:200px}}@media (max-width: 560px){.board{grid-template-columns:1fr}.drawer{width:100vw}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.pulse-dot,.conn-dot-pulse{animation:none!important;opacity:1!important}}.activity{flex:1;min-height:0;display:flex;flex-direction:column;max-width:920px;width:100%;margin:0 auto;padding:8px 6px 24px}.activity-steer{flex:0 0 auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow-sm);padding:12px 14px;margin-bottom:14px}.activity-steer-head,.drawer-steer-head{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-2);margin-bottom:8px}.steer-row{display:flex;gap:8px;align-items:center}.steer-input{flex:1;min-width:0;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);padding:9px 12px;font-size:13px}.steer-input:focus{outline:none;border-color:var(--accent)}.steer-input::placeholder{color:var(--ink-2);opacity:.7}.steer .action-msg,.steer .action-err{display:inline-block;margin-top:6px}.activity-feed{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:2px;padding:4px 2px 8px}.activity-entry{display:flex;align-items:baseline;gap:10px;padding:7px 10px;border-radius:8px;font-size:13px;line-height:1.45;color:var(--ink)}.activity-entry:hover{background:var(--paper)}.activity-dot{flex:0 0 auto;width:6px;height:6px;border-radius:50%;background:var(--accent);transform:translateY(-1px)}.activity-heartbeat{color:var(--ink-2)}.activity-heartbeat .activity-dot{background:var(--st-blocked)}.activity-text{flex:1;word-break:break-word}.activity-ts{flex:0 0 auto;font-size:11px;color:var(--ink-2);opacity:.8}.drawer-steer{flex:0 0 auto;padding:12px 20px 12px 22px;border-bottom:1px solid var(--line)}.activity-ticker{display:inline-flex;align-items:center;gap:7px;max-width:42ch;margin-left:6px;padding:4px 10px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--ink-2);font-size:12px;cursor:pointer;transition:border-color var(--t-fast),color var(--t-fast)}.activity-ticker:hover{border-color:var(--accent);color:var(--ink)}.activity-ticker-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
1
+ :root{--paper: #ffffff;--paper-2: #fafafa;--card: #ffffff;--ink: #111111;--ink-2: #6b7280;--line: #e8e8e8;--line-strong: #d9d9d9;--accent: #0b747c;--accent-deep: #0b6e74;--st-todo: #6b7280;--st-running: #b45309;--st-review: #0b747c;--st-done: #15803d;--st-failed: #c0392b;--st-conflict: #a21caf;--st-blocked: #64748b;--shadow-sm: 0 1px 2px rgba(17, 17, 17, .04);--shadow: 0 3px 10px rgba(17, 17, 17, .06);--shadow-lg: 0 18px 48px rgba(17, 17, 17, .12);--radius: 8px;--sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, monospace;--t-fast: .12s cubic-bezier(.2, .7, .2, 1);--t-slow: .2s cubic-bezier(.2, .7, .2, 1);color:var(--ink);background:var(--paper);font-family:var(--sans);font-size:15px;line-height:1.4;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--paper);color:var(--ink);min-height:100%}.mono{font-family:var(--mono);font-variant-ligatures:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}button{font-family:inherit}button:focus-visible{outline:2px solid var(--ink);outline-offset:2px}[data-status=todo]{--sc: var(--st-todo)}[data-status=running]{--sc: var(--st-running)}[data-status=review]{--sc: var(--st-review)}[data-status=done]{--sc: var(--st-done)}[data-status=failed]{--sc: var(--st-failed)}[data-status=conflict]{--sc: var(--st-conflict)}[data-status=blocked]{--sc: var(--st-blocked)}.page{min-height:100vh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 24px;background:var(--paper);border-bottom:1px solid var(--line-strong)}.brand{display:inline-flex;align-items:center;gap:10px}.brand-link{display:inline-flex;align-items:center;text-decoration:none;color:inherit;transition:color var(--t-fast)}.brand-link:hover{color:var(--ink-2)}.brand-mark{color:var(--ink);font-size:19px;line-height:1}.brand-back{margin-left:6px;font-size:12px;color:var(--ink-2);white-space:nowrap}.brand-link:hover .brand-back{color:var(--accent)}.brand-name{font-size:15px;font-weight:500;letter-spacing:-.01em}.brand-sub{padding:1px 6px;border:1px solid var(--line);font-size:11px;color:var(--ink-2);text-transform:uppercase;letter-spacing:.08em}.btn{appearance:none;display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border:1px solid var(--line-strong);background:var(--card);color:var(--ink);font-size:13px;font-weight:500;cursor:pointer;border-radius:7px;box-shadow:none;transition:border-color var(--t-fast),background var(--t-fast),color var(--t-fast)}.btn:hover:not(:disabled){border-color:#b8b8b8;background:var(--paper-2)}.btn:active:not(:disabled){background:#f2f2f2}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.btn:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.btn-accent{background:var(--ink);color:#fff;border-color:var(--ink)}.btn-accent:hover:not(:disabled){background:#2a2a2a;border-color:#2a2a2a}.btn-danger{background:var(--card);color:var(--st-failed);border-color:var(--st-failed)}.btn-danger:hover:not(:disabled){background:var(--st-failed);color:#fff}.index-main{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:48px 24px 80px}.index-title{margin:0;font-size:44px;font-weight:400;letter-spacing:-.02em;line-height:.95}.index-lede{margin:12px 0 40px;color:var(--ink-2);font-size:17px;max-width:60ch}.tile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:18px}.tile{display:block;width:100%;text-align:left;padding:20px;border:1px solid var(--line-strong);background:var(--card);border-radius:var(--radius);box-shadow:none;cursor:pointer;transition:border-color var(--t-fast),background var(--t-fast)}.tile:hover{border-color:#b8b8b8;background:#fdfdfd}.tile:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tile-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.tile-name{font-size:19px;font-weight:500;letter-spacing:-.01em}.tile-path{margin-top:6px;color:var(--ink-2);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tile-counts{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.count{display:inline-flex;align-items:center;gap:6px;padding:3px 8px;border:1px solid var(--line);background:var(--paper)}.count[data-zero=true]{opacity:.4}.count-n{font-size:13px;font-weight:500}.count-label{font-size:11px;color:var(--ink-2);text-transform:uppercase;letter-spacing:.06em}.count-running .count-n{color:var(--st-running)}.count-review .count-n{color:var(--st-review)}.count-todo .count-n{color:var(--st-todo)}.count-done .count-n{color:var(--st-done)}.count-blocked .count-n{color:var(--st-blocked)}.count-failed .count-n{color:var(--st-failed)}.board-page{height:100vh;overflow:hidden}.board-topbar{flex:0 0 auto}.toolbar-actions{display:flex;align-items:center;gap:12px}.readonly-pill{display:inline-flex;align-items:center;min-height:30px;padding:0 10px;border:1px solid var(--line-strong);border-radius:999px;color:var(--ink-2);font-size:11px;letter-spacing:.05em;text-transform:uppercase}.view-toggle{display:inline-flex;border:1px solid var(--line-strong);background:var(--card);border-radius:7px;box-shadow:none;overflow:hidden}.toggle{appearance:none;display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border:none;border-right:1px solid var(--line);background:transparent;color:var(--ink-2);font-size:13px;font-weight:500;cursor:pointer;transition:background var(--t-fast),color var(--t-fast)}.toggle:last-child{border-right:none}.toggle:hover:not(:disabled):not(.toggle-on){background:var(--paper-2);color:var(--ink)}.toggle-on{background:var(--ink);color:var(--paper)}.toggle-disabled{opacity:.4;cursor:not-allowed}.toggle-badge{padding:0 5px;font-size:10px;font-weight:500;background:var(--accent);color:#fff}.toggle-on .toggle-badge{background:var(--paper);color:var(--ink)}.conn{display:inline-flex;align-items:center;gap:6px;margin-left:4px;padding:2px 8px;border:1px solid var(--line);border-radius:999px}.conn-dot{width:7px;height:7px;background:var(--st-done)}.conn-live .conn-dot{background:var(--st-done)}.conn-warn{border-color:var(--st-running)}.conn-warn .conn-dot{background:var(--st-running)}.conn-dot-pulse{animation:pulse 1.1s ease-in-out infinite}.conn-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2)}.board-main{flex:1;min-height:0;overflow:hidden;padding:18px 18px 0}.board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;height:100%}.column{display:flex;flex-direction:column;min-height:0;background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius) var(--radius) 0 0;overflow:hidden}.column-head{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:11px 14px;border-bottom:1px solid var(--line);background:var(--paper-2)}.column-title{font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-2)}.column-count{font-size:12px;font-weight:500;color:var(--ink);padding:1px 7px;border:1px solid var(--line);background:var(--paper)}.column-body{flex:1;min-height:0;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:12px}.column-empty{padding:16px 4px;text-align:center;color:var(--ink-2);opacity:.55;font-size:12px;text-transform:uppercase;letter-spacing:.08em}.card{position:relative;display:flex;padding:0;border:1px solid var(--line-strong);background:var(--card);border-radius:var(--radius);box-shadow:none;cursor:pointer;overflow:hidden;transition:border-color var(--t-fast),box-shadow var(--t-fast)}.card:hover{border-color:#b8b8b8;box-shadow:var(--shadow-sm)}.card:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.card-selected{box-shadow:0 0 0 2px var(--accent),var(--shadow)}.card-spine{flex:0 0 4px;width:4px;background:var(--sc, var(--st-todo))}.card-body{flex:1;min-width:0;padding:12px 14px;display:flex;flex-direction:column;gap:8px}.card-top{display:flex;align-items:center;gap:8px}.card-status{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:var(--sc, var(--st-todo))}.flag{padding:1px 6px;font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.06em}.flag-blocked{color:#fff;background:var(--st-blocked)}.card-title{margin:0;font-size:14px;font-weight:500;line-height:1.3;letter-spacing:-.005em;color:var(--ink);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.card-meta{display:flex;flex-wrap:wrap;gap:8px;font-size:11px;color:var(--ink-2)}.card-backend{color:var(--ink);font-weight:500}.card-model{color:var(--st-conflict)}.card-effort{color:var(--ink-2)}.card-lastline{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--ink-2);background:var(--paper);border:1px solid var(--line);padding:5px 8px}.lastline-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.pulse-dot{flex:0 0 auto;width:7px;height:7px;background:var(--st-running);animation:pulse 1.1s ease-in-out infinite}.card-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px}.tokens{display:inline-flex;gap:8px;color:var(--ink-2)}.tok-in{color:var(--st-review)}.tok-out{color:var(--st-running)}.dep-badge{display:inline-flex;gap:6px}.dep{padding:1px 5px;border:1px solid var(--line);font-size:10px;text-transform:uppercase;letter-spacing:.04em}.dep-hard{color:var(--st-failed);border-color:var(--st-failed)}.dep-soft{color:var(--ink-2)}.overlay{position:fixed;inset:0;z-index:40;display:flex;align-items:flex-start;justify-content:center;padding-top:12vh;background:#11111114;animation:fade var(--t-slow)}.composer{width:min(640px,calc(100vw - 48px));background:var(--card);border:1px solid var(--line-strong);border-radius:10px;box-shadow:var(--shadow-lg);overflow:hidden;animation:rise var(--t-slow)}.composer-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line)}.composer-title{font-size:15px;font-weight:500}.composer-hint{font-size:11px;color:var(--ink-2)}.composer-input{display:block;width:100%;border:none;border-bottom:1px solid var(--line);background:var(--paper);color:var(--ink);padding:14px 16px;font-size:13px;line-height:1.5;resize:vertical}.composer-input:focus{outline:none;background:#fff}.composer-input::placeholder{color:var(--ink-2);opacity:.7}.composer-actions{display:flex;justify-content:flex-end;gap:10px;padding:14px 16px}.drawer-overlay{position:fixed;inset:0;z-index:50;background:#11111114;animation:fade var(--t-slow)}.drawer{position:absolute;top:0;right:0;height:100%;width:min(620px,calc(100vw - 40px));display:flex;flex-direction:column;background:var(--card);border-left:1px solid var(--line-strong);box-shadow:var(--shadow-lg);animation:slide-in var(--t-slow)}.drawer:focus{outline:none}.drawer-spine{position:absolute;top:0;left:0;bottom:0;width:4px;background:var(--sc, var(--st-todo))}.drawer-head{flex:0 0 auto;padding:18px 20px 16px 22px;border-bottom:1px solid var(--line)}.drawer-head-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.drawer-close{appearance:none;border:1px solid var(--line);background:var(--paper);color:var(--ink-2);width:26px;height:26px;border-radius:6px;cursor:pointer;font-size:12px;transition:background var(--t-fast),color var(--t-fast)}.drawer-close:hover{background:var(--ink);color:var(--paper)}.drawer-title{margin:0 0 10px;font-size:20px;font-weight:500;letter-spacing:-.01em;line-height:1.2}.drawer-meta{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--ink-2)}.drawer-meta span:first-child{color:var(--ink);font-weight:500}.drawer-worktree{margin-top:10px;padding:5px 8px;background:var(--paper);border:1px solid var(--line);border-radius:6px;font-size:11px;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drawer-actions{flex:0 0 auto;display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:14px 20px 14px 22px;border-bottom:1px solid var(--line)}.action-msg{font-size:12px;color:var(--st-done)}.action-err{font-size:12px;color:var(--st-failed)}.drawer-scroll{flex:1;min-height:0;overflow-y:auto}.task-updates{padding:18px 20px 8px 22px;border-bottom:1px solid var(--line)}.task-updates-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.task-updates-head h3{margin:0;font-size:13px;font-weight:500}.task-updates-count{min-width:22px;padding:1px 6px;border:1px solid var(--line);border-radius:999px;color:var(--ink-2);font-size:10px;text-align:center}.task-thread{display:flex;flex-direction:column}.task-thread-empty{margin:8px 0 10px;color:var(--ink-2);font-size:13px}.task-update{display:flex;gap:10px;padding:12px 0;border-top:1px solid var(--line)}.task-update:first-child{border-top:none}.task-update-avatar{flex:0 0 auto;display:grid;place-items:center;width:24px;height:24px;border:1px solid var(--line-strong);border-radius:50%;background:var(--paper);color:var(--ink);font-size:10px;font-weight:500}.task-update-avatar-agent{background:var(--ink);border-color:var(--ink);color:var(--paper)}.task-update-body{flex:1;min-width:0}.task-update-meta{display:flex;align-items:baseline;justify-content:space-between;gap:12px;color:var(--ink-2);font-size:11px}.task-update-meta span:first-child{color:var(--ink);font-weight:500}.task-update-body p{margin:4px 0 0;color:var(--ink);font-size:13px;line-height:1.5;overflow-wrap:anywhere}.task-update-agent .task-update-body p{padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:var(--paper-2);color:var(--ink-2);font-size:11px}.drawer-log{padding:0 20px 20px 22px}.drawer-log-head{display:flex;align-items:center;gap:8px;padding:16px 0 8px;font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-2)}.log-pre{min-height:150px;max-height:320px;margin:0;overflow:auto;padding:12px;font-size:12px;line-height:1.5;color:var(--ink);white-space:pre-wrap;word-break:break-word;background:var(--paper-2);border:1px solid var(--line);border-radius:7px}.log-loading{display:flex;flex-direction:column;gap:10px}.memory{flex:1;overflow-y:auto;max-width:860px;margin:0 auto;padding:8px 6px 40px;display:flex;flex-direction:column;gap:0}.memory-entry{position:relative;display:flex;gap:16px;padding:16px 4px 16px 0;border-bottom:1px solid var(--line)}.memory-bead{flex:0 0 auto;margin-top:5px;width:11px;height:11px;background:var(--accent);border:1px solid var(--line-strong)}.memory-content{flex:1;min-width:0}.memory-text{margin:0;font-size:14px;line-height:1.5;color:var(--ink)}.memory-meta{display:flex;gap:12px;margin-top:6px;font-size:11px;color:var(--ink-2)}.memory-owner{color:var(--accent);font-weight:500}.nest{height:100%;min-height:0;overflow:auto;padding:8px 4px 24px}.nest-svg{display:block}.nest .edge-hard{stroke:var(--line-strong);stroke-width:2;marker-end:url(#arrow)}.nest .edge-soft{stroke:var(--line);stroke-width:1.5;stroke-dasharray:4 4;opacity:.6;marker-end:url(#arrow-soft)}.nest .arrow-head{fill:var(--line-strong)}.nest .arrow-head-soft{fill:var(--line)}.nest .node{cursor:pointer}.nest .node:focus-visible{outline:none}.nest .node-box{fill:var(--card);stroke:var(--sc, var(--st-todo));stroke-width:2;transition:transform var(--t-fast)}.nest .node:hover .node-box{fill:var(--paper)}.nest .node-selected .node-box{stroke:var(--accent);stroke-width:3}.nest .node-spine{fill:var(--sc, var(--st-todo))}.nest .node-status{fill:var(--sc, var(--st-todo));font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.06em}.nest .node-title{fill:var(--ink);font-family:var(--sans);font-size:13px;font-weight:500}.nest .node:focus-visible .node-box{stroke:var(--accent);stroke-width:3}.banner{padding:10px 12px;border:1px solid var(--line-strong);font-size:12px;margin:12px 0}.banner-error{color:var(--st-failed);border-color:var(--st-failed);background:var(--card)}.empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:80px 20px;text-align:center}.empty-title{font-size:18px;font-weight:500;color:var(--ink)}.empty-sub{font-size:12px;color:var(--ink-2)}.tile-skeleton,.card-skeleton{cursor:default;display:flex;flex-direction:column;gap:10px;padding:18px}.card-skeleton:hover,.tile-skeleton:hover{transform:none;box-shadow:var(--shadow-sm)}.skel{background:var(--paper-2);border:1px solid var(--line)}.skel-line{height:12px}.skel-row{height:28px;margin-top:8px}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.8)}}@keyframes slide-in{0%{transform:translate(24px);opacity:.6}to{transform:translate(0);opacity:1}}@keyframes rise{0%{transform:translateY(-12px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes fade{0%{opacity:0}to{opacity:1}}@media (max-width: 900px){.board{grid-template-columns:repeat(2,minmax(0,1fr));height:auto}.board-page{height:auto;overflow:auto}.board-main{overflow:visible}.column{min-height:200px}}@media (max-width: 560px){.board{grid-template-columns:1fr}.drawer{width:100vw}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.pulse-dot,.conn-dot-pulse{animation:none!important;opacity:1!important}}.activity{flex:1;min-height:0;display:flex;flex-direction:column;max-width:920px;width:100%;margin:0 auto;padding:8px 6px 24px}.activity-steer{flex:0 0 auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);box-shadow:none;padding:14px;margin-bottom:14px}.steer{display:flex;flex-direction:column;gap:8px}.steer-label{color:var(--ink);font-size:13px;font-weight:500}.steer-input{display:block;width:100%;min-height:78px;max-height:180px;border:1px solid var(--line);border-radius:7px;background:var(--paper);color:var(--ink);padding:10px 11px;font-family:var(--sans);font-size:13px;line-height:1.5;resize:vertical}.steer-input:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}.steer-input::placeholder{color:var(--ink-2);opacity:.7}.steer-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.steer-hint{color:var(--ink-2);font-family:var(--mono);font-size:10px}.steer-feedback{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-left:2px solid var(--line-strong);background:var(--paper-2);font-size:11px}.steer-feedback-delivered,.steer-feedback-accepted{border-left-color:var(--st-done)}.steer-feedback-failed{border-left-color:var(--st-failed)}.steer-feedback-state{color:var(--ink);font-weight:500}.steer-feedback-text{overflow:hidden;color:var(--ink-2);text-overflow:ellipsis;white-space:nowrap}.steer-error{padding:8px 10px;border:1px solid color-mix(in srgb,var(--st-failed) 35%,var(--line));border-radius:6px;background:color-mix(in srgb,var(--st-failed) 4%,var(--paper))}.activity-feed{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:2px;padding:4px 2px 8px}.activity-entry{display:flex;align-items:baseline;gap:10px;padding:7px 10px;border-radius:8px;font-size:13px;line-height:1.45;color:var(--ink)}.activity-entry:hover{background:var(--paper)}.activity-dot{flex:0 0 auto;width:6px;height:6px;border-radius:50%;background:var(--accent);transform:translateY(-1px)}.activity-heartbeat{color:var(--ink-2)}.activity-heartbeat .activity-dot{background:var(--st-blocked)}.activity-text{flex:1;word-break:break-word}.activity-ts{flex:0 0 auto;font-size:11px;color:var(--ink-2);opacity:.8}.drawer-steer{flex:0 0 auto;padding:14px 20px 16px 22px;border-top:1px solid var(--line);background:var(--paper)}.activity-ticker{display:inline-flex;align-items:center;gap:7px;max-width:42ch;margin-left:6px;padding:4px 10px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--ink-2);font-size:12px;cursor:pointer;transition:border-color var(--t-fast),color var(--t-fast)}.activity-ticker:hover{border-color:var(--accent);color:var(--ink)}.activity-ticker-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}