@outerlayer/cli 0.26.2 → 0.26.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/{agent-setup-PZYQWN4H.js → agent-setup-5DXPEO64.js} +7 -7
  3. package/dist/{build-AW4A2QPK.js → build-F5QWH7G5.js} +4 -4
  4. package/dist/build-info.json +1 -1
  5. package/dist/{builder-TDCBQ2RD.js → builder-KDUXCHTY.js} +4 -4
  6. package/dist/{check-KL3LDAI3.js → check-ZSYCR5WG.js} +31 -31
  7. package/dist/{chunk-OL2O5PEI.js → chunk-27RDUTQH.js} +21 -13
  8. package/dist/{chunk-665QWBNW.js → chunk-2J46BQ5Y.js} +1 -1
  9. package/dist/{chunk-W3NVHOCS.js → chunk-4UFSTKE5.js} +1 -1
  10. package/dist/{chunk-XSPA5ODY.js → chunk-6BLXUD56.js} +4 -3
  11. package/dist/{chunk-GMPXOQTH.js → chunk-6CGXSMKX.js} +5 -5
  12. package/dist/{chunk-MLD2NA7N.js → chunk-6SPXKRQR.js} +1 -1
  13. package/dist/{chunk-XFGL53GU.js → chunk-6WTAYEKJ.js} +1 -1
  14. package/dist/{chunk-4IFKLYMM.js → chunk-7Z2WMXM5.js} +1 -1
  15. package/dist/{chunk-FI66JNLT.js → chunk-B6K7R5UY.js} +4 -4
  16. package/dist/{chunk-RO3BRAO6.js → chunk-EHBDYLM6.js} +3 -3
  17. package/dist/{chunk-L4CW6LZQ.js → chunk-F3BBEBPL.js} +4 -1
  18. package/dist/{chunk-GOSFARMS.js → chunk-G2JWZDFA.js} +9 -2
  19. package/dist/{chunk-DJILFADE.js → chunk-GFHLEVUE.js} +3 -3
  20. package/dist/{chunk-F6DIHHBS.js → chunk-GWRDL75D.js} +1 -1
  21. package/dist/{chunk-HXFRJKMU.js → chunk-H57M3HC7.js} +2 -2
  22. package/dist/{chunk-PYSKSROG.js → chunk-IZAOO5AR.js} +1 -1
  23. package/dist/{chunk-KDDFI5MR.js → chunk-K4FXNMV5.js} +1 -1
  24. package/dist/{chunk-6M4LNO22.js → chunk-KNBWOL2B.js} +2 -2
  25. package/dist/{chunk-YVZJ6GKF.js → chunk-KT4CN6OU.js} +1 -1
  26. package/dist/{chunk-QRZLUUNN.js → chunk-MCSINUVC.js} +8 -3
  27. package/dist/{chunk-6FAP657M.js → chunk-NWPRNKZ5.js} +1 -1
  28. package/dist/{chunk-TPAF24PK.js → chunk-O4362FPA.js} +2 -2
  29. package/dist/{chunk-TKL74NLB.js → chunk-OFTFW7TH.js} +1 -1
  30. package/dist/{chunk-PCY7IGSL.js → chunk-OQUD3UYF.js} +4 -4
  31. package/dist/{chunk-DXHISLCI.js → chunk-OZKEEXVH.js} +28 -7
  32. package/dist/{chunk-EABW6AJQ.js → chunk-PJDQPF5N.js} +18 -5
  33. package/dist/{chunk-TEVO3RUV.js → chunk-PZA6ZFYW.js} +3 -3
  34. package/dist/{chunk-V5LUWRCV.js → chunk-Q2SVLBMI.js} +2 -2
  35. package/dist/{chunk-KZLLLARE.js → chunk-QUP6CVBQ.js} +3 -3
  36. package/dist/{chunk-GUT4IU7K.js → chunk-SBW4K3XZ.js} +17 -8
  37. package/dist/{chunk-TODY3MTS.js → chunk-UOGQZQXN.js} +4 -4
  38. package/dist/{chunk-2EAVBJMO.js → chunk-UZEQVPKF.js} +40 -3
  39. package/dist/{chunk-6OYAW5SF.js → chunk-V3YJFEZA.js} +29 -22
  40. package/dist/{chunk-5PMQDQFV.js → chunk-VGHKTSHU.js} +2 -2
  41. package/dist/{chunk-U2FSJBNI.js → chunk-VQ7OAG6H.js} +5 -5
  42. package/dist/{chunk-EORWWFPA.js → chunk-WK35HB56.js} +2 -2
  43. package/dist/{chunk-JF572PM5.js → chunk-Y4BXRVDI.js} +3 -3
  44. package/dist/{chunk-WA7R6U2F.js → chunk-ZMZGWLYD.js} +7 -7
  45. package/dist/{claude-launcher-O2U6P6ZD.js → claude-launcher-TTLTS4N6.js} +1 -1
  46. package/dist/{cli-UH2YQA5M.js → cli-SKF3AMZ5.js} +89 -89
  47. package/dist/{command-ZECJJNLY.js → command-E5OG5NCH.js} +22 -22
  48. package/dist/{connect-cmd-2JHSLBXK.js → connect-cmd-SL4S5HJM.js} +7 -7
  49. package/dist/{container-start-GFH5LLSG.js → container-start-IA2HK4QI.js} +21 -21
  50. package/dist/{control-plane-launch-654RV5PO.js → control-plane-launch-JIQOE6BP.js} +5 -5
  51. package/dist/{docker-Q7QJMX7I.js → docker-KKE5Q5S2.js} +4 -4
  52. package/dist/{doctor-3LCCPBX6.js → doctor-U2N7AF3N.js} +24 -24
  53. package/dist/{emit-artifact-cmd-AIBDDJGW.js → emit-artifact-cmd-SDG5H6D7.js} +11 -11
  54. package/dist/{emit-criteria-cmd-VMZIRJCQ.js → emit-criteria-cmd-QGSP77AG.js} +8 -8
  55. package/dist/{emit-finding-cmd-KMJNYQI7.js → emit-finding-cmd-6FGMTEFM.js} +8 -8
  56. package/dist/{emit-result-cmd-LQN6AGGP.js → emit-result-cmd-AUPIXPEU.js} +11 -11
  57. package/dist/{emit-step-cmd-AUHA3EXY.js → emit-step-cmd-PORHEKHN.js} +9 -9
  58. package/dist/{governing-source-5OU235UP.js → governing-source-YPBK4H5H.js} +11 -11
  59. package/dist/hook-fast-XMZFMBKC.js +12 -0
  60. package/dist/{pending-54HC7MM3.js → host-key-GQFBRX3J.js} +2 -2
  61. package/dist/{image-tag-5SJ6ZKT7.js → image-tag-W4JKVNP4.js} +2 -2
  62. package/dist/index.js +4 -4
  63. package/dist/{init-ARB2JUPA.js → init-GEFKJNJU.js} +21 -21
  64. package/dist/{init-C2RROWQU.js → init-Y64OAKKQ.js} +21 -21
  65. package/dist/{init-cmd-SLXPX44L.js → init-cmd-YR4LLIRU.js} +13 -13
  66. package/dist/{init-update-FJDKY4SJ.js → init-update-46G6QJHB.js} +11 -11
  67. package/dist/{install-QSTTBUHX.js → install-AFMXH25X.js} +2 -2
  68. package/dist/{install-cmd-3DXJJUAA.js → install-cmd-X5XCUTSX.js} +4 -4
  69. package/dist/{login-browser-4OMZFP3U.js → login-browser-EWXSGHM7.js} +3 -3
  70. package/dist/{logout-cmd-5V5MMBSY.js → logout-cmd-5WE2N5B5.js} +2 -2
  71. package/dist/{logs-VN2HKDSH.js → logs-PKNQOJN6.js} +1 -1
  72. package/dist/{loop-QQV4PYNX.js → loop-3TJKFRN7.js} +31 -31
  73. package/dist/{machine-OVXDPPFK.js → machine-3W4LKTEW.js} +18 -18
  74. package/dist/{mcp-install-cmd-GGWB3JJ2.js → mcp-install-cmd-LD7KYAOP.js} +2 -2
  75. package/dist/{mcp-serve-cmd-U5N5DK3H.js → mcp-serve-cmd-MJIJHSQ6.js} +4 -4
  76. package/dist/{paths-ZC6BMWMT.js → paths-6V7572NN.js} +1 -1
  77. package/dist/{host-key-5TKBNUZ4.js → pending-GUHHKO42.js} +2 -2
  78. package/dist/{pidfile-BY5Z6YH7.js → pidfile-ZQOFDY7T.js} +2 -2
  79. package/dist/{record-K23IN6QN.js → record-C4ZVSLKV.js} +2 -2
  80. package/dist/{runner-env-2D7MPOIJ.js → runner-env-6Q2RMENH.js} +3 -3
  81. package/dist/{runner-identity-QQU6BUUO.js → runner-identity-DP577A7S.js} +4 -4
  82. package/dist/{runner-key-WIEESRA5.js → runner-key-LR5P2EJ5.js} +21 -21
  83. package/dist/{session-sender-DFB2N3DO.js → session-sender-ZTPWIU5L.js} +12 -12
  84. package/dist/{spec-cmd-FBA4BJPZ.js → spec-cmd-RLZMX67G.js} +9 -9
  85. package/dist/{status-V2DWSLL3.js → status-GNUOTHRH.js} +22 -22
  86. package/dist/{sync-cmd-KU567KX6.js → sync-cmd-GLWEAULP.js} +11 -11
  87. package/dist/{watch-LBPCO6GR.js → watch-F47NPUDX.js} +11 -11
  88. package/dist/{work-claim-cmd-IT7R7G3E.js → work-claim-cmd-GXPIRRBG.js} +11 -11
  89. package/dist/{work-cmd-SJB6N6FZ.js → work-cmd-S2FHIFJA.js} +9 -9
  90. package/dist/{work-comment-cmd-FGUQM2F3.js → work-comment-cmd-UJRKULO6.js} +9 -9
  91. package/dist/{work-logs-cmd-74GRYFTW.js → work-logs-cmd-SCAHJXSP.js} +9 -9
  92. package/dist/{work-open-pr-cmd-CX7A2BE5.js → work-open-pr-cmd-BGMHUQGD.js} +10 -10
  93. package/dist/{work-pr-cmd-DKTBEFHO.js → work-pr-cmd-EDDRP5DK.js} +9 -9
  94. package/dist/{work-stop-cmd-W6EKY5Y3.js → work-stop-cmd-ADE5K6UX.js} +9 -9
  95. package/package.json +1 -1
  96. package/dist/hook-fast-LZSHEKUA.js +0 -12
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @outerlayer/cli
2
2
 
