@outerlayer/cli 0.18.0 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/README.md +21 -2
  3. package/dist/{agent-setup-RBTEACYU.js → agent-setup-TPR4BBFV.js} +15 -16
  4. package/dist/{artifact-link-cmd-AVM2EKTV.js → artifact-link-cmd-W7XF5BFB.js} +2 -2
  5. package/dist/build-info.json +1 -1
  6. package/dist/{builder-DUI2ZH2H.js → builder-C4QNTYMS.js} +3 -3
  7. package/dist/{check-5C4YDZYV.js → check-UWQAL2MN.js} +44 -43
  8. package/dist/{chunk-S26M3YBJ.js → chunk-3UZTIRLF.js} +1 -1
  9. package/dist/{chunk-W5VPCONO.js → chunk-452TM7J4.js} +33 -227
  10. package/dist/{chunk-UYOYTKE2.js → chunk-5GHGAF6P.js} +3 -3
  11. package/dist/{chunk-QQM2UJ6T.js → chunk-5MYFOW5V.js} +182 -28
  12. package/dist/{chunk-Y5GE76XC.js → chunk-5TN7GLYX.js} +33 -81
  13. package/dist/{chunk-GOBOJMOJ.js → chunk-6D7GT22T.js} +4 -4
  14. package/dist/{chunk-3OFZM4X6.js → chunk-6U3MV7TZ.js} +151 -20
  15. package/dist/{chunk-F4XSVQJ4.js → chunk-6X4SQ5MY.js} +2 -2
  16. package/dist/{chunk-Y5MXET4M.js → chunk-7KSSBQTS.js} +11 -10
  17. package/dist/{chunk-JF42URPU.js → chunk-7SJPQWBM.js} +33 -9
  18. package/dist/{chunk-N3CUDFCW.js → chunk-7VUK5RFS.js} +15 -2
  19. package/dist/{chunk-SWCTGCSC.js → chunk-7YP7T6GV.js} +1 -1
  20. package/dist/{chunk-KDVIU23F.js → chunk-BWSUPRDK.js} +1 -1
  21. package/dist/{chunk-S76AYB4M.js → chunk-CG36IONK.js} +5 -5
  22. package/dist/chunk-CJJDJ7AT.js +56 -0
  23. package/dist/{chunk-FUB7LRUE.js → chunk-DADWEUH3.js} +5 -5
  24. package/dist/{chunk-RAZTWYZN.js → chunk-DJ3ZUSC3.js} +7 -8
  25. package/dist/{chunk-MQJSXHV7.js → chunk-G3IJ3N6F.js} +5 -3
  26. package/dist/{chunk-KK4VBOH6.js → chunk-HPJNLETG.js} +10 -11
  27. package/dist/{chunk-IP7BIBXJ.js → chunk-IF2OSI5T.js} +35 -1
  28. package/dist/{chunk-T4Y6SCG3.js → chunk-IXYZUUYQ.js} +2 -2
  29. package/dist/chunk-KYS3TQAG.js +296 -0
  30. package/dist/chunk-LLM3I5YU.js +89 -0
  31. package/dist/{chunk-B3UKB46N.js → chunk-LRG3ZMZD.js} +4 -5
  32. package/dist/{chunk-ULSIJGLS.js → chunk-NFIR3GEE.js} +56 -14
  33. package/dist/{chunk-MNTSH4CL.js → chunk-NNLA7LLQ.js} +1 -1
  34. package/dist/{chunk-WGAUY5LE.js → chunk-QEFKA2QD.js} +1 -1
  35. package/dist/{chunk-BMYGAGBJ.js → chunk-QNLX477Q.js} +155 -23
  36. package/dist/chunk-TUSYOL2O.js +113 -0
  37. package/dist/{chunk-ESC6UR76.js → chunk-TWF3RICI.js} +6 -6
  38. package/dist/{chunk-NL4XPC7W.js → chunk-UVG35MWF.js} +1 -1
  39. package/dist/{chunk-L2USZT6T.js → chunk-VMJPFQNE.js} +1 -1
  40. package/dist/chunk-VRRGENS4.js +144 -0
  41. package/dist/{chunk-X5N6KC6V.js → chunk-WFSUUUAN.js} +2 -3
  42. package/dist/{chunk-6CHIYEZZ.js → chunk-XSZD4AZ6.js} +9 -83
  43. package/dist/{chunk-LXAY4A2G.js → chunk-YQR6E6OV.js} +34 -49
  44. package/dist/{chunk-47TTLEDX.js → chunk-ZHAUSEEN.js} +35 -13
  45. package/dist/{claude-launcher-YVXI76NX.js → claude-launcher-FPPHZPMR.js} +20 -7
  46. package/dist/{cli-C77H54BV.js → cli-HROW5T7X.js} +203 -228
  47. package/dist/{command-H5CILO4S.js → command-OEAV7BVX.js} +29 -30
  48. package/dist/{config-FXDG4NPJ.js → config-CLSGABD5.js} +2 -2
  49. package/dist/{connect-cmd-ZW5FV3ZW.js → connect-cmd-UNYKGDAL.js} +7 -7
  50. package/dist/context-cleanup-HSVYDGMI.js +9 -0
  51. package/dist/control-plane-launch-NYVDJESK.js +216 -0
  52. package/dist/{dist-QTX4RSCL.js → dist-WO7NOJNG.js} +2 -2
  53. package/dist/{docker-RC3PRX3Q.js → docker-BFU3AQGY.js} +4 -4
  54. package/dist/{doctor-2NQQML6P.js → doctor-23BBJWBX.js} +32 -33
  55. package/dist/{emit-artifact-cmd-7MP63KXU.js → emit-artifact-cmd-O6SCM7TV.js} +17 -17
  56. package/dist/{emit-cmd-PPN4QQF2.js → emit-cmd-7SP3I6UZ.js} +6 -6
  57. package/dist/{emit-criteria-cmd-3RXPDLNK.js → emit-criteria-cmd-LQNERZRV.js} +11 -12
  58. package/dist/{emit-finding-cmd-OL7JB6H3.js → emit-finding-cmd-AJPKHIOV.js} +12 -13
  59. package/dist/{emit-result-cmd-UZVMOCF4.js → emit-result-cmd-RUICOKWQ.js} +17 -17
  60. package/dist/emit-step-cmd-347XNGPQ.js +26 -0
  61. package/dist/{governing-source-BUU4IABS.js → governing-source-V5EEGPTA.js} +21 -22
  62. package/dist/{hook-fast-W5MKHMJT.js → hook-fast-YAZG5MDX.js} +3 -3
  63. package/dist/{import-capture-cmd-ZO6KGHI2.js → import-capture-cmd-KKFFOGWP.js} +4 -4
  64. package/dist/{import-ruler-cmd-KJMWL5V6.js → import-ruler-cmd-5P6JOXQN.js} +2 -2
  65. package/dist/index.js +4 -4
  66. package/dist/{init-WNXXYMO7.js → init-LWHDMZQG.js} +30 -31
  67. package/dist/{init-VWXIZEAN.js → init-MOINY2DD.js} +30 -31
  68. package/dist/{init-cmd-WS6TIRYT.js → init-cmd-HSMRID6A.js} +67 -26
  69. package/dist/{init-update-E3J6TVIN.js → init-update-LWX5MPPR.js} +21 -22
  70. package/dist/{install-CBWIEF3R.js → install-4SEFIIW2.js} +3 -3
  71. package/dist/{login-browser-O63QZN7D.js → login-browser-DX35MARZ.js} +2 -2
  72. package/dist/{loop-UGI2BJOT.js → loop-SYYPVFYW.js} +44 -43
  73. package/dist/{machine-JOW4RNZ7.js → machine-6X63G2KH.js} +26 -27
  74. package/dist/{mcp-serve-cmd-DOTY5FKY.js → mcp-serve-cmd-N3UTY6EE.js} +5 -5
  75. package/dist/{runner-env-4NB2GA7O.js → runner-env-FRZFFHDF.js} +4 -4
  76. package/dist/{runner-key-TC3NFWFV.js → runner-key-276SJU5R.js} +30 -31
  77. package/dist/{session-sender-NNVPSPY7.js → session-sender-GGIY5OAX.js} +19 -15
  78. package/dist/shell-function-NRD4KVUK.js +6 -0
  79. package/dist/{spec-cmd-OWVTBB4J.js → spec-cmd-SIZBRN7D.js} +12 -13
  80. package/dist/{starter-pack-OPWUDOWX.js → starter-pack-6LQVLBIA.js} +5 -5
  81. package/dist/{status-TKCLLKFG.js → status-NAK6DYSF.js} +33 -32
  82. package/dist/{sync-cmd-Q6VYNPWG.js → sync-cmd-G7GF4UTW.js} +18 -14
  83. package/dist/{watch-ARAGADTF.js → watch-EVM5GSMP.js} +18 -14
  84. package/dist/{work-claim-cmd-34FERLYX.js → work-claim-cmd-3J3QW56U.js} +16 -17
  85. package/dist/{work-cmd-7S5B2H2P.js → work-cmd-5EPPD33Y.js} +12 -13
  86. package/dist/{work-comment-cmd-SZJSPM5S.js → work-comment-cmd-2ACOZQAE.js} +12 -13
  87. package/dist/work-logs-cmd-QDD2NMJL.js +60 -0
  88. package/dist/{work-open-pr-cmd-RPXKCBWS.js → work-open-pr-cmd-XNCEI4ZM.js} +13 -14
  89. package/dist/{work-pr-cmd-5LGANL32.js → work-pr-cmd-H4OQR26N.js} +12 -13
  90. package/package.json +2 -2
  91. package/skill-pack/maintained/outerlayer-cli/SKILL.md +9 -2
  92. package/skill-pack/maintained/outerlayer-cli/references/find-out-why-a-build-ended.md +76 -0
  93. package/skill-pack/shipped.json +1 -0
  94. package/skill-pack/template/build/references/release.md +3 -1
  95. package/dist/chunk-WBT5X3NH.js +0 -40
  96. package/dist/chunk-XCCLFVXM.js +0 -401
  97. package/dist/context-adopt-O5OFXMKI.js +0 -109
  98. package/dist/context-materialize-Y5IJ4MQT.js +0 -23
  99. package/dist/{chunk-NACDBXUG.js → chunk-BM63HB2M.js} +1 -1
  100. package/dist/{chunk-ZRL6HKBY.js → chunk-FVMYKL6L.js} +1 -1
  101. package/dist/{chunk-52NC2FIU.js → chunk-NTRCK4NH.js} +1 -1
  102. package/dist/{chunk-XGP3VYOG.js → chunk-P53VEAOF.js} +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,30 @@
