@outerlayer/cli 0.33.0 → 0.34.0-next.20261023233807

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 (113) hide show
  1. package/README.md +4 -1
  2. package/dist/{agent-setup-YHEW3WXB.js → agent-setup-FBAT5LGX.js} +10 -10
  3. package/dist/{artifact-link-cmd-7FYKWA7J.js → artifact-link-cmd-LWPY3V4N.js} +2 -2
  4. package/dist/{build-SEAQVLD5.js → build-LSU25G3M.js} +2 -2
  5. package/dist/{build-disk-ECTLWTPC.js → build-disk-ZDGSJLPA.js} +5 -5
  6. package/dist/build-info.json +1 -1
  7. package/dist/{builder-LUPHKUFM.js → builder-QKH2HBAO.js} +4 -4
  8. package/dist/{check-XPMN4GHD.js → check-4MYU7S73.js} +32 -32
  9. package/dist/{chunk-QKNFU5GA.js → chunk-2GWMYY4M.js} +5 -5
  10. package/dist/{chunk-HLZMAJJD.js → chunk-2HCXEIJD.js} +2 -2
  11. package/dist/{chunk-VWQCYOBS.js → chunk-2UF4H4PG.js} +2 -2
  12. package/dist/{chunk-Z57X4KNC.js → chunk-3CUGPUCP.js} +2 -2
  13. package/dist/{chunk-EXZACZ2P.js → chunk-3FMARI3L.js} +1 -1
  14. package/dist/{chunk-6SPD266O.js → chunk-4H2DWORO.js} +3 -3
  15. package/dist/{chunk-EHOFFTVX.js → chunk-4V5V2HAQ.js} +2 -2
  16. package/dist/{chunk-VMIOUVJF.js → chunk-5CHRWX3K.js} +5 -5
  17. package/dist/{chunk-L6MDOEHN.js → chunk-74Q24R3B.js} +7 -7
  18. package/dist/{chunk-BLHUFOOB.js → chunk-7JETLQED.js} +12 -12
  19. package/dist/{chunk-AKZRGFGT.js → chunk-B44BFR2Q.js} +3 -3
  20. package/dist/{chunk-V673DFOL.js → chunk-B5MSDF5B.js} +4 -4
  21. package/dist/{chunk-X4JEBMYN.js → chunk-BBGVXGSO.js} +1 -1
  22. package/dist/{chunk-NIY2UBT6.js → chunk-BO42KT3D.js} +1 -1
  23. package/dist/{chunk-6CXNWKWD.js → chunk-CQRPR4WZ.js} +143 -22
  24. package/dist/{chunk-F2D5BSXS.js → chunk-EOTMDIYC.js} +1 -1
  25. package/dist/{chunk-NE63JADS.js → chunk-ES4ULBAL.js} +2 -2
  26. package/dist/{emit-demo-cmd-IQRS7BP2.js → chunk-GODAKHDD.js} +6 -35
  27. package/dist/{chunk-RZOO7X4G.js → chunk-HG6INMG3.js} +3 -3
  28. package/dist/{chunk-JEVKOZBB.js → chunk-HMCBX3PL.js} +1 -1
  29. package/dist/{chunk-7UPMYRPS.js → chunk-HUUYTDFV.js} +4 -4
  30. package/dist/{chunk-VSLJ6PPG.js → chunk-J32AF6D2.js} +5 -5
  31. package/dist/{chunk-D3EDZPJR.js → chunk-KLGYSJ3A.js} +5 -5
  32. package/dist/{chunk-4YLL2E7Y.js → chunk-KSZXJE3R.js} +12 -12
  33. package/dist/{chunk-YY3OQJ4X.js → chunk-LFBMXXE6.js} +14 -14
  34. package/dist/{chunk-MPC2UAW2.js → chunk-MECW77XP.js} +1 -1
  35. package/dist/{work-proofs-cmd-XBESDEPM.js → chunk-NYHQF6BT.js} +30 -30
  36. package/dist/{chunk-DKFUXYGD.js → chunk-OLCIPTST.js} +4 -4
  37. package/dist/{chunk-S5CNYXUA.js → chunk-OVRNGOD2.js} +4 -4
  38. package/dist/{chunk-UK4RGH46.js → chunk-SHIGGHZO.js} +2 -2
  39. package/dist/{chunk-EJL6CWSP.js → chunk-SVLFZLTE.js} +6 -6
  40. package/dist/{chunk-5M2J7B5N.js → chunk-TCGVYHII.js} +2 -2
  41. package/dist/{chunk-LYGI3T66.js → chunk-TIRHZC2M.js} +2 -2
  42. package/dist/{chunk-OGMXVPCS.js → chunk-TYBK2UCW.js} +2 -2
  43. package/dist/{chunk-FT7MUQGO.js → chunk-UF2FU3CM.js} +2 -2
  44. package/dist/{work-comment-cmd-QEZHRXC5.js → chunk-VY2FE5VT.js} +4 -24
  45. package/dist/{chunk-GO2DUPQS.js → chunk-WEUCD3J3.js} +3 -3
  46. package/dist/{chunk-KUE4V2SK.js → chunk-XFAJQZN2.js} +2 -2
  47. package/dist/{chunk-2LFWCIIE.js → chunk-XXTXM47K.js} +15 -15
  48. package/dist/{chunk-7V5GUEDU.js → chunk-Y5YCX6AL.js} +1 -1
  49. package/dist/chunk-YNJUN6BB.js +148 -0
  50. package/dist/{chunk-ZF24JN7R.js → chunk-YPCDDQFU.js} +1 -1
  51. package/dist/{chunk-7IFYI7XF.js → chunk-YQ5BEACL.js} +3 -3
  52. package/dist/{chunk-44V5SD4G.js → chunk-ZGB4ZJ5E.js} +1 -1
  53. package/dist/{chunk-YXHKCHWG.js → chunk-ZVLSYWDF.js} +1 -1
  54. package/dist/{claude-launcher-YRPW4SWA.js → claude-launcher-YXRS4EZE.js} +5 -5
  55. package/dist/{cli-65ZQJ622.js → cli-QQBC67PY.js} +132 -108
  56. package/dist/{command-QENZQGZL.js → command-27SJOFEM.js} +21 -21
  57. package/dist/{config-MVA7YTFW.js → config-7M4PJUZ5.js} +6 -6
  58. package/dist/{connect-cmd-KWXV2CGC.js → connect-cmd-XPSJT6JW.js} +8 -8
  59. package/dist/{container-start-RVH5743X.js → container-start-FDUQKTOF.js} +27 -27
  60. package/dist/{context-cleanup-A2FGVVPH.js → context-cleanup-YGWYIFFV.js} +3 -3
  61. package/dist/{context-show-cmd-6F4UF4ND.js → context-show-cmd-4HLZ6DEB.js} +9 -9
  62. package/dist/{control-plane-launch-7SOH6IMA.js → control-plane-launch-AXBWT5CC.js} +6 -6
  63. package/dist/{dist-IG2DKUJJ.js → dist-ELNMCU72.js} +2 -2
  64. package/dist/{docker-YKYQJHL2.js → docker-7XRXEGMX.js} +4 -4
  65. package/dist/{doctor-MFLM7DMY.js → doctor-Y3F7KETW.js} +22 -22
  66. package/dist/{emit-artifact-cmd-6QTTWBVN.js → emit-artifact-cmd-SX6A3N46.js} +13 -13
  67. package/dist/{emit-cmd-3FG7FEGO.js → emit-cmd-A4CB7BEC.js} +6 -6
  68. package/dist/{emit-criteria-cmd-22VVCL2W.js → emit-criteria-cmd-4LXKENTI.js} +10 -10
  69. package/dist/emit-demo-cmd-ECMS73O6.js +48 -0
  70. package/dist/{emit-finding-cmd-TXDPJFVT.js → emit-finding-cmd-K73WX2UP.js} +10 -10
  71. package/dist/{emit-result-cmd-QHJDUC7J.js → emit-result-cmd-SUQASZMD.js} +12 -12
  72. package/dist/{emit-step-cmd-TQCOLXAA.js → emit-step-cmd-5NQ6W4F3.js} +10 -10
  73. package/dist/{findings-cmd-EURKADAY.js → findings-cmd-2BOST4CX.js} +10 -10
  74. package/dist/{fleet-readiness-GXDSFTLP.js → fleet-readiness-VAKMSSWI.js} +8 -8
  75. package/dist/{governing-source-INEXO2CK.js → governing-source-NSQ5TIMO.js} +13 -13
  76. package/dist/{hook-fast-3IYSWDL4.js → hook-fast-WENTLDMA.js} +1 -1
  77. package/dist/index.js +4 -4
  78. package/dist/{init-WIHSXL74.js → init-E2N3A4MB.js} +21 -21
  79. package/dist/{init-VWJIINBC.js → init-SFZ5VUZ6.js} +21 -21
  80. package/dist/{init-cmd-3VWJUWXA.js → init-cmd-BNOWYMNA.js} +18 -18
  81. package/dist/{init-update-LFKSC6Y4.js → init-update-6QK5URLQ.js} +17 -17
  82. package/dist/{install-47Z7VNWP.js → install-E6DEU5NV.js} +7 -7
  83. package/dist/{layout-44S4OYLK.js → layout-NAPG4SX2.js} +4 -4
  84. package/dist/{login-browser-BJZYKWHF.js → login-browser-DQ6YRXUB.js} +2 -2
  85. package/dist/{loop-5QV4VZOF.js → loop-6RHTIIIE.js} +32 -32
  86. package/dist/{machine-XTSUAX3K.js → machine-OYI4ZWQS.js} +21 -21
  87. package/dist/{machine-skills-GOKW3U5N.js → machine-skills-2TT3RXMJ.js} +4 -4
  88. package/dist/{runner-env-ILP6BAC2.js → runner-env-EKBC5EYE.js} +8 -8
  89. package/dist/{runner-identity-MF3AYBR6.js → runner-identity-KN4CW5VQ.js} +4 -4
  90. package/dist/{runner-key-N4IIFMUX.js → runner-key-W6KG4QD7.js} +21 -21
  91. package/dist/{session-sender-2DYAJIMM.js → session-sender-Q7I6NUJU.js} +13 -13
  92. package/dist/{spec-cmd-7W4ERDL7.js → spec-cmd-3RWLOGZW.js} +11 -11
  93. package/dist/{starter-pack-FWTXE6XB.js → starter-pack-5D4BANFU.js} +5 -5
  94. package/dist/{status-VBUCLDN5.js → status-G26SS4VW.js} +26 -26
  95. package/dist/{sync-cmd-NGX2PGIW.js → sync-cmd-2W5F23IM.js} +12 -12
  96. package/dist/{watch-ZIWZVU3Z.js → watch-QW4LMB23.js} +12 -12
  97. package/dist/{work-claim-cmd-G3DC5LJK.js → work-claim-cmd-D2VABY7U.js} +16 -16
  98. package/dist/{work-cmd-J2LJ3V4A.js → work-cmd-FVDCWSPE.js} +10 -10
  99. package/dist/work-comment-cmd-RW7FZBBH.js +33 -0
  100. package/dist/{work-demo-cmd-A7XE4NKA.js → work-demo-cmd-M5NL3IPF.js} +10 -10
  101. package/dist/{work-logs-cmd-UA5PAXRP.js → work-logs-cmd-KUG5JARJ.js} +10 -10
  102. package/dist/{work-open-pr-cmd-ZYKNAJJM.js → work-open-pr-cmd-HSVGGLFC.js} +11 -11
  103. package/dist/{work-pr-cmd-DH43AH3V.js → work-pr-cmd-KBHTEAIT.js} +10 -10
  104. package/dist/work-proofs-cmd-A6QNVO6B.js +34 -0
  105. package/dist/work-proofs-init-QB2UL3BC.js +35 -0
  106. package/dist/work-proofs-record-APK4VWRB.js +402 -0
  107. package/dist/{work-stop-cmd-ZDIW3MVX.js → work-stop-cmd-HSGFTRIX.js} +10 -10
  108. package/package.json +1 -1
  109. package/skill-pack/maintained/outerlayer-amend/SKILL.md +5 -5
  110. package/skill-pack/maintained/outerlayer-build/SKILL.md +4 -3
  111. package/skill-pack/maintained/outerlayer-build/references/agent-briefs.md +30 -17
  112. package/skill-pack/maintained/outerlayer-build/references/evidence.md +17 -15
  113. package/skill-pack/maintained/outerlayer-amend/scripts/rerecord-demo.mjs +0 -187
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { RESERVED_EMIT_NAMES, ARTIFACT_KINDS, ArtifactCriterionIdSchema } from './chunk-F2D5BSXS.js';
3
+ import { RESERVED_EMIT_NAMES, ArtifactCriterionIdSchema, ARTIFACT_KINDS } from './chunk-EOTMDIYC.js';
4
4
  import { __commonJS, __require, __toESM } from './chunk-Z5GEFMRW.js';
