@outerlayer/cli 0.28.4 → 0.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +9 -1
  3. package/dist/{agent-setup-IDF3EXM4.js → agent-setup-ZNYAXAWI.js} +14 -14
  4. package/dist/{artifact-link-cmd-LEI6EOZE.js → artifact-link-cmd-VY6OM7S5.js} +2 -2
  5. package/dist/{bridge-JN3VJ23L.js → bridge-FI7OF2H3.js} +2 -2
  6. package/dist/{build-JCYOHPLL.js → build-PXRDWSN4.js} +4 -4
  7. package/dist/build-info.json +1 -1
  8. package/dist/{builder-HCTVP2O7.js → builder-UNVHUZL7.js} +6 -6
  9. package/dist/{check-WJ4X2Q44.js → check-BKONE55O.js} +42 -41
  10. package/dist/{chunk-YYGXCRIW.js → chunk-2ZMJFGOZ.js} +1 -1
  11. package/dist/{chunk-JYVBEWBC.js → chunk-3F7RC3UA.js} +3 -3
  12. package/dist/{chunk-JZJLKTZT.js → chunk-3IDNLZPR.js} +5 -5
  13. package/dist/{chunk-QFNFBQCG.js → chunk-3YLHIXLR.js} +7 -7
  14. package/dist/{chunk-QBF462QH.js → chunk-44CGGHJF.js} +1 -1
  15. package/dist/{chunk-AV5MJY45.js → chunk-5HZDPOJI.js} +3 -3
  16. package/dist/{chunk-OO6OADZN.js → chunk-6CNNRO53.js} +3 -3
  17. package/dist/{chunk-MFI55TNI.js → chunk-7YSR636F.js} +22 -6
  18. package/dist/{chunk-JGML2VUN.js → chunk-AKKVPUGK.js} +1 -1
  19. package/dist/{chunk-KJIUFOC4.js → chunk-AM3GMWQK.js} +1 -1
  20. package/dist/{emit-finding-cmd-W2FU4CCF.js → chunk-B5CQJBZ2.js} +5 -23
  21. package/dist/{chunk-KBB3CQTW.js → chunk-B6OYEP3K.js} +5 -5
  22. package/dist/{chunk-ITAIEJ2T.js → chunk-BCWVTWS7.js} +4 -4
  23. package/dist/{chunk-O47BTZSN.js → chunk-D3LS7E7U.js} +1 -1
  24. package/dist/{chunk-2BZTGJII.js → chunk-DBELICD6.js} +7 -7
  25. package/dist/{chunk-NVUO52YW.js → chunk-DBENBGVF.js} +55 -47
  26. package/dist/{chunk-X7SFJZIG.js → chunk-DBRB26R7.js} +29 -10
  27. package/dist/{chunk-TG7FAHRP.js → chunk-DLY22KHX.js} +5 -5
  28. package/dist/{chunk-UHU7H57K.js → chunk-FTGJ3DPV.js} +202 -35
  29. package/dist/{chunk-HOU33DW5.js → chunk-G2RRBBOX.js} +1 -1
  30. package/dist/{chunk-VWFOKRYS.js → chunk-HJUGOAM7.js} +1 -1
  31. package/dist/{chunk-BUP5N3X6.js → chunk-HSUUTD4E.js} +1 -1
  32. package/dist/chunk-I3LTIAOR.js +11 -0
  33. package/dist/{chunk-UXLLWIA2.js → chunk-I3WLYIIW.js} +7 -7
  34. package/dist/{chunk-R7TMTFJP.js → chunk-IRF2FKB5.js} +1 -1
  35. package/dist/{chunk-M6NNXKRM.js → chunk-IRTZYDZO.js} +1 -1
  36. package/dist/{chunk-6P2Z5AUY.js → chunk-ISKWFUEQ.js} +360 -74
  37. package/dist/{chunk-QZBXLLTV.js → chunk-IWFYKNAO.js} +88 -2
  38. package/dist/{chunk-ERVZGWUR.js → chunk-JGOMMFNX.js} +7 -7
  39. package/dist/{chunk-6NFXOQKZ.js → chunk-LJIFCG4G.js} +1 -1
  40. package/dist/{chunk-WL3QF3QF.js → chunk-MBVSVQVH.js} +18 -16
  41. package/dist/{chunk-TOHKSZKI.js → chunk-MBZTX4V2.js} +7 -7
  42. package/dist/{chunk-VM6BX2WJ.js → chunk-PS3AHE6C.js} +5 -5
  43. package/dist/{chunk-5B7BEQPR.js → chunk-QDDPVBIS.js} +2 -2
  44. package/dist/{chunk-5Q4NDYQP.js → chunk-QQJGL7LG.js} +25 -24
  45. package/dist/{chunk-HWOU2HDH.js → chunk-QWJBTFAF.js} +1 -1
  46. package/dist/{chunk-OOUHNKKX.js → chunk-RJDJFRRY.js} +2 -2
  47. package/dist/{chunk-NMIYK2G2.js → chunk-SJ4DX2AD.js} +3 -3
  48. package/dist/{chunk-DWVAG73B.js → chunk-SOWXLIDN.js} +1 -1
  49. package/dist/{chunk-NKD5BNRX.js → chunk-TGUWHA27.js} +3 -3
  50. package/dist/{chunk-DIQN5SEL.js → chunk-TKJISBV6.js} +1 -1
  51. package/dist/{chunk-FTNCNEWE.js → chunk-TKX23NFV.js} +12 -12
  52. package/dist/{chunk-RXFKXZJS.js → chunk-TN2XMMD7.js} +1 -1
  53. package/dist/{chunk-TCBVV2JK.js → chunk-U5DC57AF.js} +3 -3
  54. package/dist/{chunk-DQYMQ47E.js → chunk-UAFMC3PL.js} +1 -1
  55. package/dist/{chunk-P2RWZCV7.js → chunk-V6IYYQU3.js} +2 -2
  56. package/dist/{chunk-DSKOHPXN.js → chunk-VL3CF4DZ.js} +1 -1
  57. package/dist/{chunk-N5EEEKT6.js → chunk-WHCDULC4.js} +7 -3
  58. package/dist/{chunk-QKXF7CLR.js → chunk-XB7TRWI2.js} +4 -4
  59. package/dist/{chunk-W3K6GBXY.js → chunk-XRRSFHKV.js} +2 -2
  60. package/dist/{chunk-SATUCMAJ.js → chunk-XTKH5VAC.js} +2 -2
  61. package/dist/{chunk-EZ3DZXUH.js → chunk-YVY3IVYV.js} +3 -3
  62. package/dist/{chunk-YTR435DO.js → chunk-ZNMVBHGJ.js} +3 -3
  63. package/dist/{chunk-RKOTJQVG.js → chunk-ZUOPFE22.js} +10 -4
  64. package/dist/{claude-launcher-LVYZ4YJI.js → claude-launcher-ZDZQXW76.js} +5 -5
  65. package/dist/{cli-X3JGBH2D.js → cli-6NI7WJFP.js} +189 -121
  66. package/dist/{command-NLWZT7KR.js → command-EFYTEHPF.js} +30 -30
  67. package/dist/{config-TNV5HHLO.js → config-VM6GKCCE.js} +2 -2
  68. package/dist/{connect-cmd-43IWARIV.js → connect-cmd-U2DY4OZU.js} +12 -12
  69. package/dist/{container-start-3MXIUNE2.js → container-start-C3CGPEXA.js} +32 -31
  70. package/dist/{context-cleanup-LTH77FC3.js → context-cleanup-D5EGQHQV.js} +3 -3
  71. package/dist/{control-plane-launch-TIK265OT.js → control-plane-launch-2AC4BTWL.js} +10 -10
  72. package/dist/{dist-JFVKLUHL.js → dist-IDP7Q53A.js} +2 -2
  73. package/dist/{docker-2IIRBQAB.js → docker-K442NGCS.js} +6 -6
  74. package/dist/{doctor-PKMAUDTU.js → doctor-RGTHY56D.js} +32 -32
  75. package/dist/{emit-artifact-cmd-RM2X3PBJ.js → emit-artifact-cmd-IK7GAS7V.js} +16 -16
  76. package/dist/{emit-cmd-QUABLVO6.js → emit-cmd-PSD7AAKJ.js} +6 -6
  77. package/dist/{emit-criteria-cmd-ZUI7DFND.js → emit-criteria-cmd-TGBRMX3P.js} +13 -13
  78. package/dist/emit-finding-cmd-KXCNLJLK.js +34 -0
  79. package/dist/{emit-result-cmd-JINMQ7QG.js → emit-result-cmd-WJBLCVDL.js} +52 -25
  80. package/dist/{emit-step-cmd-7FZWQTV3.js → emit-step-cmd-OYX5X65A.js} +14 -14
  81. package/dist/{exec-client-6ZJJ4KVH.js → exec-client-RMGGSTGR.js} +3 -3
  82. package/dist/findings-cmd-HFDOB6AC.js +135 -0
  83. package/dist/{fleet-readiness-3A67MUAU.js → fleet-readiness-5S2GCWZE.js} +12 -12
  84. package/dist/{governing-source-KQMKM5CI.js → governing-source-LVTBDQIM.js} +17 -17
  85. package/dist/{guest-init-A4HHI2UR.js → guest-init-O7INUZWE.js} +4 -4
  86. package/dist/{hook-fast-UJPAWDAO.js → hook-fast-A2N3PSXI.js} +1 -1
  87. package/dist/{host-key-NGRCMJZ7.js → host-key-HJ66C6MD.js} +3 -3
  88. package/dist/{image-tag-TEOKZVD5.js → image-tag-LLXOFXKP.js} +3 -3
  89. package/dist/index.js +4 -4
  90. package/dist/{init-Q6JV7IGF.js → init-NO5PJEPZ.js} +29 -29
  91. package/dist/{init-HENNITCI.js → init-VY6J7MAY.js} +29 -29
  92. package/dist/{init-cmd-GJR37XGU.js → init-cmd-FW67JGI7.js} +22 -22
  93. package/dist/{init-update-MZ4IRFC7.js → init-update-RN2PZ3MT.js} +21 -21
  94. package/dist/{install-NPTR35MG.js → install-GZ27NW6U.js} +4 -4
  95. package/dist/{install-cmd-4PXPAFQX.js → install-cmd-26OY23ZZ.js} +5 -5
  96. package/dist/{layout-BBTQPS6V.js → layout-3ISIED6A.js} +4 -4
  97. package/dist/{login-browser-WSOSQH2T.js → login-browser-NTVVDJF7.js} +2 -2
  98. package/dist/{logs-Z4L4I3OR.js → logs-7O3ELY35.js} +2 -2
  99. package/dist/loop-SY636F7D.js +81 -0
  100. package/dist/{machine-HZGUBOUH.js → machine-IJ2QP3FO.js} +25 -25
  101. package/dist/{machine-skills-O7W6NMWB.js → machine-skills-I4DB2CP3.js} +4 -4
  102. package/dist/{mcp-serve-cmd-NQM2WDYI.js → mcp-serve-cmd-AT7G6J5V.js} +4 -4
  103. package/dist/{paths-2VSGK6E2.js → paths-32THAYBB.js} +2 -2
  104. package/dist/{pending-SFZ2AYSK.js → pending-6CMYQHFL.js} +3 -3
  105. package/dist/{pidfile-3FT5OLUE.js → pidfile-3BH6WPOA.js} +3 -3
  106. package/dist/{record-7SSRLSI2.js → record-WHPJCC6Y.js} +3 -3
  107. package/dist/{runner-env-2Z2DVSUJ.js → runner-env-6Q45P3IE.js} +5 -5
  108. package/dist/{runner-identity-B37HHOZR.js → runner-identity-KH7HADNF.js} +6 -6
  109. package/dist/{runner-key-UP5YBUHR.js → runner-key-L6B5CNDG.js} +29 -29
  110. package/dist/{session-sender-7MSVJZ6Q.js → session-sender-N4DOGRTN.js} +17 -17
  111. package/dist/{spec-cmd-KAQ7MX4O.js → spec-cmd-7KOT4IQO.js} +14 -14
  112. package/dist/{starter-pack-5SOT5V4I.js → starter-pack-2WFNRGFA.js} +5 -5
  113. package/dist/{status-2ICTDC2R.js → status-LOQ2RHWX.js} +33 -32
  114. package/dist/{sync-cmd-7K3WVQKO.js → sync-cmd-E5VRZ5DK.js} +16 -16
  115. package/dist/{watch-NCYESLO2.js → watch-P6XAYDM2.js} +16 -16
  116. package/dist/{work-claim-cmd-IOUEHYIY.js → work-claim-cmd-7YQ5CJ3R.js} +17 -17
  117. package/dist/{work-cmd-FOI74X5B.js → work-cmd-RRHDQDOX.js} +14 -14
  118. package/dist/{work-comment-cmd-3C44H4CG.js → work-comment-cmd-XYAPMQYC.js} +14 -14
  119. package/dist/{work-logs-cmd-YGAWCX3X.js → work-logs-cmd-TTLUEWVX.js} +14 -14
  120. package/dist/{work-open-pr-cmd-HUG5HAVC.js → work-open-pr-cmd-A63YGIBW.js} +15 -15
  121. package/dist/{work-pr-cmd-L2EDOYXH.js → work-pr-cmd-HOS5ZHJI.js} +14 -14
  122. package/dist/{work-stop-cmd-GGDVKC67.js → work-stop-cmd-7KIKIZPO.js} +14 -14
  123. package/package.json +3 -3
  124. package/skill-pack/maintained/outerlayer-amend/SKILL.md +40 -39
  125. package/skill-pack/maintained/outerlayer-build/SKILL.md +9 -10
  126. package/skill-pack/maintained/outerlayer-build/references/criteria-judge.md +15 -12
  127. package/skill-pack/maintained/outerlayer-build/references/release.md +11 -6
  128. package/skill-pack/maintained/outerlayer-findings/SKILL.md +14 -10
  129. package/skill-pack/shipped.json +2 -0
  130. package/skill-pack/template/build/SKILL.md +3 -1
  131. package/skill-pack/validators/acceptance-criteria.yaml +7 -2
  132. package/dist/loop-DO46LFUH.js +0 -80
