agent-work-loop 0.6.23 → 0.6.25

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 (46) hide show
  1. package/README.md +87 -18
  2. package/dist/{brief-Z3JKXEUP.js → brief-LZ6JC5V5.js} +5 -5
  3. package/dist/{changelog-R7BNBF2C.js → changelog-ZCPSFDX3.js} +5 -5
  4. package/dist/{chunk-DP4O5ME2.js → chunk-4MWV4RBI.js} +4 -4
  5. package/dist/{chunk-C7BR2DCS.js → chunk-57EWVAZO.js} +4 -4
  6. package/dist/{chunk-UOPWVM2H.js → chunk-5TFILHLH.js} +2 -2
  7. package/dist/{chunk-I77CXOEX.js → chunk-6MG6CQBD.js} +3 -3
  8. package/dist/{chunk-IXMAFR4Y.js → chunk-7KIVLJG3.js} +6 -6
  9. package/dist/{chunk-BUWGQVHT.js → chunk-ELQ4VANN.js} +1 -1
  10. package/dist/{chunk-ZE6HXOYG.js → chunk-F7Z3S5LD.js} +8 -8
  11. package/dist/{chunk-QE2CLNBG.js → chunk-FBRW7KKY.js} +5 -5
  12. package/dist/{chunk-YTAHVR4P.js → chunk-JQN653ZS.js} +2 -2
  13. package/dist/{chunk-IMB46O6S.js → chunk-MJT6UANJ.js} +2 -2
  14. package/dist/{chunk-7SYRDDTX.js → chunk-OTN2QONN.js} +11 -2
  15. package/dist/{chunk-G5LAJ5TV.js → chunk-QLUBNGHR.js} +5 -5
  16. package/dist/{chunk-46HZN6UB.js → chunk-R2RZC5NQ.js} +5 -5
  17. package/dist/{chunk-4OCSYHYB.js → chunk-SBX6LOQE.js} +2 -2
  18. package/dist/{chunk-F5LHXBH7.js → chunk-WRNCUSNU.js} +2 -2
  19. package/dist/{chunk-6E7XEQOH.js → chunk-ZYXKMNHC.js} +1 -1
  20. package/dist/cli.js +89 -51
  21. package/dist/{commit-APXIVOSD.js → commit-4XEKMCJF.js} +6 -6
  22. package/dist/{config-TFMW7O4T.js → config-BZDCXBQ5.js} +3 -3
  23. package/dist/{doctor-SSKNLPGH.js → doctor-ST67JMQ6.js} +8 -8
  24. package/dist/{evolve-QPD7TWGO.js → evolve-ZBSIUZXP.js} +7 -7
  25. package/dist/{feedback-KAXNFMUY.js → feedback-HVNBFJBW.js} +5 -5
  26. package/dist/{gotchas-MCA5Y76R.js → gotchas-642PZ5AQ.js} +7 -7
  27. package/dist/{hold-recheck-WN5EG7HD.js → hold-recheck-N3UCEIXL.js} +16 -16
  28. package/dist/{init-UDM5AXKI.js → init-2FPJSD64.js} +2 -2
  29. package/dist/lane-7AB53N4M.js +41 -0
  30. package/dist/{loop-summary-XAI6KOGB.js → loop-summary-22VD3BDL.js} +6 -6
  31. package/dist/{metrics-WLRZZRTK.js → metrics-4OT2R3GT.js} +4 -4
  32. package/dist/{record-UKDIUJ5T.js → record-CJONXDR2.js} +5 -5
  33. package/dist/{review-ZTHDJ47V.js → review-L52UGCIJ.js} +13 -13
  34. package/dist/{rules-R2UZPIVW.js → rules-U7UCVU5O.js} +8 -8
  35. package/dist/{state-XM7NZ2HA.js → state-3G4XAB6P.js} +4 -4
  36. package/dist/status-7V4W52VA.js +40 -0
  37. package/dist/{uninstall-5DFEOFL5.js → uninstall-M7Z6SO7L.js} +15 -15
  38. package/dist/{update-AYTBYAHI.js → update-LQBVQIXW.js} +2 -2
  39. package/dist/{verify-L7ARTK42.js → verify-PYZXB67X.js} +10 -10
  40. package/dist/version-check-QQDDSBU7.js +14 -0
  41. package/dist/{work-KEPTGZ6H.js → work-VTHTF4AQ.js} +14 -14
  42. package/engine/version.json +1 -1
  43. package/package.json +1 -1
  44. package/dist/lane-DAZISODH.js +0 -41
  45. package/dist/status-L6U5KO6T.js +0 -40
  46. package/dist/version-check-LKGU2DNF.js +0 -14
package/dist/cli.js CHANGED
@@ -3,29 +3,59 @@ import {
3
3
  computeUpdateAvailable,
4
4
  readCachedLatestVersion,
5
5
  version
6
- } from "./chunk-YTAHVR4P.js";
6
+ } from "./chunk-JQN653ZS.js";
7
7
  import {
8
8
  caps,
9
+ card,
9
10
  gradient,
10
11
  installedEngineVersion,
11
12
  makeColors,
12
13
  makeSymbols,
14
+ makeTokens,
13
15
  signal,
14
16
  visibleWidth
15
- } from "./chunk-7SYRDDTX.js";
17
+ } from "./chunk-OTN2QONN.js";
16
18
 
17
19
  // src/program.ts
18
20
  import { Command } from "commander";
19
- var BANNER = `Agent Work Loop
21
+ var BANNER = `
22
+ [ AGENT WORK LOOP ]
20
23
 
