@outerlayer/cli 0.4.1 → 0.5.1

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 (50) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/{build-TZUUTRGH.js → build-PAEKVYVK.js} +1 -1
  3. package/dist/build-info.json +1 -1
  4. package/dist/{check-7MFH6HNC.js → check-4Q33B5ZE.js} +15 -13
  5. package/dist/{chunk-5Y3QQRUH.js → chunk-3DD6AOWC.js} +37 -0
  6. package/dist/{chunk-RFUPN6KX.js → chunk-CHLVJNTE.js} +5 -5
  7. package/dist/{chunk-SY4GK4SP.js → chunk-D2KWEAN6.js} +1 -1
  8. package/dist/{chunk-LT5TZHYH.js → chunk-EGABNHZG.js} +3 -3
  9. package/dist/{chunk-4C4THABW.js → chunk-EX6M5JPR.js} +31 -29
  10. package/dist/{chunk-QY22NZUW.js → chunk-F4NU4H3V.js} +401 -20
  11. package/dist/{chunk-TWNWNS2Q.js → chunk-H4CK2YK4.js} +8 -8
  12. package/dist/{chunk-7WERLFVR.js → chunk-JLDZTG3A.js} +1 -1
  13. package/dist/{chunk-Y7KJLXYN.js → chunk-OR6AEEDO.js} +3 -3
  14. package/dist/{chunk-W5FVUZXV.js → chunk-RMAZ2NWA.js} +2 -2
  15. package/dist/{chunk-3TFPDVTI.js → chunk-RTXKYLCA.js} +2 -2
  16. package/dist/{chunk-HZRNMGLF.js → chunk-T52PKE2Y.js} +144 -127
  17. package/dist/chunk-UGP76IZ5.js +34 -0
  18. package/dist/{chunk-DM3VFDS3.js → chunk-UWH5DSUP.js} +32 -20
  19. package/dist/{chunk-YFHIIH4B.js → chunk-W7UTFZDH.js} +2 -2
  20. package/dist/{chunk-WFJ65NUD.js → chunk-WOBNRVQT.js} +1 -1
  21. package/dist/chunk-YYYRBYWG.js +32 -0
  22. package/dist/{chunk-ZNA27WEV.js → chunk-Z62HNKEJ.js} +3 -3
  23. package/dist/{chunk-LYCDNMOH.js → chunk-ZOC7JSYC.js} +1 -1
  24. package/dist/{chunk-QDQEUVUF.js → chunk-ZXBITXTS.js} +1 -1
  25. package/dist/{cli-W62AFRSW.js → cli-LHSUYYMI.js} +56 -51
  26. package/dist/{config-XVJYZ4IQ.js → config-HL2AIR3K.js} +1 -1
  27. package/dist/{connect-cmd-ZTJONP37.js → connect-cmd-OJBFHZWP.js} +4 -4
  28. package/dist/{dist-44CQVWGT.js → dist-WDV7U7UJ.js} +1 -1
  29. package/dist/{doctor-ZLGZYMDK.js → doctor-MOA3RIEP.js} +23 -9
  30. package/dist/{emit-artifact-cmd-AKZP7TMF.js → emit-artifact-cmd-FDWYKURA.js} +4 -4
  31. package/dist/{emit-criteria-cmd-7MXQVCKD.js → emit-criteria-cmd-OCXHLK34.js} +1 -1
  32. package/dist/{emit-finding-cmd-N2FTGCVC.js → emit-finding-cmd-POW7PKIA.js} +1 -1
  33. package/dist/{emit-result-cmd-4CPDBMN2.js → emit-result-cmd-ID35SH53.js} +4 -4
  34. package/dist/index.js +1 -1
  35. package/dist/{init-XXEKWZQP.js → init-2IPOIXJV.js} +8 -8
  36. package/dist/{init-55Y4LHWF.js → init-FYDJAKTM.js} +7 -7
  37. package/dist/{init-cmd-WLST2F7G.js → init-cmd-KLIDRVXQ.js} +6 -6
  38. package/dist/{loop-JFIBP4B7.js → loop-NEBUGD2Q.js} +12 -10
  39. package/dist/{machine-ZBPT2J3R.js → machine-ECU3QCZD.js} +6 -6
  40. package/dist/record-C43U4PKS.js +7 -0
  41. package/dist/{status-UJXWZRN5.js → status-CLATHCTQ.js} +27 -9
  42. package/dist/{sync-cmd-4G4A7EVN.js → sync-cmd-SWQ5KLPL.js} +4 -4
  43. package/dist/{watch-7SKJKGAA.js → watch-3YW6Z3DQ.js} +4 -4
  44. package/dist/{work-claim-cmd-5F7VZ42N.js → work-claim-cmd-3OPWA77E.js} +6 -6
  45. package/dist/{work-cmd-QAUZ7MTD.js → work-cmd-NUR4CAG6.js} +3 -3
  46. package/dist/{work-comment-cmd-BNCSBTLH.js → work-comment-cmd-6TTTYGHM.js} +3 -3
  47. package/dist/{work-open-pr-cmd-VFYZHIIW.js → work-open-pr-cmd-KZ7QQFLD.js} +4 -4
  48. package/dist/{work-pr-cmd-PV32ZLSI.js → work-pr-cmd-QNUBE6IQ.js} +2 -2
  49. package/package.json +1 -1
  50. package/skill-pack/maintained/emitting-evidence/SKILL.md +4 -4
