@outerlayer/cli 0.33.0-next.20261023003700 → 0.33.0-next.20261023030517

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 (107) hide show
  1. package/README.md +9 -3
  2. package/dist/{agent-setup-55ZDEXCS.js → agent-setup-APFM4MZ4.js} +10 -10
  3. package/dist/{artifact-link-cmd-6FF2Y6QI.js → artifact-link-cmd-IHHMU4EA.js} +2 -2
  4. package/dist/{build-disk-JHTMPRAA.js → build-disk-55M4ZMDX.js} +4 -4
  5. package/dist/build-info.json +1 -1
  6. package/dist/{builder-Y4P7QARW.js → builder-DQZCPB7J.js} +3 -3
  7. package/dist/{check-MRYFTLOO.js → check-AEMFDR55.js} +28 -28
  8. package/dist/{chunk-EUVE2EAE.js → chunk-2WZ66FXA.js} +3 -3
  9. package/dist/{chunk-BJQ25STI.js → chunk-35DSTT37.js} +4 -4
  10. package/dist/{chunk-Q2CMEQV7.js → chunk-4NKHOCTF.js} +3 -3
  11. package/dist/{chunk-VT4TTJPG.js → chunk-5FSVA3CO.js} +5 -5
  12. package/dist/{chunk-SDU2IE22.js → chunk-67KCGRKA.js} +12 -12
  13. package/dist/{chunk-HXA5GIHK.js → chunk-6ANIBEQ6.js} +6 -6
  14. package/dist/{chunk-AVTI3FL5.js → chunk-6ZLI652Y.js} +1 -1
  15. package/dist/{chunk-HE4FBF4T.js → chunk-7HZH5D7H.js} +2 -2
  16. package/dist/{chunk-6Z4SZHV2.js → chunk-A5FFANL7.js} +5 -5
  17. package/dist/{chunk-PWH3BEZF.js → chunk-AXIK6F52.js} +13 -13
  18. package/dist/{chunk-7HHNGZS5.js → chunk-B6WW6AKO.js} +4 -4
  19. package/dist/{chunk-ULBNTSAD.js → chunk-C66Q2CLW.js} +2 -2
  20. package/dist/{chunk-UIUGTW5C.js → chunk-C7WGCI77.js} +2 -2
  21. package/dist/{chunk-B2JURP6A.js → chunk-CCOU4NXE.js} +2 -2
  22. package/dist/{chunk-SVDOA4W2.js → chunk-DHUHQPRQ.js} +7 -7
  23. package/dist/{chunk-EWVYQLD3.js → chunk-E4F7YE7P.js} +1 -1
  24. package/dist/chunk-ER6KQCVJ.js +18 -0
  25. package/dist/{chunk-2EGCI2VW.js → chunk-GFTWZSOW.js} +10 -10
  26. package/dist/{chunk-AU346ENF.js → chunk-HUBRTT2C.js} +4 -4
  27. package/dist/{chunk-QPWFVE3X.js → chunk-JB4R5IFJ.js} +2 -2
  28. package/dist/{chunk-W2AEL4BJ.js → chunk-LHKWWEQZ.js} +1 -1
  29. package/dist/{chunk-G63KT5I5.js → chunk-M24H6JQW.js} +1 -1
  30. package/dist/{chunk-XL2XWWU7.js → chunk-M3RYZRMH.js} +3 -3
  31. package/dist/{chunk-RQJMN5TJ.js → chunk-ONUACB5C.js} +2 -2
  32. package/dist/{chunk-JHTJPQSL.js → chunk-PILHDNHX.js} +4 -4
  33. package/dist/{chunk-HJYBWJAS.js → chunk-PJI5D2XT.js} +2 -2
  34. package/dist/{chunk-LJG6EMLJ.js → chunk-PNIFQX73.js} +1 -1
  35. package/dist/{chunk-FR7HWWCF.js → chunk-QKEOAQ2W.js} +1 -1
  36. package/dist/{chunk-5DNCFOXA.js → chunk-QQXNS4G2.js} +1 -1
  37. package/dist/{chunk-XHHTMFCX.js → chunk-RLAKWXDK.js} +1 -1
  38. package/dist/{chunk-2N67C6IV.js → chunk-T4S2DVOA.js} +5 -5
  39. package/dist/{chunk-GFYEMCPP.js → chunk-T4TT76GG.js} +1 -1
  40. package/dist/{chunk-BKADJZ7F.js → chunk-UAJYWZ2F.js} +3 -3
  41. package/dist/{chunk-DISTLL2Q.js → chunk-UHFU3CBN.js} +1 -1
  42. package/dist/{chunk-E6CO3MJE.js → chunk-V7Q5OKN7.js} +12 -1
  43. package/dist/{chunk-2WMZPJVE.js → chunk-VJGQEASF.js} +4 -4
  44. package/dist/{chunk-NSPRS7WK.js → chunk-X37GC7DM.js} +1 -1
  45. package/dist/{chunk-3RIFVLPO.js → chunk-X62C7V4B.js} +12 -12
  46. package/dist/{chunk-DY7Y7UT4.js → chunk-XMPE5TT4.js} +2 -2
  47. package/dist/{chunk-T5REPMNL.js → chunk-Z4GLZTDF.js} +2 -2
  48. package/dist/{claude-launcher-NTYHJUJM.js → claude-launcher-B55NWRH5.js} +5 -5
  49. package/dist/{cli-K6XGL4EZ.js → cli-5YT5EL2R.js} +146 -103
  50. package/dist/{command-7FAIIQGF.js → command-DYLRDCGC.js} +19 -19
  51. package/dist/{config-QXMUWJAQ.js → config-RRY7DIJG.js} +5 -5
  52. package/dist/{connect-cmd-P5GASVAF.js → connect-cmd-7C6W2SEP.js} +8 -8
  53. package/dist/{container-start-CVP3NTDG.js → container-start-F7PBMTAL.js} +20 -20
  54. package/dist/{context-cleanup-BX5Y3AFL.js → context-cleanup-EKTPKJJT.js} +3 -3
  55. package/dist/{context-show-cmd-3EPJ7CJC.js → context-show-cmd-I5JC7EFH.js} +9 -9
  56. package/dist/{control-plane-launch-A3YCHQNQ.js → control-plane-launch-NOKM6CBH.js} +6 -6
  57. package/dist/{dist-ACTRIBVW.js → dist-LLYL5UCV.js} +2 -2
  58. package/dist/{docker-ANW76BNW.js → docker-W7WWFZ3Q.js} +3 -3
  59. package/dist/{doctor-GJAHI3KU.js → doctor-LYOFFCQS.js} +20 -20
  60. package/dist/{emit-artifact-cmd-FDPJKGOO.js → emit-artifact-cmd-RO34UG7A.js} +13 -13
  61. package/dist/{emit-cmd-OX6LYS6I.js → emit-cmd-GY7Z26DY.js} +6 -6
  62. package/dist/{emit-criteria-cmd-3SVGCMJN.js → emit-criteria-cmd-Y36QCPAM.js} +10 -10
  63. package/dist/{emit-demo-cmd-6DF2QIAS.js → emit-demo-cmd-YMWVF5U4.js} +104 -34
  64. package/dist/{emit-finding-cmd-TLJWBGQE.js → emit-finding-cmd-MH3ZWUNV.js} +10 -10
  65. package/dist/{emit-result-cmd-CJNVDV5V.js → emit-result-cmd-ZARZZZ3Y.js} +12 -12
  66. package/dist/{emit-step-cmd-347CZO7Y.js → emit-step-cmd-A6HQJDBY.js} +10 -10
  67. package/dist/{findings-cmd-LHTYEHYB.js → findings-cmd-OLLBWJXJ.js} +10 -10
  68. package/dist/{fleet-readiness-KGR5AC2J.js → fleet-readiness-VB5QSFSY.js} +8 -8
  69. package/dist/{governing-source-JZQZUTMA.js → governing-source-ZX7VXTOA.js} +13 -13
  70. package/dist/{hook-fast-6WDMNZG5.js → hook-fast-4RYMBFPO.js} +1 -1
  71. package/dist/index.js +4 -4
  72. package/dist/{init-ZQ5B3TJZ.js → init-BQCGL7UD.js} +19 -19
  73. package/dist/{init-XDOKWBL2.js → init-NCCMB2UE.js} +19 -19
  74. package/dist/{init-cmd-YMGW2WXJ.js → init-cmd-OW2L5HTI.js} +18 -18
  75. package/dist/{init-update-X7YLZL6H.js → init-update-7LUMOECE.js} +17 -17
  76. package/dist/{install-QPA7DQHO.js → install-5BQ3TFBT.js} +6 -6
  77. package/dist/{layout-JGF7MJHG.js → layout-RGVPCX7Y.js} +4 -4
  78. package/dist/{login-browser-3RIZQJY2.js → login-browser-BC2Z5QKG.js} +2 -2
  79. package/dist/{loop-UJL2UCUM.js → loop-BU634Y6A.js} +28 -28
  80. package/dist/{machine-2YPAFFCH.js → machine-RI4KHRYP.js} +19 -19
  81. package/dist/{machine-skills-AGERT2HN.js → machine-skills-CS5HAQHF.js} +4 -4
  82. package/dist/{runner-env-HOUXKWIJ.js → runner-env-QSLLOFNF.js} +7 -7
  83. package/dist/{runner-identity-KPUVTRLS.js → runner-identity-DQAXW4DL.js} +3 -3
  84. package/dist/{runner-key-FUJD66R6.js → runner-key-UWL475RU.js} +19 -19
  85. package/dist/{session-sender-7B3ZDWMC.js → session-sender-OGDUJ2KK.js} +13 -13
  86. package/dist/{spec-cmd-Q26NE22H.js → spec-cmd-WB4UOFPG.js} +11 -11
  87. package/dist/{starter-pack-UBEC5LTE.js → starter-pack-XHATFTO3.js} +5 -5
  88. package/dist/{status-2KNTILGQ.js → status-GFZFND6L.js} +24 -24
  89. package/dist/{sync-cmd-SSUYTMLJ.js → sync-cmd-GPZD2C45.js} +12 -12
  90. package/dist/{watch-L5NCO46E.js → watch-5I3GURXY.js} +12 -12
  91. package/dist/{work-claim-cmd-NJNOQFQE.js → work-claim-cmd-J52UVCAF.js} +15 -15
  92. package/dist/{work-cmd-W7WEHMQJ.js → work-cmd-PQZ5RYDB.js} +10 -10
  93. package/dist/{work-comment-cmd-SSUOGVDD.js → work-comment-cmd-WI6B3IOS.js} +10 -10
  94. package/dist/work-demo-cmd-3NDGSQKJ.js +62 -0
  95. package/dist/{work-logs-cmd-WPMWMDX6.js → work-logs-cmd-QCYZ5X5A.js} +10 -10
  96. package/dist/{work-open-pr-cmd-NO5YLOXD.js → work-open-pr-cmd-BRDF3ZKL.js} +11 -11
  97. package/dist/{work-pr-cmd-37B5KECR.js → work-pr-cmd-WY2TBAKW.js} +10 -10
  98. package/dist/work-proofs-cmd-R25HT6WP.js +111 -0
  99. package/dist/{work-stop-cmd-3BJLXUJ3.js → work-stop-cmd-C52JPZ4E.js} +10 -10
  100. package/package.json +1 -1
  101. package/skill-pack/maintained/outerlayer-amend/SKILL.md +36 -34
  102. package/skill-pack/maintained/outerlayer-amend/scripts/rerecord-demo.mjs +187 -0
  103. package/skill-pack/maintained/outerlayer-build/SKILL.md +7 -2
  104. package/skill-pack/maintained/outerlayer-build/references/agent-briefs.md +11 -2
  105. package/skill-pack/maintained/outerlayer-build/references/evidence.md +8 -0
  106. package/skill-pack/maintained/outerlayer-build/references/release.md +3 -2
  107. package/skill-pack/maintained/outerlayer-evidence/SKILL.md +6 -4
