@alecsibilia/luca 13.0.0-alpha.2 → 13.0.0-alpha.4

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 (67) hide show
  1. package/dist/chunks/branch.mjs +6 -6
  2. package/dist/chunks/checks.mjs +6 -6
  3. package/dist/chunks/claim-verify.mjs +1 -1
  4. package/dist/chunks/classify.mjs +1 -1
  5. package/dist/chunks/confidence.mjs +6 -6
  6. package/dist/chunks/hook.mjs +34 -10
  7. package/dist/chunks/init.mjs +1 -1
  8. package/dist/chunks/phase.mjs +28 -8
  9. package/dist/chunks/pr-review.mjs +6 -6
  10. package/dist/chunks/preferences.mjs +6 -6
  11. package/dist/chunks/repair.mjs +1 -1
  12. package/dist/chunks/repo.mjs +6 -6
  13. package/dist/chunks/retro.mjs +5 -5
  14. package/dist/chunks/roadmap.mjs +6 -6
  15. package/dist/chunks/rules.mjs +5 -5
  16. package/dist/chunks/state.mjs +6 -6
  17. package/dist/chunks/stray-local-install.mjs +1 -1
  18. package/dist/chunks/telemetry.mjs +1 -1
  19. package/dist/chunks/todo.mjs +6 -6
  20. package/dist/chunks/vault-init.mjs +1 -1
  21. package/dist/chunks/verification.mjs +4 -4
  22. package/dist/chunks/workflow.mjs +6 -6
  23. package/dist/claude/.claude/agents/debater.md +88 -0
  24. package/dist/claude/.claude/agents/discussion.md +13 -26
  25. package/dist/claude/.claude/agents/executor.md +6 -18
  26. package/dist/claude/.claude/agents/learner.md +31 -71
  27. package/dist/claude/.claude/agents/plan-reviewer.md +5 -9
  28. package/dist/claude/.claude/agents/researcher.md +5 -9
  29. package/dist/claude/.claude/agents/reviewer.md +18 -15
  30. package/dist/claude/.claude/agents/shadow-scanner.md +23 -26
  31. package/dist/claude/.claude/agents/test-writer.md +89 -0
  32. package/dist/claude/.claude/agents/verifier.md +5 -5
  33. package/dist/claude/.claude/commands/gh-pr-address.md +4 -4
  34. package/dist/claude/.claude/commands/lu-review.md +1 -1
  35. package/dist/claude/.claude/commands/lu.md +5 -5
  36. package/dist/claude/.claude/commands/milestone-new.md +1 -1
  37. package/dist/claude/.claude/commands/phase-execute.md +1 -1
  38. package/dist/claude/.claude/commands/phase-plan.md +1 -1
  39. package/dist/claude/.claude/commands/repo-cleanup.md +8 -5
  40. package/dist/claude/skills/autopilot/SKILL.md +22 -32
  41. package/dist/claude/skills/caveman/SKILL.md +58 -0
  42. package/dist/claude/skills/gh-pr-address/SKILL.md +4 -4
  43. package/dist/claude/skills/lu/SKILL.md +8 -8
  44. package/dist/claude/skills/lu-review/SKILL.md +1 -1
  45. package/dist/claude/skills/milestone-audit/SKILL.md +41 -61
  46. package/dist/claude/skills/milestone-complete/SKILL.md +9 -2
  47. package/dist/claude/skills/phase-discuss/SKILL.md +5 -5
  48. package/dist/claude/skills/phase-execute/SKILL.md +60 -67
  49. package/dist/claude/skills/phase-plan/SKILL.md +11 -13
  50. package/dist/claude/skills/phase-research/SKILL.md +1 -1
  51. package/dist/claude/skills/post-init-tour/SKILL.md +1 -1
  52. package/dist/claude/skills/project-new/SKILL.md +19 -77
  53. package/dist/claude/skills/quick/SKILL.md +2 -8
  54. package/dist/claude/skills/repo-audit/SKILL.md +5 -5
  55. package/dist/claude/skills/repo-cleanup/SKILL.md +8 -5
  56. package/dist/claude/skills/session-plan/SKILL.md +9 -9
  57. package/dist/claude/skills/workflow-save/SKILL.md +4 -4
  58. package/dist/index.mjs +1 -1
  59. package/dist/shared/{luca.BmhNkYe2.mjs → luca.BKNzBAX6.mjs} +2 -2
  60. package/dist/shared/{luca.HZxBTBgD.mjs → luca.CSIEeM0g.mjs} +2 -2
  61. package/dist/shared/{luca.DjDTeDCi.mjs → luca.CZNcKKAw.mjs} +255 -39
  62. package/dist/shared/{luca.TSMg1t7I.mjs → luca.CbQLVJY4.mjs} +1 -1
  63. package/dist/shared/{luca.CrXzXueR.mjs → luca.DEnRxIjr.mjs} +1 -1
  64. package/dist/shared/{luca.B3Mimc0P.mjs → luca.Djs7oPPj.mjs} +5 -0
  65. package/dist/shared/{luca.C4gMUoBd.mjs → luca.EQGAqeU5.mjs} +3 -3
  66. package/dist/shared/{luca.CRmaAfXR.mjs → luca.Q3_4GQWh.mjs} +5 -4
  67. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  import { defineCommand } from 'citty';