5
5
 
6
6
  createRequire(import.meta.url);
@@ -1460,7 +1460,7 @@ var require_stringify = __commonJS({
1460
1460
  props.push(doc.directives.tagString(tag));
1461
1461
  return props.join(" ");
1462
1462
  }
1463
- function stringify(item, ctx, onComment, onChompKeep) {
1463
+ function stringify2(item, ctx, onComment, onChompKeep) {
1464
1464
  if (identity.isPair(item))
1465
1465
  return item.toString(ctx, onComment, onChompKeep);
1466
1466
  if (identity.isAlias(item)) {
@@ -1489,7 +1489,7 @@ var require_stringify = __commonJS({
1489
1489
  ${ctx.indent}${str}`;
1490
1490
  }
1491
1491
  exports$1.createStringifyContext = createStringifyContext;
1492
- exports$1.stringify = stringify;
1492
+ exports$1.stringify = stringify2;
1493
1493
  }
1494
1494
  });
1495
1495
 
@@ -1498,7 +1498,7 @@ var require_stringifyPair = __commonJS({
1498
1498
  "../../node_modules/yaml/dist/stringify/stringifyPair.js"(exports$1) {
1499
1499
  var identity = require_identity();
1500
1500
  var Scalar = require_Scalar();
1501
- var stringify = require_stringify();
1501
+ var stringify2 = require_stringify();
1502
1502
  var stringifyComment = require_stringifyComment();
1503
1503
  function stringifyPair({ key, value }, ctx, onComment, onChompKeep) {
1504
1504
  const { allNullValues, doc, indent, indentStep, options: { commentString, indentSeq, simpleKeys } } = ctx;
@@ -1520,7 +1520,7 @@ var require_stringifyPair = __commonJS({
1520
1520
  });
1521
1521
  let keyCommentDone = false;
1522
1522
  let chompKeep = false;
1523
- let str = stringify.stringify(key, ctx, () => keyCommentDone = true, () => chompKeep = true);
1523
+ let str = stringify2.stringify(key, ctx, () => keyCommentDone = true, () => chompKeep = true);
1524
1524
  if (!explicitKey && !ctx.inFlow && str.length > 1024) {
1525
1525
  if (simpleKeys)
1526
1526
  throw new Error("With simple keys, single line scalar must not span more than 1024 characters");
@@ -1572,7 +1572,7 @@ ${indent}:`;
1572
1572
  ctx.indent = ctx.indent.substring(2);
1573
1573
  }
1574
1574
  let valueCommentDone = false;
1575
- const valueStr = stringify.stringify(value, ctx, () => valueCommentDone = true, () => chompKeep = true);
1575
+ const valueStr = stringify2.stringify(value, ctx, () => valueCommentDone = true, () => chompKeep = true);
1576
1576
  let ws = " ";
1577
1577
  if (keyComment || vsb || vcb) {
1578
1578
  ws = vsb ? "\n" : "";
@@ -1710,7 +1710,7 @@ var require_addPairToJSMap = __commonJS({
1710
1710
  "../../node_modules/yaml/dist/nodes/addPairToJSMap.js"(exports$1) {
1711
1711
  var log = require_log();
1712
1712
  var merge = require_merge();
1713
- var stringify = require_stringify();
1713
+ var stringify2 = require_stringify();
1714
1714
  var identity = require_identity();
1715
1715
  var toJS = require_toJS();
1716
1716
  function addPairToJSMap(ctx, map, { key, value }) {
@@ -1746,7 +1746,7 @@ var require_addPairToJSMap = __commonJS({
1746
1746
  if (typeof jsKey !== "object")
1747
1747
  return String(jsKey);
1748
1748
  if (identity.isNode(key) && ctx?.doc) {
1749
- const strCtx = stringify.createStringifyContext(ctx.doc, {});
1749
+ const strCtx = stringify2.createStringifyContext(ctx.doc, {});
1750
1750
  strCtx.anchors = /* @__PURE__ */ new Set();
1751
1751
  for (const node of ctx.anchors.keys())
1752
1752
  strCtx.anchors.add(node.anchor);
@@ -1811,12 +1811,12 @@ var require_Pair = __commonJS({
1811
1811
  var require_stringifyCollection = __commonJS({
1812
1812
  "../../node_modules/yaml/dist/stringify/stringifyCollection.js"(exports$1) {
1813
1813
  var identity = require_identity();
1814
- var stringify = require_stringify();
1814
+ var stringify2 = require_stringify();
1815
1815
  var stringifyComment = require_stringifyComment();
1816
1816
  function stringifyCollection(collection, ctx, options) {
1817
1817
  const flow = ctx.inFlow ?? collection.flow;
1818
- const stringify2 = flow ? stringifyFlowCollection : stringifyBlockCollection;
1819
- return stringify2(collection, ctx, options);
1818
+ const stringify3 = flow ? stringifyFlowCollection : stringifyBlockCollection;
1819
+ return stringify3(collection, ctx, options);
1820
1820
  }
1821
1821
  function stringifyBlockCollection({ comment, items }, ctx, { blockItemPrefix, flowChars, itemIndent, onChompKeep, onComment }) {
1822
1822
  const { indent, options: { commentString } } = ctx;
@@ -1841,7 +1841,7 @@ var require_stringifyCollection = __commonJS({
1841
1841
  }
1842
1842
  }
1843
1843
  chompKeep = false;
1844
- let str2 = stringify.stringify(item, itemCtx, () => comment2 = null, () => chompKeep = true);
1844
+ let str2 = stringify2.stringify(item, itemCtx, () => comment2 = null, () => chompKeep = true);
1845
1845
  if (comment2)
1846
1846
  str2 += stringifyComment.lineComment(str2, itemIndent, commentString(comment2));
1847
1847
  if (chompKeep && comment2)
@@ -1908,7 +1908,7 @@ ${indent}${line}` : "\n";
1908
1908
  }
1909
1909
  if (comment)
1910
1910
  reqNewline = true;
1911
- let str = stringify.stringify(item, itemCtx, () => comment = null);
1911
+ let str = stringify2.stringify(item, itemCtx, () => comment = null);
1912
1912
  reqNewline || (reqNewline = lines.length > linesAtValue || str.includes("\n"));
1913
1913
  if (i < items.length - 1) {
1914
1914
  str += ",";
@@ -3245,7 +3245,7 @@ var require_Schema = __commonJS({
3245
3245
  var require_stringifyDocument = __commonJS({
3246
3246
  "../../node_modules/yaml/dist/stringify/stringifyDocument.js"(exports$1) {
3247
3247
  var identity = require_identity();
3248
- var stringify = require_stringify();
3248
+ var stringify2 = require_stringify();
3249
3249
  var stringifyComment = require_stringifyComment();
3250
3250
  function stringifyDocument(doc, options) {
3251
3251
  const lines = [];
@@ -3260,7 +3260,7 @@ var require_stringifyDocument = __commonJS({
3260
3260
  }
3261
3261
  if (hasDirectives)
3262
3262
  lines.push("---");
3263
- const ctx = stringify.createStringifyContext(doc, options);
3263
+ const ctx = stringify2.createStringifyContext(doc, options);
3264
3264
  const { commentString } = ctx.options;
3265
3265
  if (doc.commentBefore) {
3266
3266
  if (lines.length !== 1)
@@ -3282,7 +3282,7 @@ var require_stringifyDocument = __commonJS({
3282
3282
  contentComment = doc.contents.comment;
3283
3283
  }
3284
3284
  const onChompKeep = contentComment ? void 0 : () => chompKeep = true;
3285
- let body = stringify.stringify(doc.contents, ctx, () => contentComment = null, onChompKeep);
3285
+ let body = stringify2.stringify(doc.contents, ctx, () => contentComment = null, onChompKeep);
3286
3286
  if (contentComment)
3287
3287
  body += stringifyComment.lineComment(body, "", commentString(contentComment));
3288
3288
  if ((body[0] === "|" || body[0] === ">") && lines[lines.length - 1] === "---") {
@@ -3290,7 +3290,7 @@ var require_stringifyDocument = __commonJS({
3290
3290
  } else
3291
3291
  lines.push(body);
3292
3292
  } else {
3293
- lines.push(stringify.stringify(doc.contents, ctx));
3293
+ lines.push(stringify2.stringify(doc.contents, ctx));
3294
3294
  }
3295
3295
  if (doc.directives?.docEnd) {
3296
3296
  if (doc.comment) {
@@ -5406,7 +5406,7 @@ var require_cst_scalar = __commonJS({
5406
5406
  // ../../node_modules/yaml/dist/parse/cst-stringify.js
5407
5407
  var require_cst_stringify = __commonJS({
5408
5408
  "../../node_modules/yaml/dist/parse/cst-stringify.js"(exports$1) {
5409
- var stringify = (cst) => "type" in cst ? stringifyToken(cst) : stringifyItem(cst);
5409
+ var stringify2 = (cst) => "type" in cst ? stringifyToken(cst) : stringifyItem(cst);
5410
5410
  function stringifyToken(token) {
5411
5411
  switch (token.type) {
5412
5412
  case "block-scalar": {
@@ -5459,7 +5459,7 @@ var require_cst_stringify = __commonJS({
5459
5459
  res += stringifyToken(value);
5460
5460
  return res;
5461
5461
  }
5462
- exports$1.stringify = stringify;
5462
+ exports$1.stringify = stringify2;
5463
5463
  }
5464
5464
  });
5465
5465
 
@@ -7183,7 +7183,7 @@ var require_public_api = __commonJS({
7183
7183
  }
7184
7184
  return doc.toJS(Object.assign({ reviver: _reviver }, options));
7185
7185
  }
7186
- function stringify(value, replacer, options) {
7186
+ function stringify2(value, replacer, options) {
7187
7187
  let _replacer = null;
7188
7188
  if (typeof replacer === "function" || Array.isArray(replacer)) {
7189
7189
  _replacer = replacer;
@@ -7208,7 +7208,7 @@ var require_public_api = __commonJS({
7208
7208
  exports$1.parse = parse2;
7209
7209
  exports$1.parseAllDocuments = parseAllDocuments;
7210
7210
  exports$1.parseDocument = parseDocument2;
7211
- exports$1.stringify = stringify;
7211
+ exports$1.stringify = stringify2;
7212
7212
  }
7213
7213
  });
7214
7214
 
@@ -8707,5 +8707,126 @@ function sessionsToTimeline(sessions) {
8707
8707
  });
8708
8708
  return out;
8709
8709
  }
8710
+ var DEMO = "demo";
8711
+ function isRecord2(value) {
8712
+ return typeof value === "object" && value !== null && !Array.isArray(value);
8713
+ }
8714
+ function load(text) {
8715
+ let raw;
8716
+ try {
8717
+ raw = (0, import_yaml.parse)(text);
8718
+ } catch (err) {
8719
+ return { ok: false, problems: [`the file is not valid YAML: ${err instanceof Error ? err.message.split("\n")[0] : String(err)}`] };
8720
+ }
8721
+ if (raw === null || raw === void 0) return { ok: true, value: {} };
8722
+ if (!isRecord2(raw)) return { ok: false, problems: ["the file must be a mapping"] };
8723
+ return { ok: true, value: raw };
8724
+ }
8725
+ function unknownKeys(record, known, where, problems) {
8726
+ for (const key of Object.keys(record)) {
8727
+ if (!known.includes(key)) problems.push(`${where}: unknown key "${key}"`);
8728
+ }
8729
+ }
8730
+ function criterionId(value, where, problems) {
8731
+ if (typeof value !== "string" || !ArtifactCriterionIdSchema.safeParse(value).success) {
8732
+ problems.push(`${where}: "${String(value)}" is not a criterion id (1-64 characters of letters, digits, "_", ".", ":" or "-")`);
8733
+ return void 0;
8734
+ }
8735
+ return value;
8736
+ }
8737
+ function parseProofRecipe(text) {
8738
+ var _a, _b;
8739
+ const loaded = load(text);
8740
+ if (!loaded.ok) return loaded;
8741
+ const root = loaded.value;
8742
+ const problems = [];
8743
+ unknownKeys(root, ["run", "manual"], "recipe", problems);
8744
+ const run = [];
8745
+ const manual = [];
8746
+ const named = /* @__PURE__ */ new Map();
8747
+ const name = (id, where) => {
8748
+ const earlier = named.get(id);
8749
+ if (earlier !== void 0) problems.push(`${where}: criterion ${id} is already named in ${earlier}. Name each criterion in one place`);
8750
+ else named.set(id, where);
8751
+ };
8752
+ const runRaw = (_a = root.run) != null ? _a : [];
8753
+ if (!Array.isArray(runRaw)) problems.push("run: must be a list");
8754
+ else {
8755
+ let demos = 0;
8756
+ runRaw.forEach((entry, index) => {
8757
+ const where = `run[${index}]`;
8758
+ if (!isRecord2(entry)) {
8759
+ problems.push(`${where}: must be a mapping with command, emit and for`);
8760
+ return;
8761
+ }
8762
+ unknownKeys(entry, ["command", "emit", "for"], where, problems);
8763
+ const { command, emit } = entry;
8764
+ if (typeof command !== "string") problems.push(`${where}: command must be a string`);
8765
+ if (typeof emit !== "string") problems.push(`${where}: emit must be "${DEMO}" or a path in the repository`);
8766
+ if (typeof command !== "string" || typeof emit !== "string") return;
8767
+ if (emit === DEMO) {
8768
+ demos += 1;
8769
+ if (demos > 1) problems.push(`${where}: a recipe has one demo entry`);
8770
+ if (entry.for !== void 0) problems.push(`${where}: a demo entry takes no "for". Its chapters name their criteria`);
8771
+ run.push({ command, emit });
8772
+ return;
8773
+ }
8774
+ if (entry.for === void 0) {
8775
+ problems.push(`${where}: a command entry needs "for", the criterion its file proves`);
8776
+ return;
8777
+ }
8778
+ const id = criterionId(entry.for, `${where}.for`, problems);
8779
+ if (id === void 0) return;
8780
+ name(id, where);
8781
+ run.push({ command, emit, for: id });
8782
+ });
8783
+ }
8784
+ const manualRaw = (_b = root.manual) != null ? _b : [];
8785
+ if (!Array.isArray(manualRaw)) problems.push("manual: must be a list");
8786
+ else {
8787
+ manualRaw.forEach((entry, index) => {
8788
+ const where = `manual[${index}]`;
8789
+ if (!isRecord2(entry)) {
8790
+ problems.push(`${where}: must be a mapping with criterion and reason`);
8791
+ return;
8792
+ }
8793
+ unknownKeys(entry, ["criterion", "reason"], where, problems);
8794
+ const id = criterionId(entry.criterion, `${where}.criterion`, problems);
8795
+ if (typeof entry.reason !== "string" || entry.reason.trim() === "") {
8796
+ problems.push(`${where}: reason must say why a person records this proof`);
8797
+ return;
8798
+ }
8799
+ if (id === void 0) return;
8800
+ name(id, where);
8801
+ manual.push({ criterion: id, reason: entry.reason });
8802
+ });
8803
+ }
8804
+ return problems.length > 0 ? { ok: false, problems } : { ok: true, value: { run, manual } };
8805
+ }
8806
+ function parseProofSetup(text) {
8807
+ const loaded = load(text);
8808
+ if (!loaded.ok) return loaded;
8809
+ const root = loaded.value;
8810
+ const problems = [];
8811
+ unknownKeys(root, ["setup", "teardown"], "setup file", problems);
8812
+ const commands = (key, value) => {
8813
+ if (!Array.isArray(value) || !value.every((entry) => typeof entry === "string" && entry.trim() !== "")) {
8814
+ problems.push(`${key}: must be a list of commands`);
8815
+ return [];
8816
+ }
8817
+ return value;
8818
+ };
8819
+ if (!("setup" in root)) problems.push("setup: the file needs a setup list. Use an empty list for no setup");
8820
+ const setup = "setup" in root ? commands("setup", root.setup) : [];
8821
+ const teardown = root.teardown === void 0 ? void 0 : commands("teardown", root.teardown);
8822
+ if (problems.length > 0) return { ok: false, problems };
8823
+ return { ok: true, value: { setup, ...teardown === void 0 ? {} : { teardown } } };
8824
+ }
8825
+ function renderProofRecipe(recipe) {
8826
+ return (0, import_yaml.stringify)({ run: recipe.run, manual: recipe.manual }, { lineWidth: 0 });
8827
+ }
8828
+ function renderProofSetup(setup) {
8829
+ return (0, import_yaml.stringify)({ setup: setup.setup, ...setup.teardown === void 0 ? {} : { teardown: setup.teardown } }, { lineWidth: 0 });
8830
+ }
8710
8831
 
8711
- export { ALL_TARGET_IDS, CONTEXT_PIN_FILENAME, classifyTree, emitTree, extractFacts, generatedHeaderSource, normalizePath, normalizeRepoName, orderSessions, parseOuterlayerConfig, parsePolicy, sessionsToTimeline, splitRawFile };
8832
+ export { ALL_TARGET_IDS, CONTEXT_PIN_FILENAME, classifyTree, emitTree, extractFacts, generatedHeaderSource, normalizePath, normalizeRepoName, orderSessions, parseOuterlayerConfig, parsePolicy, parseProofRecipe, parseProofSetup, renderProofRecipe, renderProofSetup, sessionsToTimeline, splitRawFile };
@@ -22836,4 +22836,4 @@ xmlchars/xmlns/1.0/ed3.js:
22836
22836
  *)
22837
22837
  */
22838
22838
 
22839
- export { ARTIFACT_KINDS, ARTIFACT_MAX_BYTES, ARTIFACT_MAX_CAPTION_LENGTH, ARTIFACT_MAX_FILENAME_LENGTH, ARTIFACT_MAX_REPLACES_TARGETS, ArtifactCriterionIdSchema, ArtifactSpoolRecordSchema, ArtifactTombstoneRecordSchema, BUCKET_MODEL_MAX_LENGTH, CAPTURE_TIERS, CHECK_ITEM_REASON_MAX_LENGTH, CLI_LOGIN_KIND, CLI_LOGIN_MACHINE_NAME_MAX, CheckItemsSchema, CliLoginPollResponseSchema, CliLoginRefusalSchema, CliLoginStartedSchema, CriteriaListSchema, DEMO_RECORD_MEDIA_TYPE, DemoManifestSchema, EMITTED_RESULTS, EMITTED_RESULT_MAX_BODY_LENGTH, EMITTED_RESULT_MAX_LINK_LENGTH, EVENT_TYPES, EmittedNameSchema, FindingBatchSchema, FindingsResponseSchema, INPUT_BAND_BOUNDARIES, RESERVED_EMIT_NAMES, SAME_PROBLEM_RULES, SCHEMA_VERSION, SPEED_MAX_LENGTH, StepBodySchema, StepNameSchema, bannedPathsForTier, bindTests, downconvertSession, inferArtifactKind, inputBandOf, isHumanUserTurn, itemsAllowResult, mediaTypeForArtifactPath, parseAgentSession, parseJunit, parseTestSelector, turnCountBound };
22839
+ export { ARTIFACT_KINDS, ARTIFACT_MAX_BYTES, ARTIFACT_MAX_CAPTION_LENGTH, ARTIFACT_MAX_FILENAME_LENGTH, ARTIFACT_MAX_REPLACES_TARGETS, ArtifactCriterionIdSchema, ArtifactSpoolRecordSchema, ArtifactTombstoneRecordSchema, BUCKET_MODEL_MAX_LENGTH, CAPTURE_TIERS, CHECK_ITEM_REASON_MAX_LENGTH, CLI_LOGIN_KIND, CLI_LOGIN_MACHINE_NAME_MAX, CheckItemsSchema, CliLoginPollResponseSchema, CliLoginRefusalSchema, CliLoginStartedSchema, CriteriaListSchema, DEMO_RECORD_MEDIA_TYPE, DemoManifestSchema, EMITTED_RESULTS, EMITTED_RESULT_MAX_BODY_LENGTH, EMITTED_RESULT_MAX_LINK_LENGTH, EVENT_TYPES, EmittedNameSchema, FindingBatchSchema, FindingsResponseSchema, INPUT_BAND_BOUNDARIES, RESERVED_EMIT_NAMES, SAME_PROBLEM_RULES, SCHEMA_VERSION, SPEED_MAX_LENGTH, StepBodySchema, StepNameSchema, WORK_ITEM_COMMENT_MAX_BODY_LENGTH, bannedPathsForTier, bindTests, downconvertSession, inferArtifactKind, inputBandOf, isHumanUserTurn, itemsAllowResult, mediaTypeForArtifactPath, parseAgentSession, parseJunit, parseTestSelector, turnCountBound };
@@ -29,13 +29,13 @@ var FIRECRACKER_SHA256 = {
29
29
  var FIRECRACKER_BINARY_SHA256 = {
30
30
  x86_64: "99ad0f5cd0514a88aad0e9ae8cfdb3cc3b4ab9d190e1194602406c786b5de7a5"
31
31
  };
32
- var GUEST_ASSETS_VERSION = "12";
32
+ var GUEST_ASSETS_VERSION = "14";
33
33
  var GUEST_ASSETS_BASE_URL = `https://github.com/outerlayerai/guest-assets/releases/download/guest-${GUEST_ASSETS_VERSION}`;
34
34
  var GUEST_KERNEL_SHA256 = {
35
35
  x86_64: "8552fad4bdea1d49f3e7d2aa500ce3f8918fcd2fc66779fd83235949688a39bb"
36
36
  };
37
37
  var GUEST_HELPER_SHA256 = {
38
- x86_64: "bf16e8d832d4ed6e3498fb8f59b521a1f9ce0431d05a1309a4a6cf89e354d2e5"
38
+ x86_64: "8080d4a8e8361cc8bf1cc34629bf49b6742e339c20cbf42d84a59b0d7fa33524"
39
39
  };
40
40
  function guestAssetsPinned(arch) {
41
41
  const zero = "0".repeat(64);
@@ -1,47 +1,17 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
3
  import { readNewestDemo } from './chunk-ER6KQCVJ.js';
4
- import { runEmitArtifact } from './chunk-QKNFU5GA.js';
5
- import './chunk-D3EDZPJR.js';
6
- import './chunk-7UPMYRPS.js';
7
- import './chunk-ESVW4MJY.js';
8
- import './chunk-TBT347UY.js';
4
+ import { runEmitArtifact } from './chunk-2GWMYY4M.js';
9
5
  import { VoiceDownloadError, downloadPinned, sha256OfFile } from './chunk-2PGI6RDE.js';
10
- import { VOICE_PACK_FILES, VOICE_PACK_VERSION } from './chunk-NE63JADS.js';
6
+ import { VOICE_PACK_FILES, VOICE_PACK_VERSION } from './chunk-ES4ULBAL.js';
11
7
  import { detectActiveSession } from './chunk-IP7BIBXJ.js';
12
- import { autoConnect } from './chunk-HLZMAJJD.js';
13
- import './chunk-S5CNYXUA.js';
14
- import './chunk-MPC2UAW2.js';
15
- import { resolveRepoIdentity } from './chunk-NIY2UBT6.js';
16
- import './chunk-LYGI3T66.js';
17
- import './chunk-7V5GUEDU.js';
18
- import './chunk-G2JWZDFA.js';
8
+ import { autoConnect } from './chunk-2HCXEIJD.js';
9
+ import { resolveRepoIdentity } from './chunk-BO42KT3D.js';
19
10
  import { C } from './chunk-ANPNT6PM.js';
20
11
  import { defaultFetch, resolveGatewayCredentials } from './chunk-6RKD7YZ6.js';
21
- import './chunk-PJDQPF5N.js';
22
- import './chunk-SOI6K5DY.js';
23
- import './chunk-PA6CK6WQ.js';
24
- import './chunk-BALIE3BA.js';
25
- import './chunk-UK4RGH46.js';
26
- import './chunk-ZJSNLVCE.js';
27
- import './chunk-2O5KA67H.js';
28
- import './chunk-BKO6JEZI.js';
29
- import './chunk-HCVLP7XA.js';
30
- import './chunk-BJ3KTMDH.js';
31
- import './chunk-44V5SD4G.js';
32
- import './chunk-5BHIBJDA.js';
33
- import './chunk-CDDED64E.js';
34
- import './chunk-RA3O54FC.js';
35
12
  import { launchedItemForSession } from './chunk-T2Q7ISPE.js';
36
- import './chunk-WZBHBH3J.js';
37
- import './chunk-CRB3POP4.js';
38
- import './chunk-URIZRCRY.js';
39
- import './chunk-TUSYOL2O.js';
40
- import './chunk-6CXNWKWD.js';
41
- import { ARTIFACT_MAX_BYTES, ARTIFACT_MAX_CAPTION_LENGTH, DEMO_RECORD_MEDIA_TYPE, ARTIFACT_MAX_REPLACES_TARGETS, DemoManifestSchema, ARTIFACT_KINDS } from './chunk-F2D5BSXS.js';
13
+ import { ARTIFACT_MAX_BYTES, ARTIFACT_MAX_CAPTION_LENGTH, DEMO_RECORD_MEDIA_TYPE, ARTIFACT_MAX_REPLACES_TARGETS, DemoManifestSchema, ARTIFACT_KINDS } from './chunk-EOTMDIYC.js';
42
14
  import { homeFromEnv } from './chunk-VNVZDWO3.js';
43
- import './chunk-HACGUL52.js';
44
- import './chunk-MESOOLF4.js';
45
15
  import { __commonJS, __require, __toESM } from './chunk-Z5GEFMRW.js';
46
16
  import { createHash } from 'crypto';
47
17
  import { mkdtempSync, writeFileSync, statSync, readFileSync, rmSync, mkdirSync, accessSync, constants, realpathSync, existsSync, createReadStream, createWriteStream } from 'fs';
@@ -3090,6 +3060,7 @@ async function runEmitDemo(opts) {
3090
3060
  clips.push({
3091
3061
  clipArtifactId: artifactIdOf(result),
3092
3062
  bound: bound[index],
3063
+ criterionId: chapter.criterionId,
3093
3064
  title: chapter.title,
3094
3065
  comparable: comparisons[index].comparable,
3095
3066
  range: stored[index].range
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { scrubReason, stripTerminalControls } from './chunk-2LFWCIIE.js';
3
+ import { scrubReason, stripTerminalControls } from './chunk-XXTXM47K.js';
4
4
  import { RunnerAlreadyRunningError, readPidFile } from './chunk-F5UL23I2.js';
5
5
  import { isSameProcess } from './chunk-JBJTC3UU.js';
6
- import { checkFit, RUNNER_RESERVE_BYTES } from './chunk-EHOFFTVX.js';
7
- import { isSignatureRefusal, postJson } from './chunk-VSLJ6PPG.js';
6
+ import { checkFit, RUNNER_RESERVE_BYTES } from './chunk-4V5V2HAQ.js';
7
+ import { isSignatureRefusal, postJson } from './chunk-J32AF6D2.js';
8
8
  import { signerFor } from './chunk-SOI6K5DY.js';
9
9
  import { pidFilePath } from './chunk-PA6CK6WQ.js';
10
10
  import { readFileSync } from 'fs';
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { loadMachineSkillFiles, resolvePackRoot } from './chunk-44V5SD4G.js';
3
+ import { loadMachineSkillFiles, resolvePackRoot } from './chunk-ZGB4ZJ5E.js';
4
4
  import { MAINTAINED_SKILLS, maintainedLineVersion } from './chunk-CDDED64E.js';
5
5
  import { resolvePackageVersion } from './chunk-RA3O54FC.js';
6
6
  import { homeFromEnv } from './chunk-VNVZDWO3.js';
@@ -2,14 +2,14 @@
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-HLZMAJJD.js';
6
- import { acquireSpoolLockAt } from './chunk-MPC2UAW2.js';
7
- import { resolveRepoIdentity } from './chunk-NIY2UBT6.js';
5
+ import { autoConnect } from './chunk-2HCXEIJD.js';
6
+ import { acquireSpoolLockAt } from './chunk-MECW77XP.js';
7
+ import { resolveRepoIdentity } from './chunk-BO42KT3D.js';
8
8
  import { C } from './chunk-ANPNT6PM.js';
9
9
  import { resolveGatewayCredentials, defaultFetch, unauthorizedMessage } from './chunk-6RKD7YZ6.js';
10
10
  import { launchedItemForSession } from './chunk-T2Q7ISPE.js';
11
11
  import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
12
- import { StepNameSchema, StepBodySchema } from './chunk-F2D5BSXS.js';
12
+ import { StepNameSchema, StepBodySchema } from './chunk-EOTMDIYC.js';
13
13
  import { homeFromEnv } from './chunk-VNVZDWO3.js';
14
14
  import { randomUUID } from 'crypto';
15
15
  import { readFileSync, existsSync, mkdirSync, writeFileSync, renameSync, appendFileSync } from 'fs';
@@ -1,10 +1,10 @@
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-HLZMAJJD.js';
5
- import { workPageUrl } from './chunk-S5CNYXUA.js';
6
- import { sanitizeTerminal } from './chunk-MPC2UAW2.js';
7
- import { resolveRepoIdentity } from './chunk-NIY2UBT6.js';
4
+ import { autoConnect } from './chunk-2HCXEIJD.js';
5
+ import { workPageUrl } from './chunk-OVRNGOD2.js';
6
+ import { sanitizeTerminal } from './chunk-MECW77XP.js';
7
+ import { resolveRepoIdentity } from './chunk-BO42KT3D.js';
8
8
  import { C } from './chunk-ANPNT6PM.js';
9
9
  import { resolveGatewayCredentials, unauthorizedMessage, defaultFetch } from './chunk-6RKD7YZ6.js';
10
10
  import { signRunnerRequest } from './chunk-SOI6K5DY.js';
@@ -446,7 +446,7 @@ async function runWorkLinkSession(opts) {
446
446
  return await linkSession(opts);
447
447
  } catch (err) {
448
448
  if (opts.logFailures) {
449
- const { logHookError } = await import('./hook-fast-3IYSWDL4.js');
449
+ const { logHookError } = await import('./hook-fast-WENTLDMA.js');
450
450
  const reason = err instanceof Error ? err.message : String(err);
451
451
  logHookError(opts.home ?? homeFromEnv(opts.env ?? process.env), new Error(`work link-session #${opts.number} failed: ${reason}`));
452
452
  }
@@ -1,15 +1,15 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { uploadSpooledSteps } from './chunk-7UPMYRPS.js';
3
+ import { uploadSpooledSteps } from './chunk-HUUYTDFV.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-MPC2UAW2.js';
7
- import { setCustomScrubbers, setLocalIdentity, tailTranscript, enrichSessionRepo, scanAll, setRepoRoot, resolveRepoIdentity, sessionIdFromPath, scrubDeep, SOURCE_ADAPTERS } from './chunk-NIY2UBT6.js';
6
+ import { migrateLegacyArtifactSidecars, planArtifactUpload, artifactsStatePath, sanitizeTerminal, acquireArtifactSpoolLock, artifactBlobsDir, resolveArtifactTurnIndex, isArtifactTombstoned, ARTIFACT_RETRY_MAX_AGE_MS, writeArtifactSpoolState, reclaimUnneededArtifactBlobs, neededArtifactShas } from './chunk-MECW77XP.js';
7
+ import { setCustomScrubbers, setLocalIdentity, tailTranscript, enrichSessionRepo, scanAll, setRepoRoot, resolveRepoIdentity, sessionIdFromPath, scrubDeep, SOURCE_ADAPTERS } from './chunk-BO42KT3D.js';
8
8
  import { C } from './chunk-ANPNT6PM.js';
9
9
  import { cliFetch, resolveGatewayCredentials, defaultFetch, unauthorizedMessage } from './chunk-6RKD7YZ6.js';
10
10
  import { readCloudConfig, cloudConfigPath, writeCloudConfig } from './chunk-PJDQPF5N.js';
11
11
  import { signerFor, signRunnerRequest } from './chunk-SOI6K5DY.js';
12
- import { writeSyncStatus, spoolDir } from './chunk-UK4RGH46.js';
12
+ import { writeSyncStatus, spoolDir } from './chunk-SHIGGHZO.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-F2D5BSXS.js';
20
+ import { CAPTURE_TIERS, inferArtifactKind, bannedPathsForTier, downconvertSession, isHumanUserTurn, turnCountBound, EVENT_TYPES } from './chunk-EOTMDIYC.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,29 +1,29 @@
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 { hasStoredCredential, AGENT_COMMANDS, storeClaudeCredential, credentialFromStdin, isAgentName } from './chunk-EXZACZ2P.js';
5
- import { readDefaultBranchHead, cloneRepository, buildRepositoryImage, prepareImageBuild, KEY_PREFIX, FETCHED_DIR, toolsDockerfile, TAG_HOST, metadataFromLabels, writeRecord, FETCHED_FFMPEG, FETCHED_GH, FETCHED_TINI, FETCHED_VOICE_DIR } from './chunk-YXHKCHWG.js';
4
+ import { hasStoredCredential, AGENT_COMMANDS, storeClaudeCredential, credentialFromStdin, isAgentName } from './chunk-3FMARI3L.js';
5
+ import { readDefaultBranchHead, cloneRepository, buildRepositoryImage, prepareImageBuild, KEY_PREFIX, FETCHED_DIR, toolsDockerfile, TAG_HOST, metadataFromLabels, writeRecord, FETCHED_FFMPEG, FETCHED_GH, FETCHED_TINI, FETCHED_VOICE_DIR } from './chunk-ZVLSYWDF.js';
6
6
  import { startTimeOf, isSameProcess } from './chunk-JBJTC3UU.js';
7
7
  import { currentCliBuild } from './chunk-OGFGZQA3.js';
8
8
  import { runExec, execCapture, waitForAgent } from './chunk-5THSC6BD.js';
9
9
  import { GUEST_CID, linkVsockSockets } from './chunk-L26V6ILJ.js';
10
- import { describeCallFailure, keepStagedContext, controlPlaneTokenFailure, refusalCode, resolveGoverningSource, prefetchGovernedContext, removeStagedContext, stageGovernedContext, pinnedSourceOf, commandWithShim, shimScript, WORKFLOW_PERMISSION_REASON } from './chunk-Z57X4KNC.js';
10
+ import { describeCallFailure, keepStagedContext, controlPlaneTokenFailure, refusalCode, resolveGoverningSource, prefetchGovernedContext, removeStagedContext, stageGovernedContext, pinnedSourceOf, commandWithShim, shimScript, WORKFLOW_PERMISSION_REASON } from './chunk-3CUGPUCP.js';
11
11
  import { runnerImageVersion } from './chunk-MZBQTVFG.js';
12
- import { runnerCredentialProblem, builtinKind, hostAllowed } from './chunk-VWQCYOBS.js';
13
- import { formatBytes, allocatedBytes } from './chunk-X4JEBMYN.js';
14
- import { createDockerHost, builderSpec, runnerLabelValue, RUNNER_LABEL, BUILD_LABEL, prepareRunArgs, containerRunArgs, HASH_ARGV, parseProgramHash, JUDGE_PROGRAM, containerExecArgs, childEnvironment, readDu, JUDGE_DIR, MAX_ITEMS_BYTES, JUDGE_ITEMS, MAX_REPORT_BYTES, JUDGE_REPORT, spawnRun } from './chunk-OGMXVPCS.js';
12
+ import { runnerCredentialProblem, builtinKind, hostAllowed } from './chunk-2UF4H4PG.js';
13
+ import { formatBytes, allocatedBytes } from './chunk-BBGVXGSO.js';
14
+ import { createDockerHost, builderSpec, runnerLabelValue, RUNNER_LABEL, BUILD_LABEL, prepareRunArgs, containerRunArgs, HASH_ARGV, parseProgramHash, JUDGE_PROGRAM, containerExecArgs, childEnvironment, readDu, JUDGE_DIR, MAX_ITEMS_BYTES, JUDGE_ITEMS, MAX_REPORT_BYTES, JUDGE_REPORT, spawnRun } from './chunk-TYBK2UCW.js';
15
15
  import { RecipeError, DOCKER_FEATURE, writeSanitizedRecipe, classifyProperties } from './chunk-3Z3MPR55.js';
16
- import { firecrackerArch, MICROVM_ARCHES, FIRECRACKER_VERSION, hostHelperPinned, CLAUDE_CODE_VERSION, 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, builderDiskPinned, FFMPEG_STATIC, FFMPEG_BUILD_TAG, GH_SHA256, GH_VERSION, TINI_SHA256, TINI_VERSION, VOICE_PACK_FILES, BUILDER_DISK_SHA256, BUILDER_DISK_BASE_URL, DEFAULT_BASE_IMAGE } from './chunk-NE63JADS.js';
17
- import { WorkCommandError, getJson } from './chunk-VSLJ6PPG.js';
18
- import { sanitizeTerminal } from './chunk-MPC2UAW2.js';
19
- import { setCustomScrubbers, setLocalIdentity, setRepoRoot, parseTranscript, scrubDeep, scrubText } from './chunk-NIY2UBT6.js';
16
+ import { firecrackerArch, MICROVM_ARCHES, FIRECRACKER_VERSION, hostHelperPinned, CLAUDE_CODE_VERSION, 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, builderDiskPinned, FFMPEG_STATIC, FFMPEG_BUILD_TAG, GH_SHA256, GH_VERSION, TINI_SHA256, TINI_VERSION, VOICE_PACK_FILES, BUILDER_DISK_SHA256, BUILDER_DISK_BASE_URL, DEFAULT_BASE_IMAGE } from './chunk-ES4ULBAL.js';
17
+ import { WorkCommandError, getJson } from './chunk-J32AF6D2.js';
18
+ import { sanitizeTerminal } from './chunk-MECW77XP.js';
19
+ import { setCustomScrubbers, setLocalIdentity, setRepoRoot, parseTranscript, scrubDeep, scrubText } from './chunk-BO42KT3D.js';
20
20
  import { signerFor } from './chunk-SOI6K5DY.js';
21
21
  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-PA6CK6WQ.js';
22
22
  import { parseIsolation, proxyEnvironment, withProxyWarningHidden, containerLocalAddress, destinationEnvironment, claudeCredential, CLAUDE_CREDENTIAL_VARIABLES, builtInEnvironment, withHooksPath, startBuildServices, BUILT_IN_NAMES, repositoriesOf, primaryOf, RELAY_PORT, repositoryPath, CHECKOUT_DIR, lifecycleWorkdir, buildEnvironment, writeBuildMavenSettings, checkEnvironment, AGENT_CREDENTIAL_MISSING, mavenSettingsXml, namesGlobalSettings, MAVEN_NO_PROXY_NOTE, mavenArgs, MAVEN_SPACE_NOTE, writeMavenSettings, checkoutPath, JOB_MOUNT } from './chunk-BALIE3BA.js';
23
23
  import { sharedSkillNames, skillConflictMessage } from './chunk-FGF52V4V.js';
24
24
  import { versionAtLeast, MINIMUM_CLAUDE_VERSION } from './chunk-HCVLP7XA.js';
25
- import { orderSessions, extractFacts, sessionsToTimeline } from './chunk-6CXNWKWD.js';
26
- import { downconvertSession } from './chunk-F2D5BSXS.js';
25
+ import { orderSessions, extractFacts, sessionsToTimeline } from './chunk-CQRPR4WZ.js';
26
+ import { downconvertSession } from './chunk-EOTMDIYC.js';
27
27
  import { realFdStorePort } from './chunk-HACGUL52.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';
29
29
  import { spawn, spawnSync } from 'child_process';
@@ -1,26 +1,26 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { writePendingUpdate } from './chunk-GH246BGV.js';
4
- import { readHousekeepingRecord, writeHousekeepingRecord } from './chunk-57L2YAJA.js';
5
3
  import { decideInstalledSwitch } from './chunk-3JVYMD4G.js';
4
+ import { reportFailedStart, fitImageBuildMemory } from './chunk-HG6INMG3.js';
6
5
  import { fetchVersionMeta, npmVersion, npmSupportsProvenance, fetchTarballDigest, fetchProvenance, installVersion, auditSignatures } from './chunk-E7R2GIAW.js';
7
- import { reportFailedStart, fitImageBuildMemory } from './chunk-RZOO7X4G.js';
8
- import { releaseLease, isUnfinished, setStage, jobEnv, runHook, describeHookEnd, provisionMicroVm, deliverCommitHooks, provisionProcess, readProvisionOut, workdirProblem, MICROVM_COMMAND_DIR, commandLogOffset, startMicroVmCommand, microVmCommandLine, runCommand, startSender, finishJob, sampleGuest, foldSample, isContainerTracked, isMicroVmTracked, probeMicroVmCommand, probeCommand, appendCommandLog, judgeProbe, EXIT_CODE_FILE, isTracked, isGroupAlive, outcomeFromExitCode, isTimedOut, readCpuUsec, isIdle, stopOrphanedMicroVms, unfinishedJobs, listUnreadableJobs, listAdoptableJobs, retryFailedReleases, recoverLostJobs, GUEST_USAGE_INTERVAL_MS, hookLimitsFor, AttemptLogBook, microVmOomKills, needsRenew, renewLease, RENEW_INTERVAL_SECONDS, listTrackedJobs, restartSender, serveLease, vmAlive, writeGuestGhConfig, ALREADY_RELEASED, inTeardown } from './chunk-2LFWCIIE.js';
9
- import { JOB_STATE_FORMAT, readsJobState, jobStateFormatOf } from './chunk-ZVB57WI6.js';
6
+ import { releaseLease, isUnfinished, setStage, jobEnv, runHook, describeHookEnd, provisionMicroVm, deliverCommitHooks, provisionProcess, readProvisionOut, workdirProblem, MICROVM_COMMAND_DIR, commandLogOffset, startMicroVmCommand, microVmCommandLine, runCommand, startSender, finishJob, sampleGuest, foldSample, isContainerTracked, isMicroVmTracked, probeMicroVmCommand, probeCommand, appendCommandLog, judgeProbe, EXIT_CODE_FILE, isTracked, isGroupAlive, outcomeFromExitCode, isTimedOut, readCpuUsec, isIdle, stopOrphanedMicroVms, unfinishedJobs, listUnreadableJobs, listAdoptableJobs, retryFailedReleases, recoverLostJobs, GUEST_USAGE_INTERVAL_MS, hookLimitsFor, AttemptLogBook, microVmOomKills, needsRenew, renewLease, RENEW_INTERVAL_SECONDS, listTrackedJobs, restartSender, serveLease, vmAlive, writeGuestGhConfig, ALREADY_RELEASED, inTeardown } from './chunk-XXTXM47K.js';
10
7
  import { RUNNER_PROTOCOL } from './chunk-DA3PLB5N.js';
11
- import { realBlockedProbes, checkBlockedWithSlots, keepsHostBuilder } from './chunk-VMIOUVJF.js';
8
+ import { writePendingUpdate } from './chunk-GH246BGV.js';
9
+ import { JOB_STATE_FORMAT, readsJobState, jobStateFormatOf } from './chunk-ZVB57WI6.js';
10
+ import { readHousekeepingRecord, writeHousekeepingRecord } from './chunk-57L2YAJA.js';
11
+ import { realBlockedProbes, checkBlockedWithSlots, keepsHostBuilder } from './chunk-5CHRWX3K.js';
12
12
  import { writeMarker, readMarker, currentVersion, removeMarker, isInLayout, startedThroughCurrent, entryIn, versionDir, switchCurrent, cleanVersions, stagingDir } from './chunk-NBZ7XBT6.js';
13
13
  import { RepoFilter } from './chunk-TBT347UY.js';
14
- import { leaseTimeLeftMs, createContainerRuntime, withTunnelLog, LEASE_SECONDS, attemptNote, needsBuildSkill, provisionContainer, leaseExpiresAtMs, deliverContainerHooks, provisionEnvironment, resolveHostBuild, listenOnBroker, hostEnvironment, deliverExecMaven, runWithSpawn, hostCommandEnvironment, lifecycleSteps, execArgv, lifecycleFailureReason, decideHostBuildSkill, prepareBranch, currentSkillCommand, formerSkillProblem, containerCommandExec, execCommandLine, startHostServices, setUpRunnerCgroup, sweepImageBuilders, measureDisk, parseCpuList, ensureTunnel, keepGhConfigCurrent, filesAreCopied, gitRemoteFor, startServicesFor, createLeaseChannel } from './chunk-4YLL2E7Y.js';
14
+ import { leaseTimeLeftMs, createContainerRuntime, withTunnelLog, LEASE_SECONDS, attemptNote, needsBuildSkill, provisionContainer, leaseExpiresAtMs, deliverContainerHooks, provisionEnvironment, resolveHostBuild, listenOnBroker, hostEnvironment, deliverExecMaven, runWithSpawn, hostCommandEnvironment, lifecycleSteps, execArgv, lifecycleFailureReason, decideHostBuildSkill, prepareBranch, currentSkillCommand, formerSkillProblem, containerCommandExec, execCommandLine, startHostServices, setUpRunnerCgroup, sweepImageBuilders, measureDisk, parseCpuList, ensureTunnel, keepGhConfigCurrent, filesAreCopied, gitRemoteFor, startServicesFor, createLeaseChannel } from './chunk-KSZXJE3R.js';
15
15
  import { claimPidFile, writePidFile, readPidFile, releasePidFile } from './chunk-F5UL23I2.js';
16
16
  import { startTimeOf, isSameProcess } from './chunk-JBJTC3UU.js';
17
- import { describeCallFailure, retrySend, shortClaim, relativeToRunner, formatDuration, resolveGoverningSource, BuildTokens, classifyRefusal, refusalCode, createRunnerLog, formatClock } from './chunk-Z57X4KNC.js';
17
+ import { describeCallFailure, retrySend, shortClaim, relativeToRunner, formatDuration, resolveGoverningSource, BuildTokens, classifyRefusal, refusalCode, createRunnerLog, formatClock } from './chunk-3CUGPUCP.js';
18
18
  import { tagToPull, pullInstruction, imageTag, writeUpdateStatus } from './chunk-MZBQTVFG.js';
19
19
  import { isVersion, compareVersions, satisfiesRange } from './chunk-TQMI335S.js';
20
- import { isBuiltinContainer, isBuiltinVm, isBuiltinProcess, loadRunnerConfig, checkHooks, builtinKind, DEFAULT_UPDATE_MAX_WAIT_HOURS } from './chunk-VWQCYOBS.js';
21
- import { freeBytes, formatBytes, volumeBytes } from './chunk-X4JEBMYN.js';
22
- import { writeJobFile, ensureRunnerIdentity, readJobFile, exceedsDisk, builderName, runnerLabelValue, ensureFailureCount, builderSpec, ensureBuilder, spawnRun, BUILD_LABEL, RUNNER_LABEL, readJobFileChecked } from './chunk-OGMXVPCS.js';
23
- import { isSignatureRefusal, WorkCommandError, getJson, postJson } from './chunk-VSLJ6PPG.js';
20
+ import { isBuiltinContainer, isBuiltinVm, isBuiltinProcess, loadRunnerConfig, checkHooks, builtinKind, DEFAULT_UPDATE_MAX_WAIT_HOURS } from './chunk-2UF4H4PG.js';
21
+ import { freeBytes, formatBytes, volumeBytes } from './chunk-BBGVXGSO.js';
22
+ import { writeJobFile, ensureRunnerIdentity, readJobFile, exceedsDisk, builderName, runnerLabelValue, ensureFailureCount, builderSpec, ensureBuilder, spawnRun, BUILD_LABEL, RUNNER_LABEL, readJobFileChecked } from './chunk-TYBK2UCW.js';
23
+ import { isSignatureRefusal, WorkCommandError, getJson, postJson } from './chunk-J32AF6D2.js';
24
24
  import { loadHostKey, ensureHostKey, signerFor } from './chunk-SOI6K5DY.js';
25
25
  import { RUNNER_DIR_MODE, runnerDir, buildDir, attemptStamp, jobDir, RUNNER_FILE_MODE, jobsDir, pidFilePath, spoolDir, imagesDir, rootfsDir, builderCacheDiskPath } from './chunk-PA6CK6WQ.js';
26
26
  import { parseClaimIdentity, parseClaimedRepositories, parseUnreachable, repositoriesOf, primaryOf, sharedUserEnvironment, JOB_MOUNT, takeClaudeCredential, heldClaudeCredential, currentClaudeCredential } from './chunk-BALIE3BA.js';
@@ -1886,7 +1886,7 @@ var CLAIM_REFUSAL_CODES = new Set(
1886
1886
  "pull_request_from_fork pull_request_on_default_branch pull_request_ambiguous pull_request_repository_not_connected repository_not_reachable branch_claimed_elsewhere".split(" ")
1887
1887
  );
1888
1888
  async function tryClaimAndStart(state, item, queue) {
1889
- const { postJson: postJson2 } = await import('./work-cmd-J2LJ3V4A.js');
1889
+ const { postJson: postJson2 } = await import('./work-cmd-FVDCWSPE.js');
1890
1890
  const log = logOf(state);
1891
1891
  const hostKey = await loadHostKey(state.config.configPath);
1892
1892
  const claim = await retrySend(
@@ -3130,7 +3130,7 @@ async function startRunner(configPath, deps, startup) {
3130
3130
  check: update.check ? () => update.check(configPath) : async () => {
3131
3131
  const held = heldClaudeCredential();
3132
3132
  const env = held === void 0 ? process.env : { ...process.env, [held.variable]: held.value };
3133
- return (await import('./check-XPMN4GHD.js')).runRunnerCheck(configPath, { fetchImpl: deps.fetchImpl, env });
3133
+ return (await import('./check-4MYU7S73.js')).runRunnerCheck(configPath, { fetchImpl: deps.fetchImpl, env });
3134
3134
  },
3135
3135
  now: () => (deps.now ?? (() => /* @__PURE__ */ new Date()))().getTime(),
3136
3136
  log
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { ArtifactTombstoneRecordSchema, ArtifactSpoolRecordSchema } from './chunk-F2D5BSXS.js';
3
+ import { ArtifactTombstoneRecordSchema, ArtifactSpoolRecordSchema } from './chunk-EOTMDIYC.js';
4
4
  import { homeFromEnv } from './chunk-VNVZDWO3.js';
5
5
  import { mkdirSync, appendFileSync, writeFileSync, renameSync, unlinkSync, existsSync, readdirSync, readFileSync, statSync } from 'fs';
6
6
  import { join, dirname } from 'path';