@@ -1,19 +1,20 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { runEmitArtifact } from './chunk-6Z4SZHV2.js';
4
- import './chunk-2N67C6IV.js';
5
- import './chunk-AU346ENF.js';
3
+ import { readNewestDemo } from './chunk-ER6KQCVJ.js';
4
+ import { runEmitArtifact } from './chunk-A5FFANL7.js';
5
+ import './chunk-T4S2DVOA.js';
6
+ import './chunk-HUBRTT2C.js';
6
7
  import './chunk-ESVW4MJY.js';
7
8
  import './chunk-TBT347UY.js';
8
9
  import { VoiceDownloadError, downloadPinned, sha256OfFile } from './chunk-2PGI6RDE.js';
9
10
  import { VOICE_PACK_FILES, VOICE_PACK_VERSION } from './chunk-NE63JADS.js';
10
11
  import { detectActiveSession } from './chunk-IP7BIBXJ.js';
11
- import { autoConnect } from './chunk-B2JURP6A.js';
12
- import './chunk-2WMZPJVE.js';
13
- import './chunk-EWVYQLD3.js';
14
- import { resolveRepoIdentity } from './chunk-5DNCFOXA.js';
15
- import './chunk-HJYBWJAS.js';
16
- import './chunk-NSPRS7WK.js';
12
+ import { autoConnect } from './chunk-CCOU4NXE.js';
13
+ import './chunk-VJGQEASF.js';
14
+ import './chunk-E4F7YE7P.js';
15
+ import { resolveRepoIdentity } from './chunk-QQXNS4G2.js';
16
+ import './chunk-PJI5D2XT.js';
17
+ import './chunk-X37GC7DM.js';
17
18
  import './chunk-G2JWZDFA.js';