3
+ ## 0.26.4
4
+
5
+ ### Patch Changes
6
+
7
+ - f9ed270: A `~/.outerlayer/config.json` that is not valid JSON is no longer written over. `login`, `logout` and every command that uses the saved login stop with an error that names the file, so a hand-set key such as `autoSync`, `repos` or the runner block is never lost.
8
+ - 1fc1f42: The root helper that `outerlayer runner install --service` installs can point a running microVM build at the runner's new sockets, which a runner that starts again needs to reach that build.
9
+ - fe4299b: The runner keeps a governed build's context on the host after it delivers it. The judge and the host's checks read their definitions from that copy, at the commit the build was given. Before, they fetched the control plane again with a new token, and the gateway refused it for an amend whose own push resolved the merge conflict that started it. The judge and the checks then never ran. When the judge cannot read its definitions, the item's reason now says so first. The runner also asks for the read token of every repository in a claim when it claims the item, so a refusal ends the attempt before the image build.
10
+ - 5f01c67: Stub the systemd service probes once for every unit test, and write the NUL separator in `doctor` as an escape.
11
+
12
+ ## 0.26.3
13
+
14
+ ### Patch Changes
15
+
16
+ - bdf88b4: MicroVM builds boot a Linux 6.18 guest kernel, the newer of the two guest kernels Firecracker 1.17 supports.
17
+ - bdfdf7b: A machine with OuterLayer's hooks in both managed settings and user settings records each hook event once. Claude Code starts both copies of the hook; the second one does nothing, so the session's warnings appear once and Work is called once.
18
+
3
19
  ## 0.26.2
