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

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 (104) hide show
  1. package/README.md +15 -4
  2. package/dist/{agent-setup-APFM4MZ4.js → agent-setup-YHEW3WXB.js} +10 -10
  3. package/dist/{artifact-link-cmd-IHHMU4EA.js → artifact-link-cmd-7FYKWA7J.js} +2 -2
  4. package/dist/{build-disk-55M4ZMDX.js → build-disk-ECTLWTPC.js} +4 -4
  5. package/dist/build-info.json +1 -1
  6. package/dist/{builder-DQZCPB7J.js → builder-LUPHKUFM.js} +3 -3
  7. package/dist/{check-AEMFDR55.js → check-YCFZ3H35.js} +29 -29
  8. package/dist/{chunk-X62C7V4B.js → chunk-2JLM4GUF.js} +12 -12
  9. package/dist/{chunk-M24H6JQW.js → chunk-44V5SD4G.js} +1 -1
  10. package/dist/{chunk-C66Q2CLW.js → chunk-5M2J7B5N.js} +2 -2
  11. package/dist/{chunk-PNIFQX73.js → chunk-6CXNWKWD.js} +1 -1
  12. package/dist/{chunk-UAJYWZ2F.js → chunk-6SPD266O.js} +3 -3
  13. package/dist/{chunk-4NKHOCTF.js → chunk-7IFYI7XF.js} +3 -3
  14. package/dist/{chunk-HUBRTT2C.js → chunk-7UPMYRPS.js} +4 -4
  15. package/dist/{chunk-X37GC7DM.js → chunk-7V5GUEDU.js} +1 -1
  16. package/dist/{chunk-2WZ66FXA.js → chunk-AKZRGFGT.js} +3 -3
  17. package/dist/{chunk-T4S2DVOA.js → chunk-D3EDZPJR.js} +5 -5
  18. package/dist/{chunk-35DSTT37.js → chunk-DKFUXYGD.js} +4 -4
  19. package/dist/{chunk-7HZH5D7H.js → chunk-EHOFFTVX.js} +2 -2
  20. package/dist/{chunk-6ANIBEQ6.js → chunk-EJL6CWSP.js} +6 -6
  21. package/dist/{chunk-UHFU3CBN.js → chunk-EXZACZ2P.js} +1 -1
  22. package/dist/{chunk-V7Q5OKN7.js → chunk-F2D5BSXS.js} +27 -2
  23. package/dist/{chunk-C7WGCI77.js → chunk-FT7MUQGO.js} +2 -2
  24. package/dist/{chunk-M3RYZRMH.js → chunk-GO2DUPQS.js} +3 -3
  25. package/dist/{chunk-CCOU4NXE.js → chunk-HLZMAJJD.js} +2 -2
  26. package/dist/{chunk-GFTWZSOW.js → chunk-IUPY54BZ.js} +10 -10
  27. package/dist/{chunk-T4TT76GG.js → chunk-JEVKOZBB.js} +1 -1
  28. package/dist/{chunk-XMPE5TT4.js → chunk-KUE4V2SK.js} +2 -2
  29. package/dist/{chunk-DHUHQPRQ.js → chunk-L6MDOEHN.js} +7 -7
  30. package/dist/{chunk-PJI5D2XT.js → chunk-LYGI3T66.js} +2 -2
  31. package/dist/{chunk-E4F7YE7P.js → chunk-MPC2UAW2.js} +1 -1
  32. package/dist/{chunk-QQXNS4G2.js → chunk-NIY2UBT6.js} +1 -1
  33. package/dist/{chunk-QKEOAQ2W.js → chunk-OGMXVPCS.js} +1 -1
  34. package/dist/{chunk-A5FFANL7.js → chunk-QKNFU5GA.js} +5 -5
  35. package/dist/{chunk-AXIK6F52.js → chunk-RAMTJ2XP.js} +15 -15
  36. package/dist/{chunk-VJGQEASF.js → chunk-S5CNYXUA.js} +4 -4
  37. package/dist/{chunk-B6WW6AKO.js → chunk-SQQD5MST.js} +4 -4
  38. package/dist/{chunk-MZYOUIY5.js → chunk-TRP3KPGK.js} +1 -1
  39. package/dist/{chunk-JB4R5IFJ.js → chunk-UK4RGH46.js} +2 -2
  40. package/dist/{chunk-PILHDNHX.js → chunk-V673DFOL.js} +4 -4
  41. package/dist/{chunk-ONUACB5C.js → chunk-VWQCYOBS.js} +2 -2
  42. package/dist/{chunk-LHKWWEQZ.js → chunk-X4JEBMYN.js} +1 -1
  43. package/dist/{chunk-Z4GLZTDF.js → chunk-XCRET2GZ.js} +2 -2
  44. package/dist/{chunk-67KCGRKA.js → chunk-Y6KIGWFO.js} +48 -17
  45. package/dist/{chunk-5FSVA3CO.js → chunk-YXMGHGHR.js} +5 -5
  46. package/dist/{chunk-6ZLI652Y.js → chunk-ZF24JN7R.js} +1 -1
  47. package/dist/chunk-ZUVERBFB.js +81 -0
  48. package/dist/{claude-launcher-B55NWRH5.js → claude-launcher-YRPW4SWA.js} +5 -5
  49. package/dist/{cli-5YT5EL2R.js → cli-WFLOFK42.js} +108 -105
  50. package/dist/{command-DYLRDCGC.js → command-SQ4466SL.js} +19 -19
  51. package/dist/{config-RRY7DIJG.js → config-MVA7YTFW.js} +5 -5
  52. package/dist/{connect-cmd-7C6W2SEP.js → connect-cmd-KWXV2CGC.js} +8 -8
  53. package/dist/{container-start-F7PBMTAL.js → container-start-C4XCYPUA.js} +50 -27
  54. package/dist/{context-cleanup-EKTPKJJT.js → context-cleanup-A2FGVVPH.js} +3 -3
  55. package/dist/{context-show-cmd-I5JC7EFH.js → context-show-cmd-6F4UF4ND.js} +9 -9
  56. package/dist/{control-plane-launch-NOKM6CBH.js → control-plane-launch-7SOH6IMA.js} +6 -6
  57. package/dist/{dist-LLYL5UCV.js → dist-IG2DKUJJ.js} +2 -2
  58. package/dist/{docker-W7WWFZ3Q.js → docker-YKYQJHL2.js} +3 -3
  59. package/dist/{doctor-LYOFFCQS.js → doctor-4YZOP343.js} +20 -20
  60. package/dist/{emit-artifact-cmd-RO34UG7A.js → emit-artifact-cmd-6QTTWBVN.js} +13 -13
  61. package/dist/{emit-cmd-GY7Z26DY.js → emit-cmd-3FG7FEGO.js} +6 -6
  62. package/dist/{emit-criteria-cmd-Y36QCPAM.js → emit-criteria-cmd-22VVCL2W.js} +10 -10
  63. package/dist/{emit-demo-cmd-YMWVF5U4.js → emit-demo-cmd-IQRS7BP2.js} +168 -46
  64. package/dist/{emit-finding-cmd-MH3ZWUNV.js → emit-finding-cmd-TXDPJFVT.js} +10 -10
  65. package/dist/{emit-result-cmd-ZARZZZ3Y.js → emit-result-cmd-QHJDUC7J.js} +12 -12
  66. package/dist/{emit-step-cmd-A6HQJDBY.js → emit-step-cmd-TQCOLXAA.js} +10 -10
  67. package/dist/{findings-cmd-OLLBWJXJ.js → findings-cmd-EURKADAY.js} +10 -10
  68. package/dist/{fleet-readiness-VB5QSFSY.js → fleet-readiness-GXDSFTLP.js} +8 -8
  69. package/dist/{governing-source-ZX7VXTOA.js → governing-source-IRRP7G5G.js} +13 -13
  70. package/dist/{hook-fast-4RYMBFPO.js → hook-fast-3IYSWDL4.js} +1 -1
  71. package/dist/index.js +4 -4
  72. package/dist/{init-BQCGL7UD.js → init-63X6ECKF.js} +19 -19
  73. package/dist/{init-NCCMB2UE.js → init-T64C4MID.js} +19 -19
  74. package/dist/{init-cmd-OW2L5HTI.js → init-cmd-7CGCDLBZ.js} +18 -18
  75. package/dist/{init-update-7LUMOECE.js → init-update-LFKSC6Y4.js} +17 -17
  76. package/dist/{install-5BQ3TFBT.js → install-47Z7VNWP.js} +6 -6
  77. package/dist/{layout-RGVPCX7Y.js → layout-44S4OYLK.js} +4 -4
  78. package/dist/{login-browser-BC2Z5QKG.js → login-browser-BJZYKWHF.js} +2 -2
  79. package/dist/{loop-BU634Y6A.js → loop-KRGNTFZ2.js} +29 -29
  80. package/dist/{machine-RI4KHRYP.js → machine-VBITNWTR.js} +19 -19
  81. package/dist/{machine-skills-CS5HAQHF.js → machine-skills-GOKW3U5N.js} +4 -4
  82. package/dist/{runner-env-QSLLOFNF.js → runner-env-ILP6BAC2.js} +7 -7
  83. package/dist/{runner-identity-DQAXW4DL.js → runner-identity-MF3AYBR6.js} +3 -3
  84. package/dist/{runner-key-UWL475RU.js → runner-key-5SGBLTDJ.js} +19 -19
  85. package/dist/{session-sender-OGDUJ2KK.js → session-sender-2DYAJIMM.js} +13 -13
  86. package/dist/{spec-cmd-WB4UOFPG.js → spec-cmd-E6SINBX6.js} +11 -11
  87. package/dist/{starter-pack-XHATFTO3.js → starter-pack-FWTXE6XB.js} +5 -5
  88. package/dist/{status-GFZFND6L.js → status-YVJQWWDP.js} +24 -24
  89. package/dist/{sync-cmd-GPZD2C45.js → sync-cmd-NGX2PGIW.js} +12 -12
  90. package/dist/{watch-5I3GURXY.js → watch-ZIWZVU3Z.js} +12 -12
  91. package/dist/{work-claim-cmd-J52UVCAF.js → work-claim-cmd-GBU2ACRF.js} +16 -16
  92. package/dist/{work-cmd-PQZ5RYDB.js → work-cmd-OO6K6ELP.js} +10 -10
  93. package/dist/{work-comment-cmd-WI6B3IOS.js → work-comment-cmd-SY7NY2CR.js} +10 -10
  94. package/dist/{work-demo-cmd-3NDGSQKJ.js → work-demo-cmd-Y7EU335L.js} +10 -10
  95. package/dist/{work-logs-cmd-QCYZ5X5A.js → work-logs-cmd-PWOFLTGD.js} +10 -10
  96. package/dist/{work-open-pr-cmd-BRDF3ZKL.js → work-open-pr-cmd-AJUTKYWN.js} +11 -11
  97. package/dist/{work-pr-cmd-WY2TBAKW.js → work-pr-cmd-DH43AH3V.js} +10 -10
  98. package/dist/{work-proofs-cmd-R25HT6WP.js → work-proofs-cmd-6W6DDAP6.js} +10 -10
  99. package/dist/{work-stop-cmd-C52JPZ4E.js → work-stop-cmd-WZHBEKE4.js} +10 -10
  100. package/package.json +1 -1
  101. package/skill-pack/maintained/outerlayer-build/references/agent-briefs.md +8 -5
  102. package/skill-pack/maintained/outerlayer-build/references/evidence.md +3 -1
  103. package/skill-pack/maintained/outerlayer-evidence/SKILL.md +17 -16
  104. package/dist/chunk-RLAKWXDK.js +0 -36