18
19
  import { C } from './chunk-ANPNT6PM.js';
19
20
  import { defaultFetch, resolveGatewayCredentials } from './chunk-6RKD7YZ6.js';
@@ -21,13 +22,13 @@ import './chunk-PJDQPF5N.js';
21
22
  import './chunk-SOI6K5DY.js';
22
23
  import './chunk-PA6CK6WQ.js';
23
24
  import './chunk-BALIE3BA.js';
24
- import './chunk-QPWFVE3X.js';
25
+ import './chunk-JB4R5IFJ.js';
25
26
  import './chunk-ZJSNLVCE.js';
26
27
  import './chunk-2O5KA67H.js';
27
28
  import './chunk-BKO6JEZI.js';
28
29
  import './chunk-HCVLP7XA.js';
29
30
  import './chunk-BJ3KTMDH.js';
30
- import './chunk-G63KT5I5.js';
31
+ import './chunk-M24H6JQW.js';
31
32
  import './chunk-5BHIBJDA.js';
32
33
  import './chunk-CDDED64E.js';
33
34
  import './chunk-RA3O54FC.js';
@@ -36,8 +37,8 @@ import './chunk-WZBHBH3J.js';
36
37
  import './chunk-CRB3POP4.js';
37
38
  import './chunk-URIZRCRY.js';
38
39
  import './chunk-TUSYOL2O.js';
39
- import './chunk-LJG6EMLJ.js';
40
- import { ARTIFACT_MAX_BYTES, ARTIFACT_MAX_CAPTION_LENGTH, DEMO_RECORD_MEDIA_TYPE, DemoManifestSchema } from './chunk-E6CO3MJE.js';
40
+ import './chunk-PNIFQX73.js';
41
+ import { ARTIFACT_MAX_BYTES, ARTIFACT_MAX_CAPTION_LENGTH, DEMO_RECORD_MEDIA_TYPE, ARTIFACT_MAX_REPLACES_TARGETS, DemoManifestSchema } from './chunk-V7Q5OKN7.js';
41
42
  import { homeFromEnv } from './chunk-VNVZDWO3.js';
42
43
  import './chunk-HACGUL52.js';
43
44
  import './chunk-MESOOLF4.js';
@@ -2445,6 +2446,8 @@ function buildDemoRecord(manifest, video, stored, comparisons) {
2445
2446
  }
2446
2447
  return {
2447
2448
  schemaVersion: 3,
2449
+ // Only a version 3 manifest names its test. An older one stores a record with no test.
2450
+ ...manifest.schemaVersion === 3 ? { test: manifest.test } : {},
2448
2451
  video,
2449
2452
  chapters: manifest.chapters.map((chapter, index) => {
2450
2453
  const comparison = comparisons[index];
@@ -2843,7 +2846,9 @@ async function runEmitDemo(opts) {
2843
2846
  }
2844
2847
  const fetchImpl = opts.fetchImpl ?? defaultFetch;
2845
2848
  const media = opts.media ?? createMediaTools(env);
2846
- const recordedIds = await recordedCriteria({ opts, env, cwd, home, fetchImpl, say });
2849
+ const item = resolveItem({ opts, env, cwd, home });
2850
+ const retiring = opts.replaces === void 0 ? void 0 : await readRetiring({ opts, item, env, cwd, home, fetchImpl });
2851
+ const recordedIds = await recordedCriteria({ opts, item, env, cwd, home, fetchImpl, say });
2847
2852
  let videoSeconds;
2848
2853
  try {
2849
2854
  videoSeconds = media.probe(videoPath);
@@ -2964,6 +2969,7 @@ async function runEmitDemo(opts) {
2964
2969
  env,
2965
2970
  fetchImpl: opts.fetchImpl
2966
2971
  };
2972
+ const replacing = retiring === void 0 ? void 0 : planReplaces(retiring, manifest, wholeFits);
2967
2973
  const total = manifest.chapters.length + (wholeFits ? 1 : 0) + 1;
2968
2974
  const unit = "artifacts";
2969
2975
  let emitted = 0;
@@ -2977,7 +2983,8 @@ async function runEmitDemo(opts) {
2977
2983
  file: wholePlan.output,
2978
2984
  artifactId: video.artifactId,
2979
2985
  caption: `Demo: ${manifest.chapters.length} chapter${manifest.chapters.length === 1 ? "" : "s"}, ${(wholePlan.end - wholePlan.start).toFixed(1)} s`,
2980
- blobOptional: true
2986
+ blobOptional: true,
2987
+ ...replaceOption(replacing?.video)
2981
2988
  });
2982
2989
  video = { artifactId: artifactIdOf(wholeResult) };
2983
2990
  }
@@ -2999,7 +3006,8 @@ async function runEmitDemo(opts) {
2999
3006
  caption: caption.slice(0, ARTIFACT_MAX_CAPTION_LENGTH),
3000
3007
  ...bound[index] ? { criterionId: chapter.criterionId } : {},
3001
3008
  ...wholeFits ? { range: stored[index].range } : {},
3002
- blobOptional: true
3009
+ blobOptional: true,
3010
+ ...replaceOption(replacing?.chapters[index])
3003
3011
  });
3004
3012
  clips.push({
3005
3013
  clipArtifactId: artifactIdOf(result),
@@ -3022,7 +3030,8 @@ async function runEmitDemo(opts) {
3022
3030
  artifactId: idFor("record", recordPath),
3023
3031
  caption: `Demo record: ${clips.length} chapter${clips.length === 1 ? "" : "s"}, ${clips.filter((clip) => clip.bound).length} bound to a criterion`,
3024
3032
  mediaType: DEMO_RECORD_MEDIA_TYPE,
3025
- blobOptional: true
3033
+ blobOptional: true,
3034
+ ...replaceOption(replacing?.record)
3026
3035
  });
3027
3036
  const recordArtifactId = artifactIdOf(recorded);
3028
3037
  const exitCode = failures.length > 0 ? 1 : 0;
@@ -3087,29 +3096,35 @@ async function emitOrExplain(emit, opts, emitted, total, unit) {
3087
3096
  );
3088
3097
  }
3089
3098
  }