21
- \uAC19\uC740 \uC2E4\uD328\uB97C \uB450 \uBC88 \uD558\uC9C0 \uC54A\uB294 \uB3C4\uAD6C\uC785\uB2C8\uB2E4.
22
- \uD310\uB2E8\uC740 Claude Code\uB098 Codex\uAC00 \uD558\uACE0, awl\uC740 \uD30C\uC77C\uACFC \uC0C1\uD0DC\uB9CC \uAD00\uB9AC\uD569\uB2C8\uB2E4.
23
-
24
- \uC2DC\uC791\uD558\uAE30:
25
- 1. awl init \uC774 \uD504\uB85C\uC81D\uD2B8\uB97C \uC124\uC815\uD569\uB2C8\uB2E4
26
- 2. awl status \uC9C0\uAE08 \uC5B4\uB514\uAE4C\uC9C0 \uC654\uB294\uC9C0 \uBD05\uB2C8\uB2E4
27
- 3. awl doctor \uC124\uCE58\uC640 \uD658\uACBD\uC744 \uC810\uAC80\uD569\uB2C8\uB2E4`;
28
- var DENSE_AWL = `\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2557
24
+ \uD55C \uBC88\uB9CC \uC2E4\uD328\uD558\uB294 \uB3C4\uAD6C \uC785\uB2C8\uB2E4. (\uB450\uBC88 \uC2E4\uD328 \uC5C6\uC74C)
25
+ \uD310\uB2E8\uC740 Claude Code\uB098 Codex\uAC00 \uD558\uACE0,
26
+ awl\uC740 \uD30C\uC77C\uACFC \uC0C1\uD0DC\uB9CC \uAD00\uB9AC\uD569\uB2C8\uB2E4.`;
27
+ var GETTING_STARTED = [
28
+ { cmd: "awl init", desc: "\uC774 \uD504\uB85C\uC81D\uD2B8\uB97C \uC124\uC815\uD569\uB2C8\uB2E4" },
29
+ { cmd: "awl status", desc: "\uC9C0\uAE08 \uC5B4\uB514\uAE4C\uC9C0 \uC654\uB294\uC9C0 \uBD05\uB2C8\uB2E4" },
30
+ { cmd: "awl doctor", desc: "\uC124\uCE58\uC640 \uD658\uACBD\uC744 \uC810\uAC80\uD569\uB2C8\uB2E4" }
31
+ ];
32
+ function padVisible(s, width) {
33
+ return s + " ".repeat(Math.max(0, width - visibleWidth(s)));
34
+ }
35
+ function renderGettingStartedCard(c) {
36
+ const t = makeTokens(c);
37
+ const cmdWidth = Math.max(...GETTING_STARTED.map((g) => visibleWidth(g.cmd)));
38
+ const lines = GETTING_STARTED.map(
39
+ (g, i) => `${i + 1}. ${t.accent(padVisible(g.cmd, cmdWidth))} ${g.desc}`
40
+ );
41
+ return card("\uC2DC\uC791\uD558\uAE30", lines, c);
42
+ }
43
+ function renderExamplesCard(c) {
44
+ const t = makeTokens(c);
45
+ const examples = [
46
+ { cmd: "awl commit AC-01 --start", note: "\uAD6C\uD604 \uC2DC\uC791 \uC2DC \uBCA0\uC774\uC2A4\uB77C\uC778\uBD80\uD130 \uC7A1\uB294\uB2E4" },
47
+ { cmd: 'awl commit AC-01 -m "\uC644\uB8CC \uC870\uAC74 \uC124\uBA85"', note: "<criterion> \uC790\uB9AC\uC5D4 \uC644\uB8CC\uC870\uAC74 ID(AC-01)" },
48
+ { cmd: "awl review AC-01..AC-03", note: "<range> \uC790\uB9AC\uC5D4 \uC644\uB8CC\uC870\uAC74 \uBC94\uC704" },
49
+ { cmd: "awl status --pipeline", note: "[options] \uC790\uB9AC\uC5D4 --json/--pipeline \uAC19\uC740 \uD50C\uB798\uADF8" }
50
+ ];
51
+ const cmdWidth = Math.max(...examples.map((e) => visibleWidth(e.cmd)));
52
+ const lines = examples.map(
53
+ (e) => `${t.accent(padVisible(e.cmd, cmdWidth))} ${t.muted(`# ${e.note}`)}`
54
+ );
55
+ return card("\uC608\uC2DC", lines, c);
56
+ }
57
+ var DENSE_AWL = `
58
+ \u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2557
29
59
  \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551
30
60
  \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2557 \u2588\u2588\u2551\u2588\u2588\u2551
31
61
  \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2551\u2588\u2588\u2551\u2588\u2588\u2588\u2557\u2588\u2588\u2551\u2588\u2588\u2551