1
1
  # @outerlayer/cli
2
2
 
3
+ ## 0.19.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 5153995: Add `outerlayer emit step <name>`. An agent reports that it started a step, such as "Review round 2", and the work item's Activity tab shows it.
8
+
9
+ The name is 1 to 80 characters on one line. If the gateway cannot be reached, the command queues the step with the time you ran it and exits 0, and `outerlayer sync` sends it later. If the gateway refuses the step, the command prints the reason and exits 1.
10
+
11
+ - 3d15dba: On a laptop, `outerlayer claude` starts Claude Code with your control plane attached, without writing its files into your repository. It keeps a copy of the control plane under `~/.outerlayer/context/` and starts Claude Code with that copy added.
12
+
13
+ A governed repository can now commit its own `CLAUDE.md`, `AGENTS.md` and skills. `outerlayer init` can add a `claude` function to your zsh or bash startup file, so plain `claude` starts the same way. A session that did not start through `outerlayer claude` says the shared instructions are missing.
14
+
15
+ `outerlayer context materialize` and the pre-commit guard are removed. A session start removes the files, the exclude block and the guard that an earlier CLI added to a checkout.
16
+
17
+ - 3210eaa: `outerlayer work logs` prints the runner's log for a host attempt. A runner now sends that log with every release, and gives a reason when a build command dies of a signal it did not send.
18
+
19
+ ### Patch Changes
20
+
21
+ - ff302c8: The build skill says a pull request closes a GitHub issue, and that a person completes a Linear or Jira issue in its tracker after merge.
22
+ - de29d22: `outerlayer context emit` deletes a generated file whose source is gone, so every orphan `--check` reports is one a plain emit clears. Before, `--check` reported these files and emit left them, so the check kept failing.
23
+
24
+ Neither form reads inside a nested git repository, a submodule, or a governed clone any more. Generated files there belong to that tree, not to the repository being emitted.
25
+
26
+ - 13ee333: Update the bundled `@noble/hashes` library from 1.8 to 2.4. The CLI's pricing code depends on it. Token costs the CLI reports are unchanged.
27
+
3
28
  ## 0.18.0
