@outerlayer/cli 0.28.3 → 0.29.0
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 +19 -0
- package/dist/{agent-setup-IDF3EXM4.js → agent-setup-S3KI7TER.js} +14 -14
- package/dist/{artifact-link-cmd-LEI6EOZE.js → artifact-link-cmd-LIJEXVN5.js} +2 -2
- package/dist/{bridge-JN3VJ23L.js → bridge-CP25XV3W.js} +2 -2
- package/dist/{build-JCYOHPLL.js → build-ZS4Y5MJU.js} +4 -4
- package/dist/build-info.json +1 -1
- package/dist/{builder-HCTVP2O7.js → builder-FDUOMHY3.js} +6 -6
- package/dist/{check-F2TJCQ7S.js → check-5XB22HKS.js} +42 -41
- package/dist/{chunk-6NFXOQKZ.js → chunk-23PFIW35.js} +1 -1
- package/dist/{chunk-SATUCMAJ.js → chunk-25Z6SBMQ.js} +2 -2
- package/dist/{chunk-W7BH5YN6.js → chunk-2KOXAMMB.js} +39 -28
- package/dist/{chunk-EPGMCEVP.js → chunk-2YLKMVFV.js} +2 -2
- package/dist/{chunk-QBF462QH.js → chunk-3KMYWLMK.js} +1 -1
- package/dist/{chunk-5B7BEQPR.js → chunk-427AVP6J.js} +2 -2
- package/dist/{chunk-VWFOKRYS.js → chunk-42TFWHFF.js} +1 -1
- package/dist/{chunk-X7SFJZIG.js → chunk-6AG2XW5S.js} +29 -10
- package/dist/{chunk-BUP5N3X6.js → chunk-6XQPCQBW.js} +1 -1
- package/dist/{chunk-WL3QF3QF.js → chunk-77YT7YC4.js} +18 -16
- package/dist/{chunk-EZ3DZXUH.js → chunk-7H7RUQCZ.js} +3 -3
- package/dist/{chunk-LRFU6RPD.js → chunk-A2E7MU2H.js} +55 -47
- package/dist/{chunk-MFI55TNI.js → chunk-BFA2LNJG.js} +22 -6
- package/dist/{chunk-N5EEEKT6.js → chunk-C7F6U2YZ.js} +3 -2
- package/dist/{chunk-M6NNXKRM.js → chunk-CU7TJL6S.js} +1 -1
- package/dist/{chunk-T7LJ6AIC.js → chunk-D3D2CERC.js} +5 -5
- package/dist/{chunk-RKOTJQVG.js → chunk-DXI6A6JN.js} +10 -4
- package/dist/{chunk-KJIUFOC4.js → chunk-F72ABZRD.js} +1 -1
- package/dist/{chunk-UXLLWIA2.js → chunk-FA6XWYRH.js} +7 -7
- package/dist/{chunk-P2RWZCV7.js → chunk-FUGRIAG7.js} +2 -2
- package/dist/{chunk-JYVBEWBC.js → chunk-GG3WS4C5.js} +3 -3
- package/dist/{chunk-O47BTZSN.js → chunk-GI73HOI2.js} +1 -1
- package/dist/{chunk-2BZTGJII.js → chunk-GJJDPZS2.js} +7 -7
- package/dist/{chunk-QKXF7CLR.js → chunk-GJOF6357.js} +4 -4
- package/dist/{chunk-TG7FAHRP.js → chunk-H6DGJBXG.js} +5 -5
- package/dist/{chunk-QFNFBQCG.js → chunk-HRWL7NSJ.js} +5 -5
- package/dist/chunk-I3LTIAOR.js +11 -0
- package/dist/{chunk-OOUHNKKX.js → chunk-IG45QISA.js} +2 -2
- package/dist/{chunk-AV5MJY45.js → chunk-IGEJUPDE.js} +3 -3
- package/dist/{chunk-QZBXLLTV.js → chunk-JL6VZHAJ.js} +38 -1
- package/dist/{chunk-RXFKXZJS.js → chunk-KBIJZAH4.js} +1 -1
- package/dist/{chunk-UHU7H57K.js → chunk-LKN4J37L.js} +151 -34
- package/dist/{chunk-ILU6664L.js → chunk-M4QY7YZ5.js} +360 -74
- package/dist/{chunk-4SJ57DH7.js → chunk-MO2NI6W6.js} +35 -27
- package/dist/{chunk-HWOU2HDH.js → chunk-MX3PPJNS.js} +1 -1
- package/dist/{chunk-ITAIEJ2T.js → chunk-MZJAIRXM.js} +4 -4
- package/dist/{chunk-YYGXCRIW.js → chunk-NAHTO4XM.js} +1 -1
- package/dist/{chunk-JGML2VUN.js → chunk-NX2G6PH6.js} +1 -1
- package/dist/{chunk-OO6OADZN.js → chunk-OD6WUNKZ.js} +3 -3
- package/dist/{chunk-DSKOHPXN.js → chunk-OKAJSYZ2.js} +1 -1
- package/dist/{chunk-DWVAG73B.js → chunk-PAHZQQB3.js} +1 -1
- package/dist/{chunk-NMIYK2G2.js → chunk-PGA5BVHQ.js} +3 -3
- package/dist/{chunk-YTR435DO.js → chunk-PP7C7JQO.js} +3 -3
- package/dist/{chunk-DQYMQ47E.js → chunk-S2Q65ZOT.js} +1 -1
- package/dist/{chunk-R7TMTFJP.js → chunk-SHVE5JZO.js} +1 -1
- package/dist/{chunk-JZJLKTZT.js → chunk-SN3C57RV.js} +5 -5
- package/dist/{chunk-TOHKSZKI.js → chunk-TZGQQY7Y.js} +7 -7
- package/dist/{chunk-VM6BX2WJ.js → chunk-UPKFSNSU.js} +5 -5
- package/dist/{chunk-TCBVV2JK.js → chunk-V47KJGNE.js} +3 -3
- package/dist/{chunk-NKD5BNRX.js → chunk-VT3BKV5D.js} +3 -3
- package/dist/{chunk-HOU33DW5.js → chunk-VY4YVFL5.js} +1 -1
- package/dist/{chunk-SVODOMYC.js → chunk-WEMNLTWB.js} +7 -7
- package/dist/{chunk-DIQN5SEL.js → chunk-YSH4KCUJ.js} +1 -1
- package/dist/{claude-launcher-LVYZ4YJI.js → claude-launcher-SHIQTBS6.js} +5 -5
- package/dist/{cli-5LLFR2SX.js → cli-EN2WGVM6.js} +126 -120
- package/dist/{command-YXOMIXOJ.js → command-2VFWA2RF.js} +30 -30
- package/dist/{config-TNV5HHLO.js → config-HJQ4YE57.js} +2 -2
- package/dist/{connect-cmd-43IWARIV.js → connect-cmd-T6IAT5FT.js} +12 -12
- package/dist/{container-start-YG45GLFE.js → container-start-C5ZCXXMF.js} +29 -29
- package/dist/{context-cleanup-LTH77FC3.js → context-cleanup-MV3X6NSF.js} +3 -3
- package/dist/{control-plane-launch-TIK265OT.js → control-plane-launch-5FZ6LJOC.js} +10 -10
- package/dist/{dist-JFVKLUHL.js → dist-H5IYGH3T.js} +2 -2
- package/dist/{docker-2IIRBQAB.js → docker-RFN6UWTT.js} +6 -6
- package/dist/{doctor-3SRHLRF5.js → doctor-VXDBXKSL.js} +32 -32
- package/dist/{emit-artifact-cmd-RM2X3PBJ.js → emit-artifact-cmd-M52RLUBU.js} +16 -16
- package/dist/{emit-cmd-QUABLVO6.js → emit-cmd-HTNETHAE.js} +6 -6
- package/dist/{emit-criteria-cmd-ZUI7DFND.js → emit-criteria-cmd-APDCA6FK.js} +13 -13
- package/dist/{emit-finding-cmd-W2FU4CCF.js → emit-finding-cmd-XEX5XVVI.js} +13 -13
- package/dist/{emit-result-cmd-JINMQ7QG.js → emit-result-cmd-HFC3WDWB.js} +52 -25
- package/dist/{emit-step-cmd-7FZWQTV3.js → emit-step-cmd-LTRPF2YX.js} +14 -14
- package/dist/{exec-client-6ZJJ4KVH.js → exec-client-GHFNXOY6.js} +3 -3
- package/dist/{fleet-readiness-3A67MUAU.js → fleet-readiness-SJA7NFR2.js} +12 -12
- package/dist/{governing-source-KQMKM5CI.js → governing-source-PBYOKKAJ.js} +17 -17
- package/dist/{guest-init-A4HHI2UR.js → guest-init-MQRIALWR.js} +4 -4
- package/dist/{hook-fast-UJPAWDAO.js → hook-fast-JKYCVO4R.js} +1 -1
- package/dist/{host-key-NGRCMJZ7.js → host-key-DBYH3RTZ.js} +3 -3
- package/dist/{image-tag-TEOKZVD5.js → image-tag-XNODAHAW.js} +3 -3
- package/dist/index.js +4 -4
- package/dist/{init-XP55Q4ZT.js → init-JJPJ2XLL.js} +29 -29
- package/dist/{init-HQW3LHIF.js → init-ZUMSDYMW.js} +29 -29
- package/dist/{init-cmd-XSOVMNNE.js → init-cmd-342RW7DZ.js} +22 -22
- package/dist/{init-update-MZ4IRFC7.js → init-update-4MCW5W72.js} +21 -21
- package/dist/{install-NPTR35MG.js → install-GODA5G7U.js} +4 -4
- package/dist/{install-cmd-4PXPAFQX.js → install-cmd-YNQ5DCZP.js} +5 -5
- package/dist/{layout-BBTQPS6V.js → layout-DBAL2HTQ.js} +4 -4
- package/dist/{login-browser-WSOSQH2T.js → login-browser-B6E4GNIF.js} +2 -2
- package/dist/{logs-Z4L4I3OR.js → logs-KAG3MAUO.js} +2 -2
- package/dist/loop-ZXJFOVCS.js +81 -0
- package/dist/{machine-ATDPHWL5.js → machine-F3TVUBZY.js} +25 -25
- package/dist/{machine-skills-O7W6NMWB.js → machine-skills-6MLTVBCF.js} +4 -4
- package/dist/{mcp-serve-cmd-NQM2WDYI.js → mcp-serve-cmd-SGISNCB3.js} +4 -4
- package/dist/{paths-2VSGK6E2.js → paths-PG4JNLZG.js} +2 -2
- package/dist/{pending-SFZ2AYSK.js → pending-GG252ERT.js} +3 -3
- package/dist/{pidfile-3FT5OLUE.js → pidfile-7SYDMT2O.js} +3 -3
- package/dist/{record-7SSRLSI2.js → record-ZGUOOYJH.js} +3 -3
- package/dist/{runner-env-2Z2DVSUJ.js → runner-env-WI6LKWIU.js} +5 -5
- package/dist/{runner-identity-B37HHOZR.js → runner-identity-JIC54L5Q.js} +6 -6
- package/dist/{runner-key-SICUOQY5.js → runner-key-RXCKMQRL.js} +29 -29
- package/dist/{session-sender-7MSVJZ6Q.js → session-sender-JAAMA5E6.js} +17 -17
- package/dist/{spec-cmd-KAQ7MX4O.js → spec-cmd-BUFLEQ6L.js} +14 -14
- package/dist/{starter-pack-5SOT5V4I.js → starter-pack-I5W5JAYT.js} +5 -5
- package/dist/{status-AI22UPKC.js → status-E7V365CD.js} +33 -32
- package/dist/{sync-cmd-7K3WVQKO.js → sync-cmd-U5FUBXJY.js} +16 -16
- package/dist/{watch-NCYESLO2.js → watch-AOPZJOUM.js} +16 -16
- package/dist/{work-claim-cmd-IOUEHYIY.js → work-claim-cmd-Z2UZD37I.js} +17 -17
- package/dist/{work-cmd-FOI74X5B.js → work-cmd-XLVQDNTC.js} +14 -14
- package/dist/{work-comment-cmd-3C44H4CG.js → work-comment-cmd-THLQUSMH.js} +14 -14
- package/dist/{work-logs-cmd-YGAWCX3X.js → work-logs-cmd-2NFG6ZY6.js} +14 -14
- package/dist/{work-open-pr-cmd-HUG5HAVC.js → work-open-pr-cmd-J22A2YCD.js} +15 -15
- package/dist/{work-pr-cmd-L2EDOYXH.js → work-pr-cmd-SYAENEH4.js} +14 -14
- package/dist/{work-stop-cmd-GGDVKC67.js → work-stop-cmd-FP453YCB.js} +14 -14
- package/package.json +1 -1
- package/skill-pack/maintained/outerlayer-amend/SKILL.md +40 -39
- package/skill-pack/maintained/outerlayer-build/SKILL.md +5 -9
- package/skill-pack/maintained/outerlayer-build/references/criteria-judge.md +15 -12
- package/skill-pack/maintained/outerlayer-build/references/release.md +11 -6
- package/skill-pack/shipped.json +1 -0
- package/skill-pack/validators/acceptance-criteria.yaml +7 -2
- package/dist/loop-QQBLJ7GN.js +0 -80
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# @outerlayer/cli
|
|
2
2
|
|
|
3
|
+
## 0.29.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 8ed2acc: The host's criteria judge records one check item per criterion, with its result and reason, and judges again only the criteria whose tests changed. `outerlayer emit <name> --items <file>` sends check items from CI, a host command writes them to the file `OUTERLAYER_CHECK_ITEMS` names, and `outerlayer work status` lists the failing ones. A judge check can set `subjects: none` to judge the change with no criteria.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- 3a2c7ea: A command in a microVM build that finishes at once no longer fails now and then with `write EPIPE` from the exec agent. The runner sends a command's request and its known input to the guest in one write.
|
|
12
|
+
- c6533fc: A runner reads past the first page of startable work, so a runner limited to some repositories finds their work however long the queue is. It takes work in the order the gateway lists it, which is now the order each build was asked for.
|
|
13
|
+
- 86d956d: The tracker adapters name an issue's labels `labels` instead of `tags`. The label names they read from GitHub, Linear and Jira are unchanged.
|
|
14
|
+
|
|
15
|
+
## 0.28.4
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- eabcfe6: `outerlayer doctor` passes on a runner that uses a Runner key. It leaves out the Claude Code version and last-sync checks for builds in containers or microVMs. The runner no longer logs a failed relay join while the build's relay is still starting.
|
|
20
|
+
- 1cde310: A container build's finished connections free their place at once, so a large package install no longer runs out of connections and fails partway through.
|
|
21
|
+
|
|
3
22
|
## 0.28.3
|
|
4
23
|
|
|
5
24
|
### Patch Changes
|
|
@@ -1,30 +1,30 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { keepHandWritten, runAgentSetup } from './chunk-
|
|
4
|
-
import './chunk-
|
|
3
|
+
export { keepHandWritten, runAgentSetup } from './chunk-FA6XWYRH.js';
|
|
4
|
+
import './chunk-GJOF6357.js';
|
|
5
5
|
import './chunk-KT4CN6OU.js';
|
|
6
|
-
import './chunk-
|
|
7
|
-
import './chunk-
|
|
6
|
+
import './chunk-25Z6SBMQ.js';
|
|
7
|
+
import './chunk-427AVP6J.js';
|
|
8
8
|
import './chunk-ANPNT6PM.js';
|
|
9
|
-
import './chunk-
|
|
10
|
-
import './chunk-
|
|
11
|
-
import './chunk-
|
|
9
|
+
import './chunk-H6DGJBXG.js';
|
|
10
|
+
import './chunk-FUGRIAG7.js';
|
|
11
|
+
import './chunk-F72ABZRD.js';
|
|
12
12
|
import './chunk-PJDQPF5N.js';
|
|
13
|
-
import './chunk-
|
|
14
|
-
import './chunk-
|
|
15
|
-
import './chunk-
|
|
13
|
+
import './chunk-SHVE5JZO.js';
|
|
14
|
+
import './chunk-PAHZQQB3.js';
|
|
15
|
+
import './chunk-C7F6U2YZ.js';
|
|
16
16
|
import './chunk-ZJSNLVCE.js';
|
|
17
17
|
import './chunk-BJ3KTMDH.js';
|
|
18
|
-
import './chunk-
|
|
18
|
+
import './chunk-NX2G6PH6.js';
|
|
19
19
|
import './chunk-5BHIBJDA.js';
|
|
20
20
|
import './chunk-CDDED64E.js';
|
|
21
21
|
import './chunk-RA3O54FC.js';
|
|
22
22
|
import './chunk-CRB3POP4.js';
|
|
23
|
-
import './chunk-
|
|
23
|
+
import './chunk-42TFWHFF.js';
|
|
24
24
|
import './chunk-YQR6E6OV.js';
|
|
25
25
|
import './chunk-TUSYOL2O.js';
|
|
26
|
-
import './chunk-
|
|
27
|
-
import './chunk-
|
|
26
|
+
import './chunk-DXI6A6JN.js';
|
|
27
|
+
import './chunk-JL6VZHAJ.js';
|
|
28
28
|
import './chunk-VNVZDWO3.js';
|
|
29
29
|
import './chunk-XD4ZCMA4.js';
|
|
30
30
|
import './chunk-MESOOLF4.js';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { sanitizeTerminal, readEffectiveArtifactSpoolState } from './chunk-
|
|
3
|
+
import { sanitizeTerminal, readEffectiveArtifactSpoolState } from './chunk-6XQPCQBW.js';
|
|
4
4
|
import { cliInvocation } from './chunk-CRB3POP4.js';
|
|
5
|
-
import './chunk-
|
|
5
|
+
import './chunk-JL6VZHAJ.js';
|
|
6
6
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
7
7
|
import './chunk-Z5GEFMRW.js';
|
|
8
8
|
|
|
@@ -1,7 +1,7 @@
|
|
|
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-KBIJZAH4.js';
|
|
4
|
+
import './chunk-C7F6U2YZ.js';
|
|
5
5
|
import './chunk-XD4ZCMA4.js';
|
|
6
6
|
import './chunk-MESOOLF4.js';
|
|
7
7
|
import './chunk-Z5GEFMRW.js';
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { buildRepositoryImage } from './chunk-
|
|
4
|
-
import './chunk-
|
|
3
|
+
export { buildRepositoryImage } from './chunk-V47KJGNE.js';
|
|
4
|
+
import './chunk-CU7TJL6S.js';
|
|
5
5
|
import './chunk-JBJTC3UU.js';
|
|
6
6
|
export { RecipeError } from './chunk-SJZL5F3F.js';
|
|
7
|
-
import './chunk-
|
|
8
|
-
import './chunk-
|
|
7
|
+
import './chunk-PAHZQQB3.js';
|
|
8
|
+
import './chunk-C7F6U2YZ.js';
|
|
9
9
|
import './chunk-XD4ZCMA4.js';
|
|
10
10
|
import './chunk-MESOOLF4.js';
|
|
11
11
|
import './chunk-Z5GEFMRW.js';
|
package/dist/build-info.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"id":"2026-10-
|
|
1
|
+
{"id":"2026-10-19T13:07:50.023Z+2340eef","root":"/home/runner/_work/outerlayer/outerlayer","pkg":"outerlayer"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { MIN_BUILDX_VERSION, builderName, builderSpec, buildxState, ensureBuilder, ensureFailureCount, isOutOfMemory, proxyEnvironment, trackImageBuild } from './chunk-
|
|
3
|
+
export { MIN_BUILDX_VERSION, builderName, builderSpec, buildxState, ensureBuilder, ensureFailureCount, isOutOfMemory, proxyEnvironment, trackImageBuild } from './chunk-BFA2LNJG.js';
|
|
4
4
|
import './chunk-YJLHUKYS.js';
|
|
5
5
|
import './chunk-SJZL5F3F.js';
|
|
6
|
-
import './chunk-
|
|
7
|
-
import './chunk-
|
|
8
|
-
import './chunk-
|
|
9
|
-
import './chunk-
|
|
10
|
-
import './chunk-
|
|
6
|
+
import './chunk-LKN4J37L.js';
|
|
7
|
+
import './chunk-SHVE5JZO.js';
|
|
8
|
+
import './chunk-PAHZQQB3.js';
|
|
9
|
+
import './chunk-C7F6U2YZ.js';
|
|
10
|
+
import './chunk-JL6VZHAJ.js';
|
|
11
11
|
import './chunk-XD4ZCMA4.js';
|
|
12
12
|
import './chunk-MESOOLF4.js';
|
|
13
13
|
import './chunk-Z5GEFMRW.js';
|
|
@@ -1,66 +1,67 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { probeCredentials } from './chunk-
|
|
4
|
-
import './chunk-
|
|
3
|
+
import { probeCredentials } from './chunk-A2E7MU2H.js';
|
|
4
|
+
import './chunk-M4QY7YZ5.js';
|
|
5
5
|
import './chunk-3JVYMD4G.js';
|
|
6
6
|
import './chunk-E7R2GIAW.js';
|
|
7
7
|
import './chunk-TPKYTORP.js';
|
|
8
|
-
import './chunk-
|
|
8
|
+
import './chunk-MX3PPJNS.js';
|
|
9
9
|
import './chunk-ZVB57WI6.js';
|
|
10
|
-
import './chunk-
|
|
11
|
-
import './chunk-
|
|
12
|
-
import './chunk-
|
|
13
|
-
import './chunk-
|
|
14
|
-
import './chunk-
|
|
10
|
+
import './chunk-3KMYWLMK.js';
|
|
11
|
+
import './chunk-OD6WUNKZ.js';
|
|
12
|
+
import './chunk-I3LTIAOR.js';
|
|
13
|
+
import './chunk-PP7C7JQO.js';
|
|
14
|
+
import './chunk-GJJDPZS2.js';
|
|
15
|
+
import './chunk-UPKFSNSU.js';
|
|
15
16
|
import './chunk-ESVW4MJY.js';
|
|
16
|
-
import './chunk-
|
|
17
|
-
import { placeholderQueues, placeholderProblem, permissionModeProblems, permissionModeProblem, needsClaudeCredential, claudeCredentialCheck, claimPermissionProblem, formerSkillQueues, formerSkillProblem } from './chunk-
|
|
17
|
+
import './chunk-KBIJZAH4.js';
|
|
18
|
+
import { placeholderQueues, placeholderProblem, permissionModeProblems, permissionModeProblem, needsClaudeCredential, claudeCredentialCheck, claimPermissionProblem, formerSkillQueues, formerSkillProblem } from './chunk-WEMNLTWB.js';
|
|
18
19
|
import './chunk-YYYRBYWG.js';
|
|
19
|
-
import './chunk-
|
|
20
|
+
import './chunk-23PFIW35.js';
|
|
20
21
|
import './chunk-TBT347UY.js';
|
|
21
|
-
import './chunk-
|
|
22
|
-
import './chunk-
|
|
23
|
-
import './chunk-
|
|
24
|
-
import './chunk-
|
|
25
|
-
import './chunk-
|
|
26
|
-
import './chunk-
|
|
27
|
-
import './chunk-
|
|
22
|
+
import './chunk-D3D2CERC.js';
|
|
23
|
+
import './chunk-2YLKMVFV.js';
|
|
24
|
+
import './chunk-MO2NI6W6.js';
|
|
25
|
+
import './chunk-77YT7YC4.js';
|
|
26
|
+
import './chunk-YSH4KCUJ.js';
|
|
27
|
+
import './chunk-SN3C57RV.js';
|
|
28
|
+
import './chunk-GI73HOI2.js';
|
|
28
29
|
import './chunk-TQMI335S.js';
|
|
29
|
-
import './chunk-
|
|
30
|
-
import './chunk-
|
|
31
|
-
import { loadRunnerConfig, RunnerConfigError, checkHooks } from './chunk-
|
|
30
|
+
import './chunk-IGEJUPDE.js';
|
|
31
|
+
import './chunk-GG3WS4C5.js';
|
|
32
|
+
import { loadRunnerConfig, RunnerConfigError, checkHooks } from './chunk-NAHTO4XM.js';
|
|
32
33
|
import './chunk-UXYLWVTQ.js';
|
|
33
|
-
import './chunk-
|
|
34
|
-
import './chunk-
|
|
34
|
+
import './chunk-V47KJGNE.js';
|
|
35
|
+
import './chunk-CU7TJL6S.js';
|
|
35
36
|
import './chunk-JBJTC3UU.js';
|
|
36
37
|
import './chunk-OGFGZQA3.js';
|
|
37
|
-
import './chunk-
|
|
38
|
+
import './chunk-BFA2LNJG.js';
|
|
38
39
|
import './chunk-YJLHUKYS.js';
|
|
39
40
|
import './chunk-SJZL5F3F.js';
|
|
40
|
-
import './chunk-
|
|
41
|
-
import './chunk-
|
|
42
|
-
import './chunk-
|
|
43
|
-
import './chunk-
|
|
44
|
-
import './chunk-
|
|
45
|
-
import './chunk-
|
|
46
|
-
import './chunk-
|
|
41
|
+
import './chunk-6AG2XW5S.js';
|
|
42
|
+
import './chunk-PGA5BVHQ.js';
|
|
43
|
+
import './chunk-HRWL7NSJ.js';
|
|
44
|
+
import './chunk-6XQPCQBW.js';
|
|
45
|
+
import './chunk-LKN4J37L.js';
|
|
46
|
+
import './chunk-427AVP6J.js';
|
|
47
|
+
import './chunk-VY4YVFL5.js';
|
|
47
48
|
import './chunk-G2JWZDFA.js';
|
|
48
49
|
import './chunk-ANPNT6PM.js';
|
|
49
|
-
import './chunk-
|
|
50
|
-
import './chunk-
|
|
51
|
-
import './chunk-
|
|
50
|
+
import './chunk-H6DGJBXG.js';
|
|
51
|
+
import './chunk-FUGRIAG7.js';
|
|
52
|
+
import './chunk-F72ABZRD.js';
|
|
52
53
|
import './chunk-PJDQPF5N.js';
|
|
53
|
-
import './chunk-
|
|
54
|
-
import './chunk-
|
|
55
|
-
import { claudeEnvPath } from './chunk-
|
|
56
|
-
import './chunk-
|
|
54
|
+
import './chunk-SHVE5JZO.js';
|
|
55
|
+
import './chunk-PAHZQQB3.js';
|
|
56
|
+
import { claudeEnvPath } from './chunk-C7F6U2YZ.js';
|
|
57
|
+
import './chunk-IG45QISA.js';
|
|
57
58
|
import './chunk-ZJSNLVCE.js';
|
|
58
59
|
import './chunk-2O5KA67H.js';
|
|
59
60
|
import './chunk-BKO6JEZI.js';
|
|
60
61
|
import './chunk-FGF52V4V.js';
|
|
61
62
|
import './chunk-HCVLP7XA.js';
|
|
62
63
|
import './chunk-BJ3KTMDH.js';
|
|
63
|
-
import './chunk-
|
|
64
|
+
import './chunk-NX2G6PH6.js';
|
|
64
65
|
import './chunk-5BHIBJDA.js';
|
|
65
66
|
import './chunk-CDDED64E.js';
|
|
66
67
|
import './chunk-RA3O54FC.js';
|
|
@@ -70,8 +71,8 @@ import './chunk-CRB3POP4.js';
|
|
|
70
71
|
import './chunk-URIZRCRY.js';
|
|
71
72
|
import './chunk-YQR6E6OV.js';
|
|
72
73
|
import './chunk-TUSYOL2O.js';
|
|
73
|
-
import './chunk-
|
|
74
|
-
import './chunk-
|
|
74
|
+
import './chunk-DXI6A6JN.js';
|
|
75
|
+
import './chunk-JL6VZHAJ.js';
|
|
75
76
|
import './chunk-VNVZDWO3.js';
|
|
76
77
|
import { parseRunnerEnv } from './chunk-XD4ZCMA4.js';
|
|
77
78
|
import './chunk-MESOOLF4.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-
|
|
3
|
+
import { runnerDir, RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-PAHZQQB3.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
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { C } from './chunk-ANPNT6PM.js';
|
|
4
|
-
import { resolvePackRoot, OUTERLAYER_SKILLS_BASE, loadTemplateFiles, AGENTS_SKILLS_BASE, loadMaintainedFiles, rewriteSkillPaths, TEMPLATE_SKILLS, skillDir, writeMaintainedFiles, MACHINE_SKILL_PATH } from './chunk-
|
|
4
|
+
import { resolvePackRoot, OUTERLAYER_SKILLS_BASE, loadTemplateFiles, AGENTS_SKILLS_BASE, loadMaintainedFiles, rewriteSkillPaths, TEMPLATE_SKILLS, skillDir, writeMaintainedFiles, MACHINE_SKILL_PATH } from './chunk-NX2G6PH6.js';
|
|
5
5
|
import { MAINTAINED_SKILLS } from './chunk-CDDED64E.js';
|
|
6
6
|
import { resolvePackageVersion } from './chunk-RA3O54FC.js';
|
|
7
7
|
import { cliInvocation } from './chunk-CRB3POP4.js';
|
|
8
|
-
import { linkedAgentsPath } from './chunk-
|
|
8
|
+
import { linkedAgentsPath } from './chunk-42TFWHFF.js';
|
|
9
9
|
import { readFileSync, existsSync, mkdirSync, writeFileSync } from 'fs';
|
|
10
10
|
import { join, dirname } from 'path';
|
|
11
11
|
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { checkStarterFiles, contextIsGoverned } from './chunk-
|
|
4
|
-
import { fleetCheck, checkBuildSkill, checkMachineSkills, checkCommittedMaintainedSkills, checkMaintainedReferences } from './chunk-
|
|
5
|
-
import { resolveCredentials, getJson, WorkCommandError } from './chunk-
|
|
6
|
-
import { isLinkedRepository } from './chunk-
|
|
7
|
-
import { sanitizeTerminal } from './chunk-
|
|
8
|
-
import { resolveRepoIdentity, compareVersions, SUPPORTED_VERSIONS } from './chunk-
|
|
3
|
+
import { checkStarterFiles, contextIsGoverned } from './chunk-MZJAIRXM.js';
|
|
4
|
+
import { fleetCheck, checkBuildSkill, checkMachineSkills, checkCommittedMaintainedSkills, checkMaintainedReferences } from './chunk-TZGQQY7Y.js';
|
|
5
|
+
import { resolveCredentials, getJson, WorkCommandError } from './chunk-6AG2XW5S.js';
|
|
6
|
+
import { isLinkedRepository } from './chunk-HRWL7NSJ.js';
|
|
7
|
+
import { sanitizeTerminal } from './chunk-6XQPCQBW.js';
|
|
8
|
+
import { resolveRepoIdentity, compareVersions, SUPPORTED_VERSIONS } from './chunk-LKN4J37L.js';
|
|
9
9
|
import { C } from './chunk-ANPNT6PM.js';
|
|
10
|
-
import { checkFormerSkillNames } from './chunk-
|
|
11
|
-
import { resolveGatewayCredentials, defaultFetch } from './chunk-
|
|
12
|
-
import { sanitizeForContext, spoolDir, assessSyncHealth, readSyncStatus, SYNC_STALE_AFTER_MS, formatAgo, checkInstalledCliStaleness, workspaceRootOf, hookFiredMarkerPath, refreshCommand } from './chunk-
|
|
10
|
+
import { checkFormerSkillNames } from './chunk-FUGRIAG7.js';
|
|
11
|
+
import { resolveGatewayCredentials, defaultFetch } from './chunk-F72ABZRD.js';
|
|
12
|
+
import { sanitizeForContext, spoolDir, assessSyncHealth, readSyncStatus, SYNC_STALE_AFTER_MS, formatAgo, checkInstalledCliStaleness, workspaceRootOf, hookFiredMarkerPath, refreshCommand } from './chunk-IG45QISA.js';
|
|
13
13
|
import { readStatuslineState, STATE_FRESH_MS } from './chunk-I7RZHMXW.js';
|
|
14
14
|
import { hookCommandEscapesControlPlane, CONTROL_PLANE_DIR_VARIABLE } from './chunk-HCVLP7XA.js';
|
|
15
15
|
import { findGitDirs } from './chunk-BJ3KTMDH.js';
|
|
@@ -176,17 +176,18 @@ function runDoctor(env = {}) {
|
|
|
176
176
|
const home = env.home ?? homeFromEnv();
|
|
177
177
|
const now = env.now ?? Date.now;
|
|
178
178
|
const laptop = env.runnerHost !== true;
|
|
179
|
+
const buildsInOwnImages = env.runnerHost === true && (env.runnerHooks === "builtin:container" || env.runnerHooks === "builtin:vm");
|
|
179
180
|
const transcripts = laptop ? scanTranscripts(home) : void 0;
|
|
180
181
|
const starter = laptop ? checkStarterFiles(env.cwd) : void 0;
|
|
181
182
|
return [
|
|
182
183
|
...laptop ? [checkClaudeDir(home), checkTranscripts(transcripts, now), ...checkHooks(home, env.cwd, transcripts, now)] : [LAPTOP_CHECKS_NOT_APPLICABLE],
|
|
183
184
|
...checkDeadHooksState(env.cwd),
|
|
184
185
|
...laptop ? [checkSpoolWritable(home)] : [],
|
|
185
|
-
checkLastSync(home, now),
|
|
186
|
+
...buildsInOwnImages ? [] : [checkLastSync(home, now)],
|
|
186
187
|
...laptop ? [checkDaemon(home)] : [],
|
|
187
188
|
checkCleanupPeriod(home),
|
|
188
189
|
checkDiskHeadroom(home),
|
|
189
|
-
checkClaudeVersion(env),
|
|
190
|
+
...buildsInOwnImages ? [] : [checkClaudeVersion(env)],
|
|
190
191
|
checkSettingsValid(home, env.cwd),
|
|
191
192
|
...laptop ? checkStatusline(home, now, env.cwd) : [],
|
|
192
193
|
...checkInstalls(env),
|
|
@@ -920,6 +921,7 @@ var CREDENTIAL_CHECK_TIMEOUT_MS = 15e3;
|
|
|
920
921
|
var LOGIN_FIX = `Run \`${cliInvocation()} login\` to sign in again.`;
|
|
921
922
|
var CONNECT_FIX = `Run \`${cliInvocation()} connect\` to choose a factory for this repository.`;
|
|
922
923
|
var SETUP_PANEL_FIX = "Link the repository on the factory's setup panel in the dashboard.";
|
|
924
|
+
var RUNNER_KEY_PATH = "/v1/runner/host-key";
|
|
923
925
|
var MINT_KEY_FIX = "Mint a key for a factory that exists: dashboard \u2192 Settings \u2192 API keys.";
|
|
924
926
|
async function askGateway(fetchImpl, url, path, credential, appId) {
|
|
925
927
|
const headers = { authorization: `Bearer ${credential}` };
|
|
@@ -1019,7 +1021,7 @@ async function loginChecks(fetchImpl, url, token, appId, local, inRepository) {
|
|
|
1019
1021
|
const fix = elsewhere === void 0 ? SETUP_PANEL_FIX : `Run \`${cliInvocation()} connect --factory ${factorySlug(elsewhere)}\` to use the factory this repository is linked to.`;
|
|
1020
1022
|
return [login, factoryCheck, { name: "Repository", status: "warn", detail: `${shown} is not linked to ${factorySlug(factory)}`, fix }];
|
|
1021
1023
|
}
|
|
1022
|
-
async function factoryKeyChecks(fetchImpl, url, key, appId, source, local) {
|
|
1024
|
+
async function factoryKeyChecks(fetchImpl, url, key, appId, source, local, runnerHost) {
|
|
1023
1025
|
const name = "Factory key";
|
|
1024
1026
|
if (appId === void 0) {
|
|
1025
1027
|
return withSkippedRest(
|
|
@@ -1028,7 +1030,7 @@ async function factoryKeyChecks(fetchImpl, url, key, appId, source, local) {
|
|
|
1028
1030
|
);
|
|
1029
1031
|
}
|
|
1030
1032
|
const factoryPath = `/v1/apps/${encodeURIComponent(appId)}`;
|
|
1031
|
-
const reply = await askGateway(fetchImpl, url, factoryPath, key, appId);
|
|
1033
|
+
const reply = await askGateway(fetchImpl, url, runnerHost ? RUNNER_KEY_PATH : factoryPath, key, appId);
|
|
1032
1034
|
const unanswered = unansweredDetail(reply);
|
|
1033
1035
|
if (unanswered !== void 0) {
|
|
1034
1036
|
return withSkippedRest({ name, status: "warn", detail: unanswered, fix: NETWORK_FIX }, "the factory key check did not finish");
|
|
@@ -1051,10 +1053,11 @@ async function factoryKeyChecks(fetchImpl, url, key, appId, source, local) {
|
|
|
1051
1053
|
const accepted = { name, status: "pass", detail: `the gateway accepts the key from ${source}` };
|
|
1052
1054
|
const shownAppId = sanitizeTerminal(appId);
|
|
1053
1055
|
if (status === 403 && /missing required permission/i.test(message)) {
|
|
1054
|
-
const permission = /'([^']+)'/.exec(message)?.[1] ?? "factory.read";
|
|
1056
|
+
const permission = /'([^']+)'/.exec(message)?.[1] ?? (runnerHost ? "work.claim" : "factory.read");
|
|
1057
|
+
const cannot = runnerHost ? `the key lacks a permission that a runner needs for the factory ${shownAppId}` : `the key cannot read the factory ${shownAppId}`;
|
|
1055
1058
|
return [
|
|
1056
1059
|
accepted,
|
|
1057
|
-
{ name: "Factory", status: "fail", detail:
|
|
1060
|
+
{ name: "Factory", status: "fail", detail: `${cannot}: ${message}`, fix: `Use a key that holds ${permission}.` },
|
|
1058
1061
|
skippedCheck("Repository", "the factory check failed")
|
|
1059
1062
|
];
|
|
1060
1063
|
}
|
|
@@ -1082,6 +1085,10 @@ async function factoryKeyChecks(fetchImpl, url, key, appId, source, local) {
|
|
|
1082
1085
|
"the factory key check did not finish"
|
|
1083
1086
|
);
|
|
1084
1087
|
}
|
|
1088
|
+
if (runnerHost) {
|
|
1089
|
+
const factory2 = { name: "Factory", status: "pass", detail: `the factory ${shownAppId} accepts this runner key` };
|
|
1090
|
+
return withRepository(fetchImpl, url, key, appId, factoryPath, local, accepted, factory2);
|
|
1091
|
+
}
|
|
1085
1092
|
const row = body?.data;
|
|
1086
1093
|
if (typeof row?.id !== "string") {
|
|
1087
1094
|
return withSkippedRest(
|
|
@@ -1091,6 +1098,9 @@ async function factoryKeyChecks(fetchImpl, url, key, appId, source, local) {
|
|
|
1091
1098
|
}
|
|
1092
1099
|
const label = [row.display_name, row.name].find((v) => typeof v === "string") ?? appId;
|
|
1093
1100
|
const factory = { name: "Factory", status: "pass", detail: `${sanitizeTerminal(label)} (${shownAppId}) is readable with this key` };
|
|
1101
|
+
return withRepository(fetchImpl, url, key, appId, factoryPath, local, accepted, factory);
|
|
1102
|
+
}
|
|
1103
|
+
async function withRepository(fetchImpl, url, key, appId, factoryPath, local, accepted, factory) {
|
|
1094
1104
|
if (local === void 0) return [accepted, factory, skippedCheck("Repository", "not inside a git repository with a remote")];
|
|
1095
1105
|
const links = await askGateway(fetchImpl, url, `${factoryPath}/git/links`, key, appId);
|
|
1096
1106
|
const shown = sanitizeTerminal(local);
|
|
@@ -1122,7 +1132,7 @@ async function credentialChecks(options = {}) {
|
|
|
1122
1132
|
return loginChecks(fetchImpl, resolved.url, resolved.credential, resolved.appId, local, findGitDirs(cwd) !== void 0);
|
|
1123
1133
|
}
|
|
1124
1134
|
const source = env.OUTERLAYER_API_KEY ? "OUTERLAYER_API_KEY" : "~/.outerlayer/config.json";
|
|
1125
|
-
return factoryKeyChecks(fetchImpl, resolved.url, resolved.credential, resolved.appId, source, local);
|
|
1135
|
+
return factoryKeyChecks(fetchImpl, resolved.url, resolved.credential, resolved.appId, source, local, options.runnerHost === true);
|
|
1126
1136
|
}
|
|
1127
1137
|
function governedDetail(source) {
|
|
1128
1138
|
return `governed by ${sanitizeTerminal(source.repository)} (ref ${sanitizeTerminal(source.ref)}, stored commit ${sanitizeTerminal(source.sha.slice(0, 7))})`;
|
|
@@ -1180,10 +1190,18 @@ function doctorExitCode(checks) {
|
|
|
1180
1190
|
|
|
1181
1191
|
// src/doctor-report.ts
|
|
1182
1192
|
async function gatherDoctorChecks() {
|
|
1183
|
-
const { defaultRunnerConfigPath, hasRunnerBlock, loadRunnerConfig, runnerVmOf } = await import('./config-
|
|
1193
|
+
const { defaultRunnerConfigPath, hasRunnerBlock, loadRunnerConfig, runnerVmOf } = await import('./config-HJQ4YE57.js');
|
|
1184
1194
|
const configPath = defaultRunnerConfigPath();
|
|
1185
|
-
const
|
|
1186
|
-
const
|
|
1195
|
+
const runnerHost = hasRunnerBlock(configPath);
|
|
1196
|
+
const hooks = (() => {
|
|
1197
|
+
try {
|
|
1198
|
+
return runnerHost ? loadRunnerConfig(configPath).hooks : void 0;
|
|
1199
|
+
} catch {
|
|
1200
|
+
return void 0;
|
|
1201
|
+
}
|
|
1202
|
+
})();
|
|
1203
|
+
const checks = runDoctor({ runnerHost, ...hooks === void 0 ? {} : { runnerHooks: hooks.provision } });
|
|
1204
|
+
const credential = await credentialChecks({ runnerHost });
|
|
1187
1205
|
checks.push(...credential);
|
|
1188
1206
|
if (credential[0]?.status === "pass") checks.push(...await githubAppChecks(), ...await governanceChecks());
|
|
1189
1207
|
if (credential[0]?.status === "pass") checks.push(...await fleetCheck());
|
|
@@ -1193,14 +1211,7 @@ async function gatherDoctorChecks() {
|
|
|
1193
1211
|
const { runnerVmCheck } = await import('./doctor-53F2PYY7.js');
|
|
1194
1212
|
checks.push(runnerVmCheck(configPath, { lima: realLima(), home: homeFromEnv(), instance: runnerVm.instance }));
|
|
1195
1213
|
} else if (hasRunnerBlock(configPath)) {
|
|
1196
|
-
const { runnerHostChecks } = await import('./doctor-
|
|
1197
|
-
const hooks = (() => {
|
|
1198
|
-
try {
|
|
1199
|
-
return loadRunnerConfig(configPath).hooks;
|
|
1200
|
-
} catch {
|
|
1201
|
-
return void 0;
|
|
1202
|
-
}
|
|
1203
|
-
})();
|
|
1214
|
+
const { runnerHostChecks } = await import('./doctor-VXDBXKSL.js');
|
|
1204
1215
|
const gateway = (() => {
|
|
1205
1216
|
try {
|
|
1206
1217
|
const { url, apiKey, appId } = loadRunnerConfig(configPath);
|
|
@@ -1228,7 +1239,7 @@ async function gatherDoctorChecks() {
|
|
|
1228
1239
|
const { existsSync: existsSync3 } = await import('fs');
|
|
1229
1240
|
if (process.platform !== "linux" || !existsSync3("/run/systemd/system")) return void 0;
|
|
1230
1241
|
const { inspectService, realInspectProbes } = await import('./inspect-L7JIBK3Y.js');
|
|
1231
|
-
const { DEFAULT_UNIT_NAME } = await import('./install-
|
|
1242
|
+
const { DEFAULT_UNIT_NAME } = await import('./install-GODA5G7U.js');
|
|
1232
1243
|
const { dirname: dirname2 } = await import('path');
|
|
1233
1244
|
return inspectService(DEFAULT_UNIT_NAME, dirname2(configPath), realInspectProbes());
|
|
1234
1245
|
})();
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { MIN_ENGINE_MAJOR } from './chunk-
|
|
4
|
-
import { runnerImageVersion } from './chunk-
|
|
3
|
+
import { MIN_ENGINE_MAJOR } from './chunk-MO2NI6W6.js';
|
|
4
|
+
import { runnerImageVersion } from './chunk-GI73HOI2.js';
|
|
5
5
|
import { firecrackerArch, MICROVM_ARCHES, guestAssetsPinned } from './chunk-SJZL5F3F.js';
|
|
6
6
|
import { spawnSync } from 'child_process';
|
|
7
7
|
import { existsSync, accessSync, constants, statSync, readFileSync } from 'fs';
|
|
@@ -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-PAHZQQB3.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 { AGENTS_SKILLS_BASE, OUTERLAYER_SKILLS_BASE } from './chunk-
|
|
4
|
-
import { normalizePath, CONTEXT_PIN_FILENAME } from './chunk-
|
|
3
|
+
import { AGENTS_SKILLS_BASE, OUTERLAYER_SKILLS_BASE } from './chunk-NX2G6PH6.js';
|
|
4
|
+
import { normalizePath, CONTEXT_PIN_FILENAME } from './chunk-DXI6A6JN.js';
|
|
5
5
|
import { existsSync, readdirSync, readFileSync, mkdirSync, writeFileSync, lstatSync, readlinkSync, symlinkSync, rmdirSync } from 'fs';
|
|
6
6
|
import { relative, sep, join } from 'path';
|
|
7
7
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { readContextManifest, removeContextManifest } from './chunk-YQR6E6OV.js';
|
|
4
4
|
import { removePreCommitGuardHook } from './chunk-TUSYOL2O.js';
|
|
5
|
-
import { CONTEXT_PIN_FILENAME } from './chunk-
|
|
5
|
+
import { CONTEXT_PIN_FILENAME } from './chunk-DXI6A6JN.js';
|
|
6
6
|
import { execFileSync } from 'child_process';
|
|
7
7
|
import { lstatSync, existsSync, unlinkSync, readdirSync, rmdirSync, readFileSync, mkdirSync, writeFileSync } from 'fs';
|
|
8
8
|
import { join, dirname, isAbsolute } from 'path';
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { detectActiveSession, autoConnect } from './chunk-
|
|
4
|
-
import { workPageUrl } from './chunk-
|
|
5
|
-
import { sanitizeTerminal } from './chunk-
|
|
6
|
-
import { resolveRepoIdentity } from './chunk-
|
|
3
|
+
import { detectActiveSession, autoConnect } from './chunk-PGA5BVHQ.js';
|
|
4
|
+
import { workPageUrl } from './chunk-HRWL7NSJ.js';
|
|
5
|
+
import { sanitizeTerminal } from './chunk-6XQPCQBW.js';
|
|
6
|
+
import { resolveRepoIdentity } from './chunk-LKN4J37L.js';
|
|
7
7
|
import { C } from './chunk-ANPNT6PM.js';
|
|
8
|
-
import { resolveGatewayCredentials, unauthorizedMessage, defaultFetch } from './chunk-
|
|
9
|
-
import { signRunnerRequest } from './chunk-
|
|
8
|
+
import { resolveGatewayCredentials, unauthorizedMessage, defaultFetch } from './chunk-F72ABZRD.js';
|
|
9
|
+
import { signRunnerRequest } from './chunk-SHVE5JZO.js';
|
|
10
10
|
import { readRepoConnection } from './chunk-BJ3KTMDH.js';
|
|
11
11
|
import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
|
|
12
12
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
@@ -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-
|
|
431
|
+
const { logHookError } = await import('./hook-fast-JKYCVO4R.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
|
}
|
|
@@ -534,14 +534,33 @@ function repositoryDisconnectedLine(data) {
|
|
|
534
534
|
|
|
535
535
|
`;
|
|
536
536
|
}
|
|
537
|
+
function failingChecksSection(data) {
|
|
538
|
+
const checks = data.checks;
|
|
539
|
+
if (!Array.isArray(checks)) return "";
|
|
540
|
+
const failing = checks.filter((check) => check.result === "fail");
|
|
541
|
+
if (failing.length === 0) return "";
|
|
542
|
+
const lines = failing.flatMap((check) => {
|
|
543
|
+
const body = typeof check.body === "string" && check.body !== "" ? `: ${sanitizeTerminal(check.body)}` : "";
|
|
544
|
+
const items = Array.isArray(check.items) ? check.items : [];
|
|
545
|
+
return [
|
|
546
|
+
` ${sanitizeTerminal(String(check.name))}${body}`,
|
|
547
|
+
...items.filter((item) => item.result === "fail").map((item) => ` ${sanitizeTerminal(String(item.id))}${typeof item.reason === "string" ? ` ${C.dim}${sanitizeTerminal(item.reason)}${C.reset}` : ""}`)
|
|
548
|
+
];
|
|
549
|
+
});
|
|
550
|
+
return `
|
|
551
|
+
|
|
552
|
+
Failing checks
|
|
553
|
+
${lines.join("\n")}`;
|
|
554
|
+
}
|
|
537
555
|
function statusOutput(data, json) {
|
|
538
556
|
if (json) return JSON.stringify(data);
|
|
539
557
|
const document = mergedUnverifiedLine(data) + repositoryDisconnectedLine(data) + JSON.stringify(data, null, 2);
|
|
558
|
+
const checks = failingChecksSection(data);
|
|
540
559
|
const criteria = data.criteria;
|
|
541
|
-
if (criteria === void 0) return document
|
|
560
|
+
if (criteria === void 0) return `${document}${checks}`;
|
|
542
561
|
if (criteria === null || !Array.isArray(criteria.items)) return `${document}
|
|
543
562
|
|
|
544
|
-
Criteria: none recorded`;
|
|
563
|
+
Criteria: none recorded${checks}`;
|
|
545
564
|
const mark = criteria.drafted === true ? ` ${C.dim}(drafted by the build)${C.reset}` : "";
|
|
546
565
|
const lines = criteria.items.map((item) => {
|
|
547
566
|
const proof = typeof item.proof === "string" ? ` ${C.dim}[proof: ${sanitizeTerminal(item.proof)}]${C.reset}` : "";
|
|
@@ -550,7 +569,7 @@ Criteria: none recorded`;
|
|
|
550
569
|
return `${document}
|
|
551
570
|
|
|
552
571
|
Criteria${mark}
|
|
553
|
-
${lines.join("\n")}`;
|
|
572
|
+
${lines.join("\n")}${checks}`;
|
|
554
573
|
}
|
|
555
574
|
async function runWorkStatus(opts) {
|
|
556
575
|
const cwd = opts.cwd ?? process.cwd();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { ArtifactTombstoneRecordSchema, ArtifactSpoolRecordSchema } from './chunk-
|
|
3
|
+
import { ArtifactTombstoneRecordSchema, ArtifactSpoolRecordSchema } from './chunk-JL6VZHAJ.js';
|
|
4
4
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
5
5
|
import { mkdirSync, appendFileSync, writeFileSync, renameSync, unlinkSync, existsSync, readdirSync, readFileSync, statSync } from 'fs';
|
|
6
6
|
import { join, dirname } from 'path';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { EXEC_PORT } from './chunk-
|
|
3
|
+
import { EXEC_PORT } from './chunk-YSH4KCUJ.js';
|
|
4
4
|
import { createConnection } from 'net';
|
|
5
5
|
|
|
6
6
|
createRequire(import.meta.url);
|
|
@@ -81,21 +81,24 @@ function runExec(socketPath, request, io = {}) {
|
|
|
81
81
|
killed = true;
|
|
82
82
|
send(FRAME.kill, Buffer.alloc(0));
|
|
83
83
|
}
|
|
84
|
-
const
|
|
84
|
+
const chunks = (buffer) => Array.from({ length: Math.ceil(buffer.length / CHUNK_BYTES) }, (_unused, i) => buffer.subarray(i * CHUNK_BYTES, (i + 1) * CHUNK_BYTES));
|
|
85
|
+
const sendRequest = () => {
|
|
85
86
|
const stdin = io.stdin;
|
|
86
|
-
|
|
87
|
+
if (stdin !== void 0 && typeof stdin !== "string" && !Buffer.isBuffer(stdin)) {
|
|
88
|
+
send(FRAME.request, encodeRequest(request));
|
|
89
|
+
void pumpStdin(stdin);
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
const input = stdin === void 0 ? [] : chunks(Buffer.from(stdin)).map((chunk) => encodeFrame(FRAME.stdin, chunk));
|
|
93
|
+
socket.write(Buffer.concat([encodeFrame(FRAME.request, encodeRequest(request)), ...input, encodeFrame(FRAME.stdin, Buffer.alloc(0))]));
|
|
94
|
+
};
|
|
95
|
+
const pumpStdin = async (stdin) => {
|
|
87
96
|
try {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
for (; ; ) {
|
|
94
|
-
const next = await stdinIterator.next();
|
|
95
|
-
if (next.done === true || settled) break;
|
|
96
|
-
for (const chunk of chunks(Buffer.from(next.value))) {
|
|
97
|
-
if (!send(FRAME.stdin, chunk)) await new Promise((done) => socket.once("drain", () => done()));
|
|
98
|
-
}
|
|
97
|
+
const iterator = stdin.iterator({ destroyOnReturn: false });
|
|
98
|
+
stdinIterator = iterator;
|
|
99
|
+
for await (const value of iterator) {
|
|
100
|
+
for (const chunk of chunks(Buffer.from(value))) {
|
|
101
|
+
if (!send(FRAME.stdin, chunk)) await new Promise((done) => socket.once("drain", () => done()));
|
|
99
102
|
}
|
|
100
103
|
}
|
|
101
104
|
} catch {
|
|
@@ -143,9 +146,8 @@ function runExec(socketPath, request, io = {}) {
|
|
|
143
146
|
}
|
|
144
147
|
greeted = true;
|
|
145
148
|
clearTimeout(handshakeTimer);
|
|
146
|
-
|
|
149
|
+
sendRequest();
|
|
147
150
|
if (io.signal?.aborted === true) kill();
|
|
148
|
-
void pumpStdin();
|
|
149
151
|
const rest = greeting.subarray(newline + 1);
|
|
150
152
|
if (rest.length > 0) onFrames(rest);
|
|
151
153
|
});
|