@outerlayer/cli 0.27.1 → 0.28.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 +32 -0
- package/README.md +6 -0
- package/dist/{agent-setup-UW36TAQM.js → agent-setup-YVR5RO56.js} +17 -14
- package/dist/{bridge-B5VJVECY.js → bridge-WW2V7DTB.js} +3 -2
- package/dist/build-5FRC3RKM.js +13 -0
- package/dist/build-info.json +1 -1
- package/dist/{builder-6Y6ZWGNH.js → builder-4F2XNSFC.js} +7 -6
- package/dist/{check-YTXFVWK7.js → check-NDDOASVO.js} +70 -61
- package/dist/{chunk-VS27BP3E.js → chunk-2YSCKEL2.js} +7 -7
- package/dist/{chunk-BPKO76QR.js → chunk-4XN5FRRJ.js} +4 -4
- package/dist/{chunk-EPPIISRD.js → chunk-55XLX5PA.js} +1 -1
- package/dist/{chunk-LOKSLO25.js → chunk-5B7BEQPR.js} +1 -1
- package/dist/chunk-5BHIBJDA.js +93 -0
- package/dist/{chunk-RHAGBUL5.js → chunk-5K3KB4YR.js} +1 -1
- package/dist/{chunk-ABXQBEYK.js → chunk-66T6XJAB.js} +1 -1
- package/dist/{chunk-LPFOWUHG.js → chunk-6BWJQGTV.js} +20 -13
- package/dist/{chunk-BWH36FOC.js → chunk-7CK2TJFB.js} +20 -4
- package/dist/{chunk-5VMDGJGH.js → chunk-7UGFIWIW.js} +37 -23
- package/dist/{chunk-QKIQ2R7F.js → chunk-ATJOFXTE.js} +3 -3
- package/dist/chunk-CDDED64E.js +13 -0
- package/dist/{chunk-QHH4OSD4.js → chunk-CTYSTE5C.js} +1 -1
- package/dist/{chunk-DJHNEGNM.js → chunk-DKWQMPSL.js} +18 -2
- package/dist/{chunk-IMOB4IOI.js → chunk-DQYMQ47E.js} +3 -2
- package/dist/{chunk-YETTWTAY.js → chunk-E7R2GIAW.js} +4 -4
- package/dist/{chunk-GFUE5TKO.js → chunk-F4FA3ZUT.js} +24 -14
- package/dist/{chunk-6TRNCUM4.js → chunk-FGF52V4V.js} +1 -1
- package/dist/{chunk-MATUHHN4.js → chunk-GUXWQIEY.js} +1 -1
- package/dist/{chunk-2I3LIRZP.js → chunk-HXAEQPZR.js} +101 -10
- package/dist/{chunk-R7SGBXUD.js → chunk-IKXY47R5.js} +107 -56
- package/dist/{chunk-P33PZIWS.js → chunk-ITAIEJ2T.js} +7 -142
- package/dist/{chunk-RHGF73IU.js → chunk-IVX3U7KV.js} +1 -1
- package/dist/{chunk-7OUOLGUV.js → chunk-JGML2VUN.js} +3 -7
- package/dist/{chunk-6VFH52MP.js → chunk-KVDVNOUK.js} +24 -22
- package/dist/{chunk-2F762IXY.js → chunk-LNIFYSNK.js} +3 -3
- package/dist/{chunk-XBPUTQ7E.js → chunk-MHAR6S7B.js} +1 -1
- package/dist/{chunk-7AQ5AM7U.js → chunk-MQHTM4YJ.js} +177 -21
- package/dist/{chunk-6KKM7VGZ.js → chunk-N7WAEEIU.js} +3 -3
- package/dist/{chunk-D7ECMB7B.js → chunk-NUHZV3A4.js} +1 -1
- package/dist/{chunk-MHX7YX7Y.js → chunk-P2RWZCV7.js} +1 -1
- package/dist/chunk-QBQHQEUG.js +300 -0
- package/dist/{chunk-FP23SVDD.js → chunk-QJFDAKRF.js} +5 -5
- package/dist/{chunk-WUL2OP5A.js → chunk-QKXF7CLR.js} +3 -3
- package/dist/{chunk-Y7ZCHBYB.js → chunk-QWAYRAUX.js} +3 -3
- package/dist/{chunk-64GMBWAK.js → chunk-R7SS5RLJ.js} +6 -6
- package/dist/{chunk-XZ6Q6ZNR.js → chunk-SATUCMAJ.js} +3 -2
- package/dist/{chunk-2BTFKNTR.js → chunk-SJZL5F3F.js} +2 -2
- package/dist/{chunk-HWDYLXHH.js → chunk-T2QSWFSU.js} +4 -4
- package/dist/{chunk-B7DJVG25.js → chunk-T57XUI6N.js} +3 -3
- package/dist/{chunk-E5IJ5533.js → chunk-TF7G2PR6.js} +3 -3
- package/dist/{chunk-O2IJTY7L.js → chunk-TVZAC2NP.js} +3 -3
- package/dist/{chunk-QE3UQAHK.js → chunk-UHU7H57K.js} +26 -7
- package/dist/{chunk-WSYXLLA5.js → chunk-USJZ2LDK.js} +6 -6
- package/dist/{chunk-EX5MQYEF.js → chunk-VC5J7QPV.js} +5 -5
- package/dist/{chunk-N4D5TMVU.js → chunk-VU7ZJPIR.js} +5 -5
- package/dist/{chunk-ZFBJUOYT.js → chunk-W3FSGH2M.js} +10 -10
- package/dist/{chunk-GLUKDQS4.js → chunk-WWQVKFN6.js} +1 -1
- package/dist/{chunk-55GNQPO6.js → chunk-X52PMPOM.js} +7 -7
- package/dist/{chunk-YB3CSYXX.js → chunk-XD4ZCMA4.js} +81 -2
- package/dist/{chunk-Y4OKEFAX.js → chunk-YL2VDSNF.js} +1 -1
- package/dist/{chunk-M3MHHIUW.js → chunk-Z3ASAXVU.js} +1 -1
- package/dist/{chunk-XS3FDWSZ.js → chunk-ZTY7HHYB.js} +1 -1
- package/dist/{claude-launcher-NQSZBTQ5.js → claude-launcher-7RGVOYCD.js} +6 -5
- package/dist/{cli-GHEOBXC7.js → cli-QC6ZKHPK.js} +149 -128
- package/dist/cli-update-notice-4DLZ3655.js +9 -0
- package/dist/{command-V7B7GTPZ.js → command-3F6GY4CK.js} +53 -37
- package/dist/{config-TWS5VZEN.js → config-5QYIKYUP.js} +3 -2
- package/dist/{connect-cmd-HGS7YPA2.js → connect-cmd-5TYAOK5M.js} +14 -11
- package/dist/{container-start-FHB2VDC4.js → container-start-P7O5XGOB.js} +37 -36
- package/dist/{control-plane-launch-DBQA3KLJ.js → control-plane-launch-FZMD4MXX.js} +13 -10
- package/dist/{dist-QPHZE47F.js → dist-JFVKLUHL.js} +1 -1
- package/dist/{docker-YT6Z3LXI.js → docker-ZTC4EIU4.js} +7 -6
- package/dist/{doctor-Y4NCNSJM.js → doctor-QPQDF7FB.js} +159 -41
- package/dist/{emit-artifact-cmd-ALDK55Y2.js → emit-artifact-cmd-O3IBUMUY.js} +19 -16
- package/dist/{emit-cmd-VAQHRWJR.js → emit-cmd-QUABLVO6.js} +6 -5
- package/dist/{emit-criteria-cmd-Q7SM6VP2.js → emit-criteria-cmd-JDO2VUG5.js} +15 -12
- package/dist/{emit-finding-cmd-2NBAPDSV.js → emit-finding-cmd-VCQPCLI2.js} +16 -13
- package/dist/{emit-result-cmd-KUSL56RI.js → emit-result-cmd-BNS57DD3.js} +19 -16
- package/dist/{emit-step-cmd-KD4AKEAT.js → emit-step-cmd-XN44BXYU.js} +16 -13
- package/dist/{exec-client-6WVS7DRZ.js → exec-client-VKT2XNB3.js} +4 -3
- package/dist/fleet-readiness-G5X3MKP2.js +29 -0
- package/dist/{governing-source-VVUA5TKB.js → governing-source-B3M2U4BC.js} +21 -18
- package/dist/{guest-init-H5K2RW3P.js → guest-init-QW2DPX7H.js} +5 -4
- package/dist/{hook-fast-3SUJM765.js → hook-fast-EFC44SXV.js} +4 -1
- package/dist/{host-key-XNKZCWTS.js → host-key-AC6LTZDS.js} +4 -3
- package/dist/{image-tag-R34J4O3F.js → image-tag-SS7YKJHN.js} +4 -3
- package/dist/index.js +4 -4
- package/dist/{init-3DAGX7UY.js → init-36XMFFRQ.js} +38 -37
- package/dist/init-HHEAJDPN.js +56 -0
- package/dist/{init-cmd-RIDBVSE4.js → init-cmd-K2IKTSXJ.js} +25 -21
- package/dist/{init-update-ECWNG47R.js → init-update-RWTQSTPE.js} +51 -35
- package/dist/{inspect-IPFA7AAT.js → inspect-L7JIBK3Y.js} +1 -1
- package/dist/{install-6OIY3KHZ.js → install-35SAMY75.js} +5 -5
- package/dist/{install-cmd-JMT67P35.js → install-cmd-GFY4QF72.js} +6 -5
- package/dist/{layout-XNFDTOET.js → layout-BBTQPS6V.js} +4 -3
- package/dist/{login-browser-EWXSGHM7.js → login-browser-WSOSQH2T.js} +2 -2
- package/dist/{logs-XHAS6LMZ.js → logs-X2IRDP5T.js} +3 -2
- package/dist/loop-F5ASKFRJ.js +80 -0
- package/dist/{machine-OOQ2NXC3.js → machine-6STGIRJJ.js} +32 -30
- package/dist/{machine-skills-FLIRJYP7.js → machine-skills-O7W6NMWB.js} +4 -3
- package/dist/{mcp-serve-cmd-LY5A3CE7.js → mcp-serve-cmd-IITCPAAR.js} +9 -6
- package/dist/{paths-LHSPNORF.js → paths-32DWGK35.js} +3 -2
- package/dist/pending-CSIY4Y2I.js +10 -0
- package/dist/{pidfile-DKMYYXLH.js → pidfile-CYCTH6NQ.js} +4 -3
- package/dist/{real-deps-KNNBQC75.js → real-deps-QX5YH7FG.js} +1 -1
- package/dist/{record-3LPTY3G5.js → record-N4WPZCGK.js} +4 -3
- package/dist/{runner-env-YRRNRKF4.js → runner-env-EIB6WFPG.js} +6 -7
- package/dist/{runner-identity-YS2BZXZV.js → runner-identity-S3V6I4I3.js} +7 -6
- package/dist/{runner-key-EFNTZWNX.js → runner-key-Y76QXVNV.js} +36 -35
- package/dist/{session-sender-SC5PSU2G.js → session-sender-LFYMN6TT.js} +20 -17
- package/dist/{spec-cmd-JGYHHJ4P.js → spec-cmd-Z6MGATWC.js} +16 -13
- package/dist/{starter-pack-GPU4X6B7.js → starter-pack-5SOT5V4I.js} +4 -3
- package/dist/{status-7WM7S7JX.js → status-OANG2EM3.js} +39 -37
- package/dist/{sync-cmd-ATXJVS7S.js → sync-cmd-TNOOUPY2.js} +19 -16
- package/dist/{watch-M7NR3DOW.js → watch-HBNNYATF.js} +19 -16
- package/dist/{work-claim-cmd-DNUDZKJA.js → work-claim-cmd-CXALMILD.js} +21 -18
- package/dist/{work-cmd-VECTYST6.js → work-cmd-COESFSHE.js} +16 -13
- package/dist/{work-comment-cmd-F3NRWKPZ.js → work-comment-cmd-A4ZUVCSA.js} +16 -13
- package/dist/{work-logs-cmd-QF6P32FE.js → work-logs-cmd-CTF43MBE.js} +16 -13
- package/dist/{work-open-pr-cmd-XE23JA3R.js → work-open-pr-cmd-EMGYJXVD.js} +17 -14
- package/dist/{work-pr-cmd-BH56GUKN.js → work-pr-cmd-FEXMS6RH.js} +16 -13
- package/dist/{work-stop-cmd-C3F5HNUO.js → work-stop-cmd-NIHAN45R.js} +16 -13
- package/package.json +1 -1
- package/dist/build-HRLACBOZ.js +0 -12
- package/dist/chunk-STSLH5EJ.js +0 -71
- package/dist/init-SWKYV6CL.js +0 -55
- package/dist/loop-AIJZVUNA.js +0 -79
- package/dist/pending-3YZCSKON.js +0 -9
- package/dist/{chunk-6BLXUD56.js → chunk-HOU33DW5.js} +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,37 @@
|
|
|
1
1
|
# @outerlayer/cli
|
|
2
2
|
|
|
3
|
+
## 0.28.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 69efa74: With built-in hooks, no process the runner starts holds Claude's credential in its environment, Firecracker included. The runner keeps the credential in memory and loads it from `claude.env` with systemd's `LoadCredential=` on systemd 247 or later. The credential file stays readable by the runner's account, so a process that runs as that account and opens files can still read it. Run `outerlayer runner install --service --replace` to move an existing host.
|
|
8
|
+
- 69efa74: On Windows, `outerlayer runner install --service` turns off WSL2 interop, the Windows `PATH` and drive automount in the runner's distribution. They apply when the distribution restarts. When `schtasks.exe` cannot start, setup and uninstall print the `schtasks` command to run from Windows.
|
|
9
|
+
|
|
10
|
+
## 0.28.0
|
|
11
|
+
|
|
12
|
+
### Minor Changes
|
|
13
|
+
|
|
14
|
+
- 1c544ef: MicroVM builds on one host share its disk by weight, and `outerlayer doctor` says when the disk ignores that weight. A microVM that the runner starts itself keeps at most 8 MiB of console output.
|
|
15
|
+
|
|
16
|
+
Run `outerlayer runner install --service --replace` on a host with the root helper. It installs the helper that sets this weight.
|
|
17
|
+
|
|
18
|
+
### Patch Changes
|
|
19
|
+
|
|
20
|
+
- 8196214: `outerlayer doctor` warns on its `MicroVM jailer` line when microVM builds cannot survive a runner restart for two more reasons. One is that the running runner started before its unit was replaced, so it cannot keep a build's sockets in the descriptor store; the fix is one `sudo systemctl restart outerlayer-runner` while no build runs. The other is a systemd older than 254. In both cases every build ends with its runner, and an update waits for every build.
|
|
21
|
+
|
|
22
|
+
## 0.27.3
|
|
23
|
+
|
|
24
|
+
### Patch Changes
|
|
25
|
+
|
|
26
|
+
- 0335339: `outerlayer init --update` changes each path to a removed maintained skill folder to `~/.agents/skills/`. It does this in `AGENTS.md`, `CLAUDE.md` and the Markdown files of the repository's skills. Before, it changed only the pointer to the core in an edited `build`, so a link anywhere else pointed at nothing. Validator and policy files are not changed. When it removes the maintained skills, it also asks the gateway for the factory's runner hosts. It names each host on a CLI older than 0.27.0, so you know whether the removal is safe to commit. `outerlayer doctor` reports the same two things.
|
|
27
|
+
|
|
28
|
+
## 0.27.2
|
|
29
|
+
|
|
30
|
+
### Patch Changes
|
|
31
|
+
|
|
32
|
+
- df7c184: The CLI tells you when a newer CLI version is available. It prints one line after a command in a terminal and adds one line to the agent's context at session start. It reads the version from the `OuterLayer-CLI-Version` header of gateway answers it already receives, so it sends no extra request. At session start it also tells you when the maintained skills in `~/.agents/skills/` come from another CLI version. `OUTERLAYER_NO_UPDATE_NOTICE` turns off the notices of a newer CLI version.
|
|
33
|
+
- 3992a42: The page on running the runner in a container states the memory, disk and CPUs that Docker Desktop must give the runner. A container build's CPU limit never exceeds the number of CPUs the runner can use.
|
|
34
|
+
|
|
3
35
|
## 0.27.1
|
|
4
36
|
|
|
5
37
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -336,6 +336,12 @@ content:
|
|
|
336
336
|
GitHub App permissions each connected repository's installation has not
|
|
337
337
|
accepted, and whether each default branch requires a pull request. The
|
|
338
338
|
request carries nothing about the host, and the gateway stores nothing.
|
|
339
|
+
- **`outerlayer init --update`**, when it removes the maintained skills a
|
|
340
|
+
repository commits, and **`outerlayer doctor`**, in a repository that still
|
|
341
|
+
commits them, ask your gateway (`GET /v1/hosts`, with the saved login or
|
|
342
|
+
key) for the factory's runner hosts and the CLI version each one reported.
|
|
343
|
+
The request carries nothing about this machine, and the gateway stores
|
|
344
|
+
nothing.
|
|
339
345
|
- **`outerlayer runner check`** also asks your gateway (`GET /v1/runner/host-key`,
|
|
340
346
|
with the runner key, signed with the host key) whether the key holds
|
|
341
347
|
`work.claim`, so a key that cannot claim is named before the host takes work.
|
|
@@ -1,18 +1,24 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { keepHandWritten, runAgentSetup } from './chunk-
|
|
4
|
-
import './chunk-
|
|
5
|
-
import './chunk-XZ6Q6ZNR.js';
|
|
6
|
-
import './chunk-LOKSLO25.js';
|
|
7
|
-
import './chunk-BPKO76QR.js';
|
|
8
|
-
import './chunk-MHX7YX7Y.js';
|
|
9
|
-
import './chunk-BWH36FOC.js';
|
|
10
|
-
import './chunk-ZJSNLVCE.js';
|
|
11
|
-
import './chunk-BJ3KTMDH.js';
|
|
12
|
-
import './chunk-7OUOLGUV.js';
|
|
3
|
+
export { keepHandWritten, runAgentSetup } from './chunk-QJFDAKRF.js';
|
|
4
|
+
import './chunk-QKXF7CLR.js';
|
|
13
5
|
import './chunk-KT4CN6OU.js';
|
|
6
|
+
import './chunk-SATUCMAJ.js';
|
|
7
|
+
import './chunk-5B7BEQPR.js';
|
|
14
8
|
import './chunk-ANPNT6PM.js';
|
|
9
|
+
import './chunk-4XN5FRRJ.js';
|
|
10
|
+
import './chunk-P2RWZCV7.js';
|
|
11
|
+
import './chunk-7CK2TJFB.js';
|
|
15
12
|
import './chunk-PJDQPF5N.js';
|
|
13
|
+
import './chunk-YL2VDSNF.js';
|
|
14
|
+
import './chunk-5K3KB4YR.js';
|
|
15
|
+
import './chunk-HXAEQPZR.js';
|
|
16
|
+
import './chunk-ZJSNLVCE.js';
|
|
17
|
+
import './chunk-BJ3KTMDH.js';
|
|
18
|
+
import './chunk-JGML2VUN.js';
|
|
19
|
+
import './chunk-5BHIBJDA.js';
|
|
20
|
+
import './chunk-CDDED64E.js';
|
|
21
|
+
import './chunk-RA3O54FC.js';
|
|
16
22
|
import './chunk-CRB3POP4.js';
|
|
17
23
|
import './chunk-VWFOKRYS.js';
|
|
18
24
|
import './chunk-YQR6E6OV.js';
|
|
@@ -20,10 +26,7 @@ import './chunk-TUSYOL2O.js';
|
|
|
20
26
|
import './chunk-RKOTJQVG.js';
|
|
21
27
|
import './chunk-QZBXLLTV.js';
|
|
22
28
|
import './chunk-VNVZDWO3.js';
|
|
23
|
-
import './chunk-
|
|
24
|
-
import './chunk-Y4OKEFAX.js';
|
|
25
|
-
import './chunk-RHAGBUL5.js';
|
|
26
|
-
import './chunk-2I3LIRZP.js';
|
|
29
|
+
import './chunk-XD4ZCMA4.js';
|
|
27
30
|
import './chunk-JGD5TWQ2.js';
|
|
28
31
|
import './chunk-Z5GEFMRW.js';
|
|
29
32
|
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { BRIDGE_ADDRESS, BRIDGE_CIDR, CONTAINER_NO_PROXY, CONTAINER_PROXY, TUNNEL_PORT, dockerClientConfig, startBridgeForward, writeDockerClientConfig } from './chunk-
|
|
4
|
-
import './chunk-
|
|
3
|
+
export { BRIDGE_ADDRESS, BRIDGE_CIDR, CONTAINER_NO_PROXY, CONTAINER_PROXY, TUNNEL_PORT, dockerClientConfig, startBridgeForward, writeDockerClientConfig } from './chunk-ZTY7HHYB.js';
|
|
4
|
+
import './chunk-HXAEQPZR.js';
|
|
5
|
+
import './chunk-XD4ZCMA4.js';
|
|
5
6
|
import './chunk-JGD5TWQ2.js';
|
|
6
7
|
import './chunk-Z5GEFMRW.js';
|
|
7
8
|
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { createRequire } from 'node:module';
|
|
3
|
+
export { buildRepositoryImage } from './chunk-T2QSWFSU.js';
|
|
4
|
+
import './chunk-NUHZV3A4.js';
|
|
5
|
+
import './chunk-JBJTC3UU.js';
|
|
6
|
+
export { RecipeError } from './chunk-SJZL5F3F.js';
|
|
7
|
+
import './chunk-5K3KB4YR.js';
|
|
8
|
+
import './chunk-HXAEQPZR.js';
|
|
9
|
+
import './chunk-XD4ZCMA4.js';
|
|
10
|
+
import './chunk-JGD5TWQ2.js';
|
|
11
|
+
import './chunk-Z5GEFMRW.js';
|
|
12
|
+
|
|
13
|
+
createRequire(import.meta.url);
|
package/dist/build-info.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"id":"2026-10-
|
|
1
|
+
{"id":"2026-10-17T13:49:00.892Z+55dd868","root":"/home/runner/_work/outerlayer/outerlayer","pkg":"outerlayer"}
|
|
@@ -1,13 +1,14 @@
|
|
|
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-2BTFKNTR.js';
|
|
3
|
+
export { MIN_BUILDX_VERSION, builderName, builderSpec, buildxState, ensureBuilder, ensureFailureCount, isOutOfMemory, proxyEnvironment, trackImageBuild } from './chunk-VC5J7QPV.js';
|
|
5
4
|
import './chunk-YJLHUKYS.js';
|
|
6
|
-
import './chunk-
|
|
5
|
+
import './chunk-SJZL5F3F.js';
|
|
6
|
+
import './chunk-UHU7H57K.js';
|
|
7
|
+
import './chunk-YL2VDSNF.js';
|
|
8
|
+
import './chunk-5K3KB4YR.js';
|
|
9
|
+
import './chunk-HXAEQPZR.js';
|
|
7
10
|
import './chunk-QZBXLLTV.js';
|
|
8
|
-
import './chunk-
|
|
9
|
-
import './chunk-RHAGBUL5.js';
|
|
10
|
-
import './chunk-2I3LIRZP.js';
|
|
11
|
+
import './chunk-XD4ZCMA4.js';
|
|
11
12
|
import './chunk-JGD5TWQ2.js';
|
|
12
13
|
import './chunk-Z5GEFMRW.js';
|
|
13
14
|
|
|
@@ -1,65 +1,69 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { probeCredentials } from './chunk-
|
|
4
|
-
import './chunk-
|
|
5
|
-
import './chunk-RHGF73IU.js';
|
|
6
|
-
import './chunk-ZVB57WI6.js';
|
|
7
|
-
import './chunk-ABXQBEYK.js';
|
|
3
|
+
import { probeCredentials } from './chunk-7UGFIWIW.js';
|
|
4
|
+
import './chunk-KVDVNOUK.js';
|
|
8
5
|
import './chunk-3JVYMD4G.js';
|
|
9
|
-
import './chunk-
|
|
6
|
+
import './chunk-E7R2GIAW.js';
|
|
10
7
|
import './chunk-TPKYTORP.js';
|
|
11
|
-
import './chunk-
|
|
12
|
-
import './chunk-
|
|
13
|
-
import './chunk-
|
|
14
|
-
import './chunk-
|
|
15
|
-
import './chunk-
|
|
8
|
+
import './chunk-IVX3U7KV.js';
|
|
9
|
+
import './chunk-ZVB57WI6.js';
|
|
10
|
+
import './chunk-66T6XJAB.js';
|
|
11
|
+
import './chunk-N7WAEEIU.js';
|
|
12
|
+
import './chunk-QWAYRAUX.js';
|
|
13
|
+
import './chunk-2YSCKEL2.js';
|
|
14
|
+
import './chunk-TVZAC2NP.js';
|
|
16
15
|
import './chunk-ESVW4MJY.js';
|
|
17
|
-
import
|
|
18
|
-
import './chunk-
|
|
16
|
+
import './chunk-ZTY7HHYB.js';
|
|
17
|
+
import { placeholderQueues, placeholderProblem, permissionModeProblems, permissionModeProblem, needsClaudeCredential, claudeCredentialCheck, claimPermissionProblem, formerSkillQueues, formerSkillProblem } from './chunk-W3FSGH2M.js';
|
|
19
18
|
import './chunk-YYYRBYWG.js';
|
|
19
|
+
import './chunk-GUXWQIEY.js';
|
|
20
20
|
import './chunk-TBT347UY.js';
|
|
21
|
-
import './chunk-
|
|
22
|
-
import './chunk-
|
|
23
|
-
import './chunk-
|
|
24
|
-
import './chunk-
|
|
25
|
-
import './chunk-
|
|
21
|
+
import './chunk-R7SS5RLJ.js';
|
|
22
|
+
import './chunk-T57XUI6N.js';
|
|
23
|
+
import './chunk-IKXY47R5.js';
|
|
24
|
+
import './chunk-MHAR6S7B.js';
|
|
25
|
+
import './chunk-WWQVKFN6.js';
|
|
26
|
+
import './chunk-USJZ2LDK.js';
|
|
27
|
+
import './chunk-Z3ASAXVU.js';
|
|
26
28
|
import './chunk-TQMI335S.js';
|
|
27
|
-
import './chunk-
|
|
28
|
-
import './chunk-
|
|
29
|
-
import './chunk-
|
|
30
|
-
import
|
|
31
|
-
import './chunk-
|
|
32
|
-
import './chunk-
|
|
29
|
+
import './chunk-F4FA3ZUT.js';
|
|
30
|
+
import './chunk-MQHTM4YJ.js';
|
|
31
|
+
import { loadRunnerConfig, RunnerConfigError, checkHooks } from './chunk-55XLX5PA.js';
|
|
32
|
+
import './chunk-UXYLWVTQ.js';
|
|
33
|
+
import './chunk-T2QSWFSU.js';
|
|
34
|
+
import './chunk-NUHZV3A4.js';
|
|
33
35
|
import './chunk-JBJTC3UU.js';
|
|
34
36
|
import './chunk-OGFGZQA3.js';
|
|
35
|
-
import './chunk-
|
|
36
|
-
import './chunk-
|
|
37
|
-
import './chunk-
|
|
38
|
-
import './chunk-
|
|
39
|
-
import './chunk-
|
|
40
|
-
import './chunk-
|
|
41
|
-
import './chunk-N4D5TMVU.js';
|
|
37
|
+
import './chunk-VC5J7QPV.js';
|
|
38
|
+
import './chunk-YJLHUKYS.js';
|
|
39
|
+
import './chunk-SJZL5F3F.js';
|
|
40
|
+
import './chunk-X52PMPOM.js';
|
|
41
|
+
import './chunk-LNIFYSNK.js';
|
|
42
|
+
import './chunk-VU7ZJPIR.js';
|
|
42
43
|
import './chunk-BUP5N3X6.js';
|
|
43
|
-
import './chunk-
|
|
44
|
-
import './chunk-
|
|
44
|
+
import './chunk-UHU7H57K.js';
|
|
45
|
+
import './chunk-5B7BEQPR.js';
|
|
46
|
+
import './chunk-HOU33DW5.js';
|
|
45
47
|
import './chunk-G2JWZDFA.js';
|
|
46
|
-
import
|
|
47
|
-
import './chunk-
|
|
48
|
-
import './chunk-
|
|
49
|
-
import './chunk-
|
|
50
|
-
import './chunk-
|
|
51
|
-
import './chunk-
|
|
52
|
-
import './chunk-
|
|
48
|
+
import './chunk-ANPNT6PM.js';
|
|
49
|
+
import './chunk-4XN5FRRJ.js';
|
|
50
|
+
import './chunk-P2RWZCV7.js';
|
|
51
|
+
import './chunk-7CK2TJFB.js';
|
|
52
|
+
import './chunk-PJDQPF5N.js';
|
|
53
|
+
import './chunk-YL2VDSNF.js';
|
|
54
|
+
import './chunk-5K3KB4YR.js';
|
|
55
|
+
import { claudeEnvPath } from './chunk-HXAEQPZR.js';
|
|
56
|
+
import './chunk-DKWQMPSL.js';
|
|
53
57
|
import './chunk-ZJSNLVCE.js';
|
|
54
58
|
import './chunk-2O5KA67H.js';
|
|
55
59
|
import './chunk-BKO6JEZI.js';
|
|
56
|
-
import './chunk-
|
|
60
|
+
import './chunk-FGF52V4V.js';
|
|
57
61
|
import './chunk-HCVLP7XA.js';
|
|
58
62
|
import './chunk-BJ3KTMDH.js';
|
|
59
|
-
import './chunk-
|
|
60
|
-
import './chunk-
|
|
61
|
-
import './chunk-
|
|
62
|
-
import './chunk-
|
|
63
|
+
import './chunk-JGML2VUN.js';
|
|
64
|
+
import './chunk-5BHIBJDA.js';
|
|
65
|
+
import './chunk-CDDED64E.js';
|
|
66
|
+
import './chunk-RA3O54FC.js';
|
|
63
67
|
import './chunk-T2Q7ISPE.js';
|
|
64
68
|
import './chunk-WZBHBH3J.js';
|
|
65
69
|
import './chunk-CRB3POP4.js';
|
|
@@ -69,10 +73,7 @@ import './chunk-TUSYOL2O.js';
|
|
|
69
73
|
import './chunk-RKOTJQVG.js';
|
|
70
74
|
import './chunk-QZBXLLTV.js';
|
|
71
75
|
import './chunk-VNVZDWO3.js';
|
|
72
|
-
import './chunk-
|
|
73
|
-
import './chunk-Y4OKEFAX.js';
|
|
74
|
-
import './chunk-RHAGBUL5.js';
|
|
75
|
-
import './chunk-2I3LIRZP.js';
|
|
76
|
+
import { parseRunnerEnv } from './chunk-XD4ZCMA4.js';
|
|
76
77
|
import './chunk-JGD5TWQ2.js';
|
|
77
78
|
import './chunk-Z5GEFMRW.js';
|
|
78
79
|
import { readFileSync } from 'fs';
|
|
@@ -107,28 +108,36 @@ async function runRunnerCheck(configPath, deps = {}) {
|
|
|
107
108
|
let credentialLine;
|
|
108
109
|
if (needsClaudeCredential(config.hooks)) {
|
|
109
110
|
const env = deps.env ?? process.env;
|
|
110
|
-
const
|
|
111
|
-
const inShell = claudeCredentialCheck(env);
|
|
111
|
+
const files = [claudeEnvPath(configPath), join(dirname(configPath), "runner.env")];
|
|
112
|
+
const inShell = claudeCredentialCheck(env, { ignoreHeld: true });
|
|
112
113
|
let credential = inShell;
|
|
114
|
+
let foundIn;
|
|
113
115
|
if (inShell.status !== "pass") {
|
|
114
|
-
const
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
116
|
+
for (const path of files) {
|
|
117
|
+
const fromFile = readRunnerEnv(path);
|
|
118
|
+
if ("error" in fromFile) {
|
|
119
|
+
return {
|
|
120
|
+
ok: false,
|
|
121
|
+
check: "claude credential",
|
|
122
|
+
message: `the Claude credential is not in this shell, and ${path} could not be read to look for it: ${fromFile.error}`
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
const found = claudeCredentialCheck(fromFile.env, { ignoreHeld: true });
|
|
126
|
+
if (found.status === "pass") {
|
|
127
|
+
credential = found;
|
|
128
|
+
foundIn = path;
|
|
129
|
+
break;
|
|
130
|
+
}
|
|
121
131
|
}
|
|
122
|
-
credential = claudeCredentialCheck(fromFile.env);
|
|
123
132
|
}
|
|
124
133
|
if (credential.status === "fail") {
|
|
125
134
|
return {
|
|
126
135
|
ok: false,
|
|
127
136
|
check: "claude credential",
|
|
128
|
-
message: `${credential.detail}, in this shell or in ${
|
|
137
|
+
message: `${credential.detail}, in this shell or in ${files.join(" or ")}. ${credential.fix}`
|
|
129
138
|
};
|
|
130
139
|
}
|
|
131
|
-
credentialLine = `claude credential ${credential.detail}${
|
|
140
|
+
credentialLine = `claude credential ${credential.detail}${foundIn === void 0 ? "" : ` (read from ${foundIn})`}`;
|
|
132
141
|
}
|
|
133
142
|
const probe = await probeCredentials(config, deps.fetchImpl);
|
|
134
143
|
if (!probe.ok && probe.fatal) return { ok: false, check: "credentials", message: probe.reason };
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { uploadSpooledSteps } from './chunk-
|
|
3
|
+
import { uploadSpooledSteps } from './chunk-TVZAC2NP.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 {
|
|
8
|
-
import {
|
|
7
|
+
import { setCustomScrubbers, setLocalIdentity, tailTranscript, enrichSessionRepo, scanAll, setRepoRoot, resolveRepoIdentity, sessionIdFromPath, scrubDeep, SOURCE_ADAPTERS } from './chunk-UHU7H57K.js';
|
|
8
|
+
import { C } from './chunk-ANPNT6PM.js';
|
|
9
|
+
import { cliFetch, resolveGatewayCredentials, defaultFetch, unauthorizedMessage } from './chunk-7CK2TJFB.js';
|
|
10
|
+
import { readCloudConfig, cloudConfigPath, writeCloudConfig } from './chunk-PJDQPF5N.js';
|
|
11
|
+
import { signerFor, signRunnerRequest } from './chunk-YL2VDSNF.js';
|
|
12
|
+
import { writeSyncStatus, spoolDir } from './chunk-DKWQMPSL.js';
|
|
9
13
|
import { readLatestProvenanceForSession, readContextProvenance } from './chunk-ZJSNLVCE.js';
|
|
10
14
|
import { hookExecSpoolPath } from './chunk-2O5KA67H.js';
|
|
11
15
|
import { applyReportedCost } from './chunk-BKO6JEZI.js';
|
|
12
16
|
import { readRepoConnection, findGitDirs } from './chunk-BJ3KTMDH.js';
|
|
13
|
-
import { setCustomScrubbers, setLocalIdentity, tailTranscript, enrichSessionRepo, scanAll, setRepoRoot, resolveRepoIdentity, sessionIdFromPath, scrubDeep, SOURCE_ADAPTERS } from './chunk-QE3UQAHK.js';
|
|
14
|
-
import { C } from './chunk-ANPNT6PM.js';
|
|
15
|
-
import { readCloudConfig, cloudConfigPath, writeCloudConfig } from './chunk-PJDQPF5N.js';
|
|
16
17
|
import { readLaunchSpoolState, launchStatusIsDecisive, launchedItemsBySession, launchesPath } from './chunk-T2Q7ISPE.js';
|
|
17
18
|
import { cliInvocation } from './chunk-CRB3POP4.js';
|
|
18
19
|
import { removeJournalHooks } from './chunk-TUSYOL2O.js';
|
|
19
20
|
import { CAPTURE_TIERS, inferArtifactKind, bannedPathsForTier, downconvertSession, isHumanUserTurn, turnCountBound, EVENT_TYPES } from './chunk-QZBXLLTV.js';
|
|
20
21
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
21
|
-
import { signerFor, signRunnerRequest } from './chunk-Y4OKEFAX.js';
|
|
22
22
|
import { dirname, basename, join } from 'path';
|
|
23
23
|
import { statSync, readFileSync, readdirSync, mkdirSync, writeFileSync, renameSync, existsSync, rmSync } from 'fs';
|
|
24
24
|
import { execFileSync } from 'child_process';
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { removeRetiredSkills } from './chunk-
|
|
4
|
-
import { defaultFetch, resolveGatewayCredentials } from './chunk-
|
|
3
|
+
import { removeRetiredSkills } from './chunk-P2RWZCV7.js';
|
|
4
|
+
import { defaultFetch, resolveGatewayCredentials } from './chunk-7CK2TJFB.js';
|
|
5
|
+
import { withTokenHeader } from './chunk-HXAEQPZR.js';
|
|
5
6
|
import { appendContextProvenance } from './chunk-ZJSNLVCE.js';
|
|
6
|
-
import { loadMaintainedFiles, writeMaintainedFiles } from './chunk-
|
|
7
|
+
import { loadMaintainedFiles, writeMaintainedFiles } from './chunk-JGML2VUN.js';
|
|
7
8
|
import { cliInvocation } from './chunk-CRB3POP4.js';
|
|
8
9
|
import { writeDegraded, writeSourceCache, SOURCE_CACHE_TTL_RETRY_MS, writeContextManifest, SOURCE_CACHE_TTL_SUCCESS_MS, readSourceCache, isSourceCacheFresh, clearDegraded } from './chunk-YQR6E6OV.js';
|
|
9
10
|
import { normalizeRepoName, parseOuterlayerConfig, classifyTree, emitTree } from './chunk-RKOTJQVG.js';
|
|
10
11
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
11
|
-
import { withTokenHeader } from './chunk-2I3LIRZP.js';
|
|
12
12
|
import { execFileSync } from 'child_process';
|
|
13
13
|
import { existsSync, mkdirSync, writeFileSync, chmodSync, lstatSync, readFileSync, copyFileSync } from 'fs';
|
|
14
14
|
import { isAbsolute, join, dirname } from 'path';
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { MAX_ALLOW_HOSTS, allowHostProblem } from './chunk-UXYLWVTQ.js';
|
|
4
4
|
import { parseSize } from './chunk-YJLHUKYS.js';
|
|
5
|
+
import { isRefusedInConfig, resolveDestinations, isReservedVariable } from './chunk-HXAEQPZR.js';
|
|
5
6
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
6
|
-
import { isRefusedInConfig, resolveDestinations, isReservedVariable } from './chunk-2I3LIRZP.js';
|
|
7
7
|
import { existsSync, statSync, accessSync, constants, readFileSync } from 'fs';
|
|
8
8
|
import { hostname } from 'os';
|
|
9
9
|
import { join } from 'path';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { AGENTS_SKILLS_BASE, OUTERLAYER_SKILLS_BASE } from './chunk-
|
|
3
|
+
import { AGENTS_SKILLS_BASE, OUTERLAYER_SKILLS_BASE } from './chunk-JGML2VUN.js';
|
|
4
4
|
import { normalizePath, CONTEXT_PIN_FILENAME } from './chunk-RKOTJQVG.js';
|
|
5
5
|
import { existsSync, readdirSync, readFileSync, mkdirSync, writeFileSync, lstatSync, readlinkSync, symlinkSync, rmdirSync } from 'fs';
|
|
6
6
|
import { relative, sep, join } from 'path';
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { createRequire } from 'node:module';
|
|
3
|
+
import { MAINTAINED_SKILLS, maintainedLineVersion } from './chunk-CDDED64E.js';
|
|
4
|
+
import { cliInvocation } from './chunk-CRB3POP4.js';
|
|
5
|
+
import { mkdirSync, writeFileSync, renameSync, rmSync, readFileSync } from 'fs';
|
|
6
|
+
import { dirname, join } from 'path';
|
|
7
|
+
|
|
8
|
+
createRequire(import.meta.url);
|
|
9
|
+
var PLAIN_VERSION = /^[0-9]+\.[0-9]+\.[0-9]+$/;
|
|
10
|
+
var NO_UPDATE_NOTICE_VARIABLE = "OUTERLAYER_NO_UPDATE_NOTICE";
|
|
11
|
+
function cliVersionRecordPath(home) {
|
|
12
|
+
return join(home, ".outerlayer", "cli-version.json");
|
|
13
|
+
}
|
|
14
|
+
function readRecordedVersion(home) {
|
|
15
|
+
try {
|
|
16
|
+
const parsed = JSON.parse(readFileSync(cliVersionRecordPath(home), "utf8"));
|
|
17
|
+
return typeof parsed.version === "string" && PLAIN_VERSION.test(parsed.version) ? parsed.version : void 0;
|
|
18
|
+
} catch {
|
|
19
|
+
return void 0;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
function recordCliVersion(home, version) {
|
|
23
|
+
try {
|
|
24
|
+
if (!PLAIN_VERSION.test(version) || readRecordedVersion(home) === version) return;
|
|
25
|
+
const file = cliVersionRecordPath(home);
|
|
26
|
+
mkdirSync(dirname(file), { recursive: true });
|
|
27
|
+
const temporary = `${file}.${process.pid}.tmp`;
|
|
28
|
+
writeFileSync(temporary, `${JSON.stringify({ version })}
|
|
29
|
+
`);
|
|
30
|
+
renameSync(temporary, file);
|
|
31
|
+
} catch {
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
function removeRecordedVersion(home) {
|
|
35
|
+
try {
|
|
36
|
+
rmSync(cliVersionRecordPath(home));
|
|
37
|
+
} catch {
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
function comparePlainVersions(a, b) {
|
|
41
|
+
const parts = (version) => version.split(/[-+]/)[0].split(".").map(Number);
|
|
42
|
+
const pa = parts(a);
|
|
43
|
+
const pb = parts(b);
|
|
44
|
+
for (const i of [0, 1, 2]) {
|
|
45
|
+
const diff = (pa[i] ?? 0) - (pb[i] ?? 0);
|
|
46
|
+
if (diff !== 0) return diff;
|
|
47
|
+
}
|
|
48
|
+
return 0;
|
|
49
|
+
}
|
|
50
|
+
function newerRecordedVersion(home, running) {
|
|
51
|
+
const recorded = readRecordedVersion(home);
|
|
52
|
+
return recorded !== void 0 && comparePlainVersions(recorded, running) > 0 ? recorded : void 0;
|
|
53
|
+
}
|
|
54
|
+
function updateNoticeSkipped(top, hidden, argv) {
|
|
55
|
+
if (top === "daemon" || top === "watch" || top === "runner") return true;
|
|
56
|
+
if (hidden || argv.includes("--log-failures")) return true;
|
|
57
|
+
return top === "sync" && argv.includes("--quiet");
|
|
58
|
+
}
|
|
59
|
+
function isSet(env, name) {
|
|
60
|
+
return env[name] !== void 0 && env[name] !== "";
|
|
61
|
+
}
|
|
62
|
+
function updateNoticeSuppressed(env) {
|
|
63
|
+
return isSet(env, NO_UPDATE_NOTICE_VARIABLE);
|
|
64
|
+
}
|
|
65
|
+
function updateNoticeLine(recorded, running) {
|
|
66
|
+
return `Update available: OuterLayer CLI ${running} \u2192 ${recorded}. Run: npm install -g @outerlayer/cli@${recorded}`;
|
|
67
|
+
}
|
|
68
|
+
function isCommandInTerminal(input) {
|
|
69
|
+
return input.isTTY && !input.json && !isSet(input.env, "CI");
|
|
70
|
+
}
|
|
71
|
+
function updateNoticeContext(home, ownVersion, env) {
|
|
72
|
+
if (updateNoticeSuppressed(env)) return null;
|
|
73
|
+
const recorded = newerRecordedVersion(home, ownVersion);
|
|
74
|
+
if (recorded === void 0) return null;
|
|
75
|
+
return `A newer OuterLayer CLI is available: this machine runs ${ownVersion}, and the factory uses ${recorded}. Tell the person both versions, and ask them to run \`npm install -g @outerlayer/cli@${recorded}\`.`;
|
|
76
|
+
}
|
|
77
|
+
function staleMachineCopiesContext(home, ownVersion) {
|
|
78
|
+
for (const name of MAINTAINED_SKILLS) {
|
|
79
|
+
let text;
|
|
80
|
+
try {
|
|
81
|
+
text = readFileSync(join(home, ".agents", "skills", name, "SKILL.md"), "utf8");
|
|
82
|
+
} catch {
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
const version = maintainedLineVersion(text);
|
|
86
|
+
if (version === void 0 || version === ownVersion) continue;
|
|
87
|
+
const source = PLAIN_VERSION.test(version) ? `OuterLayer CLI ${version}` : "another OuterLayer CLI version";
|
|
88
|
+
return `The maintained skills in ~/.agents/skills/ come from ${source}, and this session runs ${ownVersion}. Tell the person that the maintained skills on this machine come from another CLI version, and ask them to run \`${cliInvocation()} init --local\`.`;
|
|
89
|
+
}
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
export { PLAIN_VERSION, isCommandInTerminal, newerRecordedVersion, recordCliVersion, removeRecordedVersion, staleMachineCopiesContext, updateNoticeContext, updateNoticeLine, updateNoticeSkipped, updateNoticeSuppressed };
|
|
@@ -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-
|
|
3
|
+
import { RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-5K3KB4YR.js';
|
|
4
4
|
import { readFileSync, mkdirSync, writeFileSync, renameSync } from 'fs';
|
|
5
5
|
import { join } from 'path';
|
|
6
6
|
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { checkStarterFiles, contextIsGoverned
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
3
|
+
import { checkStarterFiles, contextIsGoverned } from './chunk-ITAIEJ2T.js';
|
|
4
|
+
import { fleetCheck, checkBuildSkill, checkMachineSkills, checkCommittedMaintainedSkills, checkMaintainedReferences } from './chunk-QBQHQEUG.js';
|
|
5
|
+
import { resolveCredentials, getJson, WorkCommandError } from './chunk-X52PMPOM.js';
|
|
6
|
+
import { isLinkedRepository } from './chunk-VU7ZJPIR.js';
|
|
6
7
|
import { sanitizeTerminal } from './chunk-BUP5N3X6.js';
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
8
|
+
import { resolveRepoIdentity, compareVersions, SUPPORTED_VERSIONS } from './chunk-UHU7H57K.js';
|
|
9
|
+
import { C } from './chunk-ANPNT6PM.js';
|
|
10
|
+
import { checkFormerSkillNames } from './chunk-P2RWZCV7.js';
|
|
11
|
+
import { resolveGatewayCredentials, defaultFetch } from './chunk-7CK2TJFB.js';
|
|
12
|
+
import { sanitizeForContext, spoolDir, assessSyncHealth, readSyncStatus, SYNC_STALE_AFTER_MS, formatAgo, checkInstalledCliStaleness, workspaceRootOf, hookFiredMarkerPath, refreshCommand } from './chunk-DKWQMPSL.js';
|
|
10
13
|
import { readStatuslineState, STATE_FRESH_MS } from './chunk-I7RZHMXW.js';
|
|
11
14
|
import { hookCommandEscapesControlPlane, CONTROL_PLANE_DIR_VARIABLE } from './chunk-HCVLP7XA.js';
|
|
12
15
|
import { findGitDirs } from './chunk-BJ3KTMDH.js';
|
|
13
|
-
import { resolveRepoIdentity, compareVersions, SUPPORTED_VERSIONS } from './chunk-QE3UQAHK.js';
|
|
14
|
-
import { C } from './chunk-ANPNT6PM.js';
|
|
15
16
|
import { cliInvocation } from './chunk-CRB3POP4.js';
|
|
16
17
|
import { readSettings, settingsPath, isOurStatuslineSlot, statuslineWrappedOriginal, REGISTERED_EVENTS, isOurHookCommand, ourCommandBins, cliBinResolvable, ourDirectScriptBins, wrappedOriginalCommand } from './chunk-URIZRCRY.js';
|
|
17
18
|
import { readDeliveryRecord, readDegraded, readSourceCache } from './chunk-YQR6E6OV.js';
|
|
@@ -207,7 +208,12 @@ function checkRenamedSkills(cwd) {
|
|
|
207
208
|
function checkBuildSkillState(cwd, home) {
|
|
208
209
|
const dirs = findGitDirs(cwd ?? process.cwd());
|
|
209
210
|
if (dirs === void 0 || contextIsGoverned(dirs.gitCommonDir)) return [];
|
|
210
|
-
return [
|
|
211
|
+
return [
|
|
212
|
+
...checkBuildSkill(dirs.repoRoot),
|
|
213
|
+
...checkMachineSkills({ repoRoot: dirs.repoRoot, home }),
|
|
214
|
+
...checkCommittedMaintainedSkills(dirs.repoRoot),
|
|
215
|
+
...checkMaintainedReferences(dirs.repoRoot)
|
|
216
|
+
];
|
|
211
217
|
}
|
|
212
218
|
function checkInstalledCli(home, cwd) {
|
|
213
219
|
const name = "Installed CLI";
|
|
@@ -1174,19 +1180,20 @@ function doctorExitCode(checks) {
|
|
|
1174
1180
|
|
|
1175
1181
|
// src/doctor-report.ts
|
|
1176
1182
|
async function gatherDoctorChecks() {
|
|
1177
|
-
const { defaultRunnerConfigPath, hasRunnerBlock, loadRunnerConfig, runnerVmOf } = await import('./config-
|
|
1183
|
+
const { defaultRunnerConfigPath, hasRunnerBlock, loadRunnerConfig, runnerVmOf } = await import('./config-5QYIKYUP.js');
|
|
1178
1184
|
const configPath = defaultRunnerConfigPath();
|
|
1179
1185
|
const checks = runDoctor({ runnerHost: hasRunnerBlock(configPath) });
|
|
1180
1186
|
const credential = await credentialChecks();
|
|
1181
1187
|
checks.push(...credential);
|
|
1182
1188
|
if (credential[0]?.status === "pass") checks.push(...await githubAppChecks(), ...await governanceChecks());
|
|
1189
|
+
if (credential[0]?.status === "pass") checks.push(...await fleetCheck());
|
|
1183
1190
|
const runnerVm = runnerVmOf(configPath);
|
|
1184
1191
|
if (runnerVm !== void 0) {
|
|
1185
1192
|
const { realLima } = await import('./lima-7NPCNGWT.js');
|
|
1186
1193
|
const { runnerVmCheck } = await import('./doctor-53F2PYY7.js');
|
|
1187
1194
|
checks.push(runnerVmCheck(configPath, { lima: realLima(), home: homeFromEnv(), instance: runnerVm.instance }));
|
|
1188
1195
|
} else if (hasRunnerBlock(configPath)) {
|
|
1189
|
-
const { runnerHostChecks } = await import('./doctor-
|
|
1196
|
+
const { runnerHostChecks } = await import('./doctor-QPQDF7FB.js');
|
|
1190
1197
|
const hooks = (() => {
|
|
1191
1198
|
try {
|
|
1192
1199
|
return loadRunnerConfig(configPath).hooks;
|
|
@@ -1220,8 +1227,8 @@ async function gatherDoctorChecks() {
|
|
|
1220
1227
|
const service = await (async () => {
|
|
1221
1228
|
const { existsSync: existsSync3 } = await import('fs');
|
|
1222
1229
|
if (process.platform !== "linux" || !existsSync3("/run/systemd/system")) return void 0;
|
|
1223
|
-
const { inspectService, realInspectProbes } = await import('./inspect-
|
|
1224
|
-
const { DEFAULT_UNIT_NAME } = await import('./install-
|
|
1230
|
+
const { inspectService, realInspectProbes } = await import('./inspect-L7JIBK3Y.js');
|
|
1231
|
+
const { DEFAULT_UNIT_NAME } = await import('./install-35SAMY75.js');
|
|
1225
1232
|
const { dirname: dirname2 } = await import('path');
|
|
1226
1233
|
return inspectService(DEFAULT_UNIT_NAME, dirname2(configPath), realInspectProbes());
|
|
1227
1234
|
})();
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { readRepoConnection, findGitDirs } from './chunk-BJ3KTMDH.js';
|
|
4
3
|
import { readCloudConfigStrict, readCloudConfig, cloudConfigPath } from './chunk-PJDQPF5N.js';
|
|
4
|
+
import { signRunnerRequest, signerFor } from './chunk-YL2VDSNF.js';
|
|
5
|
+
import { readRepoConnection, findGitDirs } from './chunk-BJ3KTMDH.js';
|
|
6
|
+
import { PLAIN_VERSION, recordCliVersion, removeRecordedVersion } from './chunk-5BHIBJDA.js';
|
|
7
|
+
import { resolvePackageVersion } from './chunk-RA3O54FC.js';
|
|
5
8
|
import { cliInvocation } from './chunk-CRB3POP4.js';
|
|
6
9
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
7
|
-
import { resolvePackageVersion } from './chunk-RA3O54FC.js';
|
|
8
|
-
import { signRunnerRequest, signerFor } from './chunk-Y4OKEFAX.js';
|
|
9
10
|
|
|
10
11
|
createRequire(import.meta.url);
|
|
11
12
|
|
|
@@ -122,10 +123,25 @@ function withCliUserAgent(base, userAgent = () => cliUserAgent()) {
|
|
|
122
123
|
return base(input, { ...init, headers: withHeader(init?.headers, "user-agent", userAgent()) });
|
|
123
124
|
});
|
|
124
125
|
}
|
|
126
|
+
function recordingCliVersion(base) {
|
|
127
|
+
return (async (input, init) => {
|
|
128
|
+
const response = await base(input, init);
|
|
129
|
+
try {
|
|
130
|
+
const header = response.headers.get("outerlayer-cli-version");
|
|
131
|
+
if (header !== null) {
|
|
132
|
+
if (PLAIN_VERSION.test(header)) recordCliVersion(homeFromEnv(), header);
|
|
133
|
+
} else if (response.ok && new Headers(input instanceof Request ? input.headers : init?.headers).get("authorization")?.startsWith("Bearer ")) {
|
|
134
|
+
removeRecordedVersion(homeFromEnv());
|
|
135
|
+
}
|
|
136
|
+
} catch {
|
|
137
|
+
}
|
|
138
|
+
return response;
|
|
139
|
+
});
|
|
140
|
+
}
|
|
125
141
|
function globalFetch(input, init) {
|
|
126
142
|
return globalThis.fetch(input, init);
|
|
127
143
|
}
|
|
128
|
-
var cliFetch = withCliUserAgent(globalFetch);
|
|
144
|
+
var cliFetch = recordingCliVersion(withCliUserAgent(globalFetch));
|
|
129
145
|
var defaultFetch = signingFetch(cliFetch);
|
|
130
146
|
|
|
131
147
|
export { cliFetch, defaultFetch, resolveGatewayCredentials, signingFetchFor, unauthorizedMessage };
|