@outerlayer/cli 0.20.0 → 0.22.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.
Files changed (147) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/README.md +15 -5
  3. package/dist/{agent-setup-AM42SA2D.js → agent-setup-LTSLXPS3.js} +13 -12
  4. package/dist/build-6WRNZPVR.js +12 -0
  5. package/dist/build-command-ND2ENDBS.js +50 -0
  6. package/dist/build-info.json +1 -1
  7. package/dist/{builder-C4QNTYMS.js → builder-G3MLDMTI.js} +7 -5
  8. package/dist/{check-BR5D27CX.js → check-UYKEMQNR.js} +48 -50
  9. package/dist/{chunk-AMFWYESY.js → chunk-276D7BJ7.js} +1 -1
  10. package/dist/{chunk-X5H2WYMB.js → chunk-2Q3PZ42G.js} +1 -1
  11. package/dist/{chunk-3CWUOFV6.js → chunk-3AZYLAJC.js} +13 -8
  12. package/dist/{chunk-LRG3ZMZD.js → chunk-3V5C64Y5.js} +4 -4
  13. package/dist/{chunk-QOZKPLVJ.js → chunk-3W333NFO.js} +40 -1
  14. package/dist/{chunk-7YP7T6GV.js → chunk-4AVDD7VX.js} +2 -2
  15. package/dist/{chunk-KYS3TQAG.js → chunk-56X5TOJY.js} +4 -4
  16. package/dist/{chunk-3ZR7Y23Y.js → chunk-5NJIWKD4.js} +650 -70
  17. package/dist/{chunk-NNLA7LLQ.js → chunk-5OCIHFGE.js} +29 -5
  18. package/dist/{chunk-EAEELQVQ.js → chunk-6YBLN4TR.js} +5 -5
  19. package/dist/{chunk-AD3EYI7P.js → chunk-7FEY33MY.js} +259 -56
  20. package/dist/{chunk-QNLX477Q.js → chunk-AEKSX4EY.js} +165 -72
  21. package/dist/{chunk-FBTGMSQF.js → chunk-BET347JZ.js} +16 -9
  22. package/dist/{chunk-JHGEBPLE.js → chunk-BOMRFYTZ.js} +3 -3
  23. package/dist/{chunk-MTP2QEVO.js → chunk-CQAEV3Z5.js} +1 -1
  24. package/dist/{chunk-XZ4H4X5F.js → chunk-CUFFDEF3.js} +15 -8
  25. package/dist/{chunk-BM63HB2M.js → chunk-EAQSOE62.js} +2 -2
  26. package/dist/{chunk-VYAL7PUE.js → chunk-EFB3FGLC.js} +1 -1
  27. package/dist/{chunk-GEMQLBMW.js → chunk-ENTHEUKT.js} +6 -6
  28. package/dist/{chunk-B6SCN5NY.js → chunk-FOCML5FI.js} +175 -44
  29. package/dist/{chunk-LW7G5TJB.js → chunk-FRNYCJ4W.js} +2 -2
  30. package/dist/chunk-GISNHSYL.js +41 -0
  31. package/dist/{chunk-G2YNJIGF.js → chunk-HCVLP7XA.js} +10 -1
  32. package/dist/{chunk-N2PXGQRL.js → chunk-IHNQWF6F.js} +1 -1
  33. package/dist/{chunk-CG36IONK.js → chunk-JRCSET55.js} +2 -2
  34. package/dist/{chunk-MLAAT4S6.js → chunk-JV4YGAAW.js} +3 -3
  35. package/dist/{chunk-XNGMQ27R.js → chunk-JZGFDTNC.js} +2 -2
  36. package/dist/{chunk-GGOMT6KF.js → chunk-NYTZ7HVN.js} +1 -1
  37. package/dist/{chunk-CGGPS7SI.js → chunk-O6RJ3QMU.js} +5 -5
  38. package/dist/{chunk-QEFKA2QD.js → chunk-OBCFK4QD.js} +2 -2
  39. package/dist/{chunk-HOKXGFDR.js → chunk-ORNJJ7XN.js} +22 -16
  40. package/dist/{chunk-M2ZWWTWZ.js → chunk-OW52QLK3.js} +1 -1
  41. package/dist/{chunk-PSN33ERW.js → chunk-QC72I5GQ.js} +3 -3
  42. package/dist/{chunk-FVMYKL6L.js → chunk-QF7WZUU6.js} +1 -1
  43. package/dist/{chunk-IF2OSI5T.js → chunk-QOALB6ZD.js} +2 -2
  44. package/dist/{chunk-ZX4I2MEK.js → chunk-TPKYTORP.js} +1 -1
  45. package/dist/{chunk-S5PCA3SN.js → chunk-UF5L4BAI.js} +1 -1
  46. package/dist/{chunk-R22NZSGA.js → chunk-URAKVDSI.js} +9 -9
  47. package/dist/{chunk-BQXFBI7T.js → chunk-URWYRAIC.js} +32 -7
  48. package/dist/{chunk-7UWVLZXD.js → chunk-USWVXQIH.js} +1 -1
  49. package/dist/{chunk-P53VEAOF.js → chunk-V5CG75NX.js} +1 -1
  50. package/dist/{chunk-6X4SQ5MY.js → chunk-V7SAQ645.js} +1 -1
  51. package/dist/{chunk-TWF3RICI.js → chunk-VSUXCMMH.js} +110 -11
  52. package/dist/{chunk-Z7K3L4FC.js → chunk-W3SWJ2TD.js} +2 -2
  53. package/dist/{chunk-ECODQ7II.js → chunk-XACXXKQ5.js} +1 -1
  54. package/dist/{chunk-5VML45HH.js → chunk-XCRZTXRL.js} +2 -2
  55. package/dist/chunk-XR56WEA5.js +718 -0
  56. package/dist/chunk-ZNPE7FW5.js +137 -0
  57. package/dist/{chunk-PIZRPNKR.js → chunk-ZPSLJFGL.js} +5 -5
  58. package/dist/claude-launcher-TBWV3YL3.js +267 -0
  59. package/dist/{cli-MKF7TU7X.js → cli-U253V422.js} +161 -120
  60. package/dist/{command-ZQNEPDS6.js → command-IQTPFSXY.js} +32 -34
  61. package/dist/{config-CLSGABD5.js → config-H4QS332G.js} +3 -2
  62. package/dist/{connect-cmd-UNYKGDAL.js → connect-cmd-ZFOK6HEL.js} +5 -5
  63. package/dist/{context-cleanup-CHEWNYU6.js → context-cleanup-DSA3HGQU.js} +1 -1
  64. package/dist/{control-plane-launch-34LNRJWR.js → control-plane-launch-OWSNH6YA.js} +62 -28
  65. package/dist/{dist-WO7NOJNG.js → dist-7IH56ELA.js} +1 -1
  66. package/dist/{docker-BFU3AQGY.js → docker-JU422JL7.js} +7 -7
  67. package/dist/{doctor-DHUM5DBB.js → doctor-FZTS57ZO.js} +35 -36
  68. package/dist/{emit-artifact-cmd-XBHM647X.js → emit-artifact-cmd-YLZ5WLSF.js} +19 -18
  69. package/dist/{emit-cmd-W55AEBCA.js → emit-cmd-3W5IO5ET.js} +3 -3
  70. package/dist/{emit-criteria-cmd-UNMWHOUY.js → emit-criteria-cmd-MF6TVE7C.js} +13 -12
  71. package/dist/{emit-finding-cmd-7JHVRYOP.js → emit-finding-cmd-S3YMFTZT.js} +13 -12
  72. package/dist/{emit-result-cmd-5NZMLCJK.js → emit-result-cmd-JHEUFTPX.js} +19 -18
  73. package/dist/{emit-step-cmd-347XNGPQ.js → emit-step-cmd-TUI2T3DS.js} +14 -13
  74. package/dist/{exec-client-7UMESIE2.js → exec-client-ATPF2DDB.js} +4 -3
  75. package/dist/{governing-source-HAA4OW57.js → governing-source-XSEIRSBE.js} +19 -18
  76. package/dist/{guest-init-KPBQOFE5.js → guest-init-DF7V5D2R.js} +4 -3
  77. package/dist/{hook-fast-RL5E5OXE.js → hook-fast-O3UUN6SO.js} +2 -2
  78. package/dist/host-key-ATB23GI3.js +9 -0
  79. package/dist/{import-capture-cmd-TK4XY7RD.js → import-capture-cmd-Q56DDZVO.js} +1 -1
  80. package/dist/index.js +5 -5
  81. package/dist/init-VZE72CR4.js +52 -0
  82. package/dist/{init-V6FOMD2V.js → init-ZZZPYGUH.js} +32 -33
  83. package/dist/{init-cmd-Z4O4PPLZ.js → init-cmd-W5VV62ZN.js} +25 -23
  84. package/dist/{init-update-7DVAKWW3.js → init-update-YFPIQS5G.js} +69 -24
  85. package/dist/{install-4SEFIIW2.js → install-SFACZU7E.js} +5 -4
  86. package/dist/{install-cmd-QDOTR4OM.js → install-cmd-6HTP7I43.js} +6 -5
  87. package/dist/{login-browser-DX35MARZ.js → login-browser-BN5UKPHS.js} +3 -3
  88. package/dist/{logout-cmd-5V5MMBSY.js → logout-cmd-RZFWTNYD.js} +2 -2
  89. package/dist/{logs-AMLKC3VP.js → logs-N3ZX7HFV.js} +3 -2
  90. package/dist/loop-6WENRS5S.js +75 -0
  91. package/dist/machine-M4MQBV5A.js +47 -0
  92. package/dist/{mcp-install-cmd-GGWB3JJ2.js → mcp-install-cmd-GD4QUP7Z.js} +2 -2
  93. package/dist/{mcp-serve-cmd-N3UTY6EE.js → mcp-serve-cmd-SBW7HYKD.js} +6 -5
  94. package/dist/{paths-7XP63OAX.js → paths-AKX2OOLF.js} +3 -2
  95. package/dist/pending-7SGWZCEH.js +9 -0
  96. package/dist/{pidfile-3DM4OBKO.js → pidfile-G2J5WBQS.js} +4 -3
  97. package/dist/receive-files-T2BIUBQL.js +254 -0
  98. package/dist/{record-3WP6V2K5.js → record-Q4IEYIVV.js} +4 -3
  99. package/dist/relay-PSZ4LGMW.js +210 -0
  100. package/dist/relay-protocol-K7KP2SPI.js +6 -0
  101. package/dist/{runner-env-FRZFFHDF.js → runner-env-GZHXM27A.js} +6 -5
  102. package/dist/runner-identity-FTHZFMGY.js +14 -0
  103. package/dist/{runner-key-5FOWCW7J.js → runner-key-QT7GKGEE.js} +32 -33
  104. package/dist/{session-sender-U2BBUWNO.js → session-sender-BK6TGNVO.js} +20 -19
  105. package/dist/{spec-cmd-FVLJOFGC.js → spec-cmd-ZNJ3GXWC.js} +13 -12
  106. package/dist/{starter-pack-6LQVLBIA.js → starter-pack-5EQYGSJF.js} +2 -2
  107. package/dist/{status-BINH7MBG.js → status-JOO7MGIC.js} +36 -38
  108. package/dist/{statusline-fast-KN3BX67H.js → statusline-fast-2OK3DVAA.js} +2 -2
  109. package/dist/{sync-cmd-VXOUFS4I.js → sync-cmd-W2FPY3T5.js} +19 -18
  110. package/dist/{watch-OH645CV2.js → watch-WLH5ZUZU.js} +19 -18
  111. package/dist/{work-claim-cmd-DRQCHCOK.js → work-claim-cmd-4PLDTEZR.js} +17 -16
  112. package/dist/{work-cmd-5I3J2XQQ.js → work-cmd-KWHAYUYB.js} +13 -12
  113. package/dist/{work-comment-cmd-UCCPWUSR.js → work-comment-cmd-4CUI7ZDE.js} +13 -12
  114. package/dist/{work-logs-cmd-7352CJPG.js → work-logs-cmd-AF253WLM.js} +13 -12
  115. package/dist/{work-open-pr-cmd-LSH4VHJM.js → work-open-pr-cmd-JETE6HRL.js} +15 -14
  116. package/dist/{work-pr-cmd-H4OQR26N.js → work-pr-cmd-V5G4CPMG.js} +14 -13
  117. package/dist/{work-stop-cmd-CRDHXQVW.js → work-stop-cmd-FIEKUDGE.js} +13 -12
  118. package/package.json +2 -2
  119. package/skill-pack/maintained/outerlayer-amend/SKILL.md +17 -6
  120. package/skill-pack/maintained/outerlayer-build/SKILL.md +347 -0
  121. package/skill-pack/{template/build → maintained/outerlayer-build}/references/evidence.md +2 -2
  122. package/skill-pack/{template/build → maintained/outerlayer-build}/references/release.md +4 -4
  123. package/skill-pack/{template/build → maintained/outerlayer-build}/references/review-loop.md +3 -1
  124. package/skill-pack/shipped.json +2 -0
  125. package/skill-pack/template/build/SKILL.md +4 -253
  126. package/skill-pack/validators/acceptance-criteria.yaml +1 -1
  127. package/dist/build-TQ6X5PYN.js +0 -12
  128. package/dist/chunk-3UZTIRLF.js +0 -320
  129. package/dist/chunk-CX22S5BA.js +0 -45
  130. package/dist/chunk-LLM3I5YU.js +0 -89
  131. package/dist/chunk-SADUQSO4.js +0 -50
  132. package/dist/chunk-VMJPFQNE.js +0 -261
  133. package/dist/claude-launcher-J5M44PFS.js +0 -115
  134. package/dist/host-key-U4B5QETR.js +0 -8
  135. package/dist/init-XG47KCI4.js +0 -53
  136. package/dist/loop-EAZQMAE2.js +0 -77
  137. package/dist/machine-TRHBT5NE.js +0 -48
  138. package/dist/pending-532ABZYC.js +0 -8
  139. package/dist/relay-L76HDX72.js +0 -46
  140. package/dist/{chunk-YVZJ6GKF.js → chunk-DIB2WLBL.js} +1 -1
  141. package/dist/{chunk-GOSFARMS.js → chunk-F35VMF5M.js} +1 -1
  142. package/dist/{chunk-DSF2FWAZ.js → chunk-IZSVXRDR.js} +1 -1
  143. /package/skill-pack/{template/build → maintained/outerlayer-build}/references/agent-briefs.md +0 -0
  144. /package/skill-pack/{template/build → maintained/outerlayer-build}/references/criteria-judge.md +0 -0
  145. /package/skill-pack/{template/build → maintained/outerlayer-build}/references/review-briefs.md +0 -0
  146. /package/skill-pack/{template/build → maintained/outerlayer-build}/scripts/criterion-citations.mjs +0 -0
  147. /package/skill-pack/{template/build → maintained/outerlayer-build}/scripts/record-criteria.mjs +0 -0
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { DEFAULT_DASHBOARD, readPipedKey, realLoginDeps, runLoginCommand, sanitizeMachineName, stdinKind } from './chunk-BM63HB2M.js';
4
- import './chunk-GOSFARMS.js';
5
- import './chunk-ANPNT6PM.js';
3
+ export { DEFAULT_DASHBOARD, readPipedKey, realLoginDeps, runLoginCommand, sanitizeMachineName, stdinKind } from './chunk-EAQSOE62.js';
4
+ import './chunk-F35VMF5M.js';
6
5
  import './chunk-BJ3KTMDH.js';
