@outerlayer/cli 0.34.0-next.20261028105453 → 0.34.0-next.20261028132110

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 (116) hide show
  1. package/dist/{agent-setup-LZ7PEM6A.js → agent-setup-MO7DHLV4.js} +10 -10
  2. package/dist/{artifact-link-cmd-4XQJO55P.js → artifact-link-cmd-CSVFEM5O.js} +2 -2
  3. package/dist/{build-VVZHFSZK.js → build-3IZ6XHYN.js} +4 -4
  4. package/dist/{build-disk-QV4TO7HZ.js → build-disk-TEITBQKE.js} +4 -4
  5. package/dist/build-info.json +1 -1
  6. package/dist/{builder-6JLFMAGJ.js → builder-S42B4STV.js} +3 -3
  7. package/dist/{check-LMUTXMTY.js → check-E47RDQFK.js} +34 -34
  8. package/dist/{chunk-OFKM35MX.js → chunk-262MWE4Q.js} +5 -5
  9. package/dist/{chunk-N6V4ZHI7.js → chunk-26WUFKYZ.js} +4 -4
  10. package/dist/{chunk-XFJ7YOPD.js → chunk-2EEW6FJN.js} +1 -1
  11. package/dist/{chunk-3EU4MWCE.js → chunk-4557WV4R.js} +2 -2
  12. package/dist/{chunk-7LKOOGSN.js → chunk-47SFTQA5.js} +1 -1
  13. package/dist/{chunk-J7EJMIDR.js → chunk-54LIUIZL.js} +2 -2
  14. package/dist/{chunk-H5YUWLIY.js → chunk-6G3BG2GI.js} +3 -3
  15. package/dist/{chunk-AKQX462F.js → chunk-6MLX26T4.js} +3 -3
  16. package/dist/{chunk-ZIXLG6EQ.js → chunk-7XDF7PNF.js} +4 -4
  17. package/dist/{chunk-ITS67SH7.js → chunk-AJ3CC3HT.js} +99 -23
  18. package/dist/{chunk-LYCJQOO2.js → chunk-ARL6X6Y4.js} +2 -2
  19. package/dist/{chunk-AXKSVN4U.js → chunk-BEILLR5Q.js} +5 -5
  20. package/dist/{chunk-GJHOU5V3.js → chunk-BRBZKIZG.js} +2 -2
  21. package/dist/{chunk-5VKSPEST.js → chunk-BTA5QOKD.js} +3 -3
  22. package/dist/{chunk-NWHU5G6R.js → chunk-CKDSPW35.js} +1 -1
  23. package/dist/{chunk-6YIWAOHM.js → chunk-ECCAFFAH.js} +26 -13
  24. package/dist/{chunk-6WU2D2CY.js → chunk-ESK6EWAQ.js} +2 -2
  25. package/dist/{chunk-C2E4PWEN.js → chunk-FG564H3C.js} +5 -5
  26. package/dist/{chunk-A2KLVZBU.js → chunk-GH2HEEOH.js} +1 -1
  27. package/dist/{chunk-AVI3MGQO.js → chunk-GHQW2BBX.js} +1 -1
  28. package/dist/{chunk-6UHU7DHT.js → chunk-GHZLVKA3.js} +3 -3
  29. package/dist/{chunk-2LCNMAWP.js → chunk-HA46L5FG.js} +1 -1
  30. package/dist/{chunk-OVNF4LLC.js → chunk-HH3BQG65.js} +1 -1
  31. package/dist/{chunk-TZMDRHWB.js → chunk-IAVT7R6O.js} +4 -4
  32. package/dist/{chunk-QXAPVAPR.js → chunk-JDYBPAPP.js} +2 -2
  33. package/dist/{chunk-LEJWPGO7.js → chunk-LBEYOL5K.js} +3 -3
  34. package/dist/{chunk-N4KQMGEZ.js → chunk-NYMDS542.js} +2 -2
  35. package/dist/{chunk-TWFBOZQ5.js → chunk-OKJXZXYH.js} +4 -4
  36. package/dist/{chunk-EXKOPZQV.js → chunk-QELQ6Y4I.js} +6 -6
  37. package/dist/{chunk-LMYRR5MO.js → chunk-RPST2GNG.js} +2 -2
  38. package/dist/{chunk-UPA5KOOX.js → chunk-RQ3GCCHH.js} +1 -1
  39. package/dist/{chunk-7DHESPSV.js → chunk-S25I6OCB.js} +12 -12
  40. package/dist/{chunk-AGNFPJSP.js → chunk-S44ZN3CV.js} +1 -1
  41. package/dist/{chunk-5B6DLEVM.js → chunk-SH5JFBPO.js} +7 -7
  42. package/dist/{chunk-72N7GOLM.js → chunk-T664NDNT.js} +6 -6
  43. package/dist/{chunk-7JBG43BX.js → chunk-TTUI3S6B.js} +24 -14
  44. package/dist/{chunk-6CQXOTNL.js → chunk-TVDKDXW6.js} +4 -4
  45. package/dist/{chunk-S37IAT3A.js → chunk-UAINHP2C.js} +1 -1
  46. package/dist/{work-proofs-record-BCY52YK3.js → chunk-UE2C4STC.js} +177 -498
  47. package/dist/{chunk-IXPH4EXK.js → chunk-VEVNGDTP.js} +1 -1
  48. package/dist/{chunk-D7MWJM2G.js → chunk-WHONZ53R.js} +2 -2
  49. package/dist/{chunk-QTL7VZVF.js → chunk-X2ZJL7GA.js} +3 -3
  50. package/dist/{chunk-JNFLO6DA.js → chunk-YMYU56JD.js} +15 -13
  51. package/dist/{chunk-LASKTDCR.js → chunk-ZEFNJCN3.js} +1 -1
  52. package/dist/{chunk-SODV2YMW.js → chunk-ZXQEBRCB.js} +2 -2
  53. package/dist/{claude-launcher-XX2MLBDW.js → claude-launcher-TG7CHE3N.js} +5 -5
  54. package/dist/{cli-6YAN2USY.js → cli-3V7AMF2V.js} +111 -111
  55. package/dist/{command-GJKJ5WT4.js → command-57COSNSG.js} +20 -20
  56. package/dist/{config-AB5Y73BU.js → config-2EADRNJB.js} +5 -5
  57. package/dist/{connect-cmd-FOD7PKVW.js → connect-cmd-VBEYNPAK.js} +8 -8
  58. package/dist/{container-start-RWW7L5LC.js → container-start-RS3S6WYE.js} +31 -31
  59. package/dist/{context-cleanup-VJXMM27E.js → context-cleanup-CEZSKNVL.js} +3 -3
  60. package/dist/{context-show-cmd-A226Q6K5.js → context-show-cmd-GMF7YMSN.js} +9 -9
  61. package/dist/{control-plane-launch-RJSAIFEP.js → control-plane-launch-4WRFVYNP.js} +6 -6
  62. package/dist/{demo-voice-cmd-W4NYPCVL.js → demo-voice-cmd-KFNEU2GR.js} +14 -14
  63. package/dist/{dist-ZW7I72SD.js → dist-VPXROEZO.js} +2 -2
  64. package/dist/{docker-OQP6NU7P.js → docker-UP7EFFLL.js} +3 -3
  65. package/dist/{doctor-OXMOYIKK.js → doctor-B2EZV6SJ.js} +21 -21
  66. package/dist/{emit-artifact-cmd-X2YWXLKQ.js → emit-artifact-cmd-NLCKM5TU.js} +13 -13
  67. package/dist/{emit-cmd-C3BUFAUR.js → emit-cmd-4G3443OJ.js} +6 -6
  68. package/dist/{emit-criteria-cmd-HYKOTFXG.js → emit-criteria-cmd-GO3TDUCG.js} +10 -10
  69. package/dist/{emit-demo-cmd-DTARV6RI.js → emit-demo-cmd-EJBQHFR2.js} +14 -14
  70. package/dist/{emit-finding-cmd-GSLYQC43.js → emit-finding-cmd-PHUHZLQ3.js} +10 -10
  71. package/dist/{emit-result-cmd-PKJH76NG.js → emit-result-cmd-UJSWTGDG.js} +12 -12
  72. package/dist/{emit-step-cmd-IW2Y4N67.js → emit-step-cmd-M2JEWJ4Q.js} +10 -10
  73. package/dist/{find-unit-2C6EK5YY.js → find-unit-H5DKNRBG.js} +7 -7
  74. package/dist/{findings-cmd-CFF2I3TU.js → findings-cmd-O3VCFA55.js} +10 -10
  75. package/dist/{fleet-readiness-ZSG4UDYR.js → fleet-readiness-SXIYBEWC.js} +8 -8
  76. package/dist/{governing-source-TUGE7QJY.js → governing-source-QEXH6MIZ.js} +13 -13
  77. package/dist/{hook-fast-5C4MQ5ZS.js → hook-fast-DPC75LFQ.js} +1 -1
  78. package/dist/{host-checks-77FAAR2A.js → host-checks-DN6HLRIW.js} +29 -29
  79. package/dist/index.js +4 -4
  80. package/dist/{init-WU2S3WRO.js → init-6D3RKRRB.js} +20 -20
  81. package/dist/{init-NSTWRPRM.js → init-SCUDJ6QI.js} +20 -20
  82. package/dist/{init-cmd-H4HYM5V3.js → init-cmd-ELTRVJLG.js} +18 -18
  83. package/dist/{init-update-WOYX2AIO.js → init-update-4GUGHNS5.js} +17 -17
  84. package/dist/{layout-KRWLUGYZ.js → layout-7UOBWNYO.js} +4 -4
  85. package/dist/{login-browser-BAFZYJBR.js → login-browser-Q25ZNSQ3.js} +2 -2
  86. package/dist/{logs-E2O53NUI.js → logs-HUENB7U4.js} +1 -0
  87. package/dist/{loop-QZV7AR3F.js → loop-LILQBIHK.js} +33 -33
  88. package/dist/{machine-IRBCGRUO.js → machine-UVPCJGJU.js} +20 -20
  89. package/dist/{machine-skills-YVS4ZYCT.js → machine-skills-KYN7XJEJ.js} +4 -4
  90. package/dist/{runner-env-TYGE6BFU.js → runner-env-K4DOSDUV.js} +7 -7
  91. package/dist/{runner-identity-B2MZQFYN.js → runner-identity-4RVY2MHX.js} +3 -3
  92. package/dist/{runner-key-NPPEGU6H.js → runner-key-4OIOA3CD.js} +20 -20
  93. package/dist/{session-sender-ZS4OIE3M.js → session-sender-N6QHL35T.js} +13 -13
  94. package/dist/{spec-cmd-N45YF6UL.js → spec-cmd-EZGRJPUQ.js} +11 -11
  95. package/dist/{starter-pack-QWDE6FDK.js → starter-pack-KB3YH4KX.js} +5 -5
  96. package/dist/{status-QPV75ZNS.js → status-5RSSYZBU.js} +29 -29
  97. package/dist/{sync-cmd-VCB4YDCB.js → sync-cmd-NEAZMEIL.js} +12 -12
  98. package/dist/{update-steps-YY3DZ5NW.js → update-steps-6JOHOMGM.js} +30 -30
  99. package/dist/{watch-XU2AUR6Z.js → watch-FOY5LSSS.js} +12 -12
  100. package/dist/{work-claim-cmd-WEP3OWAU.js → work-claim-cmd-EJT55FZY.js} +15 -15
  101. package/dist/{work-cmd-DWR27TKQ.js → work-cmd-KLPPJG4U.js} +10 -10
  102. package/dist/{work-comment-cmd-HSDVPYWM.js → work-comment-cmd-TT6TFF6Q.js} +11 -11
  103. package/dist/{work-demo-cmd-3EQYHRBP.js → work-demo-cmd-22PLEX4X.js} +10 -10
  104. package/dist/{work-logs-cmd-3YACDH7Y.js → work-logs-cmd-DWK5AYLK.js} +10 -10
  105. package/dist/{work-open-pr-cmd-MHVTTTLD.js → work-open-pr-cmd-MKHZBGA6.js} +11 -11
  106. package/dist/{work-pr-cmd-XETSFFM2.js → work-pr-cmd-P7PRHAJD.js} +10 -10
  107. package/dist/{work-proofs-cmd-R53HHZJB.js → work-proofs-cmd-7C22LBBE.js} +12 -12
  108. package/dist/work-proofs-record-SLIZUXUY.js +514 -0
  109. package/dist/{work-stop-cmd-4BE2B7TY.js → work-stop-cmd-U42TFT7X.js} +10 -10
  110. package/package.json +1 -1
  111. package/skill-pack/maintained/outerlayer-amend/SKILL.md +2 -3
  112. package/skill-pack/maintained/outerlayer-build/SKILL.md +3 -1
  113. package/skill-pack/maintained/outerlayer-build/references/evidence.md +7 -0
  114. package/skill-pack/maintained/outerlayer-build/scripts/criterion-citations.mjs +44 -4
  115. package/dist/chunk-6CK2OC4Q.js +0 -152
  116. /package/dist/{chunk-DINRXUQA.js → chunk-IXRUVR25.js} +0 -0