package/README.md CHANGED
@@ -168,9 +168,19 @@ content:
168
168
  fetches the package's dependencies, and both npm runs use this user's npm
169
169
  configuration, including any registry token in `~/.npmrc`. Set
170
170
  `runner.autoUpdate` to `false` to stop them.
171
+ When `outerlayer runner start` fails a start-up check before its first
172
+ heartbeat, it sends one report with `POST /v1/hosts/startup-report`. The
173
+ report holds the host name, the CLI version, the name of the failed check
174
+ and the error text, with terminal control codes removed, scrubbed of the
175
+ keys the runner holds and cut to 200 characters. It sends none when another
176
+ runner already runs on the same config, or when the gateway refused the
177
+ runner key or its host key's signature. The call waits at most 5 seconds,
178
+ and a gateway with no such route ignores it.
171
179
  `outerlayer runner container-start`, the runner image's entrypoint, writes
172
- the config from its environment variables with no network call. It then
173
- runs `outerlayer runner start`, which makes the calls above. In the image
180
+ the config from its environment variables. When the container reaches no
181
+ Docker it can use, it sends that report, with the check `docker`, and
182
+ stops. Otherwise it runs `outerlayer runner start`, which makes the calls
183
+ above. In the image
174
184
  the runner never calls the npm registry. It logs the image tag to pull.