7
6
  import './chunk-EABW6AJQ.js';
7
+ import './chunk-ANPNT6PM.js';
8
8
  import './chunk-CRB3POP4.js';
9
9
  import './chunk-VNVZDWO3.js';
10
10
  import './chunk-Z5GEFMRW.js';
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { realLogoutDeps, revokeTokenOnDashboard, runLogoutCommand } from './chunk-GOSFARMS.js';
4
- import './chunk-ANPNT6PM.js';
3
+ export { realLogoutDeps, revokeTokenOnDashboard, runLogoutCommand } from './chunk-F35VMF5M.js';
5
4
  import './chunk-EABW6AJQ.js';
5
+ import './chunk-ANPNT6PM.js';
6
6
  import './chunk-CRB3POP4.js';
7
7
  import './chunk-VNVZDWO3.js';
8
8
  import './chunk-Z5GEFMRW.js';
@@ -1,7 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { jobsDir } from './chunk-N2PXGQRL.js';
4
- import './chunk-BQXFBI7T.js';
3
+ import { jobsDir } from './chunk-IHNQWF6F.js';
4
+ import './chunk-URWYRAIC.js';
5
+ import './chunk-GISNHSYL.js';
5
6
  import './chunk-Z5GEFMRW.js';
6
7
  import { existsSync, watch, statSync, createReadStream } from 'fs';