4
20
 
5
21
  ### Patch Changes
@@ -1,16 +1,16 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { keepHandWritten, runAgentSetup } from './chunk-6M4LNO22.js';
3
+ export { keepHandWritten, runAgentSetup } from './chunk-KNBWOL2B.js';
4
4
  import './chunk-WX2WEERU.js';
5
5
  import './chunk-VJBFQP3H.js';
6
- import './chunk-W3NVHOCS.js';
6
+ import './chunk-4UFSTKE5.js';
7
7
  import './chunk-MQ743JX3.js';
8
- import './chunk-QRZLUUNN.js';
8
+ import './chunk-MCSINUVC.js';
9
9
  import './chunk-ZJSNLVCE.js';
10
10
  import './chunk-BJ3KTMDH.js';
11
- import './chunk-YVZJ6GKF.js';
11
+ import './chunk-KT4CN6OU.js';
12
12
  import './chunk-ANPNT6PM.js';
13
- import './chunk-EABW6AJQ.js';
13
+ import './chunk-PJDQPF5N.js';
14
14
  import './chunk-JKNYTNYD.js';
15
15
  import './chunk-HBISTTG3.js';
16
16
  import './chunk-CRB3POP4.js';
@@ -21,8 +21,8 @@ import './chunk-RKOTJQVG.js';
21
21
  import './chunk-QZBXLLTV.js';
22
22
  import './chunk-VNVZDWO3.js';
23
23
  import './chunk-RA3O54FC.js';
24
- import './chunk-F6DIHHBS.js';
25
- import './chunk-L4CW6LZQ.js';
24
+ import './chunk-GWRDL75D.js';
25
+ import './chunk-F3BBEBPL.js';
26
26
  import './chunk-2K3TCQHW.js';
27
27
  import './chunk-JGD5TWQ2.js';
28
28
  import './chunk-Z5GEFMRW.js';
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { buildRepositoryImage } from './chunk-DJILFADE.js';
4
- import './chunk-PYSKSROG.js';
3
+ export { buildRepositoryImage } from './chunk-GFHLEVUE.js';
4
+ import './chunk-IZAOO5AR.js';
5
5
  import './chunk-JBJTC3UU.js';
6
- export { RecipeError } from './chunk-FI66JNLT.js';
7
- import './chunk-L4CW6LZQ.js';
6
+ export { RecipeError } from './chunk-B6K7R5UY.js';
7
+ import './chunk-F3BBEBPL.js';
8
8
  import './chunk-2K3TCQHW.js';
9
9
  import './chunk-JGD5TWQ2.js';
10
10
  import './chunk-Z5GEFMRW.js';
@@ -1 +1 @@
1
- {"id":"2026-10-16T18:16:32.915Z+7b81ff6","root":"/home/runner/_work/outerlayer/outerlayer","pkg":"outerlayer"}
1
+ {"id":"2026-10-16T21:01:44.837Z+065fff7","root":"/home/runner/_work/outerlayer/outerlayer","pkg":"outerlayer"}
@@ -1,12 +1,12 @@
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-KZLLLARE.js';
4
- import './chunk-FI66JNLT.js';
3
+ export { MIN_BUILDX_VERSION, builderName, builderSpec, buildxState, ensureBuilder, ensureFailureCount, isOutOfMemory, proxyEnvironment, trackImageBuild } from './chunk-QUP6CVBQ.js';
4
+ import './chunk-B6K7R5UY.js';
5
5
  import './chunk-7RQ73DLO.js';
6
6
  import './chunk-QE3UQAHK.js';
7
7
  import './chunk-QZBXLLTV.js';
8
- import './chunk-F6DIHHBS.js';
9
- import './chunk-L4CW6LZQ.js';
8
+ import './chunk-GWRDL75D.js';
9
+ import './chunk-F3BBEBPL.js';
10
10
  import './chunk-2K3TCQHW.js';
11
11
  import './chunk-JGD5TWQ2.js';
12
12
  import './chunk-Z5GEFMRW.js';
@@ -1,53 +1,53 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { probeCredentials } from './chunk-6OYAW5SF.js';
4
- import './chunk-OL2O5PEI.js';
5
- import './chunk-TKL74NLB.js';
3
+ import { probeCredentials } from './chunk-V3YJFEZA.js';
4
+ import './chunk-27RDUTQH.js';
5
+ import './chunk-OFTFW7TH.js';
6
6
  import './chunk-ZVB57WI6.js';
7
- import './chunk-6FAP657M.js';
7
+ import './chunk-NWPRNKZ5.js';
8
8
  import './chunk-3JVYMD4G.js';
9
9
  import './chunk-YETTWTAY.js';
10
10
  import './chunk-TPKYTORP.js';
11
- import './chunk-V5LUWRCV.js';
11
+ import './chunk-Q2SVLBMI.js';
12
12
  import './chunk-MWPBF2XG.js';
13
13
  import './chunk-UNF7MWEL.js';
14
- import './chunk-U2FSJBNI.js';
15
- import './chunk-EORWWFPA.js';
14
+ import './chunk-VQ7OAG6H.js';
15
+ import './chunk-WK35HB56.js';
16
16
  import './chunk-ESVW4MJY.js';
17
- import { placeholderQueues, placeholderProblem, permissionModeProblems, permissionModeProblem, needsClaudeCredential, claudeCredentialCheck, claimPermissionProblem, formerSkillQueues, formerSkillProblem } from './chunk-TODY3MTS.js';
18
- import './chunk-4IFKLYMM.js';
17
+ import { placeholderQueues, placeholderProblem, permissionModeProblems, permissionModeProblem, needsClaudeCredential, claudeCredentialCheck, claimPermissionProblem, formerSkillQueues, formerSkillProblem } from './chunk-UOGQZQXN.js';
18
+ import './chunk-7Z2WMXM5.js';
19
19
  import './chunk-YYYRBYWG.js';
20
20
  import './chunk-TBT347UY.js';
21
- import './chunk-PCY7IGSL.js';
22
- import './chunk-RO3BRAO6.js';
23
- import './chunk-GUT4IU7K.js';
24
- import './chunk-665QWBNW.js';
21
+ import './chunk-OQUD3UYF.js';
22
+ import './chunk-EHBDYLM6.js';
23
+ import './chunk-SBW4K3XZ.js';
24
+ import './chunk-2J46BQ5Y.js';
25
25
  import './chunk-TQMI335S.js';