175
185
  `runner check` makes a list call and a host-key lookup to confirm the key
176
186
  works and sends nothing else; `runner status` and `runner logs` make no network call at all.
@@ -382,7 +392,8 @@ content:
382
392
  (`GET /v1/work-items/{number}/demo`) before it uploads anything. It cuts a recorded video once, from the first chapter's start to the
383
393
  last chapter's end, and emits it as one video artifact. It then emits a video
384
394
  artifact for each chapter with the same bytes and a time range in that video,
385
- followed by the manifest as the demo record. A recording over 8 MiB falls
395
+ followed by the manifest as the demo record. A chapter's screenshot frame is
396
+ emitted as a screenshot artifact after its clip. A recording over 8 MiB falls
386
397
  back to one clip for each chapter. It runs `ffmpeg` and `espeak-ng` on your
387
398
  machine as separate programs and speaks the narration there. Nothing is sent
388
399
  to a speech service. The first narrated run downloads the voice pack, about
@@ -486,7 +497,7 @@ before it gives up.
486
497
  | `outerlayer context emit [--check]` | Compile `.outerlayer/` into each configured target tool's native files (targets come from `.outerlayer/config.json`). `--check` computes outputs and diffs against disk without writing (CI mode). Bare `outerlayer emit` with no name still compiles, with a deprecation warning. |
487
498
  | `outerlayer hooks wrap` / `outerlayer hooks unwrap` | Auto-wrap (or undo wrapping) `PreToolUse`/`PostToolUse` hooks for execution evidence — one spawn per firing. |
488
499
  | `outerlayer emit artifact <file> --caption <text> [--for <criterion-id>] [--pr <n>]` | Upload a proof artifact — screenshot, recording, report, or log — with its caption. Inside a recorded session it spools locally and ships on the next `sync`; otherwise it uploads immediately, anchored to a pull request or the current checkout. `--replaces` retires artifacts an earlier run uploaded. A JUnit XML file bound with `--for` proves a criterion that declares `test` proof; `--test <name[=path:line]>` binds only the named tests. |
489
- | `outerlayer emit demo <manifest> [--compare <manifest>] [--no-narration] [--item <n>] [--pr <n>] [--replaces <record id>]` | Turn a recorded video and its manifest (written by `@outerlayer/playwright`) into a narrated demo: one WebM clip for each chapter, emitted as a video artifact. A chapter whose checks all passed is bound to its criterion. The manifest is emitted as the demo record, with the test file a version 3 manifest names. With `--replaces <record id>`, the new demo retires the item's old demo. With `--compare`, a second run's stills are compared with the first run's, and each chapter reads `yes`, `no` or `not checked`. Needs `ffmpeg` and `ffprobe`, and `espeak-ng` unless `--no-narration`. Exit 1 means a chapter had a failed check. |
500
+ | `outerlayer emit demo <manifest> [--compare <manifest>] [--no-narration] [--item <n>] [--pr <n>] [--replaces <record id>]` | Turn a recorded video and its manifest (written by `@outerlayer/playwright`) into a narrated demo: one WebM clip for each chapter, emitted as a video artifact. A chapter whose checks all passed is bound to its criterion. A chapter of a version 4 manifest may hold a screenshot frame, which its test marked with `demo.screenshot()`. The frame is stored as a screenshot of the chapter's criterion only when that criterion declares `screenshot` and every check passed; otherwise the command says why it stored none. The manifest is emitted as the demo record, with the test file a version 3 or 4 manifest names. With `--replaces <record id>`, the new demo retires the item's old demo. With `--compare`, a second run's stills are compared with the first run's, and each chapter reads `yes`, `no` or `not checked`. Needs `ffmpeg` and `ffprobe`, and `espeak-ng` unless `--no-narration`. Exit 1 means a chapter had a failed check. |
490
501
  | `outerlayer emit <name> --result <pass\|fail> [--link <url>] [--body <text>\|--body-file <path>] --item <number>` | Record one named check's outcome on a work item. A check that ran carries the run URL as its proof (`--link`); a judgment you are making yourself carries one sentence (`--body`, or `--body-file` to read it from a file — `-` reads standard input). A `fail` needs at least one of the two; a `pass` needs neither. `--item` names the work item by the number printed when the item was created — always required, in or out of a recorded session; a session records checks on its own item like any other, stored as the session's, but cannot clear a person's fail. Prints the recorded check's id. Who recorded it comes from your API key, never from what you send. |
491
502
  | `outerlayer work comment --item <n> [--criterion <id>] --body <text> [--artifact <id>] [--pass\|--fail\|--attach\|--ready]` | Post one comment on a work item's general thread, or on one acceptance criterion's own thread with `--criterion`. `--pass`/`--fail` need a person's own credential and apply to the whole item, so they work on the general thread only and the gateway refuses them with `--criterion`; `--attach` makes the named artifact that criterion's current proof; `--ready` hands a thread back to a person. The detected session id rides along automatically, only ever narrowing what the comment may do. |
492
503
  | `outerlayer work stop --item <n> [--note <text>]` | Ask the host that holds the item's build to end it. The host reads the request at its next heartbeat and ends the build with outcome `stopped`, so the build may run a little longer. The item is not built again until a new build request. Needs `work.update`. Exits 1 when no host build is running for the item. |
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { keepHandWritten, runAgentSetup } from './chunk-DHUHQPRQ.js';
4
- import './chunk-PILHDNHX.js';
3
+ export { keepHandWritten, runAgentSetup } from './chunk-L6MDOEHN.js';
4
+ import './chunk-V673DFOL.js';
5
5
  import './chunk-KT4CN6OU.js';
6
- import './chunk-XMPE5TT4.js';
7
- import './chunk-PJI5D2XT.js';
6
+ import './chunk-KUE4V2SK.js';
7
+ import './chunk-LYGI3T66.js';
8
8
  import './chunk-ANPNT6PM.js';
9
- import './chunk-2WZ66FXA.js';
10
- import './chunk-C7WGCI77.js';
9
+ import './chunk-AKZRGFGT.js';
10
+ import './chunk-FT7MUQGO.js';
11
11
  import './chunk-6RKD7YZ6.js';
12
12
  import './chunk-PJDQPF5N.js';
13
13
  import './chunk-SOI6K5DY.js';