7
8
  import { join } from 'path';
@@ -0,0 +1,75 @@
1
+ #!/usr/bin/env node
2
+ import { createRequire } from 'node:module';
3
+ export { RunnerStartError, listJobFiles, probeBuild, probeCredentials, requestStop, runnerProcessState, start, tick, watchTick } from './chunk-7FEY33MY.js';
4
+ import './chunk-FOCML5FI.js';
5
+ import './chunk-3JVYMD4G.js';
6
+ import './chunk-I2UOAV7X.js';
7
+ import './chunk-YETTWTAY.js';
8
+ import './chunk-TPKYTORP.js';
9
+ import './chunk-CQAEV3Z5.js';
10
+ import './chunk-UF5L4BAI.js';
11
+ import './chunk-BOMRFYTZ.js';
12
+ import './chunk-JZGFDTNC.js';
13
+ import './chunk-URAKVDSI.js';
14
+ import './chunk-56X5TOJY.js';
15
+ import './chunk-ESVW4MJY.js';
16
+ import './chunk-ENTHEUKT.js';
17
+ import './chunk-YYYRBYWG.js';
18
+ import './chunk-276D7BJ7.js';
19
+ import './chunk-TBT347UY.js';
20
+ import './chunk-ZPSLJFGL.js';
21
+ import './chunk-4AVDD7VX.js';
22
+ import './chunk-OBCFK4QD.js';
23
+ import './chunk-6MZSX4M7.js';
24
+ import './chunk-FRNYCJ4W.js';
25
+ import './chunk-5NJIWKD4.js';
26
+ import './chunk-3AZYLAJC.js';
27
+ import './chunk-OGFGZQA3.js';
28
+ import './chunk-XR56WEA5.js';
29
+ import './chunk-3W333NFO.js';
30
+ import './chunk-NYTZ7HVN.js';
31
+ import './chunk-2Q3PZ42G.js';
32
+ import './chunk-CUFFDEF3.js';
33
+ import './chunk-BET347JZ.js';
34
+ import './chunk-QOALB6ZD.js';
35
+ import './chunk-JRCSET55.js';
36
+ import './chunk-G3IJ3N6F.js';
37
+ import './chunk-EAQSOE62.js';
38
+ import './chunk-F35VMF5M.js';
39
+ import './chunk-V5CG75NX.js';
40
+ import './chunk-UXYLWVTQ.js';
41
+ import './chunk-7RQ73DLO.js';
42
+ import './chunk-XACXXKQ5.js';
43
+ import './chunk-JBJTC3UU.js';
44
+ import './chunk-6YBLN4TR.js';
45
+ import './chunk-USWVXQIH.js';
46
+ import './chunk-QF7WZUU6.js';
47
+ import './chunk-NTRCK4NH.js';
48
+ import './chunk-QC72I5GQ.js';
49
+ import './chunk-ZJSNLVCE.js';
50
+ import './chunk-F7CU5ABH.js';
51
+ import './chunk-BKO6JEZI.js';
52
+ import './chunk-ZNPE7FW5.js';
53
+ import './chunk-HCVLP7XA.js';
54
+ import './chunk-BJ3KTMDH.js';
55
+ import './chunk-AEKSX4EY.js';
56
+ import './chunk-EABW6AJQ.js';
57
+ import './chunk-5OCIHFGE.js';
58
+ import './chunk-ANPNT6PM.js';
59
+ import './chunk-T2Q7ISPE.js';
60
+ import './chunk-WZBHBH3J.js';
61
+ import './chunk-CRB3POP4.js';
62
+ import './chunk-5QRP3MVS.js';
63
+ import './chunk-YQR6E6OV.js';
64
+ import './chunk-TUSYOL2O.js';
65
+ import './chunk-WFSUUUAN.js';
66
+ import './chunk-7VUK5RFS.js';
67
+ import './chunk-VNVZDWO3.js';
68
+ import './chunk-RA3O54FC.js';
69
+ import './chunk-OW52QLK3.js';
70
+ import './chunk-IHNQWF6F.js';
71
+ import './chunk-URWYRAIC.js';
72
+ import './chunk-GISNHSYL.js';
73
+ import './chunk-Z5GEFMRW.js';
74
+
75
+ createRequire(import.meta.url);
@@ -0,0 +1,47 @@
1
+ #!/usr/bin/env node
2
+ import { createRequire } from 'node:module';
3
+ export { describeMachineDocker, detectMachine, microVmArchSupported, microVmAssetsPinned, reachDockerStep, supportsContainerBuilds, supportsMicroVmBuilds } from './chunk-FRNYCJ4W.js';
4
+ import './chunk-5NJIWKD4.js';
5
+ import './chunk-3AZYLAJC.js';
6
+ import './chunk-OGFGZQA3.js';
7
+ import './chunk-XR56WEA5.js';
8
+ import './chunk-3W333NFO.js';
9
+ import './chunk-NYTZ7HVN.js';
10
+ import './chunk-2Q3PZ42G.js';
11
+ import './chunk-CUFFDEF3.js';
12
+ import './chunk-BET347JZ.js';
13
+ import './chunk-QOALB6ZD.js';
14
+ import './chunk-JRCSET55.js';
15
+ import './chunk-G3IJ3N6F.js';
16
+ import './chunk-EAQSOE62.js';
17
+ import './chunk-F35VMF5M.js';
18
+ import './chunk-UXYLWVTQ.js';
19
+ import './chunk-7RQ73DLO.js';
20
+ import './chunk-XACXXKQ5.js';
21
+ import './chunk-JBJTC3UU.js';
22
+ import './chunk-6YBLN4TR.js';
23
+ import './chunk-USWVXQIH.js';
24
+ import './chunk-QF7WZUU6.js';
25
+ import './chunk-NTRCK4NH.js';
26
+ import './chunk-ZJSNLVCE.js';
27
+ import './chunk-ZNPE7FW5.js';
28
+ import './chunk-HCVLP7XA.js';
29
+ import './chunk-BJ3KTMDH.js';
30
+ import './chunk-AEKSX4EY.js';
31
+ import './chunk-EABW6AJQ.js';
32
+ import './chunk-5OCIHFGE.js';
33
+ import './chunk-ANPNT6PM.js';
34
+ import './chunk-WZBHBH3J.js';
35
+ import './chunk-CRB3POP4.js';
36
+ import './chunk-YQR6E6OV.js';
37
+ import './chunk-WFSUUUAN.js';
38
+ import './chunk-7VUK5RFS.js';
39
+ import './chunk-VNVZDWO3.js';
40
+ import './chunk-RA3O54FC.js';
41
+ import './chunk-OW52QLK3.js';
42
+ import './chunk-IHNQWF6F.js';
43
+ import './chunk-URWYRAIC.js';
44
+ import './chunk-GISNHSYL.js';
45
+ import './chunk-Z5GEFMRW.js';
46
+
47
+ createRequire(import.meta.url);
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { DEFAULT_MCP_COMMAND, DOCS_MCP_SERVER_NAME, INIT_DOCS_ENTRY, INIT_STDIO_ENTRY, McpInstallError, addDocsMcpEntryIfAbsent, addStdioMcpEntryIfAbsent, buildServerEntry, buildStdioServerEntry, defaultMcpUrl, handleMcpInstallError, mcpTargetPath, runMcpInstall, setMcpEntry } from './chunk-YVZJ6GKF.js';
4
- import './chunk-ANPNT6PM.js';
3
+ export { DEFAULT_MCP_COMMAND, DOCS_MCP_SERVER_NAME, INIT_DOCS_ENTRY, INIT_STDIO_ENTRY, McpInstallError, addDocsMcpEntryIfAbsent, addStdioMcpEntryIfAbsent, buildServerEntry, buildStdioServerEntry, defaultMcpUrl, handleMcpInstallError, mcpTargetPath, runMcpInstall, setMcpEntry } from './chunk-DIB2WLBL.js';
5
4
  import './chunk-EABW6AJQ.js';