2
2
  import 'zod';
3
- import '../shared/luca.CRmaAfXR.mjs';
3
+ import '../shared/luca.Q3_4GQWh.mjs';
4
4
  import 'node:fs';
5
5
  import 'node:fs/promises';
6
6
  import 'node:path';
@@ -8,13 +8,13 @@ import 'node:crypto';
8
8
  import 'node:module';
9
9
  import 'node:url';
10
10
  import 'node:child_process';
11
- import { r as runWriteHandler, q as lucaBranchGuardTool } from '../shared/luca.DjDTeDCi.mjs';
11
+ import { r as runWriteHandler, t as lucaBranchGuardTool } from '../shared/luca.CZNcKKAw.mjs';
12
12
  import 'node:os';
13
- import '../shared/luca.CrXzXueR.mjs';
14
- import '../shared/luca.HZxBTBgD.mjs';
15
- import '../shared/luca.TSMg1t7I.mjs';
13
+ import '../shared/luca.DEnRxIjr.mjs';
14
+ import '../shared/luca.CSIEeM0g.mjs';
15
+ import '../shared/luca.CbQLVJY4.mjs';
16
16
  import '../shared/luca.CQ3g1xrD.mjs';
17
- import '../shared/luca.B3Mimc0P.mjs';
17
+ import '../shared/luca.Djs7oPPj.mjs';
18
18
 