@@ -15,16 +15,16 @@ import './chunk-PA6CK6WQ.js';
15
15
  import './chunk-BALIE3BA.js';
16
16
  import './chunk-ZJSNLVCE.js';
17
17
  import './chunk-BJ3KTMDH.js';
18
- import './chunk-M24H6JQW.js';
18
+ import './chunk-44V5SD4G.js';
19
19
  import './chunk-5BHIBJDA.js';
20
20
  import './chunk-CDDED64E.js';
21
21
  import './chunk-RA3O54FC.js';
22
22
  import './chunk-CRB3POP4.js';
23
- import './chunk-6ZLI652Y.js';
23
+ import './chunk-ZF24JN7R.js';
24
24
  import './chunk-YQR6E6OV.js';
25
25
  import './chunk-TUSYOL2O.js';
26
- import './chunk-PNIFQX73.js';
27
- import './chunk-V7Q5OKN7.js';
26
+ import './chunk-6CXNWKWD.js';
27
+ import './chunk-F2D5BSXS.js';
28
28
  import './chunk-VNVZDWO3.js';
29
29
  import './chunk-HACGUL52.js';
30
30
  import './chunk-MESOOLF4.js';
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { sanitizeTerminal, readEffectiveArtifactSpoolState } from './chunk-E4F7YE7P.js';
3
+ import { sanitizeTerminal, readEffectiveArtifactSpoolState } from './chunk-MPC2UAW2.js';
4
4
  import { cliInvocation } from './chunk-CRB3POP4.js';
5
- import './chunk-V7Q5OKN7.js';
5
+ import './chunk-F2D5BSXS.js';
6
6
  import { homeFromEnv } from './chunk-VNVZDWO3.js';
7
7
  import './chunk-Z5GEFMRW.js';
8
8
 
@@ -1,14 +1,14 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { DEFAULT_BUILD_DISK, DEFAULT_CACHE_DISK, DOCKER_CACHE_MS, allocatedBytes, checkDiskFit, realBuildDiskProbe, runDocker, volumeBytes } from './chunk-LHKWWEQZ.js';
4
- import './chunk-QKEOAQ2W.js';
3
+ export { DEFAULT_BUILD_DISK, DEFAULT_CACHE_DISK, DOCKER_CACHE_MS, allocatedBytes, checkDiskFit, realBuildDiskProbe, runDocker, volumeBytes } from './chunk-X4JEBMYN.js';
4
+ import './chunk-OGMXVPCS.js';
5
5
  import './chunk-3Z3MPR55.js';
6
6
  import './chunk-NE63JADS.js';
7
- import './chunk-QQXNS4G2.js';
7
+ import './chunk-NIY2UBT6.js';
8
8
  import './chunk-SOI6K5DY.js';
9
9
  import './chunk-PA6CK6WQ.js';
10
10
  import './chunk-BALIE3BA.js';
11
- import './chunk-V7Q5OKN7.js';
11
+ import './chunk-F2D5BSXS.js';
12
12
  import './chunk-HACGUL52.js';
13
13
  import './chunk-MESOOLF4.js';
14
14
  import './chunk-Z5GEFMRW.js';
@@ -1 +1 @@
1
- {"id":"2026-10-23T03:06:35.440Z+4c51ec6","root":"/home/runner/_work/outerlayer/outerlayer","pkg":"outerlayer"}
1
+ {"id":"2026-10-23T12:24:08.386Z+0c94177","root":"/home/runner/_work/outerlayer/outerlayer","pkg":"outerlayer"}
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { MIN_BUILDX_VERSION, builderName, builderSpec, buildxState, ensureBuilder, ensureFailureCount, isOutOfMemory, proxyEnvironment, trackImageBuild } from './chunk-QKEOAQ2W.js';
3
+ export { MIN_BUILDX_VERSION, builderName, builderSpec, buildxState, ensureBuilder, ensureFailureCount, isOutOfMemory, proxyEnvironment, trackImageBuild } from './chunk-OGMXVPCS.js';
4
4
  import './chunk-3Z3MPR55.js';
5
5
  import './chunk-NE63JADS.js';
6
- import './chunk-QQXNS4G2.js';
6
+ import './chunk-NIY2UBT6.js';
7
7
  import './chunk-SOI6K5DY.js';
8
8
  import './chunk-PA6CK6WQ.js';
9
9
  import './chunk-BALIE3BA.js';
10
- import './chunk-V7Q5OKN7.js';
10
+ import './chunk-F2D5BSXS.js';
11
11
  import './chunk-HACGUL52.js';
12
12
  import './chunk-MESOOLF4.js';
13
13
  import './chunk-Z5GEFMRW.js';
@@ -1,67 +1,67 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { probeCredentials } from './chunk-67KCGRKA.js';
4
- import './chunk-AXIK6F52.js';
3
+ import { probeCredentials } from './chunk-Y6KIGWFO.js';
5
4
  import './chunk-GH246BGV.js';
6
- import './chunk-ZVB57WI6.js';
7
5
  import './chunk-57L2YAJA.js';
8
6
  import './chunk-3JVYMD4G.js';
9
7
  import './chunk-E7R2GIAW.js';
10
- import './chunk-RLAKWXDK.js';
11
- import './chunk-MZYOUIY5.js';
8
+ import './chunk-ZUVERBFB.js';
9
+ import './chunk-RAMTJ2XP.js';
10
+ import './chunk-ZVB57WI6.js';
11
+ import './chunk-TRP3KPGK.js';
12
12
  import './chunk-HVRQQOMH.js';
13
13
  import './chunk-6LBSAW6I.js';
14
14
  import './chunk-I3LTIAOR.js';
15
- import './chunk-4NKHOCTF.js';
16
- import './chunk-T4S2DVOA.js';
17
- import './chunk-HUBRTT2C.js';
15
+ import './chunk-7IFYI7XF.js';
16
+ import './chunk-D3EDZPJR.js';
17
+ import './chunk-7UPMYRPS.js';
18
18
  import './chunk-ESVW4MJY.js';
19
- import { managedProblems, managedFactsOf } from './chunk-B6WW6AKO.js';
19
+ import { managedProblems, managedFactsOf } from './chunk-SQQD5MST.js';
20
20
  import './chunk-NBZ7XBT6.js';
21
21
  import './chunk-TBT347UY.js';