5
+ import './chunk-ANPNT6PM.js';
6
6
  import './chunk-CRB3POP4.js';
7
7
  import './chunk-VNVZDWO3.js';
8
8
  import './chunk-Z5GEFMRW.js';
@@ -1,15 +1,16 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { C } from './chunk-ANPNT6PM.js';
4
- import { defaultFetch } from './chunk-FVMYKL6L.js';
3
+ import { defaultFetch } from './chunk-QF7WZUU6.js';
5
4
  import { resolveGatewayCredentials } from './chunk-NTRCK4NH.js';
6
5
  import './chunk-BJ3KTMDH.js';
7
6
  import { cloudConfigPath } from './chunk-EABW6AJQ.js';
7
+ import { C } from './chunk-ANPNT6PM.js';
8
8
  import { cliInvocation } from './chunk-CRB3POP4.js';
9
9
  import { homeFromEnv } from './chunk-VNVZDWO3.js';
10
- import './chunk-M2ZWWTWZ.js';
11
- import './chunk-N2PXGQRL.js';
12
- import './chunk-BQXFBI7T.js';
10
+ import './chunk-OW52QLK3.js';
11
+ import './chunk-IHNQWF6F.js';
12
+ import './chunk-URWYRAIC.js';
13
+ import './chunk-GISNHSYL.js';
13
14
  import './chunk-Z5GEFMRW.js';
