agent-work-loop 0.6.36 → 0.6.43
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.
- package/dist/{brief-GQRHGJQN.js → brief-GOGJDLY7.js} +5 -5
- package/dist/{changelog-HZMH3RPD.js → changelog-NLYZTB44.js} +5 -5
- package/dist/{chunk-7TMAQRJS.js → chunk-7CPPZX6X.js} +1 -1
- package/dist/{chunk-FKBBGXGF.js → chunk-E6MULIMV.js} +5 -5
- package/dist/{chunk-NOU677FX.js → chunk-I3WXYD5C.js} +1 -1
- package/dist/{chunk-PFHPIVTO.js → chunk-I5SS6HFR.js} +49 -35
- package/dist/{chunk-CMIR4BRM.js → chunk-I5WWLNA6.js} +37 -9
- package/dist/{chunk-EEGOR4Y3.js → chunk-JQV65R3M.js} +5 -5
- package/dist/{chunk-7D4T7HFK.js → chunk-JR6MKCC4.js} +126 -6
- package/dist/{chunk-OJ7YO3MY.js → chunk-MBEY33YA.js} +2 -2
- package/dist/{chunk-QMECHIJW.js → chunk-OVLA5DET.js} +99 -21
- package/dist/{chunk-6F4VAVKF.js → chunk-QVP5DUND.js} +3 -3
- package/dist/{chunk-DNE7BN76.js → chunk-SKLSWS5J.js} +2 -2
- package/dist/{chunk-4ZLARTXS.js → chunk-SOUTYYY4.js} +47 -3
- package/dist/{chunk-AXES5NVJ.js → chunk-TQUXHTN5.js} +4 -4
- package/dist/{chunk-UNANHUG3.js → chunk-UJ6CK5HC.js} +2 -2
- package/dist/{chunk-SUF5ISJM.js → chunk-UNAASSQ4.js} +3 -1
- package/dist/{chunk-R4EH3WJE.js → chunk-YC23SNVC.js} +5 -5
- package/dist/cli.js +40 -40
- package/dist/{commit-SU6CTBU3.js → commit-BKN3ZJI7.js} +6 -6
- package/dist/{config-Z4G5SBWJ.js → config-DX3WL2JT.js} +9 -3
- package/dist/{doctor-UOOJSZBL.js → doctor-TBRNCTDS.js} +8 -8
- package/dist/{evolve-SQJ5LIE4.js → evolve-EMGWWWY3.js} +7 -7
- package/dist/{feedback-TPITVUZL.js → feedback-ZAAM5VYL.js} +5 -5
- package/dist/{gotchas-UEZG3HVO.js → gotchas-6ZWHP5Z6.js} +7 -7
- package/dist/{hold-recheck-NZ3OIG4W.js → hold-recheck-K7DV64KW.js} +16 -16
- package/dist/{init-AVVD77XM.js → init-3X6NVQQW.js} +2 -2
- package/dist/lane-QPZE7KYI.js +41 -0
- package/dist/{loop-summary-L4UTUOPY.js → loop-summary-CD6EIAHZ.js} +49 -7
- package/dist/{metrics-SOYVRSNM.js → metrics-VVXCH6TR.js} +4 -4
- package/dist/{record-V6V5XPPA.js → record-AC7LPU36.js} +5 -5
- package/dist/{remove-3XNAPKK6.js → remove-C64QRELY.js} +15 -15
- package/dist/{review-USI34ZYP.js → review-VCVPT3P6.js} +13 -13
- package/dist/{rules-ASJFXFGG.js → rules-2DIFP7K2.js} +8 -8
- package/dist/{state-6TNG2EC5.js → state-UIHEGC5P.js} +4 -4
- package/dist/status-2PUVZCFI.js +40 -0
- package/dist/{update-3AYB3V4I.js → update-KCQWDQDF.js} +2 -2
- package/dist/{verify-WXSV5HLL.js → verify-Y36JFAA7.js} +10 -10
- package/dist/version-check-XLXT7NSG.js +14 -0
- package/dist/{work-XHJFZIIL.js → work-HHTQTJZW.js} +14 -14
- package/engine/skills/claude/awl-loop/SKILL.md +16 -0
- package/engine/skills/claude/awl-loop/reference.md +4 -0
- package/engine/skills/claude/awl-pipeline/SKILL.md +93 -4
- package/engine/skills/claude/awl-pipeline/templates/README.md +44 -0
- package/engine/skills/claude/awl-pipeline/templates/watch-exec.sh +62 -0
- package/engine/skills/claude/awl-pipeline/templates/watch-inputs.sh +63 -0
- package/engine/skills/claude/awl-pipeline-exec/SKILL.md +58 -94
- package/engine/skills/claude/awl-pipeline-plan/SKILL.md +9 -3
- package/engine/skills/claude/awl-pipeline-review/SKILL.md +40 -71
- package/engine/version.json +1 -1
- package/package.json +1 -1
- package/dist/lane-65DSOYQ3.js +0 -41
- package/dist/status-M7KSA2KA.js +0 -40
- package/dist/version-check-JFXBDFFV.js +0 -14
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
loadProjectName,
|
|
3
3
|
readRecords
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-QVP5DUND.js";
|
|
5
5
|
import {
|
|
6
6
|
loadState
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-UJ6CK5HC.js";
|
|
8
8
|
import {
|
|
9
9
|
resolveProjectRoot,
|
|
10
10
|
run
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
11
|
+
} from "./chunk-JR6MKCC4.js";
|
|
12
|
+
import "./chunk-7CPPZX6X.js";
|
|
13
|
+
import "./chunk-UNAASSQ4.js";
|
|
14
14
|
|
|
15
15
|
// src/commands/brief.ts
|
|
16
16
|
var KST_OFFSET_MS = 9 * 60 * 60 * 1e3;
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import {
|
|
2
2
|
readRecords
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-QVP5DUND.js";
|
|
4
4
|
import {
|
|
5
5
|
loadState
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-UJ6CK5HC.js";
|
|
7
7
|
import {
|
|
8
8
|
resolveProjectRoot
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-JR6MKCC4.js";
|
|
10
|
+
import "./chunk-7CPPZX6X.js";
|
|
11
11
|
import {
|
|
12
12
|
caps,
|
|
13
13
|
signal
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-UNAASSQ4.js";
|
|
15
15
|
|
|
16
16
|
// src/commands/changelog.ts
|
|
17
17
|
function runChangelogDraft(opts) {
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
computeDurationMs
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-SOUTYYY4.js";
|
|
4
4
|
import {
|
|
5
5
|
computeCoverage,
|
|
6
6
|
readRecords
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-QVP5DUND.js";
|
|
8
8
|
import {
|
|
9
9
|
loadState
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-UJ6CK5HC.js";
|
|
11
11
|
import {
|
|
12
12
|
requireConfig
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-JR6MKCC4.js";
|
|
14
14
|
import {
|
|
15
15
|
caps,
|
|
16
16
|
generationsDir,
|
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
lockFile,
|
|
20
20
|
makeColors,
|
|
21
21
|
signal
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-UNAASSQ4.js";
|
|
23
23
|
|
|
24
24
|
// src/commands/evolve.ts
|
|
25
25
|
import fs from "fs";
|
|
@@ -1,22 +1,25 @@
|
|
|
1
1
|
import {
|
|
2
2
|
gatherVersionInputs
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-TQUXHTN5.js";
|
|
4
4
|
import {
|
|
5
5
|
checkVersions
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-SKLSWS5J.js";
|
|
7
7
|
import {
|
|
8
8
|
loadProjectName,
|
|
9
9
|
readRecords
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-QVP5DUND.js";
|
|
11
11
|
import {
|
|
12
12
|
loadState,
|
|
13
13
|
readStateLock
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-UJ6CK5HC.js";
|
|
15
15
|
import {
|
|
16
16
|
CommandNotFoundError,
|
|
17
17
|
run,
|
|
18
18
|
tokenize
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-JR6MKCC4.js";
|
|
20
|
+
import {
|
|
21
|
+
listRegisteredProjects
|
|
22
|
+
} from "./chunk-7CPPZX6X.js";
|
|
20
23
|
import {
|
|
21
24
|
caps,
|
|
22
25
|
clipToWidth,
|
|
@@ -32,7 +35,7 @@ import {
|
|
|
32
35
|
sectionBox,
|
|
33
36
|
signal,
|
|
34
37
|
visibleWidth
|
|
35
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-UNAASSQ4.js";
|
|
36
39
|
|
|
37
40
|
// src/commands/doctor.ts
|
|
38
41
|
import fs from "fs";
|
|
@@ -372,7 +375,12 @@ function collectGlobal(checks, versionResult) {
|
|
|
372
375
|
checks.push({ group: "\uC804\uC5ED \uC124\uCE58", name: "\uD504\uB85C\uC81D\uD2B8", status: "info", value: `${projectCount}\uAC1C` });
|
|
373
376
|
}
|
|
374
377
|
async function collectProject(checks, projectRoot, versionResult) {
|
|
375
|
-
if (
|
|
378
|
+
if (projectRoot) {
|
|
379
|
+
await collectSingleProject(checks, projectRoot, "\uC774 \uD504\uB85C\uC81D\uD2B8", versionResult);
|
|
380
|
+
return;
|
|
381
|
+
}
|
|
382
|
+
const registered = listRegisteredProjects().filter((p) => exists(p.path));
|
|
383
|
+
if (registered.length === 0) {
|
|
376
384
|
checks.push({
|
|
377
385
|
group: "\uC774 \uD504\uB85C\uC81D\uD2B8",
|
|
378
386
|
name: "\uD504\uB85C\uC81D\uD2B8 \uB8E8\uD2B8",
|
|
@@ -381,15 +389,21 @@ async function collectProject(checks, projectRoot, versionResult) {
|
|
|
381
389
|
});
|
|
382
390
|
return;
|
|
383
391
|
}
|
|
392
|
+
for (const p of registered) {
|
|
393
|
+
const pVersionResult = checkVersions(gatherVersionInputs(p.path));
|
|
394
|
+
await collectSingleProject(checks, p.path, `\uD504\uB85C\uC81D\uD2B8: ${p.name}`, pVersionResult);
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
async function collectSingleProject(checks, projectRoot, groupLabel, versionResult) {
|
|
384
398
|
checks.push({
|
|
385
|
-
group:
|
|
399
|
+
group: groupLabel,
|
|
386
400
|
name: "\uD504\uB85C\uC81D\uD2B8 \uB8E8\uD2B8",
|
|
387
401
|
status: "info",
|
|
388
402
|
value: projectRoot
|
|
389
403
|
});
|
|
390
404
|
const branch = await gitBranch(projectRoot);
|
|
391
405
|
checks.push({
|
|
392
|
-
group:
|
|
406
|
+
group: groupLabel,
|
|
393
407
|
name: "\uBE0C\uB79C\uCE58",
|
|
394
408
|
status: "info",
|
|
395
409
|
value: branch ?? "\uC54C \uC218 \uC5C6\uC74C (\uD655\uC778 \uC2E4\uD328)"
|
|
@@ -397,16 +411,16 @@ async function collectProject(checks, projectRoot, versionResult) {
|
|
|
397
411
|
const dirtyFiles = await gitDirtyFiles(projectRoot);
|
|
398
412
|
if (dirtyFiles === null) {
|
|
399
413
|
checks.push({
|
|
400
|
-
group:
|
|
414
|
+
group: groupLabel,
|
|
401
415
|
name: "\uC6CC\uD0B9\uD2B8\uB9AC",
|
|
402
416
|
status: "info",
|
|
403
417
|
value: "\uD655\uC778 \uC548 \uB428 (git \uC800\uC7A5\uC18C\uAC00 \uC544\uB2C8\uAC70\uB098 \uD655\uC778 \uC2E4\uD328)"
|
|
404
418
|
});
|
|
405
419
|
} else if (dirtyFiles.length === 0) {
|
|
406
|
-
checks.push({ group:
|
|
420
|
+
checks.push({ group: groupLabel, name: "\uC6CC\uD0B9\uD2B8\uB9AC", status: "ok", value: "\uD074\uB9B0" });
|
|
407
421
|
} else {
|
|
408
422
|
checks.push({
|
|
409
|
-
group:
|
|
423
|
+
group: groupLabel,
|
|
410
424
|
name: "\uC6CC\uD0B9\uD2B8\uB9AC",
|
|
411
425
|
status: "warn",
|
|
412
426
|
value: `\uBBF8\uCEE4\uBC0B \uBCC0\uACBD ${dirtyFiles.length}\uAC1C`,
|
|
@@ -416,7 +430,7 @@ async function collectProject(checks, projectRoot, versionResult) {
|
|
|
416
430
|
const configPath = path.join(projectRoot, ".awl", "config.json");
|
|
417
431
|
if (!exists(configPath)) {
|
|
418
432
|
checks.push({
|
|
419
|
-
group:
|
|
433
|
+
group: groupLabel,
|
|
420
434
|
name: "config.json",
|
|
421
435
|
status: "missing",
|
|
422
436
|
value: "\uC5C6\uC74C",
|
|
@@ -427,7 +441,7 @@ async function collectProject(checks, projectRoot, versionResult) {
|
|
|
427
441
|
const raw = readJson(configPath);
|
|
428
442
|
if (!isAwlConfig(raw)) {
|
|
429
443
|
checks.push({
|
|
430
|
-
group:
|
|
444
|
+
group: groupLabel,
|
|
431
445
|
name: "config.json",
|
|
432
446
|
status: "fail",
|
|
433
447
|
value: "\uD615\uC2DD \uC624\uB958",
|
|
@@ -435,11 +449,11 @@ async function collectProject(checks, projectRoot, versionResult) {
|
|
|
435
449
|
});
|
|
436
450
|
return;
|
|
437
451
|
}
|
|
438
|
-
checks.push({ group:
|
|
452
|
+
checks.push({ group: groupLabel, name: "config.json", status: "ok", value: "\uC788\uC74C" });
|
|
439
453
|
const recordedNaming = typeof raw.namingConvention === "string" ? raw.namingConvention : void 0;
|
|
440
454
|
if (recordedNaming) {
|
|
441
455
|
checks.push({
|
|
442
|
-
group:
|
|
456
|
+
group: groupLabel,
|
|
443
457
|
name: "\uB124\uC774\uBC0D \uCEE8\uBCA4\uC158",
|
|
444
458
|
status: "info",
|
|
445
459
|
value: recordedNaming
|
|
@@ -450,17 +464,17 @@ async function collectProject(checks, projectRoot, versionResult) {
|
|
|
450
464
|
);
|
|
451
465
|
if (naming.reason === "detected" && naming.convention) {
|
|
452
466
|
checks.push({
|
|
453
|
-
group:
|
|
467
|
+
group: groupLabel,
|
|
454
468
|
name: "\uB124\uC774\uBC0D \uCEE8\uBCA4\uC158",
|
|
455
469
|
status: "info",
|
|
456
470
|
value: `${naming.convention} (${naming.counts[naming.convention]}/${naming.decisiveTotal} \uD30C\uC77C, \uBBF8\uAE30\uB85D)`,
|
|
457
471
|
hint: `config.json \uC5D0 \uAE30\uB85D\uD558\uB824\uBA74: awl config set namingConvention ${naming.convention}`
|
|
458
472
|
});
|
|
459
473
|
} else if (naming.reason === "mixed") {
|
|
460
|
-
checks.push({ group:
|
|
474
|
+
checks.push({ group: groupLabel, name: "\uB124\uC774\uBC0D \uCEE8\uBCA4\uC158", status: "info", value: "\uD63C\uC7AC" });
|
|
461
475
|
} else {
|
|
462
476
|
checks.push({
|
|
463
|
-
group:
|
|
477
|
+
group: groupLabel,
|
|
464
478
|
name: "\uB124\uC774\uBC0D \uCEE8\uBCA4\uC158",
|
|
465
479
|
status: "info",
|
|
466
480
|
value: "\uD310\uB2E8 \uBCF4\uB958 (\uD30C\uC77C \uBD80\uC871)"
|
|
@@ -470,16 +484,16 @@ async function collectProject(checks, projectRoot, versionResult) {
|
|
|
470
484
|
const sizeReport = computeFileSizeOutliers(countFileLines(projectRoot));
|
|
471
485
|
if (sizeReport.threshold === null) {
|
|
472
486
|
checks.push({
|
|
473
|
-
group:
|
|
487
|
+
group: groupLabel,
|
|
474
488
|
name: "\uD30C\uC77C \uD06C\uAE30",
|
|
475
489
|
status: "info",
|
|
476
490
|
value: "\uD310\uB2E8 \uBCF4\uB958 (\uD30C\uC77C \uBD80\uC871)"
|
|
477
491
|
});
|
|
478
492
|
} else if (sizeReport.outliers.length === 0) {
|
|
479
|
-
checks.push({ group:
|
|
493
|
+
checks.push({ group: groupLabel, name: "\uD30C\uC77C \uD06C\uAE30", status: "ok", value: "\uC774\uC0C1\uCE58 \uC5C6\uC74C" });
|
|
480
494
|
} else {
|
|
481
495
|
checks.push({
|
|
482
|
-
group:
|
|
496
|
+
group: groupLabel,
|
|
483
497
|
name: "\uD30C\uC77C \uD06C\uAE30",
|
|
484
498
|
status: "warn",
|
|
485
499
|
value: `\uC774\uC0C1\uCE58 ${sizeReport.outliers.length}\uAC1C (\uC784\uACC4\uAC12 ${Math.round(sizeReport.threshold)}\uC904)`,
|
|
@@ -492,7 +506,7 @@ async function collectProject(checks, projectRoot, versionResult) {
|
|
|
492
506
|
if (installed !== null) {
|
|
493
507
|
const projectMismatch = findMismatch(versionResult, "project-vs-engine");
|
|
494
508
|
checks.push({
|
|
495
|
-
group:
|
|
509
|
+
group: groupLabel,
|
|
496
510
|
name: "\uC5D4\uC9C4 \uBC84\uC804 \uC77C\uCE58",
|
|
497
511
|
status: projectMismatch ? "warn" : "ok",
|
|
498
512
|
value: projectMismatch ? `config ${raw.engineVersion} / \uC124\uCE58 ${installed}` : raw.engineVersion,
|
|
@@ -506,7 +520,7 @@ async function collectProject(checks, projectRoot, versionResult) {
|
|
|
506
520
|
const first = tokenize(spec.cmd)[0] ?? "";
|
|
507
521
|
if (!first) {
|
|
508
522
|
checks.push({
|
|
509
|
-
group:
|
|
523
|
+
group: groupLabel,
|
|
510
524
|
name: `\uAC80\uC99D: ${vname}`,
|
|
511
525
|
status: "warn",
|
|
512
526
|
value: "\uBA85\uB839 \uBE44\uC5B4 \uC788\uC74C"
|
|
@@ -516,7 +530,7 @@ async function collectProject(checks, projectRoot, versionResult) {
|
|
|
516
530
|
const cwd = spec.cwd ? path.isAbsolute(spec.cwd) ? spec.cwd : path.join(projectRoot, spec.cwd) : void 0;
|
|
517
531
|
if (cwd && !isDirectory(cwd)) {
|
|
518
532
|
checks.push({
|
|
519
|
-
group:
|
|
533
|
+
group: groupLabel,
|
|
520
534
|
name: `\uAC80\uC99D: ${vname}`,
|
|
521
535
|
status: "missing",
|
|
522
536
|
value: "cwd \uC5C6\uC74C",
|
|
@@ -527,7 +541,7 @@ async function collectProject(checks, projectRoot, versionResult) {
|
|
|
527
541
|
try {
|
|
528
542
|
await run({ cmd: first, args: ["--version"], cwd, timeoutMs: 3e3 });
|
|
529
543
|
checks.push({
|
|
530
|
-
group:
|
|
544
|
+
group: groupLabel,
|
|
531
545
|
name: `\uAC80\uC99D: ${vname}`,
|
|
532
546
|
status: "ok",
|
|
533
547
|
value: `${first} \uC2E4\uD589 \uAC00\uB2A5`
|
|
@@ -535,7 +549,7 @@ async function collectProject(checks, projectRoot, versionResult) {
|
|
|
535
549
|
} catch (e) {
|
|
536
550
|
if (e instanceof CommandNotFoundError) {
|
|
537
551
|
checks.push({
|
|
538
|
-
group:
|
|
552
|
+
group: groupLabel,
|
|
539
553
|
name: `\uAC80\uC99D: ${vname}`,
|
|
540
554
|
status: "missing",
|
|
541
555
|
value: "\uBA85\uB839 \uC5C6\uC74C",
|
|
@@ -543,7 +557,7 @@ async function collectProject(checks, projectRoot, versionResult) {
|
|
|
543
557
|
});
|
|
544
558
|
} else {
|
|
545
559
|
checks.push({
|
|
546
|
-
group:
|
|
560
|
+
group: groupLabel,
|
|
547
561
|
name: `\uAC80\uC99D: ${vname}`,
|
|
548
562
|
status: "warn",
|
|
549
563
|
value: "\uD655\uC778 \uC2E4\uD328",
|
|
@@ -555,7 +569,7 @@ async function collectProject(checks, projectRoot, versionResult) {
|
|
|
555
569
|
const statePath = path.join(projectRoot, ".awl", "state.json");
|
|
556
570
|
if (!exists(statePath)) {
|
|
557
571
|
checks.push({
|
|
558
|
-
group:
|
|
572
|
+
group: groupLabel,
|
|
559
573
|
name: "state.json",
|
|
560
574
|
status: "info",
|
|
561
575
|
value: "\uC5C6\uC74C (\uC544\uC9C1 \uC2DC\uC791 \uC804)"
|
|
@@ -565,9 +579,9 @@ async function collectProject(checks, projectRoot, versionResult) {
|
|
|
565
579
|
if (st && typeof st === "object") {
|
|
566
580
|
const o = st;
|
|
567
581
|
const pos = typeof o.phase === "string" && o.phase || typeof o.step === "string" && o.step || typeof o.position === "string" && o.position || "\uC788\uC74C";
|
|
568
|
-
checks.push({ group:
|
|
582
|
+
checks.push({ group: groupLabel, name: "state.json", status: "ok", value: String(pos) });
|
|
569
583
|
} else {
|
|
570
|
-
checks.push({ group:
|
|
584
|
+
checks.push({ group: groupLabel, name: "state.json", status: "warn", value: "\uD615\uC2DD \uC624\uB958" });
|
|
571
585
|
}
|
|
572
586
|
let stateBytes = null;
|
|
573
587
|
try {
|
|
@@ -577,7 +591,7 @@ async function collectProject(checks, projectRoot, versionResult) {
|
|
|
577
591
|
}
|
|
578
592
|
if (stateBytes !== null && stateBytes > STATE_SIZE_WARN_BYTES) {
|
|
579
593
|
checks.push({
|
|
580
|
-
group:
|
|
594
|
+
group: groupLabel,
|
|
581
595
|
name: "state.json \uD06C\uAE30",
|
|
582
596
|
status: "warn",
|
|
583
597
|
value: `${(stateBytes / (1024 * 1024)).toFixed(1)}MB`,
|
|
@@ -594,7 +608,7 @@ async function collectProject(checks, projectRoot, versionResult) {
|
|
|
594
608
|
if (leftoverWorktrees.length > 0) {
|
|
595
609
|
const shown = leftoverWorktrees.slice(0, 3).join(", ");
|
|
596
610
|
checks.push({
|
|
597
|
-
group:
|
|
611
|
+
group: groupLabel,
|
|
598
612
|
name: "\uC6CC\uD06C\uD2B8\uB9AC \uC794\uC874",
|
|
599
613
|
status: "warn",
|
|
600
614
|
value: `${leftoverWorktrees.length}\uAC1C`,
|
|
@@ -611,7 +625,7 @@ async function collectProject(checks, projectRoot, versionResult) {
|
|
|
611
625
|
const hasCommits = await gitHasCommits(projectRoot);
|
|
612
626
|
if (detectRecordTrailGap({ hasCommits, activeWorkitem, gateAttemptRecords })) {
|
|
613
627
|
checks.push({
|
|
614
|
-
group:
|
|
628
|
+
group: groupLabel,
|
|
615
629
|
name: "record \uD2B8\uB808\uC77C",
|
|
616
630
|
status: "warn",
|
|
617
631
|
value: "\uACF5\uBC31 (\uD65C\uC131 \uC6CC\uD06C\uC544\uC774\uD15C \uC5C6\uC774 \uCEE4\uBC0B \uC774\uB825)",
|
|
@@ -632,7 +646,7 @@ async function collectProject(checks, projectRoot, versionResult) {
|
|
|
632
646
|
const fmt = (iso) => iso ? iso.slice(0, 16).replace("T", " ") : "\uC5C6\uC74C";
|
|
633
647
|
const lockNote = lock ? ` \xB7 \uB2E4\uB978 \uC138\uC158\uC774 state \uC4F0\uB294 \uC911(${lock.token})` : "";
|
|
634
648
|
checks.push({
|
|
635
|
-
group:
|
|
649
|
+
group: groupLabel,
|
|
636
650
|
name: "\uCD5C\uADFC \uD65C\uB3D9",
|
|
637
651
|
status: lock ? "warn" : "info",
|
|
638
652
|
value: `\uAE30\uB85D ${fmt(lastAt)} \xB7 state ${fmt(stateMtime)}${lockNote}`,
|
|
@@ -7,32 +7,34 @@ import {
|
|
|
7
7
|
isCheckPassed,
|
|
8
8
|
runVerifyChecks,
|
|
9
9
|
writeVerifyBaseline
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-YC23SNVC.js";
|
|
11
11
|
import {
|
|
12
12
|
gitBranch
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-I5SS6HFR.js";
|
|
14
14
|
import {
|
|
15
15
|
parseRuleFile
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-MBEY33YA.js";
|
|
17
17
|
import {
|
|
18
18
|
nextGotchaId
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-E6MULIMV.js";
|
|
20
20
|
import {
|
|
21
21
|
loadProjectName
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-QVP5DUND.js";
|
|
23
23
|
import {
|
|
24
24
|
loadState,
|
|
25
25
|
migrateState,
|
|
26
26
|
writeState
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-UJ6CK5HC.js";
|
|
28
28
|
import {
|
|
29
29
|
loadConfig,
|
|
30
|
+
multiProjectFooter,
|
|
30
31
|
resolveProjectRoot,
|
|
32
|
+
resolveProjectScope,
|
|
31
33
|
run
|
|
32
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-JR6MKCC4.js";
|
|
33
35
|
import {
|
|
34
36
|
installClaudeSkill
|
|
35
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-7CPPZX6X.js";
|
|
36
38
|
import {
|
|
37
39
|
caps,
|
|
38
40
|
feedback,
|
|
@@ -42,7 +44,7 @@ import {
|
|
|
42
44
|
makeTokens,
|
|
43
45
|
sectionBox,
|
|
44
46
|
signal
|
|
45
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-UNAASSQ4.js";
|
|
46
48
|
|
|
47
49
|
// src/commands/work.ts
|
|
48
50
|
import fs2 from "fs";
|
|
@@ -649,6 +651,32 @@ function requireRoot() {
|
|
|
649
651
|
return root;
|
|
650
652
|
}
|
|
651
653
|
function runWorkList(opts) {
|
|
654
|
+
const scope = resolveProjectScope();
|
|
655
|
+
if (scope.mode === "multi" && scope.projects) {
|
|
656
|
+
const c = caps();
|
|
657
|
+
const color = makeColors(c.color);
|
|
658
|
+
const perProject = scope.projects.map((p) => ({
|
|
659
|
+
name: p.name,
|
|
660
|
+
path: p.path,
|
|
661
|
+
list: summarizeWorkitems(loadState(p.path))
|
|
662
|
+
}));
|
|
663
|
+
if (opts.json) {
|
|
664
|
+
process.stdout.write(
|
|
665
|
+
`${JSON.stringify({ multiProject: true, projects: perProject }, null, 2)}
|
|
666
|
+
`
|
|
667
|
+
);
|
|
668
|
+
return;
|
|
669
|
+
}
|
|
670
|
+
const blocks = perProject.map(
|
|
671
|
+
({ name, path: path3, list: list2 }) => `${color.bold(`\uD504\uB85C\uC81D\uD2B8: ${name} (${path3})`)}
|
|
672
|
+
${renderWorkList(list2, c)}`
|
|
673
|
+
);
|
|
674
|
+
process.stdout.write(`${blocks.join("\n\n")}
|
|
675
|
+
`);
|
|
676
|
+
process.stdout.write(`${multiProjectFooter(scope.projects, "awl work list", c)}
|
|
677
|
+
`);
|
|
678
|
+
return;
|
|
679
|
+
}
|
|
652
680
|
const root = requireRoot();
|
|
653
681
|
const list = summarizeWorkitems(loadState(root));
|
|
654
682
|
if (opts.json) {
|
|
@@ -5,25 +5,25 @@ import {
|
|
|
5
5
|
runWorkNew,
|
|
6
6
|
sanitizeForGit,
|
|
7
7
|
worktreeDirtyTracked
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-I5WWLNA6.js";
|
|
9
9
|
import {
|
|
10
10
|
loadProjectName
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-QVP5DUND.js";
|
|
12
12
|
import {
|
|
13
13
|
loadState,
|
|
14
14
|
writeState
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-UJ6CK5HC.js";
|
|
16
16
|
import {
|
|
17
17
|
resolveProjectRoot,
|
|
18
18
|
run
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-JR6MKCC4.js";
|
|
20
20
|
import {
|
|
21
21
|
caps,
|
|
22
22
|
feedback,
|
|
23
23
|
makeColors,
|
|
24
24
|
sectionBox,
|
|
25
25
|
signal
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-UNAASSQ4.js";
|
|
27
27
|
|
|
28
28
|
// src/commands/lane.ts
|
|
29
29
|
import fs from "fs";
|