@@ -41,11 +71,14 @@ function renderBanner(c = caps()) {
41
71
  const copyLines = BANNER.split("\n");
42
72
  const markWidth = Math.max(...markLines.map(visibleWidth));
43
73
  const rowCount = Math.max(markLines.length, copyLines.length);
44
- return Array.from({ length: rowCount }, (_, i) => {
74
+ const header = Array.from({ length: rowCount }, (_, i) => {
45
75
  const mark = markLines[i] ?? "";
46
76
  const copy = copyLines[i] ?? "";
47
77
  return `${mark}${" ".repeat(Math.max(0, markWidth - visibleWidth(mark)) + 4)}${copy}`.trimEnd();
48
78
  }).join("\n");
79
+ return `${header}
80
+
81
+ ${renderGettingStartedCard(c)}`;
49
82
  }
50
83
  function versionString(c = caps()) {
51
84
  const color = makeColors(c.color);
@@ -113,16 +146,21 @@ function parseWorkitemsOption(input) {
113
146
  function buildProgram() {
114
147
  const program = new Command();
115
148
  program.name("awl").version(versionString(), "-v, --version", "\uBC84\uC804\uC744 \uCD9C\uB825\uD569\uB2C8\uB2E4").helpOption("-h, --help", "\uB3C4\uC6C0\uB9D0\uC744 \uCD9C\uB825\uD569\uB2C8\uB2E4").addHelpText("beforeAll", (ctx) => ctx.command === program ? `${renderBanner()}
116
- ` : "").showHelpAfterError();
149
+ ` : "").addHelpText(
150
+ "afterAll",
151
+ (ctx) => ctx.command === program ? `
152
+ ${renderExamplesCard(caps())}
153
+ ` : ""
154
+ ).showHelpAfterError();
117
155
  program.command("init").description("\uC774 \uD504\uB85C\uC81D\uD2B8\uC5D0 Agent Work Loop \uB97C \uC124\uC815\uD569\uB2C8\uB2E4").option("--yes", "\uC9C8\uBB38 \uC5C6\uC774 \uC790\uB3D9 \uAC10\uC9C0\uB41C \uAC12\uC73C\uB85C \uC9C4\uD589\uD569\uB2C8\uB2E4 (\uBE44\uB300\uD654\uD615)").action(async (opts) => {
118
- const { runInit } = await import("./init-UDM5AXKI.js");
156
+ const { runInit } = await import("./init-2FPJSD64.js");
119
157
  await runInit({ yes: opts.yes === true });
120
158
  });
121
159
  program.command("status").description("\uC9C0\uAE08 \uC5B4\uB514\uAE4C\uC9C0 \uC654\uB294\uC9C0 \uD55C\uB208\uC5D0 \uBD05\uB2C8\uB2E4").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").option("--pipeline", ".tasks \uB808\uC778(plan/exec/review)\uC758 workitem \uC0C1\uD0DC\uB97C \uBC30\uC9C0\uB85C \uBD05\uB2C8\uB2E4").option(
122
160
  "--archive",
123
161
  "(--pipeline\uACFC \uD568\uAED8) \uC720\uC608 \uAE30\uAC04(3\uC77C) \uC9C0\uB09C \uC644\uB8CC workitem\uC744 .tasks/archive/ \uB85C \uBCF4\uAD00\uD569\uB2C8\uB2E4"
124
162
  ).action(async (opts) => {
125
- const { runStatus } = await import("./status-L6U5KO6T.js");
163
+ const { runStatus } = await import("./status-7V4W52VA.js");
126
164
  await runStatus({
127
165
  json: opts.json === true,
128
166
  pipeline: opts.pipeline === true,
@@ -130,24 +168,24 @@ function buildProgram() {
130
168
  });
131
169
  });
132
170
  program.command("brief").description("KST \uC624\uB298(\uB610\uB294 --date)\uC758 \uC9C4\uD589\uBD84\uC744 \uBAA8\uC544 \uB0C5\uB2C8\uB2E4(\uC2A4\uD0AC \uC18C\uBE44\uC6A9 --json)").option("--today", "\uC624\uB298(KST) \uAE30\uC900\uC73C\uB85C \uBAA8\uC74D\uB2C8\uB2E4(\uAE30\uBCF8)").option("--date <YYYY-MM-DD>", "KST \uAE30\uC900 \uD2B9\uC815 \uB0A0\uC9DC\uB85C \uBAA8\uC74D\uB2C8\uB2E4").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
133
- const { runBrief } = await import("./brief-Z3JKXEUP.js");
171
+ const { runBrief } = await import("./brief-LZ6JC5V5.js");
134
172
  await runBrief({ today: opts.today === true, date: opts.date, json: opts.json === true });
135
173
  });
136
174
  program.command("doctor").description("\uC124\uCE58\uC640 \uD658\uACBD\uC744 \uC810\uAC80\uD569\uB2C8\uB2E4 (\uC544\uBB34\uAC83\uB3C4 \uACE0\uCE58\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4)").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
137
- const { runDoctor } = await import("./doctor-SSKNLPGH.js");
175
+ const { runDoctor } = await import("./doctor-ST67JMQ6.js");
138
176
  await runDoctor({ json: opts.json === true });
139
177
  });
140
178
  program.command("version-check").description("\uBC84\uC804 \uBD88\uC77C\uCE58\uB97C \uAC80\uC0AC\uD569\uB2C8\uB2E4 (package/engine/\uD504\uB85C\uC81D\uD2B8/\uC2A4\uD0AC)").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
141
- const { runVersionCheck } = await import("./version-check-LKGU2DNF.js");
179
+ const { runVersionCheck } = await import("./version-check-QQDDSBU7.js");
142
180
  await runVersionCheck({ json: opts.json === true });
143
181
  });
144
182
  program.command("update").description("\uC124\uCE58\uB41C \uC5D4\uC9C4(~/.awl/engine)\uC744 \uAC31\uC2E0\uD569\uB2C8\uB2E4").action(async () => {
145
- const { runUpdate } = await import("./update-AYTBYAHI.js");
183
+ const { runUpdate } = await import("./update-LQBVQIXW.js");
146
184
  runUpdate();
147
185
  });
148
186
  program.command("uninstall").description("awl \uC774 \uC190\uB304 \uD754\uC801\uC744 \uC9C0\uC6C1\uB2C8\uB2E4 (\uAE30\uBCF8\uC740 \uB4DC\uB77C\uC774\uB7F0 \u2014 --yes \uC5C6\uC774\uB294 \uC0AD\uC81C\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4)").option("--yes", "\uC2E4\uC81C\uB85C \uC0AD\uC81C\uD569\uB2C8\uB2E4 (\uAE30\uBCF8\uC740 \uB4DC\uB77C\uC774\uB7F0)").option("--project", "\uC774 \uD504\uB85C\uC81D\uD2B8 \uB85C\uCEEC\uB9CC \uC815\uB9AC\uD569\uB2C8\uB2E4 (\uAE30\uBCF8\uAC12)").option("--global", "\uC804\uC5ED(~/.awl)\uB9CC \uC815\uB9AC\uD569\uB2C8\uB2E4 \u2014 \uB2E4\uB978 \uD504\uB85C\uC81D\uD2B8\uC758 \uD559\uC2B5\uB3C4 \uD568\uAED8 \uC0AC\uB77C\uC9D1\uB2C8\uB2E4").option("--all", "\uD504\uB85C\uC81D\uD2B8 \uB85C\uCEEC + \uC804\uC5ED\uC744 \uBAA8\uB450 \uC815\uB9AC\uD569\uB2C8\uB2E4").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(
149
187
  async (opts) => {
150
- const { runUninstall } = await import("./uninstall-5DFEOFL5.js");
188
+ const { runUninstall } = await import("./uninstall-M7Z6SO7L.js");
151
189
  await runUninstall({
152
190
  yes: opts.yes === true,
153
191
  project: opts.project === true,
@@ -159,22 +197,22 @@ function buildProgram() {
159
197
  );
160
198
  const config = program.command("config").description("\uC774 \uD504\uB85C\uC81D\uD2B8\uC758 \uC124\uC815\uC744 \uBD05\uB2C8\uB2E4 (TTY \uBA74 \uC218\uC815\uB3C4)");
161
199
  config.action(async () => {
162
- const { runConfig } = await import("./config-TFMW7O4T.js");
200
+ const { runConfig } = await import("./config-BZDCXBQ5.js");
163
201
  await runConfig();
164
202
  });
165
203
  config.command("set [key] [value]").description("\uC124\uC815 \uAC12\uC744 \uBC14\uAFC9\uB2C8\uB2E4 (\uD0A4 \uC0DD\uB7B5 \uC2DC \uBAA9\uB85D, cmd \uB294 \uC2E4\uC81C\uB85C \uC2E4\uD589\uD574 \uBD05\uB2C8\uB2E4)").option("--force", "\uAC80\uC99D\uC5D0 \uC2E4\uD328\uD574\uB3C4 \uC800\uC7A5\uD569\uB2C8\uB2E4").action(
166
204
  async (key, value, opts) => {
167
- const { runConfigSet } = await import("./config-TFMW7O4T.js");
205
+ const { runConfigSet } = await import("./config-BZDCXBQ5.js");
168
206
  await runConfigSet(key, value, { force: opts.force === true });
169
207
  }
170
208
  );
171
209
  const work = program.command("work").description("\uC774 \uD504\uB85C\uC81D\uD2B8\uC758 \uC6CC\uD06C\uC544\uC774\uD15C\uC744 \uAD00\uB9AC\uD569\uB2C8\uB2E4");
172
210
  work.option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
173
- const { runWorkList } = await import("./work-KEPTGZ6H.js");
211
+ const { runWorkList } = await import("./work-VTHTF4AQ.js");
174
212
  runWorkList({ json: opts.json === true });
175
213
  });
176
214
  work.command("list").description("\uB4F1\uB85D\uB41C \uC6CC\uD06C\uC544\uC774\uD15C \uBAA9\uB85D\uACFC \uC9C4\uD589 \uC0C1\uD669\uC744 \uBD05\uB2C8\uB2E4").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
177
- const { runWorkList } = await import("./work-KEPTGZ6H.js");
215
+ const { runWorkList } = await import("./work-VTHTF4AQ.js");
178
216
  runWorkList({ json: opts.json === true });
179
217
  });
180
218
  work.command("new <id> [description]").description("\uC0C8 \uC6CC\uD06C\uC544\uC774\uD15C\uC744 \uB9CC\uB4E4\uACE0 \uC804\uD658\uD569\uB2C8\uB2E4 (\uD604\uC7AC \uC6CC\uD06C\uC544\uC774\uD15C\uC740 \uBCF4\uAD00\uB429\uB2C8\uB2E4)").option("--worktree [branch]", "\uACA9\uB9AC\uB41C git worktree \uB97C \uB9CC\uB4E4\uC5B4 \uADF8 \uC548\uC5D0\uC11C \uC2DC\uC791\uD569\uB2C8\uB2E4").option("--skip-baseline", "\uAC80\uC99D \uBCA0\uC774\uC2A4\uB77C\uC778 \uCEA1\uCC98\uB97C \uAC74\uB108\uB701\uB2C8\uB2E4 (\uB290\uB9B0 \uD504\uB85C\uC81D\uD2B8\uC6A9)").option(
@@ -182,7 +220,7 @@ function buildProgram() {
182
220
  "records(~/.awl)\uB97C \uC774 \uC6CC\uD06C\uC544\uC774\uD15C \uC804\uC6A9 AWL_HOME \uC73C\uB85C \uACA9\uB9AC\uD569\uB2C8\uB2E4 (\uBCD1\uB82C \uC138\uC158\uC6A9)"
183
221
  ).option("--experiment <json>", '\uC2E4\uD5D8 \uCF00\uC774\uC2A4 \uBA54\uD0C0 JSON (\uC608: {"model":"lite","mode":"loop"})').action(
184
222
  async (id, description, opts) => {
185
- const { runWorkNew } = await import("./work-KEPTGZ6H.js");
223
+ const { runWorkNew } = await import("./work-VTHTF4AQ.js");
186
224
  const parsedExp = parseExperimentOption(opts.experiment);
187
225
  if (!parsedExp.ok) {
188
226
  process.stderr.write(`
@@ -194,52 +232,52 @@ function buildProgram() {
194
232
  }
195
233
  );
196
234
  work.command("switch <id>").description("\uB2E4\uB978 \uC6CC\uD06C\uC544\uC774\uD15C\uC73C\uB85C \uC804\uD658\uD569\uB2C8\uB2E4 (\uD604\uC7AC \uC6CC\uD06C\uC544\uC774\uD15C\uC740 \uBCF4\uAD00\uB429\uB2C8\uB2E4)").action(async (id) => {
197
- const { runWorkSwitch } = await import("./work-KEPTGZ6H.js");
235
+ const { runWorkSwitch } = await import("./work-VTHTF4AQ.js");
198
236
  await runWorkSwitch(id);
199
237
  });
200
238
  work.command("abandon <id>").description("\uC6CC\uD06C\uC544\uC774\uD15C\uC744 \uC911\uB2E8 \uCC98\uB9AC\uD569\uB2C8\uB2E4 (\uC0AD\uC81C\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4, \uAE30\uB85D\uC740 \uB0A8\uC2B5\uB2C8\uB2E4)").action(async (id) => {
201
- const { runWorkAbandon } = await import("./work-KEPTGZ6H.js");
239
+ const { runWorkAbandon } = await import("./work-VTHTF4AQ.js");
202
240
  runWorkAbandon(id);
203
241
  });
204
242
  work.command("done <id>").description(
205
243
  "\uC644\uB8CC\uB41C \uC6CC\uD06C\uC544\uC774\uD15C\uC744 \uC815\uB9AC\uD569\uB2C8\uB2E4 (\uC6CC\uD06C\uD2B8\uB9AC \uC81C\uAC70 + \uC0C1\uD0DC \uC2A4\uB0C5\uC0F7 \uD68C\uC218, \uAE30\uB85D\uC740 \uB0A8\uC2B5\uB2C8\uB2E4)"
206
244
  ).option("--force", "\uC815\uB9AC\uB418\uC9C0 \uC54A\uC740 \uBCC0\uACBD\uC774 \uC788\uC5B4\uB3C4 \uC6CC\uD06C\uD2B8\uB9AC\uB97C \uC81C\uAC70\uD569\uB2C8\uB2E4").action(async (id, opts) => {
207
- const { runWorkDone } = await import("./work-KEPTGZ6H.js");
245
+ const { runWorkDone } = await import("./work-VTHTF4AQ.js");
208
246
  await runWorkDone(id, { force: opts.force === true });
209
247
  });
210
248
  const lane = program.command("lane").description("\uACA9\uB9AC \uB808\uC778(worktree)\uC73C\uB85C \uD30C\uC774\uD504\uB77C\uC778\uC744 \uBCD1\uB82C \uC2E4\uD589\uD569\uB2C8\uB2E4 (\uB808\uC778 \uC0DD\uC131\xB7\uC870\uD68C\xB7\uC815\uB9AC)");
211
249
  lane.option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
212
- const { runLaneList } = await import("./lane-DAZISODH.js");
250
+ const { runLaneList } = await import("./lane-7AB53N4M.js");
213
251
  await runLaneList({ json: opts.json === true });
214
252
  });
215
253
  lane.command("new <name> [description]").description("\uACA9\uB9AC \uB808\uC778\uC744 \uB9CC\uB4ED\uB2C8\uB2E4 (worktree + \uC804\uC6A9 AWL_HOME + \uC2A4\uD0AC \uC7AC\uC124\uCE58 + \uAE30\uB3D9 \uC548\uB0B4)").action(async (name, description) => {
216
- const { runLaneNew } = await import("./lane-DAZISODH.js");
254
+ const { runLaneNew } = await import("./lane-7AB53N4M.js");
217
255
  await runLaneNew(name, description);
218
256
  });
219
257
  lane.command("ls").description("\uD604\uC874 \uB808\uC778\uC744 \uC774\uB984\xB7\uACBD\uB85C\xB7\uBE0C\uB79C\uCE58\uC640 \uD568\uAED8 \uB098\uC5F4\uD569\uB2C8\uB2E4").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
220
- const { runLaneList } = await import("./lane-DAZISODH.js");
258
+ const { runLaneList } = await import("./lane-7AB53N4M.js");
221
259
  await runLaneList({ json: opts.json === true });
222
260
  });