14
15
  import { createInterface } from 'readline';
15
16
 
@@ -1,7 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { RUNNER_DIR_MODE, RUNNER_FILE_MODE, SHIM_DIR, attemptStamp, buildDir, contextHomeDir, deliveryDir, diskTemplatesDir, ghConfigDir, hostKeyPath, imagesDir, jobDir, jobsDir, mirrorDir, pidFilePath, repoCacheDir, rootfsDir, rootfsPathFor, runnerDir, runnerDirOfBuild, spoolDir, stagedContextDir, vmAssetsDir, vsockPath } from './chunk-N2PXGQRL.js';
4
- import './chunk-BQXFBI7T.js';
3
+ export { RUNNER_DIR_MODE, RUNNER_FILE_MODE, SHIM_DIR, attemptStamp, buildDir, contextHomeDir, deliveryDir, diskTemplatesDir, ghConfigDir, hostKeyPath, imagesDir, jobDir, jobsDir, mirrorDir, pidFilePath, repoCacheDir, rootfsDir, rootfsPathFor, runnerDir, runnerDirOfBuild, spoolDir, stagedContextDir, vmAssetsDir, vsockPath } from './chunk-IHNQWF6F.js';
4
+ import './chunk-URWYRAIC.js';
5
+ import './chunk-GISNHSYL.js';
5
6
  import './chunk-Z5GEFMRW.js';
