agent-work-loop 0.6.33 → 0.6.35

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 (42) hide show
  1. package/README.md +6 -0
  2. package/dist/{brief-IE2AC5XA.js → brief-GQRHGJQN.js} +4 -4
  3. package/dist/{changelog-7XV2TAVB.js → changelog-HZMH3RPD.js} +4 -4
  4. package/dist/{chunk-OA346OKL.js → chunk-4ZLARTXS.js} +1 -1
  5. package/dist/{chunk-NV5FE6II.js → chunk-6F4VAVKF.js} +2 -2
  6. package/dist/{chunk-Q34HYTEX.js → chunk-73QAFIZS.js} +1 -1
  7. package/dist/{chunk-RBLDM2LU.js → chunk-7D4T7HFK.js} +1 -1
  8. package/dist/{chunk-XFYYCBQD.js → chunk-7TMAQRJS.js} +16 -3
  9. package/dist/{chunk-I2F7DUOQ.js → chunk-CQ2PT4HP.js} +4 -4
  10. package/dist/{chunk-RQZBANFI.js → chunk-FKBBGXGF.js} +4 -4
  11. package/dist/{chunk-HNBBLKNT.js → chunk-GF4BMY4W.js} +4 -4
  12. package/dist/{chunk-LX57XSW3.js → chunk-NOU677FX.js} +1 -1
  13. package/dist/{chunk-C2EWSFNH.js → chunk-OJ7YO3MY.js} +1 -1
  14. package/dist/{chunk-EW5CLZ7C.js → chunk-OJMHX4AM.js} +3 -3
  15. package/dist/{chunk-L3G3B7FT.js → chunk-TGLJWWLM.js} +8 -8
  16. package/dist/{chunk-TWL3QIQN.js → chunk-UNANHUG3.js} +1 -1
  17. package/dist/{chunk-IQNGZFEK.js → chunk-XW6R4UZE.js} +4 -4
  18. package/dist/{chunk-3ADAPFWK.js → chunk-YE4BYU36.js} +5 -5
  19. package/dist/cli.js +120 -48
  20. package/dist/{commit-QPFG6Y6H.js → commit-SU6CTBU3.js} +5 -5
  21. package/dist/{config-7OAT6KH3.js → config-Z4G5SBWJ.js} +2 -2
  22. package/dist/{doctor-E56OQZZH.js → doctor-AWK3SC7Y.js} +7 -7
  23. package/dist/{evolve-QJACOUJV.js → evolve-SQJ5LIE4.js} +6 -6
  24. package/dist/{feedback-3K6AJBG5.js → feedback-TPITVUZL.js} +4 -4
  25. package/dist/{gotchas-LZYMD22W.js → gotchas-UEZG3HVO.js} +6 -6
  26. package/dist/{hold-recheck-GCQRCB5X.js → hold-recheck-CWCSW53F.js} +15 -15
  27. package/dist/{init-7BDRW6AP.js → init-AVVD77XM.js} +1 -1
  28. package/dist/{lane-V3EFI7SW.js → lane-IAGRF6JX.js} +14 -14
  29. package/dist/{loop-summary-QNH423MW.js → loop-summary-L4UTUOPY.js} +5 -5
  30. package/dist/{metrics-HCUMZSAU.js → metrics-SOYVRSNM.js} +3 -3
  31. package/dist/{record-A35XVG5F.js → record-V6V5XPPA.js} +4 -4
  32. package/dist/{remove-SSTHJZ5G.js → remove-5EMNMWTP.js} +39 -14
  33. package/dist/{review-44SX5ERY.js → review-RMY7QFZN.js} +12 -12
  34. package/dist/{rules-GSOMM5VP.js → rules-ASJFXFGG.js} +7 -7
  35. package/dist/{state-46G4FKH3.js → state-6TNG2EC5.js} +3 -3
  36. package/dist/{status-RHIO7OI6.js → status-NKYMDRXV.js} +15 -15
  37. package/dist/{update-AKGNAL2F.js → update-3AYB3V4I.js} +4 -4
  38. package/dist/{verify-R3ISFRBC.js → verify-KSZEOELP.js} +9 -9
  39. package/dist/{version-check-2DSSLKUD.js → version-check-GLMAE256.js} +4 -4
  40. package/dist/{work-ETVZJUFX.js → work-45HQITYZ.js} +13 -13
  41. package/engine/version.json +1 -1
  42. package/package.json +1 -1