26
- import './chunk-5PMQDQFV.js';
27
- import './chunk-MLD2NA7N.js';
26
+ import './chunk-VGHKTSHU.js';
27
+ import './chunk-6SPXKRQR.js';
28
28
  import { parseRunnerEnv } from './chunk-6MZSX4M7.js';
29
- import './chunk-DJILFADE.js';
30
- import './chunk-PYSKSROG.js';
29
+ import './chunk-GFHLEVUE.js';
30
+ import './chunk-IZAOO5AR.js';
31
31
  import './chunk-JBJTC3UU.js';
32
32
  import './chunk-OGFGZQA3.js';
33
- import './chunk-KZLLLARE.js';
34
- import './chunk-FI66JNLT.js';
33
+ import './chunk-QUP6CVBQ.js';
34
+ import './chunk-B6K7R5UY.js';
35
35
  import './chunk-MXTN35XN.js';
36
36
  import './chunk-XLC7KEUV.js';
37
- import './chunk-DXHISLCI.js';
38
- import './chunk-GMPXOQTH.js';
39
- import './chunk-HXFRJKMU.js';
40
- import './chunk-TEVO3RUV.js';
37
+ import './chunk-OZKEEXVH.js';
38
+ import './chunk-6CGXSMKX.js';
39
+ import './chunk-H57M3HC7.js';
40
+ import './chunk-PZA6ZFYW.js';
41
41
  import './chunk-BUP5N3X6.js';
42
- import './chunk-XSPA5ODY.js';
43
- import './chunk-GOSFARMS.js';
42
+ import './chunk-6BLXUD56.js';
43
+ import './chunk-G2JWZDFA.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-W3NVHOCS.js';
47
+ import './chunk-4UFSTKE5.js';
48
48
  import './chunk-MQ743JX3.js';
49
- import './chunk-QRZLUUNN.js';
50
- import './chunk-2EAVBJMO.js';
49
+ import './chunk-MCSINUVC.js';
50
+ import './chunk-UZEQVPKF.js';
51
51
  import './chunk-ZJSNLVCE.js';
52
52
  import './chunk-2O5KA67H.js';
53
53
  import './chunk-BKO6JEZI.js';
@@ -56,7 +56,7 @@ import './chunk-HCVLP7XA.js';
56
56
  import './chunk-BJ3KTMDH.js';
57
57
  import './chunk-QE3UQAHK.js';
58
58
  import './chunk-ANPNT6PM.js';
59
- import './chunk-EABW6AJQ.js';
59
+ import './chunk-PJDQPF5N.js';
60
60
  import './chunk-JKNYTNYD.js';
61
61
  import './chunk-HBISTTG3.js';
62
62
  import './chunk-T2Q7ISPE.js';
@@ -69,8 +69,8 @@ import './chunk-RKOTJQVG.js';
69
69
  import './chunk-QZBXLLTV.js';
70
70
  import './chunk-VNVZDWO3.js';
71
71
  import './chunk-RA3O54FC.js';
72
- import './chunk-F6DIHHBS.js';
73
- import './chunk-L4CW6LZQ.js';
72
+ import './chunk-GWRDL75D.js';
73
+ import './chunk-F3BBEBPL.js';
74
74
  import './chunk-2K3TCQHW.js';
75
75
  import './chunk-JGD5TWQ2.js';
76
76
  import './chunk-Z5GEFMRW.js';
@@ -1,30 +1,30 @@
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-V5LUWRCV.js';
4
+ import { senderPidfile } from './chunk-Q2SVLBMI.js';
5
5
  import { DOCKERD_LOG, HELPER_PATH, HELPER_RECORD } from './chunk-MWPBF2XG.js';
6
6
  import { writeDockerClientConfig } from './chunk-UNF7MWEL.js';