@@ -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-GJHOU5V3.js';
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-A2KLVZBU.js';
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-DINRXUQA.js';
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-DINRXUQA.js';
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,15 +1,15 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { criteriaOf, loadCitationFinder, hostItemsOf, MAX_TEST_FILE_BYTES, MAX_TEST_FILES, criterionInputs, NO_CITING_TEST_REASON, NO_VERDICT_REASON, planCriteria } from './chunk-6CK2OC4Q.js';
4
- import { WorkCommandError, resolveCredentials, getJson } from './chunk-72N7GOLM.js';
3
+ import { criteriaOf, loadCitationFinder, hostItemsOf, testFileMatcher, criterionInputs, NO_CITING_TEST_REASON, NO_VERDICT_REASON, planCriteria, NO_TEST_FILES_REASON, MAX_TEST_FILE_BYTES, MAX_TEST_FILES } from './chunk-UE2C4STC.js';
4
+ import { WorkCommandError, resolveCredentials, getJson } from './chunk-T664NDNT.js';
5
5
  import { C } from './chunk-ANPNT6PM.js';
6
- import { sanitizeTerminal } from './chunk-IXPH4EXK.js';
6
+ import { sanitizeTerminal } from './chunk-VEVNGDTP.js';
7
7
  import { defaultFetch } from './chunk-IZKUPAXF.js';