223
261
  lane.command("rm <name>").description("\uB808\uC778\uC758 \uC6CC\uD06C\uD2B8\uB9AC\uB97C \uD68C\uC218\uD558\uACE0 \uB514\uB809\uD1A0\uB9AC\uB97C \uC81C\uAC70\uD569\uB2C8\uB2E4").option("--force", "\uCEE4\uBC0B\uB418\uC9C0 \uC54A\uC740 \uBCC0\uACBD\uC774 \uC788\uC5B4\uB3C4 \uC81C\uAC70\uD569\uB2C8\uB2E4").action(async (name, opts) => {
224
- const { runLaneRemove } = await import("./lane-DAZISODH.js");
262
+ const { runLaneRemove } = await import("./lane-7AB53N4M.js");
225
263
  await runLaneRemove(name, { force: opts.force === true });
226
264
  });
227
265
  program.command("records").description("\uC313\uC778 \uAE30\uB85D\uC744 \uBD05\uB2C8\uB2E4").option("--type <type>", "\uD0C0\uC785\uC73C\uB85C \uAC70\uB985\uB2C8\uB2E4 (attempt, blocked \uB4F1)").option("--workitem <id>", "\uC6CC\uD06C\uC544\uC774\uD15C\uC73C\uB85C \uAC70\uB985\uB2C8\uB2E4").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
228
- const { runRecords } = await import("./record-UKDIUJ5T.js");
266
+ const { runRecords } = await import("./record-CJONXDR2.js");
229
267
  runRecords({ type: opts.type, workitem: opts.workitem, json: opts.json === true });
230
268
  });