@@ -1,26 +1,28 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { RunnerStartError, listJobFiles, probeCredentials, requestStop, runnerProcessState, start, tick, watchTick } from './chunk-QY22NZUW.js';
4
- import './chunk-DM3VFDS3.js';
5
- import './chunk-QDQEUVUF.js';
3
+ export { RunnerStartError, listJobFiles, probeCredentials, requestStop, runnerProcessState, start, tick, watchTick } from './chunk-F4NU4H3V.js';
4
+ import './chunk-UWH5DSUP.js';
5
+ import './chunk-ZXBITXTS.js';
6
+ import './chunk-UGP76IZ5.js';
6
7
  import './chunk-ABIWDUMS.js';
7
8
  import './chunk-YYYXRJUW.js';
8
9
  import './chunk-CBPPJSAR.js';
9
- import './chunk-LYCDNMOH.js';
10
+ import './chunk-YYYRBYWG.js';
11
+ import './chunk-ZOC7JSYC.js';
10
12
  import './chunk-TBT347UY.js';
11
- import './chunk-HZRNMGLF.js';
12
- import './chunk-ZNA27WEV.js';
13
+ import './chunk-T52PKE2Y.js';
14
+ import './chunk-Z62HNKEJ.js';
13
15
  import './chunk-N5FOE5PS.js';
14
16
  import './chunk-OGFGZQA3.js';
15
17
  import './chunk-774HEQL6.js';
16
18
  import './chunk-QOZKPLVJ.js';
17
19
  import './chunk-W4SQCOZU.js';
18
20
  import './chunk-B2G7JHHB.js';
19
- import './chunk-W5FVUZXV.js';
21
+ import './chunk-RMAZ2NWA.js';
20
22
  import './chunk-BFESLKPP.js';
21
- import './chunk-WFJ65NUD.js';
22
- import './chunk-4C4THABW.js';
23
- import './chunk-5Y3QQRUH.js';
23
+ import './chunk-WOBNRVQT.js';
24
+ import './chunk-EX6M5JPR.js';
25
+ import './chunk-3DD6AOWC.js';
24
26
  import './chunk-F6GFZXZ3.js';
25
27
  import './chunk-AUFG23AA.js';
26
28
  import './chunk-WZBHBH3J.js';
@@ -1,18 +1,18 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { describeMachineDocker, detectMachine, microVmArchSupported, microVmAssetsPinned, reachDockerStep, supportsContainerBuilds, supportsMicroVmBuilds } from './chunk-3TFPDVTI.js';
4
- import './chunk-HZRNMGLF.js';
5
- import './chunk-ZNA27WEV.js';
3
+ export { describeMachineDocker, detectMachine, microVmArchSupported, microVmAssetsPinned, reachDockerStep, supportsContainerBuilds, supportsMicroVmBuilds } from './chunk-RTXKYLCA.js';
4
+ import './chunk-T52PKE2Y.js';
5
+ import './chunk-Z62HNKEJ.js';
6
6
  import './chunk-N5FOE5PS.js';
7
7
  import './chunk-OGFGZQA3.js';
8
8
  import './chunk-774HEQL6.js';
9
9
  import './chunk-QOZKPLVJ.js';
10
10
  import './chunk-W4SQCOZU.js';
11
11
  import './chunk-B2G7JHHB.js';