8
- import { resolveRepoIdentity } from './chunk-A2KLVZBU.js';
8
+ import { resolveRepoIdentity } from './chunk-GH2HEEOH.js';
9
9
  import { parseWorkItemEnv } from './chunk-T2Q7ISPE.js';
10
10
  import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
11
11
  import { readDeliveryRecord } from './chunk-YQR6E6OV.js';
12
- import { inferArtifactKind, mediaTypeForArtifactPath, WORK_ITEM_COMMENT_MAX_BODY_LENGTH } from './chunk-DINRXUQA.js';
12
+ import { inferArtifactKind, mediaTypeForArtifactPath, WORK_ITEM_COMMENT_MAX_BODY_LENGTH } from './chunk-IXRUVR25.js';
13
13
  import { createHash } from 'crypto';
14
14
  import { spawnSync } from 'child_process';
15
15
  import { existsSync, statSync, readFileSync } from 'fs';
@@ -87,13 +87,13 @@ function unprovenCriteria(input) {
87
87
  commits.set(item.id, commit);
88
88
  previous.set(item.id, { ...item, inputs: criterionInputs({ brief: NO_BRIEF, criterion, citations: judgedCitations, testFiles: judged }) });
89
89
  }
90
- const plan = planCriteria({ criteria, citations, inputs, previous: [...previous.values()] });
90
+ const plan = planCriteria({ criteria, citations, inputs, previous: [...previous.values()], noTestFiles: input.headFiles.length === 0 });
91
91
  const settled = new Map(plan.settled.map((item) => [item.id, item]));
92
92
  const entries = [];