22
- import { placeholderQueues, placeholderProblem, permissionModeProblems, permissionModeProblem, probeHelper, HELPER_ENV, helperSocketPath, needsClaudeCredential, claudeCredentialCheck, claimPermissionProblem, formerSkillQueues, formerSkillProblem } from './chunk-GFTWZSOW.js';
22
+ import { placeholderQueues, placeholderProblem, permissionModeProblems, permissionModeProblem, probeHelper, HELPER_ENV, helperSocketPath, needsClaudeCredential, claudeCredentialCheck, claimPermissionProblem, formerSkillQueues, formerSkillProblem } from './chunk-IUPY54BZ.js';
23
23
  import './chunk-2PGI6RDE.js';
24
- import './chunk-UHFU3CBN.js';
24
+ import './chunk-EXZACZ2P.js';
25
25
  import './chunk-YXHKCHWG.js';
26
26
  import './chunk-F5UL23I2.js';
27
27
  import './chunk-JBJTC3UU.js';
28
28
  import './chunk-OGFGZQA3.js';
29
29
  import './chunk-5THSC6BD.js';
30
30
  import './chunk-L26V6ILJ.js';
31
- import './chunk-Z4GLZTDF.js';
31
+ import './chunk-XCRET2GZ.js';
32
32
  import './chunk-MZBQTVFG.js';
33
33
  import './chunk-TQMI335S.js';
34
- import { DEFAULT_UNIT_NAME } from './chunk-7HZH5D7H.js';
35
- import { loadRunnerConfig, RunnerConfigError, checkHooks } from './chunk-ONUACB5C.js';
36
- import './chunk-LHKWWEQZ.js';
37
- import './chunk-QKEOAQ2W.js';
34
+ import { DEFAULT_UNIT_NAME } from './chunk-EHOFFTVX.js';
35
+ import { loadRunnerConfig, RunnerConfigError, checkHooks } from './chunk-VWQCYOBS.js';
36
+ import './chunk-X4JEBMYN.js';
37
+ import './chunk-OGMXVPCS.js';
38
38
  import './chunk-3Z3MPR55.js';
39
39
  import './chunk-NE63JADS.js';
40
- import './chunk-5FSVA3CO.js';
40
+ import './chunk-YXMGHGHR.js';
41
41
  import './chunk-IP7BIBXJ.js';
42
- import './chunk-CCOU4NXE.js';
43
- import './chunk-VJGQEASF.js';
44
- import './chunk-E4F7YE7P.js';
45
- import './chunk-QQXNS4G2.js';
46
- import './chunk-PJI5D2XT.js';
47
- import './chunk-X37GC7DM.js';
42
+ import './chunk-HLZMAJJD.js';
43
+ import './chunk-S5CNYXUA.js';
44
+ import './chunk-MPC2UAW2.js';
45
+ import './chunk-NIY2UBT6.js';
46
+ import './chunk-LYGI3T66.js';
47
+ import './chunk-7V5GUEDU.js';
48
48
  import './chunk-G2JWZDFA.js';
49
49
  import './chunk-ANPNT6PM.js';
50
- import './chunk-2WZ66FXA.js';
51
- import './chunk-C7WGCI77.js';
50
+ import './chunk-AKZRGFGT.js';
51
+ import './chunk-FT7MUQGO.js';
52
52
  import './chunk-6RKD7YZ6.js';
53
53
  import './chunk-PJDQPF5N.js';
54
54
  import './chunk-SOI6K5DY.js';
55
55
  import './chunk-PA6CK6WQ.js';
56
56
  import { claudeEnvPath } from './chunk-BALIE3BA.js';
57
- import './chunk-JB4R5IFJ.js';
57
+ import './chunk-UK4RGH46.js';
58
58
  import './chunk-ZJSNLVCE.js';
59
59
  import './chunk-2O5KA67H.js';
60
60
  import './chunk-BKO6JEZI.js';
61
61
  import './chunk-FGF52V4V.js';
62
62
  import './chunk-HCVLP7XA.js';
63
63
  import './chunk-BJ3KTMDH.js';
64
- import './chunk-M24H6JQW.js';
64
+ import './chunk-44V5SD4G.js';
65
65
  import './chunk-5BHIBJDA.js';
66
66
  import './chunk-CDDED64E.js';
67
67
  import './chunk-RA3O54FC.js';
@@ -71,8 +71,8 @@ import './chunk-CRB3POP4.js';
71
71
  import './chunk-URIZRCRY.js';
72
72
  import './chunk-YQR6E6OV.js';
73
73
  import './chunk-TUSYOL2O.js';
74
- import './chunk-PNIFQX73.js';
75
- import './chunk-V7Q5OKN7.js';
74
+ import './chunk-6CXNWKWD.js';
75
+ import './chunk-F2D5BSXS.js';
76
76
  import './chunk-VNVZDWO3.js';
77
77
  import { parseRunnerEnv } from './chunk-HACGUL52.js';
78
78
  import './chunk-MESOOLF4.js';
@@ -1,15 +1,15 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { checkStarterFiles, contextIsGoverned } from './chunk-35DSTT37.js';
4
- import { fleetCheck, checkBuildSkill, checkMachineSkills, checkCommittedMaintainedSkills, checkMaintainedReferences, checkIgnoredSkillFolders } from './chunk-6ANIBEQ6.js';
5
- import { resolveCredentials, getJson, WorkCommandError } from './chunk-5FSVA3CO.js';
6
- import { isLinkedRepository } from './chunk-VJGQEASF.js';
7
- import { sanitizeTerminal } from './chunk-E4F7YE7P.js';
8
- import { resolveRepoIdentity, compareVersions, SUPPORTED_VERSIONS } from './chunk-QQXNS4G2.js';
3
+ import { checkStarterFiles, contextIsGoverned } from './chunk-DKFUXYGD.js';
4
+ import { fleetCheck, checkBuildSkill, checkMachineSkills, checkCommittedMaintainedSkills, checkMaintainedReferences, checkIgnoredSkillFolders } from './chunk-EJL6CWSP.js';
5
+ import { resolveCredentials, getJson, WorkCommandError } from './chunk-YXMGHGHR.js';
6
+ import { isLinkedRepository } from './chunk-S5CNYXUA.js';
7
+ import { sanitizeTerminal } from './chunk-MPC2UAW2.js';
8
+ import { resolveRepoIdentity, compareVersions, SUPPORTED_VERSIONS } from './chunk-NIY2UBT6.js';
9
9
  import { C } from './chunk-ANPNT6PM.js';
