@outerlayer/cli 0.33.0-next.20261023002325 → 0.33.0-next.20261023030517
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/README.md +9 -3
- package/dist/{agent-setup-55ZDEXCS.js → agent-setup-APFM4MZ4.js} +10 -10
- package/dist/{artifact-link-cmd-6FF2Y6QI.js → artifact-link-cmd-IHHMU4EA.js} +2 -2
- package/dist/{build-G4GUF6LT.js → build-SEAQVLD5.js} +2 -2
- package/dist/build-disk-55M4ZMDX.js +16 -0
- package/dist/build-info.json +1 -1
- package/dist/{builder-3CUKTVSY.js → builder-DQZCPB7J.js} +4 -5
- package/dist/{check-64FD5G3X.js → check-AEMFDR55.js} +30 -32
- package/dist/{chunk-EUVE2EAE.js → chunk-2WZ66FXA.js} +3 -3
- package/dist/{chunk-BJQ25STI.js → chunk-35DSTT37.js} +4 -4
- package/dist/{chunk-Q2CMEQV7.js → chunk-4NKHOCTF.js} +3 -3
- package/dist/{chunk-VT4TTJPG.js → chunk-5FSVA3CO.js} +5 -5
- package/dist/{chunk-CANYZTD5.js → chunk-67KCGRKA.js} +44 -17
- package/dist/{chunk-HXA5GIHK.js → chunk-6ANIBEQ6.js} +6 -6
- package/dist/{chunk-AVTI3FL5.js → chunk-6ZLI652Y.js} +1 -1
- package/dist/{chunk-LYE3KB6L.js → chunk-7HZH5D7H.js} +2 -2
- package/dist/{chunk-6Z4SZHV2.js → chunk-A5FFANL7.js} +5 -5
- package/dist/{chunk-DGI66PGY.js → chunk-AXIK6F52.js} +39 -279
- package/dist/{chunk-QFQC5K4J.js → chunk-B6WW6AKO.js} +33 -21
- package/dist/{chunk-ULBNTSAD.js → chunk-C66Q2CLW.js} +2 -2
- package/dist/{chunk-UIUGTW5C.js → chunk-C7WGCI77.js} +2 -2
- package/dist/{chunk-B2JURP6A.js → chunk-CCOU4NXE.js} +2 -2
- package/dist/{chunk-SVDOA4W2.js → chunk-DHUHQPRQ.js} +7 -7
- package/dist/{chunk-EWVYQLD3.js → chunk-E4F7YE7P.js} +1 -1
- package/dist/chunk-ER6KQCVJ.js +18 -0
- package/dist/{chunk-JRZCRIEO.js → chunk-GFTWZSOW.js} +2887 -2567
- package/dist/{chunk-AU346ENF.js → chunk-HUBRTT2C.js} +4 -4
- package/dist/{chunk-QPWFVE3X.js → chunk-JB4R5IFJ.js} +2 -2
- package/dist/chunk-LHKWWEQZ.js +179 -0
- package/dist/{chunk-G63KT5I5.js → chunk-M24H6JQW.js} +1 -1
- package/dist/{chunk-XL2XWWU7.js → chunk-M3RYZRMH.js} +3 -3
- package/dist/{chunk-TGHBOXKJ.js → chunk-NE63JADS.js} +2 -2
- package/dist/{chunk-3DCB3GOV.js → chunk-ONUACB5C.js} +6 -4
- package/dist/{chunk-JHTJPQSL.js → chunk-PILHDNHX.js} +4 -4
- package/dist/{chunk-HJYBWJAS.js → chunk-PJI5D2XT.js} +2 -2
- package/dist/{chunk-LJG6EMLJ.js → chunk-PNIFQX73.js} +1 -1
- package/dist/{chunk-GFVDC5S3.js → chunk-QKEOAQ2W.js} +35 -4
- package/dist/{chunk-5DNCFOXA.js → chunk-QQXNS4G2.js} +1 -1
- package/dist/{chunk-OOCAF3ID.js → chunk-RLAKWXDK.js} +1 -1
- package/dist/{chunk-2N67C6IV.js → chunk-T4S2DVOA.js} +5 -5
- package/dist/{chunk-GFYEMCPP.js → chunk-T4TT76GG.js} +1 -1
- package/dist/{chunk-BKADJZ7F.js → chunk-UAJYWZ2F.js} +3 -3
- package/dist/{chunk-YERR22SY.js → chunk-UHFU3CBN.js} +1 -1
- package/dist/{chunk-E6CO3MJE.js → chunk-V7Q5OKN7.js} +12 -1
- package/dist/{chunk-2WMZPJVE.js → chunk-VJGQEASF.js} +4 -4
- package/dist/{chunk-NSPRS7WK.js → chunk-X37GC7DM.js} +1 -1
- package/dist/{chunk-LJUIG5K4.js → chunk-X62C7V4B.js} +13 -13
- package/dist/{chunk-DY7Y7UT4.js → chunk-XMPE5TT4.js} +2 -2
- package/dist/{chunk-JPG43G6Y.js → chunk-YXHKCHWG.js} +1 -1
- package/dist/{chunk-T5REPMNL.js → chunk-Z4GLZTDF.js} +2 -2
- package/dist/{claude-launcher-NTYHJUJM.js → claude-launcher-B55NWRH5.js} +5 -5
- package/dist/{cli-WKRURGHC.js → cli-5YT5EL2R.js} +147 -104
- package/dist/{command-WG54AUHK.js → command-DYLRDCGC.js} +21 -22
- package/dist/{config-LZSFW2O3.js → config-RRY7DIJG.js} +9 -2
- package/dist/{connect-cmd-P5GASVAF.js → connect-cmd-7C6W2SEP.js} +8 -8
- package/dist/{container-start-DQKFQ3CL.js → container-start-F7PBMTAL.js} +22 -23
- package/dist/{context-cleanup-BX5Y3AFL.js → context-cleanup-EKTPKJJT.js} +3 -3
- package/dist/{context-show-cmd-3EPJ7CJC.js → context-show-cmd-I5JC7EFH.js} +9 -9
- package/dist/{control-plane-launch-A3YCHQNQ.js → control-plane-launch-NOKM6CBH.js} +6 -6
- package/dist/{dist-ACTRIBVW.js → dist-LLYL5UCV.js} +2 -2
- package/dist/{docker-4ERXWTRW.js → docker-W7WWFZ3Q.js} +4 -5
- package/dist/{doctor-GRCEYJXA.js → doctor-LYOFFCQS.js} +29 -34
- package/dist/{emit-artifact-cmd-FDPJKGOO.js → emit-artifact-cmd-RO34UG7A.js} +13 -13
- package/dist/{emit-cmd-OX6LYS6I.js → emit-cmd-GY7Z26DY.js} +6 -6
- package/dist/{emit-criteria-cmd-3SVGCMJN.js → emit-criteria-cmd-Y36QCPAM.js} +10 -10
- package/dist/{emit-demo-cmd-JSVI56WY.js → emit-demo-cmd-YMWVF5U4.js} +105 -35
- package/dist/{emit-finding-cmd-TLJWBGQE.js → emit-finding-cmd-MH3ZWUNV.js} +10 -10
- package/dist/{emit-result-cmd-CJNVDV5V.js → emit-result-cmd-ZARZZZ3Y.js} +12 -12
- package/dist/{emit-step-cmd-347CZO7Y.js → emit-step-cmd-A6HQJDBY.js} +10 -10
- package/dist/{findings-cmd-LHTYEHYB.js → findings-cmd-OLLBWJXJ.js} +10 -10
- package/dist/{fleet-readiness-KGR5AC2J.js → fleet-readiness-VB5QSFSY.js} +8 -8
- package/dist/{governing-source-JZQZUTMA.js → governing-source-ZX7VXTOA.js} +13 -13
- package/dist/{hook-fast-6WDMNZG5.js → hook-fast-4RYMBFPO.js} +1 -1
- package/dist/index.js +4 -4
- package/dist/{init-OKJAI77M.js → init-BQCGL7UD.js} +21 -22
- package/dist/{init-WNO4NAO7.js → init-NCCMB2UE.js} +21 -22
- package/dist/{init-cmd-PFW4XTG7.js → init-cmd-OW2L5HTI.js} +18 -18
- package/dist/{init-update-X7YLZL6H.js → init-update-7LUMOECE.js} +17 -17
- package/dist/{install-GQUCHIGE.js → install-5BQ3TFBT.js} +9 -3
- package/dist/{layout-JGF7MJHG.js → layout-RGVPCX7Y.js} +4 -4
- package/dist/{login-browser-3RIZQJY2.js → login-browser-BC2Z5QKG.js} +2 -2
- package/dist/{loop-2SITCQ6H.js → loop-BU634Y6A.js} +30 -32
- package/dist/{machine-YHBCNRUO.js → machine-RI4KHRYP.js} +21 -22
- package/dist/{machine-skills-AGERT2HN.js → machine-skills-CS5HAQHF.js} +4 -4
- package/dist/{runner-env-QYE7KZFP.js → runner-env-QSLLOFNF.js} +10 -4
- package/dist/{runner-identity-FIHOECSH.js → runner-identity-DQAXW4DL.js} +4 -5
- package/dist/{runner-key-YUKU2MWK.js → runner-key-UWL475RU.js} +21 -22
- package/dist/{session-sender-7B3ZDWMC.js → session-sender-OGDUJ2KK.js} +13 -13
- package/dist/{spec-cmd-Q26NE22H.js → spec-cmd-WB4UOFPG.js} +11 -11
- package/dist/{starter-pack-UBEC5LTE.js → starter-pack-XHATFTO3.js} +5 -5
- package/dist/{status-VBQJMFEX.js → status-GFZFND6L.js} +26 -27
- package/dist/{sync-cmd-SSUYTMLJ.js → sync-cmd-GPZD2C45.js} +12 -12
- package/dist/{watch-L5NCO46E.js → watch-5I3GURXY.js} +12 -12
- package/dist/{work-claim-cmd-MFND6Z4S.js → work-claim-cmd-J52UVCAF.js} +17 -14
- package/dist/{work-cmd-W7WEHMQJ.js → work-cmd-PQZ5RYDB.js} +10 -10
- package/dist/{work-comment-cmd-SSUOGVDD.js → work-comment-cmd-WI6B3IOS.js} +10 -10
- package/dist/work-demo-cmd-3NDGSQKJ.js +62 -0
- package/dist/{work-logs-cmd-WPMWMDX6.js → work-logs-cmd-QCYZ5X5A.js} +10 -10
- package/dist/{work-open-pr-cmd-NO5YLOXD.js → work-open-pr-cmd-BRDF3ZKL.js} +11 -11
- package/dist/{work-pr-cmd-37B5KECR.js → work-pr-cmd-WY2TBAKW.js} +10 -10
- package/dist/work-proofs-cmd-R25HT6WP.js +111 -0
- package/dist/{work-stop-cmd-3BJLXUJ3.js → work-stop-cmd-C52JPZ4E.js} +10 -10
- package/package.json +1 -1
- package/skill-pack/maintained/outerlayer-amend/SKILL.md +36 -34
- package/skill-pack/maintained/outerlayer-amend/scripts/rerecord-demo.mjs +187 -0
- package/skill-pack/maintained/outerlayer-build/SKILL.md +7 -2
- package/skill-pack/maintained/outerlayer-build/references/agent-briefs.md +11 -2
- package/skill-pack/maintained/outerlayer-build/references/evidence.md +8 -0
- package/skill-pack/maintained/outerlayer-build/references/release.md +3 -2
- package/skill-pack/maintained/outerlayer-evidence/SKILL.md +6 -4
- package/dist/build-disk-3GL3KKEB.js +0 -18
- package/dist/chunk-XWFSAOC7.js +0 -111
- package/dist/chunk-YJLHUKYS.js +0 -38
- package/dist/chunk-YYYRBYWG.js +0 -32
package/README.md
CHANGED
|
@@ -91,7 +91,10 @@ content:
|
|
|
91
91
|
work item's general thread or a criterion thread — the detected session id
|
|
92
92
|
rides along the same way it does for `emit`, only ever narrowing what the
|
|
93
93
|
comment may do; `outerlayer work threads` reads them back. `outerlayer work logs`
|
|
94
|
-
reads the runner's log for a host attempt. `outerlayer work
|
|
94
|
+
reads the runner's log for a host attempt. `outerlayer work demo` reads an
|
|
95
|
+
item's newest demo record with `GET /v1/work-items/<n>/demo`.
|
|
96
|
+
`outerlayer work proofs` reads the item with `GET /v1/work-items/<n>` and
|
|
97
|
+
compares each proof with the head commit. `outerlayer work stop` sends
|
|
95
98
|
`POST /v1/work-items/<n>/claim/stop` with the optional note, and the
|
|
96
99
|
gateway records the request against the item's live host build. A runner
|
|
97
100
|
key needs `git.read` and `work.read` to
|
|
@@ -375,7 +378,8 @@ content:
|
|
|
375
378
|
or to the git checkout.
|
|
376
379
|
- **`outerlayer emit demo <manifest>`** first reads the item's recorded
|
|
377
380
|
criteria (`GET /v1/work-items/{number}`) to check the chapters' criterion
|
|
378
|
-
ids.
|
|
381
|
+
ids. With `--replaces <record id>`, it also reads the item's newest demo record
|
|
382
|
+
(`GET /v1/work-items/{number}/demo`) before it uploads anything. It cuts a recorded video once, from the first chapter's start to the
|
|
379
383
|
last chapter's end, and emits it as one video artifact. It then emits a video
|
|
380
384
|
artifact for each chapter with the same bytes and a time range in that video,
|
|
381
385
|
followed by the manifest as the demo record. A recording over 8 MiB falls
|
|
@@ -482,10 +486,12 @@ before it gives up.
|
|
|
482
486
|
| `outerlayer context emit [--check]` | Compile `.outerlayer/` into each configured target tool's native files (targets come from `.outerlayer/config.json`). `--check` computes outputs and diffs against disk without writing (CI mode). Bare `outerlayer emit` with no name still compiles, with a deprecation warning. |
|
|
483
487
|
| `outerlayer hooks wrap` / `outerlayer hooks unwrap` | Auto-wrap (or undo wrapping) `PreToolUse`/`PostToolUse` hooks for execution evidence — one spawn per firing. |
|
|
484
488
|
| `outerlayer emit artifact <file> --caption <text> [--for <criterion-id>] [--pr <n>]` | Upload a proof artifact — screenshot, recording, report, or log — with its caption. Inside a recorded session it spools locally and ships on the next `sync`; otherwise it uploads immediately, anchored to a pull request or the current checkout. `--replaces` retires artifacts an earlier run uploaded. A JUnit XML file bound with `--for` proves a criterion that declares `test` proof; `--test <name[=path:line]>` binds only the named tests. |
|
|
485
|
-
| `outerlayer emit demo <manifest> [--compare <manifest>] [--no-narration] [--item <n>] [--pr <n>]` | Turn a recorded video and its manifest (written by `@outerlayer/playwright`) into a narrated demo: one WebM clip for each chapter, emitted as a video artifact. A chapter whose checks all passed is bound to its criterion. The manifest is emitted as the demo record. With `--compare`, a second run's stills are compared with the first run's, and each chapter reads `yes`, `no` or `not checked`. Needs `ffmpeg` and `ffprobe`, and `espeak-ng` unless `--no-narration`. Exit 1 means a chapter had a failed check. |
|
|
489
|
+
| `outerlayer emit demo <manifest> [--compare <manifest>] [--no-narration] [--item <n>] [--pr <n>] [--replaces <record id>]` | Turn a recorded video and its manifest (written by `@outerlayer/playwright`) into a narrated demo: one WebM clip for each chapter, emitted as a video artifact. A chapter whose checks all passed is bound to its criterion. The manifest is emitted as the demo record, with the test file a version 3 manifest names. With `--replaces <record id>`, the new demo retires the item's old demo. With `--compare`, a second run's stills are compared with the first run's, and each chapter reads `yes`, `no` or `not checked`. Needs `ffmpeg` and `ffprobe`, and `espeak-ng` unless `--no-narration`. Exit 1 means a chapter had a failed check. |
|
|
486
490
|
| `outerlayer emit <name> --result <pass\|fail> [--link <url>] [--body <text>\|--body-file <path>] --item <number>` | Record one named check's outcome on a work item. A check that ran carries the run URL as its proof (`--link`); a judgment you are making yourself carries one sentence (`--body`, or `--body-file` to read it from a file — `-` reads standard input). A `fail` needs at least one of the two; a `pass` needs neither. `--item` names the work item by the number printed when the item was created — always required, in or out of a recorded session; a session records checks on its own item like any other, stored as the session's, but cannot clear a person's fail. Prints the recorded check's id. Who recorded it comes from your API key, never from what you send. |
|
|
487
491
|
| `outerlayer work comment --item <n> [--criterion <id>] --body <text> [--artifact <id>] [--pass\|--fail\|--attach\|--ready]` | Post one comment on a work item's general thread, or on one acceptance criterion's own thread with `--criterion`. `--pass`/`--fail` need a person's own credential and apply to the whole item, so they work on the general thread only and the gateway refuses them with `--criterion`; `--attach` makes the named artifact that criterion's current proof; `--ready` hands a thread back to a person. The detected session id rides along automatically, only ever narrowing what the comment may do. |
|
|
488
492
|
| `outerlayer work stop --item <n> [--note <text>]` | Ask the host that holds the item's build to end it. The host reads the request at its next heartbeat and ends the build with outcome `stopped`, so the build may run a little longer. The item is not built again until a new build request. Needs `work.update`. Exits 1 when no host build is running for the item. |
|
|
493
|
+
| `outerlayer work proofs [--item <n>] [--json]` | Lists each criterion that declares a proof other than `test` as current, out of date or missing at the checkout's HEAD, or at the head of a linked pull request that is open or merged. Exits 0 when every proof is current, 1 when any is not, and 2 when it cannot tell. |
|
|
494
|
+
| `outerlayer work demo --item <n> [--json]` | Print the item's newest demo record: its artifact id, the commit it was recorded at and the test that recorded it. `--json` prints `{ "demo": null }` for an item with no demo. |
|
|
489
495
|
| `outerlayer work logs --item <n> [--attempt <claim id>]` | Print the runner's log for a host attempt on a work item: the newest attempt a runner made, or the one `--attempt` names (an `id` from `claims` in `work status --json`). The log is what the runner did around the agent, with secrets removed on the host. Exits 1 for an attempt that is still running or that an older runner released without a log. |
|
|
490
496
|
| `outerlayer work threads --item <n>` | Read a work item's threads back — the general thread first, then one per criterion with proof or a comment, each with its `waitingOn`. |
|
|
491
497
|
| `outerlayer emit finding --id <id> --category <context\|flaky-test\|tooling\|environment\|defect\|other> --title <text> --file <path> --where <label> [--line <n>] [--item <number>] [--cause <text>] [--detail <text>] [--suggestion <text>] [--command <text>] [--error <text>] [--test <name>] [--symbol <name>] [--started-at <event> --ended-at <event>] [--problem <id> … --link-reason <text> \| --new] …` | Record one problem you hit in the factory. `--category` is one of `context` (an instruction that is wrong, broken or missing), `flaky-test`, `tooling`, `environment`, `defect` (a bug outside your own change) or `other`. A `context` finding also needs `--rule-path` and `--rule-relation` (`wrong`, `broken` or `missing`), and `--rule-quote` unless the relation is `missing`. `--cause`, `--detail`, `--suggestion`, `--command`, `--error` (the first error line), `--test` and `--symbol` carry what a fix needs. Every finding joins a factory-level problem: when a key of the finding matches a known problem it joins that problem; otherwise nothing is stored, the closest problems are printed, and the command exits with code 3. Run it again with `--problem <id> --link-reason <text>` (repeat `--problem` for each problem the finding reports) or with `--new`. Without `--started-at`, it prints the session's recent events with ids and times; name the event where you hit the problem and the one where you got past it with `--started-at` and `--ended-at`. Findings are informational; nothing reads one to pass or fail the work. `--item` names the work item; without it, inside a recorded session, the item that session was launched for is used automatically. Re-emitting the same `--id` on the item replaces that finding and keeps its problems. |
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { keepHandWritten, runAgentSetup } from './chunk-
|
|
4
|
-
import './chunk-
|
|
3
|
+
export { keepHandWritten, runAgentSetup } from './chunk-DHUHQPRQ.js';
|
|
4
|
+
import './chunk-PILHDNHX.js';
|
|
5
5
|
import './chunk-KT4CN6OU.js';
|
|
6
|
-
import './chunk-
|
|
7
|
-
import './chunk-
|
|
6
|
+
import './chunk-XMPE5TT4.js';
|
|
7
|
+
import './chunk-PJI5D2XT.js';
|
|
8
8
|
import './chunk-ANPNT6PM.js';
|
|
9
|
-
import './chunk-
|
|
10
|
-
import './chunk-
|
|
9
|
+
import './chunk-2WZ66FXA.js';
|
|
10
|
+
import './chunk-C7WGCI77.js';
|
|
11
11
|
import './chunk-6RKD7YZ6.js';
|
|
12
12
|
import './chunk-PJDQPF5N.js';
|
|
13
13
|
import './chunk-SOI6K5DY.js';
|
|
@@ -15,16 +15,16 @@ import './chunk-PA6CK6WQ.js';
|
|
|
15
15
|
import './chunk-BALIE3BA.js';
|
|
16
16
|
import './chunk-ZJSNLVCE.js';
|
|
17
17
|
import './chunk-BJ3KTMDH.js';
|
|
18
|
-
import './chunk-
|
|
18
|
+
import './chunk-M24H6JQW.js';
|
|
19
19
|
import './chunk-5BHIBJDA.js';
|
|
20
20
|
import './chunk-CDDED64E.js';
|
|
21
21
|
import './chunk-RA3O54FC.js';
|
|
22
22
|
import './chunk-CRB3POP4.js';
|
|
23
|
-
import './chunk-
|
|
23
|
+
import './chunk-6ZLI652Y.js';
|
|
24
24
|
import './chunk-YQR6E6OV.js';
|
|
25
25
|
import './chunk-TUSYOL2O.js';
|
|
26
|
-
import './chunk-
|
|
27
|
-
import './chunk-
|
|
26
|
+
import './chunk-PNIFQX73.js';
|
|
27
|
+
import './chunk-V7Q5OKN7.js';
|
|
28
28
|
import './chunk-VNVZDWO3.js';
|
|
29
29
|
import './chunk-HACGUL52.js';
|
|
30
30
|
import './chunk-MESOOLF4.js';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { sanitizeTerminal, readEffectiveArtifactSpoolState } from './chunk-
|
|
3
|
+
import { sanitizeTerminal, readEffectiveArtifactSpoolState } from './chunk-E4F7YE7P.js';
|
|
4
4
|
import { cliInvocation } from './chunk-CRB3POP4.js';
|
|
5
|
-
import './chunk-
|
|
5
|
+
import './chunk-V7Q5OKN7.js';
|
|
6
6
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
7
7
|
import './chunk-Z5GEFMRW.js';
|
|
8
8
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { KEY_PREFIX, TAG_HOST, buildRepositoryImage, metadataFromLabels, prepareImageBuild, writeRecord } from './chunk-
|
|
3
|
+
export { KEY_PREFIX, TAG_HOST, buildRepositoryImage, metadataFromLabels, prepareImageBuild, writeRecord } from './chunk-YXHKCHWG.js';
|
|
4
4
|
import './chunk-F5UL23I2.js';
|
|
5
5
|
import './chunk-JBJTC3UU.js';
|
|
6
6
|
export { RecipeError } from './chunk-3Z3MPR55.js';
|
|
7
|
-
import './chunk-
|
|
7
|
+
import './chunk-NE63JADS.js';
|
|
8
8
|
import './chunk-PA6CK6WQ.js';
|
|
9
9
|
import './chunk-BALIE3BA.js';
|
|
10
10
|
import './chunk-HACGUL52.js';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { createRequire } from 'node:module';
|
|
3
|
+
export { DEFAULT_BUILD_DISK, DEFAULT_CACHE_DISK, DOCKER_CACHE_MS, allocatedBytes, checkDiskFit, realBuildDiskProbe, runDocker, volumeBytes } from './chunk-LHKWWEQZ.js';
|
|
4
|
+
import './chunk-QKEOAQ2W.js';
|
|
5
|
+
import './chunk-3Z3MPR55.js';
|
|
6
|
+
import './chunk-NE63JADS.js';
|
|
7
|
+
import './chunk-QQXNS4G2.js';
|
|
8
|
+
import './chunk-SOI6K5DY.js';
|
|
9
|
+
import './chunk-PA6CK6WQ.js';
|
|
10
|
+
import './chunk-BALIE3BA.js';
|
|
11
|
+
import './chunk-V7Q5OKN7.js';
|
|
12
|
+
import './chunk-HACGUL52.js';
|
|
13
|
+
import './chunk-MESOOLF4.js';
|
|
14
|
+
import './chunk-Z5GEFMRW.js';
|
|
15
|
+
|
|
16
|
+
createRequire(import.meta.url);
|
package/dist/build-info.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"id":"2026-10-
|
|
1
|
+
{"id":"2026-10-23T03:06:35.440Z+4c51ec6","root":"/home/runner/_work/outerlayer/outerlayer","pkg":"outerlayer"}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { MIN_BUILDX_VERSION, builderName, builderSpec, buildxState, ensureBuilder, ensureFailureCount, isOutOfMemory, proxyEnvironment, trackImageBuild } from './chunk-
|
|
3
|
+
export { MIN_BUILDX_VERSION, builderName, builderSpec, buildxState, ensureBuilder, ensureFailureCount, isOutOfMemory, proxyEnvironment, trackImageBuild } from './chunk-QKEOAQ2W.js';
|
|
4
4
|
import './chunk-3Z3MPR55.js';
|
|
5
|
-
import './chunk-
|
|
6
|
-
import './chunk-
|
|
7
|
-
import './chunk-5DNCFOXA.js';
|
|
5
|
+
import './chunk-NE63JADS.js';
|
|
6
|
+
import './chunk-QQXNS4G2.js';
|
|
8
7
|
import './chunk-SOI6K5DY.js';
|
|
9
8
|
import './chunk-PA6CK6WQ.js';
|
|
10
9
|
import './chunk-BALIE3BA.js';
|
|
11
|
-
import './chunk-
|
|
10
|
+
import './chunk-V7Q5OKN7.js';
|
|
12
11
|
import './chunk-HACGUL52.js';
|
|
13
12
|
import './chunk-MESOOLF4.js';
|
|
14
13
|
import './chunk-Z5GEFMRW.js';
|
|
@@ -1,69 +1,67 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { probeCredentials } from './chunk-
|
|
4
|
-
import './chunk-
|
|
3
|
+
import { probeCredentials } from './chunk-67KCGRKA.js';
|
|
4
|
+
import './chunk-AXIK6F52.js';
|
|
5
|
+
import './chunk-GH246BGV.js';
|
|
5
6
|
import './chunk-ZVB57WI6.js';
|
|
6
7
|
import './chunk-57L2YAJA.js';
|
|
7
8
|
import './chunk-3JVYMD4G.js';
|
|
8
9
|
import './chunk-E7R2GIAW.js';
|
|
9
|
-
import './chunk-
|
|
10
|
+
import './chunk-RLAKWXDK.js';
|
|
10
11
|
import './chunk-MZYOUIY5.js';
|
|
11
|
-
import './chunk-GH246BGV.js';
|
|
12
12
|
import './chunk-HVRQQOMH.js';
|
|
13
13
|
import './chunk-6LBSAW6I.js';
|
|
14
14
|
import './chunk-I3LTIAOR.js';
|
|
15
|
-
import './chunk-
|
|
16
|
-
import './chunk-
|
|
17
|
-
import './chunk-
|
|
15
|
+
import './chunk-4NKHOCTF.js';
|
|
16
|
+
import './chunk-T4S2DVOA.js';
|
|
17
|
+
import './chunk-HUBRTT2C.js';
|
|
18
18
|
import './chunk-ESVW4MJY.js';
|
|
19
|
-
import { managedProblems, managedFactsOf } from './chunk-
|
|
19
|
+
import { managedProblems, managedFactsOf } from './chunk-B6WW6AKO.js';
|
|
20
20
|
import './chunk-NBZ7XBT6.js';
|
|
21
21
|
import './chunk-TBT347UY.js';
|
|
22
|
-
import { placeholderQueues, placeholderProblem, permissionModeProblems, permissionModeProblem, probeHelper, HELPER_ENV, helperSocketPath, needsClaudeCredential, claudeCredentialCheck, claimPermissionProblem, formerSkillQueues, formerSkillProblem } from './chunk-
|
|
22
|
+
import { placeholderQueues, placeholderProblem, permissionModeProblems, permissionModeProblem, probeHelper, HELPER_ENV, helperSocketPath, needsClaudeCredential, claudeCredentialCheck, claimPermissionProblem, formerSkillQueues, formerSkillProblem } from './chunk-GFTWZSOW.js';
|
|
23
23
|
import './chunk-2PGI6RDE.js';
|
|
24
|
-
import './chunk-
|
|
25
|
-
import './chunk-
|
|
24
|
+
import './chunk-UHFU3CBN.js';
|
|
25
|
+
import './chunk-YXHKCHWG.js';
|
|
26
26
|
import './chunk-F5UL23I2.js';
|
|
27
27
|
import './chunk-JBJTC3UU.js';
|
|
28
28
|
import './chunk-OGFGZQA3.js';
|
|
29
29
|
import './chunk-5THSC6BD.js';
|
|
30
30
|
import './chunk-L26V6ILJ.js';
|
|
31
|
-
import './chunk-
|
|
31
|
+
import './chunk-Z4GLZTDF.js';
|
|
32
32
|
import './chunk-MZBQTVFG.js';
|
|
33
33
|
import './chunk-TQMI335S.js';
|
|
34
|
-
import { DEFAULT_UNIT_NAME } from './chunk-
|
|
35
|
-
import './chunk-
|
|
36
|
-
import './chunk-
|
|
37
|
-
import './chunk-
|
|
34
|
+
import { DEFAULT_UNIT_NAME } from './chunk-7HZH5D7H.js';
|
|
35
|
+
import { loadRunnerConfig, RunnerConfigError, checkHooks } from './chunk-ONUACB5C.js';
|
|
36
|
+
import './chunk-LHKWWEQZ.js';
|
|
37
|
+
import './chunk-QKEOAQ2W.js';
|
|
38
38
|
import './chunk-3Z3MPR55.js';
|
|
39
|
-
import './chunk-
|
|
40
|
-
import
|
|
41
|
-
import './chunk-YJLHUKYS.js';
|
|
42
|
-
import './chunk-VT4TTJPG.js';
|
|
39
|
+
import './chunk-NE63JADS.js';
|
|
40
|
+
import './chunk-5FSVA3CO.js';
|
|
43
41
|
import './chunk-IP7BIBXJ.js';
|
|
44
|
-
import './chunk-
|
|
45
|
-
import './chunk-
|
|
46
|
-
import './chunk-
|
|
47
|
-
import './chunk-
|
|
48
|
-
import './chunk-
|
|
49
|
-
import './chunk-
|
|
42
|
+
import './chunk-CCOU4NXE.js';
|
|
43
|
+
import './chunk-VJGQEASF.js';
|
|
44
|
+
import './chunk-E4F7YE7P.js';
|
|
45
|
+
import './chunk-QQXNS4G2.js';
|
|
46
|
+
import './chunk-PJI5D2XT.js';
|
|
47
|
+
import './chunk-X37GC7DM.js';
|
|
50
48
|
import './chunk-G2JWZDFA.js';
|
|
51
49
|
import './chunk-ANPNT6PM.js';
|
|
52
|
-
import './chunk-
|
|
53
|
-
import './chunk-
|
|
50
|
+
import './chunk-2WZ66FXA.js';
|
|
51
|
+
import './chunk-C7WGCI77.js';
|
|
54
52
|
import './chunk-6RKD7YZ6.js';
|
|
55
53
|
import './chunk-PJDQPF5N.js';
|
|
56
54
|
import './chunk-SOI6K5DY.js';
|
|
57
55
|
import './chunk-PA6CK6WQ.js';
|
|
58
56
|
import { claudeEnvPath } from './chunk-BALIE3BA.js';
|
|
59
|
-
import './chunk-
|
|
57
|
+
import './chunk-JB4R5IFJ.js';
|
|
60
58
|
import './chunk-ZJSNLVCE.js';
|
|
61
59
|
import './chunk-2O5KA67H.js';
|
|
62
60
|
import './chunk-BKO6JEZI.js';
|
|
63
61
|
import './chunk-FGF52V4V.js';
|
|
64
62
|
import './chunk-HCVLP7XA.js';
|
|
65
63
|
import './chunk-BJ3KTMDH.js';
|
|
66
|
-
import './chunk-
|
|
64
|
+
import './chunk-M24H6JQW.js';
|
|
67
65
|
import './chunk-5BHIBJDA.js';
|
|
68
66
|
import './chunk-CDDED64E.js';
|
|
69
67
|
import './chunk-RA3O54FC.js';
|
|
@@ -73,8 +71,8 @@ import './chunk-CRB3POP4.js';
|
|
|
73
71
|
import './chunk-URIZRCRY.js';
|
|
74
72
|
import './chunk-YQR6E6OV.js';
|
|
75
73
|
import './chunk-TUSYOL2O.js';
|
|
76
|
-
import './chunk-
|
|
77
|
-
import './chunk-
|
|
74
|
+
import './chunk-PNIFQX73.js';
|
|
75
|
+
import './chunk-V7Q5OKN7.js';
|
|
78
76
|
import './chunk-VNVZDWO3.js';
|
|
79
77
|
import { parseRunnerEnv } from './chunk-HACGUL52.js';
|
|
80
78
|
import './chunk-MESOOLF4.js';
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { removeRetiredSkills } from './chunk-
|
|
3
|
+
import { removeRetiredSkills } from './chunk-C7WGCI77.js';
|
|
4
4
|
import { defaultFetch, resolveGatewayCredentials } from './chunk-6RKD7YZ6.js';
|
|
5
5
|
import { withTokenHeader } from './chunk-BALIE3BA.js';
|
|
6
6
|
import { appendContextProvenance } from './chunk-ZJSNLVCE.js';
|
|
7
|
-
import { loadMaintainedFiles, writeMaintainedFiles } from './chunk-
|
|
7
|
+
import { loadMaintainedFiles, writeMaintainedFiles } from './chunk-M24H6JQW.js';
|
|
8
8
|
import { cliInvocation } from './chunk-CRB3POP4.js';
|
|
9
9
|
import { writeDegraded, writeSourceCache, SOURCE_CACHE_TTL_RETRY_MS, writeContextManifest, SOURCE_CACHE_TTL_SUCCESS_MS, readSourceCache, isSourceCacheFresh, clearDegraded } from './chunk-YQR6E6OV.js';
|
|
10
|
-
import { normalizeRepoName, parseOuterlayerConfig, classifyTree, emitTree } from './chunk-
|
|
10
|
+
import { normalizeRepoName, parseOuterlayerConfig, classifyTree, emitTree } from './chunk-PNIFQX73.js';
|
|
11
11
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
12
12
|
import { execFileSync } from 'child_process';
|
|
13
13
|
import { existsSync, mkdirSync, writeFileSync, chmodSync, lstatSync, readFileSync, copyFileSync } from 'fs';
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { mcpTargetPath, INIT_STDIO_ENTRY, INIT_DOCS_ENTRY, DOCS_MCP_SERVER_NAME } from './chunk-KT4CN6OU.js';
|
|
4
|
-
import { POLICY_CONTENT, VALIDATOR_FILES, VALIDATORS_DIR, POLICY_PATH } from './chunk-
|
|
5
|
-
import { skillsBaseFor } from './chunk-
|
|
4
|
+
import { POLICY_CONTENT, VALIDATOR_FILES, VALIDATORS_DIR, POLICY_PATH } from './chunk-XMPE5TT4.js';
|
|
5
|
+
import { skillsBaseFor } from './chunk-PJI5D2XT.js';
|
|
6
6
|
import { findGitDirs } from './chunk-BJ3KTMDH.js';
|
|
7
|
-
import { resolvePackRoot, OUTERLAYER_SKILLS_BASE, skillDir, loadTemplateFiles, rewriteSkillPaths, restoreSkillPaths, TEMPLATE_SKILLS } from './chunk-
|
|
7
|
+
import { resolvePackRoot, OUTERLAYER_SKILLS_BASE, skillDir, loadTemplateFiles, rewriteSkillPaths, restoreSkillPaths, TEMPLATE_SKILLS } from './chunk-M24H6JQW.js';
|
|
8
8
|
import { cliInvocation } from './chunk-CRB3POP4.js';
|
|
9
|
-
import { hasSymlinkComponent } from './chunk-
|
|
9
|
+
import { hasSymlinkComponent } from './chunk-6ZLI652Y.js';
|
|
10
10
|
import { cloneIsGoverned } from './chunk-YQR6E6OV.js';
|
|
11
11
|
import { createHash } from 'crypto';
|
|
12
12
|
import { existsSync, readFileSync } from 'fs';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { LiveUploader } from './chunk-
|
|
4
|
-
import { CaptureDaemon } from './chunk-
|
|
5
|
-
import { spoolDir } from './chunk-
|
|
3
|
+
import { LiveUploader } from './chunk-T4S2DVOA.js';
|
|
4
|
+
import { CaptureDaemon } from './chunk-QQXNS4G2.js';
|
|
5
|
+
import { spoolDir } from './chunk-JB4R5IFJ.js';
|
|
6
6
|
import { parseWorkItemEnv } from './chunk-T2Q7ISPE.js';
|
|
7
7
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
8
8
|
import { mkdirSync, writeFileSync, rmSync } from 'fs';
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { detectActiveSession } from './chunk-IP7BIBXJ.js';
|
|
4
|
-
import { autoConnect } from './chunk-
|
|
5
|
-
import { workPageUrl } from './chunk-
|
|
6
|
-
import { sanitizeTerminal } from './chunk-
|
|
7
|
-
import { resolveRepoIdentity } from './chunk-
|
|
4
|
+
import { autoConnect } from './chunk-CCOU4NXE.js';
|
|
5
|
+
import { workPageUrl } from './chunk-VJGQEASF.js';
|
|
6
|
+
import { sanitizeTerminal } from './chunk-E4F7YE7P.js';
|
|
7
|
+
import { resolveRepoIdentity } from './chunk-QQXNS4G2.js';
|
|
8
8
|
import { C } from './chunk-ANPNT6PM.js';
|
|
9
9
|
import { resolveGatewayCredentials, unauthorizedMessage, defaultFetch } from './chunk-6RKD7YZ6.js';
|
|
10
10
|
import { signRunnerRequest } from './chunk-SOI6K5DY.js';
|
|
@@ -442,7 +442,7 @@ async function runWorkLinkSession(opts) {
|
|
|
442
442
|
return await linkSession(opts);
|
|
443
443
|
} catch (err) {
|
|
444
444
|
if (opts.logFailures) {
|
|
445
|
-
const { logHookError } = await import('./hook-fast-
|
|
445
|
+
const { logHookError } = await import('./hook-fast-4RYMBFPO.js');
|
|
446
446
|
const reason = err instanceof Error ? err.message : String(err);
|
|
447
447
|
logHookError(opts.home ?? homeFromEnv(opts.env ?? process.env), new Error(`work link-session #${opts.number} failed: ${reason}`));
|
|
448
448
|
}
|
|
@@ -1,27 +1,26 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { releaseLease, isUnfinished,
|
|
3
|
+
import { releaseLease, isUnfinished, setStage, jobEnv, runHook, describeHookEnd, provisionMicroVm, deliverCommitHooks, provisionProcess, readProvisionOut, workdirProblem, MICROVM_COMMAND_DIR, commandLogOffset, startMicroVmCommand, microVmCommandLine, runCommand, startSender, finishJob, sampleGuest, foldSample, isContainerTracked, isMicroVmTracked, probeMicroVmCommand, probeCommand, appendCommandLog, judgeProbe, EXIT_CODE_FILE, isTracked, isGroupAlive, outcomeFromExitCode, isTimedOut, readCpuUsec, isIdle, stopOrphanedMicroVms, unfinishedJobs, listUnreadableJobs, listAdoptableJobs, retryFailedReleases, recoverLostJobs, GUEST_USAGE_INTERVAL_MS, hookLimitsFor, AttemptLogBook, microVmOomKills, needsRenew, renewLease, RENEW_INTERVAL_SECONDS, listTrackedJobs, restartSender, serveLease, vmAlive, writeGuestGhConfig, ALREADY_RELEASED, inTeardown } from './chunk-AXIK6F52.js';
|
|
4
|
+
import { writePendingUpdate } from './chunk-GH246BGV.js';
|
|
4
5
|
import { JOB_STATE_FORMAT, readsJobState, jobStateFormatOf } from './chunk-ZVB57WI6.js';
|
|
5
6
|
import { readHousekeepingRecord, writeHousekeepingRecord } from './chunk-57L2YAJA.js';
|
|
6
7
|
import { decideInstalledSwitch } from './chunk-3JVYMD4G.js';
|
|
7
8
|
import { fetchVersionMeta, npmVersion, npmSupportsProvenance, fetchTarballDigest, fetchProvenance, installVersion, auditSignatures } from './chunk-E7R2GIAW.js';
|
|
8
|
-
import { fitImageBuildMemory } from './chunk-
|
|
9
|
+
import { fitImageBuildMemory } from './chunk-RLAKWXDK.js';
|
|
9
10
|
import { RUNNER_PROTOCOL } from './chunk-MZYOUIY5.js';
|
|
10
|
-
import {
|
|
11
|
-
import { realBlockedProbes, checkBlocked } from './chunk-QFQC5K4J.js';
|
|
11
|
+
import { realBlockedProbes, checkBlockedWithSlots, keepsHostBuilder } from './chunk-B6WW6AKO.js';
|
|
12
12
|
import { writeMarker, readMarker, currentVersion, removeMarker, entryIn, versionDir, startedThroughCurrent, switchCurrent, isInLayout, cleanVersions, stagingDir } from './chunk-NBZ7XBT6.js';
|
|
13
13
|
import { RepoFilter } from './chunk-TBT347UY.js';
|
|
14
|
-
import { leaseTimeLeftMs, createContainerRuntime, withTunnelLog, LEASE_SECONDS, needsBuildSkill, provisionContainer, leaseExpiresAtMs, deliverContainerHooks, lifecycleSteps, lifecycleFailureReason, decideHostBuildSkill, prepareBranch, currentSkillCommand, formerSkillProblem, containerCommandExec, setUpRunnerCgroup, sweepImageBuilders, measureDisk, parseCpuList, ensureTunnel, keepGhConfigCurrent, filesAreCopied, gitRemoteFor, startServicesFor, createLeaseChannel } from './chunk-
|
|
14
|
+
import { leaseTimeLeftMs, createContainerRuntime, withTunnelLog, LEASE_SECONDS, attemptNote, needsBuildSkill, provisionContainer, leaseExpiresAtMs, deliverContainerHooks, provisionEnvironment, resolveHostBuild, listenOnBroker, hostEnvironment, deliverExecMaven, runWithSpawn, hostCommandEnvironment, lifecycleSteps, execArgv, lifecycleFailureReason, decideHostBuildSkill, prepareBranch, currentSkillCommand, formerSkillProblem, containerCommandExec, execCommandLine, startHostServices, setUpRunnerCgroup, sweepImageBuilders, measureDisk, parseCpuList, ensureTunnel, keepGhConfigCurrent, filesAreCopied, gitRemoteFor, startServicesFor, createLeaseChannel } from './chunk-GFTWZSOW.js';
|
|
15
15
|
import { claimPidFile, writePidFile, readPidFile, releasePidFile } from './chunk-F5UL23I2.js';
|
|
16
16
|
import { startTimeOf, isSameProcess } from './chunk-JBJTC3UU.js';
|
|
17
|
-
import { describeCallFailure, retrySend, shortClaim, relativeToRunner, formatDuration, resolveGoverningSource, BuildTokens, classifyRefusal, refusalCode, createRunnerLog, formatClock } from './chunk-
|
|
17
|
+
import { describeCallFailure, retrySend, shortClaim, relativeToRunner, formatDuration, resolveGoverningSource, BuildTokens, classifyRefusal, refusalCode, createRunnerLog, formatClock } from './chunk-Z4GLZTDF.js';
|
|
18
18
|
import { tagToPull, pullInstruction, imageTag, writeUpdateStatus } from './chunk-MZBQTVFG.js';
|
|
19
19
|
import { isVersion, compareVersions, satisfiesRange } from './chunk-TQMI335S.js';
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
23
|
-
import {
|
|
24
|
-
import { isSignatureRefusal, WorkCommandError, getJson, postJson } from './chunk-VT4TTJPG.js';
|
|
20
|
+
import { isBuiltinContainer, isBuiltinVm, isBuiltinProcess, loadRunnerConfig, checkHooks, builtinKind, DEFAULT_UPDATE_MAX_WAIT_HOURS } from './chunk-ONUACB5C.js';
|
|
21
|
+
import { freeBytes, formatBytes, volumeBytes } from './chunk-LHKWWEQZ.js';
|
|
22
|
+
import { writeJobFile, ensureRunnerIdentity, readJobFile, exceedsDisk, builderName, runnerLabelValue, ensureFailureCount, builderSpec, ensureBuilder, spawnRun, BUILD_LABEL, RUNNER_LABEL, readJobFileChecked } from './chunk-QKEOAQ2W.js';
|
|
23
|
+
import { isSignatureRefusal, WorkCommandError, getJson, postJson } from './chunk-5FSVA3CO.js';
|
|
25
24
|
import { loadHostKey, ensureHostKey, signerFor } from './chunk-SOI6K5DY.js';
|
|
26
25
|
import { RUNNER_DIR_MODE, runnerDir, buildDir, attemptStamp, jobDir, RUNNER_FILE_MODE, jobsDir, pidFilePath, spoolDir, imagesDir, rootfsDir, builderCacheDiskPath } from './chunk-PA6CK6WQ.js';
|
|
27
26
|
import { parseClaimIdentity, parseClaimedRepositories, parseUnreachable, repositoriesOf, primaryOf, sharedUserEnvironment, JOB_MOUNT, takeClaudeCredential, heldClaudeCredential, currentClaudeCredential } from './chunk-BALIE3BA.js';
|
|
@@ -645,6 +644,16 @@ function createHousekeepingDocker(deps) {
|
|
|
645
644
|
const result = await run("docker", ["rmi", id]);
|
|
646
645
|
if (result.status !== 0) throw failure(result, `docker rmi ${id}`);
|
|
647
646
|
},
|
|
647
|
+
async removeBuilder() {
|
|
648
|
+
const inspected = await run("docker", ["buildx", "inspect", deps.builder]);
|
|
649
|
+
if (inspected.status !== 0 && NO_BUILDER.test(inspected.stderr)) return void 0;
|
|
650
|
+
const df = await run("docker", ["system", "df", "-v"]);
|
|
651
|
+
const freedBytes = df.status === 0 ? volumeBytes(df.stdout, /* @__PURE__ */ new Set([`buildx_buildkit_${deps.builder}0_state`])) : 0;
|
|
652
|
+
const result = await run("docker", ["buildx", "rm", deps.builder]);
|
|
653
|
+
if (result.status !== 0 && NO_BUILDER.test(result.stderr)) return void 0;
|
|
654
|
+
if (result.status !== 0) throw failure(result, "docker buildx rm");
|
|
655
|
+
return { freedBytes };
|
|
656
|
+
},
|
|
648
657
|
async builderPrune(keepBytes) {
|
|
649
658
|
const inspected = await run("docker", ["buildx", "inspect", deps.builder]);
|
|
650
659
|
if (inspected.status !== 0 && NO_BUILDER.test(inspected.stderr)) return void 0;
|
|
@@ -869,7 +878,17 @@ async function runHousekeeping(options) {
|
|
|
869
878
|
} catch (err) {
|
|
870
879
|
log.error(`housekeeping: dangling images could not be listed: ${describeCallFailure(err)}`);
|
|
871
880
|
}
|
|
872
|
-
if (options.
|
|
881
|
+
if (options.removeHostBuilder === true) {
|
|
882
|
+
try {
|
|
883
|
+
const removed = await docker.removeBuilder();
|
|
884
|
+
if (removed !== void 0) {
|
|
885
|
+
freed += removed.freedBytes;
|
|
886
|
+
log.line(`housekeeping: removed the host image builder and its state volume, freed ${formatBytes(removed.freedBytes)}; this runner builds images in the builder microVM`);
|
|
887
|
+
}
|
|
888
|
+
} catch (err) {
|
|
889
|
+
log.error(`housekeeping: the host image builder could not be removed: ${describeCallFailure(err)}`);
|
|
890
|
+
}
|
|
891
|
+
} else if (options.buildCacheMax !== "off") {
|
|
873
892
|
try {
|
|
874
893
|
const pruned = await docker.builderPrune(options.buildCacheMax);
|
|
875
894
|
if (pruned === void 0) {
|
|
@@ -1225,6 +1244,10 @@ function fitForImage(deps, config) {
|
|
|
1225
1244
|
function describeConfig(config) {
|
|
1226
1245
|
return `queues ${config.queues.join(",")} \xB7 concurrency ${config.concurrency} \xB7 poll ${config.pollSeconds}s`;
|
|
1227
1246
|
}
|
|
1247
|
+
function slotsTotalOf(state) {
|
|
1248
|
+
const slots = state.blocked === void 0 ? state.buildSlots ?? state.config.concurrency : state.config.concurrency;
|
|
1249
|
+
return Math.max(slots, state.jobs.size, 1);
|
|
1250
|
+
}
|
|
1228
1251
|
async function sendTickHeartbeat(state, workRequest) {
|
|
1229
1252
|
if (state.heartbeating) {
|
|
1230
1253
|
if (workRequest !== void 0) state.queuedWorkRequest = workRequest;
|
|
@@ -1247,7 +1270,7 @@ async function sendTickHeartbeat(state, workRequest) {
|
|
|
1247
1270
|
cliVersion: state.deps.cliVersion ?? resolveVersion(),
|
|
1248
1271
|
pollSeconds: state.pollTimerSeconds ?? state.config.pollSeconds,
|
|
1249
1272
|
slotsUsed: state.jobs.size,
|
|
1250
|
-
slotsTotal: state
|
|
1273
|
+
slotsTotal: slotsTotalOf(state),
|
|
1251
1274
|
workRequest: next,
|
|
1252
1275
|
lastUpdate: readLastUpdate(state.config.configPath),
|
|
1253
1276
|
lowDisk: state.lowDisk,
|
|
@@ -1660,6 +1683,7 @@ function imageBuilderState(state) {
|
|
|
1660
1683
|
const kind = builtinKind(state.config.hooks.provision);
|
|
1661
1684
|
if (kind !== "container" && kind !== "vm") return "usable";
|
|
1662
1685
|
if (state.deps.container?.buildImage !== void 0 || state.deps.container?.imageHost !== void 0) return "usable";
|
|
1686
|
+
if (!keepsHostBuilder(state.config, state.deps.blocked?.builderDiskPinned)) return "usable";
|
|
1663
1687
|
const memory = state.config.build?.memory ?? "8g";
|
|
1664
1688
|
let probe = state.imageBuilder;
|
|
1665
1689
|
if (probe === void 0 || probe.memory !== memory) probe = state.imageBuilder = { memory, at: 0, running: false };
|
|
@@ -1697,7 +1721,8 @@ function holdWhenBlocked(state, jailer) {
|
|
|
1697
1721
|
inImage: state.deps.image !== void 0,
|
|
1698
1722
|
...state.deps.blocked
|
|
1699
1723
|
};
|
|
1700
|
-
const blocked =
|
|
1724
|
+
const { blocked, slots } = checkBlockedWithSlots(state.config, probes);
|
|
1725
|
+
state.buildSlots = slots;
|
|
1701
1726
|
const log = logOf(state);
|
|
1702
1727
|
if (blocked !== void 0) {
|
|
1703
1728
|
if (state.blocked?.reason !== blocked.reason) log.line(`claiming nothing: ${blocked.reason}`);
|
|
@@ -1753,6 +1778,7 @@ async function housekeepingPass(state) {
|
|
|
1753
1778
|
configPath: state.config.configPath,
|
|
1754
1779
|
keepDays: config.jobsKeepDays,
|
|
1755
1780
|
buildCacheMax: config.buildCacheMax,
|
|
1781
|
+
removeHostBuilder: !keepsHostBuilder(state.config, state.deps.blocked?.builderDiskPinned),
|
|
1756
1782
|
docker: state.deps.housekeeping.docker,
|
|
1757
1783
|
now: state.deps.now ?? (() => /* @__PURE__ */ new Date()),
|
|
1758
1784
|
log: logOf(state)
|
|
@@ -1784,7 +1810,8 @@ async function runTick(state) {
|
|
|
1784
1810
|
const repoFilter = new RepoFilter(state.config.repos);
|
|
1785
1811
|
let filtered = 0;
|
|
1786
1812
|
let attempts = 0;
|
|
1787
|
-
|
|
1813
|
+
const slots = Math.min(state.buildSlots ?? state.config.concurrency, state.config.concurrency);
|
|
1814
|
+
while (state.jobs.size < slots && attempts < state.config.concurrency) {
|
|
1788
1815
|
attempts++;
|
|
1789
1816
|
let claimed = false;
|
|
1790
1817
|
for (const queue of QUEUE_ORDER) {
|
|
@@ -1837,7 +1864,7 @@ var CLAIM_REFUSAL_CODES = new Set(
|
|
|
1837
1864
|
"pull_request_from_fork pull_request_on_default_branch pull_request_ambiguous pull_request_repository_not_connected repository_not_reachable branch_claimed_elsewhere".split(" ")
|
|
1838
1865
|
);
|
|
1839
1866
|
async function tryClaimAndStart(state, item, queue) {
|
|
1840
|
-
const { postJson: postJson2 } = await import('./work-cmd-
|
|
1867
|
+
const { postJson: postJson2 } = await import('./work-cmd-PQZ5RYDB.js');
|
|
1841
1868
|
const log = logOf(state);
|
|
1842
1869
|
const hostKey = await loadHostKey(state.config.configPath);
|
|
1843
1870
|
const claim = await retrySend(
|
|
@@ -3054,7 +3081,7 @@ async function start(configPath, deps = { fetchImpl: fetch }) {
|
|
|
3054
3081
|
check: update.check ? () => update.check(configPath) : async () => {
|
|
3055
3082
|
const held = heldClaudeCredential();
|
|
3056
3083
|
const env = held === void 0 ? process.env : { ...process.env, [held.variable]: held.value };
|
|
3057
|
-
return (await import('./check-
|
|
3084
|
+
return (await import('./check-AEMFDR55.js')).runRunnerCheck(configPath, { fetchImpl: deps.fetchImpl, env });
|
|
3058
3085
|
},
|
|
3059
3086
|
now: () => (deps.now ?? (() => /* @__PURE__ */ new Date()))().getTime(),
|
|
3060
3087
|
log
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { sanitizeTerminal } from './chunk-
|
|
4
|
-
import { isAgentsMdLayout } from './chunk-
|
|
3
|
+
import { sanitizeTerminal } from './chunk-E4F7YE7P.js';
|
|
4
|
+
import { isAgentsMdLayout } from './chunk-PJI5D2XT.js';
|
|
5
5
|
import { resolveGatewayCredentials, defaultFetch } from './chunk-6RKD7YZ6.js';
|
|
6
6
|
import { versionAtLeast } from './chunk-HCVLP7XA.js';
|
|
7
7
|
import { findGitDirs } from './chunk-BJ3KTMDH.js';
|
|
8
|
-
import { machineSkillsState, staleClaudeSkills } from './chunk-
|
|
9
|
-
import { AGENTS_SKILLS_BASE, skillDir, namesCore, MACHINE_SKILL_PATH, isMaintainedCopy, loadTemplateFiles } from './chunk-
|
|
8
|
+
import { machineSkillsState, staleClaudeSkills } from './chunk-T4TT76GG.js';
|
|
9
|
+
import { AGENTS_SKILLS_BASE, skillDir, namesCore, MACHINE_SKILL_PATH, isMaintainedCopy, loadTemplateFiles } from './chunk-M24H6JQW.js';
|
|
10
10
|
import { MAINTAINED_SKILLS } from './chunk-CDDED64E.js';
|
|
11
11
|
import { cliInvocation } from './chunk-CRB3POP4.js';
|
|
12
|
-
import { hasSymlinkComponent } from './chunk-
|
|
13
|
-
import { emitTree, ALL_TARGET_IDS, classifyTree, splitRawFile } from './chunk-
|
|
12
|
+
import { hasSymlinkComponent } from './chunk-6ZLI652Y.js';
|
|
13
|
+
import { emitTree, ALL_TARGET_IDS, classifyTree, splitRawFile } from './chunk-PNIFQX73.js';
|
|
14
14
|
import { execFileSync } from 'child_process';
|
|
15
15
|
import { existsSync, readFileSync, writeFileSync, realpathSync, readdirSync } from 'fs';
|
|
16
16
|
import { join, dirname, posix, basename, isAbsolute, relative } from 'path';
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { readContextManifest, removeContextManifest } from './chunk-YQR6E6OV.js';
|
|
4
4
|
import { removePreCommitGuardHook } from './chunk-TUSYOL2O.js';
|
|
5
|
-
import { CONTEXT_PIN_FILENAME } from './chunk-
|
|
5
|
+
import { CONTEXT_PIN_FILENAME } from './chunk-PNIFQX73.js';
|
|
6
6
|
import { execFileSync } from 'child_process';
|
|
7
7
|
import { lstatSync, existsSync, unlinkSync, readdirSync, rmdirSync, readFileSync, mkdirSync, writeFileSync } from 'fs';
|
|
8
8
|
import { join, dirname, isAbsolute } from 'path';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { builtinKind } from './chunk-
|
|
4
|
-
import { parseSize } from './chunk-
|
|
3
|
+
import { builtinKind } from './chunk-ONUACB5C.js';
|
|
4
|
+
import { parseSize } from './chunk-QKEOAQ2W.js';
|
|
5
5
|
import { runnerDir } from './chunk-PA6CK6WQ.js';
|
|
6
6
|
import { CLAUDE_CREDENTIAL_ID, CLAUDE_ENV_FILE, credentialLineIn, withoutCredentialLines } from './chunk-BALIE3BA.js';
|
|
7
7
|
import { FD_SLOTS_PER_BUILD, FD_STORE_ENV } from './chunk-HACGUL52.js';
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { staleBuildRefusal, staleBuildWarning, detectCi } from './chunk-
|
|
3
|
+
import { staleBuildRefusal, staleBuildWarning, detectCi } from './chunk-T4S2DVOA.js';
|
|
4
4
|
import { launchRefusalForSession } from './chunk-ESVW4MJY.js';
|
|
5
5
|
import { detectActiveSession } from './chunk-IP7BIBXJ.js';
|
|
6
|
-
import { autoConnect } from './chunk-
|
|
7
|
-
import { readEffectiveArtifactSpoolState, localArtifactIds, isArtifactTombstoned, artifactBlobsDir, appendArtifactRecord, artifactsSpoolPath, findPendingArtifactRecord, sanitizeTerminal, appendArtifactTombstone } from './chunk-
|
|
8
|
-
import { resolveRepoIdentity } from './chunk-
|
|
6
|
+
import { autoConnect } from './chunk-CCOU4NXE.js';
|
|
7
|
+
import { readEffectiveArtifactSpoolState, localArtifactIds, isArtifactTombstoned, artifactBlobsDir, appendArtifactRecord, artifactsSpoolPath, findPendingArtifactRecord, sanitizeTerminal, appendArtifactTombstone } from './chunk-E4F7YE7P.js';
|
|
8
|
+
import { resolveRepoIdentity } from './chunk-QQXNS4G2.js';
|
|
9
9
|
import { C } from './chunk-ANPNT6PM.js';
|
|
10
10
|
import { resolveGatewayCredentials, defaultFetch, unauthorizedMessage } from './chunk-6RKD7YZ6.js';
|
|
11
11
|
import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
|
|
12
12
|
import { cliInvocation } from './chunk-CRB3POP4.js';
|
|
13
|
-
import { ARTIFACT_MAX_CAPTION_LENGTH, ArtifactCriterionIdSchema, ARTIFACT_MAX_BYTES, ARTIFACT_MAX_FILENAME_LENGTH, mediaTypeForArtifactPath, inferArtifactKind, ARTIFACT_MAX_REPLACES_TARGETS, parseTestSelector, parseJunit, bindTests } from './chunk-
|
|
13
|
+
import { ARTIFACT_MAX_CAPTION_LENGTH, ArtifactCriterionIdSchema, ARTIFACT_MAX_BYTES, ARTIFACT_MAX_FILENAME_LENGTH, mediaTypeForArtifactPath, inferArtifactKind, ARTIFACT_MAX_REPLACES_TARGETS, parseTestSelector, parseJunit, bindTests } from './chunk-V7Q5OKN7.js';
|
|
14
14
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
15
15
|
import { createHash, randomUUID } from 'crypto';
|
|
16
16
|
import { statSync, readFileSync, mkdirSync, existsSync, writeFileSync, renameSync, unlinkSync } from 'fs';
|