4
29
 
5
30
  ### Minor Changes
package/README.md CHANGED
@@ -90,7 +90,8 @@ content:
90
90
  `release` marks it done. `outerlayer work comment` posts one comment on a
91
91
  work item's general thread or a criterion thread — the detected session id
92
92
  rides along the same way it does for `emit`, only ever narrowing what the
93
- comment may do; `outerlayer work threads` reads them back. A runner key
93
+ comment may do; `outerlayer work threads` reads them back. `outerlayer work logs`
94
+ reads the runner's log for a host attempt. A runner key
94
95
  needs `git.read` and `work.read` to
95
96
  list and read items, and `work.claim` to claim, renew or release — `work.claim`
96
97
  is not granted to a dashboard role by default, since a claim is a host's
@@ -103,7 +104,11 @@ content:
103
104
  credential.
104
105
  - **`outerlayer runner start`** lists, claims, renews and releases work
105
106
  items the same way `work claim`/`renew`/`release` do, on the schedule its
106
- config sets — it sends nothing about the job it runs beyond that; the
107
+ config sets. Each release also carries the runner's own log for the attempt:
108
+ the lines the runner logged for that item, and the tail of the stage log when
109
+ the attempt ended in provision, sync, cleanup or report. It is scrubbed with
110
+ the same patterns as the build's session, capped at 64 KiB and always sent.
111
+ The runner sends nothing else about the job it runs; the
107
112
  agent it starts is a separate process with its own credentials, from the
