codedeck 0.5.3 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/README.md +2 -1
  2. package/dist/cli/commands/open.js +94 -2
  3. package/dist/cli/commands/open.js.map +1 -1
  4. package/dist/cli/commands/review.js +122 -0
  5. package/dist/cli/commands/review.js.map +1 -0
  6. package/dist/cli/commands/usage-backfill.js +149 -0
  7. package/dist/cli/commands/usage-backfill.js.map +1 -0
  8. package/dist/cli/commands/usage.js +49 -4
  9. package/dist/cli/commands/usage.js.map +1 -1
  10. package/dist/cli/index.js +3 -3
  11. package/dist/cli/index.js.map +1 -1
  12. package/dist/core/claude-transcript.js +139 -0
  13. package/dist/core/claude-transcript.js.map +1 -0
  14. package/dist/core/pricing.js +14 -5
  15. package/dist/core/pricing.js.map +1 -1
  16. package/dist/core/run-usage.js +53 -10
  17. package/dist/core/run-usage.js.map +1 -1
  18. package/dist/core/usage-source.js +17 -0
  19. package/dist/core/usage-source.js.map +1 -0
  20. package/dist/daemon/daemon.js +216 -8
  21. package/dist/daemon/daemon.js.map +1 -1
  22. package/dist/daemon/ipc.js +4 -3
  23. package/dist/daemon/ipc.js.map +1 -1
  24. package/dist/drivers/opencode/driver.js +24 -2
  25. package/dist/drivers/opencode/driver.js.map +1 -1
  26. package/dist/drivers/session-driver.js +7 -1
  27. package/dist/drivers/session-driver.js.map +1 -1
  28. package/dist/open/launchers/claude.js +78 -2
  29. package/dist/open/launchers/claude.js.map +1 -1
  30. package/dist/open/link-watcher.js +44 -0
  31. package/dist/open/link-watcher.js.map +1 -0
  32. package/dist/open/runtime.js +15 -12
  33. package/dist/open/runtime.js.map +1 -1
  34. package/dist/plugin/hooks/pane-toggle.ts +13 -0
  35. package/dist/plugin/hooks/register.tsx +20 -29
  36. package/dist/plugin/hooks/session-id.sh +1 -1
  37. package/dist/plugin/mods/agents/pane.ts +67 -30
  38. package/dist/plugin/mods/agents/types.ts +5 -1
  39. package/dist/plugin/statusline.sh +40 -3
  40. package/dist/store/database.js +44 -0
  41. package/dist/store/database.js.map +1 -1
  42. package/dist/store/native-links.js +80 -0
  43. package/dist/store/native-links.js.map +1 -0
  44. package/dist/store/sessions.js +113 -41
  45. package/dist/store/sessions.js.map +1 -1
  46. package/dist/store/usage-ledger.js +153 -0
  47. package/dist/store/usage-ledger.js.map +1 -0
  48. package/dist/web/review-page.js +1 -2
  49. package/dist/web/review-page.js.map +1 -1
  50. package/package.json +1 -1
package/README.md CHANGED
@@ -93,6 +93,7 @@ The daemon owns the sessions. The CLI only follows events — closing the termin
93
93
  | `npx codedeck send <id> "<msg>"` | Continue a session (new turn) |
94
94
  | `npx codedeck stop <id>` | Graceful interrupt → SIGTERM → SIGKILL |
95
95
  | `npx codedeck diff <id> [--stat] [--json]` | Git diff against base commit |
96
+ | `npx codedeck review [--port <n>] [--no-open]` | Open a local review of the current git changes |
96
97
 
97
98
  ## Open
98
99
 
@@ -125,7 +126,7 @@ Two things worth knowing before you edit an agent file. `--agent` layers on top
125
126
  npx codedeck run "review the diff on this branch" --agent codex --role reviewer
