@outerlayer/cli 0.25.2 → 0.26.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.
- package/CHANGELOG.md +23 -0
- package/README.md +0 -1
- package/dist/{agent-setup-YHFZB2BC.js → agent-setup-PZYQWN4H.js} +3 -3
- package/dist/{build-ONH22PN5.js → build-JK2DLT6X.js} +2 -2
- package/dist/build-info.json +1 -1
- package/dist/{builder-WPULEVMY.js → builder-TMA25KRR.js} +2 -2
- package/dist/{check-SSEVZJN5.js → check-3CBJVXZD.js} +19 -19
- package/dist/{chunk-APBTVIM4.js → chunk-4R24DSL2.js} +4 -4
- package/dist/{chunk-H3AEZIYB.js → chunk-6M4LNO22.js} +1 -1
- package/dist/{chunk-F4267APM.js → chunk-7I6GZSN3.js} +1 -1
- package/dist/{chunk-PCADYUQT.js → chunk-7NKVMAP6.js} +2 -2
- package/dist/{chunk-3RBQSPW5.js → chunk-AINUN2TT.js} +1 -1
- package/dist/{chunk-Z453MOUL.js → chunk-BMWIUSTZ.js} +3 -3
- package/dist/{chunk-WVM6PM2N.js → chunk-D7V33CAH.js} +3 -3
- package/dist/{chunk-P7UQZFNY.js → chunk-EORWWFPA.js} +2 -2
- package/dist/{chunk-CP24ZXXR.js → chunk-GAWZ7ATV.js} +12 -9
- package/dist/{chunk-WXKAHUGA.js → chunk-GQOT37HL.js} +5 -5
- package/dist/{chunk-FQCLEH34.js → chunk-HXFRJKMU.js} +2 -2
- package/dist/{chunk-XBCJI6SV.js → chunk-IIFMFX6J.js} +2 -2
- package/dist/{chunk-Z6SWQV77.js → chunk-ILL2CWOU.js} +16 -9
- package/dist/{chunk-QBENN6GA.js → chunk-JUTN2HUP.js} +2 -2
- package/dist/{chunk-ITP76BST.js → chunk-PNHNKMA3.js} +3 -3
- package/dist/{chunk-C3AMVSMS.js → chunk-QIIMZC7W.js} +1 -1
- package/dist/{chunk-GJZEUQ6D.js → chunk-QRZLUUNN.js} +13 -0
- package/dist/{chunk-WMEADVIX.js → chunk-TBJ7KO2A.js} +8 -8
- package/dist/{chunk-G2T4HCGT.js → chunk-TEVO3RUV.js} +1 -1
- package/dist/{chunk-CLUUAX6O.js → chunk-TPAF24PK.js} +2 -2
- package/dist/{chunk-D4UDE2AP.js → chunk-W3NVHOCS.js} +1 -1
- package/dist/{chunk-DZUANBKP.js → chunk-XPKI5OMT.js} +4 -4
- package/dist/{claude-launcher-FXFXYW2E.js → claude-launcher-O2U6P6ZD.js} +1 -1
- package/dist/{cli-ZBZFCRTK.js → cli-7HVTFJZO.js} +64 -113
- package/dist/{command-A2XBWQGB.js → command-2Q5UDZUO.js} +11 -11
- package/dist/{connect-cmd-HAFFAVEO.js → connect-cmd-2JHSLBXK.js} +2 -2
- package/dist/{container-start-L6LCWH6Z.js → container-start-SCCR2PRD.js} +12 -12
- package/dist/{control-plane-launch-FRK5IZXC.js → control-plane-launch-654RV5PO.js} +2 -2
- package/dist/{docker-FATVQG5M.js → docker-4X2A5HDY.js} +2 -2
- package/dist/{doctor-EI22PDR5.js → doctor-3QA5Y5HG.js} +16 -13
- package/dist/{emit-artifact-cmd-Y2GMWCSD.js → emit-artifact-cmd-SFUSDWZM.js} +6 -6
- package/dist/{emit-criteria-cmd-LI7OLHEC.js → emit-criteria-cmd-VMZIRJCQ.js} +3 -3
- package/dist/{emit-finding-cmd-3LU7C356.js → emit-finding-cmd-KMJNYQI7.js} +3 -3
- package/dist/{emit-result-cmd-NKAKRBW2.js → emit-result-cmd-NEICBIDU.js} +6 -6
- package/dist/{emit-step-cmd-JQ23TRF5.js → emit-step-cmd-AUHA3EXY.js} +4 -4
- package/dist/{governing-source-73APROH6.js → governing-source-J5DF65X5.js} +6 -6
- package/dist/{hook-fast-GD7F2EBL.js → hook-fast-REXH5P6R.js} +1 -1
- package/dist/index.js +4 -4
- package/dist/{init-MRREKVT5.js → init-NEUTUGEQ.js} +12 -12
- package/dist/{init-ZN47OUB3.js → init-UMON3HZK.js} +12 -12
- package/dist/{init-cmd-ZGQ6HMZD.js → init-cmd-54DMRBNO.js} +6 -6
- package/dist/{init-update-HTHYQOHU.js → init-update-FJDKY4SJ.js} +4 -4
- package/dist/{loop-JTKSTVDV.js → loop-6JKW5QR5.js} +19 -19
- package/dist/{machine-RCIMAKOA.js → machine-XF55O56X.js} +11 -11
- package/dist/{mcp-serve-cmd-QBFQN553.js → mcp-serve-cmd-U5N5DK3H.js} +1 -1
- package/dist/{runner-identity-C2O6Q3RR.js → runner-identity-NH6RLVMI.js} +2 -2
- package/dist/{runner-key-ENQLA4Q6.js → runner-key-FUNSJ564.js} +12 -12
- package/dist/{session-sender-535VA2CA.js → session-sender-P5GVOIUY.js} +7 -7
- package/dist/{spec-cmd-KERLZ6GJ.js → spec-cmd-HMFW552G.js} +4 -4
- package/dist/{status-OTZ3VX47.js → status-ULZVKQ7G.js} +15 -15
- package/dist/{sync-cmd-EIRKU5FA.js → sync-cmd-VCLCOME6.js} +6 -6
- package/dist/{watch-SMF5CW5T.js → watch-SVGL24OX.js} +6 -6
- package/dist/{work-claim-cmd-JCUBRZKN.js → work-claim-cmd-WQF5RTCT.js} +6 -6
- package/dist/{work-cmd-C3CFJZYD.js → work-cmd-TGSNYPSG.js} +4 -4
- package/dist/{work-comment-cmd-NDE3O7PN.js → work-comment-cmd-O3FVX6M4.js} +4 -4
- package/dist/{work-logs-cmd-KUGBBJAO.js → work-logs-cmd-2RMJFVNZ.js} +4 -4
- package/dist/{work-open-pr-cmd-TFIGKPRL.js → work-open-pr-cmd-5EP7BKRE.js} +5 -5
- package/dist/{work-pr-cmd-KKCLXRJL.js → work-pr-cmd-DKTBEFHO.js} +4 -4
- package/dist/{work-stop-cmd-QUEDBM4Q.js → work-stop-cmd-TNJYBLMN.js} +4 -4
- package/package.json +2 -2
- package/dist/import-capture-cmd-TCOKNVBM.js +0 -73
- package/dist/import-ruler-cmd-VJOHOJQ7.js +0 -173
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
# @outerlayer/cli
|
|
2
2
|
|
|
3
|
+
## 0.26.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- a5a32a4: Pin a saved credential to its own gateway. A login or API key stored in the
|
|
8
|
+
config file is now sent only to the gateway address it was created for. If
|
|
9
|
+
`OUTERLAYER_URL` or `--url` names a different host and no key is supplied for
|
|
10
|
+
that call, the command refuses instead of sending the saved credential — and
|
|
11
|
+
the session transcripts a sync carries with it — to a host you did not choose.
|
|
12
|
+
To reach a different gateway, pass its own key: `--url <addr> --api-key <key>`,
|
|
13
|
+
or set `OUTERLAYER_API_KEY` beside `OUTERLAYER_URL`.
|
|
14
|
+
|
|
15
|
+
## 0.26.0
|
|
16
|
+
|
|
17
|
+
### Minor Changes
|
|
18
|
+
|
|
19
|
+
- 9dab934: Remove `outerlayer import capture`, `outerlayer import ruler` and `outerlayer hooks install-git`. `outerlayer init` installs the maintained skills, and `outerlayer init --update` refreshes them. `outerlayer init` and `outerlayer sync` remove the git hooks that an earlier version installed.
|
|
20
|
+
|
|
21
|
+
### Patch Changes
|
|
22
|
+
|
|
23
|
+
- 847b8eb: MicroVM builds use Firecracker 1.17.0. On a host with the root helper, run `outerlayer runner install --service --replace` so its builds use it too. Until then, `outerlayer doctor` and each build's log say the helper runs an older Firecracker.
|
|
24
|
+
- 0405fed: MicroVM builds no longer stop after a CLI update that pins a new Firecracker, guest kernel or guest helper. The runner keeps each file under its pinned hash and downloads the new one.
|
|
25
|
+
|
|
3
26
|
## 0.25.2
|
|
4
27
|
|
|
5
28
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -437,7 +437,6 @@ before it gives up.
|
|
|
437
437
|
| `outerlayer daemon` | Run the copy-out daemon in the foreground (`--once` for a single sweep, which uploads nothing). Once cloud credentials exist, it also streams a launched session's new turns as they land — see Privacy, above. `outerlayer watch` is the former name and still works, with a warning. |
|
|
438
438
|
| `outerlayer doctor` | Check the installation: hooks, status-line freshness, sync health and, with a factory key, the GitHub App access builds need. `--json` prints the checks and a summary for scripts. |
|
|
439
439
|
| `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. |
|
|
440
|
-
| `outerlayer import ruler` | Port a `.ruler/` tree ([Ruler](https://github.com/intellectronica/ruler)) into the equivalent `.outerlayer/` tree — mostly a rename; never overwrites an existing `.outerlayer/`. |
|
|
441
440
|
| `outerlayer hooks wrap` / `outerlayer hooks unwrap` | Auto-wrap (or undo wrapping) `PreToolUse`/`PostToolUse` hooks for execution evidence — one spawn per firing. |
|
|
442
441
|
| `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. |
|
|
443
442
|
| `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. |
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { keepHandWritten, runAgentSetup } from './chunk-
|
|
3
|
+
export { keepHandWritten, runAgentSetup } from './chunk-6M4LNO22.js';
|
|
4
4
|
import './chunk-WX2WEERU.js';
|
|
5
5
|
import './chunk-VJBFQP3H.js';
|
|
6
|
-
import './chunk-
|
|
6
|
+
import './chunk-W3NVHOCS.js';
|
|
7
7
|
import './chunk-MQ743JX3.js';
|
|
8
|
-
import './chunk-
|
|
8
|
+
import './chunk-QRZLUUNN.js';
|
|
9
9
|
import './chunk-ZJSNLVCE.js';
|
|
10
10
|
import './chunk-BJ3KTMDH.js';
|
|
11
11
|
import './chunk-YVZJ6GKF.js';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { buildRepositoryImage } from './chunk-
|
|
3
|
+
export { buildRepositoryImage } from './chunk-AINUN2TT.js';
|
|
4
4
|
import './chunk-PYSKSROG.js';
|
|
5
5
|
import './chunk-JBJTC3UU.js';
|
|
6
|
-
export { RecipeError } from './chunk-
|
|
6
|
+
export { RecipeError } from './chunk-4R24DSL2.js';
|
|
7
7
|
import './chunk-L4CW6LZQ.js';
|
|
8
8
|
import './chunk-2K3TCQHW.js';
|
|
9
9
|
import './chunk-JGD5TWQ2.js';
|
package/dist/build-info.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"id":"2026-10-
|
|
1
|
+
{"id":"2026-10-16T15:29:16.974Z+c2e9a47","root":"/home/runner/_work/outerlayer/outerlayer","pkg":"outerlayer"}
|
|
@@ -1,7 +1,7 @@
|
|
|
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-
|
|
4
|
-
import './chunk-
|
|
3
|
+
export { MIN_BUILDX_VERSION, builderName, builderSpec, buildxState, ensureBuilder, ensureFailureCount, isOutOfMemory, proxyEnvironment, trackImageBuild } from './chunk-7I6GZSN3.js';
|
|
4
|
+
import './chunk-4R24DSL2.js';
|
|
5
5
|
import './chunk-7RQ73DLO.js';
|
|
6
6
|
import './chunk-QE3UQAHK.js';
|
|
7
7
|
import './chunk-QZBXLLTV.js';
|
|
@@ -1,53 +1,53 @@
|
|
|
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-TBJ7KO2A.js';
|
|
4
|
+
import './chunk-GAWZ7ATV.js';
|
|
5
5
|
import './chunk-TKL74NLB.js';
|
|
6
6
|
import './chunk-ZVB57WI6.js';
|
|
7
7
|
import './chunk-6FAP657M.js';
|
|
8
8
|
import './chunk-3JVYMD4G.js';
|
|
9
9
|
import './chunk-YETTWTAY.js';
|
|
10
10
|
import './chunk-TPKYTORP.js';
|
|
11
|
-
import './chunk-
|
|
11
|
+
import './chunk-IIFMFX6J.js';
|
|
12
12
|
import './chunk-2N72GPS2.js';
|
|
13
13
|
import './chunk-UNF7MWEL.js';
|
|
14
|
-
import './chunk-
|
|
15
|
-
import './chunk-
|
|
14
|
+
import './chunk-PNHNKMA3.js';
|
|
15
|
+
import './chunk-EORWWFPA.js';
|
|
16
16
|
import './chunk-ESVW4MJY.js';
|
|
17
|
-
import { placeholderQueues, placeholderProblem, permissionModeProblems, permissionModeProblem, needsClaudeCredential, claudeCredentialCheck, claimPermissionProblem, formerSkillQueues, formerSkillProblem } from './chunk-
|
|
17
|
+
import { placeholderQueues, placeholderProblem, permissionModeProblems, permissionModeProblem, needsClaudeCredential, claudeCredentialCheck, claimPermissionProblem, formerSkillQueues, formerSkillProblem } from './chunk-BMWIUSTZ.js';
|
|
18
18
|
import './chunk-4IFKLYMM.js';
|
|
19
19
|
import './chunk-YYYRBYWG.js';
|
|
20
20
|
import './chunk-TBT347UY.js';
|
|
21
|
-
import './chunk-
|
|
22
|
-
import './chunk-
|
|
23
|
-
import './chunk-
|
|
21
|
+
import './chunk-JUTN2HUP.js';
|
|
22
|
+
import './chunk-7NKVMAP6.js';
|
|
23
|
+
import './chunk-ILL2CWOU.js';
|
|
24
24
|
import './chunk-665QWBNW.js';
|
|
25
25
|
import './chunk-TQMI335S.js';
|
|
26
26
|
import './chunk-5PMQDQFV.js';
|
|
27
27
|
import './chunk-MLD2NA7N.js';
|
|
28
28
|
import { parseRunnerEnv } from './chunk-6MZSX4M7.js';
|
|
29
|
-
import './chunk-
|
|
29
|
+
import './chunk-AINUN2TT.js';
|
|
30
30
|
import './chunk-PYSKSROG.js';
|
|
31
31
|
import './chunk-JBJTC3UU.js';
|
|
32
32
|
import './chunk-OGFGZQA3.js';
|
|
33
|
-
import './chunk-
|
|
34
|
-
import './chunk-
|
|
33
|
+
import './chunk-7I6GZSN3.js';
|
|
34
|
+
import './chunk-4R24DSL2.js';
|
|
35
35
|
import './chunk-HPOEVC2V.js';
|
|
36
36
|
import './chunk-XGJUNNXL.js';
|
|
37
|
-
import './chunk-
|
|
38
|
-
import './chunk-
|
|
39
|
-
import './chunk-
|
|
40
|
-
import './chunk-
|
|
37
|
+
import './chunk-D7V33CAH.js';
|
|
38
|
+
import './chunk-XPKI5OMT.js';
|
|
39
|
+
import './chunk-HXFRJKMU.js';
|
|
40
|
+
import './chunk-TEVO3RUV.js';
|
|
41
41
|
import './chunk-BUP5N3X6.js';
|
|
42
42
|
import './chunk-XSPA5ODY.js';
|
|
43
43
|
import './chunk-GOSFARMS.js';
|
|
44
44
|
import { loadRunnerConfig, RunnerConfigError, checkHooks } from './chunk-JWRX5ZTT.js';
|
|
45
45
|
import './chunk-UXYLWVTQ.js';
|
|
46
46
|
import './chunk-7RQ73DLO.js';
|
|
47
|
-
import './chunk-
|
|
47
|
+
import './chunk-W3NVHOCS.js';
|
|
48
48
|
import './chunk-MQ743JX3.js';
|
|
49
|
-
import './chunk-
|
|
50
|
-
import './chunk-
|
|
49
|
+
import './chunk-QRZLUUNN.js';
|
|
50
|
+
import './chunk-QIIMZC7W.js';
|
|
51
51
|
import './chunk-ZJSNLVCE.js';
|
|
52
52
|
import './chunk-DYEFPYME.js';
|
|
53
53
|
import './chunk-BKO6JEZI.js';
|
|
@@ -242,12 +242,12 @@ var MICROVM_ARCHES = ["x86_64"];
|
|
|
242
242
|
function firecrackerArch(nodeArch) {
|
|
243
243
|
return nodeArch === "x64" ? "x86_64" : nodeArch === "arm64" ? "aarch64" : nodeArch;
|
|
244
244
|
}
|
|
245
|
-
var FIRECRACKER_VERSION = "1.
|
|
245
|
+
var FIRECRACKER_VERSION = "1.17.0";
|
|
246
246
|
var FIRECRACKER_SHA256 = {
|
|
247
|
-
x86_64: "
|
|
247
|
+
x86_64: "06094a1108ae9e82aa4c23a775aa92758f53f1175d422270d9d6162cb9ade558"
|
|
248
248
|
};
|
|
249
249
|
var FIRECRACKER_BINARY_SHA256 = {
|
|
250
|
-
x86_64: "
|
|
250
|
+
x86_64: "99ad0f5cd0514a88aad0e9ae8cfdb3cc3b4ab9d190e1194602406c786b5de7a5"
|
|
251
251
|
};
|
|
252
252
|
var GUEST_ASSETS_VERSION = "1";
|
|
253
253
|
var GUEST_ASSETS_BASE_URL = `https://github.com/outerlayerai/guest-assets/releases/download/guest-${GUEST_ASSETS_VERSION}`;
|
|
@@ -262,7 +262,7 @@ function guestAssetsPinned(arch) {
|
|
|
262
262
|
return GUEST_KERNEL_SHA256[arch] !== zero && GUEST_HELPER_SHA256[arch] !== zero;
|
|
263
263
|
}
|
|
264
264
|
var JAILER_BINARY_SHA256 = {
|
|
265
|
-
x86_64: "
|
|
265
|
+
x86_64: "65ef226e96f0ceda55ba643f445801ef2cc0ea667ef67cad8ac4f406c9c8434f"
|
|
266
266
|
};
|
|
267
267
|
var HOST_HELPER_ASSETS_VERSION = "4";
|
|
268
268
|
var HOST_HELPER_BASE_URL = `https://github.com/outerlayerai/guest-assets/releases/download/guest-${HOST_HELPER_ASSETS_VERSION}`;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { runEmit } from './chunk-WX2WEERU.js';
|
|
4
4
|
import { installStarterPack } from './chunk-VJBFQP3H.js';
|
|
5
|
-
import { resolveGitCommonDir, defaultGitRunner } from './chunk-
|
|
5
|
+
import { resolveGitCommonDir, defaultGitRunner } from './chunk-W3NVHOCS.js';
|
|
6
6
|
import { addStdioMcpEntryIfAbsent, addDocsMcpEntryIfAbsent, DOCS_MCP_SERVER_NAME } from './chunk-YVZJ6GKF.js';
|
|
7
7
|
import { C } from './chunk-ANPNT6PM.js';
|
|
8
8
|
import { AGENTS_MD_LAYOUT, declareAgentsMdLayout, linkClaudeSkills, SKILLS_LINK_PATH, describeSkillsLink, isAgentsMdLayout, holdsTodaysLayoutSources, discoverOuterlayerPaths } from './chunk-JKNYTNYD.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { RecipeError, BUILDKIT_IMAGE } from './chunk-
|
|
3
|
+
import { RecipeError, BUILDKIT_IMAGE } from './chunk-4R24DSL2.js';
|
|
4
4
|
import { parseSize } from './chunk-7RQ73DLO.js';
|
|
5
5
|
import { compareVersions } from './chunk-QE3UQAHK.js';
|
|
6
6
|
import { ensureHostKey } from './chunk-F6DIHHBS.js';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { MIN_ENGINE_MAJOR } from './chunk-
|
|
3
|
+
import { MIN_ENGINE_MAJOR } from './chunk-ILL2CWOU.js';
|
|
4
4
|
import { runnerImageVersion } from './chunk-665QWBNW.js';
|
|
5
|
-
import { firecrackerArch, MICROVM_ARCHES, guestAssetsPinned } from './chunk-
|
|
5
|
+
import { firecrackerArch, MICROVM_ARCHES, guestAssetsPinned } from './chunk-4R24DSL2.js';
|
|
6
6
|
import { spawnSync } from 'child_process';
|
|
7
7
|
import { existsSync, accessSync, constants, statSync, readFileSync } from 'fs';
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { claimPidFile, RunnerAlreadyRunningError, releasePidFile } from './chunk-PYSKSROG.js';
|
|
4
4
|
import { startTimeOf } from './chunk-JBJTC3UU.js';
|
|
5
|
-
import { CLAUDE_CODE_VERSION, NODE_IMAGE, DEFAULT_BASE_IMAGE, RecipeError, locateRecipe, readRecipe, assertBuildable, TINI_VERSION, GH_VERSION, writeSanitizedRecipe, classifyProperties, GH_SHA256, TINI_SHA256, SANITIZED_NAME } from './chunk-
|
|
5
|
+
import { CLAUDE_CODE_VERSION, NODE_IMAGE, DEFAULT_BASE_IMAGE, RecipeError, locateRecipe, readRecipe, assertBuildable, TINI_VERSION, GH_VERSION, writeSanitizedRecipe, classifyProperties, GH_SHA256, TINI_SHA256, SANITIZED_NAME } from './chunk-4R24DSL2.js';
|
|
6
6
|
import { RUNNER_DIR_MODE, repoCacheDir, imagesDir, attemptStamp, runnerDir, rootfsPathFor, RUNNER_FILE_MODE } from './chunk-L4CW6LZQ.js';
|
|
7
7
|
import { withGitConfig, tokenHeader, PROXY_WARNING_FLAG } from './chunk-2K3TCQHW.js';
|
|
8
8
|
import { RELAY_ID, RELAY_USER } from './chunk-JGD5TWQ2.js';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { isPlaceholderCommand } from './chunk-
|
|
4
|
-
import { describeCallFailure } from './chunk-
|
|
5
|
-
import { WorkCommandError, getJson } from './chunk-
|
|
3
|
+
import { isPlaceholderCommand } from './chunk-JUTN2HUP.js';
|
|
4
|
+
import { describeCallFailure } from './chunk-D7V33CAH.js';
|
|
5
|
+
import { WorkCommandError, getJson } from './chunk-XPKI5OMT.js';
|
|
6
6
|
import { sanitizeTerminal } from './chunk-BUP5N3X6.js';
|
|
7
7
|
import { builtinKind } from './chunk-JWRX5ZTT.js';
|
|
8
8
|
import { signerFor } from './chunk-F6DIHHBS.js';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { WorkCommandError, postJson } from './chunk-
|
|
4
|
-
import { defaultGitRunner, materializeContext, isStagingWriteFault, lookupGoverningSource } from './chunk-
|
|
5
|
-
import { signingFetchFor } from './chunk-
|
|
3
|
+
import { WorkCommandError, postJson } from './chunk-XPKI5OMT.js';
|
|
4
|
+
import { defaultGitRunner, materializeContext, isStagingWriteFault, lookupGoverningSource } from './chunk-W3NVHOCS.js';
|
|
5
|
+
import { signingFetchFor } from './chunk-QRZLUUNN.js';
|
|
6
6
|
import { unsupportedLayout, layoutRefusalReason, composeDelivery } from './chunk-VPEGE3QZ.js';
|
|
7
7
|
import { SHIM_SCRIPT, GOVERNANCE_VARIABLE } from './chunk-HCVLP7XA.js';
|
|
8
8
|
import { readDegraded, readContextManifest, readSourceCache } from './chunk-YQR6E6OV.js';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { launchRefusalForSession } from './chunk-ESVW4MJY.js';
|
|
4
|
-
import { autoConnect, detectActiveSession } from './chunk-
|
|
4
|
+
import { autoConnect, detectActiveSession } from './chunk-HXFRJKMU.js';
|
|
5
5
|
import { acquireSpoolLockAt } from './chunk-BUP5N3X6.js';
|
|
6
|
-
import { resolveGatewayCredentials, defaultFetch, unauthorizedMessage } from './chunk-
|
|
6
|
+
import { resolveGatewayCredentials, defaultFetch, unauthorizedMessage } from './chunk-QRZLUUNN.js';
|
|
7
7
|
import { resolveRepoIdentity } from './chunk-QE3UQAHK.js';
|
|
8
8
|
import { C } from './chunk-ANPNT6PM.js';
|
|
9
9
|
import { launchedItemForSession } from './chunk-T2Q7ISPE.js';
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { readsJobState, READ_JOB_STATE_FORMATS, jobStateFormatOf } from './chunk-ZVB57WI6.js';
|
|
4
|
-
import { senderPidfile } from './chunk-
|
|
4
|
+
import { senderPidfile } from './chunk-IIFMFX6J.js';
|
|
5
5
|
import { DOCKERD_LOG, HELPER_PATH, HELPER_RECORD } from './chunk-2N72GPS2.js';
|
|
6
6
|
import { writeDockerClientConfig } from './chunk-UNF7MWEL.js';
|
|
7
|
-
import { installScrubContext } from './chunk-
|
|
8
|
-
import { ADDED_USER, AssetError, obtainImage, ensureRootfs, gitRemoteFor, startServicesFor, createBuildDisk, machineConfig, resolveAgentUser, AgentUserError, runBuildSteps, shellQuote, LEASE_SECONDS, createContainerRuntime, stopContainer, cleanupContainer, outOfMemoryReason, containerSenderCommand, signalInContainer, syncInContainer, copyTranscriptsFromContainer, senderAliveScript, HelperRefusal, GH_CONFIG_YML, ghHostsYml, isLiteralAddress, deleteBuildDisk, startCheckContainer, lifecycleSteps, lifecycleFailureReason, writeEvalInput, DeliveryFailure, EVAL_INPUT_NAME, copyTranscripts, senderSignalScript, containerJudgeEnvironment, copyJudgeTree } from './chunk-
|
|
9
|
-
import { readBranchHead, fetchCommit, diffBetween } from './chunk-
|
|
7
|
+
import { installScrubContext } from './chunk-PNHNKMA3.js';
|
|
8
|
+
import { ADDED_USER, AssetError, obtainImage, ensureRootfs, gitRemoteFor, startServicesFor, createBuildDisk, machineConfig, resolveAgentUser, AgentUserError, runBuildSteps, shellQuote, LEASE_SECONDS, createContainerRuntime, stopContainer, cleanupContainer, outOfMemoryReason, containerSenderCommand, signalInContainer, syncInContainer, copyTranscriptsFromContainer, senderAliveScript, helperFirecrackerNote, HelperRefusal, GH_CONFIG_YML, ghHostsYml, isLiteralAddress, deleteBuildDisk, startCheckContainer, lifecycleSteps, lifecycleFailureReason, writeEvalInput, DeliveryFailure, EVAL_INPUT_NAME, copyTranscripts, senderSignalScript, containerJudgeEnvironment, copyJudgeTree } from './chunk-ILL2CWOU.js';
|
|
9
|
+
import { readBranchHead, fetchCommit, diffBetween } from './chunk-AINUN2TT.js';
|
|
10
10
|
import { isSameProcess, startTimeOf } from './chunk-JBJTC3UU.js';
|
|
11
|
-
import { HASH_ARGV, parseProgramHash, JUDGE_PROGRAM, writeJobFile, readJobFile, COMMAND_DIR, childEnvironment, judgeCommand, JUDGE_MAX_TURNS, MAX_REPORT_BYTES, JUDGE_DIR } from './chunk-
|
|
12
|
-
import { CLAUDE_CODE_VERSION } from './chunk-
|
|
11
|
+
import { HASH_ARGV, parseProgramHash, JUDGE_PROGRAM, writeJobFile, readJobFile, COMMAND_DIR, childEnvironment, judgeCommand, JUDGE_MAX_TURNS, MAX_REPORT_BYTES, JUDGE_DIR } from './chunk-7I6GZSN3.js';
|
|
12
|
+
import { CLAUDE_CODE_VERSION, FIRECRACKER_VERSION } from './chunk-4R24DSL2.js';
|
|
13
13
|
import { waitForAgent, vmExecArgs } from './chunk-HPOEVC2V.js';
|
|
14
14
|
import { socketPathProblem, vsockLinks, linkVsockSockets } from './chunk-XGJUNNXL.js';
|
|
15
|
-
import { describeCallFailure, resolveGoverningSource, refusalCode, removeStagedContext, stageGovernedContext, pinnedSourceOf, commandWithShim, logStamp, createRunnerLog, formatDuration, retrySend, formatClock } from './chunk-
|
|
16
|
-
import { WorkCommandError, postJson, isSignatureRefusal, getJson } from './chunk-
|
|
15
|
+
import { describeCallFailure, resolveGoverningSource, refusalCode, removeStagedContext, stageGovernedContext, pinnedSourceOf, commandWithShim, logStamp, createRunnerLog, formatDuration, retrySend, formatClock } from './chunk-D7V33CAH.js';
|
|
16
|
+
import { WorkCommandError, postJson, isSignatureRefusal, getJson } from './chunk-XPKI5OMT.js';
|
|
17
17
|
import { planArtifactUpload } from './chunk-BUP5N3X6.js';
|
|
18
18
|
import { isBuiltinContainer, isBuiltinProcess, isBuiltinVm, DEFAULT_CHECK_TIME_LIMIT_MINUTES } from './chunk-JWRX5ZTT.js';
|
|
19
19
|
import { parseSize } from './chunk-7RQ73DLO.js';
|
|
@@ -214,7 +214,10 @@ function makeBuildsDirPrivate(buildDir2) {
|
|
|
214
214
|
}
|
|
215
215
|
async function helperFor(runtime, log) {
|
|
216
216
|
const probe = await runtime.vm.helper.probe();
|
|
217
|
-
if (probe.ok)
|
|
217
|
+
if (probe.ok) {
|
|
218
|
+
if (probe.firecracker !== FIRECRACKER_VERSION) log(`${helperFirecrackerNote(probe.firecracker)}; run \`outerlayer runner install --service --replace\` to update it`);
|
|
219
|
+
return probe.client;
|
|
220
|
+
}
|
|
218
221
|
if (probe.reason === "unsupported") log(probe.detail);
|
|
219
222
|
else if (probe.unreachable === true) log(`${probe.detail}, so this build runs without the jailer`);
|
|
220
223
|
return void 0;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { checkStarterFiles, contextIsGoverned, checkBuildSkill } from './chunk-XFGL53GU.js';
|
|
4
|
-
import { resolveCredentials, getJson, WorkCommandError } from './chunk-
|
|
5
|
-
import { isLinkedRepository } from './chunk-
|
|
4
|
+
import { resolveCredentials, getJson, WorkCommandError } from './chunk-XPKI5OMT.js';
|
|
5
|
+
import { isLinkedRepository } from './chunk-TEVO3RUV.js';
|
|
6
6
|
import { sanitizeTerminal } from './chunk-BUP5N3X6.js';
|
|
7
7
|
import { checkFormerSkillNames } from './chunk-MQ743JX3.js';
|
|
8
|
-
import { resolveGatewayCredentials, defaultFetch } from './chunk-
|
|
9
|
-
import { sanitizeForContext, spoolDir, assessSyncHealth, readSyncStatus, SYNC_STALE_AFTER_MS, formatAgo, checkInstalledCliStaleness, workspaceRootOf, hookFiredMarkerPath, refreshCommand } from './chunk-
|
|
8
|
+
import { resolveGatewayCredentials, defaultFetch } from './chunk-QRZLUUNN.js';
|
|
9
|
+
import { sanitizeForContext, spoolDir, assessSyncHealth, readSyncStatus, SYNC_STALE_AFTER_MS, formatAgo, checkInstalledCliStaleness, workspaceRootOf, hookFiredMarkerPath, refreshCommand } from './chunk-QIIMZC7W.js';
|
|
10
10
|
import { readStatuslineState, STATE_FRESH_MS } from './chunk-DXDF43YG.js';
|
|
11
11
|
import { hookCommandEscapesControlPlane, CONTROL_PLANE_DIR_VARIABLE } from './chunk-HCVLP7XA.js';
|
|
12
12
|
import { findGitDirs } from './chunk-BJ3KTMDH.js';
|
|
@@ -1186,7 +1186,7 @@ async function gatherDoctorChecks() {
|
|
|
1186
1186
|
const { runnerVmCheck } = await import('./doctor-53F2PYY7.js');
|
|
1187
1187
|
checks.push(runnerVmCheck(configPath, { lima: realLima(), home: homeFromEnv(), instance: runnerVm.instance }));
|
|
1188
1188
|
} else if (hasRunnerBlock(configPath)) {
|
|
1189
|
-
const { runnerHostChecks } = await import('./doctor-
|
|
1189
|
+
const { runnerHostChecks } = await import('./doctor-3QA5Y5HG.js');
|
|
1190
1190
|
const hooks = (() => {
|
|
1191
1191
|
try {
|
|
1192
1192
|
return loadRunnerConfig(configPath).hooks;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { fetchFactories, selectFactory, saveFactoryConnection, autoConnectedLine } from './chunk-
|
|
4
|
-
import { resolveGatewayCredentials } from './chunk-
|
|
3
|
+
import { fetchFactories, selectFactory, saveFactoryConnection, autoConnectedLine } from './chunk-TEVO3RUV.js';
|
|
4
|
+
import { resolveGatewayCredentials } from './chunk-QRZLUUNN.js';
|
|
5
5
|
import { findGitDirs, readRepoConnection } from './chunk-BJ3KTMDH.js';
|
|
6
6
|
import { resolveRepoIdentity } from './chunk-QE3UQAHK.js';
|
|
7
7
|
import { cliInvocation } from './chunk-CRB3POP4.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { LiveUploader } from './chunk-
|
|
4
|
-
import { spoolDir } from './chunk-
|
|
3
|
+
import { LiveUploader } from './chunk-PNHNKMA3.js';
|
|
4
|
+
import { spoolDir } from './chunk-QIIMZC7W.js';
|
|
5
5
|
import { CaptureDaemon } from './chunk-QE3UQAHK.js';
|
|
6
6
|
import { parseWorkItemEnv } from './chunk-T2Q7ISPE.js';
|
|
7
7
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { runnerImageVersion } from './chunk-665QWBNW.js';
|
|
4
|
-
import { readDefaultBranchHead, cloneRepository, buildRepositoryImage } from './chunk-
|
|
4
|
+
import { readDefaultBranchHead, cloneRepository, buildRepositoryImage } from './chunk-AINUN2TT.js';
|
|
5
5
|
import { startTimeOf, isSameProcess } from './chunk-JBJTC3UU.js';
|
|
6
6
|
import { currentCliBuild } from './chunk-OGFGZQA3.js';
|
|
7
|
-
import { createDockerHost, builderSpec, runnerLabelValue, RUNNER_LABEL, BUILD_LABEL, prepareRunArgs, containerRunArgs, HASH_ARGV, parseProgramHash, JUDGE_PROGRAM, containerExecArgs, childEnvironment, JUDGE_DIR, JUDGE_REPORT, MAX_REPORT_BYTES, spawnRun } from './chunk-
|
|
8
|
-
import { hostHelperPinned, firecrackerArch, MICROVM_ARCHES, RecipeError, DOCKER_FEATURE, CLAUDE_CODE_VERSION, GUEST_HELPER_SHA256, GUEST_ASSETS_BASE_URL, GUEST_KERNEL_SHA256, JAILER_BINARY_SHA256, FIRECRACKER_BINARY_SHA256, FIRECRACKER_SHA256,
|
|
7
|
+
import { createDockerHost, builderSpec, runnerLabelValue, RUNNER_LABEL, BUILD_LABEL, prepareRunArgs, containerRunArgs, HASH_ARGV, parseProgramHash, JUDGE_PROGRAM, containerExecArgs, childEnvironment, JUDGE_DIR, JUDGE_REPORT, MAX_REPORT_BYTES, spawnRun } from './chunk-7I6GZSN3.js';
|
|
8
|
+
import { FIRECRACKER_VERSION, hostHelperPinned, firecrackerArch, MICROVM_ARCHES, RecipeError, DOCKER_FEATURE, CLAUDE_CODE_VERSION, GUEST_HELPER_SHA256, GUEST_ASSETS_BASE_URL, GUEST_KERNEL_SHA256, JAILER_BINARY_SHA256, FIRECRACKER_BINARY_SHA256, FIRECRACKER_SHA256, GUEST_ASSETS_VERSION, DEFAULT_BASE_IMAGE } from './chunk-4R24DSL2.js';
|
|
9
9
|
import { execCapture } from './chunk-HPOEVC2V.js';
|
|
10
10
|
import { GUEST_CID } from './chunk-XGJUNNXL.js';
|
|
11
|
-
import { describeCallFailure, controlPlaneTokenFailure, refusalCode, resolveGoverningSource, removeStagedContext, stageGovernedContext, pinnedSourceOf, commandWithShim, shimScript } from './chunk-
|
|
12
|
-
import { WorkCommandError } from './chunk-
|
|
11
|
+
import { describeCallFailure, controlPlaneTokenFailure, refusalCode, resolveGoverningSource, removeStagedContext, stageGovernedContext, pinnedSourceOf, commandWithShim, shimScript } from './chunk-D7V33CAH.js';
|
|
12
|
+
import { WorkCommandError } from './chunk-XPKI5OMT.js';
|
|
13
13
|
import { hostAllowed } from './chunk-UXYLWVTQ.js';
|
|
14
14
|
import { parseDuKilobytes } from './chunk-7RQ73DLO.js';
|
|
15
15
|
import { sharedSkillNames, skillConflictMessage } from './chunk-VPEGE3QZ.js';
|
|
@@ -213,6 +213,9 @@ function helperClient(socketPath, options = {}) {
|
|
|
213
213
|
}
|
|
214
214
|
};
|
|
215
215
|
}
|
|
216
|
+
function helperFirecrackerNote(helperFirecracker) {
|
|
217
|
+
return `the root helper runs Firecracker ${helperFirecracker}, not the ${FIRECRACKER_VERSION} this release pins, so microVM builds run under the jailer with Firecracker ${helperFirecracker}`;
|
|
218
|
+
}
|
|
216
219
|
function reinstallMessage(protocol) {
|
|
217
220
|
const spoken = protocol === void 0 ? "a protocol it does not name" : `protocol ${protocol}`;
|
|
218
221
|
return `the root helper speaks ${spoken}, which this runner does not support, so microVM builds run without the jailer; run \`outerlayer runner install --service --replace\` to install the helper that goes with this release`;
|
|
@@ -476,8 +479,12 @@ async function download(file, url, fetchImpl) {
|
|
|
476
479
|
if (!response.ok) throw new AssetError(file, `${file} could not be downloaded from ${url}: the server answered ${response.status}`);
|
|
477
480
|
return Buffer.from(await response.arrayBuffer());
|
|
478
481
|
}
|
|
482
|
+
function keptPath(dir, sha256, name) {
|
|
483
|
+
mkdirSync(join(dir, sha256), { recursive: true, mode: RUNNER_DIR_MODE });
|
|
484
|
+
return join(dir, sha256, name);
|
|
485
|
+
}
|
|
479
486
|
async function ensureFile(dir, file, pin, fetchImpl, mode) {
|
|
480
|
-
const path =
|
|
487
|
+
const path = keptPath(dir, pin.sha256, file);
|
|
481
488
|
if (existsSync(path)) {
|
|
482
489
|
const actual2 = sha256Of(readFileSync(path));
|
|
483
490
|
if (actual2 !== pin.sha256) throw pinProblem(file, pin.sha256, actual2, `at ${path}`);
|
|
@@ -499,7 +506,7 @@ function extractWithTar(arch, program = "firecracker") {
|
|
|
499
506
|
}
|
|
500
507
|
async function ensureFirecracker(input) {
|
|
501
508
|
const { dir, arch, pins, fetchImpl } = input;
|
|
502
|
-
const firecracker =
|
|
509
|
+
const firecracker = keptPath(dir, pins.firecracker.binarySha256, "firecracker");
|
|
503
510
|
if (existsSync(firecracker)) {
|
|
504
511
|
const actual = sha256Of(readFileSync(firecracker));
|
|
505
512
|
if (actual !== pins.firecracker.binarySha256) throw pinProblem("firecracker", pins.firecracker.binarySha256, actual, `at ${firecracker}`);
|
|
@@ -549,7 +556,7 @@ async function ensureJailer(options) {
|
|
|
549
556
|
const fetchImpl = options.fetchImpl ?? fetch;
|
|
550
557
|
const dir = vmAssetsDir(options.runnerDir);
|
|
551
558
|
mkdirSync(dir, { recursive: true, mode: RUNNER_DIR_MODE });
|
|
552
|
-
const jailer =
|
|
559
|
+
const jailer = keptPath(dir, expected, "jailer");
|
|
553
560
|
if (existsSync(jailer)) {
|
|
554
561
|
const actual = sha256Of(readFileSync(jailer));
|
|
555
562
|
if (actual !== expected) throw pinProblem("jailer", expected, actual, `at ${jailer}`);
|
|
@@ -3304,4 +3311,4 @@ async function startCheckContainer(input) {
|
|
|
3304
3311
|
};
|
|
3305
3312
|
}
|
|
3306
3313
|
|
|
3307
|
-
export { ADDED_USER, AgentUserError, AssetError, DeliveryFailure, EVAL_INPUT_NAME, GH_CONFIG_YML, HelperRefusal, LEASE_SECONDS, MIN_ENGINE_MAJOR, cleanupContainer, containerCommandExec, containerJudgeEnvironment, containerSenderCommand, copyJudgeTree, copyTranscripts, copyTranscriptsFromContainer, createBuildDisk, createContainerRuntime, deleteBuildDisk, deliverContainerHooks, ensureFirecrackerAndJailer, ensureRootfs, ensureTunnel, filesAreCopied, ghHostsYml, gitRemoteFor, helperSocketPath, isLiteralAddress, keepGhConfigCurrent, leaseExpiresAtMs, lifecycleFailureReason, lifecycleSteps, machineConfig, measureDisk, obtainImage, outOfMemoryReason, parseCpuList, prepareBranch, probeHelper, provisionContainer, resolveAgentUser, runBuildSteps, senderAliveScript, senderSignalScript, setUpRunnerCgroup, shellQuote, signalInContainer, startCheckContainer, startServicesFor, stopContainer, syncInContainer, writeEvalInput };
|
|
3314
|
+
export { ADDED_USER, AgentUserError, AssetError, DeliveryFailure, EVAL_INPUT_NAME, GH_CONFIG_YML, HelperRefusal, LEASE_SECONDS, MIN_ENGINE_MAJOR, cleanupContainer, containerCommandExec, containerJudgeEnvironment, containerSenderCommand, copyJudgeTree, copyTranscripts, copyTranscriptsFromContainer, createBuildDisk, createContainerRuntime, deleteBuildDisk, deliverContainerHooks, ensureFirecrackerAndJailer, ensureRootfs, ensureTunnel, filesAreCopied, ghHostsYml, gitRemoteFor, helperFirecrackerNote, helperSocketPath, isLiteralAddress, keepGhConfigCurrent, leaseExpiresAtMs, lifecycleFailureReason, lifecycleSteps, machineConfig, measureDisk, obtainImage, outOfMemoryReason, parseCpuList, prepareBranch, probeHelper, provisionContainer, resolveAgentUser, runBuildSteps, senderAliveScript, senderSignalScript, setUpRunnerCgroup, shellQuote, signalInContainer, startCheckContainer, startServicesFor, stopContainer, syncInContainer, writeEvalInput };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { detectMachine, supportsContainerBuilds, reachDockerStep, describeMachineDocker, supportsMicroVmBuilds } from './chunk-
|
|
4
|
-
import { MIN_ENGINE_MAJOR } from './chunk-
|
|
3
|
+
import { detectMachine, supportsContainerBuilds, reachDockerStep, describeMachineDocker, supportsMicroVmBuilds } from './chunk-7NKVMAP6.js';
|
|
4
|
+
import { MIN_ENGINE_MAJOR } from './chunk-ILL2CWOU.js';
|
|
5
5
|
import { hasStoredCredential, AGENT_COMMANDS, storeClaudeCredential, credentialFromStdin, isAgentName } from './chunk-5PMQDQFV.js';
|
|
6
6
|
import { runnerCredentialProblem } from './chunk-JWRX5ZTT.js';
|
|
7
7
|
import { runnerDir, RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-L4CW6LZQ.js';
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { uploadSpooledSteps } from './chunk-
|
|
3
|
+
import { uploadSpooledSteps } from './chunk-EORWWFPA.js';
|
|
4
4
|
import { LaunchFilter } from './chunk-ESVW4MJY.js';
|
|
5
5
|
import { RepoFilter } from './chunk-TBT347UY.js';
|
|
6
6
|
import { migrateLegacyArtifactSidecars, planArtifactUpload, artifactsStatePath, sanitizeTerminal, acquireArtifactSpoolLock, artifactBlobsDir, resolveArtifactTurnIndex, isArtifactTombstoned, ARTIFACT_RETRY_MAX_AGE_MS, writeArtifactSpoolState, reclaimUnneededArtifactBlobs, neededArtifactShas } from './chunk-BUP5N3X6.js';
|
|
7
|
-
import { cliFetch, resolveGatewayCredentials, defaultFetch, unauthorizedMessage } from './chunk-
|
|
8
|
-
import { writeSyncStatus, spoolDir } from './chunk-
|
|
7
|
+
import { cliFetch, resolveGatewayCredentials, defaultFetch, unauthorizedMessage } from './chunk-QRZLUUNN.js';
|
|
8
|
+
import { writeSyncStatus, spoolDir } from './chunk-QIIMZC7W.js';
|
|
9
9
|
import { readLatestProvenanceForSession, readContextProvenance } from './chunk-ZJSNLVCE.js';
|
|
10
10
|
import { hookExecSpoolPath } from './chunk-DYEFPYME.js';
|
|
11
11
|
import { applyReportedCost } from './chunk-BKO6JEZI.js';
|
|
@@ -628,7 +628,7 @@ async function missingControlPlane(cwd, sessionId, home, env) {
|
|
|
628
628
|
cleanupEarlierCopies(dirs);
|
|
629
629
|
}
|
|
630
630
|
if (!contextPossiblyGoverned(cwd, home)) return void 0;
|
|
631
|
-
const { governanceOf } = await import('./control-plane-launch-
|
|
631
|
+
const { governanceOf } = await import('./control-plane-launch-654RV5PO.js');
|
|
632
632
|
if (await governanceOf({ cwd, env, home }) !== "governed") return void 0;
|
|
633
633
|
recordMissingContext(dirs, sessionId, home);
|
|
634
634
|
const launcher = `${cliInvocation()} claude`;
|
|
@@ -13,7 +13,15 @@ createRequire(import.meta.url);
|
|
|
13
13
|
var MISSING_HELP = `Run \`${cliInvocation()} login\` to sign in, or set OUTERLAYER_URL / OUTERLAYER_API_KEY / OUTERLAYER_APP_ID. Mint a key in the dashboard: Settings \u2192 API keys.`;
|
|
14
14
|
var NO_FACTORY_MESSAGE = `you are logged in, but no factory is chosen for this repository. Run \`${cliInvocation()} connect\` to choose one, or pass --app-id / set OUTERLAYER_APP_ID.`;
|
|
15
15
|
var NO_FACTORY_OUTSIDE_REPOSITORY_MESSAGE = "you are logged in, but this directory is not in a git repository, so no factory is chosen. Pass --app-id / set OUTERLAYER_APP_ID, or run this from inside a connected repository.";
|
|
16
|
+
var ORIGIN_MISMATCH_MESSAGE = "the gateway address is not the one your saved credential belongs to. A saved login or key is only sent to the address it was created for, so nothing can redirect it \u2014 or the session transcripts a sync carries with it \u2014 to a host set through OUTERLAYER_URL or --url. To call a different gateway, pass its own key too: --url <addr> --api-key <key>, or set OUTERLAYER_API_KEY beside OUTERLAYER_URL.";
|
|
16
17
|
var LOGIN_TOKEN_PREFIX = "olu_";
|
|
18
|
+
function sameOrigin(a, b) {
|
|
19
|
+
try {
|
|
20
|
+
return new URL(a).origin === new URL(b).origin;
|
|
21
|
+
} catch {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
17
25
|
function unauthorizedMessage(credential) {
|
|
18
26
|
return credential.startsWith(LOGIN_TOKEN_PREFIX) ? `not authorized \u2014 the login is expired or was revoked. Run \`${cliInvocation()} login\` to sign in again.` : "not authorized \u2014 the API key is unknown, expired, or bound to a different factory. Mint a fresh key: dashboard \u2192 Settings \u2192 API keys.";
|
|
19
27
|
}
|
|
@@ -26,6 +34,11 @@ function resolveGatewayCredentials(sources = {}) {
|
|
|
26
34
|
const credential = key ?? config.accountToken;
|
|
27
35
|
const cwd = sources.cwd ?? process.cwd();
|
|
28
36
|
const appId = sources.appId ?? (env.OUTERLAYER_APP_ID || void 0) ?? (kind === "key" ? config.appId : readRepoConnection(cwd)?.appId);
|
|
37
|
+
const suppliedKey = sources.apiKey !== void 0 || Boolean(env.OUTERLAYER_API_KEY);
|
|
38
|
+
const savedCredential = credential != null && !suppliedKey && (credential === config.apiKey || credential === config.accountToken);
|
|
39
|
+
if (savedCredential && url && config.url && !sameOrigin(url, config.url)) {
|
|
40
|
+
return { ok: false, message: ORIGIN_MISMATCH_MESSAGE, url, credential, appId, kind };
|
|
41
|
+
}
|
|
29
42
|
if (credential && url && !appId && kind === "login") {
|
|
30
43
|
const message = findGitDirs(cwd) === void 0 ? NO_FACTORY_OUTSIDE_REPOSITORY_MESSAGE : NO_FACTORY_MESSAGE;
|
|
31
44
|
return { ok: false, message, url, credential, appId, kind };
|
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { releaseLease, isUnfinished, setStage, jobEnv, runHook, describeHookEnd, provisionMicroVm, deliverCommitHooks, provisionProcess, provisionEnvironment, readProvisionOut, resolveHostBuild, workdirProblem, listenOnBroker, hostEnvironment, hostCommandEnvironment, execArgv, microVmCommandLine, runCommand, commandLogOffset, execCommandLine, startSender, startHostServices, finishJob, isContainerTracked, probeCommand, appendCommandLog, judgeProbe, EXIT_CODE_FILE, isGroupAlive, outcomeFromExitCode, isTimedOut, readCpuUsec, isIdle, stopOrphanedMicroVms, unfinishedJobs, listUnreadableJobs, listAdoptableJobs, retryFailedReleases, recoverLostJobs, hookLimitsFor, AttemptLogBook, needsRenew, renewLease, RENEW_INTERVAL_SECONDS, listTrackedJobs, restartSender, ALREADY_RELEASED, inTeardown } from './chunk-
|
|
3
|
+
import { releaseLease, isUnfinished, setStage, jobEnv, runHook, describeHookEnd, provisionMicroVm, deliverCommitHooks, provisionProcess, provisionEnvironment, readProvisionOut, resolveHostBuild, workdirProblem, listenOnBroker, hostEnvironment, hostCommandEnvironment, execArgv, microVmCommandLine, runCommand, commandLogOffset, execCommandLine, startSender, startHostServices, finishJob, isContainerTracked, probeCommand, appendCommandLog, judgeProbe, EXIT_CODE_FILE, isGroupAlive, outcomeFromExitCode, isTimedOut, readCpuUsec, isIdle, stopOrphanedMicroVms, unfinishedJobs, listUnreadableJobs, listAdoptableJobs, retryFailedReleases, recoverLostJobs, hookLimitsFor, AttemptLogBook, needsRenew, renewLease, RENEW_INTERVAL_SECONDS, listTrackedJobs, restartSender, ALREADY_RELEASED, inTeardown } from './chunk-GAWZ7ATV.js';
|
|
4
4
|
import { writePendingUpdate } from './chunk-TKL74NLB.js';
|
|
5
5
|
import { JOB_STATE_FORMAT, readsJobState, jobStateFormatOf } from './chunk-ZVB57WI6.js';
|
|
6
6
|
import { readHousekeepingRecord, writeHousekeepingRecord } from './chunk-6FAP657M.js';
|
|
7
7
|
import { decideInstalledSwitch } from './chunk-3JVYMD4G.js';
|
|
8
8
|
import { fetchVersionMeta, npmVersion, npmSupportsProvenance, fetchTarballDigest, fetchProvenance, installVersion, auditSignatures } from './chunk-YETTWTAY.js';
|
|
9
9
|
import { RUNNER_PROTOCOL } from './chunk-TPKYTORP.js';
|
|
10
|
-
import { currentSkillCommand, formerSkillProblem, placeholderQueues, placeholderProblem } from './chunk-
|
|
10
|
+
import { currentSkillCommand, formerSkillProblem, placeholderQueues, placeholderProblem } from './chunk-BMWIUSTZ.js';
|
|
11
11
|
import { writeMarker, readMarker, currentVersion, removeMarker, entryIn, versionDir, startedThroughCurrent, switchCurrent, isInLayout, cleanVersions, stagingDir } from './chunk-4IFKLYMM.js';
|
|
12
12
|
import { freeBytes, formatBytes } from './chunk-YYYRBYWG.js';
|
|
13
13
|
import { RepoFilter } from './chunk-TBT347UY.js';
|
|
14
|
-
import { LEASE_SECONDS, provisionContainer, leaseExpiresAtMs, deliverContainerHooks, lifecycleSteps, lifecycleFailureReason, prepareBranch, containerCommandExec, measureDisk, setUpRunnerCgroup, createContainerRuntime, parseCpuList, ensureTunnel, keepGhConfigCurrent, filesAreCopied } from './chunk-
|
|
14
|
+
import { LEASE_SECONDS, provisionContainer, leaseExpiresAtMs, deliverContainerHooks, lifecycleSteps, lifecycleFailureReason, prepareBranch, containerCommandExec, measureDisk, setUpRunnerCgroup, createContainerRuntime, parseCpuList, ensureTunnel, keepGhConfigCurrent, filesAreCopied } from './chunk-ILL2CWOU.js';
|
|
15
15
|
import { tagToPull, pullInstruction, imageTag, writeUpdateStatus } from './chunk-665QWBNW.js';
|
|
16
16
|
import { isVersion, compareVersions, satisfiesRange } from './chunk-TQMI335S.js';
|
|
17
17
|
import { checkFit } from './chunk-MLD2NA7N.js';
|
|
18
18
|
import { claimPidFile, readPidFile, releasePidFile } from './chunk-PYSKSROG.js';
|
|
19
19
|
import { startTimeOf, isSameProcess } from './chunk-JBJTC3UU.js';
|
|
20
|
-
import { writeJobFile, ensureRunnerIdentity, readJobFile, builderName, runnerLabelValue, ensureFailureCount, builderSpec, ensureBuilder, spawnRun, BUILD_LABEL, RUNNER_LABEL, readJobFileChecked } from './chunk-
|
|
21
|
-
import { describeCallFailure, retrySend, shortClaim, relativeToRunner, formatDuration, BuildTokens, classifyRefusal, refusalCode, createRunnerLog, formatClock } from './chunk-
|
|
22
|
-
import { isSignatureRefusal, WorkCommandError, getJson, postJson } from './chunk-
|
|
20
|
+
import { writeJobFile, ensureRunnerIdentity, readJobFile, builderName, runnerLabelValue, ensureFailureCount, builderSpec, ensureBuilder, spawnRun, BUILD_LABEL, RUNNER_LABEL, readJobFileChecked } from './chunk-7I6GZSN3.js';
|
|
21
|
+
import { describeCallFailure, retrySend, shortClaim, relativeToRunner, formatDuration, BuildTokens, classifyRefusal, refusalCode, createRunnerLog, formatClock } from './chunk-D7V33CAH.js';
|
|
22
|
+
import { isSignatureRefusal, WorkCommandError, getJson, postJson } from './chunk-XPKI5OMT.js';
|
|
23
23
|
import { isBuiltinContainer, isBuiltinVm, isBuiltinProcess, loadRunnerConfig, checkHooks, builtinKind, DEFAULT_UPDATE_MAX_WAIT_HOURS } from './chunk-JWRX5ZTT.js';
|
|
24
24
|
import { exceedsDisk } from './chunk-7RQ73DLO.js';
|
|
25
25
|
import { resolveVersion } from './chunk-RA3O54FC.js';
|
|
@@ -1746,7 +1746,7 @@ var CLAIM_REFUSAL_CODES = new Set(
|
|
|
1746
1746
|
"pull_request_from_fork pull_request_on_default_branch pull_request_ambiguous pull_request_repository_not_connected repository_not_reachable branch_claimed_elsewhere".split(" ")
|
|
1747
1747
|
);
|
|
1748
1748
|
async function tryClaimAndStart(state, item, queue) {
|
|
1749
|
-
const { postJson: postJson2 } = await import('./work-cmd-
|
|
1749
|
+
const { postJson: postJson2 } = await import('./work-cmd-TGSNYPSG.js');
|
|
1750
1750
|
const log = logOf(state);
|
|
1751
1751
|
const hostKey = await loadHostKey(state.config.configPath);
|
|
1752
1752
|
const claim = await retrySend(
|
|
@@ -2730,7 +2730,7 @@ async function start(configPath, deps = { fetchImpl: fetch }) {
|
|
|
2730
2730
|
const outcome = await onStartUnderMarker({
|
|
2731
2731
|
configPath,
|
|
2732
2732
|
own: ownVersionOf(deps),
|
|
2733
|
-
check: update.check ? () => update.check(configPath) : async () => (await import('./check-
|
|
2733
|
+
check: update.check ? () => update.check(configPath) : async () => (await import('./check-3CBJVXZD.js')).runRunnerCheck(configPath, { fetchImpl: deps.fetchImpl }),
|
|
2734
2734
|
now: () => (deps.now ?? (() => /* @__PURE__ */ new Date()))().getTime(),
|
|
2735
2735
|
log
|
|
2736
2736
|
});
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { sanitizeTerminal } from './chunk-BUP5N3X6.js';
|
|
4
4
|
import { DEFAULT_DASHBOARD } from './chunk-XSPA5ODY.js';
|
|
5
|
-
import { cliFetch, resolveGatewayCredentials } from './chunk-
|
|
5
|
+
import { cliFetch, resolveGatewayCredentials } from './chunk-QRZLUUNN.js';
|
|
6
6
|
import { writeRepoConnection, findGitDirs, readRepoConnection } from './chunk-BJ3KTMDH.js';
|
|
7
7
|
import { remoteLookupFailed } from './chunk-QE3UQAHK.js';
|
|
8
8
|
import { readCloudConfig } from './chunk-EABW6AJQ.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { autoConnect, detectActiveSession } from './chunk-
|
|
4
|
-
import { defaultFetch, unauthorizedMessage, resolveGatewayCredentials } from './chunk-
|
|
3
|
+
import { autoConnect, detectActiveSession } from './chunk-HXFRJKMU.js';
|
|
4
|
+
import { defaultFetch, unauthorizedMessage, resolveGatewayCredentials } from './chunk-QRZLUUNN.js';
|
|
5
5
|
import { resolveRepoIdentity } from './chunk-QE3UQAHK.js';
|
|
6
6
|
import { C } from './chunk-ANPNT6PM.js';
|
|
7
7
|
import { parseWorkItemEnv } from './chunk-T2Q7ISPE.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { removeRetiredSkills } from './chunk-MQ743JX3.js';
|
|
4
|
-
import { defaultFetch, resolveGatewayCredentials } from './chunk-
|
|
4
|
+
import { defaultFetch, resolveGatewayCredentials } from './chunk-QRZLUUNN.js';
|
|
5
5
|
import { appendContextProvenance } from './chunk-ZJSNLVCE.js';
|
|
6
6
|
import { loadMaintainedFiles, writeMaintainedFiles } from './chunk-HBISTTG3.js';
|
|
7
7
|
import { cliInvocation } from './chunk-CRB3POP4.js';
|