6
7
 
7
8
  createRequire(import.meta.url);
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env node
2
+ import { createRequire } from 'node:module';
3
+ export { readPendingUpdate, writePendingUpdate } from './chunk-CQAEV3Z5.js';
4
+ import './chunk-IHNQWF6F.js';
5
+ import './chunk-URWYRAIC.js';
6
+ import './chunk-GISNHSYL.js';
7
+ import './chunk-Z5GEFMRW.js';
8
+
9
+ createRequire(import.meta.url);
@@ -1,9 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { RunnerAlreadyRunningError, claimPidFile, readPidFile, releasePidFile } from './chunk-ECODQ7II.js';
3
+ export { RunnerAlreadyRunningError, claimPidFile, readPidFile, releasePidFile } from './chunk-XACXXKQ5.js';
4
4
  import './chunk-JBJTC3UU.js';
5
- import './chunk-N2PXGQRL.js';
6
- import './chunk-BQXFBI7T.js';
5
+ import './chunk-IHNQWF6F.js';
6
+ import './chunk-URWYRAIC.js';
7
+ import './chunk-GISNHSYL.js';
7
8
  import './chunk-Z5GEFMRW.js';
8
9
 
9
10
  createRequire(import.meta.url);
@@ -0,0 +1,254 @@
1
+ #!/usr/bin/env node
2
+ import { createRequire } from 'node:module';
3
+ import './chunk-Z5GEFMRW.js';
4
+ import { readdirSync, rmSync, mkdirSync, chmodSync, lstatSync, openSync, writeSync, closeSync, renameSync } from 'fs';
5
+ import { join, resolve, sep } from 'path';
6
+
7
+ createRequire(import.meta.url);
8
+ var RECEIVE_ROOTS = ["/outerlayer/job", "/outerlayer/judge"];
9
+ var BLOCK = 512;
10
+ var MODE_MASK = 1023;
11
+ var ReceiveError = class extends Error {
12
+ };
13
+ function printable(name) {
14
+ const flat = name.replace(/[^\x20-\x7e]/g, "?");
15
+ return flat.length > 120 ? `${flat.slice(0, 120)}...` : flat;
16
+ }
17
+ var ByteReader = class {
18
+ constructor(source) {
19
+ this.queue = [];
20
+ this.queued = 0;
21
+ this.done = false;
22
+ this.iterator = source[Symbol.asyncIterator]();
23
+ }
24
+ async fill(wanted) {
25
+ while (this.queued < wanted && !this.done) {
26
+ const next = await this.iterator.next();
27
+ if (next.done === true) {
28
+ this.done = true;
29
+ break;
30
+ }
31
+ const chunk = Buffer.from(next.value.buffer, next.value.byteOffset, next.value.byteLength);
32
+ if (chunk.length > 0) {
33
+ this.queue.push(chunk);
34
+ this.queued += chunk.length;
35
+ }
36
+ }
37
+ }
38
+ shift(count) {
39
+ const taken = [];
40
+ let left = count;
41
+ while (left > 0) {
42
+ const head = this.queue[0];
43
+ if (head.length <= left) {
44
+ taken.push(this.queue.shift());
45
+ left -= head.length;
46
+ } else {
47
+ taken.push(head.subarray(0, left));
48
+ this.queue[0] = head.subarray(left);
49
+ left = 0;
50
+ }
51
+ }
52
+ this.queued -= count;
53
+ return taken.length === 1 ? taken[0] : Buffer.concat(taken);
54
+ }
55
+ /** Exactly `count` bytes, or `undefined` when the stream ends before them. */
56
+ async take(count) {
57
+ await this.fill(count);
58
+ return this.queued < count ? void 0 : this.shift(count);
59
+ }
60
+ /** The next bytes of the stream, at most `limit`, or `undefined` at its end. */
61
+ async some(limit) {
62
+ await this.fill(1);
63
+ return this.queued === 0 ? void 0 : this.shift(Math.min(this.queued, limit));
64
+ }
65
+ };
66
+ function octal(field) {
67
+ const text = field.toString("latin1").replace(/\0.*$/s, "").trim();
68
+ if (text === "") return 0;
69
+ if (!/^[0-7]+$/.test(text)) throw new ReceiveError("the stream is not a tar archive: a number in a header is malformed");
70
+ return Number.parseInt(text, 8);
71
+ }
72
+ function checksumOf(header) {
73
+ let sum = 0;
74
+ for (let at = 0; at < BLOCK; at++) sum += at >= 148 && at < 156 ? 32 : header[at];
75
+ return sum;
76
+ }
77
+ function paxPath(data) {
78
+ let at = 0;
79
+ let path;
80
+ while (at < data.length) {
81
+ const space = data.indexOf(32, at);
82
+ const length = Number(data.subarray(at, space === -1 ? at : space).toString("latin1"));
83
+ if (space === -1 || !Number.isInteger(length) || length < space - at + 2 || at + length > data.length) {
84
+ throw new ReceiveError("the stream is not a tar archive: an extended header is malformed");
85
+ }
86
+ const record = data.subarray(space + 1, at + length - 1).toString("utf8");
87
+ const eq = record.indexOf("=");
88
+ if (record.slice(0, eq) === "path") path = record.slice(eq + 1);
89
+ at += length;
90
+ }
91
+ return path;
92
+ }
93
+ async function walk(source, visit) {
94
+ const reader = new ByteReader(source);
95
+ let pending;
96
+ for (; ; ) {
97
+ const block = await reader.take(BLOCK);
98
+ if (block === void 0) throw new ReceiveError("the stream ended before the archive's end marker");
99
+ if (block.every((byte) => byte === 0)) {
100
+ const second = await reader.take(BLOCK);
101
+ if (second === void 0 || !second.every((byte) => byte === 0)) throw new ReceiveError("the stream ended before the archive's end marker");
102
+ return;
103
+ }
104
+ if (octal(block.subarray(148, 156)) !== checksumOf(block)) throw new ReceiveError("the stream is not a tar archive: a header's checksum is wrong");
105
+ const size = octal(block.subarray(124, 136));
106
+ const typeflag = String.fromCharCode(block[156]);
107
+ const name = block.subarray(0, 100).toString("utf8").replace(/\0.*$/s, "");
108
+ const prefix = block.subarray(345, 500).toString("utf8").replace(/\0.*$/s, "");
109
+ const padding = (BLOCK - size % BLOCK) % BLOCK;
110
+ const body = async function* () {
111
+ let left = size;
112
+ while (left > 0) {
113
+ const piece = await reader.some(Math.min(left, 1024 * 1024));
114
+ if (piece === void 0) throw new ReceiveError("the stream ended inside a file");
115
+ left -= piece.length;
116
+ yield piece;
117
+ }
118
+ if (padding > 0 && await reader.take(padding) === void 0) throw new ReceiveError("the stream ended inside a file");
119
+ };
120
+ if (typeflag === "x") {
121
+ const data = await reader.take(size);
122
+ if (data === void 0 || padding > 0 && await reader.take(padding) === void 0) throw new ReceiveError("the stream ended inside a file");
123
+ pending = paxPath(data) ?? pending;
124
+ continue;
125
+ }
126
+ if (typeflag === "g") {
127
+ for await (const piece of body()) void piece;
128
+ continue;
129
+ }
130
+ const path = pending ?? (prefix === "" ? name : `${prefix}/${name}`);
131
+ pending = void 0;
132
+ if (typeflag !== "0" && typeflag !== "\0" && typeflag !== "5") {
133
+ throw new ReceiveError(`refused ${printable(path)}: only files and folders are accepted, not a link or a device`);
134
+ }
135
+ const header = { path, type: typeflag === "5" ? "dir" : "file", mode: octal(block.subarray(100, 108)) & MODE_MASK, size };
136
+ let consumed = false;
137
+ await visit(header, () => {
138
+ consumed = true;
139
+ return body();
140
+ });
141
+ if (!consumed) for await (const piece of body()) void piece;
142
+ }
143
+ }
144
+ function segmentsOf(path) {
145
+ if (path.includes("\0")) throw new ReceiveError(`refused ${printable(path)}: the name holds a NUL byte`);
146
+ if (path.startsWith("/")) throw new ReceiveError(`refused ${printable(path)}: the name is absolute`);
147
+ const segments = path.split("/").filter((segment) => segment !== "" && segment !== ".");
148
+ if (segments.includes("..")) throw new ReceiveError(`refused ${printable(path)}: the name leaves the folder`);
149
+ return segments;
150
+ }
151
+ async function readTar(source) {
152
+ const entries = [];
153
+ await walk(source, async (header, body) => {
154
+ const pieces = [];
155
+ if (header.type === "file") for await (const piece of body()) pieces.push(piece);
156
+ entries.push({ path: segmentsOf(header.path).join("/"), type: header.type, mode: header.mode, data: Buffer.concat(pieces) });
157
+ });
158
+ return entries;
159
+ }
160
+ function checkTarget(into, roots) {
161
+ const target = resolve(into);
162
+ const inside = roots.some((root) => {
163
+ const base = resolve(root);
164
+ return target === base || target.startsWith(`${base}${sep}`);
165
+ });
166
+ if (!inside) throw new ReceiveError(`refused ${printable(into)}: the folder is not one a build's files go in`);
167
+ try {
168
+ const stat = lstatSync(target);
169
+ if (!stat.isDirectory()) throw new ReceiveError(`refused ${printable(into)}: the folder is a link or a file`);
170
+ } catch (err) {
171
+ if (err instanceof ReceiveError) throw err;
172
+ if (err.code !== "ENOENT") throw err;
173
+ }
174
+ return target;
175
+ }
176
+ function ensureFolders(target, segments, path) {
177
+ let current = target;
178
+ for (const segment of segments) {
179
+ current = join(current, segment);
180
+ let stat;
181
+ try {
182
+ stat = lstatSync(current);
183
+ } catch {
184
+ stat = void 0;
185
+ }
186
+ if (stat === void 0) {
187
+ mkdirSync(current, { mode: 493 });
188
+ chmodSync(current, 493);
189
+ } else if (!stat.isDirectory()) {
190
+ throw new ReceiveError(`refused ${printable(path)}: a name on the way to it is a link or a file`);
191
+ }
192
+ }
193
+ }
194
+ async function writeFile(dest, mode, body) {
195
+ const partial = `${dest}.${process.pid}.partial`;
196
+ rmSync(partial, { force: true });
197
+ const fd = openSync(partial, "wx", 384);
198
+ try {
199
+ try {
200
+ for await (const piece of body) {
201
+ let written = 0;
202
+ while (written < piece.length) written += writeSync(fd, piece, written);
203
+ }
204
+ } finally {
205
+ closeSync(fd);
206
+ }
207
+ chmodSync(partial, mode);
208
+ renameSync(partial, dest);
209
+ } catch (err) {
210
+ rmSync(partial, { force: true });
211
+ throw err;
212
+ }
213
+ }
214
+ async function receiveFiles(source, options) {
215
+ const target = checkTarget(options.into, options.roots ?? RECEIVE_ROOTS);
216
+ if (options.replace === true) {
217
+ try {
218
+ for (const name of readdirSync(target)) rmSync(join(target, name), { recursive: true, force: true });
219
+ } catch (err) {
220
+ if (err.code !== "ENOENT") throw new ReceiveError(`could not empty ${printable(options.into)}: ${err.code ?? "error"}`);
221
+ }
222
+ }
223
+ mkdirSync(target, { recursive: true, mode: 493 });
224
+ let current = "the stream";
225
+ try {
226
+ await walk(source, async (header, body) => {
227
+ current = header.path;
228
+ const segments = segmentsOf(header.path);
229
+ if (header.type === "dir") {
230
+ ensureFolders(target, segments, header.path);
231
+ chmodSync(join(target, ...segments), header.mode);
232
+ return;
233
+ }
234
+ if (segments.length === 0) throw new ReceiveError(`refused ${printable(header.path)}: a file needs a name`);
235
+ ensureFolders(target, segments.slice(0, -1), header.path);
236
+ const dest = join(target, ...segments);
237
+ const existing = (() => {
238
+ try {
239
+ return lstatSync(dest);
240
+ } catch {
241
+ return void 0;
242
+ }
243
+ })();
244
+ if (existing?.isDirectory() === true) throw new ReceiveError(`refused ${printable(header.path)}: a folder is already there`);
245
+ await writeFile(dest, header.mode, body());
246
+ });
247
+ } catch (err) {
248
+ if (err instanceof ReceiveError) throw err;
249
+ const code = err.code;
250
+ throw new ReceiveError(`could not write ${printable(current)}: ${code ?? (err instanceof Error ? err.name : "error")}`);
251
+ }
252
+ }
253
+
254
+ export { ReceiveError, readTar, receiveFiles };
@@ -1,8 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { readHousekeepingRecord, writeHousekeepingRecord } from './chunk-S5PCA3SN.js';
4
- import './chunk-N2PXGQRL.js';
5
- import './chunk-BQXFBI7T.js';
3
+ export { readHousekeepingRecord, writeHousekeepingRecord } from './chunk-UF5L4BAI.js';
4
+ import './chunk-IHNQWF6F.js';
5
+ import './chunk-URWYRAIC.js';
6
+ import './chunk-GISNHSYL.js';
6
7
  import './chunk-Z5GEFMRW.js';
7
8
 
8
9
  createRequire(import.meta.url);