126
127
  ```
127
128
 
128
- `--no-bypass` drops the bypass flag, `--no-theme` keeps the status line but drops everything else the look changes, `--no-pty` opts out of the session naming itself, and `--model`/`--effort`/`--resume`/`--worktree` override the defaults.
129
+ `--no-bypass` drops the bypass flag, `--no-theme` keeps the status line but drops everything else the look changes, `--no-pty` opts out of the session naming itself, and `--model`/`--effort`/`--resume`/`--worktree` override the defaults. Interactive opens ask about a worktree when neither `--worktree` nor `--no-worktree` is set.
129
130
 
130
131
  ### What the session looks like
131
132
 
@@ -12,6 +12,7 @@ import { createWorktree } from "../../git/worktree.js";
12
12
  import { ptyShimPath } from "../../open/pty.js";
13
13
  import { isInteractiveTerminal } from "./setup.js";
14
14
  import { sessionsDir } from "../../open/pty.js";
15
+ import { startLinkWatcher } from "../../open/link-watcher.js";
15
16
  import { ROLES, parseRole, resolvePluginDir } from "../../core/roles.js";
16
17
  import { getCliName } from "../cli-name.js";
17
18
  import { effectiveModel, resolveOpenModel } from "../../open/contract.js";
@@ -214,6 +215,54 @@ function selectRole() {
214
215
  ask();
215
216
  });
216
217
  }
218
+ export function askWorktree() {
219
+ const rl = readline.createInterface({
220
+ input: process.stdin,
221
+ output: process.stdout,
222
+ });
223
+ return new Promise((resolve, reject) => {
224
+ let settled = false;
225
+ const finish = (worktree) => {
226
+ if (settled)
227
+ return;
228
+ settled = true;
229
+ rl.close();
230
+ resolve(worktree);
231
+ };
232
+ rl.once("close", () => {
233
+ if (settled)
234
+ return;
235
+ settled = true;
236
+ reject(new Error("Worktree selection was interrupted; nothing was launched."));
237
+ });
238
+ const ask = () => {
239
+ rl.question("Open in a worktree? [y/N]: ", (answer) => {
240
+ const choice = answer.trim().toLowerCase();
241
+ if (choice === "y" || choice === "yes") {
242
+ finish(true);
243
+ return;
244
+ }
245
+ if (choice === "" || choice === "n" || choice === "no") {
246
+ finish(false);
247
+ return;
248
+ }
249
+ process.stderr.write("Answer y or n.\n");
250
+ ask();
251
+ });
252
+ };
253
+ ask();
254
+ });
255
+ }
256
+ export async function resolveOpenWorktree(flag, ctx, ask = askWorktree) {
257
+ if (flag !== undefined)
258
+ return flag;
259
+ if (!ctx.interactive || ctx.resume !== undefined)
260
+ return false;
261
+ const gitInfo = await getGitInfo(ctx.cwd);
262
+ if (!gitInfo)
263
+ return false;
264
+ return ask();
265
+ }
217
266
  /**
218
267
  * `claude -p` answers one prompt and exits, so there is no session to choose a
219
268
  * role for. A terminal check alone does not catch this: under a pty (CI scripts,
@@ -337,7 +386,8 @@ export function registerOpenCommand(program) {
337
386
  .option("--autocompact [value]", "native auto-compact: Claude window size is auto or 100000-1000000 tokens; OpenCode toggles its native setting")
338
387
  .option("--no-autocompact", "disable native auto-compaction in Claude and OpenCode")
339
388
  .option("--resume <session>", "resume an interactive session")
340
- .option("--worktree", "ask Claude Code to create an isolated worktree")
389
+ .option("--worktree", "open the session in an isolated git worktree")
390
+ .option("--no-worktree", "open in the current directory without asking")
341
391
  .option("--profile <name>", "use a saved setup profile instead of the active one (see profile list)")
342
392
  .option("--no-bypass", "do not skip Claude Code permission prompts")
343
393
  .option("--no-theme", "keep only the CodeDeck status line, without the theme or the renderer")
@@ -367,9 +417,14 @@ export function registerOpenCommand(program) {
367
417
  }
368
418
  const interactive = !isNonInteractiveLaunch(invocation.passthrough, hintLauncher);
369
419
  const role = await resolveRole(invocation.roleInput, interactive);
420
+ const cwd = currentWorkingDirectory();
421
+ opts.worktree = await resolveOpenWorktree(opts.worktree, {
422
+ interactive: interactive && isInteractiveTerminal(),
423
+ resume: opts.resume,
424
+ cwd,
425
+ });
370
426
  const pluginDir = resolvePluginDir();
371
427
  assertPluginDirectory(pluginDir);
372
- const cwd = currentWorkingDirectory();
373
428
  const client = new IpcClient();
374
429
  await client.ensureDaemonStarted();
375
430
  const binding = resolveRoleBinding(role, config);
@@ -397,8 +452,32 @@ export function registerOpenCommand(program) {
397
452
  ...(openEffort !== undefined ? { effort: openEffort } : {}),
398
453
  cwd,
399
454
  name: role,
455
+ ...(opts.resume !== undefined ? { resume: opts.resume } : {}),
400
456
  });
401
457
  const runId = adoptRes.session.id;
458
+ let linkWatcher;
459
+ let linkWatcherFlush;
460
+ const flushLinkWatcher = async () => {
461
+ if (linkWatcherFlush !== undefined) {
462
+ await linkWatcherFlush;
463
+ return;
464
+ }
465
+ if (linkWatcher === undefined)
466
+ return;
467
+ const watcher = linkWatcher;
468
+ linkWatcherFlush = (async () => {
469
+ try {
470
+ await watcher.flush();
471
+ }
472
+ catch { }
473
+ try {
474
+ watcher.stop();
475
+ }
476
+ catch { }
477
+ linkWatcher = undefined;
478
+ })();
479
+ await linkWatcherFlush;
480
+ };
402
481
  let patchPromise;
403
482
  try {
404
483
  if (launcher === "opencode") {
@@ -452,6 +531,8 @@ export function registerOpenCommand(program) {
452
531
  }
453
532
  catch { }
454
533
  }
534
+ if (linkWatcher !== undefined || linkWatcherFlush !== undefined)
535
+ await flushLinkWatcher();
455
536
  const nativeSessionId = finishOpenSession(role, sessionFile);
456
537
  try {
457
538
  if (patchPromise)
@@ -542,6 +623,8 @@ export function registerOpenCommand(program) {
542
623
  }
543
624
  catch { }
544
625
  }
626
+ if (linkWatcher !== undefined || linkWatcherFlush !== undefined)
627
+ await flushLinkWatcher();
545
628
  const nativeSessionId = finishOpenSession(role, sessionFile);
546
629
  try {
547
630
  if (patchPromise)
@@ -590,6 +673,11 @@ export function registerOpenCommand(program) {
590
673
  else {
591
674
  await playBoot(role, model, effort);
592
675
  }
676
+ linkWatcher = startLinkWatcher({
677
+ sessionFile,
678
+ runId,
679
+ link: (id, nativeId) => client.request("session.linkNative", { id, nativeId }),
680
+ });
593
681
  const closeClaude = async () => {
594
682
  if (!fs.existsSync(sessionFile) && opts.resume && SESSION_ID_PATTERN.test(opts.resume)) {
595
683
  try {
@@ -597,6 +685,8 @@ export function registerOpenCommand(program) {
597
685
  }
598
686
  catch { }
599
687
  }
688
+ if (linkWatcher !== undefined || linkWatcherFlush !== undefined)
689
+ await flushLinkWatcher();
600
690
  const nativeSessionId = finishOpenSession(role, sessionFile);
601
691
  try {
602
692
  if (patchPromise)
@@ -621,6 +711,8 @@ export function registerOpenCommand(program) {
621
711
  });
622
712
  }
623
713
  catch (err) {
714
+ if (linkWatcher !== undefined || linkWatcherFlush !== undefined)
715
+ await flushLinkWatcher();
624
716
  try {
625
717
  await client.request("session.release", {
626
718
  id: runId,
@@ -1 +1 @@
1
- {"version":3,"file":"open.js","sourceRoot":"","sources":["../../../src/cli/commands/open.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"open.js","sourceRoot":"","sources":["../../../src/cli/commands/open.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,EAAqB,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAG1C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,EACL,UAAU,EACV,sBAAsB,EACtB,kBAAkB,EAClB,uBAAuB,GAGxB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAwB,MAAM,sBAAsB,CAAC;AAC5F,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAkB,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAa,MAAM,qBAAqB,CAAC;AACpF,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAkB,MAAM,wBAAwB,CAAC;AAC1F,OAAO,EACL,SAAS,IAAI,iBAAiB,EAC9B,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,SAAS,IAAI,iBAAiB,EAC9B,qBAAqB,EACrB,aAAa,IAAI,qBAAqB,GACvC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAEhB,cAAc,EACd,aAAa,GACd,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,aAAa,IAAI,kBAAkB,EACnC,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EACvB,SAAS,IAAI,cAAc,EAC3B,iBAAiB,EACjB,aAAa,IAAI,kBAAkB,GACpC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,kBAAkB,EAElB,qBAAqB,EACrB,uBAAuB,EAGvB,iBAAiB,EACjB,QAAQ,EACR,YAAY,EAGZ,YAAY,GAGb,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAa,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAEzH,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,SAAS,EACT,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,UAAU,EACV,UAAU,EACV,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,YAAY,GAAS,cAAc,CAAC;AAE1C,MAAM,UAAU,YAAY,CAC1B,SAAiB,EACjB,KAAa,EACb,IAAc,EACd,GAAW,EACX,WAAmB,EACnB,OAAmC,EACnC,aAA2B,KAAK,EAChC,aAAyB,OAAO,EAChC,QAAiC,EACjC,GAAe,EACf,OAAuD;IAEvD,OAAO,YAAY,CAAC,SAAS,EAAE,IAAI,EAAE;QACnC,GAAG;QACH,WAAW;QACX,QAAQ;QACR,KAAK;QACL,eAAe,EAAE,gBAAgB;QACjC,gBAAgB;QAChB,OAAO;QACP,UAAU;QACV,UAAU;QACV,GAAG;QACH,OAAO;KACR,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAgB,EAChB,SAAiB,EACjB,WAAmB,EACnB,KAAwB,EACxB,MAAsB,EACtB,WAAoB;IAEpB,IAAI,CAAC,WAAW;QAAE,OAAO,SAAS,CAAC;IACnC,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,IAAI,MAAM,CAAC,GAAG,KAAK,KAAK;QAAE,OAAO,SAAS,CAAC;IAClE,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IAChD,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC;AAClF,CAAC;AAID;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAOrC;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,IAAU,EAAE,OAAgC;IAC1E,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,KAAK,UAAU,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;QAC9G,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,CACL,UAAU,IAAI,aAAa,OAAO,CAAC,OAAO,SAAS,UAAU,EAAE,2DAA2D;QAC1H,SAAS,UAAU,EAAE,eAAe,IAAI,oCAAoC,UAAU,EAAE,WAAW,CACpG,CAAC;AACJ,CAAC;AAUD;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAClC,GAAW,EACX,GAAY;IAEZ,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAChC,YAAY,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE;YACrE,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,IAAI,GAAG,IAAI;YACtB,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtC,CAAC,CACH,CAAC;QACF,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE,MAA+B,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAA4B,EAC5B,KAA2B;IAE3B,MAAM,KAAK,GAAG,IAAI,GAAG,CACnB,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAChE,CAAC;IACF,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CACxB,CAAC,GAAG,EAA8C,EAAE,CAClD,OAAO,GAAG,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CACnD,CAAC;IACF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3C,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAEvC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;IAChD,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,IAAI,OAAO,GAAG,CAAC,EAAE,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YAClE,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAC1B,CAAC,GAAG,EAA+D,EAAE,CACnE,OAAO,GAAG,CAAC,EAAE,KAAK,QAAQ;QAC1B,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;QAC/B,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,GAAG,CAAC,OAAO,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CACjD,CAAC;IAEF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YAC5C,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,IAAU,EAAE,OAAgC;IACtE,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,QAAQ,CAAC;IAC7C,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,UAAU,IAAI,OAAO,KAAK,OAAO;QAAE,OAAO,OAAO,CAAC;IAC1F,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAChD,MAAM,IAAI,KAAK,CACb,QAAQ,IAAI,UAAU,IAAI,aAAa,OAAO,WAAW,UAAU,EAAE,wBAAwB,CAC9F,CAAC;AACJ,CAAC;AACD;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAU,EACV,QAA4B,EAC5B,SAAyB,EAAE;IAE3B,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACjD,IAAI,OAAO,EAAE,OAAO,KAAK,UAAU,IAAI,OAAO,EAAE,MAAM,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC,MAAM,CAAC;IAC5F,MAAM,IAAI,KAAK,CACb,4BAA4B,IAAI,UAAU,UAAU,EAAE,0CAA0C,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAClI,CAAC;AACJ,CAAC;AAOD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,GAAW,EACX,QAA6B,EAC7B,KAAa,EACb,IAAU;IAEV,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,8EAA8E,CAC/E,CAAC;IACJ,CAAC;IACD,MAAM,EAAE,GAAG,MAAM,cAAc,CAAC;QAC9B,QAAQ,EAAE,OAAO,CAAC,IAAI;QACtB,SAAS,EAAE,KAAK;QAChB,MAAM,EAAE,IAAI;QACZ,IAAI,EAAE,IAAI;KACX,CAAC,CAAC;IACH,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AAC1C,CAAC;AAOD,SAAS,UAAU;IACjB,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IAEH,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,MAAM,GAAG,CAAC,IAAU,EAAE,EAAE;YAC5B,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,CAAC;QAEF,0EAA0E;QAC1E,uEAAuE;QACvE,yEAAyE;QACzE,0EAA0E;QAC1E,wEAAwE;QACxE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;YACpB,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,MAAM,CAAC,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC,CAAC;QAC7E,CAAC,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,GAAG,EAAE;YACf,EAAE,CAAC,QAAQ,CAAC,SAAS,YAAY,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE;gBACtE,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,IAAI,YAAY,CAAC,CAAC;gBAC/C,IAAI,IAAI,EAAE,CAAC;oBACT,MAAM,CAAC,IAAI,CAAC,CAAC;oBACb,OAAO;gBACT,CAAC;gBAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC7E,GAAG,EAAE,CAAC;YACR,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,GAAG,EAAE,CAAC;IACR,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IAEH,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC9C,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,MAAM,GAAG,CAAC,QAAiB,EAAE,EAAE;YACnC,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,QAAQ,CAAC,CAAC;QACpB,CAAC,CAAC;QAEF,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;YACpB,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,MAAM,CAAC,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC,CAAC;QACjF,CAAC,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,GAAG,EAAE;YACf,EAAE,CAAC,QAAQ,CAAC,6BAA6B,EAAE,CAAC,MAAM,EAAE,EAAE;gBACpD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBAC3C,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;oBACvC,MAAM,CAAC,IAAI,CAAC,CAAC;oBACb,OAAO;gBACT,CAAC;gBACD,IAAI,MAAM,KAAK,EAAE,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBACvD,MAAM,CAAC,KAAK,CAAC,CAAC;oBACd,OAAO;gBACT,CAAC;gBAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;gBACzC,GAAG,EAAE,CAAC;YACR,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,GAAG,EAAE,CAAC;IACR,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,IAAyB,EACzB,GAA2D,EAC3D,MAA8B,WAAW;IAEzC,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACpC,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAE/D,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAE3B,OAAO,GAAG,EAAE,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,WAAqB,EAAE,UAAuB,QAAQ;IAC3F,4EAA4E;IAC5E,0EAA0E;IAC1E,eAAe;IACf,IAAI,OAAO,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IACtC,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAyB,EAAE,WAAoB;IACzE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,KAAK,CAAC,iBAAiB,KAAK,uBAAuB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAC3E,CAAC;QACJ,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,CAAC,WAAW,IAAI,CAAC,qBAAqB,EAAE;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACnF,OAAO,UAAU,EAAE,CAAC;AACtB,CAAC;AAYD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,WAAW,CAAC,MAAgB,EAAE,OAAgB;IAC5D,MAAM,UAAU,GAAG,IAAI,GAAG,CAAkB;QAC1C,CAAC,IAAI,EAAE,KAAK,CAAC;QACb,CAAC,QAAQ,EAAE,KAAK,CAAC;KAClB,CAAC,CAAC;IACH,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACrC,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC;QACtD,IAAI,MAAM,CAAC,KAAK;YAAE,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAC3D,IAAI,MAAM,CAAC,IAAI;YAAE,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YAC5C,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,SAAS;QACX,CAAC;QAED,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAChE,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CACb,mBAAmB,IAAI,SAAS,UAAU,EAAE,0CAA0C,CACvF,CAAC;QACJ,CAAC;QAED,4EAA4E;QAC5E,2EAA2E;QAC3E,mCAAmC;QACnC,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,SAAS,UAAU,EAAE,uBAAuB,CAAC,CAAC;QAC/E,CAAC;QAED,wEAAwE;QACxE,0EAA0E;QAC1E,IAAI,UAAU,IAAI,SAAS,GAAG,CAAC;YAAE,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,aAAa,CAAC,OAAgB,EAAE,OAA2B;IAClE,MAAM,OAAO,GAAI,OAAO,CAAC,MAAoC,EAAE,OAAO,IAAI,EAAE,CAAC;IAC7E,6EAA6E;IAC7E,4EAA4E;IAC5E,mDAAmD;IACnD,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IACxD,MAAM,cAAc,GAAG,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxF,MAAM,eAAe,GAAG,YAAY,IAAI,CAAC;QACvC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,EAAE,cAAc,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;QACnF,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,QAAQ,GAAG,WAAW,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IAEvD,IAAI,cAAc,IAAI,CAAC,EAAE,CAAC;QACxB,yEAAyE;QACzE,2EAA2E;QAC3E,oEAAoE;QACpE,gEAAgE;QAChE,MAAM,YAAY,GAAG,OAAO,KAAK,SAAS,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/F,OAAO;YACL,SAAS,EAAE,YAAY;YACvB,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC;SAC/C,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACxC,IAAI,OAAO,KAAK,SAAS,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;QACvD,UAAU,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;IAClG,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;AACjD,CAAC;AAUD,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,OAAO;SACJ,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,2CAA2C,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,YAAY,+BAA+B,CAAC;SAClI,MAAM,CAAC,iBAAiB,EAAE,0BAA0B,aAAa,GAAG,CAAC;SACrE,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,yDAAyD,CAAC;SACvI,MAAM,CAAC,uBAAuB,EAAE,+GAA+G,CAAC;SAChJ,MAAM,CAAC,kBAAkB,EAAE,uDAAuD,CAAC;SACnF,MAAM,CAAC,oBAAoB,EAAE,+BAA+B,CAAC;SAC7D,MAAM,CAAC,YAAY,EAAE,8CAA8C,CAAC;SACpE,MAAM,CAAC,eAAe,EAAE,8CAA8C,CAAC;SACvE,MAAM,CAAC,kBAAkB,EAAE,wEAAwE,CAAC;SACpG,MAAM,CAAC,aAAa,EAAE,4CAA4C,CAAC;SACnE,MAAM,CAAC,YAAY,EAAE,uEAAuE,CAAC;SAC7F,MAAM,CAAC,UAAU,EAAE,2EAA2E,CAAC;SAC/F,kBAAkB,EAAE;SACpB,MAAM,CAAC,KAAK,EAAE,OAA2B,EAAE,IAAe,EAAE,OAAgB,EAAE,EAAE;QAC/E,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACnD,MAAM,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACvD,uEAAuE;QACvE,0EAA0E;QAC1E,sEAAsE;QACtE,6DAA6D;QAC7D,MAAM,MAAM,GAAG,sBAAsB,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAClE,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;QAEzD,uEAAuE;QACvE,sEAAsE;QACtE,uEAAuE;QACvE,kDAAkD;QAClD,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;QACrG,IAAI,YAAY,GAAgB,QAAQ,CAAC;QACzC,IAAI,CAAC;YACH,IAAI,QAAQ,KAAK,SAAS;gBAAE,YAAY,GAAG,WAAW,CAAC,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;QACzG,CAAC;QAAC,MAAM,CAAC;YACP,YAAY,GAAG,QAAQ,CAAC;QAC1B,CAAC;QACD,MAAM,WAAW,GAAG,CAAC,sBAAsB,CAAC,UAAU,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QAClF,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAClE,MAAM,GAAG,GAAG,uBAAuB,EAAE,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE;YACvD,WAAW,EAAE,WAAW,IAAI,qBAAqB,EAAE;YACnD,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG;SACJ,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC;QACrC,qBAAqB,CAAC,SAAS,CAAC,CAAC;QAEjC,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC/B,MAAM,MAAM,CAAC,mBAAmB,EAAE,CAAC;QAEnC,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAE5C,MAAM,gBAAgB,GAAG,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAChE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,gBAAgB,CACxD,IAAI,EACJ,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,gBAAgB,EAAE,EACvC,MAAM,CACP,CAAC;QAEF,uEAAuE;QACvE,wEAAwE;QACxE,kDAAkD;QAClD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,oBAAoB,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAEhF,IAAI,QAAQ,KAAK,UAAU,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YACxD,MAAM,IAAI,KAAK,CACb,UAAU,IAAI,+BAA+B,UAAU,EAAE,uBAAuB,CACjF,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,gBAAgB,IAAI,UAAU,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC3G,wEAAwE;QACxE,sEAAsE;QACtE,uEAAuE;QACvE,WAAW;QACX,MAAM,UAAU,GAAG,QAAQ,KAAK,UAAU;YACxC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAqB,eAAe,EAAE;YACzE,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE,YAAY;YACnB,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,GAAG;YACH,IAAI,EAAE,IAAI;YACV,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9D,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,IAAI,WAA4D,CAAC;QACjE,IAAI,gBAA2C,CAAC;QAChD,MAAM,gBAAgB,GAAG,KAAK,IAAI,EAAE;YAClC,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;gBACnC,MAAM,gBAAgB,CAAC;gBACvB,OAAO;YACT,CAAC;YACD,IAAI,WAAW,KAAK,SAAS;gBAAE,OAAO;YAEtC,MAAM,OAAO,GAAG,WAAW,CAAC;YAC5B,gBAAgB,GAAG,CAAC,KAAK,IAAI,EAAE;gBAC7B,IAAI,CAAC;oBACH,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;gBACxB,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;gBACV,IAAI,CAAC;oBACH,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;gBACV,WAAW,GAAG,SAAS,CAAC;YAC1B,CAAC,CAAC,EAAE,CAAC;YACL,MAAM,gBAAgB,CAAC;QACzB,CAAC,CAAC;QAEF,IAAI,YAA0C,CAAC;QAC/C,IAAI,CAAC;YACH,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;gBAC5B,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,mBAAmB,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;gBACvF,MAAM,KAAK,GAAG,gBAAgB,IAAI,UAAW,CAAC;gBAC9C,MAAM,iBAAiB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;gBAC3C,MAAM,WAAW,GAAG,MAAM,qBAAqB,EAAE,CAAC;gBAClD,kEAAkE;gBAClE,8DAA8D;gBAC9D,6DAA6D;gBAC7D,kEAAkE;gBAClE,0BAA0B;gBAC1B,MAAM,MAAM,GAAG,SAAS,CAAC;gBACzB,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBAC9B,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACzB,OAAO,CAAC,KAAK,CACX,4FAA4F,CAC7F,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,MAAM,UAAU,GAAG,OAAO,EAAE,MAAM,CAAC;oBACnC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;wBAC7B,OAAO,CAAC,KAAK,CACX,kBAAkB,IAAI,aAAa,UAAU,4EAA4E,CAC1H,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAED,wEAAwE;gBACxE,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;oBACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;gBAC1D,CAAC;qBAAM,CAAC;oBACN,MAAM,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;gBACtC,CAAC;gBAED,uEAAuE;gBACvE,uEAAuE;gBACvE,yDAAyD;gBACzD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC;oBACpE,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,qBAAqB,EAAE,CAAC;gBAC5B,6DAA6D;gBAC7D,0EAA0E;gBAC1E,MAAM,cAAc,GAAG,oBAAoB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;gBAClE,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE;oBAC/B,IAAI,MAAM,KAAK,SAAS;wBAAE,qBAAqB,CAAC,MAAM,CAAC,CAAC;oBACxD,MAAM,KAAK,GAAG,oBAAoB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;oBACzD,MAAM,QAAQ,GAAG,KAAK,KAAK,SAAS,IAAI,cAAc,KAAK,SAAS;wBAClE,CAAC,CAAC,SAAS;wBACX,CAAC,CAAC,mBAAmB,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;oBAC/C,MAAM,EAAE,GAAG,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;oBACvG,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;wBACrB,IAAI,CAAC;4BACH,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;wBACpC,CAAC;wBAAC,MAAM,CAAC,CAAA,CAAC;oBACZ,CAAC;oBACD,IAAI,WAAW,KAAK,SAAS,IAAI,gBAAgB,KAAK,SAAS;wBAAE,MAAM,gBAAgB,EAAE,CAAC;oBAC1F,MAAM,eAAe,GAAG,iBAAiB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;oBAC7D,IAAI,CAAC;wBACH,IAAI,YAAY;4BAAE,MAAM,YAAY,CAAC;oBACvC,CAAC;oBAAC,MAAM,CAAC,CAAA,CAAC;oBACV,IAAI,CAAC;wBACH,MAAM,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE;4BACtC,EAAE,EAAE,KAAK;4BACT,eAAe;yBAChB,CAAC,CAAC;oBACL,CAAC;oBAAC,MAAM,CAAC,CAAA,CAAC;gBACZ,CAAC,CAAC;gBAEF,MAAM,YAAY,CAChB,WAAW,EACX,iBAAiB,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,UAAW,EAAE,EAAE,UAAU,CAAC,WAAW,CAAC,EAChF;oBACE,GAAG,EAAE,OAAO;oBACZ,QAAQ,EAAE;wBACR,eAAe,EAAE,KAAK;wBACtB,uBAAuB,EAAE,iBAAiB,CACxC,SAAS,EACT,IAAI,EACJ,gBAAgB,EAChB,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,CAClC;wBACD,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACjE;oBACD,WAAW;oBACX,KAAK;oBACL,eAAe,EAAE,kBAAkB;oBACnC,OAAO,EAAE,aAAa;oBACtB,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;wBACjB,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;4BACd,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE;gCAC7C,EAAE,EAAE,KAAK;gCACT,GAAG,EAAE,KAAK,CAAC,GAAG;gCACd,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;6BAClI,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;iBACF,CACF,CAAC;gBACF,OAAO;YACT,CAAC;YAED,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;gBACzB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,mBAAmB,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;gBACvF,gEAAgE;gBAChE,iEAAiE;gBACjE,+BAA+B;gBAC/B,MAAM,KAAK,GAAG,gBAAgB,IAAI,UAAU,CAAC;gBAC7C,IAAI,KAAK,KAAK,SAAS;oBAAE,MAAM,cAAc,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;gBACjE,MAAM,QAAQ,GAAG,MAAM,kBAAkB,EAAE,CAAC;gBAC5C,qEAAqE;gBACrE,yCAAyC;gBACzC,MAAM,MAAM,GAAG,UAAU,IAAI,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAC1E,MAAM,UAAU,GAAG,KAAK,IAAI,SAAS,CAAC;gBAEtC,kEAAkE;gBAClE,6DAA6D;gBAC7D,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;oBACnC,OAAO,CAAC,KAAK,CACX,2FAA2F,CAC5F,CAAC;gBACJ,CAAC;gBAED,wEAAwE;gBACxE,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;oBACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;gBAC/D,CAAC;qBAAM,CAAC;oBACN,MAAM,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;gBAC3C,CAAC;gBAED,6DAA6D;gBAC7D,+DAA+D;gBAC/D,6DAA6D;gBAC7D,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;gBACpC,MAAM,cAAc,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;gBACnD,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE;oBAC5B,gEAAgE;oBAChE,gDAAgD;oBAChD,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;oBACpC,MAAM,SAAS,GAAG;wBAChB,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,iBAAiB,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE;wBAC3D,GAAG,CAAC,QAAQ,KAAK,QAAQ;4BACvB,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,iBAAiB,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;4BAC/D,CAAC,CAAC,EAAE,CAAC;qBACR,CAAC;oBACF,MAAM,QAAQ,GAAG,cAAc,KAAK,SAAS;wBAC3C,CAAC,CAAC,SAAS;wBACX,CAAC,CAAC,uBAAuB,CAAC,cAAc,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;oBAChE,6DAA6D;oBAC7D,iEAAiE;oBACjE,iDAAiD;oBACjD,MAAM,EAAE,GAAG,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC;oBACnC,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;wBACrB,IAAI,CAAC;4BACH,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;wBACpC,CAAC;wBAAC,MAAM,CAAC,CAAA,CAAC;oBACZ,CAAC;oBACD,IAAI,WAAW,KAAK,SAAS,IAAI,gBAAgB,KAAK,SAAS;wBAAE,MAAM,gBAAgB,EAAE,CAAC;oBAC1F,MAAM,eAAe,GAAG,iBAAiB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;oBAC7D,IAAI,CAAC;wBACH,IAAI,YAAY;4BAAE,MAAM,YAAY,CAAC;oBACvC,CAAC;oBAAC,MAAM,CAAC,CAAA,CAAC;oBACV,IAAI,CAAC;wBACH,MAAM,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE;4BACtC,EAAE,EAAE,KAAK;4BACT,eAAe;yBAChB,CAAC,CAAC;oBACL,CAAC;oBAAC,MAAM,CAAC,CAAA,CAAC;gBACZ,CAAC,CAAC;gBACF,MAAM,YAAY,CAChB,QAAQ,EACR,kBAAkB,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,WAAW,EAAE,OAAO,EAAE,gBAAgB,CAAC,EAClH;oBACE,GAAG,EAAE,OAAO;oBACZ,QAAQ,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE;oBACpC,WAAW;oBACX,KAAK;oBACL,eAAe,EAAE,eAAe;oBAChC,OAAO,EAAE,UAAU;oBACnB,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;wBACjB,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;4BACd,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE;gCAC7C,EAAE,EAAE,KAAK;gCACT,GAAG,EAAE,KAAK,CAAC,GAAG;gCACd,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;6BAClI,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;iBACF,CACF,CAAC;gBACF,OAAO;YACT,CAAC;YAED,MAAM,QAAQ,GAAG,UAAU,IAAI,aAAa,CAAC;YAC7C,mEAAmE;YACnE,MAAM,MAAM,GAAG,UAAU,IAAI,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC1E,MAAM,IAAI,GAAG,aAAa,CACxB,IAAI,EACJ,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,WAAW,EAAE,EACtF,SAAS,EACT,UAAU,CAAC,WAAW,EACtB,GAAG,EACH,gBAAgB,EAChB,MAAM,CACP,CAAC;YACF,MAAM,KAAK,GAAG,gBAAgB,IAAI,QAAQ,CAAC;YAE3C,MAAM,cAAc,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YACxC,MAAM,SAAS,GAAG,MAAM,aAAa,EAAE,CAAC;YACxC,MAAM,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YAEpC,wEAAwE;YACxE,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;gBACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;YAC1D,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YACtC,CAAC;YAED,WAAW,GAAG,gBAAgB,CAAC;gBAC7B,WAAW;gBACX,KAAK;gBACL,IAAI,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;aAC/E,CAAC,CAAC;YAEH,MAAM,WAAW,GAAG,KAAK,IAAI,EAAE;gBAC7B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;oBACvF,IAAI,CAAC;wBACH,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC7C,CAAC;oBAAC,MAAM,CAAC,CAAA,CAAC;gBACZ,CAAC;gBACD,IAAI,WAAW,KAAK,SAAS,IAAI,gBAAgB,KAAK,SAAS;oBAAE,MAAM,gBAAgB,EAAE,CAAC;gBAC1F,MAAM,eAAe,GAAG,iBAAiB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;gBAC7D,IAAI,CAAC;oBACH,IAAI,YAAY;wBAAE,MAAM,YAAY,CAAC;gBACvC,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;gBACV,IAAI,CAAC;oBACH,MAAM,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE;wBACtC,EAAE,EAAE,KAAK;wBACT,eAAe;qBAChB,CAAC,CAAC;gBACL,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;YACZ,CAAC,CAAC;YAEF,MAAM,YAAY,CAChB,SAAS,EACT,KAAK,EACL,IAAI,EACJ,GAAG,EACH,WAAW,EACX,WAAW,EACX,SAAS,EACT,SAAS,EACT,EAAE,eAAe,EAAE,KAAK,EAAE,EAC1B,mBAAmB,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAChF,CAAC,KAAK,EAAE,EAAE;gBACR,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;oBACd,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE;wBAC7C,EAAE,EAAE,KAAK;wBACT,GAAG,EAAE,KAAK,CAAC,GAAG;qBACf,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,CACF,CAAC;QACJ,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,IAAI,WAAW,KAAK,SAAS,IAAI,gBAAgB,KAAK,SAAS;gBAAE,MAAM,gBAAgB,EAAE,CAAC;YAC1F,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE;oBACtC,EAAE,EAAE,KAAK;oBACT,MAAM,EAAE,QAAQ;oBAChB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;iBACxD,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;YACV,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,122 @@
1
+ import http from "node:http";
2
+ import { spawn } from "node:child_process";
3
+ import { InvalidArgumentError } from "commander";
4
+ import { REVIEW_PAGE } from "../../web/review-page.js";
5
+ import { getLocalReview } from "../../git/review.js";
6
+ export const DEFAULT_REVIEW_PORT = 3100;
7
+ export function parseReviewPort(raw) {
8
+ if (raw === undefined)
9
+ return DEFAULT_REVIEW_PORT;
10
+ if (!/^\d+$/.test(raw)) {
11
+ throw new InvalidArgumentError("--port must be a positive integer");
12
+ }
13
+ const port = Number(raw);
14
+ if (!Number.isInteger(port) || port <= 0 || port > 65535) {
15
+ throw new InvalidArgumentError("--port must be a positive integer");
16
+ }
17
+ return port;
18
+ }
19
+ export function openBrowser(url) {
20
+ const opener = process.platform === "darwin"
21
+ ? "open"
22
+ : process.platform === "win32"
23
+ ? "cmd"
24
+ : "xdg-open";
25
+ const args = process.platform === "win32" ? ["/c", "start", "", url] : [url];
26
+ try {
27
+ const child = spawn(opener, args, { detached: true, stdio: "ignore" });
28
+ child.unref();
29
+ return true;
30
+ }
31
+ catch {
32
+ return false;
33
+ }
34
+ }
35
+ function sendJson(res, code, value) {
36
+ res.writeHead(code, { "content-type": "application/json; charset=utf-8" });
37
+ res.end(JSON.stringify(value));
38
+ }
39
+ export function createReviewHandler(reviewDeps) {
40
+ return (req, res) => {
41
+ void (async () => {
42
+ try {
43
+ const url = new URL(req.url || "/", "http://127.0.0.1");
44
+ if (req.method === "GET" && (url.pathname === "/" || url.pathname === "/review")) {
45
+ res.writeHead(200, { "content-type": "text/html; charset=utf-8" });
46
+ res.end(REVIEW_PAGE);
47
+ return;
48
+ }
49
+ if (req.method === "GET" && url.pathname === "/api/review") {
50
+ const ref = url.searchParams.get("ref") || "HEAD";
51
+ const file = url.searchParams.get("file") || undefined;
52
+ const root = reviewDeps?.root ?? process.cwd();
53
+ try {
54
+ const load = reviewDeps?.loadReview ?? ((r, q, f) => getLocalReview(r, { ref: q, file: f }));
55
+ sendJson(res, 200, await load(root, ref, file));
56
+ }
57
+ catch (error) {
58
+ const message = error instanceof Error ? error.message : String(error);
59
+ sendJson(res, message.includes("not a git repository") ? 404 : 500, { error: message });
60
+ }
61
+ return;
62
+ }
63
+ sendJson(res, 404, { error: "not found" });
64
+ }
65
+ catch (error) {
66
+ try {
67
+ sendJson(res, 500, { error: error instanceof Error ? error.message : String(error) });
68
+ }
69
+ catch {
70
+ try {
71
+ res.end();
72
+ }
73
+ catch {
74
+ // The socket is already unusable.
75
+ }
76
+ }
77
+ }
78
+ })();
79
+ };
80
+ }
81
+ export function registerReviewCommand(program) {
82
+ program
83
+ .command("review")
84
+ .description("Open a local review of the current git changes")
85
+ .option("--port <n>", "port to listen on (default: 3100)", String(DEFAULT_REVIEW_PORT))
86
+ .option("--no-open", "serve the review without opening a browser")
87
+ .action(async (opts) => {
88
+ let port;
89
+ try {
90
+ port = parseReviewPort(opts.port);
91
+ }
92
+ catch (error) {
93
+ console.error(error instanceof Error ? error.message : String(error));
94
+ process.exitCode = 1;
95
+ return;
96
+ }
97
+ const server = http.createServer(createReviewHandler());
98
+ try {
99
+ await new Promise((resolve, reject) => {
100
+ server.once("error", reject);
101
+ server.listen(port, "127.0.0.1", () => resolve());
102
+ });
103
+ }
104
+ catch (error) {
105
+ console.error(`Failed to listen on 127.0.0.1:${port}: ${error instanceof Error ? error.message : String(error)}`);
106
+ process.exitCode = 1;
107
+ return;
108
+ }
109
+ const url = `http://127.0.0.1:${port}/`;
110
+ console.log(`CodeDeck review on ${url}`);
111
+ if (opts.open !== false && !openBrowser(url)) {
112
+ console.log(`Could not open a browser, visit ${url} manually.`);
113
+ }
114
+ const shutdown = () => {
115
+ server.close(() => process.exit(0));
116
+ setTimeout(() => process.exit(0), 1000).unref?.();
117
+ };
118
+ process.on("SIGINT", shutdown);
119
+ process.on("SIGTERM", shutdown);
120
+ });
121
+ }
122
+ //# sourceMappingURL=review.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review.js","sourceRoot":"","sources":["../../../src/cli/commands/review.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,149 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import { findTranscript, readTranscriptUsage } from "../../core/claude-transcript.js";
4
+ import { openSourceKey } from "../../core/usage-source.js";
5
+ import { getPaths } from "../../config/paths.js";
6
+ import { SESSION_ID_PATTERN } from "../../open/runtime.js";
7
+ import { Database } from "../../store/database.js";
8
+ import { UsageLedger } from "../../store/usage-ledger.js";
9
+ function addId(ids, value) {
10
+ const nativeId = value.trim();
11
+ if (SESSION_ID_PATTERN.test(nativeId))
12
+ ids.add(nativeId);
13
+ }
14
+ function collectNativeIds(db, sessionsDir) {
15
+ const ids = new Set();
16
+ const openRows = db.prepare(`
17
+ SELECT native_session_id FROM sessions
18
+ WHERE origin = 'open' AND native_session_id IS NOT NULL
19
+ `).all();
20
+ for (const row of openRows)
21
+ addId(ids, row.native_session_id);
22
+ const workerRows = db.prepare(`
23
+ SELECT native_session_id FROM sessions
24
+ WHERE native_session_id IS NOT NULL AND (origin IS NULL OR origin <> 'open')
25
+ `).all();
26
+ const workerIds = new Set(workerRows.map((row) => row.native_session_id));
27
+ let files;
28
+ try {
29
+ files = fs.readdirSync(sessionsDir);
30
+ }
31
+ catch {
32
+ return { ids, workerIds };
33
+ }
34
+ for (const file of files) {
35
+ const nameSidecar = file.match(/^codedeck-session-\d+\.([^.]+)\.name$/);
36
+ if (nameSidecar?.[1])
37
+ addId(ids, nameSidecar[1]);
38
+ if (!/^codedeck-session-\d+$/.test(file))
39
+ continue;
40
+ let contents;
41
+ try {
42
+ contents = fs.readFileSync(path.join(sessionsDir, file), "utf8");
43
+ }
44
+ catch {
45
+ continue;
46
+ }
47
+ for (const line of contents.split(/\r?\n/))
48
+ addId(ids, line);
49
+ }
50
+ return { ids, workerIds };
51
+ }
52
+ function repositoryRoot(cwd) {
53
+ if (cwd === undefined)
54
+ return null;
55
+ let current = path.resolve(cwd);
56
+ while (true) {
57
+ if (fs.existsSync(path.join(current, ".git")))
58
+ return current;
59
+ const parent = path.dirname(current);
60
+ if (parent === current)
61
+ return null;
62
+ current = parent;
63
+ }
64
+ }
65
+ function importLegacyUsage(db, ledger, nativeId, usage) {
66
+ const sourceKey = openSourceKey(nativeId);
67
+ const endedAt = usage.endedAt;
68
+ if (endedAt === undefined)
69
+ return false;
70
+ db.exec("BEGIN IMMEDIATE");
71
+ try {
72
+ if (ledger.hasSource(sourceKey)) {
73
+ db.exec("ROLLBACK");
74
+ return false;
75
+ }
76
+ const cost = usage.cost ?? null;
77
+ const inputTokens = usage.inputTokens;
78
+ const outputTokens = usage.outputTokens;
79
+ const cachedTokens = usage.cachedTokens;
80
+ const updatedAt = new Date().toISOString();
81
+ db.prepare(`
82
+ INSERT INTO usage_legacy (
83
+ native_id, ended_at, cwd, repository, model, cost,
84
+ input_tokens, output_tokens, cached_tokens
85
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
86
+ `).run(nativeId, endedAt, usage.cwd ?? null, repositoryRoot(usage.cwd ?? undefined), usage.model ?? null, cost, inputTokens, outputTokens, cachedTokens);
87
+ db.prepare(`
88
+ INSERT INTO usage_sources (
89
+ source_key, cost, input_tokens, output_tokens, cached_tokens, updated_at
90
+ ) VALUES (?, ?, ?, ?, ?, ?)
91
+ `).run(sourceKey, cost, inputTokens, outputTokens, cachedTokens, updatedAt);
92
+ db.exec("COMMIT");
93
+ return true;
94
+ }
95
+ catch (error) {
96
+ try {
97
+ db.exec("ROLLBACK");
98
+ }
99
+ catch { }
100
+ throw error;
101
+ }
102
+ }
103
+ export async function backfillUsage() {
104
+ const paths = getPaths();
105
+ const db = new Database(paths.db);
106
+ try {
107
+ const handle = db.getHandle();
108
+ const ledger = new UsageLedger(handle);
109
+ const { ids, workerIds } = collectNativeIds(handle, paths.sessionsDir);
110
+ const summary = { imported: 0, skipped: 0 };
111
+ for (const nativeId of ids) {
112
+ if (workerIds.has(nativeId)) {
113
+ summary.skipped++;
114
+ continue;
115
+ }
116
+ const sourceKey = openSourceKey(nativeId);
117
+ if (ledger.hasSource(sourceKey)) {
118
+ summary.skipped++;
119
+ continue;
120
+ }
121
+ const transcript = findTranscript(nativeId);
122
+ if (!transcript) {
123
+ summary.skipped++;
124
+ continue;
125
+ }
126
+ let usage;
127
+ try {
128
+ usage = await readTranscriptUsage(transcript);
129
+ }
130
+ catch {
131
+ summary.skipped++;
132
+ continue;
133
+ }
134
+ if (usage.state !== "cost-state" || usage.endedAt === undefined) {
135
+ summary.skipped++;
136
+ continue;
137
+ }
138
+ if (importLegacyUsage(handle, ledger, nativeId, usage))
139
+ summary.imported++;
140
+ else
141
+ summary.skipped++;
142
+ }
143
+ return summary;
144
+ }
145
+ finally {
146
+ db.close();
147
+ }
148
+ }
149
+ //# sourceMappingURL=usage-backfill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage-backfill.js","sourceRoot":"","sources":["../../../src/cli/commands/usage-backfill.ts"],"names":[],"mappings":"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"}