93
93
  for (const criterion of criteria) {
94
94
  const item = settled.get(criterion.id);
95
95
  if (item === void 0 || item.result !== "fail") continue;
96
- if (item.refs === void 0) entries.push({ id: criterion.id, proof: null, state: "uncited" });
96
+ if (item.refs === void 0) entries.push({ id: criterion.id, proof: null, state: "uncited", ...item.reason === NO_TEST_FILES_REASON ? { noTestFiles: true } : {} });
97
97
  else entries.push({ id: criterion.id, proof: null, state: "failed", commit: commits.get(criterion.id) ?? "", reason: item.reason ?? "no reason recorded" });
98
98
  }
99
99
  return { entries, notes };
@@ -129,7 +129,7 @@ function testFilesAt(cwd, head, isTest) {
129
129
  const picked = /* @__PURE__ */ new Map();
130
130
  for (const entry of listing.toString("utf8").split("\0")) {
131
131
  const match = /^(\d+) blob ([0-9a-f]+)\s+(\d+)\t(.*)$/s.exec(entry);
132
- if (match === null || !match[1].startsWith("100") || Number(match[3]) > MAX_TEST_FILE_BYTES || !isTest.test(match[4])) continue;
132
+ if (match === null || !match[1].startsWith("100") || Number(match[3]) > MAX_TEST_FILE_BYTES || !isTest(match[4])) continue;
133
133
  if (picked.size >= MAX_TEST_FILES) break;
134
134
  picked.set(match[4], match[2]);
135
135
  }
@@ -140,6 +140,16 @@ function testFilesAt(cwd, head, isTest) {
140
140
  return void 0;
141
141
  }
142
142
  }