108
113
  `runner` block, never the copy-out daemon's. It also sends a heartbeat at
109
114
  the end of every poll: the host, the CLI version, the poll interval, the
@@ -240,6 +245,11 @@ content:
240
245
  credited the member who asked for the build. The runner sets that author in
241
246
  the build's environment and adds the `Co-authored-by` line with git hooks it
242
247
  writes into the build's own directory.
248
+ - **`outerlayer claude`** asks your gateway which repository governs the
249
+ current one (`GET /v1/context/source`, with your API key). When one does, it
250
+ runs `git fetch` of that control plane into a cache under
251
+ `~/.outerlayer/context` and starts Claude Code with the files attached.
252
+ Nothing is written into your working tree.
243
253
  - **`outerlayer runner start` with `builtin:container` hooks** also asks your
244
254
  gateway which repository governs the item's repository (`GET
245
255
  /v1/context/source`, signed with the host key), after the recipe's
@@ -327,6 +337,13 @@ content:
327
337
  declared proof kind, from the JSON file you name. The anchoring is the same
328
338
  as `emit finding`. Nothing but the file's content and the item number is
329
339
  sent.
340
+ - **`outerlayer emit step <name>`** sends the step's name, the time you ran the
341
+ command, a random id for the step and the item number
342
+ (`POST /v1/work-items/steps`). The item is `--item`, or the item the
343
+ recorded session was launched for. When the gateway cannot be reached, the
344
+ same four values, the factory id and the directory are kept in
345
+ `~/.outerlayer/spool/steps.jsonl`, and `outerlayer sync` sends them later.
346
+ Nothing from the session itself is sent.
330
347
  - **`outerlayer mcp serve`** is the stdio MCP server your editor spawns. It
331
348
  forwards every JSON-RPC message the editor sends to the gateway and returns
332
349
  the reply.
@@ -391,9 +408,11 @@ before it gives up.
391
408
  | `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. |
392
409
  | `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. |
393
410
  | `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. |
411
+ | `outerlayer work logs --item <n> [--attempt <claim id>]` | Print the runner's log for a host attempt on a work item: the newest attempt a runner made, or the one `--attempt` names (an `id` from `claims` in `work status --json`). The log is what the runner did around the agent, with secrets removed on the host. Exits 1 for an attempt that is still running or that an older runner released without a log. |
394
412
  | `outerlayer work threads --item <n>` | Read a work item's threads back — the general thread first, then one per criterion with proof or a comment, each with its `waitingOn`. |
