@outerlayer/cli 0.33.0-next.20261021171625 → 0.33.0-next.20261021223634
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/README.md +6 -2
- package/dist/{agent-setup-NSUX64RU.js → agent-setup-UY5NBT7C.js} +13 -13
- package/dist/{artifact-link-cmd-IGVFGHC2.js → artifact-link-cmd-2MBHG3PO.js} +2 -2
- package/dist/{build-HU24C46Z.js → build-SK5BYBER.js} +4 -4
- package/dist/build-info.json +1 -1
- package/dist/{builder-QECLC243.js → builder-K2XIVSSZ.js} +6 -6
- package/dist/{check-4BL6XRWJ.js → check-AXDPZJU4.js} +39 -39
- package/dist/chunk-2PGI6RDE.js +90 -0
- package/dist/{chunk-ZZSQYOY5.js → chunk-3VGDZ23W.js} +1 -1
- package/dist/{chunk-ZAJKEHIE.js → chunk-4IG6EZHU.js} +2 -2
- package/dist/{chunk-NJS7JJYN.js → chunk-52C3SSNF.js} +2 -2
- package/dist/{chunk-IWYS4ERC.js → chunk-533QGXGZ.js} +1 -1
- package/dist/{chunk-LESWVXRE.js → chunk-5RUH3PCG.js} +5 -5
- package/dist/{chunk-X2Y3B4JH.js → chunk-6TFTRVOA.js} +3 -3
- package/dist/{chunk-YGXKXL4Q.js → chunk-72YES3RL.js} +61 -93
- package/dist/{chunk-ZBN4JGTJ.js → chunk-A3H27SYX.js} +1 -1
- package/dist/{chunk-3WW2TL7V.js → chunk-AKHGQKNR.js} +64 -4
- package/dist/{chunk-XT5SOJRC.js → chunk-AKR32WHV.js} +1 -1
- package/dist/{chunk-P7BEZAEU.js → chunk-ALSE7YKX.js} +11 -3
- package/dist/{chunk-5T2VOSIL.js → chunk-CHXYLCMA.js} +4 -4
- package/dist/{chunk-GXKWPOK6.js → chunk-CMU6QJHE.js} +3 -3
- package/dist/{chunk-TZQIEUDE.js → chunk-CNRMP6EN.js} +1 -1
- package/dist/{chunk-UJIG5BU7.js → chunk-CV2S5L4J.js} +42 -18
- package/dist/{chunk-OF4TFWKR.js → chunk-DE7YSNDX.js} +3 -3
- package/dist/{chunk-3H7NZPYG.js → chunk-DM4EGXDO.js} +1 -1
- package/dist/{chunk-H6Y5D6J7.js → chunk-EG7KPSSP.js} +7 -7
- package/dist/{chunk-KP6R7CV3.js → chunk-ESP5VZBD.js} +4 -1
- package/dist/{chunk-RQGHHEM7.js → chunk-HBBCQ5NE.js} +2 -2
- package/dist/{chunk-NHXJU7CM.js → chunk-HT7LVCTX.js} +2 -2
- package/dist/{chunk-T5TBGOT6.js → chunk-IPJ6HR7E.js} +1 -1
- package/dist/{chunk-APSYTJ6I.js → chunk-JT3YO5MH.js} +1 -1
- package/dist/{chunk-QNVIGO5X.js → chunk-KDM77TVX.js} +5 -5
- package/dist/{chunk-YW4PEGLN.js → chunk-KUTZ6XLS.js} +1 -1
- package/dist/{chunk-RHBFNZ7J.js → chunk-LBPK2TPR.js} +24 -8
- package/dist/{chunk-X7UUIHGH.js → chunk-LH3KULPL.js} +1 -1
- package/dist/{chunk-LK2S5XZH.js → chunk-LHYO4RDP.js} +9 -1
- package/dist/{chunk-WXEPMPHK.js → chunk-LN4WDONI.js} +1 -1
- package/dist/{chunk-FE3RTGJN.js → chunk-M5OBRUQE.js} +2 -2
- package/dist/{chunk-WHSYPR3U.js → chunk-M5ZXOQYS.js} +1 -1
- package/dist/{chunk-OX7CHZTJ.js → chunk-N3KK5BKF.js} +7 -7
- package/dist/{chunk-4LU7MFJO.js → chunk-NOXK3QW6.js} +4 -4
- package/dist/{chunk-2FPEB36J.js → chunk-O6NG67Y7.js} +5 -5
- package/dist/{chunk-JUXATN46.js → chunk-OGCG5LOX.js} +1 -1
- package/dist/{chunk-XRQ7DABQ.js → chunk-Q2D4M3GC.js} +1 -1
- package/dist/{chunk-3RS3RNGH.js → chunk-Q4YVHYHT.js} +3 -3
- package/dist/{chunk-INCKTGMM.js → chunk-RQKQTRXM.js} +5 -5
- package/dist/{chunk-D73OLAYE.js → chunk-RVWADVBN.js} +4 -4
- package/dist/{chunk-6C3ZVE62.js → chunk-RW52CUFX.js} +1 -1
- package/dist/{chunk-XFS2TMOB.js → chunk-SFJD4MRY.js} +7 -7
- package/dist/{chunk-77F7NGAZ.js → chunk-TA6TFYAN.js} +3 -3
- package/dist/{chunk-GI6LOIHS.js → chunk-TNJXCNQ6.js} +4 -4
- package/dist/{chunk-BSHUTMXV.js → chunk-TPGHCH2H.js} +45 -19
- package/dist/{chunk-X7ML37UF.js → chunk-UIBTEDLA.js} +7 -7
- package/dist/{chunk-QCDVKCHA.js → chunk-UWEJ6HGB.js} +2 -2
- package/dist/{chunk-F3EF56LQ.js → chunk-VQ2JGZSC.js} +1 -1
- package/dist/{chunk-MV52FCSG.js → chunk-X5LFLYSD.js} +1258 -591
- package/dist/{chunk-KURUM765.js → chunk-Y3LIJIRH.js} +4 -4
- package/dist/{chunk-LRBOBYQI.js → chunk-YH2632RT.js} +6 -6
- package/dist/{chunk-JJ4W5LVF.js → chunk-ZRTMS4C7.js} +13 -13
- package/dist/{claude-launcher-RNMUZZ3Y.js → claude-launcher-STSKZNW3.js} +5 -5
- package/dist/{cli-PNQX4HRX.js → cli-LYJEJTQG.js} +124 -119
- package/dist/{command-LA7T5YFX.js → command-2JEY6X6U.js} +29 -28
- package/dist/{config-3JRFDYZL.js → config-CUJ3Q4L2.js} +1 -1
- package/dist/{connect-cmd-2AXEPDT2.js → connect-cmd-WFHAPGCZ.js} +11 -11
- package/dist/{container-start-4LIRN2LX.js → container-start-TTEHOSJK.js} +29 -28
- package/dist/{context-cleanup-VSDT77BZ.js → context-cleanup-UBOJHGQM.js} +3 -3
- package/dist/{control-plane-launch-DHMD5WBU.js → control-plane-launch-R4X63DYW.js} +9 -9
- package/dist/{dist-DY2ZNEBS.js → dist-ADFLG3AY.js} +2 -2
- package/dist/{docker-EOP32YLH.js → docker-UYS5N5B7.js} +6 -6
- package/dist/{doctor-FDXHHPDJ.js → doctor-3XPT5F2Y.js} +38 -35
- package/dist/{emit-artifact-cmd-JY5V6WQI.js → emit-artifact-cmd-FR5PUUJR.js} +16 -16
- package/dist/{emit-cmd-T7NIBSF3.js → emit-cmd-JOO6ZTEI.js} +6 -6
- package/dist/{emit-criteria-cmd-XRFBNFN7.js → emit-criteria-cmd-DKPZJTIN.js} +12 -12
- package/dist/emit-demo-cmd-IVLL6OWZ.js +3027 -0
- package/dist/{emit-finding-cmd-5RHKQHE6.js → emit-finding-cmd-VM4KIVEM.js} +13 -13
- package/dist/{emit-result-cmd-65KJQ2UM.js → emit-result-cmd-SEKL6HUU.js} +15 -15
- package/dist/{emit-step-cmd-YZIN6B6P.js → emit-step-cmd-4YAWK4VE.js} +13 -13
- package/dist/{findings-cmd-Z6CKWAG4.js → findings-cmd-RXYIWXY4.js} +13 -13
- package/dist/{fleet-readiness-7ROJ54ZF.js → fleet-readiness-VIX76RNL.js} +11 -11
- package/dist/{governing-source-NMGGSA6Q.js → governing-source-APGCKDTS.js} +16 -16
- package/dist/{hook-fast-WQQYEXO5.js → hook-fast-NVBMSE3N.js} +1 -1
- package/dist/{host-key-KAYMYRO3.js → host-key-UEWE4PXB.js} +2 -2
- package/dist/{image-tag-NM2YT2J2.js → image-tag-V2LXTKK7.js} +2 -2
- package/dist/index.js +4 -4
- package/dist/{init-UBDZRWNE.js → init-BR4Z4T2Q.js} +28 -27
- package/dist/{init-OV6IOD2G.js → init-XWQJEW6H.js} +28 -27
- package/dist/{init-cmd-YP4TVN2S.js → init-cmd-IEMYX6KA.js} +21 -21
- package/dist/{init-update-24K7ZZWX.js → init-update-HOTJISWA.js} +20 -20
- package/dist/{install-OIRIEOS7.js → install-3DBYJITP.js} +3 -3
- package/dist/{install-cmd-IYWVR6WX.js → install-cmd-EELSKBSZ.js} +4 -4
- package/dist/{layout-OQ7EJUMH.js → layout-ZI4RJ6MT.js} +4 -4
- package/dist/{login-browser-KP7YVYTN.js → login-browser-WUSIVD5E.js} +2 -2
- package/dist/{logs-C3RJ3ZTC.js → logs-ET75ZUCN.js} +1 -1
- package/dist/{loop-4FEA6E2S.js → loop-3NRAMJA4.js} +39 -39
- package/dist/{machine-3BMBF33L.js → machine-LUXL7SFT.js} +24 -23
- package/dist/{machine-skills-XWWYFNOZ.js → machine-skills-REHDWINX.js} +4 -4
- package/dist/{mcp-serve-cmd-PB4UOTGL.js → mcp-serve-cmd-WYUP263T.js} +3 -3
- package/dist/paths-BN7X2YPM.js +9 -0
- package/dist/{pending-RKVRYOTF.js → pending-ROAIK5WO.js} +2 -2
- package/dist/{pidfile-BMFAUQAI.js → pidfile-52TGLGQH.js} +2 -2
- package/dist/{record-26AH6WDB.js → record-BSY4BKJ5.js} +2 -2
- package/dist/{runner-env-66RAFIDJ.js → runner-env-H6XLACTG.js} +4 -4
- package/dist/{runner-identity-HTQNM5AG.js → runner-identity-DR5I3NBT.js} +6 -6
- package/dist/{runner-key-7I5FDQKR.js → runner-key-OLMCAOTD.js} +28 -27
- package/dist/{session-sender-MKDKMZJD.js → session-sender-PLQ5NOEW.js} +16 -16
- package/dist/{spec-cmd-V7W3UV6X.js → spec-cmd-NIAQWMLE.js} +13 -13
- package/dist/{starter-pack-6O7F6P7C.js → starter-pack-OESK7UX2.js} +5 -5
- package/dist/{status-TJDVDR4H.js → status-4HNX45UZ.js} +29 -29
- package/dist/{sync-cmd-AI4KTJ56.js → sync-cmd-UTESQMDU.js} +15 -15
- package/dist/{watch-C7IS6VNS.js → watch-4UC4FGI5.js} +15 -15
- package/dist/{work-claim-cmd-GFXIZWMU.js → work-claim-cmd-ODYRE44S.js} +16 -16
- package/dist/{work-cmd-UTD4Y7W3.js → work-cmd-QQDUI3YX.js} +13 -13
- package/dist/{work-comment-cmd-J3SRBK6A.js → work-comment-cmd-FIOMDPIZ.js} +13 -13
- package/dist/{work-logs-cmd-SH7MQPA3.js → work-logs-cmd-DA6MPQ6O.js} +13 -13
- package/dist/{work-open-pr-cmd-FIX5QLK7.js → work-open-pr-cmd-QG2FT7OW.js} +14 -14
- package/dist/{work-pr-cmd-S4IBR7DE.js → work-pr-cmd-XNXWWLS5.js} +13 -13
- package/dist/{work-stop-cmd-NECXJEJN.js → work-stop-cmd-2KLZ2UH2.js} +13 -13
- package/package.json +3 -1
- package/dist/chunk-YYYRBYWG.js +0 -32
- package/dist/emit-demo-cmd-JOVCVXIS.js +0 -888
- package/dist/paths-OK2EZS7W.js +0 -9
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { RESERVED_EMIT_NAMES, ARTIFACT_KINDS, ArtifactCriterionIdSchema } from './chunk-
|
|
3
|
+
import { RESERVED_EMIT_NAMES, ARTIFACT_KINDS, ArtifactCriterionIdSchema } from './chunk-AKHGQKNR.js';
|
|
4
4
|
import { __commonJS, __require, __toESM } from './chunk-Z5GEFMRW.js';
|
|
5
5
|
|
|
6
6
|
createRequire(import.meta.url);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { loadMachineSkillFiles, resolvePackRoot } from './chunk-
|
|
3
|
+
import { loadMachineSkillFiles, resolvePackRoot } from './chunk-KUTZ6XLS.js';
|
|
4
4
|
import { MAINTAINED_SKILLS, maintainedLineVersion } from './chunk-CDDED64E.js';
|
|
5
5
|
import { resolvePackageVersion } from './chunk-RA3O54FC.js';
|
|
6
6
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { LiveUploader } from './chunk-
|
|
4
|
-
import { CaptureDaemon } from './chunk-
|
|
5
|
-
import { spoolDir } from './chunk-
|
|
3
|
+
import { LiveUploader } from './chunk-SFJD4MRY.js';
|
|
4
|
+
import { CaptureDaemon } from './chunk-AKR32WHV.js';
|
|
5
|
+
import { spoolDir } from './chunk-HT7LVCTX.js';
|
|
6
6
|
import { parseWorkItemEnv } from './chunk-T2Q7ISPE.js';
|
|
7
7
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
8
8
|
import { mkdirSync, writeFileSync, rmSync } from 'fs';
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { launchRefusalForSession } from './chunk-ESVW4MJY.js';
|
|
4
|
-
import { autoConnect, detectActiveSession } from './chunk-
|
|
5
|
-
import { acquireSpoolLockAt } from './chunk-
|
|
6
|
-
import { resolveRepoIdentity } from './chunk-
|
|
4
|
+
import { autoConnect, detectActiveSession } from './chunk-6TFTRVOA.js';
|
|
5
|
+
import { acquireSpoolLockAt } from './chunk-DM4EGXDO.js';
|
|
6
|
+
import { resolveRepoIdentity } from './chunk-AKR32WHV.js';
|
|
7
7
|
import { C } from './chunk-ANPNT6PM.js';
|
|
8
|
-
import { resolveGatewayCredentials, defaultFetch, unauthorizedMessage } from './chunk-
|
|
8
|
+
import { resolveGatewayCredentials, defaultFetch, unauthorizedMessage } from './chunk-VQ2JGZSC.js';
|
|
9
9
|
import { launchedItemForSession } from './chunk-T2Q7ISPE.js';
|
|
10
10
|
import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
|
|
11
|
-
import { StepNameSchema, StepBodySchema } from './chunk-
|
|
11
|
+
import { StepNameSchema, StepBodySchema } from './chunk-AKHGQKNR.js';
|
|
12
12
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
13
13
|
import { randomUUID } from 'crypto';
|
|
14
14
|
import { readFileSync, existsSync, mkdirSync, writeFileSync, renameSync, appendFileSync } from 'fs';
|
|
@@ -1,13 +1,13 @@
|
|
|
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-M5OBRUQE.js';
|
|
4
|
+
import { defaultFetch, resolveGatewayCredentials } from './chunk-VQ2JGZSC.js';
|
|
5
5
|
import { withTokenHeader } from './chunk-HDSDUTX4.js';
|
|
6
6
|
import { appendContextProvenance } from './chunk-ZJSNLVCE.js';
|
|
7
|
-
import { loadMaintainedFiles, writeMaintainedFiles } from './chunk-
|
|
7
|
+
import { loadMaintainedFiles, writeMaintainedFiles } from './chunk-KUTZ6XLS.js';
|
|
8
8
|
import { cliInvocation } from './chunk-CRB3POP4.js';
|
|
9
9
|
import { writeDegraded, writeSourceCache, SOURCE_CACHE_TTL_RETRY_MS, writeContextManifest, SOURCE_CACHE_TTL_SUCCESS_MS, readSourceCache, isSourceCacheFresh, clearDegraded } from './chunk-YQR6E6OV.js';
|
|
10
|
-
import { normalizeRepoName, parseOuterlayerConfig, classifyTree, emitTree } from './chunk-
|
|
10
|
+
import { normalizeRepoName, parseOuterlayerConfig, classifyTree, emitTree } from './chunk-OGCG5LOX.js';
|
|
11
11
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
12
12
|
import { execFileSync } from 'child_process';
|
|
13
13
|
import { existsSync, mkdirSync, writeFileSync, chmodSync, lstatSync, readFileSync, copyFileSync } from 'fs';
|
|
@@ -5,7 +5,7 @@ import { C } from './chunk-ANPNT6PM.js';
|
|
|
5
5
|
import { readCloudConfigStrict, CloudConfigError, readCloudConfig, writeCloudConfig, cloudConfigPath } from './chunk-PJDQPF5N.js';
|
|
6
6
|
import { findGitDirs } from './chunk-BJ3KTMDH.js';
|
|
7
7
|
import { cliInvocation } from './chunk-CRB3POP4.js';
|
|
8
|
-
import { CLI_LOGIN_MACHINE_NAME_MAX, CliLoginPollResponseSchema, CLI_LOGIN_KIND, CliLoginRefusalSchema, CliLoginStartedSchema } from './chunk-
|
|
8
|
+
import { CLI_LOGIN_MACHINE_NAME_MAX, CliLoginPollResponseSchema, CLI_LOGIN_KIND, CliLoginRefusalSchema, CliLoginStartedSchema } from './chunk-AKHGQKNR.js';
|
|
9
9
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
10
10
|
import { generateKeyPairSync, privateDecrypt, constants, createPrivateKey } from 'crypto';
|
|
11
11
|
import { spawn } from 'child_process';
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { uploadSpooledSteps } from './chunk-
|
|
3
|
+
import { uploadSpooledSteps } from './chunk-RQKQTRXM.js';
|
|
4
4
|
import { LaunchFilter } from './chunk-ESVW4MJY.js';
|
|
5
5
|
import { RepoFilter } from './chunk-TBT347UY.js';
|
|
6
|
-
import { migrateLegacyArtifactSidecars, planArtifactUpload, artifactsStatePath, sanitizeTerminal, acquireArtifactSpoolLock, artifactBlobsDir, resolveArtifactTurnIndex, isArtifactTombstoned, ARTIFACT_RETRY_MAX_AGE_MS, writeArtifactSpoolState, reclaimUnneededArtifactBlobs, neededArtifactShas } from './chunk-
|
|
7
|
-
import { setCustomScrubbers, setLocalIdentity, tailTranscript, enrichSessionRepo, scanAll, setRepoRoot, resolveRepoIdentity, sessionIdFromPath, scrubDeep, SOURCE_ADAPTERS } from './chunk-
|
|
6
|
+
import { migrateLegacyArtifactSidecars, planArtifactUpload, artifactsStatePath, sanitizeTerminal, acquireArtifactSpoolLock, artifactBlobsDir, resolveArtifactTurnIndex, isArtifactTombstoned, ARTIFACT_RETRY_MAX_AGE_MS, writeArtifactSpoolState, reclaimUnneededArtifactBlobs, neededArtifactShas } from './chunk-DM4EGXDO.js';
|
|
7
|
+
import { setCustomScrubbers, setLocalIdentity, tailTranscript, enrichSessionRepo, scanAll, setRepoRoot, resolveRepoIdentity, sessionIdFromPath, scrubDeep, SOURCE_ADAPTERS } from './chunk-AKR32WHV.js';
|
|
8
8
|
import { C } from './chunk-ANPNT6PM.js';
|
|
9
|
-
import { cliFetch, resolveGatewayCredentials, defaultFetch, unauthorizedMessage } from './chunk-
|
|
9
|
+
import { cliFetch, resolveGatewayCredentials, defaultFetch, unauthorizedMessage } from './chunk-VQ2JGZSC.js';
|
|
10
10
|
import { readCloudConfig, cloudConfigPath, writeCloudConfig } from './chunk-PJDQPF5N.js';
|
|
11
|
-
import { signerFor, signRunnerRequest } from './chunk-
|
|
12
|
-
import { writeSyncStatus, spoolDir } from './chunk-
|
|
11
|
+
import { signerFor, signRunnerRequest } from './chunk-JT3YO5MH.js';
|
|
12
|
+
import { writeSyncStatus, spoolDir } from './chunk-HT7LVCTX.js';
|
|
13
13
|
import { readLatestProvenanceForSession, readContextProvenance } from './chunk-ZJSNLVCE.js';
|
|
14
14
|
import { hookExecSpoolPath } from './chunk-2O5KA67H.js';
|
|
15
15
|
import { applyReportedCost } from './chunk-BKO6JEZI.js';
|
|
@@ -17,7 +17,7 @@ import { readRepoConnection, findGitDirs } from './chunk-BJ3KTMDH.js';
|
|
|
17
17
|
import { readLaunchSpoolState, launchStatusIsDecisive, launchedItemsBySession, launchesPath } from './chunk-T2Q7ISPE.js';
|
|
18
18
|
import { cliInvocation } from './chunk-CRB3POP4.js';
|
|
19
19
|
import { removeJournalHooks } from './chunk-TUSYOL2O.js';
|
|
20
|
-
import { CAPTURE_TIERS, inferArtifactKind, bannedPathsForTier, downconvertSession, isHumanUserTurn, turnCountBound, EVENT_TYPES } from './chunk-
|
|
20
|
+
import { CAPTURE_TIERS, inferArtifactKind, bannedPathsForTier, downconvertSession, isHumanUserTurn, turnCountBound, EVENT_TYPES } from './chunk-AKHGQKNR.js';
|
|
21
21
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
22
22
|
import { dirname, basename, join, sep } from 'path';
|
|
23
23
|
import { statSync, readFileSync, readdirSync, mkdirSync, writeFileSync, renameSync, existsSync, rmSync } from 'fs';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { launcherPath, writeLauncher, LauncherWriteError, pathNotes } from './chunk-
|
|
4
|
-
import { currentVersion, currentLink, isInLayout, packageRootIn, versionDir, switchCurrent, execStartLine } from './chunk-
|
|
3
|
+
import { launcherPath, writeLauncher, LauncherWriteError, pathNotes } from './chunk-A3H27SYX.js';
|
|
4
|
+
import { currentVersion, currentLink, isInLayout, packageRootIn, versionDir, switchCurrent, execStartLine } from './chunk-3VGDZ23W.js';
|
|
5
5
|
import { compareVersions } from './chunk-TQMI335S.js';
|
|
6
|
-
import { RUNNER_DIR_MODE } from './chunk-
|
|
6
|
+
import { RUNNER_DIR_MODE } from './chunk-ESP5VZBD.js';
|
|
7
7
|
import { realpathSync, readFileSync, mkdirSync, rmSync, cpSync, existsSync } from 'fs';
|
|
8
8
|
import { dirname, sep, join } from 'path';
|
|
9
9
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { isAgentsMdLayout, discoverOuterlayerPaths, isForeignTree, toRepoRelative } from './chunk-
|
|
3
|
+
import { isAgentsMdLayout, discoverOuterlayerPaths, isForeignTree, toRepoRelative } from './chunk-4IG6EZHU.js';
|
|
4
4
|
import { C } from './chunk-ANPNT6PM.js';
|
|
5
|
-
import { retiredSkillPaths, removeRetiredSkills } from './chunk-
|
|
6
|
-
import { maintainedFilesForExistingSkills, loadMaintainedFiles, writeMaintainedFiles } from './chunk-
|
|
5
|
+
import { retiredSkillPaths, removeRetiredSkills } from './chunk-M5OBRUQE.js';
|
|
6
|
+
import { maintainedFilesForExistingSkills, loadMaintainedFiles, writeMaintainedFiles } from './chunk-KUTZ6XLS.js';
|
|
7
7
|
import { cliInvocation } from './chunk-CRB3POP4.js';
|
|
8
|
-
import { emitTree, generatedHeaderSource, parseOuterlayerConfig, classifyTree } from './chunk-
|
|
8
|
+
import { emitTree, generatedHeaderSource, parseOuterlayerConfig, classifyTree } from './chunk-OGCG5LOX.js';
|
|
9
9
|
import { existsSync, readFileSync, mkdirSync, writeFileSync, copyFileSync, unlinkSync, rmdirSync, readdirSync } from 'fs';
|
|
10
10
|
import { join, dirname } from 'path';
|
|
11
11
|
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { claimPidFile, RunnerAlreadyRunningError, releasePidFile } from './chunk-
|
|
3
|
+
import { claimPidFile, RunnerAlreadyRunningError, releasePidFile } from './chunk-IPJ6HR7E.js';
|
|
4
4
|
import { startTimeOf } from './chunk-JBJTC3UU.js';
|
|
5
5
|
import { RecipeError, locateRecipe, readRecipe, assertBuildable, writeSanitizedRecipe, classifyProperties, SANITIZED_NAME } from './chunk-3Z3MPR55.js';
|
|
6
|
-
import {
|
|
7
|
-
import { RUNNER_DIR_MODE, repoCacheDir, imagesDir, attemptStamp, runnerDir, rootfsPathFor
|
|
8
|
-
import { withGitConfig, tokenHeader
|
|
6
|
+
import { GH_VERSION, VOICE_PACK_FILES, VOICE_PACK_VERSION, FFMPEG_STATIC, FFMPEG_BUILD_TAG, GH_SHA256, TINI_SHA256, TINI_VERSION, CLAUDE_CODE_VERSION, NODE_IMAGE, DEFAULT_BASE_IMAGE, MEDIA_PINS } from './chunk-LHYO4RDP.js';
|
|
7
|
+
import { RUNNER_DIR_MODE, RUNNER_FILE_MODE, repoCacheDir, imagesDir, attemptStamp, runnerDir, rootfsPathFor } from './chunk-ESP5VZBD.js';
|
|
8
|
+
import { PROXY_WARNING_FLAG, withGitConfig, tokenHeader } from './chunk-HDSDUTX4.js';
|
|
9
9
|
import { RELAY_ID, RELAY_USER } from './chunk-MESOOLF4.js';
|
|
10
|
-
import { mkdirSync, rmSync, existsSync, mkdtempSync, cpSync, readFileSync,
|
|
10
|
+
import { mkdirSync, rmSync, writeFileSync, existsSync, mkdtempSync, cpSync, readFileSync, readdirSync, lstatSync, readlinkSync } from 'fs';
|
|
11
11
|
import { tmpdir } from 'os';
|
|
12
12
|
import { dirname, join } from 'path';
|
|
13
13
|
import { execFile } from 'child_process';
|
|
@@ -147,6 +147,11 @@ async function cloneRepository(remote, dest, timeoutMs = CLONE_TIMEOUT_MS) {
|
|
|
147
147
|
}
|
|
148
148
|
|
|
149
149
|
// src/runner/image/dockerfiles.ts
|
|
150
|
+
var FETCHED_DIR = "fetched";
|
|
151
|
+
var FETCHED_VOICE_DIR = "voice";
|
|
152
|
+
var FETCHED_FFMPEG = "ffmpeg.tar.xz";
|
|
153
|
+
var FETCHED_GH = "gh.tgz";
|
|
154
|
+
var FETCHED_TINI = "tini";
|
|
150
155
|
function plain(name, value, allowed) {
|
|
151
156
|
if (!allowed.test(value)) throw new Error(`${name} holds a character a Dockerfile line cannot carry safely: ${JSON.stringify(value)}`);
|
|
152
157
|
return value;
|
|
@@ -185,26 +190,31 @@ function toolsDockerfile(parts) {
|
|
|
185
190
|
const stream = `NODE_USE_ENV_PROXY=1 node ${PROXY_WARNING_FLAG} -e 'const{pipeline}=require("stream/promises"),{Readable}=require("stream"),fs=require("fs");fetch(process.argv[1]).then((r)=>{if(!r.ok)throw new Error(process.argv[1]+" "+r.status);return pipeline(Readable.fromWeb(r.body),fs.createWriteStream(process.argv[2]))})'`;
|
|
186
191
|
const voiceDir = `/out/opt/outerlayer/voice/${VOICE_PACK_VERSION}`;
|
|
187
192
|
const checks = VOICE_PACK_FILES.map((file) => `echo "${file.sha256} ${voiceDir}/${file.name}" | sha256sum -c -`);
|
|
188
|
-
|
|
193
|
+
const fetched = parts.fetched === true;
|
|
194
|
+
const voice = fetched ? [`FROM ${nodeImage} AS voice`, `COPY ${FETCHED_DIR}/${FETCHED_VOICE_DIR}/ ${voiceDir}/`, `RUN ${checks.join(" \\\n && ")} \\`, " && chmod -R a+rX /out"] : [
|
|
189
195
|
// The voice pack streams to disk, one pinned file at a time, because a 300 MB model must not sit in a build's memory. Its own stage keeps it cached when the CLI changes.
|
|
190
196
|
`FROM ${nodeImage} AS voice`,
|
|
191
197
|
`RUN mkdir -p ${voiceDir} \\`,
|
|
192
198
|
...VOICE_PACK_FILES.map((file) => ` && ${stream} ${file.url} ${voiceDir}/${file.name} \\`),
|
|
193
199
|
...checks.map((check) => ` && ${check} \\`),
|
|
194
|
-
" && chmod -R a+rX /out"
|
|
200
|
+
" && chmod -R a+rX /out"
|
|
201
|
+
];
|
|
202
|
+
return [
|
|
203
|
+
...voice,
|
|
195
204
|
// ffmpeg and ffprobe are static LGPL builds. espeak-ng comes from the stage image's own package, with the libraries and loader it needs, and runs as a separate program.
|
|
196
205
|
`FROM ${nodeImage} AS media`,
|
|
197
206
|
"ARG TARGETARCH",
|
|
198
207
|
"RUN apt-get update \\",
|
|
199
208
|
" && apt-get install -y --no-install-recommends ca-certificates espeak-ng xz-utils \\",
|
|
200
209
|
" && rm -rf /var/lib/apt/lists/*",
|
|
210
|
+
...fetched ? [`COPY ${FETCHED_DIR}/${FETCHED_FFMPEG} /tmp/ffmpeg.tar.xz`] : [],
|
|
201
211
|
"RUN set -eu \\",
|
|
202
212
|
` && case "$TARGETARCH" in \\`,
|
|
203
213
|
` amd64) ffmpeg_file=${FFMPEG_STATIC.amd64.file}; ffmpeg_sha=${FFMPEG_STATIC.amd64.sha256} ;; \\`,
|
|
204
214
|
` arm64) ffmpeg_file=${FFMPEG_STATIC.arm64.file}; ffmpeg_sha=${FFMPEG_STATIC.arm64.sha256} ;; \\`,
|
|
205
215
|
` *) echo "no pinned ffmpeg for $TARGETARCH" >&2; exit 1 ;; \\`,
|
|
206
216
|
" esac \\",
|
|
207
|
-
` && ${download} https://github.com/BtbN/FFmpeg-Builds/releases/download/${FFMPEG_BUILD_TAG}/$ffmpeg_file /tmp/ffmpeg.tar.xz
|
|
217
|
+
...fetched ? [] : [` && ${download} https://github.com/BtbN/FFmpeg-Builds/releases/download/${FFMPEG_BUILD_TAG}/$ffmpeg_file /tmp/ffmpeg.tar.xz \\`],
|
|
208
218
|
' && echo "$ffmpeg_sha /tmp/ffmpeg.tar.xz" | sha256sum -c - \\',
|
|
209
219
|
" && tar -xJf /tmp/ffmpeg.tar.xz -C /tmp \\",
|
|
210
220
|
" && mkdir -p /out/usr/local/bin /out/opt/outerlayer/media/lib \\",
|
|
@@ -239,16 +249,17 @@ function toolsDockerfile(parts) {
|
|
|
239
249
|
"RUN chmod 0755 /out/opt/outerlayer/bin/outerlayer-guest \\",
|
|
240
250
|
" && mkdir -p /out/outerlayer/job /out/outerlayer/judge /out/run /out/proc /out/sys /out/dev"
|
|
241
251
|
] : [],
|
|
252
|
+
...fetched ? [`COPY ${FETCHED_DIR}/${FETCHED_TINI} /tmp/tini`, `COPY ${FETCHED_DIR}/${FETCHED_GH} /tmp/gh.tgz`] : [],
|
|
242
253
|
`RUN set -eu \\`,
|
|
243
254
|
` && case "$TARGETARCH" in \\`,
|
|
244
255
|
` amd64) gh_sha=${GH_SHA256.amd64}; tini_sha=${TINI_SHA256.amd64} ;; \\`,
|
|
245
256
|
` arm64) gh_sha=${GH_SHA256.arm64}; tini_sha=${TINI_SHA256.arm64} ;; \\`,
|
|
246
257
|
` *) echo "no pinned gh and tini for $TARGETARCH" >&2; exit 1 ;; \\`,
|
|
247
258
|
" esac \\",
|
|
248
|
-
` && ${download} https://github.com/krallin/tini/releases/download/v${TINI_VERSION}/tini-static-$TARGETARCH /tmp/tini
|
|
259
|
+
...fetched ? [] : [` && ${download} https://github.com/krallin/tini/releases/download/v${TINI_VERSION}/tini-static-$TARGETARCH /tmp/tini \\`],
|
|
249
260
|
' && echo "$tini_sha /tmp/tini" | sha256sum -c - \\',
|
|
250
261
|
" && install -m 0755 /tmp/tini /out/opt/outerlayer/bin/tini \\",
|
|
251
|
-
` && ${download} https://github.com/cli/cli/releases/download/v${GH_VERSION}/gh_${GH_VERSION}_linux_$TARGETARCH.tar.gz /tmp/gh.tgz
|
|
262
|
+
...fetched ? [] : [` && ${download} https://github.com/cli/cli/releases/download/v${GH_VERSION}/gh_${GH_VERSION}_linux_$TARGETARCH.tar.gz /tmp/gh.tgz \\`],
|
|
252
263
|
' && echo "$gh_sha /tmp/gh.tgz" | sha256sum -c - \\',
|
|
253
264
|
" && tar -xzf /tmp/gh.tgz -C /tmp \\",
|
|
254
265
|
` && install -m 0755 /tmp/gh_${GH_VERSION}_linux_$TARGETARCH/bin/gh /out/usr/local/bin/gh`,
|
|
@@ -362,15 +373,18 @@ async function fetchPinnedCommit(opts) {
|
|
|
362
373
|
if (!fetched.ok) throw new RecipeError("repository_unreadable", `cannot read ${opts.repository}: ${fetched.reason}`);
|
|
363
374
|
return { dir: opts.dir, defaultBranch: opts.ref, commit: opts.commit };
|
|
364
375
|
}
|
|
365
|
-
function
|
|
376
|
+
function metadataFromLabels(labels) {
|
|
366
377
|
try {
|
|
367
|
-
const parsed = JSON.parse(
|
|
378
|
+
const parsed = JSON.parse(labels["devcontainer.metadata"] ?? "[]");
|
|
368
379
|
const entries = Array.isArray(parsed) ? parsed : [parsed];
|
|
369
380
|
return entries.filter((e) => typeof e === "object" && e !== null && !Array.isArray(e));
|
|
370
381
|
} catch {
|
|
371
382
|
return [];
|
|
372
383
|
}
|
|
373
384
|
}
|
|
385
|
+
function metadataOf(image) {
|
|
386
|
+
return metadataFromLabels(image.labels);
|
|
387
|
+
}
|
|
374
388
|
function readReport(recordDir) {
|
|
375
389
|
try {
|
|
376
390
|
return JSON.parse(readFileSync(join(recordDir, "recipe.json"), "utf8"));
|
|
@@ -386,8 +400,7 @@ function writeRecord(recordDir, report, builtAt) {
|
|
|
386
400
|
writeFileSync(join(recordDir, "recipe.json"), `${JSON.stringify(report, null, 2)}
|
|
387
401
|
`, { mode: RUNNER_FILE_MODE });
|
|
388
402
|
}
|
|
389
|
-
async function
|
|
390
|
-
const { host } = ports;
|
|
403
|
+
async function prepareImageBuild(opts) {
|
|
391
404
|
const { full: repository, owner, name } = splitRepository(opts.repository);
|
|
392
405
|
if (!existsSync(join(opts.cli.distDir, "index.js"))) {
|
|
393
406
|
throw new Error(`${opts.cli.distDir} holds no index.js: the tools layer copies the built CLI, so run this from a build (yarn workspace @outerlayer/cli build)`);
|
|
@@ -396,7 +409,6 @@ async function buildRepositoryImage(opts, ports) {
|
|
|
396
409
|
const claudeCodeVersion = opts.claudeCodeVersion ?? CLAUDE_CODE_VERSION;
|
|
397
410
|
const nodeImage = opts.nodeImage ?? NODE_IMAGE;
|
|
398
411
|
const baseImage = opts.defaultBaseImage ?? DEFAULT_BASE_IMAGE;
|
|
399
|
-
const scratchRoot = opts.tmpDir ?? tmpdir();
|
|
400
412
|
const cacheDir = repoCacheDir(opts.configPath, owner, name);
|
|
401
413
|
const repoRecords = join(imagesDir(opts.configPath), owner, name);
|
|
402
414
|
const logPath = join(repoRecords, "builds", `${attemptStamp(now())}.log`);
|
|
@@ -411,6 +423,7 @@ async function buildRepositoryImage(opts, ports) {
|
|
|
411
423
|
}
|
|
412
424
|
throw err;
|
|
413
425
|
}
|
|
426
|
+
const release = () => releasePidFile(lockPath, self);
|
|
414
427
|
try {
|
|
415
428
|
const remote = opts.remote ?? `https://github.com/${owner}/${name}.git`;
|
|
416
429
|
const checkout = opts.pinned === void 0 ? await fetchDefaultBranch({ remote, dir: cacheDir, token: opts.readToken, repository }) : await fetchPinnedCommit({ remote, dir: cacheDir, token: opts.readToken, repository, ...opts.pinned });
|
|
@@ -421,8 +434,21 @@ async function buildRepositoryImage(opts, ports) {
|
|
|
421
434
|
const rKey = recipeKey(checkout.dir, location, defaultText);
|
|
422
435
|
const tKey = toolsKey({ buildId: opts.cli.buildId, claudeCodeVersion, nodeImage, ghVersion: GH_VERSION, tiniVersion: TINI_VERSION, guestHelperSha256: opts.guestHelper?.sha256, mediaPins: MEDIA_PINS });
|
|
423
436
|
const recordDir = join(repoRecords, `${rKey.slice(0, KEY_PREFIX)}-${tKey.slice(0, KEY_PREFIX)}`);
|
|
424
|
-
|
|
425
|
-
|
|
437
|
+
return { repository, owner, name, repoRecords, recordDir, checkout, location, recipe, recipeKey: rKey, toolsKey: tKey, defaultText, claudeCodeVersion, nodeImage, logPath, release };
|
|
438
|
+
} catch (err) {
|
|
439
|
+
release();
|
|
440
|
+
throw err;
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
async function buildRepositoryImage(opts, ports) {
|
|
444
|
+
const { host } = ports;
|
|
445
|
+
const now = opts.now ?? (() => /* @__PURE__ */ new Date());
|
|
446
|
+
const scratchRoot = opts.tmpDir ?? tmpdir();
|
|
447
|
+
const prepared = await prepareImageBuild(opts);
|
|
448
|
+
const { repository, repoRecords, checkout, location, recipe, recipeKey: rKey, toolsKey: tKey, defaultText, claudeCodeVersion, nodeImage, recordDir, logPath } = prepared;
|
|
449
|
+
const buildTag = `${TAG_HOST}/build/${repository}:${rKey.slice(0, KEY_PREFIX)}-${tKey.slice(0, KEY_PREFIX)}`;
|
|
450
|
+
const recipeTag = `${TAG_HOST}/recipe/${repository}:${rKey.slice(0, KEY_PREFIX)}`;
|
|
451
|
+
try {
|
|
426
452
|
const existing = await host.list(repository);
|
|
427
453
|
const labelled = existing.find((i) => i.labels[KIND2] === "recipe" && i.labels[RECIPE_KEY2] === rKey);
|
|
428
454
|
const recipeImageBefore = labelled !== void 0 && (await host.inspect(recipeTag))?.id === labelled.id ? labelled : void 0;
|
|
@@ -538,7 +564,7 @@ async function buildRepositoryImage(opts, ports) {
|
|
|
538
564
|
removed
|
|
539
565
|
};
|
|
540
566
|
} finally {
|
|
541
|
-
|
|
567
|
+
prepared.release();
|
|
542
568
|
}
|
|
543
569
|
}
|
|
544
570
|
async function prune(host, repository, repoRecords, keep, runnerDirPath) {
|
|
@@ -564,4 +590,4 @@ async function prune(host, repository, repoRecords, keep, runnerDirPath) {
|
|
|
564
590
|
return removed;
|
|
565
591
|
}
|
|
566
592
|
|
|
567
|
-
export { buildRepositoryImage, cloneRepository, diffBetween, fetchCommit, readBranchHead, readDefaultBranchHead };
|
|
593
|
+
export { FETCHED_DIR, FETCHED_FFMPEG, FETCHED_GH, FETCHED_TINI, FETCHED_VOICE_DIR, KEY_PREFIX, TAG_HOST, buildRepositoryImage, cloneRepository, diffBetween, fetchCommit, metadataFromLabels, prepareImageBuild, readBranchHead, readDefaultBranchHead, toolsDockerfile, writeRecord };
|
|
@@ -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-6TFTRVOA.js';
|
|
4
|
+
import { workPageUrl } from './chunk-5RUH3PCG.js';
|
|
5
|
+
import { sanitizeTerminal } from './chunk-DM4EGXDO.js';
|
|
6
|
+
import { resolveRepoIdentity } from './chunk-AKR32WHV.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-VQ2JGZSC.js';
|
|
9
|
+
import { signRunnerRequest } from './chunk-JT3YO5MH.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';
|
|
@@ -441,7 +441,7 @@ async function runWorkLinkSession(opts) {
|
|
|
441
441
|
return await linkSession(opts);
|
|
442
442
|
} catch (err) {
|
|
443
443
|
if (opts.logFailures) {
|
|
444
|
-
const { logHookError } = await import('./hook-fast-
|
|
444
|
+
const { logHookError } = await import('./hook-fast-NVBMSE3N.js');
|
|
445
445
|
const reason = err instanceof Error ? err.message : String(err);
|
|
446
446
|
logHookError(opts.home ?? homeFromEnv(opts.env ?? process.env), new Error(`work link-session #${opts.number} failed: ${reason}`));
|
|
447
447
|
}
|
|
@@ -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-KUTZ6XLS.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-LN4WDONI.js';
|
|
9
9
|
import { readFileSync, existsSync, mkdirSync, writeFileSync } from 'fs';
|
|
10
10
|
import { join, dirname } from 'path';
|
|
11
11
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { readCloudConfigStrict, readCloudConfig, cloudConfigPath } from './chunk-PJDQPF5N.js';
|
|
4
|
-
import { signRunnerRequest, signerFor } from './chunk-
|
|
4
|
+
import { signRunnerRequest, signerFor } from './chunk-JT3YO5MH.js';
|
|
5
5
|
import { readRepoConnection, findGitDirs } from './chunk-BJ3KTMDH.js';
|
|
6
6
|
import { PLAIN_VERSION, recordCliVersion, removeRecordedVersion } from './chunk-5BHIBJDA.js';
|
|
7
7
|
import { resolvePackageVersion } from './chunk-RA3O54FC.js';
|