@@ -29,10 +29,10 @@ import {
29
29
  runRecords,
30
30
  selectMonthFiles,
31
31
  shouldDefer
32
- } from "./chunk-NV5FE6II.js";
33
- import "./chunk-TWL3QIQN.js";
34
- import "./chunk-RBLDM2LU.js";
35
- import "./chunk-XFYYCBQD.js";
32
+ } from "./chunk-6F4VAVKF.js";
33
+ import "./chunk-UNANHUG3.js";
34
+ import "./chunk-7D4T7HFK.js";
35
+ import "./chunk-7TMAQRJS.js";
36
36
  import "./chunk-SUF5ISJM.js";
37
37
  export {
38
38
  AWL_FEEDBACK_AREAS,
@@ -1,31 +1,32 @@
1
1
  import {
2
+ WORKTREES_DIR,
2
3
  branchOf,
3
4
  collectLanes,
4
5
  laneBranchMap,
5
6
  unmergedCommitCount,
6
7
  worktreeUntracked
7
- } from "./chunk-HNBBLKNT.js";
8
+ } from "./chunk-GF4BMY4W.js";
8
9
  import {
9
10
  removeGitWorktree,
10
11
  worktreeDirtyTracked
11
- } from "./chunk-L3G3B7FT.js";
12
+ } from "./chunk-TGLJWWLM.js";
12
13
  import "./chunk-D5OINC3G.js";
13
- import "./chunk-IQNGZFEK.js";
14
- import "./chunk-LX57XSW3.js";
15
- import "./chunk-3ADAPFWK.js";
16
- import "./chunk-EW5CLZ7C.js";
17
- import "./chunk-Q34HYTEX.js";
18
- import "./chunk-C2EWSFNH.js";
19
- import "./chunk-RQZBANFI.js";
20
- import "./chunk-OA346OKL.js";
21
- import "./chunk-NV5FE6II.js";
22
- import "./chunk-TWL3QIQN.js";
14
+ import "./chunk-XW6R4UZE.js";
15
+ import "./chunk-NOU677FX.js";
16
+ import "./chunk-YE4BYU36.js";
17
+ import "./chunk-OJMHX4AM.js";
18
+ import "./chunk-73QAFIZS.js";
19
+ import "./chunk-OJ7YO3MY.js";
20
+ import "./chunk-FKBBGXGF.js";
21
+ import "./chunk-4ZLARTXS.js";
22
+ import "./chunk-6F4VAVKF.js";
23
+ import "./chunk-UNANHUG3.js";
23
24
  import {
24
25
  resolveProjectRoot
25
- } from "./chunk-RBLDM2LU.js";
26
+ } from "./chunk-7D4T7HFK.js";
26
27
  import {
27
28
  packageEngineDir
28
- } from "./chunk-XFYYCBQD.js";
29
+ } from "./chunk-7TMAQRJS.js";
29
30
  import {
30
31
  caps,
31
32
  engineDir,
@@ -345,6 +346,19 @@ function readOtherProjects(currentRoot) {
345
346
  return [];
346
347
  }
347
348
  }