395
413
  | `outerlayer emit finding --id <id> --category <context\|flaky-test\|tooling\|environment\|defect\|other> --title <text> --file <path> --where <label> [--line <n>] [--item <number>] [--cause <text>] [--detail <text>] [--suggestion <text>] [--command <text>] [--error <text>] [--test <name>] [--symbol <name>] [--started-at <event> --ended-at <event>] [--problem <id> … --link-reason <text> \| --new] …` | Record one problem you hit in the factory. `--category` is one of `context` (an instruction that is wrong, broken or missing), `flaky-test`, `tooling`, `environment`, `defect` (a bug outside your own change) or `other`. A `context` finding also needs `--rule-path` and `--rule-relation` (`wrong`, `broken` or `missing`), and `--rule-quote` unless the relation is `missing`. `--cause`, `--detail`, `--suggestion`, `--command`, `--error` (the first error line), `--test` and `--symbol` carry what a fix needs. Every finding joins a factory-level problem: when a key of the finding matches a known problem it joins that problem; otherwise nothing is stored, the closest problems are printed, and the command exits with code 3. Run it again with `--problem <id> --link-reason <text>` (repeat `--problem` for each problem the finding reports) or with `--new`. Without `--started-at`, it prints the session's recent events with ids and times; name the event where you hit the problem and the one where you got past it with `--started-at` and `--ended-at`. Findings are informational; nothing reads one to pass or fail the work. `--item` names the work item; without it, inside a recorded session, the item that session was launched for is used automatically. Re-emitting the same `--id` on the item replaces that finding and keeps its problems. |
396
414
  | `outerlayer emit findings <file> [--item <number>]` | Record a whole batch at once, read from a JSON file (`-` for standard input) with `"schemaVersion": 3` — the same shape and validation as `emit finding`, one record per id. A finding's `startedAt` and `endedAt` may be event ids. The findings that match a key are stored; those that need a choice are listed with their candidates and not stored, and the exit code is 3. Anchored the same way: `--item`, else a recorded session's own item. |
415
+ | `outerlayer emit step <name> [--item <number>]` | Report that you started a step. The name is free text, 1 to 80 characters on one line. The work item's Activity tab shows the step with the time you ran the command. A step has a start and nothing else, so run it again at the start of the next step. `--item` names the work item; without it, inside a recorded session, the item that session was launched for is used. If the gateway cannot be reached, or answers with a 5xx, the step is queued in `~/.outerlayer/spool/steps.jsonl`, the command exits 0, and `outerlayer sync` sends it later with its original time. If the gateway refuses the step, the command prints why and exits 1. |
397
416
  | `outerlayer emit criteria <file> [--item <number>]` | Record a work item's acceptance criteria as one list, read from a JSON file (`-` for standard input): `{"criteria": [{"id": "AC-1", "text": "Given …", "proof": null}]}`. An `id` is 1 to 64 characters of `A-Z a-z 0-9 . _ : -`, the same id `emit artifact --for` binds evidence to. `proof` is `video`, `screenshot`, `report`, `log`, `test`, `file` or `null` (any bound artifact proves it). The list holds 1 to 200 criteria, each `text` at most 2,000 characters, with no id twice. It is validated before anything is sent. This list is the only source for the item's Criteria tab. Once an item has a list, only a person can replace it: run the command outside an agent session, with your own login. Anchored the same way as `emit findings`: `--item`, else a recorded session's own item. |
398
417
  | `outerlayer mcp install [--transport stdio\|http] [--url] [--name] [--command]` | Write (or update) an `mcpServers` entry in `.mcp.json` for the OuterLayer gateway. Default `stdio`: the client spawns `outerlayer mcp serve`, which reads the API key from `~/.outerlayer/config.json` (or `OUTERLAYER_API_KEY`) each time it connects, so a reconnect picks up a newly saved or rotated key. `--transport http` writes a direct `POST /v1/mcp` entry referencing `${OUTERLAYER_API_KEY}`, resolved by the client from the environment it was launched with. Never writes an API key. Pass `--url`/`--app-id` for self-host. |