12
- import './chunk-W5FVUZXV.js';
12
+ import './chunk-RMAZ2NWA.js';
13
13
  import './chunk-BFESLKPP.js';
14
- import './chunk-WFJ65NUD.js';
15
- import './chunk-4C4THABW.js';
14
+ import './chunk-WOBNRVQT.js';
15
+ import './chunk-EX6M5JPR.js';
16
16
  import './chunk-F6GFZXZ3.js';
17
17
  import './chunk-AUFG23AA.js';
18
18
  import './chunk-WZBHBH3J.js';
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+ import { createRequire } from 'node:module';
3
+ export { readHousekeepingRecord, writeHousekeepingRecord } from './chunk-UGP76IZ5.js';
4
+ import './chunk-ZM2IMMYN.js';
5
+ import './chunk-Z5GEFMRW.js';
6
+
7
+ createRequire(import.meta.url);
@@ -1,21 +1,22 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { LEASE_SECONDS, RENEW_INTERVAL_SECONDS } from './chunk-DM3VFDS3.js';
3
+ import { LEASE_SECONDS, RENEW_INTERVAL_SECONDS } from './chunk-UWH5DSUP.js';
4
4
  import './chunk-CBPPJSAR.js';
5
- import './chunk-LYCDNMOH.js';
6
- import { formatDuration, formatClock, relativeToRunner } from './chunk-HZRNMGLF.js';
7
- import './chunk-ZNA27WEV.js';
5
+ import { formatBytes } from './chunk-YYYRBYWG.js';
6
+ import './chunk-ZOC7JSYC.js';
7
+ import { formatDuration, formatClock, relativeToRunner } from './chunk-T52PKE2Y.js';
8
+ import './chunk-Z62HNKEJ.js';
8
9
  import './chunk-N5FOE5PS.js';
9
10
  import './chunk-OGFGZQA3.js';
10
11
  import './chunk-774HEQL6.js';
11
12
  import './chunk-QOZKPLVJ.js';
12
13
  import './chunk-W4SQCOZU.js';
13
14
  import './chunk-B2G7JHHB.js';
14
- import './chunk-W5FVUZXV.js';
15
+ import './chunk-RMAZ2NWA.js';
15
16
  import './chunk-BFESLKPP.js';
16
- import './chunk-WFJ65NUD.js';
17
- import './chunk-4C4THABW.js';
18
- import './chunk-5Y3QQRUH.js';
17
+ import './chunk-WOBNRVQT.js';
18
+ import './chunk-EX6M5JPR.js';
19
+ import './chunk-3DD6AOWC.js';
19
20
  import './chunk-F6GFZXZ3.js';
20
21
  import './chunk-AUFG23AA.js';
21
22
  import './chunk-WZBHBH3J.js';
@@ -55,12 +56,29 @@ function leaseCell(job, now) {
55
56
  const untilNext = RENEW_INTERVAL_SECONDS * 1e3 - sinceMs;
56
57
  return untilNext <= 0 ? "renew due" : `renews ${formatDuration(untilNext)}`;
57
58
  }