@@ -1,15 +1,15 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { uploadSpooledSteps } from './chunk-VM6BX2WJ.js';
3
+ import { uploadSpooledSteps } from './chunk-PS3AHE6C.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-BUP5N3X6.js';
7
- import { setCustomScrubbers, setLocalIdentity, tailTranscript, enrichSessionRepo, scanAll, setRepoRoot, resolveRepoIdentity, sessionIdFromPath, scrubDeep, SOURCE_ADAPTERS } from './chunk-UHU7H57K.js';
6
+ import { migrateLegacyArtifactSidecars, planArtifactUpload, artifactsStatePath, sanitizeTerminal, acquireArtifactSpoolLock, artifactBlobsDir, resolveArtifactTurnIndex, isArtifactTombstoned, ARTIFACT_RETRY_MAX_AGE_MS, writeArtifactSpoolState, reclaimUnneededArtifactBlobs, neededArtifactShas } from './chunk-HSUUTD4E.js';
7
+ import { setCustomScrubbers, setLocalIdentity, tailTranscript, enrichSessionRepo, scanAll, setRepoRoot, resolveRepoIdentity, sessionIdFromPath, scrubDeep, SOURCE_ADAPTERS } from './chunk-FTGJ3DPV.js';
8
8
  import { C } from './chunk-ANPNT6PM.js';