231
269
  const rules = program.command("rules").description("\uC774 \uD504\uB85C\uC81D\uD2B8\uC5D0 \uC801\uC6A9\uB418\uB294 \uADDC\uCE59\uC744 \uBD05\uB2C8\uB2E4").enablePositionalOptions();
232
270
  rules.option("--scope <scope>", "\uBC94\uC704\uB85C \uAC70\uB985\uB2C8\uB2E4 (implement \uB4F1)").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
233
- const { runRules } = await import("./rules-R2UZPIVW.js");
271
+ const { runRules } = await import("./rules-U7UCVU5O.js");
234
272
  runRules({ scope: opts.scope, json: opts.json === true });
235
273
  });
236
274
  rules.command("edit").description("$EDITOR \uB85C \uADDC\uCE59 \uD30C\uC77C\uC744 \uC5FD\uB2C8\uB2E4").action(async () => {
237
- const { runRules } = await import("./rules-R2UZPIVW.js");
275
+ const { runRules } = await import("./rules-U7UCVU5O.js");
238
276
  runRules({ edit: true });
239
277
  });
240
278
  rules.command("promote <gotchaId>").description("\uAD50\uD6C8\uC744 \uADDC\uCE59\uC73C\uB85C \uC2B9\uACA9\uD569\uB2C8\uB2E4 (applies/counter \uD544\uC218, \uC0AC\uB78C\uC774 \uC2E4\uD589)").option("--applies <cond>", "\uC801\uC6A9 \uC870\uAC74 (\uD544\uC218)").option("--counter <cond>", "\uBC18\uC99D \uC870\uAC74 (\uD544\uC218)").option("--rule-scope <scope>", "\uB85C\uB4DC \uB2E8\uACC4 (audit/criteria/implement/commit/review)").action(
241
279
  async (gotchaId, opts) => {
242
- const { runRulesPromote } = await import("./rules-R2UZPIVW.js");
280
+ const { runRulesPromote } = await import("./rules-U7UCVU5O.js");
243
281
  runRulesPromote(gotchaId, {
244
282
  applies: opts.applies,
245
283
  counter: opts.counter,
@@ -248,16 +286,16 @@ function buildProgram() {
248
286
  }
249
287
  );
250
288
  program.command("gotchas").description("\uC544\uC9C1 \uADDC\uCE59\uC774 \uB418\uC9C0 \uC54A\uC740 \uD568\uC815\uC744 \uBD05\uB2C8\uB2E4").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
251
- const { runGotchas } = await import("./gotchas-MCA5Y76R.js");
289
+ const { runGotchas } = await import("./gotchas-642PZ5AQ.js");
252
290
  runGotchas({ json: opts.json === true });
253
291
  });
254
292
  program.command("metrics").description("\uC6CC\uD06C\uC544\uC774\uD15C(\uC138\uB300)\uBCC4 \uD504\uB85D\uC2DC \uC9C0\uD45C \uCD94\uC138\uB97C \uBD05\uB2C8\uB2E4 (\uD1A0\uD070 \uC9C1\uC811 \uCE21\uC815 \uC544\uB2D8)").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").option("--compare", "\uC2E4\uD5D8 \uCF00\uC774\uC2A4(experiment model/mode/taskType)\uBCC4\uB85C \uC9C0\uD45C\uB97C \uBE44\uAD50\uD569\uB2C8\uB2E4").action(async (opts) => {
255
- const { runMetrics } = await import("./metrics-WLRZZRTK.js");
293
+ const { runMetrics } = await import("./metrics-4OT2R3GT.js");
256
294
  runMetrics({ json: opts.json === true, compare: opts.compare === true });
257
295
  });
258
296
  program.command("loop-summary").description("\uB8E8\uD504/\uD30C\uC774\uD504\uB77C\uC778 \uC644\uB8CC\uB97C 4\uB80C\uC988(\uAC1C\uC785\xB7\uD488\uC9C8\xB7\uD6A8\uC728\xB7\uC0B0\uCD9C)\uB85C \uC694\uC57D\uD569\uB2C8\uB2E4").option("--workitem <id>", "\uB300\uC0C1 \uC6CC\uD06C\uC544\uC774\uD15C (\uAE30\uBCF8: \uD604\uC7AC)").option("--workitems <ids>", "\uBC30\uCE58 \uBAA8\uB4DC: \uCF64\uB9C8\uB85C \uAD6C\uBD84\uD55C \uC6CC\uD06C\uC544\uC774\uD15C \uBAA9\uB85D").option("--since <iso>", "\uBC30\uCE58 \uBAA8\uB4DC: \uC774 \uC2DC\uAC01(ISO) \uC774\uD6C4 \uC644\uB8CC\uB41C \uC6CC\uD06C\uC544\uC774\uD15C \uC804\uBD80").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(
259
297
  async (opts) => {
260
- const { runLoopSummary } = await import("./loop-summary-XAI6KOGB.js");
298
+ const { runLoopSummary } = await import("./loop-summary-22VD3BDL.js");
261
299
  runLoopSummary({
262
300
  workitem: opts.workitem,
263
301
  workitems: parseWorkitemsOption(opts.workitems),
@@ -267,7 +305,7 @@ function buildProgram() {
267
305
  }
268
306
  );
269
307
  program.command("feedback").description("awl \uB3C4\uAD6C \uC790\uCCB4 \uD53C\uB4DC\uBC31\uC744 area \uBCC4\uB85C \uBB36\uC5B4 \uBD05\uB2C8\uB2E4 (\uD574\uBC95\uC740 \uC81C\uC2DC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4)").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").option("--area <area>", "area \uB85C \uAC70\uB985\uB2C8\uB2E4 (commit, gate, verify \uB4F1)").option("--severity <sev>", "severity \uB85C \uAC70\uB985\uB2C8\uB2E4 (high/medium/low)").option("--since <date>", "\uC774 ISO \uB0A0\uC9DC \uC774\uD6C4 \uC218\uC9D1\uBD84\uB9CC \uBD05\uB2C8\uB2E4 (\uC608: 2026-07-01)").action(async (opts) => {
270
- const { runFeedback } = await import("./feedback-KAXNFMUY.js");
308
+ const { runFeedback } = await import("./feedback-HVNBFJBW.js");
271
309
  runFeedback({
272
310
  json: opts.json === true,
273
311
  area: opts.area,
@@ -276,12 +314,12 @@ function buildProgram() {
276
314
  });
277
315
  });
278
316
  program.command("changelog").description("Gate 2 \uC2B9\uC778 \uB4A4 CHANGELOG.md\uC5D0 \uC62E\uAE38 \uCD08\uC548\uC744 \uB9CC\uB4ED\uB2C8\uB2E4 (\uD30C\uC77C\uC740 \uC4F0\uC9C0 \uC54A\uC74C)").option("--workitem <id>", "\uB300\uC0C1 \uC6CC\uD06C\uC544\uC774\uD15C (\uAE30\uBCF8: \uD604\uC7AC)").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
279
- const { runChangelogDraft } = await import("./changelog-R7BNBF2C.js");
317
+ const { runChangelogDraft } = await import("./changelog-ZCPSFDX3.js");
280
318
  runChangelogDraft({ workitem: opts.workitem, json: opts.json === true });
281
319
  });