3099
+ function resolveItem(params) {
3100
+ const { opts, env, cwd, home } = params;
3101
+ if (opts.item !== void 0) return opts.item;
3102
+ const identity = resolveRepoIdentity(cwd);
3103
+ const sessionId = detectActiveSession({
3104
+ env,
3105
+ home,
3106
+ cwds: identity.repoRoot !== void 0 ? [identity.repoRoot, cwd] : [cwd],
3107
+ nowMs: Date.now()
3108
+ });
3109
+ return sessionId === void 0 ? void 0 : launchedItemForSession(sessionId, home);
3110
+ }
3111
+ async function gatewayFor(params) {
3112
+ const { opts, env, cwd, home } = params;
3113
+ const refusal = await autoConnect({ url: opts.url, apiKey: opts.apiKey, appId: opts.appId, cwd, home, env, fetchImpl: opts.fetchImpl });
3114
+ if (refusal !== void 0) throw new Error(refusal);
3115
+ const resolved = resolveGatewayCredentials({ url: opts.url, apiKey: opts.apiKey, appId: opts.appId, cwd, home, env });
3116
+ if (!resolved.ok) throw new Error(resolved.message);
3117
+ return { url: resolved.url, apiKey: resolved.credential, appId: resolved.appId };
3118
+ }
3090
3119
  async function recordedCriteria(params) {
3091
- const { opts, env, cwd, home, fetchImpl, say } = params;
3092
- let item = opts.item;
3093
- if (item === void 0) {
3094
- const identity = resolveRepoIdentity(cwd);
3095
- const sessionId = detectActiveSession({
3096
- env,
3097
- home,
3098
- cwds: identity.repoRoot !== void 0 ? [identity.repoRoot, cwd] : [cwd],
3099
- nowMs: Date.now()
3100
- });
3101
- item = sessionId === void 0 ? void 0 : launchedItemForSession(sessionId, home);
3102
- }
3120
+ const { opts, item, env, cwd, home, fetchImpl, say } = params;
3103
3121
  if (item === void 0) {
3104
3122
  say(`${C.yellow}!${C.reset} no work item, so the chapters' criterion ids are not checked against the recorded criteria (pass --item <number>)`);
3105
3123
  return void 0;
3106
3124
  }
3107
3125
  try {
3108
- const refusal = await autoConnect({ url: opts.url, apiKey: opts.apiKey, appId: opts.appId, cwd, home, env, fetchImpl: opts.fetchImpl });
3109
- if (refusal !== void 0) throw new Error(refusal);
3110
- const resolved = resolveGatewayCredentials({ url: opts.url, apiKey: opts.apiKey, appId: opts.appId, cwd, home, env });
3111
- if (!resolved.ok) throw new Error(resolved.message);
3112
- const ids = await readRecordedCriteriaIds({ url: resolved.url, apiKey: resolved.credential, appId: resolved.appId, item, fetchImpl });
3126
+ const gateway = await gatewayFor({ opts, env, cwd, home });
3127
+ const ids = await readRecordedCriteriaIds({ url: gateway.url, apiKey: gateway.apiKey, appId: gateway.appId, item, fetchImpl });
3113
3128
  if (ids === void 0) say(`${C.yellow}!${C.reset} item ${item} has no recorded criteria, so the chapters' criterion ids are not checked`);
3114
3129
  return ids;
3115
3130
  } catch (err) {
@@ -3117,6 +3132,61 @@ async function recordedCriteria(params) {
3117
3132
  return void 0;
3118
3133
  }
3119
3134
  }
3135
+ async function readRetiring(params) {
3136
+ const { opts, item, env, cwd, home, fetchImpl } = params;
3137
+ const replaces = opts.replaces;
3138
+ if (item === void 0) throw new EmitDemoError("--replaces needs the work item whose demo it replaces; run in a recorded session or pass --item <number>");
3139
+ let newest;
3140
+ try {
3141
+ const gateway = await gatewayFor({ opts, env, cwd, home });
3142
+ newest = await readNewestDemo({ ...gateway, item, fetchImpl });
3143
+ } catch (err) {
3144
+ throw new EmitDemoError(`could not read the demo of item ${item} to replace it: ${err instanceof Error ? err.message : String(err)}`);
3145
+ }
3146
+ if (newest === null) throw new EmitDemoError(`item ${item} has no demo to replace; leave out --replaces`);
3147
+ if (newest.artifactId !== replaces) {
3148
+ throw new EmitDemoError(`--replaces ${replaces} is not the newest demo record of item ${item}; the newest is ${newest.artifactId}`);
3149
+ }
3150
+ const record = newest.record;
3151
+ if (record === null) {
3152
+ throw new EmitDemoError(
3153
+ `the stored record ${newest.artifactId} of item ${item} cannot be read, so the artifacts it names cannot be replaced; retire them with emit artifact --replaces, or leave out --replaces`
3154
+ );
3155
+ }
3156
+ const live = newest.liveArtifactIds === void 0 ? void 0 : new Set(newest.liveArtifactIds);
3157
+ const isLive = (id) => live === void 0 || live.has(id);
3158
+ const videoId = record.schemaVersion === 3 && "artifactId" in record.video ? record.video.artifactId : void 0;
3159
+ return {
3160
+ recordId: newest.artifactId,
3161
+ videoId: videoId !== void 0 && isLive(videoId) ? videoId : void 0,
3162
+ chapters: record.chapters.map((chapter) => ({
3163
+ artifactId: "artifactId" in chapter ? chapter.artifactId : chapter.clipArtifactId,
3164
+ criterionId: chapter.criterionId
3165
+ })).filter((chapter) => isLive(chapter.artifactId))
3166
+ };
3167
+ }
3168
+ function planReplaces(old, manifest, wholeFits) {
3169
+ const taken = /* @__PURE__ */ new Set();
3170
+ const take = (ids) => {
3171
+ for (const id of ids) taken.add(id);
3172
+ return ids;
3173
+ };
3174
+ const video = wholeFits && old.videoId !== void 0 ? take([old.videoId]) : [];
3175
+ const chapters = manifest.chapters.map(
3176
+ (chapter) => chapter.criterionId === null ? [] : take(old.chapters.filter((entry) => entry.criterionId === chapter.criterionId).map((entry) => entry.artifactId))
3177
+ );
3178
+ const left = [...old.videoId === void 0 ? [] : [old.videoId], ...old.chapters.map((entry) => entry.artifactId)];
3179
+ const record = [old.recordId, ...new Set(left.filter((id) => !taken.has(id)))];
3180
+ for (const targets of [video, ...chapters, record]) {
3181
+ if (targets.length > ARTIFACT_MAX_REPLACES_TARGETS) {
3182
+ throw new EmitDemoError(
3183
+ `the old demo leaves ${targets.length} artifacts to retire in one emit, over the limit of ${ARTIFACT_MAX_REPLACES_TARGETS} \u2014 record the demo with fewer chapters, or retire the old artifacts with emit artifact --replaces`
3184
+ );
3185
+ }
3186
+ }
3187
+ return { video, chapters, record };
3188
+ }
3189
+ var replaceOption = (targets) => targets === void 0 || targets.length === 0 ? {} : { replaces: targets.join(",") };
3120
3190
  async function realSpeaker(params) {
3121
3191
  const { env, home, work, say, installedRoot } = params;
3122
3192
  try {
@@ -1,14 +1,14 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { EmitFindingError, detectUploadSessionId, refuseRemovedFindingFlags, resolveUploadTarget, runEmitFinding, runEmitFindings } from './chunk-BKADJZ7F.js';
3
+ export { EmitFindingError, detectUploadSessionId, refuseRemovedFindingFlags, resolveUploadTarget, runEmitFinding, runEmitFindings } from './chunk-UAJYWZ2F.js';
4
4
  import './chunk-ESVW4MJY.js';
5
5
  import './chunk-IP7BIBXJ.js';
6
- import './chunk-B2JURP6A.js';
7
- import './chunk-2WMZPJVE.js';
8
- import './chunk-EWVYQLD3.js';
9
- import './chunk-5DNCFOXA.js';
10
- import './chunk-HJYBWJAS.js';
11
- import './chunk-NSPRS7WK.js';
6
+ import './chunk-CCOU4NXE.js';
7
+ import './chunk-VJGQEASF.js';
8
+ import './chunk-E4F7YE7P.js';
9
+ import './chunk-QQXNS4G2.js';
10
+ import './chunk-PJI5D2XT.js';
11
+ import './chunk-X37GC7DM.js';
12
12
  import './chunk-G2JWZDFA.js';
13
13
  import './chunk-ANPNT6PM.js';
14
14
  import './chunk-6RKD7YZ6.js';
@@ -18,15 +18,15 @@ import './chunk-PA6CK6WQ.js';
18
18
  import './chunk-BALIE3BA.js';
19
19
  import './chunk-ZJSNLVCE.js';
20
20
  import './chunk-BJ3KTMDH.js';
21
- import './chunk-G63KT5I5.js';
21
+ import './chunk-M24H6JQW.js';
22
22
  import './chunk-5BHIBJDA.js';
23
23
  import './chunk-CDDED64E.js';
24
24
  import './chunk-RA3O54FC.js';
25
25
  import './chunk-T2Q7ISPE.js';
26
26
  import './chunk-WZBHBH3J.js';
27
27
  import './chunk-CRB3POP4.js';
28
- import './chunk-LJG6EMLJ.js';
29
- import './chunk-E6CO3MJE.js';
28
+ import './chunk-PNIFQX73.js';
29
+ import './chunk-V7Q5OKN7.js';
30
30
  import './chunk-VNVZDWO3.js';
31
31
  import './chunk-HACGUL52.js';
32
32
  import './chunk-MESOOLF4.js';
@@ -1,17 +1,17 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
3
  import { zodProblem } from './chunk-I3LTIAOR.js';
4
- import { detectCi } from './chunk-2N67C6IV.js';
5
- import './chunk-AU346ENF.js';
4
+ import { detectCi } from './chunk-T4S2DVOA.js';
5
+ import './chunk-HUBRTT2C.js';
6
6
  import { launchRefusalForSession } from './chunk-ESVW4MJY.js';
7
7
  import './chunk-TBT347UY.js';
8
8
  import { detectActiveSession } from './chunk-IP7BIBXJ.js';
9
- import { autoConnect } from './chunk-B2JURP6A.js';
10
- import './chunk-2WMZPJVE.js';
11
- import './chunk-EWVYQLD3.js';
12
- import { resolveRepoIdentity } from './chunk-5DNCFOXA.js';
13
- import './chunk-HJYBWJAS.js';
14
- import './chunk-NSPRS7WK.js';
9
+ import { autoConnect } from './chunk-CCOU4NXE.js';
10
+ import './chunk-VJGQEASF.js';
11
+ import './chunk-E4F7YE7P.js';
12
+ import { resolveRepoIdentity } from './chunk-QQXNS4G2.js';
13
+ import './chunk-PJI5D2XT.js';
14
+ import './chunk-X37GC7DM.js';
15
15
  import './chunk-G2JWZDFA.js';
16
16
  import { C } from './chunk-ANPNT6PM.js';
17
17
  import { resolveGatewayCredentials, defaultFetch, unauthorizedMessage } from './chunk-6RKD7YZ6.js';
@@ -19,13 +19,13 @@ import './chunk-PJDQPF5N.js';
19
19
  import './chunk-SOI6K5DY.js';
20
20
  import './chunk-PA6CK6WQ.js';
21
21
  import './chunk-BALIE3BA.js';
22
- import './chunk-QPWFVE3X.js';
22
+ import './chunk-JB4R5IFJ.js';
23
23
  import './chunk-ZJSNLVCE.js';
24
24
  import './chunk-2O5KA67H.js';
25
25
  import './chunk-BKO6JEZI.js';
26
26
  import './chunk-HCVLP7XA.js';
27
27
  import './chunk-BJ3KTMDH.js';
28
- import './chunk-G63KT5I5.js';
28
+ import './chunk-M24H6JQW.js';
29
29
  import './chunk-5BHIBJDA.js';
30
30
  import './chunk-CDDED64E.js';
31
31
  import './chunk-RA3O54FC.js';
@@ -34,8 +34,8 @@ import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
34
34
  import './chunk-CRB3POP4.js';
35
35
  import './chunk-URIZRCRY.js';
36
36
  import './chunk-TUSYOL2O.js';
37
- import './chunk-LJG6EMLJ.js';
38
- import { EmittedNameSchema, EMITTED_RESULT_MAX_LINK_LENGTH, EMITTED_RESULTS, itemsAllowResult, EMITTED_RESULT_MAX_BODY_LENGTH, CheckItemsSchema } from './chunk-E6CO3MJE.js';
37
+ import './chunk-PNIFQX73.js';
38
+ import { EmittedNameSchema, EMITTED_RESULT_MAX_LINK_LENGTH, EMITTED_RESULTS, itemsAllowResult, EMITTED_RESULT_MAX_BODY_LENGTH, CheckItemsSchema } from './chunk-V7Q5OKN7.js';
39
39
  import { homeFromEnv } from './chunk-VNVZDWO3.js';
40
40
  import './chunk-HACGUL52.js';
41
41
  import './chunk-MESOOLF4.js';
@@ -1,14 +1,14 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { EmitStepError, runEmitStep, uploadSpooledSteps } from './chunk-AU346ENF.js';
3
+ export { EmitStepError, runEmitStep, uploadSpooledSteps } from './chunk-HUBRTT2C.js';
4
4
  import './chunk-ESVW4MJY.js';
5
5
  import './chunk-IP7BIBXJ.js';
6
- import './chunk-B2JURP6A.js';
7
- import './chunk-2WMZPJVE.js';
8
- import './chunk-EWVYQLD3.js';
9
- import './chunk-5DNCFOXA.js';
10
- import './chunk-HJYBWJAS.js';
11
- import './chunk-NSPRS7WK.js';
6
+ import './chunk-CCOU4NXE.js';
7
+ import './chunk-VJGQEASF.js';
8
+ import './chunk-E4F7YE7P.js';
9
+ import './chunk-QQXNS4G2.js';
10
+ import './chunk-PJI5D2XT.js';
11
+ import './chunk-X37GC7DM.js';
12
12
  import './chunk-G2JWZDFA.js';
13
13
  import './chunk-ANPNT6PM.js';
14
14
  import './chunk-6RKD7YZ6.js';
@@ -17,15 +17,15 @@ import './chunk-SOI6K5DY.js';
17
17
  import './chunk-PA6CK6WQ.js';
18
18
  import './chunk-BALIE3BA.js';
19
19
  import './chunk-BJ3KTMDH.js';
20
- import './chunk-G63KT5I5.js';
20
+ import './chunk-M24H6JQW.js';
21
21
  import './chunk-5BHIBJDA.js';
22
22
  import './chunk-CDDED64E.js';
23
23
  import './chunk-RA3O54FC.js';
24
24
  import './chunk-T2Q7ISPE.js';
25
25
  import './chunk-WZBHBH3J.js';
26
26
  import './chunk-CRB3POP4.js';
27
- import './chunk-LJG6EMLJ.js';
28
- import './chunk-E6CO3MJE.js';
27
+ import './chunk-PNIFQX73.js';
28
+ import './chunk-V7Q5OKN7.js';
29
29
  import './chunk-VNVZDWO3.js';
30
30
  import './chunk-HACGUL52.js';
31
31
  import './chunk-MESOOLF4.js';
@@ -1,14 +1,14 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { resolveUploadTarget, detectUploadSessionId, EmitFindingError } from './chunk-BKADJZ7F.js';
3
+ import { resolveUploadTarget, detectUploadSessionId, EmitFindingError } from './chunk-UAJYWZ2F.js';
4
4
  import './chunk-ESVW4MJY.js';
5
5
  import './chunk-IP7BIBXJ.js';
6
- import { autoConnect } from './chunk-B2JURP6A.js';
7
- import './chunk-2WMZPJVE.js';
8
- import './chunk-EWVYQLD3.js';
9
- import './chunk-5DNCFOXA.js';
10
- import './chunk-HJYBWJAS.js';
11
- import './chunk-NSPRS7WK.js';
6
+ import { autoConnect } from './chunk-CCOU4NXE.js';
7
+ import './chunk-VJGQEASF.js';
8
+ import './chunk-E4F7YE7P.js';
9
+ import './chunk-QQXNS4G2.js';
10
+ import './chunk-PJI5D2XT.js';
11
+ import './chunk-X37GC7DM.js';
12
12
  import './chunk-G2JWZDFA.js';
13
13
  import { C } from './chunk-ANPNT6PM.js';
14
14
  import { resolveGatewayCredentials, defaultFetch, unauthorizedMessage } from './chunk-6RKD7YZ6.js';
@@ -18,15 +18,15 @@ import './chunk-PA6CK6WQ.js';
18
18
  import './chunk-BALIE3BA.js';
19
19
  import './chunk-ZJSNLVCE.js';
20
20
  import './chunk-BJ3KTMDH.js';
21
- import './chunk-G63KT5I5.js';
21
+ import './chunk-M24H6JQW.js';
22
22
  import './chunk-5BHIBJDA.js';
23
23
  import './chunk-CDDED64E.js';
24
24
  import './chunk-RA3O54FC.js';
25
25
  import './chunk-T2Q7ISPE.js';
26
26
  import './chunk-WZBHBH3J.js';
27
27
  import './chunk-CRB3POP4.js';
28
- import './chunk-LJG6EMLJ.js';
29
- import './chunk-E6CO3MJE.js';
28
+ import './chunk-PNIFQX73.js';
29
+ import './chunk-V7Q5OKN7.js';
30
30
  import { homeFromEnv } from './chunk-VNVZDWO3.js';
31
31
  import './chunk-HACGUL52.js';
32
32
  import './chunk-MESOOLF4.js';
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { describeFleet, fleetCheck, fleetReadiness } from './chunk-HXA5GIHK.js';
4
- import './chunk-EWVYQLD3.js';
5
- import './chunk-HJYBWJAS.js';
3
+ export { describeFleet, fleetCheck, fleetReadiness } from './chunk-6ANIBEQ6.js';
4
+ import './chunk-E4F7YE7P.js';
5
+ import './chunk-PJI5D2XT.js';
6
6
  import './chunk-6RKD7YZ6.js';
7
7
  import './chunk-PJDQPF5N.js';
8
8
  import './chunk-SOI6K5DY.js';
@@ -10,17 +10,17 @@ import './chunk-PA6CK6WQ.js';
10
10
  import './chunk-BALIE3BA.js';
11
11
  import './chunk-HCVLP7XA.js';
12
12
  import './chunk-BJ3KTMDH.js';
13
- import './chunk-GFYEMCPP.js';
14
- import './chunk-G63KT5I5.js';
13
+ import './chunk-T4TT76GG.js';
14
+ import './chunk-M24H6JQW.js';
15
15
  import './chunk-5BHIBJDA.js';
16
16
  import './chunk-CDDED64E.js';
17
17
  import './chunk-RA3O54FC.js';
18
18
  import './chunk-CRB3POP4.js';
19
- import './chunk-AVTI3FL5.js';
19
+ import './chunk-6ZLI652Y.js';
20
20
  import './chunk-YQR6E6OV.js';
21
21
  import './chunk-TUSYOL2O.js';
22
- import './chunk-LJG6EMLJ.js';
23
- import './chunk-E6CO3MJE.js';
22
+ import './chunk-PNIFQX73.js';
23
+ import './chunk-V7Q5OKN7.js';
24
24
  import './chunk-VNVZDWO3.js';
25
25
  import './chunk-HACGUL52.js';
26
26
  import './chunk-MESOOLF4.js';
@@ -1,18 +1,18 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { imageTargetFor, pinnedSourceOf, resolveGoverningSource } from './chunk-T5REPMNL.js';
4
- import './chunk-VT4TTJPG.js';
3
+ export { imageTargetFor, pinnedSourceOf, resolveGoverningSource } from './chunk-Z4GLZTDF.js';
4
+ import './chunk-5FSVA3CO.js';
5
5
  import './chunk-IP7BIBXJ.js';
6
- import './chunk-B2JURP6A.js';
7
- import './chunk-2WMZPJVE.js';
8
- import './chunk-EWVYQLD3.js';
9
- import './chunk-5DNCFOXA.js';
10
- import './chunk-HJYBWJAS.js';
11
- import './chunk-NSPRS7WK.js';
6
+ import './chunk-CCOU4NXE.js';
7
+ import './chunk-VJGQEASF.js';
8
+ import './chunk-E4F7YE7P.js';
9
+ import './chunk-QQXNS4G2.js';
10
+ import './chunk-PJI5D2XT.js';
11
+ import './chunk-X37GC7DM.js';
12
12
  import './chunk-G2JWZDFA.js';
13
13
  import './chunk-ANPNT6PM.js';
14
- import './chunk-EUVE2EAE.js';
15
- import './chunk-UIUGTW5C.js';
14
+ import './chunk-2WZ66FXA.js';
15
+ import './chunk-C7WGCI77.js';
16
16
  import './chunk-6RKD7YZ6.js';
17
17
  import './chunk-PJDQPF5N.js';
18
18
  import './chunk-SOI6K5DY.js';
@@ -22,15 +22,15 @@ import './chunk-ZJSNLVCE.js';
22
22
  import './chunk-FGF52V4V.js';
23
23
  import './chunk-HCVLP7XA.js';
24
24
  import './chunk-BJ3KTMDH.js';
25
- import './chunk-G63KT5I5.js';
25
+ import './chunk-M24H6JQW.js';
26
26
  import './chunk-5BHIBJDA.js';
27
27
  import './chunk-CDDED64E.js';
28
28
  import './chunk-RA3O54FC.js';
29
29
  import './chunk-WZBHBH3J.js';
30
30
  import './chunk-CRB3POP4.js';
31
31
  import './chunk-YQR6E6OV.js';
32
- import './chunk-LJG6EMLJ.js';
33
- import './chunk-E6CO3MJE.js';
32
+ import './chunk-PNIFQX73.js';
33
+ import './chunk-V7Q5OKN7.js';
34
34
  import './chunk-VNVZDWO3.js';
35
35
  import './chunk-HACGUL52.js';
36
36
  import './chunk-MESOOLF4.js';
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { AUTO_SYNC_DEBOUNCE_MS, DUPLICATE_RUN_WINDOW_MS, WORK_LEASE_RENEW_DEBOUNCE_MS, WORK_LINK_RETRIES, contextPossiblyGoverned, handleWorkLaunch, handleWorkSessionEnd, hookFiredMarkerPath, isDuplicateRun, logHookError, machineSkillsContext, markWorkLeaseRenewed, maybeAutoSync, maybeRenewWorkLease, recordLinkExitFailure, runHookFast, spoolDir } from './chunk-QPWFVE3X.js';
3
+ export { AUTO_SYNC_DEBOUNCE_MS, DUPLICATE_RUN_WINDOW_MS, WORK_LEASE_RENEW_DEBOUNCE_MS, WORK_LINK_RETRIES, contextPossiblyGoverned, handleWorkLaunch, handleWorkSessionEnd, hookFiredMarkerPath, isDuplicateRun, logHookError, machineSkillsContext, markWorkLeaseRenewed, maybeAutoSync, maybeRenewWorkLease, recordLinkExitFailure, runHookFast, spoolDir } from './chunk-JB4R5IFJ.js';
4
4
  import './chunk-ZJSNLVCE.js';
5
5
  import './chunk-HCVLP7XA.js';
6
6
  import './chunk-BJ3KTMDH.js';
package/dist/index.js CHANGED
@@ -6,7 +6,7 @@ createRequire(import.meta.url);
6
6
  // src/index.ts
7
7
  var argv = process.argv.slice(2);
8
8
  if (argv[0] === "hook") {
9
- const { runHookFast } = await import('./hook-fast-6WDMNZG5.js');
9
+ const { runHookFast } = await import('./hook-fast-4RYMBFPO.js');
10
10
  await runHookFast(argv[1]);
11
11
  process.exit(0);
12
12
  }
@@ -22,9 +22,9 @@ if (argv[0] === "statusline") {
22
22
  process.exit(0);
23
23
  }
24
24
  if (argv[0] === "claude") {
25
- const { runClaudeLauncher } = await import('./claude-launcher-NTYHJUJM.js');
25
+ const { runClaudeLauncher } = await import('./claude-launcher-B55NWRH5.js');
26
26
  process.exit(await runClaudeLauncher(argv.slice(1)));
27
27
  }
28
- (await import('./hook-fast-6WDMNZG5.js')).recordLinkExitFailure(argv);
29
- var { runCli } = await import('./cli-K6XGL4EZ.js');
28
+ (await import('./hook-fast-4RYMBFPO.js')).recordLinkExitFailure(argv);
29
+ var { runCli } = await import('./cli-5YT5EL2R.js');
30
30
  await runCli(process.argv);
@@ -1,37 +1,37 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
3
  import { npmSupportsProvenance } from './chunk-E7R2GIAW.js';
4
- import { RunnerInitError, readConfigObject } from './chunk-2EGCI2VW.js';
4
+ import { RunnerInitError, readConfigObject } from './chunk-GFTWZSOW.js';
5
5
  import './chunk-2PGI6RDE.js';
6
- import './chunk-DISTLL2Q.js';
6
+ import './chunk-UHFU3CBN.js';
7
7
  import './chunk-YXHKCHWG.js';
8
8
  import './chunk-F5UL23I2.js';
9
9
  import './chunk-JBJTC3UU.js';
10
10
  import './chunk-OGFGZQA3.js';
11
11
  import './chunk-5THSC6BD.js';
12
12
  import './chunk-L26V6ILJ.js';
13
- import './chunk-T5REPMNL.js';
13
+ import './chunk-Z4GLZTDF.js';
14
14
  import './chunk-MZBQTVFG.js';
15
15
  import './chunk-TQMI335S.js';
16
- import { checkFit, VM_SERVICE_NAME, RUNNER_RESERVE_BYTES } from './chunk-HE4FBF4T.js';
17
- import { runnerCredentialProblem, resolveBuild, resolveHousekeeping } from './chunk-RQJMN5TJ.js';
18
- import './chunk-W2AEL4BJ.js';
19
- import { parseSize } from './chunk-FR7HWWCF.js';
16
+ import { checkFit, VM_SERVICE_NAME, RUNNER_RESERVE_BYTES } from './chunk-7HZH5D7H.js';
17
+ import { runnerCredentialProblem, resolveBuild, resolveHousekeeping } from './chunk-ONUACB5C.js';
18
+ import './chunk-LHKWWEQZ.js';
19
+ import { parseSize } from './chunk-QKEOAQ2W.js';
20
20
  import './chunk-3Z3MPR55.js';
21
21
  import './chunk-NE63JADS.js';
22
22
  import { writeLaunchAgent } from './chunk-LF6MLJCY.js';
23
- import './chunk-VT4TTJPG.js';
23
+ import './chunk-5FSVA3CO.js';
24
24
  import './chunk-IP7BIBXJ.js';
25
- import './chunk-B2JURP6A.js';
26
- import './chunk-2WMZPJVE.js';
27
- import './chunk-EWVYQLD3.js';
28
- import './chunk-5DNCFOXA.js';
29
- import './chunk-HJYBWJAS.js';
30
- import './chunk-NSPRS7WK.js';
25
+ import './chunk-CCOU4NXE.js';
26
+ import './chunk-VJGQEASF.js';
27
+ import './chunk-E4F7YE7P.js';
28
+ import './chunk-QQXNS4G2.js';
29
+ import './chunk-PJI5D2XT.js';
30
+ import './chunk-X37GC7DM.js';
31
31
  import './chunk-G2JWZDFA.js';
32
32
  import './chunk-ANPNT6PM.js';
33
- import './chunk-EUVE2EAE.js';
34
- import './chunk-UIUGTW5C.js';
33
+ import './chunk-2WZ66FXA.js';
34
+ import './chunk-C7WGCI77.js';
35
35
  import './chunk-6RKD7YZ6.js';
36
36
  import { readCloudConfig } from './chunk-PJDQPF5N.js';
37
37
  import './chunk-SOI6K5DY.js';
@@ -41,15 +41,15 @@ import './chunk-ZJSNLVCE.js';
41
41
  import './chunk-FGF52V4V.js';
42
42
  import './chunk-HCVLP7XA.js';
43
43
  import './chunk-BJ3KTMDH.js';
44
- import './chunk-G63KT5I5.js';
44
+ import './chunk-M24H6JQW.js';
45
45
  import './chunk-5BHIBJDA.js';
46
46
  import './chunk-CDDED64E.js';
47
47
  import './chunk-RA3O54FC.js';
48
48
  import './chunk-WZBHBH3J.js';
49
49
  import './chunk-CRB3POP4.js';
50
50
  import './chunk-YQR6E6OV.js';
51
- import './chunk-LJG6EMLJ.js';
52
- import './chunk-E6CO3MJE.js';
51
+ import './chunk-PNIFQX73.js';
52
+ import './chunk-V7Q5OKN7.js';
53
53
  import './chunk-VNVZDWO3.js';
54
54
  import './chunk-HACGUL52.js';
55
55
  import './chunk-MESOOLF4.js';