9
- import { cliFetch, resolveGatewayCredentials, defaultFetch, unauthorizedMessage } from './chunk-KJIUFOC4.js';
9
+ import { cliFetch, resolveGatewayCredentials, defaultFetch, unauthorizedMessage } from './chunk-AM3GMWQK.js';
10
10
  import { readCloudConfig, cloudConfigPath, writeCloudConfig } from './chunk-PJDQPF5N.js';
11
- import { signerFor, signRunnerRequest } from './chunk-R7TMTFJP.js';
12
- import { writeSyncStatus, spoolDir } from './chunk-OOUHNKKX.js';
11
+ import { signerFor, signRunnerRequest } from './chunk-IRF2FKB5.js';
12
+ import { writeSyncStatus, spoolDir } from './chunk-RJDJFRRY.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-QZBXLLTV.js';
20
+ import { CAPTURE_TIERS, inferArtifactKind, bannedPathsForTier, downconvertSession, isHumanUserTurn, turnCountBound, EVENT_TYPES } from './chunk-IWFYKNAO.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,30 +1,30 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { releaseLease, isUnfinished, setStage, jobEnv, runHook, describeHookEnd, provisionMicroVm, deliverCommitHooks, provisionProcess, provisionEnvironment, readProvisionOut, resolveHostBuild, workdirProblem, listenOnBroker, hostEnvironment, hostCommandEnvironment, execArgv, MICROVM_COMMAND_DIR, commandLogOffset, startMicroVmCommand, microVmCommandLine, runCommand, execCommandLine, startSender, startHostServices, finishJob, isContainerTracked, isMicroVmTracked, probeMicroVmCommand, probeCommand, appendCommandLog, judgeProbe, EXIT_CODE_FILE, isTracked, isGroupAlive, outcomeFromExitCode, isTimedOut, readCpuUsec, isIdle, stopOrphanedMicroVms, unfinishedJobs, listUnreadableJobs, listAdoptableJobs, retryFailedReleases, recoverLostJobs, hookLimitsFor, AttemptLogBook, microVmOomKills, needsRenew, renewLease, RENEW_INTERVAL_SECONDS, listTrackedJobs, restartSender, serveLease, vmAlive, writeGuestGhConfig, ALREADY_RELEASED, inTeardown } from './chunk-6P2Z5AUY.js';
3
+ import { releaseLease, isUnfinished, setStage, jobEnv, runHook, describeHookEnd, provisionMicroVm, deliverCommitHooks, provisionProcess, provisionEnvironment, readProvisionOut, resolveHostBuild, workdirProblem, listenOnBroker, hostEnvironment, hostCommandEnvironment, execArgv, MICROVM_COMMAND_DIR, commandLogOffset, startMicroVmCommand, microVmCommandLine, runCommand, execCommandLine, startSender, startHostServices, finishJob, isContainerTracked, isMicroVmTracked, probeMicroVmCommand, probeCommand, appendCommandLog, judgeProbe, EXIT_CODE_FILE, isTracked, isGroupAlive, outcomeFromExitCode, isTimedOut, readCpuUsec, isIdle, stopOrphanedMicroVms, unfinishedJobs, listUnreadableJobs, listAdoptableJobs, retryFailedReleases, recoverLostJobs, hookLimitsFor, AttemptLogBook, microVmOomKills, needsRenew, renewLease, RENEW_INTERVAL_SECONDS, listTrackedJobs, restartSender, serveLease, vmAlive, writeGuestGhConfig, ALREADY_RELEASED, inTeardown } from './chunk-ISKWFUEQ.js';
4
4
  import { decideInstalledSwitch } from './chunk-3JVYMD4G.js';