282
320
  program.command("commit <criterion>").description("\uC644\uB8CC \uC870\uAC74 \uC791\uC5C5\uC744 \uACA9\uB9AC \uCEE4\uBC0B\uD569\uB2C8\uB2E4 (\uB0B4 \uBCC0\uACBD\uB9CC)").option("--start", "\uBCA0\uC774\uC2A4\uB77C\uC778\uC744 \uC7A1\uC2B5\uB2C8\uB2E4 (\uC791\uC5C5 \uC2DC\uC791 \uC2DC)").option("-m, --message <msg>", "\uCEE4\uBC0B \uBA54\uC2DC\uC9C0").option("--base <ref>", "\uBCA0\uC774\uC2A4 \uB4DC\uB9AC\uD504\uD2B8\uB97C \uD655\uC778\uD560 \uAE30\uC900 \uBE0C\uB79C\uCE58").option("--force", "\uBCF4\uD638 \uD30C\uC77C \uBCC0\uACBD \uAC80\uC0AC\uB97C \uC0AC\uB78C\uC774 \uD655\uC778\uD558\uACE0 \uC6B0\uD68C\uD569\uB2C8\uB2E4").action(
283
321
  async (criterion, opts) => {
284
- const { runCommit } = await import("./commit-APXIVOSD.js");
322
+ const { runCommit } = await import("./commit-4XEKMCJF.js");
285
323
  await runCommit(criterion, {
286
324
  start: opts.start,
287
325
  message: opts.message,
@@ -291,12 +329,12 @@ function buildProgram() {
291
329
  }
292
330
  );
293
331
  program.command("review <range>").description("\uB9AC\uBDF0\uC5B4\uC5D0\uAC8C \uB118\uAE38 \uC790\uB8CC\uB97C \uC870\uB9BD\uD569\uB2C8\uB2E4 (provenance \uD3EC\uD568)").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").option("--base <ref>", "diff \uAE30\uC900 (\uAE30\uBCF8\uC740 \uC644\uB8CC \uC870\uAC74 baseline)").action(async (range, opts) => {
294
- const { runReview } = await import("./review-ZTHDJ47V.js");
332
+ const { runReview } = await import("./review-L52UGCIJ.js");
295
333
  await runReview(range, { json: opts.json === true, base: opts.base });
296
334
  });
297
335
  program.command("record <type>", { hidden: true }).description("\uAD6C\uC870\uD654\uB41C \uAE30\uB85D\uC744 \uB0A8\uAE41\uB2C8\uB2E4").option("--json <data>", "\uAE30\uB85D\uD560 \uB370\uC774\uD130 (JSON \uBB38\uC790\uC5F4)").option("--file <path>", "\uB370\uC774\uD130 \uD30C\uC77C \uACBD\uB85C (\uD070 \uB370\uC774\uD130\uC6A9)").option("--diff", "git diff \uB97C \uCEA1\uCC98\uD574 \uCCA8\uBD80\uD569\uB2C8\uB2E4 (blocked)").option("--workitem <id>", "\uC774 \uAE30\uB85D\uB9CC \uB2E4\uB978 \uC6CC\uD06C\uC544\uC774\uD15C\uC73C\uB85C \uB0A8\uAE41\uB2C8\uB2E4(\uAE30\uBCF8\uC740 \uD604\uC7AC \uC6CC\uD06C\uC544\uC774\uD15C)").action(
298
336
  async (type, opts) => {
299
- const { runRecord } = await import("./record-UKDIUJ5T.js");
337
+ const { runRecord } = await import("./record-CJONXDR2.js");
300
338
  await runRecord(type, {
301
339
  json: opts.json,
302
340
  file: opts.file,
@@ -310,7 +348,7 @@ function buildProgram() {
310
348
  "\uBCC0\uACBD\uB41C \uD30C\uC77C\uC5D0 \uAD00\uB828\uB41C \uD14C\uC2A4\uD2B8\uB9CC \uC2E4\uD589\uD569\uB2C8\uB2E4(relatedCmd \uD544\uC694, \uC5C6\uC73C\uBA74 \uC804\uCCB4 \uD14C\uC2A4\uD2B8\uB85C \uD3F4\uBC31)"
311
349
  ).action(
312
350
  async (opts) => {
313
- const { runVerify } = await import("./verify-L7ARTK42.js");
351
+ const { runVerify } = await import("./verify-PYZXB67X.js");
314
352
  await runVerify({
315
353
  json: opts.json === true,
316
354
  bail: opts.bail === true,
@@ -321,17 +359,17 @@ function buildProgram() {
321
359
  }
322
360
  );
323
361
  program.command("hold-recheck", { hidden: true }).description(".tasks/plan \uC758 \uC758\uC874\uD615 hold \uB97C \uC7AC\uC810\uAC80\uD574 \uCC29\uC9C0+\uD569\uACA9\uD55C \uC758\uC874\uC774\uBA74 \uC790\uB3D9 un-hold \uD569\uB2C8\uB2E4").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
324
- const { runHoldRecheck } = await import("./hold-recheck-WN5EG7HD.js");
362
+ const { runHoldRecheck } = await import("./hold-recheck-N3UCEIXL.js");
325
363
  await runHoldRecheck({ json: opts.json === true });
326
364
  });
327
365
  const state = program.command("state", { hidden: true }).description("\uB8E8\uD504 \uC0C1\uD0DC\uB97C \uC77D\uACE0 \uC501\uB2C8\uB2E4");
328
366
  state.command("get").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").action(async (opts) => {
329
- const { runStateGet } = await import("./state-XM7NZ2HA.js");
367
+ const { runStateGet } = await import("./state-3G4XAB6P.js");
330
368
  runStateGet({ json: opts.json === true });
331
369
  });
332
370
  state.command("set").requiredOption("--json <patch>", "\uBD80\uBD84 \uAC31\uC2E0 (JSON \uBB38\uC790\uC5F4)").action(async (opts) => {
333
- const { runStateSet } = await import("./state-XM7NZ2HA.js");
334
- const { hasApprovedGate1 } = await import("./record-UKDIUJ5T.js");
371
+ const { runStateSet } = await import("./state-3G4XAB6P.js");
372
+ const { hasApprovedGate1 } = await import("./record-CJONXDR2.js");
335
373
  runStateSet(opts.json, {
336
374
  // phase:'loop' 로의 전이는 이 워크아이템에 "승인된" 게이트1 레코드가 있을
337
375
  // 때만 허용한다(0.6.3, 적대검증 발견). 예전엔 gate:1 레코드의 존재만 봐서
@@ -342,7 +380,7 @@ function buildProgram() {
342
380
  });
343
381
  program.command("evolve", { hidden: true }).description("\uAE30\uB85D\uC744 \uBAA8\uC544 \uAD50\uD6C8\uC73C\uB85C, \uAD50\uD6C8\uC744 \uADDC\uCE59\uC73C\uB85C \uC787\uC2B5\uB2C8\uB2E4").option("--collect", "\uC774\uBC88 \uC6CC\uD06C\uC544\uC774\uD15C\uC758 \uAE30\uB85D\uC744 \uBAA8\uC544 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").option("--record", "\uAD50\uD6C8\uC744 gotchas \uC5D0 \uAE30\uB85D\uD569\uB2C8\uB2E4 (--json \uC73C\uB85C \uB370\uC774\uD130)").option("--json [data]", "collect: \uCD9C\uB825 \uD50C\uB798\uADF8 / record: \uAD50\uD6C8 \uB370\uC774\uD130(JSON \uBB38\uC790\uC5F4)").option("--workitem <wi>", "\uC6CC\uD06C\uC544\uC774\uD15C\uC73C\uB85C \uAC70\uB985\uB2C8\uB2E4 (--collect)").option("--from <YYYY-MM>", "\uAE30\uAC04 \uC2DC\uC791 \uC6D4\uB85C \uC77D\uAE30\uB97C \uC881\uD799\uB2C8\uB2E4 (--collect, \uC5C6\uC73C\uBA74 \uC804\uB7C9)").option("--to <YYYY-MM>", "\uAE30\uAC04 \uB05D \uC6D4 (--collect)").action(
344
382
  async (opts) => {
345
- const m = await import("./evolve-QPD7TWGO.js");
383
+ const m = await import("./evolve-ZBSIUZXP.js");
346
384
  if (opts.collect && opts.record) {
347
385
  process.stderr.write("\n --collect \uC640 --record \uB294 \uB3D9\uC2DC\uC5D0 \uC4F8 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.\n");
348
386
  process.exit(1);
@@ -361,7 +399,7 @@ function buildProgram() {
361
399
  }
362
400
  );
363
401
  program.command("defer-summary", { hidden: true }).description("\uBCF4\uB958\uD55C \uC911\uC694 \uD56D\uBAA9(\uC0AC\uB78C \uCD5C\uC885 \uD655\uC778 \uD56D\uBAA9)\uC744 \uCD5C\uC885 \uC694\uC57D\uD569\uB2C8\uB2E4").option("--json", "\uAE30\uACC4\uAC00 \uC77D\uC744 \uC218 \uC788\uB294 JSON\uC73C\uB85C \uCD9C\uB825\uD569\uB2C8\uB2E4").option("--workitem <wi>", "\uC6CC\uD06C\uC544\uC774\uD15C \uC9C0\uC815(\uC5C6\uC73C\uBA74 \uD604\uC7AC)").action(async (opts) => {
364
- const m = await import("./record-UKDIUJ5T.js");
402
+ const m = await import("./record-CJONXDR2.js");
365
403
  m.runDeferSummary({ json: opts.json === true, workitem: opts.workitem });
366
404
  });
367
405
  program.action((_opts, command) => {
@@ -1,28 +1,28 @@
1
1
  import {
2
2
  protectedFilesMessage
3
- } from "./chunk-6E7XEQOH.js";
3
+ } from "./chunk-ZYXKMNHC.js";
4
4
  import {
5
5
  hasApprovedGate1
6
- } from "./chunk-I77CXOEX.js";
6
+ } from "./chunk-6MG6CQBD.js";
7
7
  import {
8
8
  getCriterion,
9
9
  loadState,
10
10
  setCriterion,
11
11
  writeState
12
- } from "./chunk-4OCSYHYB.js";
12
+ } from "./chunk-SBX6LOQE.js";
13
13
  import {
14
14
  loadConfig,
15
15
  resolveProjectRoot,
16
16
  run
17
- } from "./chunk-UOPWVM2H.js";
18
- import "./chunk-BUWGQVHT.js";
17
+ } from "./chunk-5TFILHLH.js";
18
+ import "./chunk-ELQ4VANN.js";
19
19
  import {
20
20
  caps,
21
21
  feedback,
22
22
  makeColors,
23
23
  makeTokens,
24
24
  signal
25
- } from "./chunk-7SYRDDTX.js";
25
+ } from "./chunk-OTN2QONN.js";
26
26
 
27
27
  // src/commands/commit.ts
28
28
  import fs from "fs";
@@ -13,9 +13,9 @@ import {
13
13
  runConfig,
14
14
  runConfigSet,
15
15
  validateConfig
16
- } from "./chunk-UOPWVM2H.js";
17
- import "./chunk-BUWGQVHT.js";
18
- import "./chunk-7SYRDDTX.js";
16
+ } from "./chunk-5TFILHLH.js";
17
+ import "./chunk-ELQ4VANN.js";
18
+ import "./chunk-OTN2QONN.js";
19
19
  export {
20
20
  KNOWN_LANGUAGES,
21
21
  KNOWN_NAMING_CONVENTIONS,
@@ -8,14 +8,14 @@ import {
8
8
  gitHasCommits,
9
9
  renderText,
10
10
  runDoctor
11
- } from "./chunk-IXMAFR4Y.js";
12
- import "./chunk-C7BR2DCS.js";
13
- import "./chunk-YTAHVR4P.js";
14
- import "./chunk-I77CXOEX.js";
15
- import "./chunk-4OCSYHYB.js";
16
- import "./chunk-UOPWVM2H.js";
17
- import "./chunk-BUWGQVHT.js";
18
- import "./chunk-7SYRDDTX.js";
11
+ } from "./chunk-7KIVLJG3.js";
12
+ import "./chunk-57EWVAZO.js";
13
+ import "./chunk-JQN653ZS.js";
14
+ import "./chunk-6MG6CQBD.js";
15
+ import "./chunk-SBX6LOQE.js";
16
+ import "./chunk-5TFILHLH.js";
17
+ import "./chunk-ELQ4VANN.js";
18
+ import "./chunk-OTN2QONN.js";
19
19
  export {
20
20
  collectChecks,
21
21
  computeFileSizeOutliers,
@@ -13,13 +13,13 @@ import {
13
13
  runEvolveCollect,
14
14
  runEvolveRecord,
15
15
  writeGeneration
16
- } from "./chunk-G5LAJ5TV.js";
17
- import "./chunk-F5LHXBH7.js";
18
- import "./chunk-I77CXOEX.js";
19
- import "./chunk-4OCSYHYB.js";
20
- import "./chunk-UOPWVM2H.js";
21
- import "./chunk-BUWGQVHT.js";
22
- import "./chunk-7SYRDDTX.js";
16
+ } from "./chunk-QLUBNGHR.js";
17
+ import "./chunk-WRNCUSNU.js";
18
+ import "./chunk-6MG6CQBD.js";
19
+ import "./chunk-SBX6LOQE.js";
20
+ import "./chunk-5TFILHLH.js";
21
+ import "./chunk-ELQ4VANN.js";
22
+ import "./chunk-OTN2QONN.js";
23
23
  export {
24
24
  GOTCHA_RELATION_TYPES,
25
25
  acquireLock,
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  readRecords
3
- } from "./chunk-I77CXOEX.js";
4
- import "./chunk-4OCSYHYB.js";
5
- import "./chunk-UOPWVM2H.js";
6
- import "./chunk-BUWGQVHT.js";
3
+ } from "./chunk-6MG6CQBD.js";
4
+ import "./chunk-SBX6LOQE.js";
5
+ import "./chunk-5TFILHLH.js";
6
+ import "./chunk-ELQ4VANN.js";
7
7
  import {
8
8
  caps,
9
9
  card,
10
10
  makeColors,
11
11
  signal
12
- } from "./chunk-7SYRDDTX.js";
12
+ } from "./chunk-OTN2QONN.js";
13
13
 
14
14
  // src/commands/feedback.ts
15
15
  var SEVERITY_RANK = { high: 0, medium: 1, low: 2 };
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  loadGotchaList
3
- } from "./chunk-G5LAJ5TV.js";
4
- import "./chunk-F5LHXBH7.js";
5
- import "./chunk-I77CXOEX.js";
6
- import "./chunk-4OCSYHYB.js";
7
- import "./chunk-UOPWVM2H.js";
8
- import "./chunk-BUWGQVHT.js";
3
+ } from "./chunk-QLUBNGHR.js";
4
+ import "./chunk-WRNCUSNU.js";
5
+ import "./chunk-6MG6CQBD.js";
6
+ import "./chunk-SBX6LOQE.js";
7
+ import "./chunk-5TFILHLH.js";
8
+ import "./chunk-ELQ4VANN.js";
9
9
  import {
10
10
  caps,
11
11
  card,
12
12
  makeColors
13
- } from "./chunk-7SYRDDTX.js";
13
+ } from "./chunk-OTN2QONN.js";
14
14
 
