@alecsibilia/luca 13.0.0-alpha.8 → 13.0.0-alpha.9

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 (53) 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 +78 -8
  6. package/dist/chunks/hook.mjs +7 -4
  7. package/dist/chunks/init.mjs +27 -1
  8. package/dist/chunks/phase.mjs +6 -6
  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/architect.md +43 -0
  24. package/dist/claude/.claude/agents/execute.md +4 -2
  25. package/dist/claude/.claude/agents/shadow-scanner.md +1 -1
  26. package/dist/claude/.claude/agents/triage.md +3 -3
  27. package/dist/claude/.claude/commands/gh-pr-address.md +6 -6
  28. package/dist/claude/.claude/commands/lu.md +30 -7
  29. package/dist/claude/.claude/commands/milestone-new.md +2 -2
  30. package/dist/claude/.claude/commands/repo-cleanup.md +2 -2
  31. package/dist/claude/.claude/hooks/context-refresher.ts +4 -1
  32. package/dist/claude/.claude/hooks/continuation-messages.ts +4 -1
  33. package/dist/claude/.claude/hooks/pipeline-guard.ts +4 -1
  34. package/dist/claude/skills/gh-issue-triage/SKILL.md +2 -2
  35. package/dist/claude/skills/gh-pr-address/SKILL.md +6 -6
  36. package/dist/claude/skills/lu/SKILL.md +59 -8
  37. package/dist/claude/skills/luca-init/SKILL.md +2 -2
  38. package/dist/claude/skills/phase-discuss/SKILL.md +11 -1
  39. package/dist/claude/skills/phase-execute/SKILL.md +13 -1
  40. package/dist/claude/skills/phase-plan/SKILL.md +15 -3
  41. package/dist/claude/skills/phase-research/SKILL.md +8 -0
  42. package/dist/claude/skills/repo-cleanup/SKILL.md +2 -2
  43. package/dist/index.mjs +1 -1
  44. package/dist/shared/{luca.BeGsLJkq.mjs → luca.8yAUP8PG.mjs} +3 -3
  45. package/dist/shared/{luca.CWsqOppt.mjs → luca.BiCFpsE9.mjs} +1 -1
  46. package/dist/shared/{luca.BV4noBW7.mjs → luca.CXJxgzAE.mjs} +2 -2
  47. package/dist/shared/{luca.ELUgu8AW.mjs → luca.Cah4kvKS.mjs} +16 -8
  48. package/dist/shared/{luca.Dn7Gbruu.mjs → luca.CgZgNO4A.mjs} +2 -2
  49. package/dist/shared/{luca.CyQeErH2.mjs → luca.CvfK4ZaL.mjs} +1 -1
  50. package/dist/shared/{luca.B8ydzQ8S.mjs → luca.DhWPHlqL.mjs} +38 -3
  51. package/dist/shared/{luca.Da5I_JVg.mjs → luca.Dtt-5Dh0.mjs} +1 -1
  52. package/package.json +4 -4
  53. package/dist/claude/skills/autopilot/SKILL.md +0 -1290
@@ -1,6 +1,6 @@
1
1
  import { defineCommand } from 'citty';
2
2
  import 'zod';
3
- import '../shared/luca.B8ydzQ8S.mjs';
3
+ import '../shared/luca.DhWPHlqL.mjs';
4
4
  import 'node:fs';
5
5
  import 'node:fs/promises';
6
6
  import 'node:path';
@@ -8,12 +8,12 @@ import 'node:crypto';
8
8
  import 'node:module';
9
9
  import 'node:url';
10
10
  import 'node:child_process';
11
- import { r as runWriteHandler, u as lucaBranchGuardTool } from '../shared/luca.ELUgu8AW.mjs';
12
- import '../shared/luca.CyQeErH2.mjs';
11
+ import { r as runWriteHandler, u as lucaBranchGuardTool } from '../shared/luca.Cah4kvKS.mjs';
12
+ import '../shared/luca.CvfK4ZaL.mjs';
13
13
  import 'node:os';