5
5
  import { fetchVersionMeta, npmVersion, npmSupportsProvenance, fetchTarballDigest, fetchProvenance, installVersion, auditSignatures } from './chunk-E7R2GIAW.js';
6
6
  import { RUNNER_PROTOCOL } from './chunk-TPKYTORP.js';
7
- import { writePendingUpdate } from './chunk-HWOU2HDH.js';
7
+ import { writePendingUpdate } from './chunk-QWJBTFAF.js';
8
8
  import { JOB_STATE_FORMAT, readsJobState, jobStateFormatOf } from './chunk-ZVB57WI6.js';
9
- import { readHousekeepingRecord, writeHousekeepingRecord } from './chunk-QBF462QH.js';
10
- import { currentSkillCommand, formerSkillProblem, placeholderQueues, placeholderProblem } from './chunk-ERVZGWUR.js';
9
+ import { readHousekeepingRecord, writeHousekeepingRecord } from './chunk-44CGGHJF.js';
10
+ import { currentSkillCommand, formerSkillProblem, placeholderQueues, placeholderProblem } from './chunk-JGOMMFNX.js';
11
11
  import { freeBytes, formatBytes } from './chunk-YYYRBYWG.js';
12
- import { writeMarker, readMarker, currentVersion, removeMarker, entryIn, versionDir, startedThroughCurrent, switchCurrent, isInLayout, cleanVersions, stagingDir } from './chunk-6NFXOQKZ.js';
12
+ import { writeMarker, readMarker, currentVersion, removeMarker, entryIn, versionDir, startedThroughCurrent, switchCurrent, isInLayout, cleanVersions, stagingDir } from './chunk-LJIFCG4G.js';
13
13
  import { RepoFilter } from './chunk-TBT347UY.js';