399
418
  | `outerlayer mcp serve [--url] [--app-id]` | Stdio MCP server bridging stdin/stdout JSON-RPC to the gateway's `POST /v1/mcp`. What the stdio `.mcp.json` entry runs; exits 1 with a clear message when no API key is configured. |
@@ -1,28 +1,27 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { keepHandWritten, runAgentSetup } from './chunk-RAZTWYZN.js';
4
- import './chunk-47TTLEDX.js';
3
+ export { keepHandWritten, runAgentSetup } from './chunk-DJ3ZUSC3.js';
4
+ import './chunk-ZHAUSEEN.js';
5
5
  import './chunk-YVZJ6GKF.js';
6
- import './chunk-F4XSVQJ4.js';
6
+ import './chunk-6X4SQ5MY.js';
7
7
  import './chunk-ANPNT6PM.js';
8
- import './chunk-W5VPCONO.js';
9
- import './chunk-LXAY4A2G.js';
10
- import './chunk-T4Y6SCG3.js';
11
- import './chunk-ZRL6HKBY.js';
12
- import './chunk-52NC2FIU.js';
13
- import './chunk-MNTSH4CL.js';
14
- import './chunk-X5N6KC6V.js';
15
- import './chunk-N3CUDFCW.js';
8
+ import './chunk-452TM7J4.js';
9
+ import './chunk-IXYZUUYQ.js';
10
+ import './chunk-FVMYKL6L.js';
11
+ import './chunk-NTRCK4NH.js';
12
+ import './chunk-ZJSNLVCE.js';
13
+ import './chunk-BJ3KTMDH.js';
14
+ import './chunk-NNLA7LLQ.js';
15
+ import './chunk-WFSUUUAN.js';
16
+ import './chunk-7VUK5RFS.js';
16
17
  import './chunk-EABW6AJQ.js';
18
+ import './chunk-CRB3POP4.js';
19
+ import './chunk-YQR6E6OV.js';
20
+ import './chunk-VNVZDWO3.js';
17
21
  import './chunk-RA3O54FC.js';
18
22
  import './chunk-M2ZWWTWZ.js';
19
23
  import './chunk-N2PXGQRL.js';
20
24
  import './chunk-BQXFBI7T.js';
21
- import './chunk-XCCLFVXM.js';
22
- import './chunk-ZJSNLVCE.js';
23
- import './chunk-BJ3KTMDH.js';
24
- import './chunk-CRB3POP4.js';
25
- import './chunk-VNVZDWO3.js';
26
25
  import './chunk-Z5GEFMRW.js';
27
26
 
28
27
  createRequire(import.meta.url);
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { sanitizeTerminal, readEffectiveArtifactSpoolState } from './chunk-MQJSXHV7.js';
4
- import './chunk-N3CUDFCW.js';
3
+ import { sanitizeTerminal, readEffectiveArtifactSpoolState } from './chunk-G3IJ3N6F.js';
4
+ import './chunk-7VUK5RFS.js';
5
5
  import { cliInvocation } from './chunk-CRB3POP4.js';
6
6
  import { homeFromEnv } from './chunk-VNVZDWO3.js';
7
7
  import './chunk-Z5GEFMRW.js';
@@ -1 +1 @@
1
- {"id":"2026-10-13T00:18:48.455Z+4c5e4a3","root":"/home/runner/_work/outerlayer/outerlayer","pkg":"outerlayer"}
1
+ {"id":"2026-10-13T19:11:37.037Z+109c2bd","root":"/home/runner/_work/outerlayer/outerlayer","pkg":"outerlayer"}
@@ -1,10 +1,10 @@
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-S26M3YBJ.js';
3
+ export { MIN_BUILDX_VERSION, builderName, builderSpec, buildxState, ensureBuilder, ensureFailureCount, isOutOfMemory, proxyEnvironment, trackImageBuild } from './chunk-3UZTIRLF.js';
4
4
  import './chunk-7RQ73DLO.js';
5
5
  import './chunk-CX22S5BA.js';