14
- import '../shared/luca.CWsqOppt.mjs';
15
- import '../shared/luca.Dn7Gbruu.mjs';
16
- import '../shared/luca.Da5I_JVg.mjs';
14
+ import '../shared/luca.BiCFpsE9.mjs';
15
+ import '../shared/luca.CgZgNO4A.mjs';
16
+ import '../shared/luca.Dtt-5Dh0.mjs';
17
17
  import '../shared/luca.CQ3g1xrD.mjs';
18
18
 
19
19
  const guardCommand = defineCommand({
@@ -1,6 +1,6 @@
1
1
  import { defineCommand } from 'citty';
2
2
  import 'zod';
3
- import '../shared/luca.B8ydzQ8S.mjs';
3
+ import '../shared/luca.DhWPHlqL.mjs';
4
4
  import 'node:fs';
5
5
  import 'node:fs/promises';
6
6
  import 'node:path';
@@ -8,12 +8,12 @@ import 'node:crypto';
8
8
  import 'node:module';
9
9
  import 'node:url';
10
10
  import 'node:child_process';
11
- import { f as readJsonPayload, r as runWriteHandler, t as lucaChecksRunTool } from '../shared/luca.ELUgu8AW.mjs';
12
- import '../shared/luca.CyQeErH2.mjs';
11
+ import { f as readJsonPayload, r as runWriteHandler, t as lucaChecksRunTool } from '../shared/luca.Cah4kvKS.mjs';
12
+ import '../shared/luca.CvfK4ZaL.mjs';
13
13
  import 'node:os';
14
- import '../shared/luca.CWsqOppt.mjs';
15
- import '../shared/luca.Dn7Gbruu.mjs';
16
- import '../shared/luca.Da5I_JVg.mjs';
14
+ import '../shared/luca.BiCFpsE9.mjs';
15
+ import '../shared/luca.CgZgNO4A.mjs';
16
+ import '../shared/luca.Dtt-5Dh0.mjs';
17
17
  import '../shared/luca.CQ3g1xrD.mjs';
18
18
 
19
19
  const runCommand = defineCommand({
@@ -1,6 +1,6 @@
1
1
  import { defineCommand } from 'citty';
2
2
  import { resolve } from 'pathe';
3
- import '../shared/luca.B8ydzQ8S.mjs';
3
+ import '../shared/luca.DhWPHlqL.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.B8ydzQ8S.mjs';
2
+ import { C as ClassifyComplexityInputSchema } from '../shared/luca.DhWPHlqL.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.B8ydzQ8S.mjs';
3
- import { l as loadCurrentState, r as resolveActiveSlug } from '../shared/luca.CWsqOppt.mjs';
2
+ import '../shared/luca.DhWPHlqL.mjs';
3
+ import { l as loadCurrentState, r as resolveActiveSlug } from '../shared/luca.BiCFpsE9.mjs';
4
4
  import 'node:fs';
5
5
  import 'node:fs/promises';
6
6
  import 'node:path';
@@ -8,16 +8,47 @@ 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.Dn7Gbruu.mjs';
11
+ import { r as readConfidenceJournal, b as renderConfidenceJournalMarkdown, g as getConfidenceSummary } from '../shared/luca.CgZgNO4A.mjs';
12
12
  import { l as logger } from '../shared/luca.dM-MKlNE.mjs';
13
13
  import 'zod';
14
- import { f as readJsonPayload, r as runWriteHandler, w as lucaConfidenceLogTool } from '../shared/luca.ELUgu8AW.mjs';
15
- import '../shared/luca.CyQeErH2.mjs';
14
+ import { f as readJsonPayload, r as runWriteHandler, w as lucaConfidenceLogTool } from '../shared/luca.Cah4kvKS.mjs';
15
+ import '../shared/luca.CvfK4ZaL.mjs';
16
16
  import 'node:os';
17
- import '../shared/luca.Da5I_JVg.mjs';
17
+ import '../shared/luca.Dtt-5Dh0.mjs';
18
18
  import 'consola';
19
19
  import '../shared/luca.CQ3g1xrD.mjs';
20
20
 
21
+ function selectConfidenceGateActions(entries) {
22
+ const auto = [];
23
+ const research = [];
24
+ const ask = [];
25
+ for (const entry of entries) {
26
+ if (entry.resolution) {
27
+ if (entry.resolution === "auto") auto.push(entry);
28
+ else if (entry.resolution === "research") research.push(entry);
29
+ else if (entry.resolution === "ask") ask.push(entry);
30
+ else {
31
+ entry.resolution;
32
+ ask.push(entry);
33
+ }
34
+ } else if (entry.confidence === "high") {
35
+ auto.push(entry);
36
+ } else if (entry.confidence === "medium") {
37
+ auto.push(entry);
38
+ } else if (entry.confidence === "low" && entry.researchable === true) {
39
+ research.push(entry);
40
+ } else {
41
+ ask.push(entry);
42
+ }
43
+ }
44
+ return {
45
+ auto,
46
+ research,
47
+ ask,
48
+ counts: { auto: auto.length, research: research.length, ask: ask.length }
49
+ };
50
+ }
51
+
21
52
  async function resolveSlug(opts) {
22
53
  if (opts.explicit) return opts.explicit;
23
54
  const state = await loadCurrentState({ cwd: opts.cwd });
@@ -87,6 +118,14 @@ const logCommand = defineCommand({
87
118
  "review-hint": {
88
119
  type: "string",
89
120
  description: "Optional. Suggested focus area for a human reviewer."
121
+ },
122
+ researchable: {
123
+ type: "boolean",
124
+ description: "Optional. Set true when the ambiguity is factual and resolvable by automated research; absent/false means human judgment is required (gate routes to ask)."
125
+ },
126
+ resolution: {
127
+ type: "string",
128
+ description: "Optional. Explicit gate routing override: auto | research | ask. Overrides confidence-derived bucketing when set."
90
129
  }
91
130
  },
92
131
  async run({ args }) {
@@ -101,6 +140,13 @@ const logCommand = defineCommand({
101
140
  }
102
141
  payload = fromFile;
103
142
  } else {
143
+ const resolution = args.resolution;
144
+ if (resolution !== void 0 && resolution !== "auto" && resolution !== "research" && resolution !== "ask") {
145
+ logger.error(
146
+ `luca confidence log: --resolution must be one of: auto, research, ask (got "${resolution}"). Run \`luca confidence log --help\` for usage.`
147
+ );
148
+ process.exit(1);
149
+ }
104
150
  payload = {
105
151
  phase: args.phase,
106
152
  wave: args.wave !== void 0 ? Number(args.wave) : void 0,
@@ -112,7 +158,9 @@ const logCommand = defineCommand({
112
158
  reasoning: args.reasoning,
113
159
  risk: args.risk,
114
160
  files: splitCsv(args.files),
115
- ...args["review-hint"] !== void 0 ? { reviewHint: args["review-hint"] } : {}
161
+ ...args["review-hint"] !== void 0 ? { reviewHint: args["review-hint"] } : {},
162
+ ...args.researchable !== void 0 ? { researchable: args.researchable } : {},
163
+ ...resolution !== void 0 ? { resolution } : {}
116
164
  };
117
165
  }
118
166
  await runWriteHandler(
@@ -183,6 +231,27 @@ const renderCommand = defineCommand({
183
231
  `);
184
232
  }
185
233
  });
234
+ const gateCommand = defineCommand({
235
+ meta: {
236
+ name: "gate",
237
+ description: "Bucket a phase's confidence entries into gate actions and emit a JSON object shaped { auto: [...], research: [...], ask: [...], counts: { auto, research, ask } } to stdout. Each entry lands in exactly one bucket: explicit resolution overrides first, then high/medium \u2192 auto, low+researchable \u2192 research, otherwise \u2192 ask (fail-toward-human)."
238
+ },
239
+ args: {
240
+ slug: {
241
+ type: "string",
242
+ description: "Phase slug (defaults to active phase)."
243
+ }
244
+ },
245
+ async run({ args }) {
246
+ const cwd = process.cwd();
247
+ const slug = await resolveSlug({ explicit: args.slug, cwd });
248
+ const actions = selectConfidenceGateActions(
249
+ readConfidenceJournal({ cwd, slug })
250
+ );
251
+ process.stdout.write(`${JSON.stringify(actions, null, 2)}
252
+ `);
253
+ }
254
+ });
186
255
  const confidenceCommand = defineCommand({
187
256
  meta: {
188
257
  name: "confidence",
@@ -192,7 +261,8 @@ const confidenceCommand = defineCommand({
192
261
  log: logCommand,
193
262
  read: readCommand,
194
263
  summary: summaryCommand,
195
- render: renderCommand
264
+ render: renderCommand,
265
+ gate: gateCommand
196
266
  }
197
267
  });
198
268
 
@@ -1,11 +1,11 @@
1
1
  import { defineCommand } from 'citty';
2
- import { c as coarsePhaseOf, t as toLucaRelative, a as classifyWritePath, A as AUDIT_PATH_PATTERN, W as WAVE_FILE_RE } from '../shared/luca.B8ydzQ8S.mjs';
3
- import { l as loadCurrentState, r as resolveActiveSlug } from '../shared/luca.CWsqOppt.mjs';
2
+ import { c as coarsePhaseOf, t as toLucaRelative, a as classifyWritePath, b as TMP_PATH_PATTERN, A as AUDIT_PATH_PATTERN, W as WAVE_FILE_RE } from '../shared/luca.DhWPHlqL.mjs';
3
+ import { l as loadCurrentState, r as resolveActiveSlug } from '../shared/luca.BiCFpsE9.mjs';
4
4
  import 'node:fs';
5
5
  import 'node:fs/promises';
6
6
  import 'node:path';
7
- import { l as lucaStateClaimOwnerTool, S as STEP_ARTIFACTS } from '../shared/luca.CyQeErH2.mjs';
8
- import { p as phasePathFor } from '../shared/luca.Da5I_JVg.mjs';
7
+ import { l as lucaStateClaimOwnerTool, S as STEP_ARTIFACTS } from '../shared/luca.CvfK4ZaL.mjs';
8
+ import { p as phasePathFor } from '../shared/luca.Dtt-5Dh0.mjs';
9
9
  import 'node:crypto';
10
10
  import 'node:module';
11
11
  import 'node:url';
@@ -678,6 +678,9 @@ const FIXED_PHASE_FILE_ARTIFACTS = /* @__PURE__ */ new Set([
678
678
  "execute/progress"
679
679
  ]);
680
680
  function artifactPathGate(targetPath, pipelineStep, state) {
681
+ if (TMP_PATH_PATTERN.test(targetPath)) {
682
+ return { kind: "allow" };
683
+ }
681
684
  const legalArtifacts = STEP_ARTIFACTS[pipelineStep];
682
685
  if (legalArtifacts.length === 0) {
683
686
  return {
@@ -3,7 +3,7 @@ import { defineCommand, runMain } from 'citty';
3
3
  import { existsSync, chmodSync } from 'node:fs';
4
4
  import { mkdir, readFile, writeFile, readdir, copyFile } from 'node:fs/promises';
5
5
  import { join, dirname, delimiter } from 'node:path';
6
- import { l as lucaStateSchema } from '../shared/luca.B8ydzQ8S.mjs';
6
+ import { l as lucaStateSchema } from '../shared/luca.DhWPHlqL.mjs';
7
7
  import 'node:crypto';
8
8
  import 'node:module';
9
9
  import 'node:url';
@@ -58,6 +58,32 @@ async function writeProjectSkeleton(opts) {
58
58
  force: opts.force ?? false,
59
59
  log
60
60
  });
61
+ await ensureLucaGitignore(opts.cwd, log);
62
+ }
63
+ const LUCA_GITIGNORE_ENTRIES = [
64
+ ".luca/state.json",
65
+ ".luca/state.json.lock",
66
+ ".luca/lock.json",
67
+ ".luca/ledger.jsonl",
68
+ ".luca/telemetry/",
69
+ ".luca/tmp/"
70
+ ];
71
+ async function ensureLucaGitignore(cwd, log = () => {
72
+ }) {
73
+ const gitignorePath = join(cwd, ".gitignore");
74
+ const content = existsSync(gitignorePath) ? await readFile(gitignorePath, "utf-8") : "";
75
+ const present = new Set(content.split("\n").map((line) => line.trim()));
76
+ const missing = LUCA_GITIGNORE_ENTRIES.filter((entry) => !present.has(entry));
77
+ if (missing.length === 0) return;
78
+ const freshBlock = missing.length === LUCA_GITIGNORE_ENTRIES.length;
79
+ const header = "# Luca workflow runtime state under the .luca/ contract.\n# Committed: config.json, roadmap.md, milestones/, archive/, phases/<slug>/{plan,research,context,verify,learn,audits/*}\n# Ignored: per-run state, locks, ledger, telemetry, ephemeral CLI-handoff scratch\n";
80
+ const body = (freshBlock ? header : "") + missing.join("\n") + "\n";
81
+ const leadingGap = content === "" || content.endsWith("\n") ? "" : "\n";
82
+ const blockSeparator = content === "" ? "" : "\n";
83
+ await writeFile(gitignorePath, content + leadingGap + blockSeparator + body);
84
+ log(
85
+ ` write: ${gitignorePath} (+${missing.length} .luca/ ignore${missing.length === 1 ? "" : "s"})`
86
+ );
61
87
  }
62
88
  async function isActiveState(statePath) {
63
89
  try {
@@ -1,6 +1,6 @@
1
1
  import { defineCommand } from 'citty';
2
2
  import 'zod';
3
- import '../shared/luca.B8ydzQ8S.mjs';
3
+ import '../shared/luca.DhWPHlqL.mjs';
4
4
  import 'node:fs';
5
5
  import 'node:fs/promises';
6
6
  import 'node:path';
@@ -8,12 +8,12 @@ import 'node:crypto';
8
8
  import 'node:module';
9
9
  import 'node:url';
10
10
  import 'node:child_process';
11
- import { r as runWriteHandler, c as lucaPhaseCurrentTool, d as lucaPhaseAdvanceTool, e as lucaPhaseArchiveTool } from '../shared/luca.ELUgu8AW.mjs';
12
- import '../shared/luca.CyQeErH2.mjs';
11
+ import { r as runWriteHandler, c as lucaPhaseCurrentTool, d as lucaPhaseAdvanceTool, e as lucaPhaseArchiveTool } from '../shared/luca.Cah4kvKS.mjs';
12
+ import '../shared/luca.CvfK4ZaL.mjs';
13
13
  import 'node:os';
14
- import '../shared/luca.CWsqOppt.mjs';
15
- import '../shared/luca.Dn7Gbruu.mjs';
16
- import '../shared/luca.Da5I_JVg.mjs';
14
+ import '../shared/luca.BiCFpsE9.mjs';
15
+ import '../shared/luca.CgZgNO4A.mjs';
16
+ import '../shared/luca.Dtt-5Dh0.mjs';
17
17
  import '../shared/luca.CQ3g1xrD.mjs';
18
18
 
19
19
  const currentCommand = defineCommand({
@@ -1,6 +1,6 @@
1
1
  import { defineCommand } from 'citty';
2
2
  import 'zod';
3
- import '../shared/luca.B8ydzQ8S.mjs';
3
+ import '../shared/luca.DhWPHlqL.mjs';
4
4
  import 'node:fs';
5
5
  import 'node:fs/promises';
6
6
  import 'node:path';
@@ -8,12 +8,12 @@ import 'node:crypto';
8
8
  import 'node:module';
9
9
  import 'node:url';
10
10
  import 'node:child_process';
11
- import { f as readJsonPayload, r as runWriteHandler, o as lucaPrReviewDetectConvergenceTool, p as lucaPrReviewFilterStaleTool, q as lucaPrReviewRegressionCheckTool } from '../shared/luca.ELUgu8AW.mjs';
12
- import '../shared/luca.CyQeErH2.mjs';
11
+ import { f as readJsonPayload, r as runWriteHandler, o as lucaPrReviewDetectConvergenceTool, p as lucaPrReviewFilterStaleTool, q as lucaPrReviewRegressionCheckTool } from '../shared/luca.Cah4kvKS.mjs';
12
+ import '../shared/luca.CvfK4ZaL.mjs';
13
13
  import 'node:os';
14
- import '../shared/luca.CWsqOppt.mjs';
15
- import '../shared/luca.Dn7Gbruu.mjs';
16
- import '../shared/luca.Da5I_JVg.mjs';
14
+ import '../shared/luca.BiCFpsE9.mjs';
15
+ import '../shared/luca.CgZgNO4A.mjs';
16
+ import '../shared/luca.Dtt-5Dh0.mjs';
17
17
  import '../shared/luca.CQ3g1xrD.mjs';
18
18
 
19
19
  const filterStaleCommand = defineCommand({
@@ -1,6 +1,6 @@
1
1
  import { defineCommand } from 'citty';
2
2
  import 'zod';
3
- import '../shared/luca.B8ydzQ8S.mjs';
3
+ import '../shared/luca.DhWPHlqL.mjs';
4
4
  import 'node:fs';
5
5
  import 'node:fs/promises';
6
6
  import 'node:path';
@@ -8,12 +8,12 @@ import 'node:crypto';
8
8
  import 'node:module';
9
9
  import 'node:url';
10
10
  import 'node:child_process';
11
- import { f as readJsonPayload, r as runWriteHandler, i as lucaPreferencesReadTool, j as lucaPreferencesWriteTool } from '../shared/luca.ELUgu8AW.mjs';
12
- import '../shared/luca.CyQeErH2.mjs';
11
+ import { f as readJsonPayload, r as runWriteHandler, i as lucaPreferencesReadTool, j as lucaPreferencesWriteTool } from '../shared/luca.Cah4kvKS.mjs';
12
+ import '../shared/luca.CvfK4ZaL.mjs';
13
13
  import 'node:os';
14
- import '../shared/luca.CWsqOppt.mjs';
15
- import '../shared/luca.Dn7Gbruu.mjs';
16
- import '../shared/luca.Da5I_JVg.mjs';
14
+ import '../shared/luca.BiCFpsE9.mjs';
15
+ import '../shared/luca.CgZgNO4A.mjs';
16
+ import '../shared/luca.Dtt-5Dh0.mjs';
17
17
  import '../shared/luca.CQ3g1xrD.mjs';
18
18
 
19
19
  const readCommand = defineCommand({
@@ -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.B8ydzQ8S.mjs';
5
+ import { l as lucaStateSchema } from '../shared/luca.DhWPHlqL.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.B8ydzQ8S.mjs';
3
+ import '../shared/luca.DhWPHlqL.mjs';
4
4
  import 'node:fs';
5
5
  import 'node:fs/promises';
6
6
  import 'node:path';
@@ -8,12 +8,12 @@ import 'node:crypto';
8
8
  import 'node:module';
9
9
  import 'node:url';
10
10
  import 'node:child_process';
11
- import { f as readJsonPayload, r as runWriteHandler, s as lucaRepoCleanupApplyTool } from '../shared/luca.ELUgu8AW.mjs';
12
- import '../shared/luca.CyQeErH2.mjs';
11
+ import { f as readJsonPayload, r as runWriteHandler, s as lucaRepoCleanupApplyTool } from '../shared/luca.Cah4kvKS.mjs';
12
+ import '../shared/luca.CvfK4ZaL.mjs';
13
13
  import 'node:os';
14
- import '../shared/luca.CWsqOppt.mjs';
15
- import '../shared/luca.Dn7Gbruu.mjs';
16
- import '../shared/luca.Da5I_JVg.mjs';
14
+ import '../shared/luca.BiCFpsE9.mjs';
15
+ import '../shared/luca.CgZgNO4A.mjs';
16
+ import '../shared/luca.Dtt-5Dh0.mjs';
17
17
  import '../shared/luca.CQ3g1xrD.mjs';
18
18
 
19
19
  const cleanupApplyCommand = defineCommand({
@@ -1,5 +1,5 @@
1
1
  import { defineCommand } from 'citty';
2
- import '../shared/luca.B8ydzQ8S.mjs';
2
+ import '../shared/luca.DhWPHlqL.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.BeGsLJkq.mjs';
11
- import { l as listRuns } from '../shared/luca.Dn7Gbruu.mjs';
10
+ import { a as analyzeRun, g as gatherRunArtifacts, r as renderPostmortemMarkdown, c as computePostmortemExitCode } from '../shared/luca.8yAUP8PG.mjs';
11
+ import { l as listRuns } from '../shared/luca.CgZgNO4A.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.BV4noBW7.mjs';
16
- import '../shared/luca.Da5I_JVg.mjs';
15
+ import '../shared/luca.CXJxgzAE.mjs';
16
+ import '../shared/luca.Dtt-5Dh0.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.B8ydzQ8S.mjs';
3
+ import '../shared/luca.DhWPHlqL.mjs';
4
4
  import 'node:fs';
5
5
  import 'node:fs/promises';
6
6
  import 'node:path';
@@ -8,12 +8,12 @@ import 'node:crypto';
8
8
  import 'node:module';
9
9
  import 'node:url';
10
10
  import 'node:child_process';
11
- import { f as readJsonPayload, r as runWriteHandler, g as lucaRoadmapReadTool, h as lucaRoadmapCreateTool } from '../shared/luca.ELUgu8AW.mjs';
12
- import '../shared/luca.CyQeErH2.mjs';
11
+ import { f as readJsonPayload, r as runWriteHandler, g as lucaRoadmapReadTool, h as lucaRoadmapCreateTool } from '../shared/luca.Cah4kvKS.mjs';
12
+ import '../shared/luca.CvfK4ZaL.mjs';
13
13
  import 'node:os';
14
- import '../shared/luca.CWsqOppt.mjs';
15
- import '../shared/luca.Dn7Gbruu.mjs';
16
- import '../shared/luca.Da5I_JVg.mjs';
14
+ import '../shared/luca.BiCFpsE9.mjs';
15
+ import '../shared/luca.CgZgNO4A.mjs';
16
+ import '../shared/luca.Dtt-5Dh0.mjs';
17
17
  import '../shared/luca.CQ3g1xrD.mjs';
18
18
 
19
19
  const readCommand = defineCommand({
@@ -1,6 +1,6 @@
1
1
  import { defineCommand } from 'citty';
2
2
  import { join as join$1 } from 'pathe';
3
- import '../shared/luca.B8ydzQ8S.mjs';
3
+ import '../shared/luca.DhWPHlqL.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.BeGsLJkq.mjs';
12
- import { l as listRuns } from '../shared/luca.Dn7Gbruu.mjs';
11
+ import { a as analyzeRun, g as gatherRunArtifacts } from '../shared/luca.8yAUP8PG.mjs';
12
+ import { l as listRuns } from '../shared/luca.CgZgNO4A.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.BV4noBW7.mjs';
17
- import '../shared/luca.Da5I_JVg.mjs';
16
+ import '../shared/luca.CXJxgzAE.mjs';
17
+ import '../shared/luca.Dtt-5Dh0.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.B8ydzQ8S.mjs';
3
+ import '../shared/luca.DhWPHlqL.mjs';
4
4
  import 'node:fs';
5
5
  import 'node:fs/promises';
6
6
  import 'node:path';
@@ -8,12 +8,12 @@ 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 lucaStateSetCurrentPhaseTool, a as lucaStateAdvanceTool, b as lucaStateReadTool } from '../shared/luca.ELUgu8AW.mjs';
12
- import { l as lucaStateClaimOwnerTool } from '../shared/luca.CyQeErH2.mjs';
11
+ import { r as runWriteHandler, l as lucaStateSetCurrentPhaseTool, a as lucaStateAdvanceTool, b as lucaStateReadTool } from '../shared/luca.Cah4kvKS.mjs';
12
+ import { l as lucaStateClaimOwnerTool } from '../shared/luca.CvfK4ZaL.mjs';
13
13
  import 'node:os';
14
- import '../shared/luca.CWsqOppt.mjs';
15
- import '../shared/luca.Dn7Gbruu.mjs';
16
- import '../shared/luca.Da5I_JVg.mjs';
14
+ import '../shared/luca.BiCFpsE9.mjs';
15
+ import '../shared/luca.CgZgNO4A.mjs';
16
+ import '../shared/luca.Dtt-5Dh0.mjs';
17
17
  import '../shared/luca.CQ3g1xrD.mjs';
18
18
 
19
19
  const readCommand = defineCommand({
@@ -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.B8ydzQ8S.mjs';
4
+ import '../shared/luca.DhWPHlqL.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.B8ydzQ8S.mjs';
2
+ import { R as RunIdSchema, L as LUCA_DIR_ROOT, T as TelemetryRecordSchema } from '../shared/luca.DhWPHlqL.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.B8ydzQ8S.mjs';
3
+ import '../shared/luca.DhWPHlqL.mjs';
4
4
  import 'node:fs';
5
5
  import 'node:fs/promises';
6
6
  import 'node:path';
@@ -8,12 +8,12 @@ import 'node:crypto';
8
8
  import 'node:module';
9
9
  import 'node:url';
10
10
  import 'node:child_process';
11
- import { f as readJsonPayload, r as runWriteHandler, k as lucaTodoUpdateTool, m as lucaTodoListTool, n as lucaTodoAddTool } from '../shared/luca.ELUgu8AW.mjs';
12
- import '../shared/luca.CyQeErH2.mjs';
11
+ import { f as readJsonPayload, r as runWriteHandler, k as lucaTodoUpdateTool, m as lucaTodoListTool, n as lucaTodoAddTool } from '../shared/luca.Cah4kvKS.mjs';
12
+ import '../shared/luca.CvfK4ZaL.mjs';
13
13
  import 'node:os';
14
- import '../shared/luca.CWsqOppt.mjs';
15
- import '../shared/luca.Dn7Gbruu.mjs';
16
- import '../shared/luca.Da5I_JVg.mjs';
14
+ import '../shared/luca.BiCFpsE9.mjs';
15
+ import '../shared/luca.CgZgNO4A.mjs';
16
+ import '../shared/luca.Dtt-5Dh0.mjs';
17
17
  import '../shared/luca.CQ3g1xrD.mjs';
18
18
 
19
19
  const addCommand = defineCommand({
@@ -1,5 +1,5 @@
1
1
  import { existsSync, chmodSync, mkdirSync } from 'node:fs';
2
- import '../shared/luca.B8ydzQ8S.mjs';
2
+ import '../shared/luca.DhWPHlqL.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.B8ydzQ8S.mjs';
3
- import { l as loadCurrentState, r as resolveActiveSlug } from '../shared/luca.CWsqOppt.mjs';
2
+ import '../shared/luca.DhWPHlqL.mjs';
3
+ import { l as loadCurrentState, r as resolveActiveSlug } from '../shared/luca.BiCFpsE9.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.BV4noBW7.mjs';
11
+ import { l as listPhaseSlugs, r as readVerificationResult, a as aggregateVerificationResults } from '../shared/luca.CXJxgzAE.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.Da5I_JVg.mjs';
15
+ import '../shared/luca.Dtt-5Dh0.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.B8ydzQ8S.mjs';
3
+ import '../shared/luca.DhWPHlqL.mjs';
4
4
  import 'node:fs';
5
5
  import 'node:fs/promises';
6
6
  import 'node:path';
@@ -8,12 +8,12 @@ import 'node:crypto';
8
8
  import 'node:module';
9
9
  import 'node:url';
10
10
  import 'node:child_process';
11
- import { r as runWriteHandler, v as lucaWorkflowResetTool } from '../shared/luca.ELUgu8AW.mjs';
12
- import '../shared/luca.CyQeErH2.mjs';
11
+ import { r as runWriteHandler, v as lucaWorkflowResetTool } from '../shared/luca.Cah4kvKS.mjs';
12
+ import '../shared/luca.CvfK4ZaL.mjs';
13
13
  import 'node:os';
14
- import '../shared/luca.CWsqOppt.mjs';
15
- import '../shared/luca.Dn7Gbruu.mjs';
16
- import '../shared/luca.Da5I_JVg.mjs';
14
+ import '../shared/luca.BiCFpsE9.mjs';
15
+ import '../shared/luca.CgZgNO4A.mjs';
16
+ import '../shared/luca.Dtt-5Dh0.mjs';
17
17
  import '../shared/luca.CQ3g1xrD.mjs';
18
18
 
19
19
  const resetCommand = defineCommand({