7
- import { installScrubContext } from './chunk-U2FSJBNI.js';
8
- import { ADDED_USER, AssetError, obtainImage, ensureRootfs, gitRemoteFor, startServicesFor, createLeaseChannel, 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-GUT4IU7K.js';
9
- import { readBranchHead, fetchCommit, diffBetween } from './chunk-DJILFADE.js';
7
+ import { installScrubContext } from './chunk-VQ7OAG6H.js';
8
+ import { ADDED_USER, AssetError, obtainImage, ensureRootfs, gitRemoteFor, startServicesFor, createLeaseChannel, 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-SBW4K3XZ.js';
9
+ import { readBranchHead, fetchCommit, diffBetween } from './chunk-GFHLEVUE.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-KZLLLARE.js';
12
- import { CLAUDE_CODE_VERSION, FIRECRACKER_VERSION } from './chunk-FI66JNLT.js';
11
+ import { HASH_ARGV, parseProgramHash, JUDGE_PROGRAM, writeJobFile, readJobFile, COMMAND_DIR, childEnvironment, judgeCommand, JUDGE_MAX_TURNS, MAX_REPORT_BYTES, JUDGE_DIR } from './chunk-QUP6CVBQ.js';
12
+ import { CLAUDE_CODE_VERSION, FIRECRACKER_VERSION } from './chunk-B6K7R5UY.js';
13
13
  import { waitForAgent, vmExecArgs } from './chunk-MXTN35XN.js';
14
14
  import { socketPathProblem, vsockLinks, LEASE_LINK, linkVsockSockets } from './chunk-XLC7KEUV.js';
15
- import { describeCallFailure, resolveGoverningSource, refusalCode, removeStagedContext, stageGovernedContext, pinnedSourceOf, commandWithShim, logStamp, createRunnerLog, formatDuration, retrySend, formatClock } from './chunk-DXHISLCI.js';
16
- import { WorkCommandError, postJson, isSignatureRefusal, getJson } from './chunk-GMPXOQTH.js';
15
+ import { describeCallFailure, resolveGoverningSource, refusalCode, removeStagedContext, stageGovernedContext, pinnedSourceOf, commandWithShim, logStamp, createRunnerLog, removeKeptContext, formatDuration, retrySend, formatClock, keptContextTree } from './chunk-OZKEEXVH.js';
16
+ import { WorkCommandError, postJson, isSignatureRefusal, getJson } from './chunk-6CGXSMKX.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';
20
20
  import { scrubText } from './chunk-QE3UQAHK.js';
21
- import { readCloudConfig } from './chunk-EABW6AJQ.js';
21
+ import { readCloudConfig } from './chunk-PJDQPF5N.js';
22
22
  import { resolvePackRoot } from './chunk-HBISTTG3.js';
23
23
  import { parsePolicy } from './chunk-RKOTJQVG.js';
24
24
  import { homeFromEnv } from './chunk-VNVZDWO3.js';
25
25
  import { resolveVersion } from './chunk-RA3O54FC.js';
26
- import { signerFor } from './chunk-F6DIHHBS.js';
27
- import { RUNNER_FILE_MODE, runnerDir, buildDir, vsockPath } from './chunk-L4CW6LZQ.js';
26
+ import { signerFor } from './chunk-GWRDL75D.js';
27
+ import { RUNNER_FILE_MODE, runnerDir, buildDir, vsockPath } from './chunk-F3BBEBPL.js';
28
28
  import { claudeCredential, repositoriesOf, primaryOf, buildEnvironment, JOB_MOUNT, CHECKOUT_DIR, parseIsolation, proxyEnvironment, withProxyWarningHidden, containerLocalAddress, destinationEnvironment, CLAUDE_CREDENTIAL_VARIABLES, builtInEnvironment, withHooksPath, startBuildServices, BUILT_IN_NAMES, AGENT_CREDENTIAL_MISSING, sharedUserEnvironment, headerVariables, authorEnvironment, withTunnelRecord, commitIdentityRecord, RELAY_PORT, repositoryPath, lifecycleWorkdir, checkEnvironment, EVAL_INPUT_DIR } from './chunk-2K3TCQHW.js';
29
29
  import { RUNNER_WORDED_REASONS, UNKNOWN_TRACKING_REASON } from './chunk-JGD5TWQ2.js';
30
30
  import { existsSync, statSync, appendFileSync, mkdirSync, chmodSync, writeFileSync, accessSync, constants, openSync, readFileSync, closeSync, rmSync, readdirSync, linkSync, lstatSync, fstatSync, readSync, realpathSync } from 'fs';
@@ -539,7 +539,8 @@ async function provisionMicroVm(input) {
539
539
  return { ok: false, reason: `context_unavailable: ${describeCallFailure(err)}` };
540
540
  }
541
541
  },
542
- removeStagedContext: () => removeStagedContext(buildDir2)
542
+ removeStagedContext: () => removeStagedContext(buildDir2),
543
+ keepIn: jobDir
543
544
  });
544
545
  if (!steps.ok) return bail(steps.reason, steps.aborted === true);
545
546
  state.startCommit = steps.startCommit;
@@ -1236,6 +1237,9 @@ function decideFromEvaluation(read) {
1236
1237
  }
1237
1238
  return { outcome: "incomplete", reason: fit("the item's verdict is not passing: ", [evaluation.sentence || evaluation.verdict]) };
1238
1239
  }
1240
+ function incompleteReason(reason, judgeNotRun) {
1241
+ return judgeNotRun === void 0 ? reason : `the judge did not run (${judgeNotRun}) \xB7 ${reason}`;
1242
+ }
1239
1243
  function waitMs(ms) {
1240
1244
  return new Promise((resolve) => setTimeout(resolve, ms));
1241
1245
  }