59
+ function housekeepingLines(input) {
60
+ const record = input.housekeeping;
61
+ if (record === void 0) return [];
62
+ const lines = [];
63
+ if (record.lastRunAt !== void 0) {
64
+ const ago = formatDuration(input.now.getTime() - new Date(record.lastRunAt).getTime());
65
+ lines.push(`housekeeping last ran ${ago} ago (${formatClock(new Date(record.lastRunAt), input.now)}), freed ${formatBytes(record.freedBytes ?? 0)}`);
66
+ }
67
+ if (record.holding !== void 0 && input.process.state === "running") {
68
+ lines.push(
69
+ `holding off new work for disk: ${formatBytes(record.holding.free)} free, ${formatBytes(record.holding.needed)} needed (since ${formatClock(new Date(record.holding.since), input.now)})`
70
+ );
71
+ }
72
+ return lines;
73
+ }
58
74
  function renderStatus(input) {
59
75
  const lines = [];
60
76
  const running = input.jobs.filter(({ job }) => isUnfinished(job));
61
77
  const finished = input.jobs.filter(({ job }) => !isUnfinished(job)).sort((a, b) => (b.job.endedAt ?? "").localeCompare(a.job.endedAt ?? "")).slice(0, 20);
62
78
  const header = input.process.state === "running" ? `runner ${input.host} running, pid ${input.process.pid} \xB7 config ${input.configPath} \xB7 ${running.length} of ${input.concurrency} slots in use` : input.process.state === "stale" ? `runner ${input.host} not running (stale pid file for pid ${input.process.pid}) \xB7 config ${input.configPath}` : `runner ${input.host} not running (pid file absent) \xB7 config ${input.configPath}`;
63
- lines.push(header, "");
79
+ lines.push(header);
80
+ lines.push(...housekeepingLines(input));
81
+ lines.push("");
64
82
  if (running.length === 0) {
65
83
  lines.push("No running jobs.");
66
84
  } else {
@@ -1,14 +1,14 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { CHUNK_PART_TARGET_BYTES, RETRYABLE_STATUSES, SyncConfigError, SyncTransportError, isLoopbackUrl, resolveTier, runSync } from './chunk-LT5TZHYH.js';
4
- export { detectCi } from './chunk-LYCDNMOH.js';
3
+ export { CHUNK_PART_TARGET_BYTES, RETRYABLE_STATUSES, SyncConfigError, SyncTransportError, isLoopbackUrl, resolveTier, runSync } from './chunk-EGABNHZG.js';
4
+ export { detectCi } from './chunk-ZOC7JSYC.js';
5
5
  import './chunk-BCJNHMZT.js';
6
6
  import './chunk-TBT347UY.js';
7
7
  import './chunk-F7CU5ABH.js';
8
8
  import './chunk-BKO6JEZI.js';
9
9
  import './chunk-BFESLKPP.js';
10
- import './chunk-WFJ65NUD.js';
11
- import './chunk-4C4THABW.js';
10
+ import './chunk-WOBNRVQT.js';
11
+ import './chunk-EX6M5JPR.js';
12
12
  import './chunk-YRYMNBGQ.js';
13
13
  import './chunk-DVDEBNQJ.js';
14
14
  import './chunk-WZBHBH3J.js';
@@ -1,14 +1,14 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { LiveUploader } from './chunk-LT5TZHYH.js';
4
- import './chunk-LYCDNMOH.js';
3
+ import { LiveUploader } from './chunk-EGABNHZG.js';
4
+ import './chunk-ZOC7JSYC.js';
5
5
  import './chunk-BCJNHMZT.js';
6
6
  import './chunk-TBT347UY.js';
7
7
  import './chunk-F7CU5ABH.js';
8
8
  import './chunk-BKO6JEZI.js';
9
9
  import './chunk-BFESLKPP.js';
10
- import './chunk-WFJ65NUD.js';
11
- import { StatuslineAggregator, CaptureDaemon } from './chunk-4C4THABW.js';
10
+ import './chunk-WOBNRVQT.js';
11
+ import { StatuslineAggregator, CaptureDaemon } from './chunk-EX6M5JPR.js';
12
12
  import './chunk-YRYMNBGQ.js';
13
13
  import './chunk-DVDEBNQJ.js';
14
14
  import './chunk-WZBHBH3J.js';
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { RUNNER_PROTOCOL } from './chunk-QDQEUVUF.js';
4
- import { resolveCredentials, WorkCommandError, parsePositiveInt, postJson, resolveRepository, findLiveItem } from './chunk-W5FVUZXV.js';
5
- export { WorkCommandError } from './chunk-W5FVUZXV.js';
3
+ import { RUNNER_PROTOCOL } from './chunk-ZXBITXTS.js';
4
+ import { resolveCredentials, WorkCommandError, parsePositiveInt, postJson, resolveRepository, findLiveItem } from './chunk-RMAZ2NWA.js';
5
+ export { WorkCommandError } from './chunk-RMAZ2NWA.js';
6
6
  import './chunk-BFESLKPP.js';
7
- import './chunk-WFJ65NUD.js';
8
- import './chunk-4C4THABW.js';
9
- import { defaultRunnerConfigPath } from './chunk-5Y3QQRUH.js';
7
+ import './chunk-WOBNRVQT.js';
8
+ import './chunk-EX6M5JPR.js';
9
+ import { defaultRunnerConfigPath } from './chunk-3DD6AOWC.js';
10
10
  import './chunk-F6GFZXZ3.js';
11
11
  import './chunk-AUFG23AA.js';
12
12
  import './chunk-WZBHBH3J.js';
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { WorkCommandError, findLiveItem, getJson, parsePositiveInt, postJson, resolveCredentials, resolveRepository, runWorkBuild, runWorkLinkSession, runWorkList, runWorkRemove, runWorkStatus } from './chunk-W5FVUZXV.js';
3
+ export { WorkCommandError, findLiveItem, getJson, parsePositiveInt, postJson, resolveCredentials, resolveRepository, runWorkBuild, runWorkLinkSession, runWorkList, runWorkRemove, runWorkStatus } from './chunk-RMAZ2NWA.js';
4
4
  import './chunk-BFESLKPP.js';
5
- import './chunk-WFJ65NUD.js';
6
- import './chunk-4C4THABW.js';
5
+ import './chunk-WOBNRVQT.js';
6
+ import './chunk-EX6M5JPR.js';
7
7
  import './chunk-WZBHBH3J.js';
8
8
  import './chunk-BCLJSQCV.js';
9
9
  import './chunk-BOLTI6LR.js';
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { resolveCredentials, postJson, getJson } from './chunk-W5FVUZXV.js';
3
+ import { resolveCredentials, postJson, getJson } from './chunk-RMAZ2NWA.js';
4
4
  import { detectActiveSession } from './chunk-BFESLKPP.js';
5
- import { sanitizeTerminal } from './chunk-WFJ65NUD.js';
6
- import { resolveRepoIdentity } from './chunk-4C4THABW.js';
5
+ import { sanitizeTerminal } from './chunk-WOBNRVQT.js';
6
+ import { resolveRepoIdentity } from './chunk-EX6M5JPR.js';
7
7
  import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
8
8
  import { defaultFetch } from './chunk-BCLJSQCV.js';
9
9
  import './chunk-BOLTI6LR.js';
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { runWorkPr, WorkPrCommandError } from './chunk-7WERLFVR.js';
4
- import { resolveCredentials } from './chunk-W5FVUZXV.js';
3
+ import { runWorkPr, WorkPrCommandError } from './chunk-JLDZTG3A.js';
4
+ import { resolveCredentials } from './chunk-RMAZ2NWA.js';
5
5
  import './chunk-BFESLKPP.js';
6
- import './chunk-WFJ65NUD.js';
7
- import './chunk-4C4THABW.js';
6
+ import './chunk-WOBNRVQT.js';
7
+ import './chunk-EX6M5JPR.js';
8
8
  import './chunk-WZBHBH3J.js';
9
9
  import { defaultFetch } from './chunk-BCLJSQCV.js';
10
10
  import './chunk-BOLTI6LR.js';
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { WorkPrCommandError, runWorkPr } from './chunk-7WERLFVR.js';
3
+ export { WorkPrCommandError, runWorkPr } from './chunk-JLDZTG3A.js';
4
4
  import './chunk-BFESLKPP.js';
5
- import './chunk-4C4THABW.js';
5
+ import './chunk-EX6M5JPR.js';
6
6
  import './chunk-WZBHBH3J.js';
7
7
  import './chunk-BCLJSQCV.js';
8
8
  import './chunk-BOLTI6LR.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@outerlayer/cli",
3
- "version": "0.4.1",
3
+ "version": "0.5.1",
4
4
  "description": "OuterLayer CLI — commands: init, connect, doctor, login, logout, sync, daemon (alias: watch), emit, work, runner, hooks, mcp, import, context. Capture and sync coding-agent sessions, and record proof of factory work.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Magu Studios, Inc.",
@@ -92,12 +92,12 @@ come from the CI environment). From a plain machine it anchors through the
92
92
  git checkout, or pass `--pr <n>` explicitly. If there is nothing to attach
93
93
  to, the command refuses — emit from the work, not from nowhere.
94
94
 
95
- ## Report artifacts the default checks read
95
+ ## Report artifacts bound with `--for`
96
96
 
97
- Two report artifacts feed the default checks. Bind each to its check name with `--for`:
97
+ Two report artifacts have a `--for` name. Bind each with `--for`:
98
98
 
99
- - `--for code-review-ran` for the review report, an HTML file.
100
- - `--for acceptance-criteria` for the judge's report on each criterion, an HTML file. Emit it only when the issue has criteria.
99
+ - `--for code-review-ran` for the review report, an HTML file. The default `code-review-ran` check reads it.
100
+ - `--for acceptance-criteria` for the judge's report on each criterion, an HTML file. No check requires it. The item page links it at the top of its Criteria tab for the reviewer. Emit it only when the item has recorded criteria.
101
101
 
102
102
  outerlayer emit artifact review.html --caption "Review of the change and what it found" --for code-review-ran
103
103