14
- import { leaseTimeLeftMs, createContainerRuntime, withTunnelLog, LEASE_SECONDS, provisionContainer, leaseExpiresAtMs, deliverContainerHooks, lifecycleSteps, lifecycleFailureReason, prepareBranch, containerCommandExec, setUpRunnerCgroup, measureDisk, parseCpuList, ensureTunnel, keepGhConfigCurrent, filesAreCopied, gitRemoteFor, startServicesFor, createLeaseChannel } from './chunk-5Q4NDYQP.js';
15
- import { describeCallFailure, retrySend, shortClaim, relativeToRunner, formatDuration, BuildTokens, classifyRefusal, refusalCode, createRunnerLog, formatClock } from './chunk-JZJLKTZT.js';
16
- import { tagToPull, pullInstruction, imageTag, writeUpdateStatus } from './chunk-O47BTZSN.js';
14
+ import { leaseTimeLeftMs, createContainerRuntime, withTunnelLog, LEASE_SECONDS, provisionContainer, leaseExpiresAtMs, deliverContainerHooks, lifecycleSteps, lifecycleFailureReason, prepareBranch, containerCommandExec, setUpRunnerCgroup, measureDisk, parseCpuList, ensureTunnel, keepGhConfigCurrent, filesAreCopied, gitRemoteFor, startServicesFor, createLeaseChannel } from './chunk-QQJGL7LG.js';
15
+ import { describeCallFailure, retrySend, shortClaim, relativeToRunner, formatDuration, BuildTokens, classifyRefusal, refusalCode, createRunnerLog, formatClock } from './chunk-3IDNLZPR.js';
16
+ import { tagToPull, pullInstruction, imageTag, writeUpdateStatus } from './chunk-D3LS7E7U.js';
17
17
  import { isVersion, compareVersions, satisfiesRange } from './chunk-TQMI335S.js';
18
- import { checkFit } from './chunk-JYVBEWBC.js';
19
- import { isBuiltinContainer, isBuiltinVm, isBuiltinProcess, loadRunnerConfig, checkHooks, builtinKind, DEFAULT_UPDATE_MAX_WAIT_HOURS } from './chunk-YYGXCRIW.js';
20
- import { claimPidFile, writePidFile, readPidFile, releasePidFile } from './chunk-M6NNXKRM.js';
18
+ import { checkFit } from './chunk-3F7RC3UA.js';
19
+ import { isBuiltinContainer, isBuiltinVm, isBuiltinProcess, loadRunnerConfig, checkHooks, builtinKind, DEFAULT_UPDATE_MAX_WAIT_HOURS } from './chunk-2ZMJFGOZ.js';
20
+ import { claimPidFile, writePidFile, readPidFile, releasePidFile } from './chunk-IRTZYDZO.js';
21
21
  import { startTimeOf, isSameProcess } from './chunk-JBJTC3UU.js';