349
+ function renderOtherProjectsCleanupGuide(otherProjects, c) {
350
+ if (otherProjects.length === 0) {
351
+ return "";
352
+ }
353
+ const chain = otherProjects.map((p) => `cd "${p.path}" && awl remove --project --yes`).join(" && ");
354
+ return [
355
+ "",
356
+ ` ${signal(c, "warn")} \uB2E4\uB978 \uB4F1\uB85D \uD504\uB85C\uC81D\uD2B8 ${otherProjects.length}\uAC1C\uC758 \uB85C\uCEEC(.awl/ \uB4F1)\uC740 \uC774 \uBA85\uB839\uC774 \uAC74\uB4DC\uB9AC\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4 \u2014 \uC544\uB798\uB97C \uADF8\uB300\uB85C \uBCF5\uC0AC\uD574 \uC2E4\uD589\uD558\uC138\uC694:`,
357
+ "",
358
+ ` ${chain}`,
359
+ ""
360
+ ].join("\n");
361
+ }
348
362
  function renderPlan(scope, project, lanes, global, otherProjects, lockStatuses, c) {
349
363
  const color = makeColors(c.color);
350
364
  const lines = [];
@@ -418,6 +432,7 @@ async function runRemove(opts) {
418
432
  ${renderPlan(scope, project, lanes, global, otherProjects, lockStatuses, c)}
419
433
  `
420
434
  );
435
+ process.stdout.write(renderOtherProjectsCleanupGuide(otherProjects, c));
421
436
  }
422
437
  if (!opts.yes) {
423
438
  if (opts.json) {
@@ -463,6 +478,15 @@ ${renderPlan(scope, project, lanes, global, otherProjects, lockStatuses, c)}
463
478
  for (const lane of lanes) {
464
479
  laneResults.push(await removeLaneSafely(root, lane));
465
480
  }
481
+ if (scope.project) {
482
+ const worktreesDir = path.join(root, WORKTREES_DIR);
483
+ try {
484
+ if (fs.readdirSync(worktreesDir).length === 0) {
485
+ fs.rmdirSync(worktreesDir);
486
+ }
487
+ } catch {
488
+ }
489
+ }
466
490
  const skippedItems = [];
467
491
  for (const item of [...project, ...global]) {
468
492
  if (!item.present) {
@@ -537,6 +561,7 @@ export {
537
561
  findMarkerLegacyFiles,
538
562
  readOtherProjects,
539
563
  removeLaneSafely,
564
+ renderOtherProjectsCleanupGuide,
540
565
  resolveScope,
541
566
  runRemove,
542
567
  scanGlobal,
@@ -1,25 +1,25 @@
1
1
  import {
2
2
  runVerifyChecks
3
- } from "./chunk-IQNGZFEK.js";
4
- import "./chunk-LX57XSW3.js";
5
- import "./chunk-3ADAPFWK.js";
6
- import "./chunk-EW5CLZ7C.js";
7
- import "./chunk-Q34HYTEX.js";
3
+ } from "./chunk-XW6R4UZE.js";
4
+ import "./chunk-NOU677FX.js";
5
+ import "./chunk-YE4BYU36.js";
6
+ import "./chunk-OJMHX4AM.js";
7
+ import "./chunk-73QAFIZS.js";
8
8
  import {
9
9
  filterRules,
10
10
  loadRules
11
- } from "./chunk-C2EWSFNH.js";
12
- import "./chunk-RQZBANFI.js";
13
- import "./chunk-OA346OKL.js";
14
- import "./chunk-NV5FE6II.js";
11
+ } from "./chunk-OJ7YO3MY.js";
12
+ import "./chunk-FKBBGXGF.js";
13
+ import "./chunk-4ZLARTXS.js";
14
+ import "./chunk-6F4VAVKF.js";
15
15
  import {
16
16
  loadState
17
- } from "./chunk-TWL3QIQN.js";
17
+ } from "./chunk-UNANHUG3.js";
18
18
  import {
19
19
  requireConfig,
20
20
  run
21
- } from "./chunk-RBLDM2LU.js";
22
- import "./chunk-XFYYCBQD.js";
21
+ } from "./chunk-7D4T7HFK.js";
22
+ import "./chunk-7TMAQRJS.js";
23
23
  import {
24
24
  caps,
25
25
  makeColors,
@@ -10,13 +10,13 @@ import {
10
10
  runRulesPromote,
11
11
  suggestLinter,
12
12
  validatePromoteOpts
13
- } from "./chunk-C2EWSFNH.js";
14
- import "./chunk-RQZBANFI.js";
15
- import "./chunk-OA346OKL.js";
16
- import "./chunk-NV5FE6II.js";
17
- import "./chunk-TWL3QIQN.js";
18
- import "./chunk-RBLDM2LU.js";
19
- import "./chunk-XFYYCBQD.js";
13
+ } from "./chunk-OJ7YO3MY.js";
14
+ import "./chunk-FKBBGXGF.js";
15
+ import "./chunk-4ZLARTXS.js";
16
+ import "./chunk-6F4VAVKF.js";
17
+ import "./chunk-UNANHUG3.js";
18
+ import "./chunk-7D4T7HFK.js";
19
+ import "./chunk-7TMAQRJS.js";
20
20
  import "./chunk-SUF5ISJM.js";
21
21
  export {
22
22
  RULE_LOAD_LIMIT,
@@ -14,9 +14,9 @@ import {
14
14
  stateLockFile,
15
15
  statePath,
16
16
  writeState
17
- } from "./chunk-TWL3QIQN.js";
18
- import "./chunk-RBLDM2LU.js";
19
- import "./chunk-XFYYCBQD.js";
17
+ } from "./chunk-UNANHUG3.js";
18
+ import "./chunk-7D4T7HFK.js";
19
+ import "./chunk-7TMAQRJS.js";
20
20
  import "./chunk-SUF5ISJM.js";
21
21
  export {
22
22
  acquireStateLock,
@@ -9,22 +9,22 @@ import {
9
9
  renderPipelineGroups,
10
10
  renderStatus,
11
11
  runStatus
12
- } from "./chunk-I2F7DUOQ.js";
13
- import "./chunk-HNBBLKNT.js";
14
- import "./chunk-L3G3B7FT.js";
12
+ } from "./chunk-CQ2PT4HP.js";
13
+ import "./chunk-GF4BMY4W.js";
14
+ import "./chunk-TGLJWWLM.js";
15
15
  import "./chunk-D5OINC3G.js";
16
- import "./chunk-IQNGZFEK.js";
17
- import "./chunk-LX57XSW3.js";
18
- import "./chunk-3ADAPFWK.js";
19
- import "./chunk-EW5CLZ7C.js";
20
- import "./chunk-Q34HYTEX.js";
21
- import "./chunk-C2EWSFNH.js";
22
- import "./chunk-RQZBANFI.js";
23
- import "./chunk-OA346OKL.js";
24
- import "./chunk-NV5FE6II.js";
25
- import "./chunk-TWL3QIQN.js";
26
- import "./chunk-RBLDM2LU.js";
27
- import "./chunk-XFYYCBQD.js";
16
+ import "./chunk-XW6R4UZE.js";
17
+ import "./chunk-NOU677FX.js";
18
+ import "./chunk-YE4BYU36.js";
19
+ import "./chunk-OJMHX4AM.js";
20
+ import "./chunk-73QAFIZS.js";
21
+ import "./chunk-OJ7YO3MY.js";
22
+ import "./chunk-FKBBGXGF.js";
23
+ import "./chunk-4ZLARTXS.js";
24
+ import "./chunk-6F4VAVKF.js";
25
+ import "./chunk-UNANHUG3.js";
26
+ import "./chunk-7D4T7HFK.js";
27
+ import "./chunk-7TMAQRJS.js";
28
28
  import "./chunk-SUF5ISJM.js";
29
29
  export {
30
30
  buildStatus,
@@ -2,7 +2,7 @@ import {
2
2
  listRegisteredProjects,
3
3
  packageEngineDir,
4
4
  syncExistingInstall
5
- } from "./chunk-XFYYCBQD.js";
5
+ } from "./chunk-7TMAQRJS.js";
6
6
  import {
7
7
  caps,
8
8
  engineDir,
@@ -23,7 +23,7 @@ function applyUpdate() {
23
23
  const toVersion = installedEngineVersion();
24
24
  return { updated: true, fromVersion, toVersion };
25
25
  }
26
- function applyLocalUpdate(engineVersion) {
26
+ function applyLocalUpdate(engineVersion, now) {
27
27
  const results = [];
28
28
  for (const p of listRegisteredProjects()) {
29
29
  if (!fs.existsSync(p.path)) {
@@ -46,7 +46,7 @@ function applyLocalUpdate(engineVersion) {
46
46
  });
47
47
  continue;
48
48
  }
49
- const synced = syncExistingInstall(p.path, engineVersion);
49
+ const synced = syncExistingInstall(p.path, engineVersion, now);
50
50
  results.push({
51
51
  name: p.name,
52
52
  path: p.path,
@@ -121,7 +121,7 @@ function runUpdate(opts = {}) {
121
121
  "awl init \uC744 \uBA3C\uC800 \uC2E4\uD589\uD558\uC138\uC694."
122
122
  );
123
123
  } else {
124
- sections.push(...renderLocal(applyLocalUpdate(engineVersion), c));
124
+ sections.push(...renderLocal(applyLocalUpdate(engineVersion, (/* @__PURE__ */ new Date()).toISOString()), c));
125
125
  }
126
126
  }
127
127
  process.stdout.write(`
@@ -11,15 +11,15 @@ import {
11
11
  substituteRelatedCmd,
12
12
  verifyBaselinePath,
13
13
  writeVerifyBaseline
14
- } from "./chunk-IQNGZFEK.js";
15
- import "./chunk-LX57XSW3.js";
16
- import "./chunk-3ADAPFWK.js";
17
- import "./chunk-EW5CLZ7C.js";
18
- import "./chunk-Q34HYTEX.js";
19
- import "./chunk-NV5FE6II.js";
20
- import "./chunk-TWL3QIQN.js";
21
- import "./chunk-RBLDM2LU.js";
22
- import "./chunk-XFYYCBQD.js";
14
+ } from "./chunk-XW6R4UZE.js";
15
+ import "./chunk-NOU677FX.js";
16
+ import "./chunk-YE4BYU36.js";
17
+ import "./chunk-OJMHX4AM.js";
18
+ import "./chunk-73QAFIZS.js";
19
+ import "./chunk-6F4VAVKF.js";
20
+ import "./chunk-UNANHUG3.js";
21
+ import "./chunk-7D4T7HFK.js";
22
+ import "./chunk-7TMAQRJS.js";
23
23
  import "./chunk-SUF5ISJM.js";
24
24
  export {
25
25
  buildVerifyBaseline,
@@ -2,10 +2,10 @@ import {
2
2
  gatherVersionInputs,
3
3
  renderVersionCheck,
4
4
  runVersionCheck
5
- } from "./chunk-EW5CLZ7C.js";
6
- import "./chunk-Q34HYTEX.js";
7
- import "./chunk-RBLDM2LU.js";
8
- import "./chunk-XFYYCBQD.js";
5
+ } from "./chunk-OJMHX4AM.js";
6
+ import "./chunk-73QAFIZS.js";
7
+ import "./chunk-7D4T7HFK.js";
8
+ import "./chunk-7TMAQRJS.js";
9
9
  import "./chunk-SUF5ISJM.js";
10
10
  export {
11
11
  gatherVersionInputs,
@@ -20,20 +20,20 @@ import {
20
20
  summarizeWorkitems,
21
21
  withCostAtStart,
22
22
  worktreeDirtyTracked
23
- } from "./chunk-L3G3B7FT.js";
23
+ } from "./chunk-TGLJWWLM.js";
24
24
  import "./chunk-D5OINC3G.js";
25
- import "./chunk-IQNGZFEK.js";
26
- import "./chunk-LX57XSW3.js";
27
- import "./chunk-3ADAPFWK.js";
28
- import "./chunk-EW5CLZ7C.js";
29
- import "./chunk-Q34HYTEX.js";
30
- import "./chunk-C2EWSFNH.js";
31
- import "./chunk-RQZBANFI.js";
32
- import "./chunk-OA346OKL.js";
33
- import "./chunk-NV5FE6II.js";
34
- import "./chunk-TWL3QIQN.js";
35
- import "./chunk-RBLDM2LU.js";
36
- import "./chunk-XFYYCBQD.js";
25
+ import "./chunk-XW6R4UZE.js";
26
+ import "./chunk-NOU677FX.js";
27
+ import "./chunk-YE4BYU36.js";
28
+ import "./chunk-OJMHX4AM.js";
29
+ import "./chunk-73QAFIZS.js";
30
+ import "./chunk-OJ7YO3MY.js";
31
+ import "./chunk-FKBBGXGF.js";
32
+ import "./chunk-4ZLARTXS.js";
33
+ import "./chunk-6F4VAVKF.js";
34
+ import "./chunk-UNANHUG3.js";
35
+ import "./chunk-7D4T7HFK.js";
36
+ import "./chunk-7TMAQRJS.js";
37
37
  import "./chunk-SUF5ISJM.js";
38
38
  export {
39
39
  DEFAULT_GIT_WORKTREE_TIMEOUT_MS,
@@ -1,4 +1,4 @@
1
1
  {
2
- "engineVersion": "0.6.33",
2
+ "engineVersion": "0.6.35",
3
3
  "note": "~/.awl/engine 으로 복사되는 스킬·검사기·템플릿·마이그레이션. skills/ 에 awl-loop 스킬이 들어있습니다."
4
4
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-work-loop",
3
- "version": "0.6.33",
3
+ "version": "0.6.35",
4
4
  "description": "같은 실패를 두 번 하지 않는 도구. AI 에이전트가 한 일과 확인한 내용을 파일로 남깁니다.",
5
5
  "type": "module",
6
6
  "bin": {