@outerlayer/cli 0.34.0-next.20261028122415 → 0.34.0-next.20261028152714
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/dist/{agent-setup-LZ7PEM6A.js → agent-setup-MO7DHLV4.js} +10 -10
- package/dist/{artifact-link-cmd-4XQJO55P.js → artifact-link-cmd-CSVFEM5O.js} +2 -2
- package/dist/{build-VVZHFSZK.js → build-D5OIIY7B.js} +5 -5
- package/dist/{build-disk-QV4TO7HZ.js → build-disk-TEITBQKE.js} +4 -4
- package/dist/build-info.json +1 -1
- package/dist/{builder-6JLFMAGJ.js → builder-S42B4STV.js} +3 -3
- package/dist/{check-FWRVWOVY.js → check-AMTV6RTN.js} +35 -35
- package/dist/{chunk-N6V4ZHI7.js → chunk-26WUFKYZ.js} +4 -4
- package/dist/{chunk-XFJ7YOPD.js → chunk-2EEW6FJN.js} +1 -1
- package/dist/{chunk-UDMFRKFJ.js → chunk-3PFR2WXH.js} +3 -3
- package/dist/{chunk-UKEIJKCH.js → chunk-43BV4MP5.js} +8 -8
- package/dist/{chunk-3EU4MWCE.js → chunk-4557WV4R.js} +2 -2
- package/dist/{chunk-7LKOOGSN.js → chunk-47SFTQA5.js} +1 -1
- package/dist/{chunk-7DHESPSV.js → chunk-4CNUGDNU.js} +12 -12
- package/dist/{chunk-U3O7MULV.js → chunk-4L46A2RR.js} +15 -13
- package/dist/{chunk-J7EJMIDR.js → chunk-54LIUIZL.js} +2 -2
- package/dist/{chunk-H5YUWLIY.js → chunk-6G3BG2GI.js} +3 -3
- package/dist/{chunk-AKQX462F.js → chunk-6MLX26T4.js} +3 -3
- package/dist/{chunk-ZIXLG6EQ.js → chunk-7XDF7PNF.js} +4 -4
- package/dist/{chunk-YGU43DH4.js → chunk-AJZWVXXA.js} +88 -21
- package/dist/{chunk-LYCJQOO2.js → chunk-ARL6X6Y4.js} +2 -2
- package/dist/{chunk-AXKSVN4U.js → chunk-BEILLR5Q.js} +5 -5
- package/dist/{chunk-GJHOU5V3.js → chunk-BRBZKIZG.js} +2 -2
- package/dist/{chunk-5VKSPEST.js → chunk-BTA5QOKD.js} +3 -3
- package/dist/{chunk-NWHU5G6R.js → chunk-CKDSPW35.js} +1 -1
- package/dist/{chunk-C2E4PWEN.js → chunk-FG564H3C.js} +5 -5
- package/dist/{chunk-A2KLVZBU.js → chunk-GH2HEEOH.js} +1 -1
- package/dist/{chunk-AVI3MGQO.js → chunk-GHQW2BBX.js} +1 -1
- package/dist/{chunk-2LCNMAWP.js → chunk-HA46L5FG.js} +1 -1
- package/dist/{chunk-OVNF4LLC.js → chunk-HH3BQG65.js} +1 -1
- package/dist/{chunk-SX3LYSWR.js → chunk-HUS6X5BJ.js} +2 -2
- package/dist/{chunk-7JBG43BX.js → chunk-I4V2YBMA.js} +30 -20
- package/dist/{chunk-TZMDRHWB.js → chunk-IAVT7R6O.js} +4 -4
- package/dist/{chunk-QXAPVAPR.js → chunk-JDYBPAPP.js} +2 -2
- package/dist/{chunk-AGNFPJSP.js → chunk-KY6H5L5O.js} +18 -8
- package/dist/{chunk-LEJWPGO7.js → chunk-LBEYOL5K.js} +3 -3
- package/dist/{chunk-N4KQMGEZ.js → chunk-NYMDS542.js} +2 -2
- package/dist/{chunk-TWFBOZQ5.js → chunk-OKJXZXYH.js} +4 -4
- package/dist/{chunk-EXKOPZQV.js → chunk-QELQ6Y4I.js} +6 -6
- package/dist/{chunk-OFKM35MX.js → chunk-RIKXE3T5.js} +5 -5
- package/dist/{chunk-LMYRR5MO.js → chunk-RPST2GNG.js} +2 -2
- package/dist/{chunk-UPA5KOOX.js → chunk-RQ3GCCHH.js} +1 -1
- package/dist/{chunk-5B6DLEVM.js → chunk-SH5JFBPO.js} +7 -7
- package/dist/{chunk-72N7GOLM.js → chunk-T664NDNT.js} +6 -6
- package/dist/{chunk-6CQXOTNL.js → chunk-TVDKDXW6.js} +4 -4
- package/dist/{chunk-S37IAT3A.js → chunk-UAINHP2C.js} +1 -1
- package/dist/{chunk-BEGMZKMG.js → chunk-UE2C4STC.js} +4 -4
- package/dist/{chunk-7XZQTJOD.js → chunk-V64BEF6E.js} +10 -4
- package/dist/{chunk-IXPH4EXK.js → chunk-VEVNGDTP.js} +1 -1
- package/dist/{chunk-D7MWJM2G.js → chunk-WHONZ53R.js} +2 -2
- package/dist/{chunk-QTL7VZVF.js → chunk-X2ZJL7GA.js} +3 -3
- package/dist/{chunk-LASKTDCR.js → chunk-ZEFNJCN3.js} +1 -1
- package/dist/{chunk-SODV2YMW.js → chunk-ZXQEBRCB.js} +2 -2
- package/dist/{claude-launcher-XX2MLBDW.js → claude-launcher-TG7CHE3N.js} +5 -5
- package/dist/{cli-K7AWWU6C.js → cli-DQXFGH6X.js} +112 -112
- package/dist/{command-GJKJ5WT4.js → command-JLHJ2TOH.js} +21 -21
- package/dist/{config-AB5Y73BU.js → config-2EADRNJB.js} +5 -5
- package/dist/{connect-cmd-FOD7PKVW.js → connect-cmd-VBEYNPAK.js} +8 -8
- package/dist/{container-start-XGKAKLUD.js → container-start-L5FDIAD7.js} +32 -32
- package/dist/{context-cleanup-VJXMM27E.js → context-cleanup-CEZSKNVL.js} +3 -3
- package/dist/{context-show-cmd-A226Q6K5.js → context-show-cmd-GMF7YMSN.js} +9 -9
- package/dist/{control-plane-launch-RJSAIFEP.js → control-plane-launch-4WRFVYNP.js} +6 -6
- package/dist/{demo-record-cmd-KM2UPWPL.js → demo-record-cmd-EGBXUDYP.js} +1 -1
- package/dist/{demo-voice-cmd-W4NYPCVL.js → demo-voice-cmd-KFNEU2GR.js} +14 -14
- package/dist/{dist-ZW7I72SD.js → dist-VPXROEZO.js} +2 -2
- package/dist/{docker-OQP6NU7P.js → docker-UP7EFFLL.js} +3 -3
- package/dist/{doctor-OXMOYIKK.js → doctor-UIQ22QZC.js} +22 -22
- package/dist/{emit-artifact-cmd-X2YWXLKQ.js → emit-artifact-cmd-NLCKM5TU.js} +13 -13
- package/dist/{emit-cmd-C3BUFAUR.js → emit-cmd-4G3443OJ.js} +6 -6
- package/dist/{emit-criteria-cmd-HYKOTFXG.js → emit-criteria-cmd-GO3TDUCG.js} +10 -10
- package/dist/{emit-demo-cmd-DTARV6RI.js → emit-demo-cmd-EJBQHFR2.js} +14 -14
- package/dist/{emit-finding-cmd-GSLYQC43.js → emit-finding-cmd-PHUHZLQ3.js} +10 -10
- package/dist/{emit-result-cmd-PKJH76NG.js → emit-result-cmd-UJSWTGDG.js} +12 -12
- package/dist/{emit-step-cmd-IW2Y4N67.js → emit-step-cmd-M2JEWJ4Q.js} +10 -10
- package/dist/{find-unit-2C6EK5YY.js → find-unit-H5DKNRBG.js} +7 -7
- package/dist/{findings-cmd-CFF2I3TU.js → findings-cmd-O3VCFA55.js} +10 -10
- package/dist/{fleet-readiness-ZSG4UDYR.js → fleet-readiness-SXIYBEWC.js} +8 -8
- package/dist/{governing-source-TUGE7QJY.js → governing-source-QEXH6MIZ.js} +13 -13
- package/dist/{hook-fast-5C4MQ5ZS.js → hook-fast-DPC75LFQ.js} +1 -1
- package/dist/{host-checks-L4GX6F3H.js → host-checks-BOLFMWX2.js} +30 -30
- package/dist/index.js +4 -4
- package/dist/{init-NSTWRPRM.js → init-7G3UO6J3.js} +21 -21
- package/dist/{init-WU2S3WRO.js → init-N6UZ5WCL.js} +21 -21
- package/dist/{init-cmd-H4HYM5V3.js → init-cmd-4LYUGPB3.js} +18 -18
- package/dist/{init-update-WOYX2AIO.js → init-update-4GUGHNS5.js} +17 -17
- package/dist/{layout-KRWLUGYZ.js → layout-7UOBWNYO.js} +4 -4
- package/dist/{login-browser-BAFZYJBR.js → login-browser-Q25ZNSQ3.js} +2 -2
- package/dist/{logs-E2O53NUI.js → logs-HUENB7U4.js} +1 -0
- package/dist/{loop-GQLSSBQB.js → loop-GRDMQM2J.js} +34 -34
- package/dist/{machine-IRBCGRUO.js → machine-QSGONNDX.js} +21 -21
- package/dist/{machine-skills-YVS4ZYCT.js → machine-skills-KYN7XJEJ.js} +4 -4
- package/dist/{runner-env-TYGE6BFU.js → runner-env-K4DOSDUV.js} +7 -7
- package/dist/{runner-identity-B2MZQFYN.js → runner-identity-4RVY2MHX.js} +3 -3
- package/dist/{runner-key-NPPEGU6H.js → runner-key-DIGTV3G5.js} +21 -21
- package/dist/{session-sender-ZS4OIE3M.js → session-sender-N6QHL35T.js} +13 -13
- package/dist/{spec-cmd-N45YF6UL.js → spec-cmd-EZGRJPUQ.js} +11 -11
- package/dist/{starter-pack-QWDE6FDK.js → starter-pack-KB3YH4KX.js} +5 -5
- package/dist/{status-EP6QSFRY.js → status-NA5DLUXD.js} +30 -30
- package/dist/{sync-cmd-VCB4YDCB.js → sync-cmd-NEAZMEIL.js} +12 -12
- package/dist/{update-steps-BJB7NL6L.js → update-steps-7HZZPWZE.js} +31 -31
- package/dist/{watch-XU2AUR6Z.js → watch-FOY5LSSS.js} +12 -12
- package/dist/{work-claim-cmd-WEP3OWAU.js → work-claim-cmd-EJT55FZY.js} +15 -15
- package/dist/{work-cmd-DWR27TKQ.js → work-cmd-KLPPJG4U.js} +10 -10
- package/dist/{work-comment-cmd-HSDVPYWM.js → work-comment-cmd-TT6TFF6Q.js} +11 -11
- package/dist/{work-demo-cmd-3EQYHRBP.js → work-demo-cmd-22PLEX4X.js} +10 -10
- package/dist/{work-logs-cmd-3YACDH7Y.js → work-logs-cmd-DWK5AYLK.js} +10 -10
- package/dist/{work-open-pr-cmd-MHVTTTLD.js → work-open-pr-cmd-MKHZBGA6.js} +11 -11
- package/dist/{work-pr-cmd-XETSFFM2.js → work-pr-cmd-P7PRHAJD.js} +10 -10
- package/dist/{work-proofs-cmd-RYQ7Y6KO.js → work-proofs-cmd-CNQR7RCD.js} +12 -12
- package/dist/{work-proofs-record-IC3RWDDQ.js → work-proofs-record-GICELEJQ.js} +26 -21
- package/dist/{work-stop-cmd-4BE2B7TY.js → work-stop-cmd-U42TFT7X.js} +10 -10
- package/package.json +1 -1
- package/skill-pack/maintained/outerlayer-amend/SKILL.md +2 -3
- package/skill-pack/maintained/outerlayer-build/SKILL.md +3 -1
- package/skill-pack/maintained/outerlayer-build/references/evidence.md +7 -0
- /package/dist/{chunk-DINRXUQA.js → chunk-IXRUVR25.js} +0 -0
|
@@ -1,33 +1,33 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { itemsSentence, criteriaOf, hostItemsOf, loadCitationFinder, MAX_TEST_FILE_BYTES, MAX_TEST_FILES, testFileMatcher, criterionInputs, planCriteria, parseJudgeAnswer, inCriteriaOrder, oneLineReason, judgedItems } from './chunk-
|
|
3
|
+
import { itemsSentence, criteriaOf, hostItemsOf, loadCitationFinder, MAX_TEST_FILE_BYTES, MAX_TEST_FILES, testFileMatcher, criterionInputs, planCriteria, parseJudgeAnswer, inCriteriaOrder, oneLineReason, judgedItems } from './chunk-UE2C4STC.js';
|
|
4
4
|
import { readsJobState, READ_JOB_STATE_FORMATS, jobStateFormatOf } from './chunk-ZVB57WI6.js';
|
|
5
5
|
import { HELPER_PATH, DOCKERD_LOG, HELPER_RECORD } from './chunk-XDCD4GD5.js';
|
|
6
6
|
import { zodProblem } from './chunk-I3LTIAOR.js';
|
|
7
|
-
import { senderPidfile } from './chunk-
|
|
8
|
-
import { installScrubContext } from './chunk-
|
|
7
|
+
import { senderPidfile } from './chunk-6MLX26T4.js';
|
|
8
|
+
import { installScrubContext } from './chunk-FG564H3C.js';
|
|
9
9
|
import { writeDockerClientConfig } from './chunk-BUVDDPOM.js';
|
|
10
|
-
import { upgradedStarterText } from './chunk-
|
|
11
|
-
import { ADDED_USER, shellQuote, GH_CONFIG_YML, ghHostsYml, firstLine, hasClaudeCredential, AssetError, obtainImage, ensureRootfs, makeBuildsDirPrivate, gitRemoteFor, startServicesFor, createLeaseChannel, createBuildDisk, machineConfig, startJailedInto, resolveAgentUser, AgentUserError, runBuildSteps, runtimeStepInput, keepRuntimeStep, createContainerRuntime, containerSenderCommand, hostCommandEnvironment, execArgv, signalInContainer, startHostServices, LEASE_SECONDS, managedBuildSettingsFor, stopContainer, cleanupContainer, outOfMemoryReason, closeHostBuild, dropManagedClaudeKey, dropManagedBuildSettings, startCheckContainer, ranRuntimeStep, provisionRuntimes, lifecycleSteps, lifecycleFailureReason, writeEvalInput, DeliveryFailure, EVAL_INPUT_NAME, syncInContainer, copyTranscriptsFromContainer, MANAGED_UNJAILED_REASON, senderAliveScript, managedMachineLimits, withFactoryHosts, helperFirecrackerNote, said, managedClaudeKeyValues, managedBuildSettingValues, stopJailed, deleteBuildDisk, managedClaudeKeyFor, ROOT_DISK_ID_PREFIX, copyTranscripts, containerJudgeEnvironment, senderSignalScript, copyJudgeTree } from './chunk-
|
|
12
|
-
import { fetchCommit, readBranchHead, diffBetween } from './chunk-
|
|
10
|
+
import { upgradedStarterText } from './chunk-IAVT7R6O.js';
|
|
11
|
+
import { ADDED_USER, shellQuote, GH_CONFIG_YML, ghHostsYml, firstLine, hasClaudeCredential, AssetError, obtainImage, ensureRootfs, makeBuildsDirPrivate, gitRemoteFor, startServicesFor, createLeaseChannel, createBuildDisk, machineConfig, startJailedInto, resolveAgentUser, AgentUserError, runBuildSteps, runtimeStepInput, keepRuntimeStep, createContainerRuntime, containerSenderCommand, hostCommandEnvironment, execArgv, signalInContainer, startHostServices, LEASE_SECONDS, managedBuildSettingsFor, stopContainer, cleanupContainer, recordProofsInContainer, PROOFS_LOG, outOfMemoryReason, closeHostBuild, dropManagedClaudeKey, dropManagedBuildSettings, startCheckContainer, ranRuntimeStep, provisionRuntimes, lifecycleSteps, lifecycleFailureReason, writeEvalInput, DeliveryFailure, EVAL_INPUT_NAME, syncInContainer, copyTranscriptsFromContainer, MANAGED_UNJAILED_REASON, senderAliveScript, managedMachineLimits, withFactoryHosts, helperFirecrackerNote, said, managedClaudeKeyValues, managedBuildSettingValues, stopJailed, deleteBuildDisk, RECORD_PROOFS_ARGV, managedClaudeKeyFor, ROOT_DISK_ID_PREFIX, copyTranscripts, containerJudgeEnvironment, senderSignalScript, copyJudgeTree } from './chunk-I4V2YBMA.js';
|
|
12
|
+
import { fetchCommit, readBranchHead, diffBetween } from './chunk-KY6H5L5O.js';
|
|
13
13
|
import { waitForAgent, vmExecArgs } from './chunk-NPTEYMBW.js';
|
|
14
14
|
import { socketPathProblem, vsockLinks, LEASE_LINK, linkVsockSockets } from './chunk-DKIZDYUX.js';
|
|
15
|
-
import { describeCallFailure, resolveGoverningSource, prefetchGovernedContext, refusalCode, removeStagedContext, stageGovernedContext, pinnedSourceOf, commandWithShim, logStamp, createRunnerLog,
|
|
16
|
-
import { imageBuildOf, isBuiltinContainer, isBuiltinProcess, isBuiltinVm, egressSummary, DEFAULT_CHECK_TIME_LIMIT_MINUTES, optionalEgress } from './chunk-
|
|
17
|
-
import { formatBytes, DEFAULT_CACHE_DISK, allocatedBytes } from './chunk-
|
|
18
|
-
import { HASH_ARGV, parseProgramHash, JUDGE_PROGRAM, writeJobFile, readJobFile, parseSize, identityScript, identityArgs, parseIdentity, mountableHome, homeCopyScript, homeCopyArgs, childEnvironment, withAnswerProtocol, judgeCommand, MAX_REPORT_BYTES, JUDGE_MAX_TURNS, JUDGE_DIR, COMMAND_DIR, MAX_ITEMS_BYTES } from './chunk-
|
|
15
|
+
import { describeCallFailure, resolveGoverningSource, prefetchGovernedContext, refusalCode, removeStagedContext, stageGovernedContext, pinnedSourceOf, commandWithShim, logStamp, createRunnerLog, formatDuration, removeKeptContext, retrySend, formatClock, keptContextTree, WORKFLOW_PERMISSION_REASON } from './chunk-ZXQEBRCB.js';
|
|
16
|
+
import { imageBuildOf, isBuiltinContainer, isBuiltinProcess, isBuiltinVm, egressSummary, DEFAULT_CHECK_TIME_LIMIT_MINUTES, optionalEgress } from './chunk-JDYBPAPP.js';
|
|
17
|
+
import { formatBytes, DEFAULT_CACHE_DISK, allocatedBytes } from './chunk-47SFTQA5.js';
|
|
18
|
+
import { HASH_ARGV, parseProgramHash, JUDGE_PROGRAM, writeJobFile, readJobFile, parseSize, identityScript, identityArgs, parseIdentity, mountableHome, homeCopyScript, homeCopyArgs, childEnvironment, withAnswerProtocol, judgeCommand, MAX_REPORT_BYTES, JUDGE_MAX_TURNS, JUDGE_DIR, COMMAND_DIR, MAX_ITEMS_BYTES } from './chunk-HA46L5FG.js';
|
|
19
19
|
import { CLAUDE_CODE_VERSION, FIRECRACKER_VERSION } from './chunk-D3CT6XQ4.js';
|
|
20
20
|
import { isSameProcess, startTimeOf } from './chunk-JBJTC3UU.js';
|
|
21
|
-
import { WorkCommandError, postJson, isSignatureRefusal, getJson } from './chunk-
|
|
22
|
-
import { planArtifactUpload } from './chunk-
|
|
21
|
+
import { WorkCommandError, postJson, isSignatureRefusal, getJson } from './chunk-T664NDNT.js';
|
|
22
|
+
import { planArtifactUpload } from './chunk-VEVNGDTP.js';
|
|
23
23
|
import { readCloudConfig } from './chunk-PJDQPF5N.js';
|
|
24
24
|
import { signerFor } from './chunk-VJQQVTCS.js';
|
|
25
|
-
import { AGENTS_SKILLS_BASE, OUTERLAYER_SKILLS_BASE, resolvePackRoot } from './chunk-
|
|
26
|
-
import { scrubText } from './chunk-
|
|
25
|
+
import { AGENTS_SKILLS_BASE, OUTERLAYER_SKILLS_BASE, resolvePackRoot } from './chunk-HH3BQG65.js';
|
|
26
|
+
import { scrubText } from './chunk-GH2HEEOH.js';
|
|
27
27
|
import { MAINTAINED_SKILLS } from './chunk-CDDED64E.js';
|
|
28
28
|
import { resolveVersion } from './chunk-RA3O54FC.js';
|
|
29
|
-
import { parsePolicy } from './chunk-
|
|
30
|
-
import { CheckItemsSchema } from './chunk-
|
|
29
|
+
import { parsePolicy } from './chunk-2EEW6FJN.js';
|
|
30
|
+
import { CheckItemsSchema } from './chunk-IXRUVR25.js';
|
|
31
31
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
32
32
|
import { RUNNER_FILE_MODE, runnerDir, buildDir, vsockPath, jobConsolePath } from './chunk-2CW2QMSG.js';
|
|
33
33
|
import { JOB_MOUNT, repositoriesOf, primaryOf, buildEnvironment, CHECKOUT_DIR, claudeCredential, AGENT_CREDENTIAL_MISSING, sharedUserEnvironment, headerVariables, authorEnvironment, withTunnelRecord, commitIdentityRecord, RELAY_PORT, repositoryPath, lifecycleWorkdir, CHECK_ITEMS_FILE, withMiseVariables, fdName, BUILD_HOME, CLAUDE_CREDENTIAL_VARIABLES, currentClaudeCredential, removedClaudeCredentialValues, managedClaudeCredential, checkEnvironment, EVAL_INPUT_DIR } from './chunk-4N7BQBO4.js';
|
|
@@ -668,7 +668,7 @@ async function provisionMicroVm(input) {
|
|
|
668
668
|
removeStagedContext: () => removeStagedContext(buildDir2),
|
|
669
669
|
keepIn: jobDir,
|
|
670
670
|
...input.requireBuildSkill === true ? { requireBuildSkill: true } : {},
|
|
671
|
-
// A
|
|
671
|
+
// A build on the universal image, or on an image built from it, chooses and installs its runtimes.
|
|
672
672
|
...runtimeStepInput(report, services)
|
|
673
673
|
});
|
|
674
674
|
if (!steps.ok) return bail(steps.reason, steps.aborted === true);
|
|
@@ -780,9 +780,15 @@ function isRunning(runtime, state) {
|
|
|
780
780
|
return vmAlive(runtime, state);
|
|
781
781
|
}
|
|
782
782
|
async function syncInMicroVm(input) {
|
|
783
|
+
return runCliInMicroVm(input, ["outerlayer", "sync"], "sync.log", "the microVM is gone, so its sessions cannot be read");
|
|
784
|
+
}
|
|
785
|
+
async function recordProofsInMicroVm(input) {
|
|
786
|
+
return runCliInMicroVm(input, [...RECORD_PROOFS_ARGV], PROOFS_LOG, "the microVM is gone, so its proofs cannot be recorded");
|
|
787
|
+
}
|
|
788
|
+
async function runCliInMicroVm(input, argv, logName, goneReason) {
|
|
783
789
|
const { runtime, job } = input;
|
|
784
790
|
const state = job.microvm;
|
|
785
|
-
if (!isRunning(runtime, state)) return { ok: false, reason:
|
|
791
|
+
if (!isRunning(runtime, state)) return { ok: false, reason: goneReason };
|
|
786
792
|
try {
|
|
787
793
|
const env = buildEnvironment({
|
|
788
794
|
config: input.config,
|
|
@@ -800,12 +806,12 @@ async function syncInMicroVm(input) {
|
|
|
800
806
|
factoryVariables: factoryVariablesOf(input.config, input.jobDir)
|
|
801
807
|
});
|
|
802
808
|
const result = await runtime.vm.exec(state.vsockPath, {
|
|
803
|
-
argv
|
|
809
|
+
argv,
|
|
804
810
|
user: state.agentUser ?? ADDED_USER,
|
|
805
811
|
cwd: job.workdir ?? CHECKOUT_DIR,
|
|
806
812
|
env: execEnvironment(state.imageEnv, env)
|
|
807
813
|
});
|
|
808
|
-
appendFileSync(join(input.jobDir,
|
|
814
|
+
appendFileSync(join(input.jobDir, logName), result.stdout + result.stderr);
|
|
809
815
|
return result.status === 0 ? { ok: true } : { ok: false, reason: `exit ${result.status}` };
|
|
810
816
|
} catch (err) {
|
|
811
817
|
return { ok: false, reason: describeCallFailure(err) };
|
|
@@ -2544,6 +2550,52 @@ async function runSyncViaExec(config, job, jobDirPath, spawnFn = spawn) {
|
|
|
2544
2550
|
return { ok: false, reason: describeCallFailure(err) };
|
|
2545
2551
|
}
|
|
2546
2552
|
}
|
|
2553
|
+
function runRecordProofs(config, job, jobDirPath, spawnFn = spawn) {
|
|
2554
|
+
return new Promise((resolve) => {
|
|
2555
|
+
const env = jobEnv(config, job.item, job.itemKey, jobDirPath, process.env, job.branch, job.commitIdentity?.author);
|
|
2556
|
+
let fd;
|
|
2557
|
+
let child;
|
|
2558
|
+
try {
|
|
2559
|
+
fd = openSync(join(jobDirPath, PROOFS_LOG), "a", RUNNER_FILE_MODE);
|
|
2560
|
+
} catch (err) {
|
|
2561
|
+
resolve({ ok: false, reason: describeCallFailure(err) });
|
|
2562
|
+
return;
|
|
2563
|
+
}
|
|
2564
|
+
try {
|
|
2565
|
+
child = spawnFn(process.execPath, [process.argv[1] ?? "outerlayer", ...RECORD_PROOFS_ARGV.slice(1)], { cwd: job.workdir, env, stdio: ["ignore", fd, fd] });
|
|
2566
|
+
} catch (err) {
|
|
2567
|
+
closeSync(fd);
|
|
2568
|
+
resolve({ ok: false, reason: describeCallFailure(err) });
|
|
2569
|
+
return;
|
|
2570
|
+
}
|
|
2571
|
+
child.on("exit", (code) => {
|
|
2572
|
+
closeSync(fd);
|
|
2573
|
+
resolve(code === 0 ? { ok: true } : { ok: false, reason: `exit ${code ?? "by signal"}` });
|
|
2574
|
+
});
|
|
2575
|
+
child.on("error", (err) => {
|
|
2576
|
+
closeSync(fd);
|
|
2577
|
+
resolve({ ok: false, reason: describeCallFailure(err) });
|
|
2578
|
+
});
|
|
2579
|
+
});
|
|
2580
|
+
}
|
|
2581
|
+
async function runRecordProofsViaExec(config, job, jobDirPath, spawnFn = spawn) {
|
|
2582
|
+
const build = job.build;
|
|
2583
|
+
const env = hostCommandEnvironment(jobEnv(config, job.item, job.itemKey, jobDirPath, process.env, job.branch, job.commitIdentity?.author), build, config, job.commitIdentity?.hooksPath);
|
|
2584
|
+
try {
|
|
2585
|
+
const result = await runHook(build.exec, env, jobDirPath, join(jobDirPath, PROOFS_LOG), spawnFn, void 0, execArgv(job.workdir, [...RECORD_PROOFS_ARGV]));
|
|
2586
|
+
return result.code === 0 ? { ok: true } : { ok: false, reason: `exit ${result.code}` };
|
|
2587
|
+
} catch (err) {
|
|
2588
|
+
return { ok: false, reason: describeCallFailure(err) };
|
|
2589
|
+
}
|
|
2590
|
+
}
|
|
2591
|
+
var RECORDED_PROOFS = /* @__PURE__ */ new Set(["screenshot", "video", "report", "log", "file"]);
|
|
2592
|
+
async function declaresRecordedProof(config, item, fetchImpl) {
|
|
2593
|
+
try {
|
|
2594
|
+
return (criteriaOf(await readWorkItem(config, item, fetchImpl)) ?? []).some((criterion) => criterion.proof !== null && RECORDED_PROOFS.has(criterion.proof));
|
|
2595
|
+
} catch {
|
|
2596
|
+
return true;
|
|
2597
|
+
}
|
|
2598
|
+
}
|
|
2547
2599
|
var MAX_NAMED_SPOOLED = 20;
|
|
2548
2600
|
function spooledArtifactIds(home) {
|
|
2549
2601
|
try {
|
|
@@ -2556,7 +2608,7 @@ function leaseExpiry(job, fallback) {
|
|
|
2556
2608
|
const base = Date.parse(job.lastRenewAt ?? job.startedAt);
|
|
2557
2609
|
return new Date((Number.isFinite(base) ? base : fallback.getTime()) + LEASE_SECONDS * 1e3);
|
|
2558
2610
|
}
|
|
2559
|
-
var TEARDOWN_STAGES = ["judge", "checks", "sync", "cleanup", "report"];
|
|
2611
|
+
var TEARDOWN_STAGES = ["proofs", "judge", "checks", "sync", "cleanup", "report"];
|
|
2560
2612
|
function inTeardown(job) {
|
|
2561
2613
|
return job.stage !== void 0 && TEARDOWN_STAGES.includes(job.stage);
|
|
2562
2614
|
}
|
|
@@ -2694,6 +2746,21 @@ async function finishJob(job, jobDirPath, outcome, config, deps, ending) {
|
|
|
2694
2746
|
log.error(`${tag} removing an earlier attempt's check environment failed: ${describeCallFailure(err)} \xB7 continuing`);
|
|
2695
2747
|
}
|
|
2696
2748
|
}
|
|
2749
|
+
if (outcome === "ok" && !job.cleanupRan && job.proofsRan !== true && !valuesNotHeld && job.workdir !== void 0 && job.itemKey !== void 0 && await declaresRecordedProof(config, job.item, deps.fetchImpl)) {
|
|
2750
|
+
setStage(job, jobDirPath, "proofs");
|
|
2751
|
+
job.proofsRan = true;
|
|
2752
|
+
writeJobFile(jobFilePath, job);
|
|
2753
|
+
log.line(`${tag} proofs started`);
|
|
2754
|
+
const startedMs = now().getTime();
|
|
2755
|
+
try {
|
|
2756
|
+
const recorded = build !== void 0 ? await recordProofsInContainer({ config, runtime: build.runtime, job, jobDir: jobDirPath, log: (line) => log.line(`${tag} ${line}`) }) : vmBuild !== void 0 ? await recordProofsInMicroVm({ config, runtime: vmBuild.runtime, job, jobDir: jobDirPath }) : job.build?.exec !== void 0 ? await runRecordProofsViaExec(config, job, jobDirPath, spawnFn) : await runRecordProofs(config, job, jobDirPath, spawnFn);
|
|
2757
|
+
const took = formatDuration(now().getTime() - startedMs);
|
|
2758
|
+
if (recorded.ok) log.line(`${tag} proofs ok (${took}) \xB7 see ${PROOFS_LOG}`);
|
|
2759
|
+
else log.error(`${tag} proofs not all current (${took}): ${recorded.reason ?? "no reason given"} \xB7 see ${PROOFS_LOG} \xB7 continuing`);
|
|
2760
|
+
} catch (err) {
|
|
2761
|
+
log.error(`${tag} the host's proof recording stopped: ${describeCallFailure(err)} \xB7 continuing`);
|
|
2762
|
+
}
|
|
2763
|
+
}
|
|
2697
2764
|
if (valuesNotHeld && outcome === "ok" && !job.cleanupRan) log.error(`${tag} the host's judge and checks skipped: ${VALUES_NOT_HELD}`);
|
|
2698
2765
|
if (outcome === "ok" && !job.cleanupRan && job.judgeRan !== true && !valuesNotHeld) {
|
|
2699
2766
|
setStage(job, jobDirPath, "judge");
|
|
@@ -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-HH3BQG65.js';
|
|
4
|
+
import { normalizePath, CONTEXT_PIN_FILENAME } from './chunk-2EEW6FJN.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
|
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { staleBuildRefusal, staleBuildWarning, detectCi } from './chunk-
|
|
3
|
+
import { staleBuildRefusal, staleBuildWarning, detectCi } from './chunk-FG564H3C.js';
|
|
4
4
|
import { launchRefusalForSession } from './chunk-ESVW4MJY.js';
|
|
5
5
|
import { detectActiveSession } from './chunk-IP7BIBXJ.js';
|
|
6
|
-
import { autoConnect } from './chunk-
|
|
6
|
+
import { autoConnect } from './chunk-BRBZKIZG.js';
|
|
7
7
|
import { C } from './chunk-ANPNT6PM.js';
|
|
8
|
-
import { readEffectiveArtifactSpoolState, localArtifactIds, isArtifactTombstoned, artifactBlobsDir, appendArtifactRecord, artifactsSpoolPath, findPendingArtifactRecord, sanitizeTerminal, appendArtifactTombstone } from './chunk-
|
|
8
|
+
import { readEffectiveArtifactSpoolState, localArtifactIds, isArtifactTombstoned, artifactBlobsDir, appendArtifactRecord, artifactsSpoolPath, findPendingArtifactRecord, sanitizeTerminal, appendArtifactTombstone } from './chunk-VEVNGDTP.js';
|
|
9
9
|
import { resolveGatewayCredentials, defaultFetch, unauthorizedMessage } from './chunk-IZKUPAXF.js';
|
|
10
|
-
import { resolveRepoIdentity } from './chunk-
|
|
10
|
+
import { resolveRepoIdentity } from './chunk-GH2HEEOH.js';
|
|
11
11
|
import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
|
|
12
12
|
import { cliInvocation } from './chunk-CRB3POP4.js';
|
|
13
|
-
import { ARTIFACT_MAX_CAPTION_LENGTH, ArtifactCriterionIdSchema, ARTIFACT_MAX_BYTES, ARTIFACT_MAX_FILENAME_LENGTH, mediaTypeForArtifactPath, inferArtifactKind, ARTIFACT_MAX_REPLACES_TARGETS, parseTestSelector, parseJunit, bindTests } from './chunk-
|
|
13
|
+
import { ARTIFACT_MAX_CAPTION_LENGTH, ArtifactCriterionIdSchema, ARTIFACT_MAX_BYTES, ARTIFACT_MAX_FILENAME_LENGTH, mediaTypeForArtifactPath, inferArtifactKind, ARTIFACT_MAX_REPLACES_TARGETS, parseTestSelector, parseJunit, bindTests } from './chunk-IXRUVR25.js';
|
|
14
14
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
15
15
|
import { createHash, randomUUID } from 'crypto';
|
|
16
16
|
import { statSync, readFileSync, mkdirSync, existsSync, writeFileSync, renameSync, unlinkSync } from 'fs';
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { fetchFactories, selectFactory, saveFactoryConnection, autoConnectedLine } from './chunk-
|
|
3
|
+
import { fetchFactories, selectFactory, saveFactoryConnection, autoConnectedLine } from './chunk-26WUFKYZ.js';
|
|
4
4
|
import { resolveGatewayCredentials } from './chunk-IZKUPAXF.js';
|
|
5
5
|
import { readCloudConfig } from './chunk-PJDQPF5N.js';
|
|
6
6
|
import { findGitDirs, readRepoConnection } from './chunk-BJ3KTMDH.js';
|
|
7
|
-
import { resolveRepoIdentity } from './chunk-
|
|
7
|
+
import { resolveRepoIdentity } from './chunk-GH2HEEOH.js';
|
|
8
8
|
import { cliInvocation } from './chunk-CRB3POP4.js';
|
|
9
9
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
10
10
|
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { launchRefusalForSession } from './chunk-ESVW4MJY.js';
|
|
4
4
|
import { detectActiveSession } from './chunk-IP7BIBXJ.js';
|
|
5
|
-
import { autoConnect } from './chunk-
|
|
5
|
+
import { autoConnect } from './chunk-BRBZKIZG.js';
|
|
6
6
|
import { C } from './chunk-ANPNT6PM.js';
|
|
7
7
|
import { resolveGatewayCredentials, defaultFetch, unauthorizedMessage } from './chunk-IZKUPAXF.js';
|
|
8
|
-
import { resolveRepoIdentity } from './chunk-
|
|
8
|
+
import { resolveRepoIdentity } from './chunk-GH2HEEOH.js';
|
|
9
9
|
import { launchedItemForSession } from './chunk-T2Q7ISPE.js';
|
|
10
10
|
import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
|
|
11
|
-
import { CriteriaListSchema } from './chunk-
|
|
11
|
+
import { CriteriaListSchema } from './chunk-IXRUVR25.js';
|
|
12
12
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
13
13
|
import { readFileSync } from 'fs';
|
|
14
14
|
|
|
@@ -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-IXRUVR25.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,23 +1,23 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { uploadSpooledSteps } from './chunk-
|
|
3
|
+
import { uploadSpooledSteps } from './chunk-7XDF7PNF.js';
|
|
4
4
|
import { LaunchFilter } from './chunk-ESVW4MJY.js';
|
|
5
5
|
import { RepoFilter } from './chunk-TBT347UY.js';
|
|
6
6
|
import { C } from './chunk-ANPNT6PM.js';
|
|
7
|
-
import { migrateLegacyArtifactSidecars, planArtifactUpload, artifactsStatePath, sanitizeTerminal, acquireArtifactSpoolLock, artifactBlobsDir, resolveArtifactTurnIndex, isArtifactTombstoned, ARTIFACT_RETRY_MAX_AGE_MS, writeArtifactSpoolState, reclaimUnneededArtifactBlobs, neededArtifactShas } from './chunk-
|
|
7
|
+
import { migrateLegacyArtifactSidecars, planArtifactUpload, artifactsStatePath, sanitizeTerminal, acquireArtifactSpoolLock, artifactBlobsDir, resolveArtifactTurnIndex, isArtifactTombstoned, ARTIFACT_RETRY_MAX_AGE_MS, writeArtifactSpoolState, reclaimUnneededArtifactBlobs, neededArtifactShas } from './chunk-VEVNGDTP.js';
|
|
8
8
|
import { cliFetch, resolveGatewayCredentials, defaultFetch, unauthorizedMessage } from './chunk-IZKUPAXF.js';
|
|
9
9
|
import { readCloudConfig, cloudConfigPath, writeCloudConfig } from './chunk-PJDQPF5N.js';
|
|
10
10
|
import { signerFor, signRunnerRequest } from './chunk-VJQQVTCS.js';
|
|
11
|
-
import { writeSyncStatus, spoolDir } from './chunk-
|
|
11
|
+
import { writeSyncStatus, spoolDir } from './chunk-WHONZ53R.js';
|
|
12
12
|
import { readLatestProvenanceForSession, readContextProvenance } from './chunk-ZJSNLVCE.js';
|
|
13
13
|
import { hookExecSpoolPath } from './chunk-2O5KA67H.js';
|
|
14
14
|
import { applyReportedCost } from './chunk-BKO6JEZI.js';
|
|
15
15
|
import { readRepoConnection, findGitDirs } from './chunk-BJ3KTMDH.js';
|
|
16
|
-
import { setCustomScrubbers, setLocalIdentity, tailTranscript, enrichSessionRepo, scanAll, setRepoRoot, resolveRepoIdentity, sessionIdFromPath, scrubDeep, SOURCE_ADAPTERS } from './chunk-
|
|
16
|
+
import { setCustomScrubbers, setLocalIdentity, tailTranscript, enrichSessionRepo, scanAll, setRepoRoot, resolveRepoIdentity, sessionIdFromPath, scrubDeep, SOURCE_ADAPTERS } from './chunk-GH2HEEOH.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-IXRUVR25.js';
|
|
21
21
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
22
22
|
import { SCRUB_ENV_VARIABLE } from './chunk-4N7BQBO4.js';
|
|
23
23
|
import { dirname, basename, join, sep } from 'path';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { EVENT_TYPES, isHumanUserTurn, INPUT_BAND_BOUNDARIES, parseAgentSession, SCHEMA_VERSION, SPEED_MAX_LENGTH, inputBandOf, BUCKET_MODEL_MAX_LENGTH } from './chunk-
|
|
3
|
+
import { EVENT_TYPES, isHumanUserTurn, INPUT_BAND_BOUNDARIES, parseAgentSession, SCHEMA_VERSION, SPEED_MAX_LENGTH, inputBandOf, BUCKET_MODEL_MAX_LENGTH } from './chunk-IXRUVR25.js';
|
|
4
4
|
import { createHash } from 'crypto';
|
|
5
5
|
import { readFileSync, readdirSync, statSync, mkdirSync, copyFileSync, renameSync, unlinkSync, writeFileSync, stat as stat$1, unwatchFile, watchFile, watch as watch$1 } from 'fs';
|
|
6
6
|
import { type, homedir } from 'os';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { escapeUnitPath, UNIT_MARKER, DEFAULT_UNIT_NAME } from './chunk-
|
|
3
|
+
import { escapeUnitPath, UNIT_MARKER, DEFAULT_UNIT_NAME } from './chunk-NYMDS542.js';
|
|
4
4
|
import { inspectService, realInspectProbes } from './chunk-4N7BQBO4.js';
|
|
5
5
|
import { realpathSync, readFileSync, readdirSync } from 'fs';
|
|
6
6
|
import { resolve, dirname, join } from 'path';
|
|
@@ -3,7 +3,7 @@ import { createRequire } from 'node:module';
|
|
|
3
3
|
import { resolveDevcontainerCli, devcontainerBuildInvocation, universalImagePending, RecipeError } from './chunk-CM4J53WZ.js';
|
|
4
4
|
import { universalImagePinned, UNIVERSAL_IMAGE, BUILDKIT_IMAGE } from './chunk-D3CT6XQ4.js';
|
|
5
5
|
import { ensureHostKey } from './chunk-VJQQVTCS.js';
|
|
6
|
-
import { compareVersions } from './chunk-
|
|
6
|
+
import { compareVersions } from './chunk-GH2HEEOH.js';
|
|
7
7
|
import { RUNNER_DIR_MODE, RUNNER_FILE_MODE, runnerDir, jobsDir } from './chunk-2CW2QMSG.js';
|
|
8
8
|
import { CLAUDE_PORT, BUILD_HOME, JOB_MOUNT, GATEWAY_PORT, GATEWAY_SOCKET, CLAUDE_SOCKET, RELAY_PORT, DESTINATION_BASE_PORT } from './chunk-4N7BQBO4.js';
|
|
9
9
|
import { JOIN_DIR, RELAY_ID, JOIN_SOCKET, TARGET_GATEWAY, TARGET_CLAUDE, destinationTarget, RELAY_USER } from './chunk-MESOOLF4.js';
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { MAINTAINED_SKILLS } from './chunk-CDDED64E.js';
|
|
4
4
|
import { resolvePackageVersion } from './chunk-RA3O54FC.js';
|
|
5
|
-
import { splitRawFile } from './chunk-
|
|
5
|
+
import { splitRawFile } from './chunk-2EEW6FJN.js';
|
|
6
6
|
import { existsSync, readFileSync, mkdirSync, writeFileSync, readdirSync } from 'fs';
|
|
7
7
|
import { join, dirname } from 'path';
|
|
8
8
|
import { fileURLToPath } from 'url';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { stripTerminalControls } from './chunk-
|
|
3
|
+
import { stripTerminalControls } from './chunk-AJZWVXXA.js';
|
|
4
4
|
import { tagToPull, imageTag, pullInstruction, readUpdateStatus, runnerImageVersion } from './chunk-ORENXMHA.js';
|
|
5
5
|
import { readFileSync } from 'fs';
|
|
6
6
|
|
|
@@ -55,7 +55,7 @@ function envNamesOf(row, imageEnv) {
|
|
|
55
55
|
return [...new Set(names)].sort();
|
|
56
56
|
}
|
|
57
57
|
async function readOwnContainer(deps = {}) {
|
|
58
|
-
const run = deps.run ?? (await import('./docker-
|
|
58
|
+
const run = deps.run ?? (await import('./docker-UP7EFFLL.js')).spawnRun;
|
|
59
59
|
const ids = candidateIds(deps.env ?? process.env, deps.readFile ?? ((path) => readFileSync(path, "utf8")));
|
|
60
60
|
if (ids.length === 0) return { ok: false, reason: "the runner cannot tell which container it runs in: HOSTNAME is empty and /proc/self/mountinfo names none" };
|
|
61
61
|
let problem = "";
|
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { sha256OfFile, downloadPinned, VoiceDownloadError } from './chunk-2PGI6RDE.js';
|
|
4
|
-
import { readDefaultBranchHead, cloneRepository, buildRepositoryImage, prepareImageBuild, KEY_PREFIX, TAG_HOST, SHARED_OWNER, SHARED_NAME, metadataFromLabels, writeRecord } from './chunk-
|
|
5
|
-
import { FETCHED_DIR, toolsDockerfile, FETCHED_FFMPEG, FETCHED_GH, FETCHED_TINI, FETCHED_HEADLESS_SHELL, FETCHED_PLAYWRIGHT_FFMPEG, FETCHED_VOICE_DIR } from './chunk-
|
|
4
|
+
import { readDefaultBranchHead, cloneRepository, buildRepositoryImage, prepareImageBuild, KEY_PREFIX, TAG_HOST, SHARED_OWNER, SHARED_NAME, universalBase, metadataFromLabels, writeRecord } from './chunk-KY6H5L5O.js';
|
|
5
|
+
import { FETCHED_DIR, toolsDockerfile, FETCHED_FFMPEG, FETCHED_GH, FETCHED_TINI, FETCHED_HEADLESS_SHELL, FETCHED_PLAYWRIGHT_FFMPEG, FETCHED_VOICE_DIR } from './chunk-V64BEF6E.js';
|
|
6
6
|
import { currentCliBuild } from './chunk-OGFGZQA3.js';
|
|
7
7
|
import { runExec, execCapture, waitForAgent } from './chunk-NPTEYMBW.js';
|
|
8
8
|
import { GUEST_CID, linkVsockSockets } from './chunk-DKIZDYUX.js';
|
|
9
|
-
import { retrySend, describeCallFailure, keepStagedContext, controlPlaneTokenFailure, refusalCode, resolveGoverningSource, prefetchGovernedContext, removeStagedContext, stageGovernedContext, pinnedSourceOf, commandWithShim, shimScript, WORKFLOW_PERMISSION_REASON } from './chunk-
|
|
9
|
+
import { retrySend, describeCallFailure, keepStagedContext, controlPlaneTokenFailure, refusalCode, resolveGoverningSource, prefetchGovernedContext, removeStagedContext, stageGovernedContext, pinnedSourceOf, commandWithShim, shimScript, WORKFLOW_PERMISSION_REASON } from './chunk-ZXQEBRCB.js';
|
|
10
10
|
import { runnerImageVersion } from './chunk-ORENXMHA.js';
|
|
11
|
-
import { hasStoredCredential, AGENT_COMMANDS, storeClaudeCredential, credentialFromStdin, isAgentName } from './chunk-
|
|
12
|
-
import { optionalEgress, runnerCredentialProblem, builtinKind, allowHostProblem, systemClock, emptyEgressCounts, hostAllowed } from './chunk-
|
|
13
|
-
import { formatBytes, allocatedBytes } from './chunk-
|
|
14
|
-
import { NETWORK_HELPER_MEMORY, createDockerHost, builderSpec, runnerLabelValue, RUNNER_LABEL, BUILD_LABEL, prepareRunArgs, networkHelperName, containerRunArgs, HASH_ARGV, parseProgramHash, JUDGE_PROGRAM, mountableHome, homeCopyRunArgs, containerExecArgs, childEnvironment, readDu, JUDGE_DIR, MAX_ITEMS_BYTES, JUDGE_ITEMS, MAX_REPORT_BYTES, JUDGE_REPORT, NETWORK_READY_FILE, spawnRun, identityRunArgs, parseIdentity, networkHelperRunArgs } from './chunk-
|
|
11
|
+
import { hasStoredCredential, AGENT_COMMANDS, storeClaudeCredential, credentialFromStdin, isAgentName } from './chunk-UAINHP2C.js';
|
|
12
|
+
import { optionalEgress, runnerCredentialProblem, builtinKind, allowHostProblem, systemClock, emptyEgressCounts, hostAllowed } from './chunk-JDYBPAPP.js';
|
|
13
|
+
import { formatBytes, allocatedBytes } from './chunk-47SFTQA5.js';
|
|
14
|
+
import { NETWORK_HELPER_MEMORY, createDockerHost, builderSpec, runnerLabelValue, RUNNER_LABEL, BUILD_LABEL, prepareRunArgs, networkHelperName, containerRunArgs, HASH_ARGV, parseProgramHash, JUDGE_PROGRAM, mountableHome, homeCopyRunArgs, containerExecArgs, childEnvironment, readDu, JUDGE_DIR, MAX_ITEMS_BYTES, JUDGE_ITEMS, MAX_REPORT_BYTES, JUDGE_REPORT, NETWORK_READY_FILE, spawnRun, identityRunArgs, parseIdentity, networkHelperRunArgs } from './chunk-HA46L5FG.js';
|
|
15
15
|
import { RecipeError, DOCKER_FEATURE, universalImagePending, writeSanitizedRecipe, classifyProperties } from './chunk-CM4J53WZ.js';
|
|
16
|
-
import { firecrackerArch, MICROVM_ARCHES, FIRECRACKER_VERSION, hostHelperPinned, CLAUDE_CODE_VERSION, builderDiskPinned, guestAssetsPinned, GUEST_HELPER_SHA256, GUEST_ASSETS_BASE_URL, GUEST_KERNEL_SHA256, JAILER_BINARY_SHA256, FIRECRACKER_BINARY_SHA256, FIRECRACKER_SHA256, GUEST_ASSETS_VERSION, BUILDER_DISK_VERSION, networkHelperPinned, NETWORK_HELPER_SHA256, universalImagePinned, UNIVERSAL_IMAGE,
|
|
16
|
+
import { firecrackerArch, MICROVM_ARCHES, FIRECRACKER_VERSION, hostHelperPinned, CLAUDE_CODE_VERSION, builderDiskPinned, guestAssetsPinned, GUEST_HELPER_SHA256, GUEST_ASSETS_BASE_URL, GUEST_KERNEL_SHA256, JAILER_BINARY_SHA256, FIRECRACKER_BINARY_SHA256, FIRECRACKER_SHA256, GUEST_ASSETS_VERSION, BUILDER_DISK_VERSION, networkHelperPinned, NETWORK_HELPER_SHA256, universalImagePinned, UNIVERSAL_IMAGE, FFMPEG_STATIC, FFMPEG_BUILD_TAG, GH_SHA256, GH_VERSION, TINI_SHA256, TINI_VERSION, HEADLESS_SHELL, HEADLESS_SHELL_BASE_URL, PLAYWRIGHT_FFMPEG, PLAYWRIGHT_FFMPEG_BASE_URL, VOICE_PACK_FILES, BUILDER_DISK_SHA256, BUILDER_DISK_BASE_URL, DEFAULT_BASE_IMAGE } from './chunk-D3CT6XQ4.js';
|
|
17
17
|
import { startTimeOf, isSameProcess } from './chunk-JBJTC3UU.js';
|
|
18
|
-
import { postJson, WorkCommandError, getJson } from './chunk-
|
|
19
|
-
import { sanitizeTerminal } from './chunk-
|
|
18
|
+
import { postJson, WorkCommandError, getJson } from './chunk-T664NDNT.js';
|
|
19
|
+
import { sanitizeTerminal } from './chunk-VEVNGDTP.js';
|
|
20
20
|
import { signerFor } from './chunk-VJQQVTCS.js';
|
|
21
21
|
import { sharedSkillNames, skillConflictMessage } from './chunk-FGF52V4V.js';
|
|
22
22
|
import { versionAtLeast, MINIMUM_CLAUDE_VERSION } from './chunk-HCVLP7XA.js';
|
|
23
|
-
import { MIN_SCRUBBED_LITERAL, setCustomScrubbers, setLocalIdentity, setRepoRoot, parseTranscript, scrubDeep, scrubText } from './chunk-
|
|
24
|
-
import { orderSessions, extractFacts, sessionsToTimeline } from './chunk-
|
|
25
|
-
import { downconvertSession } from './chunk-
|
|
23
|
+
import { MIN_SCRUBBED_LITERAL, setCustomScrubbers, setLocalIdentity, setRepoRoot, parseTranscript, scrubDeep, scrubText } from './chunk-GH2HEEOH.js';
|
|
24
|
+
import { orderSessions, extractFacts, sessionsToTimeline } from './chunk-2EEW6FJN.js';
|
|
25
|
+
import { downconvertSession } from './chunk-IXRUVR25.js';
|
|
26
26
|
import { vmAssetsDir, RUNNER_DIR_MODE, rootfsPathFor, diskTemplatesDir, RUNNER_FILE_MODE, buildsDir, buildDir, runnerDir, deliveryDir, ghConfigDir, runnerDirOfBuild, spoolDir, mirrorDir, SHIM_DIR, vsockPath, builderCacheDiskPath, builderConsolePath } from './chunk-2CW2QMSG.js';
|
|
27
27
|
import { claudeCredential, parseIsolation, proxyEnvironment, withProxyWarningHidden, containerLocalAddress, destinationEnvironment, CLAUDE_CREDENTIAL_VARIABLES, builtInEnvironment, withHooksPath, startBuildServices, BUILT_IN_NAMES, checkoutPath, repositoriesOf, primaryOf, RELAY_PORT, repositoryPath, CHECKOUT_DIR, lifecycleWorkdir, buildEnvironment, checkEnvironment, withMiseVariables, AGENT_CREDENTIAL_MISSING, isMiseVariableAllowed, JOB_MOUNT, realFdStorePort } from './chunk-4N7BQBO4.js';
|
|
28
28
|
import { RELAY_USER, RELAY_ID, UNKNOWN_TRANSPORT_REASON, DOCKER_DESKTOP_REASON, MAX_MALFORMED_SESSIONS, MALFORMED_REASON, JOIN_WAIT_MS, MAX_OPEN_STREAMS, STREAM_RESET_RATE, STREAM_RESET_BURST, STREAM_WINDOW, SESSION_WINDOW, targetOfPath } from './chunk-MESOOLF4.js';
|
|
@@ -2392,8 +2392,7 @@ async function buildInBuilder(opts, deps, prepared) {
|
|
|
2392
2392
|
claudeCodeVersion: prepared.claudeCodeVersion,
|
|
2393
2393
|
buildId: opts.cli.buildId,
|
|
2394
2394
|
guestHelper: true,
|
|
2395
|
-
fetched: true
|
|
2396
|
-
...location.kind === "default" ? { universal: true } : {}
|
|
2395
|
+
fetched: true
|
|
2397
2396
|
})
|
|
2398
2397
|
);
|
|
2399
2398
|
inputs = builderInput({ checkoutDir: checkout.dir, toolsDir, toolFilesDir, recipeDir }, archive);
|
|
@@ -2415,6 +2414,7 @@ async function buildInBuilder(opts, deps, prepared) {
|
|
|
2415
2414
|
const described = JSON.parse(result);
|
|
2416
2415
|
const imageConfig = parseImageConfig(JSON.stringify(described.config));
|
|
2417
2416
|
const labels = described.config.Labels ?? {};
|
|
2417
|
+
const base = universalBase(location, labels);
|
|
2418
2418
|
mkdirSync(recordDir, { recursive: true, mode: RUNNER_DIR_MODE });
|
|
2419
2419
|
const fd = openSync(partial, "w", 384);
|
|
2420
2420
|
let received = 0;
|
|
@@ -2444,7 +2444,7 @@ async function buildInBuilder(opts, deps, prepared) {
|
|
|
2444
2444
|
sourceCommit: checkout.commit,
|
|
2445
2445
|
defaultBranch: checkout.defaultBranch,
|
|
2446
2446
|
recipe: location.kind === "default" ? "default" : location.path,
|
|
2447
|
-
...
|
|
2447
|
+
...base === void 0 ? {} : { base },
|
|
2448
2448
|
recipeKey: prepared.recipeKey,
|
|
2449
2449
|
toolsKey: prepared.toolsKey,
|
|
2450
2450
|
imageId: `${ROOT_DISK_ID_PREFIX}${rKey}-${tKey}`,
|
|
@@ -3527,6 +3527,10 @@ function copyJudgeTree(from, to, limits2 = { files: MAX_TREE_FILES, bytes: MAX_T
|
|
|
3527
3527
|
walk(from, to, true);
|
|
3528
3528
|
}
|
|
3529
3529
|
|
|
3530
|
+
// src/runner/record-proofs.ts
|
|
3531
|
+
var RECORD_PROOFS_ARGV = ["outerlayer", "work", "proofs", "--record", "--comment"];
|
|
3532
|
+
var PROOFS_LOG = "proofs.log";
|
|
3533
|
+
|
|
3530
3534
|
// src/runner/container/agent-user.ts
|
|
3531
3535
|
var ADDED_USER = "ol-agent";
|
|
3532
3536
|
var RELAY_REFUSAL = `the agent's user cannot be \`${RELAY_USER}\``;
|
|
@@ -4988,7 +4992,7 @@ async function provisionContainer(input) {
|
|
|
4988
4992
|
removeStagedContext: () => removeStagedContext(buildDir2),
|
|
4989
4993
|
keepIn: jobDir,
|
|
4990
4994
|
...input.requireBuildSkill === true ? { requireBuildSkill: true } : {},
|
|
4991
|
-
// A
|
|
4995
|
+
// A build on the universal image, or on an image built from it, chooses and installs its runtimes.
|
|
4992
4996
|
...runtimeStepInput(report, services)
|
|
4993
4997
|
});
|
|
4994
4998
|
if (!steps.ok) return bail(steps.reason, steps.aborted === true);
|
|
@@ -5186,6 +5190,12 @@ async function deliverContainerHooks(runtime, state, jobDir) {
|
|
|
5186
5190
|
return deliverJobFiles(runtime, state, ["git-hooks"], secretsOf(runtime, jobDir));
|
|
5187
5191
|
}
|
|
5188
5192
|
async function syncInContainer(input) {
|
|
5193
|
+
return runCliInContainer(input, ["outerlayer", "sync"], "sync.log");
|
|
5194
|
+
}
|
|
5195
|
+
async function recordProofsInContainer(input) {
|
|
5196
|
+
return runCliInContainer(input, [...RECORD_PROOFS_ARGV], PROOFS_LOG);
|
|
5197
|
+
}
|
|
5198
|
+
async function runCliInContainer(input, argv, logName) {
|
|
5189
5199
|
const { runtime, job } = input;
|
|
5190
5200
|
const state = job.container;
|
|
5191
5201
|
try {
|
|
@@ -5215,8 +5225,8 @@ async function syncInContainer(input) {
|
|
|
5215
5225
|
identity: job.commitIdentity
|
|
5216
5226
|
});
|
|
5217
5227
|
const result = await runtime.host.exec(
|
|
5218
|
-
{ container: state.container, user: state.agentUser ?? ADDED_USER, workdir: job.workdir ?? CHECKOUT_DIR, env, argv
|
|
5219
|
-
{ logPath: join(input.jobDir,
|
|
5228
|
+
{ container: state.container, user: state.agentUser ?? ADDED_USER, workdir: job.workdir ?? CHECKOUT_DIR, env, argv },
|
|
5229
|
+
{ logPath: join(input.jobDir, logName) }
|
|
5220
5230
|
);
|
|
5221
5231
|
return result.status === 0 ? { ok: true } : { ok: false, reason: `exit ${result.status}` };
|
|
5222
5232
|
} catch (err) {
|
|
@@ -5595,4 +5605,4 @@ function describeMachineDocker(machine) {
|
|
|
5595
5605
|
return `Docker Engine ${version ?? "of no known version"}, older than the ${MIN_ENGINE_MAJOR} that container builds need`;
|
|
5596
5606
|
}
|
|
5597
5607
|
|
|
5598
|
-
export { ADDED_USER, ADOPTED_FETCH_RETRY_WINDOW_MS, AgentUserError, AssetError, DeliveryFailure, EVAL_INPUT_NAME, GH_CONFIG_YML, HELPER_ENV, LEASE_SECONDS, MANAGED_UNJAILED_REASON, MIN_ENGINE_MAJOR, PLACEHOLDER_MARKER, ROOT_DISK_ID_PREFIX, RunnerInitError, attemptNote, claimPermissionProblem, claudeCredentialCheck, cleanupContainer, closeHostBuild, containerCommandExec, containerJudgeEnvironment, containerSenderCommand, copyJudgeTree, copyTranscripts, copyTranscriptsFromContainer, createBuildDisk, createContainerRuntime, createLeaseChannel, currentSkillCommand, decideHostBuildSkill, deleteBuildDisk, deliverContainerHooks, deliverExecMaven, describeMachineDocker, detectMachine, dropManagedBuildSettings, dropManagedClaudeKey, ensureFirecrackerAndJailer, ensureNetworkReady, ensureRootfs, ensureTunnel, execArgv, execCommandLine, fetchManagedBuildSettings, fetchManagedClaudeKey, filesAreCopied, firstLine4 as firstLine, formerSkillProblem, formerSkillQueues, ghHostsYml, gitRemoteFor, hasClaudeCredential, helperFirecrackerNote, helperSocketPath, holdManagedBuildSettings, holdManagedClaudeKey, hostCommandEnvironment, hostEnvironment, isPlaceholderCommand, keepGhConfigCurrent, keepRuntimeStep, leaseExpiresAtMs, leaseTimeLeftMs, lifecycleFailureReason, lifecycleSteps, listenOnBroker, machineConfig, makeBuildsDirPrivate, managedBuildSettingValues, managedBuildSettingsFor, managedClaudeKeyFor, managedClaudeKeyValues, managedMachineLimits, measureDisk, microVmArchSupported, microVmAssetsPinned, missingPermissionFix, missingPermissionOf, needsBuildSkill, needsClaudeCredential, obtainImage, outOfMemoryReason, parseCpuList, permissionModeProblem, permissionModeProblems, placeholderProblem, placeholderQueues, prepareBranch, prepareRunnerInit, probeHelper, provisionContainer, provisionEnvironment, provisionRuntimes, ranRuntimeStep, reachDockerStep, readConfigObject, resolveAgentUser, resolveHostBuild, runBuildSteps, runRunnerInit, runWithSpawn, runtimeStepInput, said, senderAliveScript, senderSignalScript, setUpRunnerCgroup, shellQuote, signalInContainer, startCheckContainer, startHostServices, startJailedInto, startServicesFor, stopContainer, stopJailed, stoppedHelperReason, supportsContainerBuilds, supportsMicroVmBuilds, sweepImageBuilders, syncInContainer, withFactoryHosts, withTunnelLog, writeEvalInput, writeRunnerInit };
|
|
5608
|
+
export { ADDED_USER, ADOPTED_FETCH_RETRY_WINDOW_MS, AgentUserError, AssetError, DeliveryFailure, EVAL_INPUT_NAME, GH_CONFIG_YML, HELPER_ENV, LEASE_SECONDS, MANAGED_UNJAILED_REASON, MIN_ENGINE_MAJOR, PLACEHOLDER_MARKER, PROOFS_LOG, RECORD_PROOFS_ARGV, ROOT_DISK_ID_PREFIX, RunnerInitError, attemptNote, claimPermissionProblem, claudeCredentialCheck, cleanupContainer, closeHostBuild, containerCommandExec, containerJudgeEnvironment, containerSenderCommand, copyJudgeTree, copyTranscripts, copyTranscriptsFromContainer, createBuildDisk, createContainerRuntime, createLeaseChannel, currentSkillCommand, decideHostBuildSkill, deleteBuildDisk, deliverContainerHooks, deliverExecMaven, describeMachineDocker, detectMachine, dropManagedBuildSettings, dropManagedClaudeKey, ensureFirecrackerAndJailer, ensureNetworkReady, ensureRootfs, ensureTunnel, execArgv, execCommandLine, fetchManagedBuildSettings, fetchManagedClaudeKey, filesAreCopied, firstLine4 as firstLine, formerSkillProblem, formerSkillQueues, ghHostsYml, gitRemoteFor, hasClaudeCredential, helperFirecrackerNote, helperSocketPath, holdManagedBuildSettings, holdManagedClaudeKey, hostCommandEnvironment, hostEnvironment, isPlaceholderCommand, keepGhConfigCurrent, keepRuntimeStep, leaseExpiresAtMs, leaseTimeLeftMs, lifecycleFailureReason, lifecycleSteps, listenOnBroker, machineConfig, makeBuildsDirPrivate, managedBuildSettingValues, managedBuildSettingsFor, managedClaudeKeyFor, managedClaudeKeyValues, managedMachineLimits, measureDisk, microVmArchSupported, microVmAssetsPinned, missingPermissionFix, missingPermissionOf, needsBuildSkill, needsClaudeCredential, obtainImage, outOfMemoryReason, parseCpuList, permissionModeProblem, permissionModeProblems, placeholderProblem, placeholderQueues, prepareBranch, prepareRunnerInit, probeHelper, provisionContainer, provisionEnvironment, provisionRuntimes, ranRuntimeStep, reachDockerStep, readConfigObject, recordProofsInContainer, resolveAgentUser, resolveHostBuild, runBuildSteps, runRunnerInit, runWithSpawn, runtimeStepInput, said, senderAliveScript, senderSignalScript, setUpRunnerCgroup, shellQuote, signalInContainer, startCheckContainer, startHostServices, startJailedInto, startServicesFor, stopContainer, stopJailed, stoppedHelperReason, supportsContainerBuilds, supportsMicroVmBuilds, sweepImageBuilders, syncInContainer, withFactoryHosts, withTunnelLog, writeEvalInput, writeRunnerInit };
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { mcpTargetPath, INIT_STDIO_ENTRY, INIT_DOCS_ENTRY, DOCS_MCP_SERVER_NAME } from './chunk-KT4CN6OU.js';
|
|
4
|
-
import { VALIDATOR_FILES, VALIDATORS_DIR, POLICY_PATH, POLICY_CONTENT } from './chunk-
|
|
5
|
-
import { skillsBaseFor } from './chunk-
|
|
4
|
+
import { VALIDATOR_FILES, VALIDATORS_DIR, POLICY_PATH, POLICY_CONTENT } from './chunk-54LIUIZL.js';
|
|
5
|
+
import { skillsBaseFor } from './chunk-ARL6X6Y4.js';
|
|
6
6
|
import { findGitDirs } from './chunk-BJ3KTMDH.js';
|
|
7
|
-
import { resolvePackRoot, AGENTS_SKILLS_BASE, OUTERLAYER_SKILLS_BASE, restoreSkillPaths, rewriteSkillPaths, skillDir, loadTemplateFiles, TEMPLATE_SKILLS } from './chunk-
|
|
7
|
+
import { resolvePackRoot, AGENTS_SKILLS_BASE, OUTERLAYER_SKILLS_BASE, restoreSkillPaths, rewriteSkillPaths, skillDir, loadTemplateFiles, TEMPLATE_SKILLS } from './chunk-HH3BQG65.js';
|
|
8
8
|
import { cliInvocation } from './chunk-CRB3POP4.js';
|
|
9
|
-
import { hasSymlinkComponent } from './chunk-
|
|
9
|
+
import { hasSymlinkComponent } from './chunk-RQ3GCCHH.js';
|
|
10
10
|
import { cloneIsGoverned } from './chunk-YQR6E6OV.js';
|
|
11
11
|
import { createHash } from 'crypto';
|
|
12
12
|
import { existsSync, readFileSync } from 'fs';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { DEFAULT_CACHE_DISK, DEFAULT_BUILD_DISK } from './chunk-
|
|
4
|
-
import { parseSize } from './chunk-
|
|
3
|
+
import { DEFAULT_CACHE_DISK, DEFAULT_BUILD_DISK } from './chunk-47SFTQA5.js';
|
|
4
|
+
import { parseSize } from './chunk-HA46L5FG.js';
|
|
5
5
|
import { builderDiskPinned } from './chunk-D3CT6XQ4.js';
|
|
6
6
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
7
7
|
import { isRefusedInConfig, resolveDestinations, isReservedVariable } from './chunk-4N7BQBO4.js';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { toolsDockerfile } from './chunk-
|
|
4
|
-
import { runnerLabelValue } from './chunk-
|
|
3
|
+
import { toolsDockerfile } from './chunk-V64BEF6E.js';
|
|
4
|
+
import { runnerLabelValue } from './chunk-HA46L5FG.js';
|
|
5
5
|
import { RecipeError, locateRecipe, readRecipe, assertBuildable, writeSanitizedRecipe, classifyProperties, SANITIZED_NAME } from './chunk-CM4J53WZ.js';
|
|
6
|
-
import { CLAUDE_CODE_VERSION, NODE_IMAGE, UNIVERSAL_IMAGE, MEDIA_PINS, TINI_VERSION, GH_VERSION
|
|
6
|
+
import { UNIVERSAL_IMAGE_DIGEST, UNIVERSAL_IMAGE_REPOSITORY, UNIVERSAL_IMAGE_SOURCE, CLAUDE_CODE_VERSION, NODE_IMAGE, UNIVERSAL_IMAGE, MEDIA_PINS, TINI_VERSION, GH_VERSION } from './chunk-D3CT6XQ4.js';
|
|
7
7
|
import { claimPidFile, RunnerAlreadyRunningError, releasePidFile } from './chunk-64LLUVJR.js';
|
|
8
8
|
import { startTimeOf } from './chunk-JBJTC3UU.js';
|
|
9
9
|
import { RUNNER_DIR_MODE, RUNNER_FILE_MODE, repoCacheDir, imagesDir, imageBuildLogsDir, attemptStamp, runnerDir, rootfsPathFor } from './chunk-2CW2QMSG.js';
|
|
@@ -207,9 +207,17 @@ function selectPrunable(opts) {
|
|
|
207
207
|
|
|
208
208
|
// src/runner/image/build.ts
|
|
209
209
|
function baseLines(report) {
|
|
210
|
-
|
|
210
|
+
if (report.base === void 0) return [];
|
|
211
|
+
return [` base: ${report.base.reference}${report.base.digest === void 0 ? "" : `@${report.base.digest}`}
|
|
211
212
|
`];
|
|
212
213
|
}
|
|
214
|
+
var UNIVERSAL_SOURCE_LABEL = "ai.outerlayer.universal-source";
|
|
215
|
+
var SOURCE_TAG = /^[A-Za-z0-9_][A-Za-z0-9_.-]{0,127}$/;
|
|
216
|
+
function universalBase(location, labels) {
|
|
217
|
+
if (location.kind === "default") return { reference: `${UNIVERSAL_IMAGE_REPOSITORY}:${UNIVERSAL_IMAGE_SOURCE}`, digest: UNIVERSAL_IMAGE_DIGEST };
|
|
218
|
+
const source = labels[UNIVERSAL_SOURCE_LABEL];
|
|
219
|
+
return source !== void 0 && SOURCE_TAG.test(source) ? { reference: `${UNIVERSAL_IMAGE_REPOSITORY}:${source}` } : void 0;
|
|
220
|
+
}
|
|
213
221
|
var KIND2 = "ai.outerlayer.kind";
|
|
214
222
|
var RUNNER2 = "ai.outerlayer.runner";
|
|
215
223
|
var REPOSITORY = "ai.outerlayer.repository";
|
|
@@ -422,8 +430,7 @@ async function buildRepositoryImage(opts, ports) {
|
|
|
422
430
|
nodeImage,
|
|
423
431
|
claudeCodeVersion,
|
|
424
432
|
buildId: opts.cli.buildId,
|
|
425
|
-
guestHelper: opts.guestHelper !== void 0
|
|
426
|
-
...universal ? { universal: true } : {}
|
|
433
|
+
guestHelper: opts.guestHelper !== void 0
|
|
427
434
|
});
|
|
428
435
|
const labels = { [REPOSITORY]: imageRepository, [KIND2]: "build", [RUNNER2]: runnerLabel, [RECIPE_KEY2]: rKey, [TOOLS_KEY]: tKey };
|
|
429
436
|
const status = await host.buildDockerfile({ dockerfile, context, tag: buildTag, labels, logPath, ...universal ? {} : { base: { ref: recipeTag, layout: keptLayout } } });
|
|
@@ -435,6 +442,7 @@ async function buildRepositoryImage(opts, ports) {
|
|
|
435
442
|
if (buildImage === void 0) throw failed("finding the image after the tools build", 0);
|
|
436
443
|
}
|
|
437
444
|
const toolsBuilt = buildImage !== buildImageBefore;
|
|
445
|
+
const base = universalBase(location, buildImage.labels);
|
|
438
446
|
let report = readReport(recordDir);
|
|
439
447
|
if (report === null || report.imageId !== buildImage.id || report.docker === void 0) {
|
|
440
448
|
report = {
|
|
@@ -442,7 +450,7 @@ async function buildRepositoryImage(opts, ports) {
|
|
|
442
450
|
sourceCommit: checkout.commit,
|
|
443
451
|
defaultBranch: checkout.defaultBranch,
|
|
444
452
|
recipe: location.kind === "default" ? "default" : location.path,
|
|
445
|
-
...
|
|
453
|
+
...base === void 0 ? {} : { base },
|
|
446
454
|
recipeKey: rKey,
|
|
447
455
|
toolsKey: tKey,
|
|
448
456
|
imageId: buildImage.id,
|
|
@@ -453,6 +461,8 @@ async function buildRepositoryImage(opts, ports) {
|
|
|
453
461
|
writeRecord(recordDir, report, now().toISOString());
|
|
454
462
|
} else if (universal) {
|
|
455
463
|
report = { ...report, repository, sourceCommit: checkout.commit, defaultBranch: checkout.defaultBranch };
|
|
464
|
+
} else if (base !== void 0) {
|
|
465
|
+
report = { ...report, base };
|
|
456
466
|
}
|
|
457
467
|
const removed = [];
|
|
458
468
|
if (toolsBuilt) removed.push(...await prune(host, imageRepository, repoRecords, opts.keep ?? KEEP_BUILD_IMAGES, runnerDir(opts.configPath), runnerLabel));
|
|
@@ -493,4 +503,4 @@ async function prune(host, repository, repoRecords, keep, runnerDirPath, runnerL
|
|
|
493
503
|
return removed;
|
|
494
504
|
}
|
|
495
505
|
|
|
496
|
-
export { KEY_PREFIX, SHARED_NAME, SHARED_OWNER, SHARED_REPOSITORY, TAG_HOST, baseLines, buildRepositoryImage, cloneRepository, diffBetween, fetchCommit, metadataFromLabels, prepareImageBuild, readBranchHead, readDefaultBranchHead, writeRecord };
|
|
506
|
+
export { KEY_PREFIX, SHARED_NAME, SHARED_OWNER, SHARED_REPOSITORY, TAG_HOST, UNIVERSAL_SOURCE_LABEL, baseLines, buildRepositoryImage, cloneRepository, diffBetween, fetchCommit, metadataFromLabels, prepareImageBuild, readBranchHead, readDefaultBranchHead, universalBase, writeRecord };
|
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { launchRefusalForSession } from './chunk-ESVW4MJY.js';
|
|
4
4
|
import { detectActiveSession, transcriptPathForSession } from './chunk-IP7BIBXJ.js';
|
|
5
|
-
import { autoConnect } from './chunk-
|
|
5
|
+
import { autoConnect } from './chunk-BRBZKIZG.js';
|
|
6
6
|
import { C } from './chunk-ANPNT6PM.js';
|
|
7
7
|
import { resolveGatewayCredentials, defaultFetch, unauthorizedMessage } from './chunk-IZKUPAXF.js';
|
|
8
8
|
import { readLatestProvenanceForSession } from './chunk-ZJSNLVCE.js';
|
|
9
|
-
import { resolveRepoIdentity, defaultProjectsDir, findTranscripts, sessionIdFromPath, scrubText } from './chunk-
|
|
9
|
+
import { resolveRepoIdentity, defaultProjectsDir, findTranscripts, sessionIdFromPath, scrubText } from './chunk-GH2HEEOH.js';
|
|
10
10
|
import { launchedItemForSession } from './chunk-T2Q7ISPE.js';
|
|
11
11
|
import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
|
|
12
12
|
import { cliInvocation } from './chunk-CRB3POP4.js';
|
|
13
|
-
import { FindingBatchSchema, FindingsResponseSchema, SAME_PROBLEM_RULES } from './chunk-
|
|
13
|
+
import { FindingBatchSchema, FindingsResponseSchema, SAME_PROBLEM_RULES } from './chunk-IXRUVR25.js';
|
|
14
14
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
15
15
|
import { readFileSync, existsSync } from 'fs';
|
|
16
16
|
import { join, dirname, basename } from 'path';
|