22
- import { writeJobFile, ensureRunnerIdentity, readJobFile, builderName, runnerLabelValue, ensureFailureCount, builderSpec, ensureBuilder, spawnRun, BUILD_LABEL, RUNNER_LABEL, readJobFileChecked } from './chunk-MFI55TNI.js';
22
+ import { writeJobFile, ensureRunnerIdentity, readJobFile, builderName, runnerLabelValue, ensureFailureCount, builderSpec, ensureBuilder, spawnRun, BUILD_LABEL, RUNNER_LABEL, readJobFileChecked } from './chunk-7YSR636F.js';
23
23
  import { exceedsDisk } from './chunk-YJLHUKYS.js';
24
- import { isSignatureRefusal, WorkCommandError, getJson, postJson } from './chunk-X7SFJZIG.js';
25
- import { loadHostKey, ensureHostKey, signerFor } from './chunk-R7TMTFJP.js';
26
- import { RUNNER_DIR_MODE, runnerDir, buildDir, attemptStamp, jobDir, RUNNER_FILE_MODE, jobsDir, pidFilePath, spoolDir, rootfsDir } from './chunk-DWVAG73B.js';
27
- import { parseClaimIdentity, parseClaimedRepositories, parseUnreachable, repositoriesOf, primaryOf, sharedUserEnvironment, JOB_MOUNT, takeClaudeCredential, heldClaudeCredential, claudeCredential, currentClaudeCredential } from './chunk-N5EEEKT6.js';
24
+ import { isSignatureRefusal, WorkCommandError, getJson, postJson } from './chunk-DBRB26R7.js';
25
+ import { loadHostKey, ensureHostKey, signerFor } from './chunk-IRF2FKB5.js';
26
+ import { RUNNER_DIR_MODE, runnerDir, buildDir, attemptStamp, jobDir, RUNNER_FILE_MODE, jobsDir, pidFilePath, spoolDir, rootfsDir } from './chunk-SOWXLIDN.js';
27
+ import { parseClaimIdentity, parseClaimedRepositories, parseUnreachable, repositoriesOf, primaryOf, sharedUserEnvironment, JOB_MOUNT, takeClaudeCredential, heldClaudeCredential, claudeCredential, currentClaudeCredential } from './chunk-WHCDULC4.js';
28
28
  import { resolveVersion } from './chunk-RA3O54FC.js';
29
29
  import { fdName } from './chunk-XD4ZCMA4.js';
30
30
  import { COMMAND_LOST_REASON, CONTAINER_STOPPED_REASON } from './chunk-MESOOLF4.js';
@@ -1140,17 +1140,21 @@ function deriveRepo(item) {
1140
1140
  const repoPart = hash === -1 ? item.trackerKey : item.trackerKey.slice(0, hash);
1141
1141
  return repoPart === "" ? void 0 : `${host}/${repoPart}`;
1142
1142
  }