143
+ function proofsFileAt(cwd, commit) {
144
+ try {
145
+ return git(cwd, ["show", `${commit}:.outerlayer-proofs.yaml`]).toString("utf8");
146
+ } catch {
147
+ return void 0;
148
+ }
149
+ }
150
+ function testFilesOf(cwd, commit, finder) {
151
+ return testFilesAt(cwd, commit, testFileMatcher(finder, proofsFileAt(cwd, commit)));
152
+ }
143
153
  function checkoutPlaces(cwd) {
144
154
  for (let dir = resolve(cwd); ; dir = dirname(dir)) {
145
155
  const dotGit = resolve(dir, ".git");
@@ -167,14 +177,14 @@ function governingDir(cwd) {
167
177
  async function testProofMode(cwd) {
168
178
  const dir = governingDir(cwd);
169
179
  if (dir === void 0) return "any";
170
- const { testProofIn } = await import('./host-checks-77FAAR2A.js');
180
+ const { testProofIn } = await import('./host-checks-DN6HLRIW.js');
171
181
  return testProofIn(dir);
172
182
  }
173
183
  async function judgeCheckName(cwd) {
174
184
  const dir = governingDir(cwd);
175
185
  if (dir === void 0) return {};
176
186
  if (!existsSync(dir)) return { note: `the governed context at ${dir} is not readable` };
177
- const { checksIn, isJudgeCheck } = await import('./host-checks-77FAAR2A.js');
187
+ const { checksIn, isJudgeCheck } = await import('./host-checks-DN6HLRIW.js');
178
188
  const quiet = { line: () => void 0, error: () => void 0 };
179
189
  const check = checksIn(dir, quiet, "").checks.find((c) => isJudgeCheck(c) && c.judge.subjects === "criteria");
180
190
  return check === void 0 ? {} : { name: check.name };
@@ -186,7 +196,7 @@ async function findUnproven(input) {
186
196
  const criteria = criteriaOf(input.item);
187
197
  if (criteria === void 0) return { entries: [], notes: [] };
188
198
  const finder = await loadCitationFinder();
189
- const headFiles = testFilesAt(input.cwd, input.head, finder.TEST_FILE);
199
+ const headFiles = testFilesOf(input.cwd, input.head, finder);
190
200
  if (headFiles === void 0) return { entries: [], notes: [`the test files at ${input.head.slice(0, 7)} cannot be read`] };
191
201
  const items = hostItemsOf(input.item, found.name);
192
202
  const result = unprovenCriteria({
@@ -194,7 +204,7 @@ async function findUnproven(input) {
194
204
  finder,
195
205
  headFiles,
196
206
  items,
197
- testFilesAt: (commit) => testFilesAt(input.cwd, commit, finder.TEST_FILE)
207
+ testFilesAt: (commit) => testFilesOf(input.cwd, commit, finder)
198
208
  });
199
209
  const check = Object(input.item).checks?.find((c) => Object(c).name === found.name);
200
210
  if (check?.source === "host" && check.result === "fail" && items.length === 0) result.notes.unshift("the gateway returned no check items for the judge's result");
@@ -248,6 +258,9 @@ var STATE_LABEL = { current: "current", "out-of-date": "out of date", missing: "
248
258
  function renderEntry(e) {
249
259
  const id = sanitizeTerminal(e.id);
250
260
  if (e.state === "uncited") {
261
+ if (e.noTestFiles === true) {
262
+ return `${id} none uncited No file at this commit is recognized as a test. Name the repository's test files with a runner glob in \`.outerlayer-proofs.yaml\`.`;
263
+ }
251
264
  return `${id} none uncited No test at HEAD cites it. Put ${id} in a test's title or in a comment above the test, as in // proves ${id}`;
252
265
  }
253
266
  if (e.state === "failed") {
@@ -314,7 +327,7 @@ async function runWorkProofs(opts) {
314
327
  async function runWorkProofsCommand(opts) {
315
328
  try {
316
329
  if (opts.record) {
317
- const { runWorkProofsRecord } = await import('./work-proofs-record-BCY52YK3.js');
330
+ const { runWorkProofsRecord } = await import('./work-proofs-record-SLIZUXUY.js');
318
331
  const result2 = await runWorkProofsRecord(opts);
319
332
  process.exitCode = result2.exitCode;
320
333
  return;
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { stripTerminalControls } from './chunk-ITS67SH7.js';
3
+ import { stripTerminalControls } from './chunk-AJ3CC3HT.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-OQP6NU7P.js')).spawnRun;
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,23 +1,23 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { uploadSpooledSteps } from './chunk-ZIXLG6EQ.js';
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-IXPH4EXK.js';
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-D7MWJM2G.js';
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-A2KLVZBU.js';
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-DINRXUQA.js';
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-DINRXUQA.js';
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-N4KQMGEZ.js';
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';
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { scrubReason, stripTerminalControls } from './chunk-ITS67SH7.js';
4
- import { checkFit, RUNNER_RESERVE_BYTES } from './chunk-N4KQMGEZ.js';
3
+ import { scrubReason, stripTerminalControls } from './chunk-AJ3CC3HT.js';
4
+ import { checkFit, RUNNER_RESERVE_BYTES } from './chunk-NYMDS542.js';
5
5
  import { RunnerAlreadyRunningError, readPidFile } from './chunk-64LLUVJR.js';
6
6
  import { isSameProcess } from './chunk-JBJTC3UU.js';
7
- import { isSignatureRefusal, postJson } from './chunk-72N7GOLM.js';
7
+ import { isSignatureRefusal, postJson } from './chunk-T664NDNT.js';
8
8
  import { signerFor } from './chunk-VJQQVTCS.js';
9
9
  import { pidFilePath } from './chunk-2CW2QMSG.js';
10
10
  import { readFileSync } from 'fs';
@@ -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-A2KLVZBU.js';
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-XFJ7YOPD.js';
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,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-J7EJMIDR.js';
5
- import { skillsBaseFor } from './chunk-LYCJQOO2.js';
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-OVNF4LLC.js';
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-UPA5KOOX.js';
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-7LKOOGSN.js';
4
- import { parseSize } from './chunk-2LCNMAWP.js';
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';
@@ -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-GJHOU5V3.js';
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-A2KLVZBU.js';
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-DINRXUQA.js';
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';
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { builtinKind, keepsHostBuilder } from './chunk-QXAPVAPR.js';
4
- import { parseSize } from './chunk-2LCNMAWP.js';
3
+ import { builtinKind, keepsHostBuilder } from './chunk-JDYBPAPP.js';
4
+ import { parseSize } from './chunk-HA46L5FG.js';
5
5
  import { runnerDir } from './chunk-2CW2QMSG.js';
6
6
  import { FD_SLOTS_PER_BUILD, FD_STORE_ENV, BUILD_SLICE_MEMORY_ENV, CLAUDE_CREDENTIAL_ID, CLAUDE_ENV_FILE, credentialLineIn, withoutCredentialLines } from './chunk-4N7BQBO4.js';
7
7
  import { existsSync, readFileSync, writeFileSync, chmodSync, renameSync } from 'fs';
@@ -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 { isAgentsMdLayout, discoverOuterlayerPaths, isForeignTree, toRepoRelative } from './chunk-LYCJQOO2.js';
5
- import { retiredSkillPaths, removeRetiredSkills } from './chunk-LMYRR5MO.js';
6
- import { maintainedFilesForExistingSkills, loadMaintainedFiles, writeMaintainedFiles } from './chunk-OVNF4LLC.js';
4
+ import { isAgentsMdLayout, discoverOuterlayerPaths, isForeignTree, toRepoRelative } from './chunk-ARL6X6Y4.js';
5
+ import { retiredSkillPaths, removeRetiredSkills } from './chunk-RPST2GNG.js';
6
+ import { maintainedFilesForExistingSkills, loadMaintainedFiles, writeMaintainedFiles } from './chunk-HH3BQG65.js';
7
7
  import { cliInvocation } from './chunk-CRB3POP4.js';
8
- import { emitTree, generatedHeaderSource, parseOuterlayerConfig, classifyTree } from './chunk-XFJ7YOPD.js';
8
+ import { emitTree, generatedHeaderSource, parseOuterlayerConfig, classifyTree } from './chunk-2EEW6FJN.js';
9
9
  import { existsSync, readFileSync, mkdirSync, writeFileSync, copyFileSync, unlinkSync, rmdirSync, readdirSync } from 'fs';
10
10
  import { join, dirname } from 'path';
11
11
 
@@ -1,16 +1,16 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { sanitizeTerminal } from './chunk-IXPH4EXK.js';
4
- import { isAgentsMdLayout } from './chunk-LYCJQOO2.js';
3
+ import { sanitizeTerminal } from './chunk-VEVNGDTP.js';
4
+ import { isAgentsMdLayout } from './chunk-ARL6X6Y4.js';
5
5
  import { resolveGatewayCredentials, defaultFetch } from './chunk-IZKUPAXF.js';
6
6
  import { versionAtLeast } from './chunk-HCVLP7XA.js';
7
7
  import { findGitDirs } from './chunk-BJ3KTMDH.js';
8
- import { machineSkillsState, staleClaudeSkills } from './chunk-LASKTDCR.js';
9
- import { AGENTS_SKILLS_BASE, skillDir, namesCore, MACHINE_SKILL_PATH, isMaintainedCopy, loadTemplateFiles } from './chunk-OVNF4LLC.js';
8
+ import { machineSkillsState, staleClaudeSkills } from './chunk-ZEFNJCN3.js';
9
+ import { AGENTS_SKILLS_BASE, skillDir, namesCore, MACHINE_SKILL_PATH, isMaintainedCopy, loadTemplateFiles } from './chunk-HH3BQG65.js';
10
10
  import { MAINTAINED_SKILLS } from './chunk-CDDED64E.js';
11
11
  import { cliInvocation } from './chunk-CRB3POP4.js';
12
- import { hasSymlinkComponent } from './chunk-UPA5KOOX.js';
13
- import { emitTree, ALL_TARGET_IDS, classifyTree, splitRawFile } from './chunk-XFJ7YOPD.js';
12
+ import { hasSymlinkComponent } from './chunk-RQ3GCCHH.js';
13
+ import { emitTree, ALL_TARGET_IDS, classifyTree, splitRawFile } from './chunk-2EEW6FJN.js';
14
14
  import { execFileSync } from 'child_process';
15
15
  import { existsSync, readFileSync, writeFileSync, realpathSync, readdirSync } from 'fs';
16
16
  import { join, dirname, posix, basename, isAbsolute, relative } from 'path';
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { skillDir, FORMER_MAINTAINED_NAMES, isMaintainedCopy } from './chunk-OVNF4LLC.js';
3
+ import { skillDir, FORMER_MAINTAINED_NAMES, isMaintainedCopy } from './chunk-HH3BQG65.js';
4
4
  import { cliInvocation } from './chunk-CRB3POP4.js';
5
- import { emitTree, ALL_TARGET_IDS, classifyTree } from './chunk-XFJ7YOPD.js';
5
+ import { emitTree, ALL_TARGET_IDS, classifyTree } from './chunk-2EEW6FJN.js';
6
6
  import { readFileSync, existsSync, unlinkSync, rmdirSync, readdirSync } from 'fs';
7
7
  import { join, dirname, relative, sep } from 'path';
8
8
 
@@ -2,7 +2,7 @@
2
2
  import { createRequire } from 'node:module';
3
3
  import { readContextManifest, removeContextManifest } from './chunk-YQR6E6OV.js';
4
4
  import { removePreCommitGuardHook } from './chunk-TUSYOL2O.js';
5
- import { CONTEXT_PIN_FILENAME } from './chunk-XFJ7YOPD.js';
5
+ import { CONTEXT_PIN_FILENAME } from './chunk-2EEW6FJN.js';
6
6
  import { execFileSync } from 'child_process';
7
7
  import { lstatSync, existsSync, unlinkSync, readdirSync, rmdirSync, readFileSync, mkdirSync, writeFileSync } from 'fs';
8
8
  import { join, dirname, isAbsolute } from 'path';
@@ -1,18 +1,18 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { checkStarterFiles, contextIsGoverned } from './chunk-TZMDRHWB.js';
4
- import { resolveCredentials, getJson, WorkCommandError } from './chunk-72N7GOLM.js';
5
- import { isLinkedRepository } from './chunk-N6V4ZHI7.js';
3
+ import { checkStarterFiles, contextIsGoverned } from './chunk-IAVT7R6O.js';
4
+ import { resolveCredentials, getJson, WorkCommandError } from './chunk-T664NDNT.js';
5
+ import { isLinkedRepository } from './chunk-26WUFKYZ.js';
6
6
  import { C } from './chunk-ANPNT6PM.js';
7
- import { fleetCheck, checkBuildSkill, checkMachineSkills, checkCommittedMaintainedSkills, checkMaintainedReferences, checkIgnoredSkillFolders } from './chunk-EXKOPZQV.js';
8
- import { sanitizeTerminal } from './chunk-IXPH4EXK.js';
9
- import { checkFormerSkillNames } from './chunk-LMYRR5MO.js';
7
+ import { fleetCheck, checkBuildSkill, checkMachineSkills, checkCommittedMaintainedSkills, checkMaintainedReferences, checkIgnoredSkillFolders } from './chunk-QELQ6Y4I.js';
8
+ import { sanitizeTerminal } from './chunk-VEVNGDTP.js';
9
+ import { checkFormerSkillNames } from './chunk-RPST2GNG.js';
10
10
  import { resolveGatewayCredentials, defaultFetch } from './chunk-IZKUPAXF.js';
11
- import { sanitizeForContext, spoolDir, assessSyncHealth, readSyncStatus, SYNC_STALE_AFTER_MS, formatAgo, checkInstalledCliStaleness, workspaceRootOf, hookFiredMarkerPath, refreshCommand } from './chunk-D7MWJM2G.js';
11
+ import { sanitizeForContext, spoolDir, assessSyncHealth, readSyncStatus, SYNC_STALE_AFTER_MS, formatAgo, checkInstalledCliStaleness, workspaceRootOf, hookFiredMarkerPath, refreshCommand } from './chunk-WHONZ53R.js';
12
12
  import { readStatuslineState, STATE_FRESH_MS } from './chunk-I7RZHMXW.js';
13
13
  import { hookCommandEscapesControlPlane, CONTROL_PLANE_DIR_VARIABLE } from './chunk-HCVLP7XA.js';
14
14
  import { findGitDirs } from './chunk-BJ3KTMDH.js';
15
- import { resolveRepoIdentity, compareVersions, SUPPORTED_VERSIONS } from './chunk-A2KLVZBU.js';
15
+ import { resolveRepoIdentity, compareVersions, SUPPORTED_VERSIONS } from './chunk-GH2HEEOH.js';
16
16
  import { cliInvocation } from './chunk-CRB3POP4.js';
17
17
  import { readSettings, settingsPath, isOurStatuslineSlot, statuslineWrappedOriginal, REGISTERED_EVENTS, isOurHookCommand, ourCommandBins, cliBinResolvable, ourDirectScriptBins, wrappedOriginalCommand } from './chunk-URIZRCRY.js';
18
18
  import { readDeliveryRecord, readDegraded, readSourceCache } from './chunk-YQR6E6OV.js';
@@ -1195,8 +1195,8 @@ function doctorExitCode(checks) {
1195
1195
 
1196
1196
  // src/doctor-report.ts
1197
1197
  async function gatherDoctorChecks() {
1198
- const { DEFAULT_BUILD_DISK, DEFAULT_CACHE_DISK } = await import('./build-disk-QV4TO7HZ.js');
1199
- const { defaultRunnerConfigPath, hasRunnerBlock, loadRunnerConfig, runnerVmOf } = await import('./config-AB5Y73BU.js');
1198
+ const { DEFAULT_BUILD_DISK, DEFAULT_CACHE_DISK } = await import('./build-disk-TEITBQKE.js');
1199
+ const { defaultRunnerConfigPath, hasRunnerBlock, loadRunnerConfig, runnerVmOf } = await import('./config-2EADRNJB.js');
1200
1200
  const configPath = defaultRunnerConfigPath();
1201
1201
  const runnerHost = hasRunnerBlock(configPath);
1202
1202
  const hooks = (() => {
@@ -1217,7 +1217,7 @@ async function gatherDoctorChecks() {
1217
1217
  const { runnerVmCheck } = await import('./doctor-53F2PYY7.js');
1218
1218
  checks.push(runnerVmCheck(configPath, { lima: realLima(), home: homeFromEnv(), instance: runnerVm.instance }));
1219
1219
  } else if (hasRunnerBlock(configPath)) {
1220
- const { runnerHostChecks } = await import('./doctor-OXMOYIKK.js');
1220
+ const { runnerHostChecks } = await import('./doctor-B2EZV6SJ.js');
1221
1221
  const gateway = (() => {
1222
1222
  try {
1223
1223
  const { url, apiKey, appId } = loadRunnerConfig(configPath);
@@ -1244,7 +1244,7 @@ async function gatherDoctorChecks() {
1244
1244
  const service = await (async () => {
1245
1245
  const { existsSync: existsSync3 } = await import('fs');
1246
1246
  if (process.platform !== "linux" || !existsSync3("/run/systemd/system")) return void 0;
1247
- const { inspectRunnerService } = await import('./find-unit-2C6EK5YY.js');
1247
+ const { inspectRunnerService } = await import('./find-unit-H5DKNRBG.js');
1248
1248
  return inspectRunnerService(configPath);
1249
1249
  })();
1250
1250
  checks.push(...await runnerHostChecks({ configPath, hooks, gateway, repos, runner, service }));
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
3
  import { toolsDockerfile } from './chunk-7XZQTJOD.js';
4
- import { runnerLabelValue } from './chunk-2LCNMAWP.js';
4
+ import { runnerLabelValue } from './chunk-HA46L5FG.js';
5
5
  import { RecipeError, locateRecipe, readRecipe, assertBuildable, writeSanitizedRecipe, classifyProperties, SANITIZED_NAME } from './chunk-CM4J53WZ.js';
6
6
  import { CLAUDE_CODE_VERSION, NODE_IMAGE, UNIVERSAL_IMAGE, MEDIA_PINS, TINI_VERSION, GH_VERSION, UNIVERSAL_IMAGE_DIGEST, UNIVERSAL_IMAGE_REPOSITORY, UNIVERSAL_IMAGE_SOURCE } from './chunk-D3CT6XQ4.js';
7
7
  import { claimPidFile, RunnerAlreadyRunningError, releasePidFile } from './chunk-64LLUVJR.js';
@@ -1,16 +1,16 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { runEmit } from './chunk-TWFBOZQ5.js';
3
+ import { runEmit } from './chunk-OKJXZXYH.js';
4
4
  import { addStdioMcpEntryIfAbsent, addDocsMcpEntryIfAbsent, DOCS_MCP_SERVER_NAME } from './chunk-KT4CN6OU.js';
5
- import { installStarterPack } from './chunk-J7EJMIDR.js';
5
+ import { installStarterPack } from './chunk-54LIUIZL.js';
6
6
  import { C } from './chunk-ANPNT6PM.js';
7
- import { AGENTS_MD_LAYOUT, declareAgentsMdLayout, linkClaudeSkills, SKILLS_LINK_PATH, describeSkillsLink, isAgentsMdLayout, holdsTodaysLayoutSources, discoverOuterlayerPaths } from './chunk-LYCJQOO2.js';
8
- import { resolveGitCommonDir, defaultGitRunner } from './chunk-QTL7VZVF.js';
9
- import { loadTemplateFiles, loadMaintainedFiles, skillDir, AGENTS_SKILLS_BASE } from './chunk-OVNF4LLC.js';
7
+ import { AGENTS_MD_LAYOUT, declareAgentsMdLayout, linkClaudeSkills, SKILLS_LINK_PATH, describeSkillsLink, isAgentsMdLayout, holdsTodaysLayoutSources, discoverOuterlayerPaths } from './chunk-ARL6X6Y4.js';
8
+ import { resolveGitCommonDir, defaultGitRunner } from './chunk-X2ZJL7GA.js';
9
+ import { loadTemplateFiles, loadMaintainedFiles, skillDir, AGENTS_SKILLS_BASE } from './chunk-HH3BQG65.js';
10
10
  import { cliInvocation } from './chunk-CRB3POP4.js';
11
- import { linkedAgentsPath } from './chunk-UPA5KOOX.js';
11
+ import { linkedAgentsPath } from './chunk-RQ3GCCHH.js';
12
12
  import { cloneIsGoverned } from './chunk-YQR6E6OV.js';
13
- import { generatedHeaderSource } from './chunk-XFJ7YOPD.js';
13
+ import { generatedHeaderSource } from './chunk-2EEW6FJN.js';
14
14
  import { execFileSync } from 'child_process';
15
15
  import { existsSync, mkdirSync, writeFileSync } from 'fs';
16
16
  import { join, dirname } from 'path';
@@ -1,14 +1,14 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
3
  import { detectActiveSession } from './chunk-IP7BIBXJ.js';
4
- import { autoConnect } from './chunk-GJHOU5V3.js';
5
- import { workPageUrl } from './chunk-N6V4ZHI7.js';
4
+ import { autoConnect } from './chunk-BRBZKIZG.js';
5
+ import { workPageUrl } from './chunk-26WUFKYZ.js';
6
6
  import { C } from './chunk-ANPNT6PM.js';
7
- import { sanitizeTerminal } from './chunk-IXPH4EXK.js';
7
+ import { sanitizeTerminal } from './chunk-VEVNGDTP.js';
8
8
  import { resolveGatewayCredentials, unauthorizedMessage, defaultFetch } from './chunk-IZKUPAXF.js';
9
9
  import { signRunnerRequest } from './chunk-VJQQVTCS.js';
10
10
  import { readRepoConnection } from './chunk-BJ3KTMDH.js';
11
- import { resolveRepoIdentity } from './chunk-A2KLVZBU.js';
11
+ import { resolveRepoIdentity } from './chunk-GH2HEEOH.js';
12
12
  import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
13
13
  import { homeFromEnv } from './chunk-VNVZDWO3.js';
14
14
 
@@ -44,7 +44,7 @@ var TRACKERS = {
44
44
  connect: {
45
45
  kind: "form",
46
46
  summary: "Read the projects you pick on a site, and file specs as issues, with a service account. One webhook is created in Jira by an admin.",
47
- intro: "Uses a service account's OAuth client credential. Create one under Atlassian administration, then paste it here. Give it read:jira-work, and write:jira-work to file specs. A credential's scopes are fixed when it is created.",
47
+ intro: "Uses a service account's OAuth client credential. Create one under Atlassian administration, then paste it here. Give it read:jira-work, and write:jira-work to file specs and to move issues to In progress. The service account also needs the Browse projects and Transition issues project permissions. A credential's scopes are fixed when it is created.",
48
48
  notice: "After connecting, you get a webhook URL and secret to put on one webhook in Jira. That is the only manual step, and the only time the secret is shown.",
49
49
  fields: [
50
50
  { name: "siteUrl", label: "Site URL", placeholder: "https://your-team.atlassian.net" },
@@ -471,7 +471,7 @@ async function runWorkLinkSession(opts) {
471
471
  return await linkSession(opts);
472
472
  } catch (err) {
473
473
  if (opts.logFailures) {
474
- const { logHookError } = await import('./hook-fast-5C4MQ5ZS.js');
474
+ const { logHookError } = await import('./hook-fast-DPC75LFQ.js');
475
475
  const reason = err instanceof Error ? err.message : String(err);
476
476
  logHookError(opts.home ?? homeFromEnv(opts.env ?? process.env), new Error(`work link-session #${opts.number} failed: ${reason}`));
477
477
  }
@@ -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-AGNFPJSP.js';
4
+ import { readDefaultBranchHead, cloneRepository, buildRepositoryImage, prepareImageBuild, KEY_PREFIX, TAG_HOST, SHARED_OWNER, SHARED_NAME, metadataFromLabels, writeRecord } from './chunk-S44ZN3CV.js';
5
5
  import { FETCHED_DIR, toolsDockerfile, FETCHED_FFMPEG, FETCHED_GH, FETCHED_TINI, FETCHED_HEADLESS_SHELL, FETCHED_PLAYWRIGHT_FFMPEG, FETCHED_VOICE_DIR } from './chunk-7XZQTJOD.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-SODV2YMW.js';
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-S37IAT3A.js';
12
- import { optionalEgress, runnerCredentialProblem, builtinKind, allowHostProblem, systemClock, emptyEgressCounts, hostAllowed } from './chunk-QXAPVAPR.js';
13
- import { formatBytes, allocatedBytes } from './chunk-7LKOOGSN.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-2LCNMAWP.js';
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
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, UNIVERSAL_IMAGE_DIGEST, UNIVERSAL_IMAGE_REPOSITORY, UNIVERSAL_IMAGE_SOURCE, 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-72N7GOLM.js';
19
- import { sanitizeTerminal } from './chunk-IXPH4EXK.js';
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-A2KLVZBU.js';
24
- import { orderSessions, extractFacts, sessionsToTimeline } from './chunk-XFJ7YOPD.js';
25
- import { downconvertSession } from './chunk-DINRXUQA.js';
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';
@@ -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}\``;
@@ -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: ["outerlayer", "sync"] },
5219
- { logPath: join(input.jobDir, "sync.log") }
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 };