@@ -1460,6 +1464,8 @@ async function readDefinitions(input, repository, scratch, token, tokens) {
1460
1464
  const stage = deps.stage ?? stageGovernedContext;
1461
1465
  const controlPlaneUrl = (controlPlane) => deps.runtime.remoteFor?.(controlPlane) ?? `${deps.runtime.github.gitUrl}/${controlPlane}.git`;
1462
1466
  const governing = (job.container ?? job.microvm)?.governing;
1467
+ const kept = keptContextTree(input.jobDir, governing);
1468
+ if (kept !== void 0) return { ok: true, checks: checksIn(kept, deps.log, tag) };
1463
1469
  const staged = await stage({
1464
1470
  config,
1465
1471
  repository,
@@ -1918,6 +1924,7 @@ async function runJudge(input) {
1918
1924
  if (!definitions.ok) {
1919
1925
  rmSync(scratch, { recursive: true, force: true });
1920
1926
  log.line(`${tag} judge not run: the definitions could not be read: ${definitions.reason}`);
1927
+ job.judgeNotRun = `the definitions could not be read: ${definitions.reason}`;
1921
1928
  const passed = await retrySend(() => hostPassedNames(config, job.item, deps.fetchImpl), { now: deps.now });
1922
1929
  if (!passed.ok) {
1923
1930
  log.error(`${tag} the item's host results could not be read, so none was failed: ${passed.reason}`);
@@ -2667,6 +2674,7 @@ async function finishJob(job, jobDirPath, outcome, config, deps, ending) {
2667
2674
  log.error(`${tag} the host's checks stopped: ${describeCallFailure(err)} \xB7 continuing`);
2668
2675
  }
2669
2676
  }
2677
+ removeKeptContext(jobDirPath);
2670
2678
  let outOfMemory;
2671
2679
  if ((vmBuild?.state.cgroup !== void 0 || vmBuild?.state.jailed !== void 0) && outcome !== void 0 && outcome !== "ok" && ending?.reason === void 0) {
2672
2680
  try {
@@ -2783,7 +2791,7 @@ async function finishJob(job, jobDirPath, outcome, config, deps, ending) {
2783
2791
  });
2784
2792
  if (decision.outcome === "incomplete") {
2785
2793
  outcome = "incomplete";
2786
- verdictReason = scrubReason(decision.reason, config);
2794
+ verdictReason = scrubReason(incompleteReason(decision.reason, job.judgeNotRun), config);
2787
2795
  log.error(`${tag} the command exited 0 but the item is not done: ${verdictReason}`);
2788
2796
  }
2789
2797
  }
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
3
  import { isVersion, compareVersions } from './chunk-TQMI335S.js';
4
- import { RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-L4CW6LZQ.js';
4
+ import { RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-F3BBEBPL.js';
5
5
  import { readFileSync, mkdirSync, writeFileSync, renameSync } from 'fs';
6
6
  import { join } from 'path';
7
7
 
@@ -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-QRZLUUNN.js';
4
+ import { defaultFetch, resolveGatewayCredentials } from './chunk-MCSINUVC.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';
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { revokeTokenOnDashboard } from './chunk-GOSFARMS.js';
3
+ import { revokeTokenOnDashboard } from './chunk-G2JWZDFA.js';
4
4
  import { findGitDirs } from './chunk-BJ3KTMDH.js';
5
5
  import { C } from './chunk-ANPNT6PM.js';
6
- import { readCloudConfig, writeCloudConfig, cloudConfigPath } from './chunk-EABW6AJQ.js';
6
+ import { readCloudConfigStrict, CloudConfigError, readCloudConfig, writeCloudConfig, cloudConfigPath } from './chunk-PJDQPF5N.js';
7
7
  import { cliInvocation } from './chunk-CRB3POP4.js';
8
8
  import { CLI_LOGIN_MACHINE_NAME_MAX, CliLoginPollResponseSchema, CLI_LOGIN_KIND, CliLoginRefusalSchema, CliLoginStartedSchema } from './chunk-QZBXLLTV.js';
9
9
  import { homeFromEnv } from './chunk-VNVZDWO3.js';
@@ -404,6 +404,7 @@ Waiting for approval...
404
404
  async function runLoginCommand(flags, deps) {
405
405
  const home = deps.home ?? homeFromEnv();
406
406
  try {
407
+ readCloudConfigStrict(home);
407
408
  if (flags.check !== void 0) {
408
409
  purgeExpiredPending(home, deps.now(), flags.check);
409
410
  return await runCheck(flags, deps, home, flags.check);
@@ -425,7 +426,7 @@ async function runLoginCommand(flags, deps) {
425
426
  purgeExpiredPending(home, deps.now());
426
427
  return await runBrowserLogin(flags, deps, home);
427
428
  } catch (err) {
428
- if (err instanceof LoginError) return fail(deps, err.message);
429
+ if (err instanceof LoginError || err instanceof CloudConfigError) return fail(deps, err.message);
429
430
  throw err;
430
431
  }
431
432
  }
@@ -1,15 +1,15 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { detectActiveSession, autoConnect } from './chunk-HXFRJKMU.js';
4
- import { workPageUrl } from './chunk-TEVO3RUV.js';
3
+ import { detectActiveSession, autoConnect } from './chunk-H57M3HC7.js';
4
+ import { workPageUrl } from './chunk-PZA6ZFYW.js';
5
5
  import { sanitizeTerminal } from './chunk-BUP5N3X6.js';
6
- import { resolveGatewayCredentials, unauthorizedMessage, defaultFetch } from './chunk-QRZLUUNN.js';
6
+ import { resolveGatewayCredentials, unauthorizedMessage, defaultFetch } from './chunk-MCSINUVC.js';
7
7
  import { readRepoConnection } from './chunk-BJ3KTMDH.js';
8
8
  import { resolveRepoIdentity } from './chunk-QE3UQAHK.js';
9
9
  import { C } from './chunk-ANPNT6PM.js';
10
10
  import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
11
11
  import { homeFromEnv } from './chunk-VNVZDWO3.js';
12
- import { signRunnerRequest } from './chunk-F6DIHHBS.js';
12
+ import { signRunnerRequest } from './chunk-GWRDL75D.js';
13
13
 
14
14
  createRequire(import.meta.url);
15
15
 
@@ -428,7 +428,7 @@ async function runWorkLinkSession(opts) {
428
428
  return await linkSession(opts);
429
429
  } catch (err) {
430
430
  if (opts.logFailures) {
431
- const { logHookError } = await import('./hook-fast-LZSHEKUA.js');
431
+ const { logHookError } = await import('./hook-fast-XMZFMBKC.js');
432
432
  const reason = err instanceof Error ? err.message : String(err);
433
433
  logHookError(opts.home ?? homeFromEnv(opts.env ?? process.env), new Error(`work link-session #${opts.number} failed: ${reason}`));
434
434
  }
@@ -2,7 +2,7 @@
2
2
  import { createRequire } from 'node:module';
3
3
  import { builtinKind } from './chunk-JWRX5ZTT.js';
4
4
  import { parseSize } from './chunk-7RQ73DLO.js';
5
- import { runnerDir } from './chunk-L4CW6LZQ.js';
5
+ import { runnerDir } from './chunk-F3BBEBPL.js';
6
6
  import { dirname } from 'path';
7
7
  import { spawnSync } from 'child_process';
8
8
 
@@ -2,7 +2,7 @@
2
2
  import { createRequire } from 'node:module';
3
3
  import { POLICY_CONTENT, VALIDATOR_FILES, VALIDATORS_DIR, POLICY_PATH } from './chunk-VJBFQP3H.js';
4
4
  import { findGitDirs } from './chunk-BJ3KTMDH.js';
5
- import { mcpTargetPath, INIT_STDIO_ENTRY, INIT_DOCS_ENTRY, DOCS_MCP_SERVER_NAME } from './chunk-YVZJ6GKF.js';
5
+ import { mcpTargetPath, INIT_STDIO_ENTRY, INIT_DOCS_ENTRY, DOCS_MCP_SERVER_NAME } from './chunk-KT4CN6OU.js';
6
6
  import { skillsBaseFor, isAgentsMdLayout } from './chunk-JKNYTNYD.js';
7
7
  import { resolvePackRoot, OUTERLAYER_SKILLS_BASE, skillDir, namesCore, loadTemplateFiles, rewriteSkillPaths, restoreSkillPaths, TEMPLATE_SKILLS } from './chunk-HBISTTG3.js';
8
8
  import { cliInvocation } from './chunk-CRB3POP4.js';
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { runnerDir, RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-L4CW6LZQ.js';
3
+ import { runnerDir, RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-F3BBEBPL.js';
4
4
  import { readlinkSync, realpathSync, mkdirSync, unlinkSync, symlinkSync, renameSync, readFileSync, writeFileSync, rmSync, existsSync, readdirSync } from 'fs';
5
5
  import { join, basename, sep, resolve } from 'path';
6
6
 
@@ -249,10 +249,10 @@ var FIRECRACKER_SHA256 = {
249
249
  var FIRECRACKER_BINARY_SHA256 = {
250
250
  x86_64: "99ad0f5cd0514a88aad0e9ae8cfdb3cc3b4ab9d190e1194602406c786b5de7a5"
251
251
  };
252
- var GUEST_ASSETS_VERSION = "6";
252
+ var GUEST_ASSETS_VERSION = "7";
253
253
  var GUEST_ASSETS_BASE_URL = `https://github.com/outerlayerai/guest-assets/releases/download/guest-${GUEST_ASSETS_VERSION}`;
254
254
  var GUEST_KERNEL_SHA256 = {
255
- x86_64: "5a2d716d301615c69fefc2f9574954e838269f14d5e8b0d1bad88b680cd372ee"
255
+ x86_64: "8552fad4bdea1d49f3e7d2aa500ce3f8918fcd2fc66779fd83235949688a39bb"
256
256
  };
257
257
  var GUEST_HELPER_SHA256 = {
258
258
  x86_64: "0ae934d3ad3f2a94abffcc3f044ba633b1a523dc17ff0c2bc322ed7d7fc505ea"
@@ -264,10 +264,10 @@ function guestAssetsPinned(arch) {
264
264
  var JAILER_BINARY_SHA256 = {
265
265
  x86_64: "65ef226e96f0ceda55ba643f445801ef2cc0ea667ef67cad8ac4f406c9c8434f"
266
266
  };
267
- var HOST_HELPER_ASSETS_VERSION = "5";
267
+ var HOST_HELPER_ASSETS_VERSION = "8";
268
268
  var HOST_HELPER_BASE_URL = `https://github.com/outerlayerai/guest-assets/releases/download/guest-${HOST_HELPER_ASSETS_VERSION}`;
269
269
  var HOST_HELPER_SHA256 = {
270
- x86_64: "f2ec1c6a7ff29353045fad617ac1a6bf0155d6f3eb6a6259272a15342feaf957"
270
+ x86_64: "7c3a80da5e68adf3eb1eb407df0c770ccef589eb2da2f11735a9f9c05dc0d650"
271
271
  };
272
272
  function hostHelperPinned(arch = "x86_64", hashes = HOST_HELPER_SHA256) {
273
273
  return hashes[arch] !== "0".repeat(64);
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { MIN_ENGINE_MAJOR } from './chunk-GUT4IU7K.js';
4
- import { runnerImageVersion } from './chunk-665QWBNW.js';
5
- import { firecrackerArch, MICROVM_ARCHES, guestAssetsPinned } from './chunk-FI66JNLT.js';
3
+ import { MIN_ENGINE_MAJOR } from './chunk-SBW4K3XZ.js';
4
+ import { runnerImageVersion } from './chunk-2J46BQ5Y.js';
5
+ import { firecrackerArch, MICROVM_ARCHES, guestAssetsPinned } from './chunk-B6K7R5UY.js';
6
6
  import { spawnSync } from 'child_process';
7
7
  import { existsSync, accessSync, constants, statSync, readFileSync } from 'fs';
8
8
 
@@ -52,6 +52,9 @@ function contextHomeDir(configPath) {
52
52
  function stagedContextDir(buildDirPath) {
53
53
  return join(buildDirPath, "context");
54
54
  }
55
+ function keptContextDir(jobDirPath) {
56
+ return join(jobDirPath, "governed-context");
57
+ }
55
58
  function runnerDirOfBuild(buildDirPath) {
56
59
  return dirname(dirname(buildDirPath));
57
60
  }
@@ -81,4 +84,4 @@ function deliveryDir(repository, sha) {
81
84
  return `${BUILD_HOME}/.outerlayer/context/${repository}/${sha}`;
82
85
  }
83
86
 
84
- export { RUNNER_DIR_MODE, RUNNER_FILE_MODE, SHIM_DIR, attemptStamp, buildDir, buildsDir, contextHomeDir, deliveryDir, diskTemplatesDir, ghConfigDir, hostKeyPath, imagesDir, jobDir, jobsDir, mirrorDir, pidFilePath, repoCacheDir, rootfsDir, rootfsPathFor, runnerDir, runnerDirOfBuild, spoolDir, stagedContextDir, vmAssetsDir, vsockPath };
87
+ export { RUNNER_DIR_MODE, RUNNER_FILE_MODE, SHIM_DIR, attemptStamp, buildDir, buildsDir, contextHomeDir, deliveryDir, diskTemplatesDir, ghConfigDir, hostKeyPath, imagesDir, jobDir, jobsDir, keptContextDir, mirrorDir, pidFilePath, repoCacheDir, rootfsDir, rootfsPathFor, runnerDir, runnerDirOfBuild, spoolDir, stagedContextDir, vmAssetsDir, vsockPath };
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
3
  import { C } from './chunk-ANPNT6PM.js';
4
- import { readCloudConfig, removeCloudConfigKeys } from './chunk-EABW6AJQ.js';
4
+ import { readCloudConfigStrict, removeCloudConfigKeys } from './chunk-PJDQPF5N.js';
5
5
  import { homeFromEnv } from './chunk-VNVZDWO3.js';
6
6
 
7
7
  createRequire(import.meta.url);
@@ -27,7 +27,14 @@ async function revokeTokenOnDashboard(fetchImpl, dashboard, token) {
27
27
  }
28
28
  async function runLogoutCommand(deps) {
29
29
  const home = deps.home ?? homeFromEnv();
30
- const config = readCloudConfig(home);
30
+ let config;
31
+ try {
32
+ config = readCloudConfigStrict(home);
33
+ } catch (err) {
34
+ deps.stderr.write(`${C.red}\u2717${C.reset} ${err.message}
35
+ `);
36
+ return 1;
37
+ }
31
38
  const token = config.accountToken;
32
39
  if (!token) {
33
40
  deps.stdout.write("Not logged in.\n");
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { claimPidFile, RunnerAlreadyRunningError, releasePidFile } from './chunk-PYSKSROG.js';
3
+ import { claimPidFile, RunnerAlreadyRunningError, releasePidFile } from './chunk-IZAOO5AR.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-FI66JNLT.js';
6
- import { RUNNER_DIR_MODE, repoCacheDir, imagesDir, attemptStamp, runnerDir, rootfsPathFor, RUNNER_FILE_MODE } from './chunk-L4CW6LZQ.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-B6K7R5UY.js';
6
+ import { RUNNER_DIR_MODE, repoCacheDir, imagesDir, attemptStamp, runnerDir, rootfsPathFor, RUNNER_FILE_MODE } from './chunk-F3BBEBPL.js';
7
7
  import { withGitConfig, tokenHeader, PROXY_WARNING_FLAG } from './chunk-2K3TCQHW.js';
8
8
  import { RELAY_ID, RELAY_USER } from './chunk-JGD5TWQ2.js';
9
9
  import { mkdirSync, rmSync, existsSync, mkdtempSync, cpSync, readFileSync, writeFileSync, readdirSync, lstatSync, readlinkSync } from 'fs';
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { hostKeyPath, runnerDir, RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-L4CW6LZQ.js';
3
+ import { hostKeyPath, runnerDir, RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-F3BBEBPL.js';
4
4
  import { generateKeyPairSync, createPrivateKey, createPublicKey, sign } from 'crypto';
5
5
  import { existsSync, mkdirSync, writeFileSync, readFileSync } from 'fs';
6
6
 
@@ -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-TEVO3RUV.js';
4
- import { resolveGatewayCredentials } from './chunk-QRZLUUNN.js';
3
+ import { fetchFactories, selectFactory, saveFactoryConnection, autoConnectedLine } from './chunk-PZA6ZFYW.js';
4
+ import { resolveGatewayCredentials } from './chunk-MCSINUVC.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
3
  import { isSameProcess } from './chunk-JBJTC3UU.js';
4
- import { RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-L4CW6LZQ.js';
4
+ import { RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-F3BBEBPL.js';
5
5
  import { existsSync, readFileSync, rmSync, mkdirSync, writeFileSync } from 'fs';
6
6
  import { dirname } from 'path';
7
7
 
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { currentLink } from './chunk-4IFKLYMM.js';
3
+ import { currentLink } from './chunk-7Z2WMXM5.js';
4
4
  import { readFileSync, statSync, chmodSync, mkdirSync, writeFileSync, renameSync, rmSync, existsSync, lstatSync, accessSync, constants, realpathSync } from 'fs';
5
5
  import { randomBytes } from 'crypto';
6
6
  import { join, dirname, delimiter, resolve } from 'path';
@@ -2,8 +2,8 @@
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-W3NVHOCS.js';
6
- import { addStdioMcpEntryIfAbsent, addDocsMcpEntryIfAbsent, DOCS_MCP_SERVER_NAME } from './chunk-YVZJ6GKF.js';
5
+ import { resolveGitCommonDir, defaultGitRunner } from './chunk-4UFSTKE5.js';
6
+ import { addStdioMcpEntryIfAbsent, addDocsMcpEntryIfAbsent, DOCS_MCP_SERVER_NAME } from './chunk-KT4CN6OU.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';
9
9
  import { loadTemplateFiles, loadMaintainedFiles, skillDir, AGENTS_SKILLS_BASE } from './chunk-HBISTTG3.js';
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
3
  import { C } from './chunk-ANPNT6PM.js';
4
- import { readCloudConfig } from './chunk-EABW6AJQ.js';
4
+ import { readCloudConfig } from './chunk-PJDQPF5N.js';
5
5
  import { cliInvocation } from './chunk-CRB3POP4.js';
6
6
  import { existsSync, writeFileSync, readFileSync, mkdirSync } from 'fs';
7
7
  import { join, dirname } from 'path';
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
3
  import { readRepoConnection, findGitDirs } from './chunk-BJ3KTMDH.js';
4
- import { readCloudConfig, cloudConfigPath } from './chunk-EABW6AJQ.js';
4
+ import { readCloudConfigStrict, readCloudConfig, cloudConfigPath } from './chunk-PJDQPF5N.js';
5
5
  import { cliInvocation } from './chunk-CRB3POP4.js';
6
6
  import { homeFromEnv } from './chunk-VNVZDWO3.js';
7
7
  import { resolvePackageVersion } from './chunk-RA3O54FC.js';
8
- import { signRunnerRequest, signerFor } from './chunk-F6DIHHBS.js';
8
+ import { signRunnerRequest, signerFor } from './chunk-GWRDL75D.js';
9
9
 
10
10
  createRequire(import.meta.url);
11
11
 
@@ -27,7 +27,12 @@ function unauthorizedMessage(credential) {
27
27
  }
28
28
  function resolveGatewayCredentials(sources = {}) {
29
29
  const env = sources.env ?? process.env;
30
- const config = readCloudConfig(sources.home ?? homeFromEnv(env));
30
+ let config;
31
+ try {
32
+ config = readCloudConfigStrict(sources.home ?? homeFromEnv(env));
33
+ } catch (err) {
34
+ return { ok: false, message: err.message, kind: "key" };
35
+ }
31
36
  const url = sources.url ?? env.OUTERLAYER_URL ?? config.url;
32
37
  const key = sources.apiKey ?? (env.OUTERLAYER_API_KEY || void 0) ?? config.apiKey;
33
38
  const kind = key ? "key" : "login";
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-L4CW6LZQ.js';
3
+ import { RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-F3BBEBPL.js';
4
4
  import { readFileSync, mkdirSync, writeFileSync, renameSync } from 'fs';
5
5
  import { join } from 'path';
6
6
 
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { autoConnect, detectActiveSession } from './chunk-HXFRJKMU.js';
4
- import { defaultFetch, unauthorizedMessage, resolveGatewayCredentials } from './chunk-QRZLUUNN.js';
3
+ import { autoConnect, detectActiveSession } from './chunk-H57M3HC7.js';
4
+ import { defaultFetch, unauthorizedMessage, resolveGatewayCredentials } from './chunk-MCSINUVC.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,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-L4CW6LZQ.js';
3
+ import { RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-F3BBEBPL.js';
4
4
  import { readFileSync, existsSync, rmSync, mkdirSync, writeFileSync, renameSync } from 'fs';
5
5
  import { join } from 'path';
6
6