1143
- async function listStartable(config, queue, fetchImpl) {
1143
+ async function listStartable(config, queue, fetchImpl, cursor = null) {
1144
1144
  const query = queue === "amend" ? "needs=amend&startable=true" : "startable=true";
1145
1145
  const page = await getJson(
1146
1146
  config.url,
1147
- `/v1/work-items?${query}`,
1147
+ `/v1/work-items?${query}${cursor === null ? "" : `&cursor=${encodeURIComponent(cursor)}`}`,
1148
1148
  config.apiKey,
1149
1149
  config.appId,
1150
1150
  fetchImpl,
1151
1151
  await signerFor(config.configPath)
1152
1152
  );
1153
- return Array.isArray(page.data) ? page.data : [];
1153
+ const next = page.pagination?.cursor;
1154
+ return {
1155
+ items: Array.isArray(page.data) ? page.data : [],
1156
+ cursor: typeof next === "string" && next !== "" && next !== cursor ? next : null
1157
+ };
1154
1158
  }
1155
1159
  function reloadConfig(state) {
1156
1160
  let mtimeMs;
@@ -1735,35 +1739,39 @@ async function runTick(state) {
1735
1739
  let claimed = false;
1736
1740
  for (const queue of QUEUE_ORDER) {
1737
1741
  if (!state.config.queues.includes(queue)) continue;
1738
- let items;
1739
- try {
1740
- items = await listStartable(state.config, queue, state.deps.fetchImpl);
1741
- reportRepeating(state, "the work item list", void 0);
1742
- state.lastWorkRequest = { ok: true };
1743
- } catch (err) {
1744
- state.lastWorkRequest = workRequestFromFailure(err);
1745
- reportRepeating(state, "the work item list", `list failed: ${describeCallFailure(err)} \xB7 retrying next tick`);
1746
- return;
1747
- }
1748
- for (const item of items) {
1749
- if (item.startable === false) continue;
1750
- if (!repoFilter.allows(deriveRepo(item))) {
1751
- filtered++;
1752
- continue;
1753
- }
1754
- const attempt = await tryClaimAndStart(state, item, queue);
1755
- if (attempt.kind === "started") {
1756
- claimed = true;
1757
- break;
1758
- }
1759
- if (attempt.kind === "outdated" || attempt.kind === "signature" || attempt.kind === "no_item_key" || attempt.kind === "no_branch" || attempt.kind === "unreadable_repositories") {
1742
+ let cursor = null;
1743
+ do {
1744
+ let page;
1745
+ try {
1746
+ page = await listStartable(state.config, queue, state.deps.fetchImpl, cursor);
1747
+ reportRepeating(state, "the work item list", void 0);
1748
+ state.lastWorkRequest = { ok: true };
1749
+ } catch (err) {
1750
+ state.lastWorkRequest = workRequestFromFailure(err);
1751
+ reportRepeating(state, "the work item list", `list failed: ${describeCallFailure(err)} \xB7 retrying next tick`);
1760
1752
  return;
1761
1753
  }
1762
- if (attempt.kind === "error") {
1763
- log.error(`claim for #${item.number} failed: ${attempt.reason} \xB7 retrying next tick`);
1764
- return;
1754
+ cursor = page.cursor;
1755
+ for (const item of page.items) {
1756
+ if (item.startable === false) continue;
1757
+ if (!repoFilter.allows(deriveRepo(item))) {
1758
+ filtered++;
1759
+ continue;
1760
+ }
1761
+ const attempt = await tryClaimAndStart(state, item, queue);
1762
+ if (attempt.kind === "started") {
1763
+ claimed = true;
1764
+ break;
1765
+ }
1766
+ if (attempt.kind === "outdated" || attempt.kind === "signature" || attempt.kind === "no_item_key" || attempt.kind === "no_branch" || attempt.kind === "unreadable_repositories") {
1767
+ return;
1768
+ }
1769
+ if (attempt.kind === "error") {
1770
+ log.error(`claim for #${item.number} failed: ${attempt.reason} \xB7 retrying next tick`);
1771
+ return;
1772
+ }
1765
1773
  }
1766
- }
1774
+ } while (!claimed && cursor !== null);
1767
1775
  if (claimed) break;
1768
1776
  }
1769
1777
  if (!claimed) break;
@@ -1779,7 +1787,7 @@ var CLAIM_REFUSAL_CODES = new Set(
1779
1787
  "pull_request_from_fork pull_request_on_default_branch pull_request_ambiguous pull_request_repository_not_connected repository_not_reachable branch_claimed_elsewhere".split(" ")
1780
1788
  );
1781
1789
  async function tryClaimAndStart(state, item, queue) {
1782
- const { postJson: postJson2 } = await import('./work-cmd-FOI74X5B.js');
1790
+ const { postJson: postJson2 } = await import('./work-cmd-RRHDQDOX.js');
1783
1791
  const log = logOf(state);
1784
1792
  const hostKey = await loadHostKey(state.config.configPath);
1785
1793
  const claim = await retrySend(
@@ -2955,7 +2963,7 @@ async function start(configPath, deps = { fetchImpl: fetch }) {
2955
2963
  check: update.check ? () => update.check(configPath) : async () => {
2956
2964
  const held = heldClaudeCredential();
2957
2965
  const env = held === void 0 ? process.env : { ...process.env, [held.variable]: held.value };
2958
- return (await import('./check-WJ4X2Q44.js')).runRunnerCheck(configPath, { fetchImpl: deps.fetchImpl, env });
2966
+ return (await import('./check-BKONE55O.js')).runRunnerCheck(configPath, { fetchImpl: deps.fetchImpl, env });
2959
2967
  },
2960
2968
  now: () => (deps.now ?? (() => /* @__PURE__ */ new Date()))().getTime(),
2961
2969
  log
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { detectActiveSession, autoConnect } from './chunk-NMIYK2G2.js';
4
- import { workPageUrl } from './chunk-QFNFBQCG.js';
5
- import { sanitizeTerminal } from './chunk-BUP5N3X6.js';
6
- import { resolveRepoIdentity } from './chunk-UHU7H57K.js';
3
+ import { detectActiveSession, autoConnect } from './chunk-SJ4DX2AD.js';
4
+ import { workPageUrl } from './chunk-3YLHIXLR.js';
5
+ import { sanitizeTerminal } from './chunk-HSUUTD4E.js';
6
+ import { resolveRepoIdentity } from './chunk-FTGJ3DPV.js';
7
7
  import { C } from './chunk-ANPNT6PM.js';
8
- import { resolveGatewayCredentials, unauthorizedMessage, defaultFetch } from './chunk-KJIUFOC4.js';
9
- import { signRunnerRequest } from './chunk-R7TMTFJP.js';
8
+ import { resolveGatewayCredentials, unauthorizedMessage, defaultFetch } from './chunk-AM3GMWQK.js';
9
+ import { signRunnerRequest } from './chunk-IRF2FKB5.js';
10
10
  import { readRepoConnection } from './chunk-BJ3KTMDH.js';
11
11
  import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
12
12
  import { homeFromEnv } from './chunk-VNVZDWO3.js';
@@ -428,7 +428,7 @@ async function runWorkLinkSession(opts) {
428
428
  return await linkSession(opts);
429
429
  } catch (err) {
430
430
  if (opts.logFailures) {
431
- const { logHookError } = await import('./hook-fast-UJPAWDAO.js');
431
+ const { logHookError } = await import('./hook-fast-A2N3PSXI.js');
432
432
  const reason = err instanceof Error ? err.message : String(err);
433
433
  logHookError(opts.home ?? homeFromEnv(opts.env ?? process.env), new Error(`work link-session #${opts.number} failed: ${reason}`));
434
434
  }
@@ -534,14 +534,33 @@ function repositoryDisconnectedLine(data) {
534
534
 
535
535
  `;
536
536
  }
537
+ function failingChecksSection(data) {
538
+ const checks = data.checks;
539
+ if (!Array.isArray(checks)) return "";
540
+ const failing = checks.filter((check) => check.result === "fail");
541
+ if (failing.length === 0) return "";
542
+ const lines = failing.flatMap((check) => {
543
+ const body = typeof check.body === "string" && check.body !== "" ? `: ${sanitizeTerminal(check.body)}` : "";
544
+ const items = Array.isArray(check.items) ? check.items : [];
545
+ return [
546
+ ` ${sanitizeTerminal(String(check.name))}${body}`,
547
+ ...items.filter((item) => item.result === "fail").map((item) => ` ${sanitizeTerminal(String(item.id))}${typeof item.reason === "string" ? ` ${C.dim}${sanitizeTerminal(item.reason)}${C.reset}` : ""}`)
548
+ ];
549
+ });
550
+ return `
551
+
552
+ Failing checks
553
+ ${lines.join("\n")}`;
554
+ }
537
555
  function statusOutput(data, json) {
538
556
  if (json) return JSON.stringify(data);
539
557
  const document = mergedUnverifiedLine(data) + repositoryDisconnectedLine(data) + JSON.stringify(data, null, 2);
558
+ const checks = failingChecksSection(data);
540
559
  const criteria = data.criteria;
541
- if (criteria === void 0) return document;
560
+ if (criteria === void 0) return `${document}${checks}`;
542
561
  if (criteria === null || !Array.isArray(criteria.items)) return `${document}
543
562
 
544
- Criteria: none recorded`;
563
+ Criteria: none recorded${checks}`;
545
564
  const mark = criteria.drafted === true ? ` ${C.dim}(drafted by the build)${C.reset}` : "";
546
565
  const lines = criteria.items.map((item) => {
547
566
  const proof = typeof item.proof === "string" ? ` ${C.dim}[proof: ${sanitizeTerminal(item.proof)}]${C.reset}` : "";
@@ -550,7 +569,7 @@ Criteria: none recorded`;
550
569
  return `${document}
551
570
 
552
571
  Criteria${mark}
553
- ${lines.join("\n")}`;
572
+ ${lines.join("\n")}${checks}`;
554
573
  }
555
574
  async function runWorkStatus(opts) {
556
575
  const cwd = opts.cwd ?? process.cwd();
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { removeRetiredSkills } from './chunk-P2RWZCV7.js';
4
- import { defaultFetch, resolveGatewayCredentials } from './chunk-KJIUFOC4.js';
5
- import { withTokenHeader } from './chunk-N5EEEKT6.js';
3
+ import { removeRetiredSkills } from './chunk-V6IYYQU3.js';
4
+ import { defaultFetch, resolveGatewayCredentials } from './chunk-AM3GMWQK.js';
5
+ import { withTokenHeader } from './chunk-WHCDULC4.js';
6
6
  import { appendContextProvenance } from './chunk-ZJSNLVCE.js';
7
- import { loadMaintainedFiles, writeMaintainedFiles } from './chunk-JGML2VUN.js';
7
+ import { loadMaintainedFiles, writeMaintainedFiles } from './chunk-AKKVPUGK.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-RKOTJQVG.js';
10
+ import { normalizeRepoName, parseOuterlayerConfig, classifyTree, emitTree } from './chunk-ZUOPFE22.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';