6
- import './chunk-BMYGAGBJ.js';
7
- import './chunk-N3CUDFCW.js';
6
+ import './chunk-QNLX477Q.js';
7
+ import './chunk-7VUK5RFS.js';
8
8
  import './chunk-N2PXGQRL.js';
9
9
  import './chunk-BQXFBI7T.js';
10
10
  import './chunk-Z5GEFMRW.js';
@@ -1,39 +1,41 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { probeCredentials } from './chunk-QQM2UJ6T.js';
3
+ import { probeCredentials } from './chunk-5MYFOW5V.js';
4
+ import './chunk-6U3MV7TZ.js';
5
+ import './chunk-MTP2QEVO.js';
6
+ import './chunk-S5PCA3SN.js';
4
7
  import './chunk-3JVYMD4G.js';
5
- import './chunk-I2UOAV7X.js';
6
8
  import './chunk-YETTWTAY.js';
7
- import './chunk-3OFZM4X6.js';
8
9
  import './chunk-SADUQSO4.js';
9
- import './chunk-KDVIU23F.js';
10
- import './chunk-MTP2QEVO.js';
11
- import './chunk-S5PCA3SN.js';
12
- import './chunk-UYOYTKE2.js';
10
+ import './chunk-I2UOAV7X.js';
11
+ import './chunk-BWSUPRDK.js';
12
+ import './chunk-5GHGAF6P.js';
13
13
  import './chunk-XNGMQ27R.js';
14
- import { placeholderQueues, placeholderProblem, permissionModeProblems, permissionModeProblem, needsClaudeCredential, claudeCredentialCheck, claimPermissionProblem, formerSkillQueues, formerSkillProblem } from './chunk-FUB7LRUE.js';
15
- import './chunk-AMFWYESY.js';
16
- import './chunk-YYYRBYWG.js';
17
- import './chunk-GOBOJMOJ.js';
18
- import './chunk-JF42URPU.js';
14
+ import './chunk-7SJPQWBM.js';
15
+ import './chunk-KYS3TQAG.js';
19
16
  import './chunk-ESVW4MJY.js';
17
+ import { placeholderQueues, placeholderProblem, permissionModeProblems, permissionModeProblem, needsClaudeCredential, claudeCredentialCheck, claimPermissionProblem, formerSkillQueues, formerSkillProblem } from './chunk-DADWEUH3.js';
18
+ import './chunk-YYYRBYWG.js';
19
+ import './chunk-AMFWYESY.js';
20
20
  import './chunk-TBT347UY.js';
21
- import './chunk-NL4XPC7W.js';
22
- import './chunk-Y5MXET4M.js';
23
- import './chunk-L2USZT6T.js';
24
- import './chunk-S26M3YBJ.js';
21
+ import './chunk-6D7GT22T.js';
22
+ import './chunk-7YP7T6GV.js';
23
+ import './chunk-UVG35MWF.js';
24
+ import './chunk-7KSSBQTS.js';
25
+ import './chunk-OGFGZQA3.js';
26
+ import './chunk-VMJPFQNE.js';
27
+ import './chunk-3UZTIRLF.js';
25
28
  import './chunk-GGOMT6KF.js';
26
29
  import './chunk-X5H2WYMB.js';
27
- import './chunk-6CHIYEZZ.js';
28
- import './chunk-SWCTGCSC.js';
29
- import './chunk-WGAUY5LE.js';
30
+ import './chunk-XSZD4AZ6.js';
31
+ import './chunk-QEFKA2QD.js';
30
32
  import { parseRunnerEnv } from './chunk-6MZSX4M7.js';
31
- import './chunk-KK4VBOH6.js';
32
- import './chunk-WBT5X3NH.js';
33
- import './chunk-IP7BIBXJ.js';
34
- import './chunk-S76AYB4M.js';
35
- import './chunk-MQJSXHV7.js';
36
- import { loadRunnerConfig, RunnerConfigError, checkHooks } from './chunk-XGP3VYOG.js';
33
+ import './chunk-HPJNLETG.js';
34
+ import './chunk-IF2OSI5T.js';
35
+ import './chunk-CG36IONK.js';
36
+ import './chunk-G3IJ3N6F.js';
37
+ import './chunk-BM63HB2M.js';
38
+ import { loadRunnerConfig, RunnerConfigError, checkHooks } from './chunk-P53VEAOF.js';
37
39
  import './chunk-UXYLWVTQ.js';