15
15
  // src/commands/gotchas.ts
16
16
  function loadGotchas() {
@@ -1,29 +1,29 @@
1
1
  import {
2
2
  pipelineLanes
3
- } from "./chunk-46HZN6UB.js";
4
- import "./chunk-DP4O5ME2.js";
5
- import "./chunk-ZE6HXOYG.js";
3
+ } from "./chunk-R2RZC5NQ.js";
4
+ import "./chunk-4MWV4RBI.js";
5
+ import "./chunk-F7Z3S5LD.js";
6
6
  import "./chunk-D5OINC3G.js";
7
- import "./chunk-QE2CLNBG.js";
8
- import "./chunk-6E7XEQOH.js";
9
- import "./chunk-IXMAFR4Y.js";
10
- import "./chunk-C7BR2DCS.js";
11
- import "./chunk-YTAHVR4P.js";
12
- import "./chunk-IMB46O6S.js";
13
- import "./chunk-G5LAJ5TV.js";
14
- import "./chunk-F5LHXBH7.js";
15
- import "./chunk-I77CXOEX.js";
16
- import "./chunk-4OCSYHYB.js";
7
+ import "./chunk-FBRW7KKY.js";
8
+ import "./chunk-ZYXKMNHC.js";
9
+ import "./chunk-7KIVLJG3.js";
10
+ import "./chunk-57EWVAZO.js";
11
+ import "./chunk-JQN653ZS.js";
12
+ import "./chunk-MJT6UANJ.js";
13
+ import "./chunk-QLUBNGHR.js";
14
+ import "./chunk-WRNCUSNU.js";
15
+ import "./chunk-6MG6CQBD.js";
16
+ import "./chunk-SBX6LOQE.js";
17
17
  import {
18
18
  resolveProjectRoot
19
- } from "./chunk-UOPWVM2H.js";
20
- import "./chunk-BUWGQVHT.js";
19
+ } from "./chunk-5TFILHLH.js";
20
+ import "./chunk-ELQ4VANN.js";
21
21
  import {
22
22
  caps,
23
23
  card,
24
24
  makeColors,
25
25
  signal
26
- } from "./chunk-7SYRDDTX.js";
26
+ } from "./chunk-OTN2QONN.js";
27
27
 