19
19
  const guardCommand = defineCommand({
20
20
  meta: {
@@ -1,6 +1,6 @@
1
1
  import { defineCommand } from 'citty';
2
2
  import 'zod';
3
- import '../shared/luca.CRmaAfXR.mjs';
3
+ import '../shared/luca.Q3_4GQWh.mjs';
4
4
  import 'node:fs';
5
5
  import 'node:fs/promises';
6
6
  import 'node:path';
@@ -8,13 +8,13 @@ import 'node:crypto';
8
8
  import 'node:module';
9
9
  import 'node:url';
10
10
  import 'node:child_process';
11
- import { c as readJsonPayload, r as runWriteHandler, p as lucaChecksRunTool } from '../shared/luca.DjDTeDCi.mjs';
11
+ import { e as readJsonPayload, r as runWriteHandler, s as lucaChecksRunTool } from '../shared/luca.CZNcKKAw.mjs';
12
12
  import 'node:os';
13
- import '../shared/luca.CrXzXueR.mjs';
14
- import '../shared/luca.HZxBTBgD.mjs';
15
- import '../shared/luca.TSMg1t7I.mjs';
13
+ import '../shared/luca.DEnRxIjr.mjs';
14
+ import '../shared/luca.CSIEeM0g.mjs';
15
+ import '../shared/luca.CbQLVJY4.mjs';
16
16
  import '../shared/luca.CQ3g1xrD.mjs';
17
- import '../shared/luca.B3Mimc0P.mjs';
17
+ import '../shared/luca.Djs7oPPj.mjs';
18
18
 
19
19
  const runCommand = defineCommand({
20
20
  meta: {
@@ -1,6 +1,6 @@
1
1
  import { defineCommand } from 'citty';
2
2
  import { resolve } from 'pathe';
3
- import '../shared/luca.CRmaAfXR.mjs';
3
+ import '../shared/luca.Q3_4GQWh.mjs';
4
4
  import { readFileSync, existsSync, readdirSync, statSync } from 'node:fs';
5
5
  import 'node:fs/promises';
6
6
  import { join } from 'node:path';
@@ -1,5 +1,5 @@
1
1
  import { defineCommand } from 'citty';
2
- import { C as ClassifyComplexityInputSchema } from '../shared/luca.CRmaAfXR.mjs';
2
+ import { C as ClassifyComplexityInputSchema } from '../shared/luca.Q3_4GQWh.mjs';
3
3
  import 'node:fs';
4
4
  import 'node:fs/promises';
5
5
  import 'node:path';
@@ -1,6 +1,6 @@
1
1
  import { defineCommand } from 'citty';
2
- import '../shared/luca.CRmaAfXR.mjs';
3
- import { l as loadCurrentState, r as resolveActiveSlug } from '../shared/luca.CrXzXueR.mjs';
2
+ import '../shared/luca.Q3_4GQWh.mjs';
3
+ import { l as loadCurrentState, r as resolveActiveSlug } from '../shared/luca.DEnRxIjr.mjs';
4
4
  import 'node:fs';
5
5
  import 'node:fs/promises';
6
6
  import 'node:path';
@@ -8,15 +8,15 @@ import 'node:crypto';
8
8
  import 'node:module';
9
9
  import 'node:url';
10
10
  import 'node:child_process';
11
- import { b as renderConfidenceJournalMarkdown, r as readConfidenceJournal, g as getConfidenceSummary } from '../shared/luca.HZxBTBgD.mjs';
11
+ import { b as renderConfidenceJournalMarkdown, r as readConfidenceJournal, g as getConfidenceSummary } from '../shared/luca.CSIEeM0g.mjs';
12
12
  import { l as logger } from '../shared/luca.dM-MKlNE.mjs';
13
13
  import 'zod';
14
- import { c as readJsonPayload, r as runWriteHandler, t as lucaConfidenceLogTool } from '../shared/luca.DjDTeDCi.mjs';
14
+ import { e as readJsonPayload, r as runWriteHandler, v as lucaConfidenceLogTool } from '../shared/luca.CZNcKKAw.mjs';
15
15
  import 'node:os';
16
- import '../shared/luca.TSMg1t7I.mjs';
16
+ import '../shared/luca.CbQLVJY4.mjs';
17
17
  import 'consola';
18
18
  import '../shared/luca.CQ3g1xrD.mjs';
19
- import '../shared/luca.B3Mimc0P.mjs';
19
+ import '../shared/luca.Djs7oPPj.mjs';
20
20
 
21
21
  async function resolveSlug(opts) {
22
22
  if (opts.explicit) return opts.explicit;
@@ -1,11 +1,11 @@
1
1
  import { defineCommand } from 'citty';
2
- import { c as coarsePhaseOf, a as classifyWritePath, A as AUDIT_PATH_PATTERN, W as WAVE_FILE_RE } from '../shared/luca.CRmaAfXR.mjs';
3
- import { l as loadCurrentState, r as resolveActiveSlug } from '../shared/luca.CrXzXueR.mjs';
2
+ import { c as coarsePhaseOf, a as classifyWritePath, A as AUDIT_PATH_PATTERN, W as WAVE_FILE_RE } from '../shared/luca.Q3_4GQWh.mjs';
3
+ import { l as loadCurrentState, r as resolveActiveSlug } from '../shared/luca.DEnRxIjr.mjs';
4
4
  import 'node:fs';
5
5
  import 'node:fs/promises';
6
- import 'node:path';
7
- import { S as STEP_ARTIFACTS } from '../shared/luca.B3Mimc0P.mjs';
8
- import { p as phasePathFor } from '../shared/luca.TSMg1t7I.mjs';
6
+ import { isAbsolute, relative } from 'node:path';
7
+ import { S as STEP_ARTIFACTS } from '../shared/luca.Djs7oPPj.mjs';
8
+ import { p as phasePathFor } from '../shared/luca.CbQLVJY4.mjs';
9
9
  import 'node:crypto';
10
10
  import 'node:module';
11
11
  import 'node:url';
@@ -72,6 +72,13 @@ function isToolAllowed({
72
72
  }
73
73
 
74
74
  const READONLY_COMMANDS = /* @__PURE__ */ new Set([
75
+ // Shell navigation/no-ops: mutate shell state, not files — benign for
76
+ // the file/repo-mutation policy this classifier enforces. `cd` is the
77
+ // big one: agents prefix nearly every command with `cd <dir> && …`, so
78
+ // omitting it made every compound command classify as a mutate.
79
+ "cd",
80
+ "pushd",
81
+ "popd",
75
82
  "ls",
76
83
  "cat",
77
84
  "grep",
@@ -189,13 +196,14 @@ const LUCA_READ_VERBS = /* @__PURE__ */ new Set([
189
196
  "current",
190
197
  "list",
191
198
  "guard",
199
+ "aggregate",
192
200
  "filter-stale",
193
201
  "detect-convergence",
194
202
  "regression-check"
195
203
  ]);
196
204
  const LUCA_NOUN_VERBS = {
197
205
  state: /* @__PURE__ */ new Set(["read", "advance"]),
198
- phase: /* @__PURE__ */ new Set(["current"]),
206
+ phase: /* @__PURE__ */ new Set(["current", "advance", "archive"]),
199
207
  roadmap: /* @__PURE__ */ new Set(["read", "create"]),
200
208
  preferences: /* @__PURE__ */ new Set(["read", "write"]),
201
209
  todo: /* @__PURE__ */ new Set(["add", "list", "update"]),
@@ -208,11 +216,16 @@ const LUCA_NOUN_VERBS = {
208
216
  checks: /* @__PURE__ */ new Set(["run"]),
209
217
  branch: /* @__PURE__ */ new Set(["guard"]),
210
218
  workflow: /* @__PURE__ */ new Set(["reset"]),
211
- confidence: /* @__PURE__ */ new Set(["log"])
219
+ confidence: /* @__PURE__ */ new Set(["log"]),
220
+ // Read-side surfaces over the per-phase verify.json files.
221
+ verification: /* @__PURE__ */ new Set(["read", "aggregate"])
212
222
  };
213
223
  function classifyLucaCommand(rest) {
224
+ if (rest.some((t) => ["--help", "-h", "--version"].includes(t))) {
225
+ return "bash-readonly";
226
+ }
214
227
  const noun = rest.find((t) => !t.startsWith("-"));
215
- if (!noun) return void 0;
228
+ if (!noun) return "bash-readonly";
216
229
  const verbs = LUCA_NOUN_VERBS[noun];
217
230
  if (!verbs) return void 0;
218
231
  const afterNoun = rest.slice(rest.indexOf(noun) + 1);
@@ -358,6 +371,16 @@ function classifySubcommand(sub) {
358
371
  };
359
372
  }
360
373
  }
374
+ if (cmd === "sed" || cmd === "awk") {
375
+ const sedInPlace = cmd === "sed" && rest.some((a) => a === "--in-place" || a.startsWith("-i"));
376
+ const awkInPlace = cmd === "awk" && rest.some((a, i) => a === "-i" && rest[i + 1] === "inplace");
377
+ if (!sedInPlace && !awkInPlace) {
378
+ return {
379
+ category: sub.redirect ? "bash-mutate" : "bash-readonly",
380
+ targetPaths: targetsFromRedirect
381
+ };
382
+ }
383
+ }
361
384
  if (MUTATE_COMMANDS.has(cmd)) {
362
385
  const lastArg = cmd === "cp" || cmd === "mv" || cmd === "ln" ? lastNonFlag(rest) : void 0;
363
386
  const sedTarget = cmd === "sed" && rest.includes("-i") ? rest[rest.length - 1] : void 0;
@@ -494,11 +517,12 @@ async function handleStageGateHook(opts) {
494
517
  log(`stage-gate: ${toolName} without file_path \u2014 allowing`);
495
518
  return { exitCode: 0, toolName, toolInput, decision: "allow" };
496
519
  }
497
- const pc = classifyWritePath(targetPath, { homedir });
520
+ const relTarget = isAbsolute(targetPath) ? relative(cwd, targetPath) : targetPath;
521
+ const pc = classifyWritePath(targetPath, { homedir, cwd });
498
522
  if (pc.class === "denied") {
499
523
  pathBlockReason = `${toolName} to '${targetPath}' is always denied: ${pc.reason ?? "forbidden path"}`;
500
524
  } else if (pc.class === "planning-general" || pc.class === "planning-audit") {
501
- const gate = artifactPathGate(targetPath, state.pipelineStep, state);
525
+ const gate = artifactPathGate(relTarget, state.pipelineStep, state);
502
526
  if (gate.kind === "block") {
503
527
  const msg = `stage-gate BLOCK: ${toolName} ${gate.reason} (pipelineStep=${state.pipelineStep})`;
504
528
  log(msg);
@@ -3,7 +3,7 @@ import { defineCommand, runMain } from 'citty';
3
3
  import { existsSync, chmodSync } from 'node:fs';
4
4
  import { mkdir, writeFile, readFile, readdir, copyFile } from 'node:fs/promises';
5
5
  import { join, dirname, delimiter } from 'node:path';
6
- import { l as lucaStateSchema } from '../shared/luca.CRmaAfXR.mjs';
6
+ import { l as lucaStateSchema } from '../shared/luca.Q3_4GQWh.mjs';
7
7
  import 'node:crypto';
8
8
  import 'node:module';
9
9
  import 'node:url';
@@ -1,6 +1,6 @@
1
1
  import { defineCommand } from 'citty';
2
2
  import 'zod';
3
- import '../shared/luca.CRmaAfXR.mjs';
3
+ import '../shared/luca.Q3_4GQWh.mjs';
4
4
  import 'node:fs';
5
5
  import 'node:fs/promises';
6
6
  import 'node:path';
@@ -8,13 +8,13 @@ import 'node:crypto';
8
8
  import 'node:module';
9
9
  import 'node:url';
10
10
  import 'node:child_process';
11
- import { r as runWriteHandler, b as lucaPhaseCurrentTool } from '../shared/luca.DjDTeDCi.mjs';
11
+ import { r as runWriteHandler, b as lucaPhaseCurrentTool, c as lucaPhaseAdvanceTool, d as lucaPhaseArchiveTool } from '../shared/luca.CZNcKKAw.mjs';
12
12
  import 'node:os';
13
- import '../shared/luca.CrXzXueR.mjs';
14
- import '../shared/luca.HZxBTBgD.mjs';
15
- import '../shared/luca.TSMg1t7I.mjs';
13
+ import '../shared/luca.DEnRxIjr.mjs';
14
+ import '../shared/luca.CSIEeM0g.mjs';
15
+ import '../shared/luca.CbQLVJY4.mjs';
16
16
  import '../shared/luca.CQ3g1xrD.mjs';
17
- import '../shared/luca.B3Mimc0P.mjs';
17
+ import '../shared/luca.Djs7oPPj.mjs';
18
18
 
19
19
  const currentCommand = defineCommand({
20
20
  meta: {
@@ -25,13 +25,33 @@ const currentCommand = defineCommand({
25
25
  await runWriteHandler("phase current", lucaPhaseCurrentTool, {});
26
26
  }
27
27
  });
28
+ const advanceCommand = defineCommand({
29
+ meta: {
30
+ name: "advance",
31
+ description: "Advance the active roadmap phase by one (currentPhase \u2192 currentPhase+1), marking the completed phase done and the next in-progress. Call at the phase boundary (learn step) when more phases remain; the final phase routes to the milestone step."
32
+ },
33
+ async run() {
34
+ await runWriteHandler("phase advance", lucaPhaseAdvanceTool, {});
35
+ }
36
+ });
37
+ const archiveCommand = defineCommand({
38
+ meta: {
39
+ name: "archive",
40
+ description: "Archive all active phase directories (.luca/phases/<slug>/ \u2192 .luca/archive/<slug>/) at milestone close, so the next milestone starts from an empty phases/ dir. Idempotent; skips slugs already archived. Allowed only in the milestone/complete steps."
41
+ },
42
+ async run() {
43
+ await runWriteHandler("phase archive", lucaPhaseArchiveTool, {});
44
+ }
45
+ });
28
46
  const phaseCommand = defineCommand({
29
47
  meta: {
30
48
  name: "phase",
31
- description: "Inspect the active Luca workflow phase"
49
+ description: "Inspect, advance, and archive Luca workflow phases"
32
50
  },
33
51
  subCommands: {
34
- current: currentCommand
52
+ current: currentCommand,
53
+ advance: advanceCommand,
54
+ archive: archiveCommand
35
55
  }
36
56
  });
37
57
 
@@ -1,6 +1,6 @@
1
1
  import { defineCommand } from 'citty';
2
2
  import 'zod';
3
- import '../shared/luca.CRmaAfXR.mjs';
3
+ import '../shared/luca.Q3_4GQWh.mjs';
4
4
  import 'node:fs';
5
5
  import 'node:fs/promises';
6
6
  import 'node:path';
@@ -8,13 +8,13 @@ import 'node:crypto';
8
8
  import 'node:module';
9
9
  import 'node:url';
10
10
  import 'node:child_process';
11
- import { c as readJsonPayload, r as runWriteHandler, k as lucaPrReviewDetectConvergenceTool, m as lucaPrReviewFilterStaleTool, n as lucaPrReviewRegressionCheckTool } from '../shared/luca.DjDTeDCi.mjs';
11
+ import { e as readJsonPayload, r as runWriteHandler, n as lucaPrReviewDetectConvergenceTool, o as lucaPrReviewFilterStaleTool, p as lucaPrReviewRegressionCheckTool } from '../shared/luca.CZNcKKAw.mjs';
12
12
  import 'node:os';
13
- import '../shared/luca.CrXzXueR.mjs';
14
- import '../shared/luca.HZxBTBgD.mjs';
15
- import '../shared/luca.TSMg1t7I.mjs';
13
+ import '../shared/luca.DEnRxIjr.mjs';
14
+ import '../shared/luca.CSIEeM0g.mjs';
15
+ import '../shared/luca.CbQLVJY4.mjs';
16
16
  import '../shared/luca.CQ3g1xrD.mjs';
17
- import '../shared/luca.B3Mimc0P.mjs';
17
+ import '../shared/luca.Djs7oPPj.mjs';
18
18
 
19
19
  const filterStaleCommand = defineCommand({
20
20
  meta: {
@@ -1,6 +1,6 @@
1
1
  import { defineCommand } from 'citty';
2
2
  import 'zod';
3
- import '../shared/luca.CRmaAfXR.mjs';
3
+ import '../shared/luca.Q3_4GQWh.mjs';
4
4
  import 'node:fs';
5
5
  import 'node:fs/promises';
6
6
  import 'node:path';
@@ -8,13 +8,13 @@ import 'node:crypto';
8
8
  import 'node:module';
9
9
  import 'node:url';
10
10
  import 'node:child_process';
11
- import { c as readJsonPayload, r as runWriteHandler, f as lucaPreferencesReadTool, g as lucaPreferencesWriteTool } from '../shared/luca.DjDTeDCi.mjs';
11
+ import { e as readJsonPayload, r as runWriteHandler, h as lucaPreferencesReadTool, i as lucaPreferencesWriteTool } from '../shared/luca.CZNcKKAw.mjs';
12
12
  import 'node:os';
13
- import '../shared/luca.CrXzXueR.mjs';
14
- import '../shared/luca.HZxBTBgD.mjs';
15
- import '../shared/luca.TSMg1t7I.mjs';
13
+ import '../shared/luca.DEnRxIjr.mjs';
14
+ import '../shared/luca.CSIEeM0g.mjs';
15
+ import '../shared/luca.CbQLVJY4.mjs';
16
16
  import '../shared/luca.CQ3g1xrD.mjs';
17
- import '../shared/luca.B3Mimc0P.mjs';
17
+ import '../shared/luca.Djs7oPPj.mjs';
18
18
 
19
19
  const readCommand = defineCommand({
20
20
  meta: {
@@ -2,7 +2,7 @@ import { defineCommand } from 'citty';
2
2
  import { existsSync } from 'node:fs';
3
3
  import { readFile, rm } from 'node:fs/promises';
4
4
  import { join } from 'node:path';
5
- import { l as lucaStateSchema } from '../shared/luca.CRmaAfXR.mjs';
5
+ import { l as lucaStateSchema } from '../shared/luca.Q3_4GQWh.mjs';
6
6
  import 'node:crypto';
7
7
  import 'node:module';
8
8
  import 'node:url';
@@ -1,6 +1,6 @@
1
1
  import { defineCommand } from 'citty';
2
2
  import 'zod';
3
- import '../shared/luca.CRmaAfXR.mjs';
3
+ import '../shared/luca.Q3_4GQWh.mjs';
4
4
  import 'node:fs';
5
5
  import 'node:fs/promises';
6
6
  import 'node:path';
@@ -8,13 +8,13 @@ import 'node:crypto';
8
8
  import 'node:module';
9
9
  import 'node:url';
10
10
  import 'node:child_process';
11
- import { c as readJsonPayload, r as runWriteHandler, o as lucaRepoCleanupApplyTool } from '../shared/luca.DjDTeDCi.mjs';
11
+ import { e as readJsonPayload, r as runWriteHandler, q as lucaRepoCleanupApplyTool } from '../shared/luca.CZNcKKAw.mjs';
12
12
  import 'node:os';
13
- import '../shared/luca.CrXzXueR.mjs';
14
- import '../shared/luca.HZxBTBgD.mjs';
15
- import '../shared/luca.TSMg1t7I.mjs';
13
+ import '../shared/luca.DEnRxIjr.mjs';
14
+ import '../shared/luca.CSIEeM0g.mjs';
15
+ import '../shared/luca.CbQLVJY4.mjs';
16
16
  import '../shared/luca.CQ3g1xrD.mjs';
17
- import '../shared/luca.B3Mimc0P.mjs';
17
+ import '../shared/luca.Djs7oPPj.mjs';
18
18
 
19
19
  const cleanupApplyCommand = defineCommand({
20
20
  meta: {
@@ -1,5 +1,5 @@
1
1
  import { defineCommand } from 'citty';
2
- import '../shared/luca.CRmaAfXR.mjs';
2
+ import '../shared/luca.Q3_4GQWh.mjs';
3
3
  import 'node:fs';
4
4
  import 'node:fs/promises';
5
5
  import 'node:path';
@@ -7,13 +7,13 @@ import 'node:crypto';
7
7
  import 'node:module';
8
8
  import 'node:url';
9
9
  import 'node:child_process';
10
- import { a as analyzeRun, g as gatherRunArtifacts, r as renderPostmortemMarkdown, c as computePostmortemExitCode } from '../shared/luca.C4gMUoBd.mjs';
11
- import { l as listRuns } from '../shared/luca.HZxBTBgD.mjs';
10
+ import { a as analyzeRun, g as gatherRunArtifacts, r as renderPostmortemMarkdown, c as computePostmortemExitCode } from '../shared/luca.EQGAqeU5.mjs';
11
+ import { l as listRuns } from '../shared/luca.CSIEeM0g.mjs';
12
12
  import { l as logger } from '../shared/luca.dM-MKlNE.mjs';
13
13
  import 'zod';
14
14
  import 'node:os';
15
- import '../shared/luca.BmhNkYe2.mjs';
16
- import '../shared/luca.TSMg1t7I.mjs';
15
+ import '../shared/luca.BKNzBAX6.mjs';
16
+ import '../shared/luca.CbQLVJY4.mjs';
17
17
  import 'pathe';
18
18
  import 'consola';
19
19
 
@@ -1,6 +1,6 @@
1
1
  import { defineCommand } from 'citty';
2
2
  import 'zod';
3
- import '../shared/luca.CRmaAfXR.mjs';
3
+ import '../shared/luca.Q3_4GQWh.mjs';
4
4
  import 'node:fs';
5
5
  import 'node:fs/promises';
6
6
  import 'node:path';
@@ -8,13 +8,13 @@ import 'node:crypto';
8
8
  import 'node:module';
9
9
  import 'node:url';
10
10
  import 'node:child_process';
11
- import { c as readJsonPayload, r as runWriteHandler, d as lucaRoadmapReadTool, e as lucaRoadmapCreateTool } from '../shared/luca.DjDTeDCi.mjs';
11
+ import { e as readJsonPayload, r as runWriteHandler, f as lucaRoadmapReadTool, g as lucaRoadmapCreateTool } from '../shared/luca.CZNcKKAw.mjs';
12
12
  import 'node:os';
13
- import '../shared/luca.CrXzXueR.mjs';
14
- import '../shared/luca.HZxBTBgD.mjs';
15
- import '../shared/luca.TSMg1t7I.mjs';
13
+ import '../shared/luca.DEnRxIjr.mjs';
14
+ import '../shared/luca.CSIEeM0g.mjs';
15
+ import '../shared/luca.CbQLVJY4.mjs';
16
16
  import '../shared/luca.CQ3g1xrD.mjs';
17
- import '../shared/luca.B3Mimc0P.mjs';
17
+ import '../shared/luca.Djs7oPPj.mjs';
18
18
 
19
19
  const readCommand = defineCommand({
20
20
  meta: {
@@ -1,6 +1,6 @@
1
1
  import { defineCommand } from 'citty';
2
2
  import { join as join$1 } from 'pathe';
3
- import '../shared/luca.CRmaAfXR.mjs';
3
+ import '../shared/luca.Q3_4GQWh.mjs';
4
4
  import { existsSync, readdirSync, statSync, readFileSync } from 'node:fs';
5
5
  import 'node:fs/promises';
6
6
  import { isAbsolute, resolve, join, extname } from 'node:path';
@@ -8,13 +8,13 @@ import 'node:crypto';
8
8
  import { createRequire } from 'node:module';
9
9
  import { pathToFileURL } from 'node:url';
10
10
  import 'node:child_process';
11
- import { a as analyzeRun, g as gatherRunArtifacts } from '../shared/luca.C4gMUoBd.mjs';
12
- import { l as listRuns } from '../shared/luca.HZxBTBgD.mjs';
11
+ import { a as analyzeRun, g as gatherRunArtifacts } from '../shared/luca.EQGAqeU5.mjs';
12
+ import { l as listRuns } from '../shared/luca.CSIEeM0g.mjs';
13
13
  import { l as logger } from '../shared/luca.dM-MKlNE.mjs';
14
14
  import 'zod';
15
15
  import 'node:os';
16
- import '../shared/luca.BmhNkYe2.mjs';
17
- import '../shared/luca.TSMg1t7I.mjs';
16
+ import '../shared/luca.BKNzBAX6.mjs';
17
+ import '../shared/luca.CbQLVJY4.mjs';
18
18
  import 'consola';
19
19
 
20
20
  let tsModuleCache = void 0;
@@ -1,6 +1,6 @@
1
1
  import { defineCommand } from 'citty';
2
2
  import 'zod';
3
- import '../shared/luca.CRmaAfXR.mjs';
3
+ import '../shared/luca.Q3_4GQWh.mjs';
4
4
  import 'node:fs';
5
5
  import 'node:fs/promises';
6
6
  import 'node:path';
@@ -8,13 +8,13 @@ import 'node:crypto';
8
8
  import 'node:module';
9
9
  import 'node:url';
10
10
  import 'node:child_process';
11
- import { r as runWriteHandler, l as lucaStateAdvanceTool, a as lucaStateReadTool } from '../shared/luca.DjDTeDCi.mjs';
11
+ import { r as runWriteHandler, l as lucaStateAdvanceTool, a as lucaStateReadTool } from '../shared/luca.CZNcKKAw.mjs';
12
12
  import 'node:os';
13
- import '../shared/luca.CrXzXueR.mjs';
14
- import '../shared/luca.HZxBTBgD.mjs';
15
- import '../shared/luca.TSMg1t7I.mjs';
13
+ import '../shared/luca.DEnRxIjr.mjs';
14
+ import '../shared/luca.CSIEeM0g.mjs';
15
+ import '../shared/luca.CbQLVJY4.mjs';
16
16
  import '../shared/luca.CQ3g1xrD.mjs';
17
- import '../shared/luca.B3Mimc0P.mjs';
17
+ import '../shared/luca.Djs7oPPj.mjs';
18
18
 
19
19
  const readCommand = defineCommand({
20
20
  meta: {
@@ -1,7 +1,7 @@
1
1
  import { existsSync, lstatSync } from 'node:fs';
2
2
  import { rm, writeFile, readdir, rmdir } from 'node:fs/promises';
3
3
  import { join } from 'node:path';
4
- import '../shared/luca.CRmaAfXR.mjs';
4
+ import '../shared/luca.Q3_4GQWh.mjs';
5
5
  import 'node:crypto';
6
6
  import 'node:module';
7
7
  import 'node:url';
@@ -1,5 +1,5 @@
1
1
  import { defineCommand } from 'citty';
2
- import { R as RunIdSchema, L as LUCA_DIR_ROOT, T as TelemetryRecordSchema } from '../shared/luca.CRmaAfXR.mjs';
2
+ import { R as RunIdSchema, L as LUCA_DIR_ROOT, T as TelemetryRecordSchema } from '../shared/luca.Q3_4GQWh.mjs';
3
3
  import { mkdirSync, appendFileSync } from 'node:fs';
4
4
  import 'node:fs/promises';
5
5
  import { join, dirname } from 'node:path';
@@ -1,6 +1,6 @@
1
1
  import { defineCommand } from 'citty';
2
2
  import 'zod';
3
- import '../shared/luca.CRmaAfXR.mjs';
3
+ import '../shared/luca.Q3_4GQWh.mjs';
4
4
  import 'node:fs';
5
5
  import 'node:fs/promises';
6
6
  import 'node:path';
@@ -8,13 +8,13 @@ import 'node:crypto';
8
8
  import 'node:module';
9
9
  import 'node:url';
10
10
  import 'node:child_process';
11
- import { c as readJsonPayload, r as runWriteHandler, h as lucaTodoUpdateTool, i as lucaTodoListTool, j as lucaTodoAddTool } from '../shared/luca.DjDTeDCi.mjs';
11
+ import { e as readJsonPayload, r as runWriteHandler, j as lucaTodoUpdateTool, k as lucaTodoListTool, m as lucaTodoAddTool } from '../shared/luca.CZNcKKAw.mjs';
12
12
  import 'node:os';
13
- import '../shared/luca.CrXzXueR.mjs';
14
- import '../shared/luca.HZxBTBgD.mjs';
15
- import '../shared/luca.TSMg1t7I.mjs';
13
+ import '../shared/luca.DEnRxIjr.mjs';
14
+ import '../shared/luca.CSIEeM0g.mjs';
15
+ import '../shared/luca.CbQLVJY4.mjs';
16
16
  import '../shared/luca.CQ3g1xrD.mjs';
17
- import '../shared/luca.B3Mimc0P.mjs';
17
+ import '../shared/luca.Djs7oPPj.mjs';
18
18
 
19
19
  const addCommand = defineCommand({
20
20
  meta: {
@@ -1,5 +1,5 @@
1
1
  import { existsSync, chmodSync, mkdirSync } from 'node:fs';
2
- import '../shared/luca.CRmaAfXR.mjs';
2
+ import '../shared/luca.Q3_4GQWh.mjs';
3
3
  import 'node:fs/promises';
4
4
  import 'node:path';
5
5
  import { l as loadCurrentConfig } from '../shared/luca.CQ3g1xrD.mjs';
@@ -1,6 +1,6 @@
1
1
  import { defineCommand } from 'citty';
2
- import '../shared/luca.CRmaAfXR.mjs';
3
- import { l as loadCurrentState, r as resolveActiveSlug } from '../shared/luca.CrXzXueR.mjs';
2
+ import '../shared/luca.Q3_4GQWh.mjs';
3
+ import { l as loadCurrentState, r as resolveActiveSlug } from '../shared/luca.DEnRxIjr.mjs';
4
4
  import 'node:fs';
5
5
  import 'node:fs/promises';
6
6
  import 'node:path';
@@ -8,11 +8,11 @@ import 'node:crypto';
8
8
  import 'node:module';
9
9
  import 'node:url';
10
10
  import 'node:child_process';
11
- import { l as listPhaseSlugs, r as readVerificationResult, a as aggregateVerificationResults } from '../shared/luca.BmhNkYe2.mjs';
11
+ import { l as listPhaseSlugs, r as readVerificationResult, a as aggregateVerificationResults } from '../shared/luca.BKNzBAX6.mjs';
12
12
  import { l as logger } from '../shared/luca.dM-MKlNE.mjs';
13
13
  import 'zod';
14
14
  import 'node:os';
15
- import '../shared/luca.TSMg1t7I.mjs';
15
+ import '../shared/luca.CbQLVJY4.mjs';
16
16
  import 'pathe';
17
17
  import 'consola';
18
18
 
@@ -1,6 +1,6 @@
1
1
  import { defineCommand } from 'citty';
2
2
  import 'zod';
3
- import '../shared/luca.CRmaAfXR.mjs';
3
+ import '../shared/luca.Q3_4GQWh.mjs';
4
4
  import 'node:fs';
5
5
  import 'node:fs/promises';
6
6
  import 'node:path';
@@ -8,13 +8,13 @@ import 'node:crypto';
8
8
  import 'node:module';
9
9
  import 'node:url';
10
10
  import 'node:child_process';
11
- import { r as runWriteHandler, s as lucaWorkflowResetTool } from '../shared/luca.DjDTeDCi.mjs';
11
+ import { r as runWriteHandler, u as lucaWorkflowResetTool } from '../shared/luca.CZNcKKAw.mjs';
12
12
  import 'node:os';
13
- import '../shared/luca.CrXzXueR.mjs';
14
- import '../shared/luca.HZxBTBgD.mjs';
15
- import '../shared/luca.TSMg1t7I.mjs';
13
+ import '../shared/luca.DEnRxIjr.mjs';
14
+ import '../shared/luca.CSIEeM0g.mjs';
15
+ import '../shared/luca.CbQLVJY4.mjs';
16
16
  import '../shared/luca.CQ3g1xrD.mjs';
17
- import '../shared/luca.B3Mimc0P.mjs';
17
+ import '../shared/luca.Djs7oPPj.mjs';
18
18
 
19
19
  const resetCommand = defineCommand({
20
20
  meta: {