38
40
  import './chunk-7RQ73DLO.js';
39
41
  import './chunk-3CWUOFV6.js';
@@ -41,36 +43,35 @@ import './chunk-QOZKPLVJ.js';
41
43
  import './chunk-CX22S5BA.js';
42
44
  import './chunk-ECODQ7II.js';
43
45
  import './chunk-JBJTC3UU.js';
44
- import './chunk-OGFGZQA3.js';
46
+ import './chunk-NFIR3GEE.js';
45
47
  import './chunk-F7CU5ABH.js';
46
48
  import './chunk-BKO6JEZI.js';
47
- import './chunk-BMYGAGBJ.js';
48
- import './chunk-NACDBXUG.js';
49
+ import './chunk-QNLX477Q.js';
49
50
  import './chunk-GOSFARMS.js';
50
51
  import './chunk-ANPNT6PM.js';
51
52
  import './chunk-T2Q7ISPE.js';
52
53
  import './chunk-WZBHBH3J.js';
53
54
  import './chunk-5QRP3MVS.js';
54
- import './chunk-W5VPCONO.js';
55
- import './chunk-LXAY4A2G.js';
56
- import './chunk-T4Y6SCG3.js';
57
- import './chunk-ZRL6HKBY.js';
58
- import './chunk-52NC2FIU.js';
59
- import './chunk-MNTSH4CL.js';
60
- import './chunk-X5N6KC6V.js';
61
- import './chunk-N3CUDFCW.js';
55
+ import './chunk-LLM3I5YU.js';
56
+ import './chunk-452TM7J4.js';
57
+ import './chunk-IXYZUUYQ.js';
58
+ import './chunk-FVMYKL6L.js';
59
+ import './chunk-NTRCK4NH.js';
60
+ import './chunk-ZJSNLVCE.js';
61
+ import './chunk-BJ3KTMDH.js';
62
+ import './chunk-G2YNJIGF.js';
63
+ import './chunk-NNLA7LLQ.js';
64
+ import './chunk-WFSUUUAN.js';
65
+ import './chunk-7VUK5RFS.js';
62
66
  import './chunk-EABW6AJQ.js';
67
+ import './chunk-CRB3POP4.js';
68
+ import './chunk-YQR6E6OV.js';
69
+ import './chunk-TUSYOL2O.js';
70
+ import './chunk-VNVZDWO3.js';
63
71
  import './chunk-RA3O54FC.js';
64
72
  import './chunk-M2ZWWTWZ.js';
65
73
  import './chunk-N2PXGQRL.js';
66
74
  import './chunk-BQXFBI7T.js';
67
- import './chunk-ULSIJGLS.js';
68
- import './chunk-G2YNJIGF.js';
69
- import './chunk-XCCLFVXM.js';
70
- import './chunk-ZJSNLVCE.js';
71
- import './chunk-BJ3KTMDH.js';
72
- import './chunk-CRB3POP4.js';
73
- import './chunk-VNVZDWO3.js';
74
75
  import './chunk-Z5GEFMRW.js';
75
76
  import { readFileSync } from 'fs';
76
77
  import { join, dirname } from 'path';
@@ -2,7 +2,7 @@
2
2
  import { createRequire } from 'node:module';
3
3
  import { parseSize } from './chunk-7RQ73DLO.js';
4
4
  import { BUILDKIT_IMAGE } from './chunk-CX22S5BA.js';
5
- import { compareVersions } from './chunk-BMYGAGBJ.js';
5
+ import { compareVersions } from './chunk-QNLX477Q.js';
6
6
  import { runnerDir } from './chunk-N2PXGQRL.js';
7
7
  import { CLAUDE_PORT, JOB_MOUNT, GATEWAY_PORT, GATEWAY_SOCKET, CLAUDE_SOCKET, RELAY_PORT, DESTINATION_BASE_PORT } from './chunk-BQXFBI7T.js';
8
8
  import { createHash } from 'crypto';