10
- import { checkFormerSkillNames } from './chunk-C7WGCI77.js';
10
+ import { checkFormerSkillNames } from './chunk-FT7MUQGO.js';
11
11
  import { resolveGatewayCredentials, defaultFetch } from './chunk-6RKD7YZ6.js';
12
- import { sanitizeForContext, spoolDir, assessSyncHealth, readSyncStatus, SYNC_STALE_AFTER_MS, formatAgo, checkInstalledCliStaleness, workspaceRootOf, hookFiredMarkerPath, refreshCommand } from './chunk-JB4R5IFJ.js';
12
+ import { sanitizeForContext, spoolDir, assessSyncHealth, readSyncStatus, SYNC_STALE_AFTER_MS, formatAgo, checkInstalledCliStaleness, workspaceRootOf, hookFiredMarkerPath, refreshCommand } from './chunk-UK4RGH46.js';
13
13
  import { readStatuslineState, STATE_FRESH_MS } from './chunk-I7RZHMXW.js';
14
14
  import { hookCommandEscapesControlPlane, CONTROL_PLANE_DIR_VARIABLE } from './chunk-HCVLP7XA.js';
15
15
  import { findGitDirs } from './chunk-BJ3KTMDH.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-55M4ZMDX.js');
1199
- const { defaultRunnerConfigPath, hasRunnerBlock, loadRunnerConfig, runnerVmOf } = await import('./config-RRY7DIJG.js');
1198
+ const { DEFAULT_BUILD_DISK, DEFAULT_CACHE_DISK } = await import('./build-disk-ECTLWTPC.js');
1199
+ const { defaultRunnerConfigPath, hasRunnerBlock, loadRunnerConfig, runnerVmOf } = await import('./config-MVA7YTFW.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-LYOFFCQS.js');
1220
+ const { runnerHostChecks } = await import('./doctor-4YZOP343.js');
1221
1221
  const gateway = (() => {
1222
1222
  try {
1223
1223
  const { url, apiKey, appId } = loadRunnerConfig(configPath);
@@ -1245,7 +1245,7 @@ async function gatherDoctorChecks() {
1245
1245
  const { existsSync: existsSync3 } = await import('fs');
1246
1246
  if (process.platform !== "linux" || !existsSync3("/run/systemd/system")) return void 0;
1247
1247
  const { inspectService, realInspectProbes } = await import('./inspect-DNLXTXLA.js');
1248
- const { DEFAULT_UNIT_NAME } = await import('./install-5BQ3TFBT.js');
1248
+ const { DEFAULT_UNIT_NAME } = await import('./install-47Z7VNWP.js');
1249
1249
  const { dirname: dirname2 } = await import('path');
1250
1250
  return inspectService(DEFAULT_UNIT_NAME, dirname2(configPath), realInspectProbes());
1251
1251
  })();
@@ -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-PNIFQX73.js';
5
+ import { splitRawFile } from './chunk-6CXNWKWD.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,8 +1,8 @@
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-CCOU4NXE.js';
5
- import { resolveRepoIdentity } from './chunk-QQXNS4G2.js';
4
+ import { autoConnect } from './chunk-HLZMAJJD.js';
5
+ import { resolveRepoIdentity } from './chunk-NIY2UBT6.js';
6
6
  import { C } from './chunk-ANPNT6PM.js';
7
7
  import { defaultFetch, unauthorizedMessage, resolveGatewayCredentials } from './chunk-6RKD7YZ6.js';
8
8
  import { parseWorkItemEnv } from './chunk-T2Q7ISPE.js';
@@ -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-V7Q5OKN7.js';
3
+ import { RESERVED_EMIT_NAMES, ARTIFACT_KINDS, ArtifactCriterionIdSchema } from './chunk-F2D5BSXS.js';
4
4
  import { __commonJS, __require, __toESM } from './chunk-Z5GEFMRW.js';
5
5
 
6
6
  createRequire(import.meta.url);
@@ -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-CCOU4NXE.js';
6
- import { resolveRepoIdentity, defaultProjectsDir, findTranscripts, sessionIdFromPath, scrubText } from './chunk-QQXNS4G2.js';
5
+ import { autoConnect } from './chunk-HLZMAJJD.js';
6
+ import { resolveRepoIdentity, defaultProjectsDir, findTranscripts, sessionIdFromPath, scrubText } from './chunk-NIY2UBT6.js';
7
7
  import { C } from './chunk-ANPNT6PM.js';
8
8
  import { resolveGatewayCredentials, defaultFetch, unauthorizedMessage } from './chunk-6RKD7YZ6.js';
9
9
  import { readLatestProvenanceForSession } from './chunk-ZJSNLVCE.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-V7Q5OKN7.js';
13
+ import { FindingBatchSchema, FindingsResponseSchema, SAME_PROBLEM_RULES } from './chunk-F2D5BSXS.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,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { LiveUploader } from './chunk-T4S2DVOA.js';
4
- import { CaptureDaemon } from './chunk-QQXNS4G2.js';
5
- import { spoolDir } from './chunk-JB4R5IFJ.js';
3
+ import { LiveUploader } from './chunk-D3EDZPJR.js';
4
+ import { CaptureDaemon } from './chunk-NIY2UBT6.js';
5
+ import { spoolDir } from './chunk-UK4RGH46.js';
6
6
  import { parseWorkItemEnv } from './chunk-T2Q7ISPE.js';
7
7
  import { homeFromEnv } from './chunk-VNVZDWO3.js';
8
8
  import { mkdirSync, writeFileSync, rmSync } from 'fs';
@@ -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-CCOU4NXE.js';
6
- import { acquireSpoolLockAt } from './chunk-E4F7YE7P.js';
7
- import { resolveRepoIdentity } from './chunk-QQXNS4G2.js';
5
+ import { autoConnect } from './chunk-HLZMAJJD.js';
6
+ import { acquireSpoolLockAt } from './chunk-MPC2UAW2.js';
7
+ import { resolveRepoIdentity } from './chunk-NIY2UBT6.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-V7Q5OKN7.js';
12
+ import { StepNameSchema, StepBodySchema } from './chunk-F2D5BSXS.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';
@@ -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-V7Q5OKN7.js';
8
+ import { CLI_LOGIN_MACHINE_NAME_MAX, CliLoginPollResponseSchema, CLI_LOGIN_KIND, CliLoginRefusalSchema, CliLoginStartedSchema } from './chunk-F2D5BSXS.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,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { removeRetiredSkills } from './chunk-C7WGCI77.js';
3
+ import { removeRetiredSkills } from './chunk-FT7MUQGO.js';
4
4
  import { defaultFetch, resolveGatewayCredentials } from './chunk-6RKD7YZ6.js';
5
5
  import { withTokenHeader } from './chunk-BALIE3BA.js';
6
6
  import { appendContextProvenance } from './chunk-ZJSNLVCE.js';
7
- import { loadMaintainedFiles, writeMaintainedFiles } from './chunk-M24H6JQW.js';
7
+ import { loadMaintainedFiles, writeMaintainedFiles } from './chunk-44V5SD4G.js';
8
8
  import { cliInvocation } from './chunk-CRB3POP4.js';
9
9
  import { writeDegraded, writeSourceCache, SOURCE_CACHE_TTL_RETRY_MS, writeContextManifest, SOURCE_CACHE_TTL_SUCCESS_MS, readSourceCache, isSourceCacheFresh, clearDegraded } from './chunk-YQR6E6OV.js';
10
- import { normalizeRepoName, parseOuterlayerConfig, classifyTree, emitTree } from './chunk-PNIFQX73.js';
10
+ import { normalizeRepoName, parseOuterlayerConfig, classifyTree, emitTree } from './chunk-6CXNWKWD.js';
11
11
  import { homeFromEnv } from './chunk-VNVZDWO3.js';
12
12
  import { execFileSync } from 'child_process';
13
13
  import { existsSync, mkdirSync, writeFileSync, chmodSync, lstatSync, readFileSync, copyFileSync } from 'fs';
@@ -1,15 +1,15 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { uploadSpooledSteps } from './chunk-HUBRTT2C.js';
3
+ import { uploadSpooledSteps } from './chunk-7UPMYRPS.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-E4F7YE7P.js';
7
- import { setCustomScrubbers, setLocalIdentity, tailTranscript, enrichSessionRepo, scanAll, setRepoRoot, resolveRepoIdentity, sessionIdFromPath, scrubDeep, SOURCE_ADAPTERS } from './chunk-QQXNS4G2.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';
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-JB4R5IFJ.js';
12
+ import { writeSyncStatus, spoolDir } from './chunk-UK4RGH46.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-V7Q5OKN7.js';
20
+ import { CAPTURE_TIERS, inferArtifactKind, bannedPathsForTier, downconvertSession, isHumanUserTurn, turnCountBound, EVENT_TYPES } from './chunk-F2D5BSXS.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,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 { POLICY_CONTENT, VALIDATOR_FILES, VALIDATORS_DIR, POLICY_PATH } from './chunk-XMPE5TT4.js';
5
- import { skillsBaseFor } from './chunk-PJI5D2XT.js';
4
+ import { POLICY_CONTENT, VALIDATOR_FILES, VALIDATORS_DIR, POLICY_PATH } from './chunk-KUE4V2SK.js';
5
+ import { skillsBaseFor } from './chunk-LYGI3T66.js';
6
6
  import { findGitDirs } from './chunk-BJ3KTMDH.js';
7
- import { resolvePackRoot, OUTERLAYER_SKILLS_BASE, skillDir, loadTemplateFiles, rewriteSkillPaths, restoreSkillPaths, TEMPLATE_SKILLS } from './chunk-M24H6JQW.js';
7
+ import { resolvePackRoot, OUTERLAYER_SKILLS_BASE, skillDir, loadTemplateFiles, rewriteSkillPaths, restoreSkillPaths, TEMPLATE_SKILLS } from './chunk-44V5SD4G.js';
8
8
  import { cliInvocation } from './chunk-CRB3POP4.js';
9
- import { hasSymlinkComponent } from './chunk-6ZLI652Y.js';
9
+ import { hasSymlinkComponent } from './chunk-ZF24JN7R.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 { builtinKind } from './chunk-ONUACB5C.js';
4
- import { parseSize } from './chunk-QKEOAQ2W.js';
3
+ import { builtinKind } from './chunk-VWQCYOBS.js';
4
+ import { parseSize } from './chunk-OGMXVPCS.js';
5
5
  import { runnerDir } from './chunk-PA6CK6WQ.js';
6
6
  import { CLAUDE_CREDENTIAL_ID, CLAUDE_ENV_FILE, credentialLineIn, withoutCredentialLines } from './chunk-BALIE3BA.js';
7
7
  import { FD_SLOTS_PER_BUILD, FD_STORE_ENV } from './chunk-HACGUL52.js';
@@ -1,16 +1,16 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { sanitizeTerminal } from './chunk-E4F7YE7P.js';
4
- import { isAgentsMdLayout } from './chunk-PJI5D2XT.js';
3
+ import { sanitizeTerminal } from './chunk-MPC2UAW2.js';
4
+ import { isAgentsMdLayout } from './chunk-LYGI3T66.js';
5
5
  import { resolveGatewayCredentials, defaultFetch } from './chunk-6RKD7YZ6.js';
6
6
  import { versionAtLeast } from './chunk-HCVLP7XA.js';
7
7
  import { findGitDirs } from './chunk-BJ3KTMDH.js';
8
- import { machineSkillsState, staleClaudeSkills } from './chunk-T4TT76GG.js';
9
- import { AGENTS_SKILLS_BASE, skillDir, namesCore, MACHINE_SKILL_PATH, isMaintainedCopy, loadTemplateFiles } from './chunk-M24H6JQW.js';
8
+ import { machineSkillsState, staleClaudeSkills } from './chunk-JEVKOZBB.js';
9
+ import { AGENTS_SKILLS_BASE, skillDir, namesCore, MACHINE_SKILL_PATH, isMaintainedCopy, loadTemplateFiles } from './chunk-44V5SD4G.js';
10
10
  import { MAINTAINED_SKILLS } from './chunk-CDDED64E.js';
11
11
  import { cliInvocation } from './chunk-CRB3POP4.js';
12
- import { hasSymlinkComponent } from './chunk-6ZLI652Y.js';
13
- import { emitTree, ALL_TARGET_IDS, classifyTree, splitRawFile } from './chunk-PNIFQX73.js';
12
+ import { hasSymlinkComponent } from './chunk-ZF24JN7R.js';
13
+ import { emitTree, ALL_TARGET_IDS, classifyTree, splitRawFile } from './chunk-6CXNWKWD.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,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { DEFAULT_UNIT_NAME } from './chunk-7HZH5D7H.js';
3
+ import { DEFAULT_UNIT_NAME } from './chunk-EHOFFTVX.js';
4
4
  import { RUNNER_FILE_MODE } from './chunk-PA6CK6WQ.js';
5
5
  import { claudeEnvPath, withoutCredentialLines } from './chunk-BALIE3BA.js';
6
6
  import { parseRunnerEnv } from './chunk-HACGUL52.js';
@@ -22719,7 +22719,30 @@ var DemoManifestV3Schema = external_exports.strictObject({
22719
22719
  ...manifestFields,
22720
22720
  chapters: external_exports.array(DemoChapterV2Schema).min(1).max(DEMO_CHAPTERS_MAX)
22721
22721
  });
22722
- var DemoManifestSchema = external_exports.discriminatedUnion("schemaVersion", [DemoManifestV1Schema, DemoManifestV2Schema, DemoManifestV3Schema]);
22722
+ var DemoScreenshotSchema = external_exports.strictObject({
22723
+ /** The index, in the chapter's checks, of the check the frame follows. */
22724
+ check: external_exports.number().int().min(0),
22725
+ /** The PNG file, as a path relative to the manifest's folder. */
22726
+ file: external_exports.string().min(1).max(500),
22727
+ /** SHA-256 of the PNG file's bytes, in lower-case hex. */
22728
+ sha256: external_exports.string().regex(/^[0-9a-f]{64}$/),
22729
+ /** True when the frame is the whole page, not the viewport. */
22730
+ fullPage: external_exports.boolean(),
22731
+ /** True when the chapter's `demo.mask()` regions are covered in the frame. */
22732
+ masked: external_exports.boolean()
22733
+ });
22734
+ var DemoChapterV4Schema = external_exports.strictObject({ ...chapterWithStillsFields, screenshot: DemoScreenshotSchema.optional() }).refine(endsAfterStart, { message: "a chapter must end after it starts", path: ["end"] }).superRefine(stillsFollowPassedChecks).superRefine((chapter, context) => {
22735
+ if (chapter.screenshot !== void 0 && chapter.screenshot.check >= chapter.checks.length) {
22736
+ context.addIssue({ code: "custom", path: ["screenshot", "check"], message: "a screenshot must follow a check the chapter has" });
22737
+ }
22738
+ });
22739
+ var DemoManifestV4Schema = external_exports.strictObject({
22740
+ schemaVersion: external_exports.literal(4),
22741
+ test: DemoTestPathSchema,
22742
+ ...manifestFields,
22743
+ chapters: external_exports.array(DemoChapterV4Schema).min(1).max(DEMO_CHAPTERS_MAX)
22744
+ });
22745
+ var DemoManifestSchema = external_exports.discriminatedUnion("schemaVersion", [DemoManifestV1Schema, DemoManifestV2Schema, DemoManifestV3Schema, DemoManifestV4Schema]);
22723
22746
  var DemoRecordChapterSchema = external_exports.strictObject({
22724
22747
  ...chapterFields,
22725
22748
  /** The `clientArtifactId` of the chapter's clip. */
@@ -22764,7 +22787,9 @@ var DemoRecordChapterV3Schema = external_exports.strictObject({
22764
22787
  bound: external_exports.boolean(),
22765
22788
  comparable: DemoComparableSchema,
22766
22789
  stills: external_exports.array(DemoStillSchema.pick({ check: true, sha256: true })).max(DEMO_CHECKS_MAX),
22767
- difference: external_exports.strictObject({ check: external_exports.number().int().min(0), region: DemoRegionSchema }).optional()
22790
+ difference: external_exports.strictObject({ check: external_exports.number().int().min(0), region: DemoRegionSchema }).optional(),
22791
+ /** The stored screenshot frame: its `clientArtifactId`, and the manifest's fields for it. Present only for a bound frame. */
22792
+ screenshot: DemoScreenshotSchema.omit({ file: true }).extend({ artifactId: external_exports.string().min(1).max(64) }).optional()
22768
22793
  }).refine((chapter) => chapter.end > chapter.start, { message: "a chapter must end after it starts", path: ["end"] }).refine((chapter) => chapter.comparable === "no" === (chapter.difference !== void 0), {
22769
22794
  message: "a chapter has a difference exactly when it is not comparable",
22770
22795
  path: ["difference"]
@@ -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-M24H6JQW.js';
3
+ import { skillDir, FORMER_MAINTAINED_NAMES, isMaintainedCopy } from './chunk-44V5SD4G.js';
4
4
  import { cliInvocation } from './chunk-CRB3POP4.js';
5
- import { emitTree, ALL_TARGET_IDS, classifyTree } from './chunk-PNIFQX73.js';
5
+ import { emitTree, ALL_TARGET_IDS, classifyTree } from './chunk-6CXNWKWD.js';
6
6
  import { readFileSync, existsSync, unlinkSync, rmdirSync, readdirSync } from 'fs';
7
7
  import { join, dirname, relative, sep } from 'path';
8
8
 
@@ -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-CCOU4NXE.js';
6
- import { resolveRepoIdentity } from './chunk-QQXNS4G2.js';
5
+ import { autoConnect } from './chunk-HLZMAJJD.js';
6
+ import { resolveRepoIdentity } from './chunk-NIY2UBT6.js';
7
7
  import { C } from './chunk-ANPNT6PM.js';
8
8
  import { resolveGatewayCredentials, defaultFetch, unauthorizedMessage } from './chunk-6RKD7YZ6.js';
9
9
  import { launchedItemForSession } from './chunk-T2Q7ISPE.js';
10
10
  import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
11
- import { CriteriaListSchema } from './chunk-V7Q5OKN7.js';
11
+ import { CriteriaListSchema } from './chunk-F2D5BSXS.js';
12
12
  import { homeFromEnv } from './chunk-VNVZDWO3.js';
13
13
  import { readFileSync } from 'fs';
14
14
 
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { fetchFactories, selectFactory, saveFactoryConnection, autoConnectedLine } from './chunk-VJGQEASF.js';
4
- import { resolveRepoIdentity } from './chunk-QQXNS4G2.js';
3
+ import { fetchFactories, selectFactory, saveFactoryConnection, autoConnectedLine } from './chunk-S5CNYXUA.js';
4
+ import { resolveRepoIdentity } from './chunk-NIY2UBT6.js';
5
5
  import { resolveGatewayCredentials } from './chunk-6RKD7YZ6.js';
6
6
  import { readCloudConfig } from './chunk-PJDQPF5N.js';
7
7
  import { findGitDirs, readRepoConnection } from './chunk-BJ3KTMDH.js';