28
28
  // src/commands/hold-recheck.ts
29
29
  import fs from "fs";
@@ -36,8 +36,8 @@ import {
36
36
  writeConfig,
37
37
  writeSkillsVersionStamp,
38
38
  writeState
39
- } from "./chunk-BUWGQVHT.js";
40
- import "./chunk-7SYRDDTX.js";
39
+ } from "./chunk-ELQ4VANN.js";
40
+ import "./chunk-OTN2QONN.js";
41
41
  export {
42
42
  LANG_OPTIONS,
43
43
  LANG_VALUES,
@@ -0,0 +1,41 @@
1
+ import {
2
+ WORKTREES_DIR,
3
+ branchOf,
4
+ collectLanes,
5
+ laneBranchMap,
6
+ parseWorktreeBranches,
7
+ renderLaneList,
8
+ runLaneList,
9
+ runLaneNew,
10
+ runLaneRemove,
11
+ unmergedCommitCount,
12
+ worktreeUntracked
13
+ } from "./chunk-4MWV4RBI.js";
14
+ import "./chunk-F7Z3S5LD.js";
15
+ import "./chunk-D5OINC3G.js";
16
+ import "./chunk-FBRW7KKY.js";
17
+ import "./chunk-ZYXKMNHC.js";
18
+ import "./chunk-7KIVLJG3.js";
19
+ import "./chunk-57EWVAZO.js";
20
+ import "./chunk-JQN653ZS.js";
21
+ import "./chunk-MJT6UANJ.js";
22
+ import "./chunk-QLUBNGHR.js";
23
+ import "./chunk-WRNCUSNU.js";
24
+ import "./chunk-6MG6CQBD.js";
25
+ import "./chunk-SBX6LOQE.js";
26
+ import "./chunk-5TFILHLH.js";
27
+ import "./chunk-ELQ4VANN.js";
28
+ import "./chunk-OTN2QONN.js";
29
+ export {
30
+ WORKTREES_DIR,
31
+ branchOf,
32
+ collectLanes,
33
+ laneBranchMap,
34
+ parseWorktreeBranches,
35
+ renderLaneList,
36
+ runLaneList,
37
+ runLaneNew,
38
+ runLaneRemove,
39
+ unmergedCommitCount,
40
+ worktreeUntracked
41
+ };
@@ -6,24 +6,24 @@ import {
6
6
  computeDurationMs,
7
7
  fmtDuration,
8
8
  loadGenerations
9
- } from "./chunk-F5LHXBH7.js";
9
+ } from "./chunk-WRNCUSNU.js";
10
10
  import {
11
11
  collectDeferred,
12
12
  readRecords
13
- } from "./chunk-I77CXOEX.js";
13
+ } from "./chunk-6MG6CQBD.js";
14
14
  import {
15
15
  loadState
16
- } from "./chunk-4OCSYHYB.js";
16
+ } from "./chunk-SBX6LOQE.js";
17
17
  import {
18
18
  requireConfig
19
- } from "./chunk-UOPWVM2H.js";
20
- import "./chunk-BUWGQVHT.js";
19
+ } from "./chunk-5TFILHLH.js";
20
+ import "./chunk-ELQ4VANN.js";
21
21
  import {
22
22
  caps,
23
23
  card,
24
24
  makeColors,
25
25
  padEndDisplay
26
- } from "./chunk-7SYRDDTX.js";
26
+ } from "./chunk-OTN2QONN.js";
27
27
 
28
28
  // src/commands/loop-summary.ts
29
29
  function gateAuto(rec) {