@outerlayer/cli 0.28.4 → 0.30.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.
- package/CHANGELOG.md +24 -0
- package/README.md +9 -1
- package/dist/{agent-setup-IDF3EXM4.js → agent-setup-ZNYAXAWI.js} +14 -14
- package/dist/{artifact-link-cmd-LEI6EOZE.js → artifact-link-cmd-VY6OM7S5.js} +2 -2
- package/dist/{bridge-JN3VJ23L.js → bridge-FI7OF2H3.js} +2 -2
- package/dist/{build-JCYOHPLL.js → build-PXRDWSN4.js} +4 -4
- package/dist/build-info.json +1 -1
- package/dist/{builder-HCTVP2O7.js → builder-UNVHUZL7.js} +6 -6
- package/dist/{check-WJ4X2Q44.js → check-BKONE55O.js} +42 -41
- package/dist/{chunk-YYGXCRIW.js → chunk-2ZMJFGOZ.js} +1 -1
- package/dist/{chunk-JYVBEWBC.js → chunk-3F7RC3UA.js} +3 -3
- package/dist/{chunk-JZJLKTZT.js → chunk-3IDNLZPR.js} +5 -5
- package/dist/{chunk-QFNFBQCG.js → chunk-3YLHIXLR.js} +7 -7
- package/dist/{chunk-QBF462QH.js → chunk-44CGGHJF.js} +1 -1
- package/dist/{chunk-AV5MJY45.js → chunk-5HZDPOJI.js} +3 -3
- package/dist/{chunk-OO6OADZN.js → chunk-6CNNRO53.js} +3 -3
- package/dist/{chunk-MFI55TNI.js → chunk-7YSR636F.js} +22 -6
- package/dist/{chunk-JGML2VUN.js → chunk-AKKVPUGK.js} +1 -1
- package/dist/{chunk-KJIUFOC4.js → chunk-AM3GMWQK.js} +1 -1
- package/dist/{emit-finding-cmd-W2FU4CCF.js → chunk-B5CQJBZ2.js} +5 -23
- package/dist/{chunk-KBB3CQTW.js → chunk-B6OYEP3K.js} +5 -5
- package/dist/{chunk-ITAIEJ2T.js → chunk-BCWVTWS7.js} +4 -4
- package/dist/{chunk-O47BTZSN.js → chunk-D3LS7E7U.js} +1 -1
- package/dist/{chunk-2BZTGJII.js → chunk-DBELICD6.js} +7 -7
- package/dist/{chunk-NVUO52YW.js → chunk-DBENBGVF.js} +55 -47
- package/dist/{chunk-X7SFJZIG.js → chunk-DBRB26R7.js} +29 -10
- package/dist/{chunk-TG7FAHRP.js → chunk-DLY22KHX.js} +5 -5
- package/dist/{chunk-UHU7H57K.js → chunk-FTGJ3DPV.js} +202 -35
- package/dist/{chunk-HOU33DW5.js → chunk-G2RRBBOX.js} +1 -1
- package/dist/{chunk-VWFOKRYS.js → chunk-HJUGOAM7.js} +1 -1
- package/dist/{chunk-BUP5N3X6.js → chunk-HSUUTD4E.js} +1 -1
- package/dist/chunk-I3LTIAOR.js +11 -0
- package/dist/{chunk-UXLLWIA2.js → chunk-I3WLYIIW.js} +7 -7
- package/dist/{chunk-R7TMTFJP.js → chunk-IRF2FKB5.js} +1 -1
- package/dist/{chunk-M6NNXKRM.js → chunk-IRTZYDZO.js} +1 -1
- package/dist/{chunk-6P2Z5AUY.js → chunk-ISKWFUEQ.js} +360 -74
- package/dist/{chunk-QZBXLLTV.js → chunk-IWFYKNAO.js} +88 -2
- package/dist/{chunk-ERVZGWUR.js → chunk-JGOMMFNX.js} +7 -7
- package/dist/{chunk-6NFXOQKZ.js → chunk-LJIFCG4G.js} +1 -1
- package/dist/{chunk-WL3QF3QF.js → chunk-MBVSVQVH.js} +18 -16
- package/dist/{chunk-TOHKSZKI.js → chunk-MBZTX4V2.js} +7 -7
- package/dist/{chunk-VM6BX2WJ.js → chunk-PS3AHE6C.js} +5 -5
- package/dist/{chunk-5B7BEQPR.js → chunk-QDDPVBIS.js} +2 -2
- package/dist/{chunk-5Q4NDYQP.js → chunk-QQJGL7LG.js} +25 -24
- package/dist/{chunk-HWOU2HDH.js → chunk-QWJBTFAF.js} +1 -1
- package/dist/{chunk-OOUHNKKX.js → chunk-RJDJFRRY.js} +2 -2
- package/dist/{chunk-NMIYK2G2.js → chunk-SJ4DX2AD.js} +3 -3
- package/dist/{chunk-DWVAG73B.js → chunk-SOWXLIDN.js} +1 -1
- package/dist/{chunk-NKD5BNRX.js → chunk-TGUWHA27.js} +3 -3
- package/dist/{chunk-DIQN5SEL.js → chunk-TKJISBV6.js} +1 -1
- package/dist/{chunk-FTNCNEWE.js → chunk-TKX23NFV.js} +12 -12
- package/dist/{chunk-RXFKXZJS.js → chunk-TN2XMMD7.js} +1 -1
- package/dist/{chunk-TCBVV2JK.js → chunk-U5DC57AF.js} +3 -3
- package/dist/{chunk-DQYMQ47E.js → chunk-UAFMC3PL.js} +1 -1
- package/dist/{chunk-P2RWZCV7.js → chunk-V6IYYQU3.js} +2 -2
- package/dist/{chunk-DSKOHPXN.js → chunk-VL3CF4DZ.js} +1 -1
- package/dist/{chunk-N5EEEKT6.js → chunk-WHCDULC4.js} +7 -3
- package/dist/{chunk-QKXF7CLR.js → chunk-XB7TRWI2.js} +4 -4
- package/dist/{chunk-W3K6GBXY.js → chunk-XRRSFHKV.js} +2 -2
- package/dist/{chunk-SATUCMAJ.js → chunk-XTKH5VAC.js} +2 -2
- package/dist/{chunk-EZ3DZXUH.js → chunk-YVY3IVYV.js} +3 -3
- package/dist/{chunk-YTR435DO.js → chunk-ZNMVBHGJ.js} +3 -3
- package/dist/{chunk-RKOTJQVG.js → chunk-ZUOPFE22.js} +10 -4
- package/dist/{claude-launcher-LVYZ4YJI.js → claude-launcher-ZDZQXW76.js} +5 -5
- package/dist/{cli-X3JGBH2D.js → cli-6NI7WJFP.js} +189 -121
- package/dist/{command-NLWZT7KR.js → command-EFYTEHPF.js} +30 -30
- package/dist/{config-TNV5HHLO.js → config-VM6GKCCE.js} +2 -2
- package/dist/{connect-cmd-43IWARIV.js → connect-cmd-U2DY4OZU.js} +12 -12
- package/dist/{container-start-3MXIUNE2.js → container-start-C3CGPEXA.js} +32 -31
- package/dist/{context-cleanup-LTH77FC3.js → context-cleanup-D5EGQHQV.js} +3 -3
- package/dist/{control-plane-launch-TIK265OT.js → control-plane-launch-2AC4BTWL.js} +10 -10
- package/dist/{dist-JFVKLUHL.js → dist-IDP7Q53A.js} +2 -2
- package/dist/{docker-2IIRBQAB.js → docker-K442NGCS.js} +6 -6
- package/dist/{doctor-PKMAUDTU.js → doctor-RGTHY56D.js} +32 -32
- package/dist/{emit-artifact-cmd-RM2X3PBJ.js → emit-artifact-cmd-IK7GAS7V.js} +16 -16
- package/dist/{emit-cmd-QUABLVO6.js → emit-cmd-PSD7AAKJ.js} +6 -6
- package/dist/{emit-criteria-cmd-ZUI7DFND.js → emit-criteria-cmd-TGBRMX3P.js} +13 -13
- package/dist/emit-finding-cmd-KXCNLJLK.js +34 -0
- package/dist/{emit-result-cmd-JINMQ7QG.js → emit-result-cmd-WJBLCVDL.js} +52 -25
- package/dist/{emit-step-cmd-7FZWQTV3.js → emit-step-cmd-OYX5X65A.js} +14 -14
- package/dist/{exec-client-6ZJJ4KVH.js → exec-client-RMGGSTGR.js} +3 -3
- package/dist/findings-cmd-HFDOB6AC.js +135 -0
- package/dist/{fleet-readiness-3A67MUAU.js → fleet-readiness-5S2GCWZE.js} +12 -12
- package/dist/{governing-source-KQMKM5CI.js → governing-source-LVTBDQIM.js} +17 -17
- package/dist/{guest-init-A4HHI2UR.js → guest-init-O7INUZWE.js} +4 -4
- package/dist/{hook-fast-UJPAWDAO.js → hook-fast-A2N3PSXI.js} +1 -1
- package/dist/{host-key-NGRCMJZ7.js → host-key-HJ66C6MD.js} +3 -3
- package/dist/{image-tag-TEOKZVD5.js → image-tag-LLXOFXKP.js} +3 -3
- package/dist/index.js +4 -4
- package/dist/{init-Q6JV7IGF.js → init-NO5PJEPZ.js} +29 -29
- package/dist/{init-HENNITCI.js → init-VY6J7MAY.js} +29 -29
- package/dist/{init-cmd-GJR37XGU.js → init-cmd-FW67JGI7.js} +22 -22
- package/dist/{init-update-MZ4IRFC7.js → init-update-RN2PZ3MT.js} +21 -21
- package/dist/{install-NPTR35MG.js → install-GZ27NW6U.js} +4 -4
- package/dist/{install-cmd-4PXPAFQX.js → install-cmd-26OY23ZZ.js} +5 -5
- package/dist/{layout-BBTQPS6V.js → layout-3ISIED6A.js} +4 -4
- package/dist/{login-browser-WSOSQH2T.js → login-browser-NTVVDJF7.js} +2 -2
- package/dist/{logs-Z4L4I3OR.js → logs-7O3ELY35.js} +2 -2
- package/dist/loop-SY636F7D.js +81 -0
- package/dist/{machine-HZGUBOUH.js → machine-IJ2QP3FO.js} +25 -25
- package/dist/{machine-skills-O7W6NMWB.js → machine-skills-I4DB2CP3.js} +4 -4
- package/dist/{mcp-serve-cmd-NQM2WDYI.js → mcp-serve-cmd-AT7G6J5V.js} +4 -4
- package/dist/{paths-2VSGK6E2.js → paths-32THAYBB.js} +2 -2
- package/dist/{pending-SFZ2AYSK.js → pending-6CMYQHFL.js} +3 -3
- package/dist/{pidfile-3FT5OLUE.js → pidfile-3BH6WPOA.js} +3 -3
- package/dist/{record-7SSRLSI2.js → record-WHPJCC6Y.js} +3 -3
- package/dist/{runner-env-2Z2DVSUJ.js → runner-env-6Q45P3IE.js} +5 -5
- package/dist/{runner-identity-B37HHOZR.js → runner-identity-KH7HADNF.js} +6 -6
- package/dist/{runner-key-UP5YBUHR.js → runner-key-L6B5CNDG.js} +29 -29
- package/dist/{session-sender-7MSVJZ6Q.js → session-sender-N4DOGRTN.js} +17 -17
- package/dist/{spec-cmd-KAQ7MX4O.js → spec-cmd-7KOT4IQO.js} +14 -14
- package/dist/{starter-pack-5SOT5V4I.js → starter-pack-2WFNRGFA.js} +5 -5
- package/dist/{status-2ICTDC2R.js → status-LOQ2RHWX.js} +33 -32
- package/dist/{sync-cmd-7K3WVQKO.js → sync-cmd-E5VRZ5DK.js} +16 -16
- package/dist/{watch-NCYESLO2.js → watch-P6XAYDM2.js} +16 -16
- package/dist/{work-claim-cmd-IOUEHYIY.js → work-claim-cmd-7YQ5CJ3R.js} +17 -17
- package/dist/{work-cmd-FOI74X5B.js → work-cmd-RRHDQDOX.js} +14 -14
- package/dist/{work-comment-cmd-3C44H4CG.js → work-comment-cmd-XYAPMQYC.js} +14 -14
- package/dist/{work-logs-cmd-YGAWCX3X.js → work-logs-cmd-TTLUEWVX.js} +14 -14
- package/dist/{work-open-pr-cmd-HUG5HAVC.js → work-open-pr-cmd-A63YGIBW.js} +15 -15
- package/dist/{work-pr-cmd-L2EDOYXH.js → work-pr-cmd-HOS5ZHJI.js} +14 -14
- package/dist/{work-stop-cmd-GGDVKC67.js → work-stop-cmd-7KIKIZPO.js} +14 -14
- package/package.json +3 -3
- package/skill-pack/maintained/outerlayer-amend/SKILL.md +40 -39
- package/skill-pack/maintained/outerlayer-build/SKILL.md +9 -10
- package/skill-pack/maintained/outerlayer-build/references/criteria-judge.md +15 -12
- package/skill-pack/maintained/outerlayer-build/references/release.md +11 -6
- package/skill-pack/maintained/outerlayer-findings/SKILL.md +14 -10
- package/skill-pack/shipped.json +2 -0
- package/skill-pack/template/build/SKILL.md +3 -1
- package/skill-pack/validators/acceptance-criteria.yaml +7 -2
- package/dist/loop-DO46LFUH.js +0 -80
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# @outerlayer/cli
|
|
2
2
|
|
|
3
|
+
## 0.30.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 964f486: `outerlayer findings show` lists the problems a fix item covers. `outerlayer findings result` records whether the fix resolved a problem, with a note.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- 7d80fe5: The line `init` and `connect` print to commit the policy says checks wait for it on the branch a pull request targets, not on the default branch. That is the branch OuterLayer reads the policy from.
|
|
12
|
+
- 1eba9b9: `outerlayer runner container-start` refuses to start when `ANTHROPIC_AUTH_TOKEN` is its only Claude credential, and says so. The runner never used that variable, so a runner image given only it started and then claimed no work. Set `CLAUDE_CODE_OAUTH_TOKEN` or `ANTHROPIC_API_KEY` instead.
|
|
13
|
+
- aea4cbd: Update the bundled `structured-headers` library from 2.1.0 to 2.1.1. The runner uses it to sign its requests to the gateway; signed requests are unchanged.
|
|
14
|
+
|
|
15
|
+
## 0.29.0
|
|
16
|
+
|
|
17
|
+
### Minor Changes
|
|
18
|
+
|
|
19
|
+
- 8ed2acc: The host's criteria judge records one check item per criterion, with its result and reason, and judges again only the criteria whose tests changed. `outerlayer emit <name> --items <file>` sends check items from CI, a host command writes them to the file `OUTERLAYER_CHECK_ITEMS` names, and `outerlayer work status` lists the failing ones. A judge check can set `subjects: none` to judge the change with no criteria.
|
|
20
|
+
|
|
21
|
+
### Patch Changes
|
|
22
|
+
|
|
23
|
+
- 3a2c7ea: A command in a microVM build that finishes at once no longer fails now and then with `write EPIPE` from the exec agent. The runner sends a command's request and its known input to the guest in one write.
|
|
24
|
+
- c6533fc: A runner reads past the first page of startable work, so a runner limited to some repositories finds their work however long the queue is. It takes work in the order the gateway lists it, which is now the order each build was asked for.
|
|
25
|
+
- 86d956d: The tracker adapters name an issue's labels `labels` instead of `tags`. The label names they read from GitHub, Linear and Jira are unchanged.
|
|
26
|
+
|
|
3
27
|
## 0.28.4
|
|
4
28
|
|
|
5
29
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -196,7 +196,7 @@ content:
|
|
|
196
196
|
- **`outerlayer work`** and **`outerlayer emit`**, in the subcommands named below, with a login and no saved
|
|
197
197
|
connection for the repository send the same `GET /v1/me/factories?repository=<host/owner/name>`
|
|
198
198
|
request before their own, to connect the repository when exactly one factory
|
|
199
|
-
fits. They send nothing extra with a factory key, `--app-id` or `OUTERLAYER_APP_ID`. The subcommands are `work build`, `list`, `status`, `remove` and `pr`, and `emit artifact`, `criteria`, `finding`, `findings` and `emit <name
|
|
199
|
+
fits. They send nothing extra with a factory key, `--app-id` or `OUTERLAYER_APP_ID`. The subcommands are `work build`, `list`, `status`, `remove` and `pr`, and `emit artifact`, `criteria`, `finding`, `findings` and `emit <name>`, and `findings show` and `findings result`. Other `work` subcommands never connect.
|
|
200
200
|
- **`outerlayer connect`**, and the first step of `outerlayer init`, send a
|
|
201
201
|
request with your login's token: `GET /v1/me/factories?repository=<host/owner/name>`,
|
|
202
202
|
naming this checkout's remote. The gateway answers with the factories you can
|
|
@@ -377,6 +377,12 @@ content:
|
|
|
377
377
|
and a one-line summary scrubbed of secrets) and to look up the time of the
|
|
378
378
|
events you name with `--started-at` and `--ended-at`. The transcript itself
|
|
379
379
|
is never sent; only the two event ids and their times are.
|
|
380
|
+
- **`outerlayer findings show`** and **`outerlayer findings result`**
|
|
381
|
+
read the problems a fix item covers (`GET /v1/work-items/{id}/problems`) and
|
|
382
|
+
record whether the fix resolved one (`PUT /v1/work-items/{id}/problems/{problemId}/result`).
|
|
383
|
+
The item is `--item`, or the item the recorded session was launched for.
|
|
384
|
+
`findings result` sends the problem id, `fixed` or `not_fixed`, your note and
|
|
385
|
+
the session id. Nothing from the session itself is sent.
|
|
380
386
|
- **`outerlayer emit criteria <file>`** sends the acceptance criteria of a work
|
|
381
387
|
item as one list (`POST /v1/criteria`): each criterion's id, text and
|
|
382
388
|
declared proof kind, from the JSON file you name. The anchoring is the same
|
|
@@ -458,6 +464,8 @@ before it gives up.
|
|
|
458
464
|
| `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. |
|
|
459
465
|
| `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. |
|
|
460
466
|
| `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. |
|
|
467
|
+
| `outerlayer findings show [--item <number>] [--json]` | List the problems a fix item covers, each with its id, title, reports and recorded result. A problem with no result shows "no result yet". `--item` names the work item; without it, inside a recorded session, the item that session was launched for is used. |
|
|
468
|
+
| `outerlayer findings result <problem> --fixed\|--not-fixed --note <text> [--item <number>]` | Record whether the fix resolved one covered problem. Give exactly one of `--fixed` and `--not-fixed`, and a `--note`. Running it again for the same problem replaces the earlier result. A problem the item does not cover is refused and nothing is stored. |
|
|
461
469
|
| `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. |
|
|
462
470
|
| `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. |
|
|
463
471
|
| `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,30 +1,30 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { keepHandWritten, runAgentSetup } from './chunk-
|
|
4
|
-
import './chunk-
|
|
3
|
+
export { keepHandWritten, runAgentSetup } from './chunk-I3WLYIIW.js';
|
|
4
|
+
import './chunk-XB7TRWI2.js';
|
|
5
5
|
import './chunk-KT4CN6OU.js';
|
|
6
|
-
import './chunk-
|
|
7
|
-
import './chunk-
|
|
6
|
+
import './chunk-XTKH5VAC.js';
|
|
7
|
+
import './chunk-QDDPVBIS.js';
|
|
8
8
|
import './chunk-ANPNT6PM.js';
|
|
9
|
-
import './chunk-
|
|
10
|
-
import './chunk-
|
|
11
|
-
import './chunk-
|
|
9
|
+
import './chunk-DLY22KHX.js';
|
|
10
|
+
import './chunk-V6IYYQU3.js';
|
|
11
|
+
import './chunk-AM3GMWQK.js';
|
|
12
12
|
import './chunk-PJDQPF5N.js';
|
|
13
|
-
import './chunk-
|
|
14
|
-
import './chunk-
|
|
15
|
-
import './chunk-
|
|
13
|
+
import './chunk-IRF2FKB5.js';
|
|
14
|
+
import './chunk-SOWXLIDN.js';
|
|
15
|
+
import './chunk-WHCDULC4.js';
|
|
16
16
|
import './chunk-ZJSNLVCE.js';
|
|
17
17
|
import './chunk-BJ3KTMDH.js';
|
|
18
|
-
import './chunk-
|
|
18
|
+
import './chunk-AKKVPUGK.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-
|
|
23
|
+
import './chunk-HJUGOAM7.js';
|
|
24
24
|
import './chunk-YQR6E6OV.js';
|
|
25
25
|
import './chunk-TUSYOL2O.js';
|
|
26
|
-
import './chunk-
|
|
27
|
-
import './chunk-
|
|
26
|
+
import './chunk-ZUOPFE22.js';
|
|
27
|
+
import './chunk-IWFYKNAO.js';
|
|
28
28
|
import './chunk-VNVZDWO3.js';
|
|
29
29
|
import './chunk-XD4ZCMA4.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-
|
|
3
|
+
import { sanitizeTerminal, readEffectiveArtifactSpoolState } from './chunk-HSUUTD4E.js';
|
|
4
4
|
import { cliInvocation } from './chunk-CRB3POP4.js';
|
|
5
|
-
import './chunk-
|
|
5
|
+
import './chunk-IWFYKNAO.js';
|
|
6
6
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
7
7
|
import './chunk-Z5GEFMRW.js';
|
|
8
8
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { BRIDGE_ADDRESS, BRIDGE_CIDR, CONTAINER_NO_PROXY, CONTAINER_PROXY, TUNNEL_PORT, dockerClientConfig, startBridgeForward, writeDockerClientConfig } from './chunk-
|
|
4
|
-
import './chunk-
|
|
3
|
+
export { BRIDGE_ADDRESS, BRIDGE_CIDR, CONTAINER_NO_PROXY, CONTAINER_PROXY, TUNNEL_PORT, dockerClientConfig, startBridgeForward, writeDockerClientConfig } from './chunk-TN2XMMD7.js';
|
|
4
|
+
import './chunk-WHCDULC4.js';
|
|
5
5
|
import './chunk-XD4ZCMA4.js';
|
|
6
6
|
import './chunk-MESOOLF4.js';
|
|
7
7
|
import './chunk-Z5GEFMRW.js';
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { buildRepositoryImage } from './chunk-
|
|
4
|
-
import './chunk-
|
|
3
|
+
export { buildRepositoryImage } from './chunk-U5DC57AF.js';
|
|
4
|
+
import './chunk-IRTZYDZO.js';
|
|
5
5
|
import './chunk-JBJTC3UU.js';
|
|
6
6
|
export { RecipeError } from './chunk-SJZL5F3F.js';
|
|
7
|
-
import './chunk-
|
|
8
|
-
import './chunk-
|
|
7
|
+
import './chunk-SOWXLIDN.js';
|
|
8
|
+
import './chunk-WHCDULC4.js';
|
|
9
9
|
import './chunk-XD4ZCMA4.js';
|
|
10
10
|
import './chunk-MESOOLF4.js';
|
|
11
11
|
import './chunk-Z5GEFMRW.js';
|
package/dist/build-info.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"id":"2026-10-
|
|
1
|
+
{"id":"2026-10-19T18:27:12.345Z+c19f734","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-
|
|
3
|
+
export { MIN_BUILDX_VERSION, builderName, builderSpec, buildxState, ensureBuilder, ensureFailureCount, isOutOfMemory, proxyEnvironment, trackImageBuild } from './chunk-7YSR636F.js';
|
|
4
4
|
import './chunk-YJLHUKYS.js';
|
|
5
5
|
import './chunk-SJZL5F3F.js';
|
|
6
|
-
import './chunk-
|
|
7
|
-
import './chunk-
|
|
8
|
-
import './chunk-
|
|
9
|
-
import './chunk-
|
|
10
|
-
import './chunk-
|
|
6
|
+
import './chunk-FTGJ3DPV.js';
|
|
7
|
+
import './chunk-IRF2FKB5.js';
|
|
8
|
+
import './chunk-SOWXLIDN.js';
|
|
9
|
+
import './chunk-WHCDULC4.js';
|
|
10
|
+
import './chunk-IWFYKNAO.js';
|
|
11
11
|
import './chunk-XD4ZCMA4.js';
|
|
12
12
|
import './chunk-MESOOLF4.js';
|
|
13
13
|
import './chunk-Z5GEFMRW.js';
|
|
@@ -1,66 +1,67 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { probeCredentials } from './chunk-
|
|
4
|
-
import './chunk-
|
|
3
|
+
import { probeCredentials } from './chunk-DBENBGVF.js';
|
|
4
|
+
import './chunk-ISKWFUEQ.js';
|
|
5
5
|
import './chunk-3JVYMD4G.js';
|
|
6
6
|
import './chunk-E7R2GIAW.js';
|
|
7
7
|
import './chunk-TPKYTORP.js';
|
|
8
|
-
import './chunk-
|
|
8
|
+
import './chunk-QWJBTFAF.js';
|
|
9
9
|
import './chunk-ZVB57WI6.js';
|
|
10
|
-
import './chunk-
|
|
11
|
-
import './chunk-
|
|
12
|
-
import './chunk-
|
|
13
|
-
import './chunk-
|
|
14
|
-
import './chunk-
|
|
10
|
+
import './chunk-44CGGHJF.js';
|
|
11
|
+
import './chunk-6CNNRO53.js';
|
|
12
|
+
import './chunk-I3LTIAOR.js';
|
|
13
|
+
import './chunk-ZNMVBHGJ.js';
|
|
14
|
+
import './chunk-DBELICD6.js';
|
|
15
|
+
import './chunk-PS3AHE6C.js';
|
|
15
16
|
import './chunk-ESVW4MJY.js';
|
|
16
|
-
import './chunk-
|
|
17
|
-
import { placeholderQueues, placeholderProblem, permissionModeProblems, permissionModeProblem, needsClaudeCredential, claudeCredentialCheck, claimPermissionProblem, formerSkillQueues, formerSkillProblem } from './chunk-
|
|
17
|
+
import './chunk-TN2XMMD7.js';
|
|
18
|
+
import { placeholderQueues, placeholderProblem, permissionModeProblems, permissionModeProblem, needsClaudeCredential, claudeCredentialCheck, claimPermissionProblem, formerSkillQueues, formerSkillProblem } from './chunk-JGOMMFNX.js';
|
|
18
19
|
import './chunk-YYYRBYWG.js';
|
|
19
|
-
import './chunk-
|
|
20
|
+
import './chunk-LJIFCG4G.js';
|
|
20
21
|
import './chunk-TBT347UY.js';
|
|
21
|
-
import './chunk-
|
|
22
|
-
import './chunk-
|
|
23
|
-
import './chunk-
|
|
24
|
-
import './chunk-
|
|
25
|
-
import './chunk-
|
|
26
|
-
import './chunk-
|
|
27
|
-
import './chunk-
|
|
22
|
+
import './chunk-B6OYEP3K.js';
|
|
23
|
+
import './chunk-XRRSFHKV.js';
|
|
24
|
+
import './chunk-QQJGL7LG.js';
|
|
25
|
+
import './chunk-MBVSVQVH.js';
|
|
26
|
+
import './chunk-TKJISBV6.js';
|
|
27
|
+
import './chunk-3IDNLZPR.js';
|
|
28
|
+
import './chunk-D3LS7E7U.js';
|
|
28
29
|
import './chunk-TQMI335S.js';
|
|
29
|
-
import './chunk-
|
|
30
|
-
import './chunk-
|
|
31
|
-
import { loadRunnerConfig, RunnerConfigError, checkHooks } from './chunk-
|
|
30
|
+
import './chunk-5HZDPOJI.js';
|
|
31
|
+
import './chunk-3F7RC3UA.js';
|
|
32
|
+
import { loadRunnerConfig, RunnerConfigError, checkHooks } from './chunk-2ZMJFGOZ.js';
|
|
32
33
|
import './chunk-UXYLWVTQ.js';
|
|
33
|
-
import './chunk-
|
|
34
|
-
import './chunk-
|
|
34
|
+
import './chunk-U5DC57AF.js';
|
|
35
|
+
import './chunk-IRTZYDZO.js';
|
|
35
36
|
import './chunk-JBJTC3UU.js';
|
|
36
37
|
import './chunk-OGFGZQA3.js';
|
|
37
|
-
import './chunk-
|
|
38
|
+
import './chunk-7YSR636F.js';
|
|
38
39
|
import './chunk-YJLHUKYS.js';
|
|
39
40
|
import './chunk-SJZL5F3F.js';
|
|
40
|
-
import './chunk-
|
|
41
|
-
import './chunk-
|
|
42
|
-
import './chunk-
|
|
43
|
-
import './chunk-
|
|
44
|
-
import './chunk-
|
|
45
|
-
import './chunk-
|
|
46
|
-
import './chunk-
|
|
41
|
+
import './chunk-DBRB26R7.js';
|
|
42
|
+
import './chunk-SJ4DX2AD.js';
|
|
43
|
+
import './chunk-3YLHIXLR.js';
|
|
44
|
+
import './chunk-HSUUTD4E.js';
|
|
45
|
+
import './chunk-FTGJ3DPV.js';
|
|
46
|
+
import './chunk-QDDPVBIS.js';
|
|
47
|
+
import './chunk-G2RRBBOX.js';
|
|
47
48
|
import './chunk-G2JWZDFA.js';
|
|
48
49
|
import './chunk-ANPNT6PM.js';
|
|
49
|
-
import './chunk-
|
|
50
|
-
import './chunk-
|
|
51
|
-
import './chunk-
|
|
50
|
+
import './chunk-DLY22KHX.js';
|
|
51
|
+
import './chunk-V6IYYQU3.js';
|
|
52
|
+
import './chunk-AM3GMWQK.js';
|
|
52
53
|
import './chunk-PJDQPF5N.js';
|
|
53
|
-
import './chunk-
|
|
54
|
-
import './chunk-
|
|
55
|
-
import { claudeEnvPath } from './chunk-
|
|
56
|
-
import './chunk-
|
|
54
|
+
import './chunk-IRF2FKB5.js';
|
|
55
|
+
import './chunk-SOWXLIDN.js';
|
|
56
|
+
import { claudeEnvPath } from './chunk-WHCDULC4.js';
|
|
57
|
+
import './chunk-RJDJFRRY.js';
|
|
57
58
|
import './chunk-ZJSNLVCE.js';
|
|
58
59
|
import './chunk-2O5KA67H.js';
|
|
59
60
|
import './chunk-BKO6JEZI.js';
|
|
60
61
|
import './chunk-FGF52V4V.js';
|
|
61
62
|
import './chunk-HCVLP7XA.js';
|
|
62
63
|
import './chunk-BJ3KTMDH.js';
|
|
63
|
-
import './chunk-
|
|
64
|
+
import './chunk-AKKVPUGK.js';
|
|
64
65
|
import './chunk-5BHIBJDA.js';
|
|
65
66
|
import './chunk-CDDED64E.js';
|
|
66
67
|
import './chunk-RA3O54FC.js';
|
|
@@ -70,8 +71,8 @@ import './chunk-CRB3POP4.js';
|
|
|
70
71
|
import './chunk-URIZRCRY.js';
|
|
71
72
|
import './chunk-YQR6E6OV.js';
|
|
72
73
|
import './chunk-TUSYOL2O.js';
|
|
73
|
-
import './chunk-
|
|
74
|
-
import './chunk-
|
|
74
|
+
import './chunk-ZUOPFE22.js';
|
|
75
|
+
import './chunk-IWFYKNAO.js';
|
|
75
76
|
import './chunk-VNVZDWO3.js';
|
|
76
77
|
import { parseRunnerEnv } from './chunk-XD4ZCMA4.js';
|
|
77
78
|
import './chunk-MESOOLF4.js';
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { MAX_ALLOW_HOSTS, allowHostProblem } from './chunk-UXYLWVTQ.js';
|
|
4
4
|
import { parseSize } from './chunk-YJLHUKYS.js';
|
|
5
|
-
import { isRefusedInConfig, resolveDestinations, isReservedVariable } from './chunk-
|
|
5
|
+
import { isRefusedInConfig, resolveDestinations, isReservedVariable } from './chunk-WHCDULC4.js';
|
|
6
6
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
7
7
|
import { existsSync, statSync, accessSync, constants, readFileSync } from 'fs';
|
|
8
8
|
import { hostname } from 'os';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { builtinKind } from './chunk-
|
|
3
|
+
import { builtinKind } from './chunk-2ZMJFGOZ.js';
|
|
4
4
|
import { parseSize } from './chunk-YJLHUKYS.js';
|
|
5
|
-
import { runnerDir } from './chunk-
|
|
6
|
-
import { CLAUDE_CREDENTIAL_ID, CLAUDE_ENV_FILE, credentialLineIn, withoutCredentialLines } from './chunk-
|
|
5
|
+
import { runnerDir } from './chunk-SOWXLIDN.js';
|
|
6
|
+
import { CLAUDE_CREDENTIAL_ID, CLAUDE_ENV_FILE, credentialLineIn, withoutCredentialLines } from './chunk-WHCDULC4.js';
|
|
7
7
|
import { FD_SLOTS_PER_BUILD, FD_STORE_ENV } from './chunk-XD4ZCMA4.js';
|
|
8
8
|
import { existsSync, readFileSync, writeFileSync, chmodSync, renameSync } from 'fs';
|
|
9
9
|
import { dirname, join } from 'path';
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { WorkCommandError, postJson } from './chunk-
|
|
4
|
-
import { defaultGitRunner, materializeContext, isStagingWriteFault, lookupGoverningSource } from './chunk-
|
|
5
|
-
import { signingFetchFor } from './chunk-
|
|
6
|
-
import { signerFor } from './chunk-
|
|
7
|
-
import { SHIM_DIR, stagedContextDir, contextHomeDir, deliveryDir, keptContextDir } from './chunk-
|
|
3
|
+
import { WorkCommandError, postJson } from './chunk-DBRB26R7.js';
|
|
4
|
+
import { defaultGitRunner, materializeContext, isStagingWriteFault, lookupGoverningSource } from './chunk-DLY22KHX.js';
|
|
5
|
+
import { signingFetchFor } from './chunk-AM3GMWQK.js';
|
|
6
|
+
import { signerFor } from './chunk-IRF2FKB5.js';
|
|
7
|
+
import { SHIM_DIR, stagedContextDir, contextHomeDir, deliveryDir, keptContextDir } from './chunk-SOWXLIDN.js';
|
|
8
8
|
import { unsupportedLayout, layoutRefusalReason, composeDelivery } from './chunk-FGF52V4V.js';
|
|
9
9
|
import { SHIM_SCRIPT, GOVERNANCE_VARIABLE } from './chunk-HCVLP7XA.js';
|
|
10
10
|
import { readDegraded, readContextManifest, readSourceCache } from './chunk-YQR6E6OV.js';
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { sanitizeTerminal } from './chunk-
|
|
4
|
-
import { remoteLookupFailed } from './chunk-
|
|
5
|
-
import { isAgentsMdLayout } from './chunk-
|
|
6
|
-
import { DEFAULT_DASHBOARD } from './chunk-
|
|
7
|
-
import { cliFetch, resolveGatewayCredentials } from './chunk-
|
|
3
|
+
import { sanitizeTerminal } from './chunk-HSUUTD4E.js';
|
|
4
|
+
import { remoteLookupFailed } from './chunk-FTGJ3DPV.js';
|
|
5
|
+
import { isAgentsMdLayout } from './chunk-QDDPVBIS.js';
|
|
6
|
+
import { DEFAULT_DASHBOARD } from './chunk-G2RRBBOX.js';
|
|
7
|
+
import { cliFetch, resolveGatewayCredentials } from './chunk-AM3GMWQK.js';
|
|
8
8
|
import { readCloudConfig } from './chunk-PJDQPF5N.js';
|
|
9
9
|
import { writeRepoConnection, findGitDirs, readRepoConnection } from './chunk-BJ3KTMDH.js';
|
|
10
10
|
import { cliInvocation } from './chunk-CRB3POP4.js';
|
|
@@ -61,8 +61,8 @@ Then run \`${cliInvocation()} connect\` again.
|
|
|
61
61
|
|
|
62
62
|
// src/connect-cmd.ts
|
|
63
63
|
var REQUEST_TIMEOUT_MS = 15e3;
|
|
64
|
-
var COMMIT_LINE = "Commit and push .outerlayer/ so the factory reads your policy and skills. No checks run on
|
|
65
|
-
var AGENTS_LAYOUT_COMMIT_LINE = "Commit and push .outerlayer/, AGENTS.md, .agents/, .mcp.json and .claude/skills so the factory reads your policy and skills. No checks run on
|
|
64
|
+
var COMMIT_LINE = "Commit and push .outerlayer/ so the factory reads your policy and skills. No checks run on a pull request until the policy is on the branch it targets.";
|
|
65
|
+
var AGENTS_LAYOUT_COMMIT_LINE = "Commit and push .outerlayer/, AGENTS.md, .agents/, .mcp.json and .claude/skills so the factory reads your policy and skills. No checks run on a pull request until the policy is on the branch it targets.";
|
|
66
66
|
var COMMIT_PATHS = [":/.outerlayer"];
|
|
67
67
|
var AGENTS_LAYOUT_COMMIT_PATHS = [":/.outerlayer", ":/AGENTS.md", ":/.agents", ":/.mcp.json", ":/.claude/skills"];
|
|
68
68
|
function inAgentsMdLayout(cwd) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-
|
|
3
|
+
import { RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-SOWXLIDN.js';
|
|
4
4
|
import { readFileSync, mkdirSync, writeFileSync, renameSync } from 'fs';
|
|
5
5
|
import { join } from 'path';
|
|
6
6
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { DEFAULT_UNIT_NAME } from './chunk-
|
|
4
|
-
import { RUNNER_FILE_MODE } from './chunk-
|
|
5
|
-
import { claudeEnvPath, withoutCredentialLines } from './chunk-
|
|
3
|
+
import { DEFAULT_UNIT_NAME } from './chunk-3F7RC3UA.js';
|
|
4
|
+
import { RUNNER_FILE_MODE } from './chunk-SOWXLIDN.js';
|
|
5
|
+
import { claudeEnvPath, withoutCredentialLines } from './chunk-WHCDULC4.js';
|
|
6
6
|
import { parseRunnerEnv } from './chunk-XD4ZCMA4.js';
|
|
7
7
|
import { existsSync, readFileSync, writeFileSync, renameSync, rmSync } from 'fs';
|
|
8
8
|
import { join, dirname } from 'path';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { BRIDGE_ADDRESS, TUNNEL_PORT, BRIDGE_CIDR } from './chunk-
|
|
4
|
-
import { EXEC_PORT } from './chunk-
|
|
3
|
+
import { BRIDGE_ADDRESS, TUNNEL_PORT, BRIDGE_CIDR } from './chunk-TN2XMMD7.js';
|
|
4
|
+
import { EXEC_PORT } from './chunk-TKJISBV6.js';
|
|
5
5
|
import { startTimeOf } from './chunk-JBJTC3UU.js';
|
|
6
|
-
import { RELAY_PORT } from './chunk-
|
|
6
|
+
import { RELAY_PORT } from './chunk-WHCDULC4.js';
|
|
7
7
|
import { spawn, spawnSync } from 'child_process';
|
|
8
8
|
import { symlinkSync, lstatSync, writeFileSync, chmodSync, mkdirSync } from 'fs';
|
|
9
9
|
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { parseSize } from './chunk-YJLHUKYS.js';
|
|
4
4
|
import { RecipeError, BUILDKIT_IMAGE } from './chunk-SJZL5F3F.js';
|
|
5
|
-
import { compareVersions } from './chunk-
|
|
6
|
-
import { ensureHostKey } from './chunk-
|
|
7
|
-
import { RUNNER_DIR_MODE, RUNNER_FILE_MODE, runnerDir, jobsDir } from './chunk-
|
|
8
|
-
import { CLAUDE_PORT, JOB_MOUNT, GATEWAY_PORT, GATEWAY_SOCKET, CLAUDE_SOCKET, RELAY_PORT, DESTINATION_BASE_PORT } from './chunk-
|
|
5
|
+
import { compareVersions } from './chunk-FTGJ3DPV.js';
|
|
6
|
+
import { ensureHostKey } from './chunk-IRF2FKB5.js';
|
|
7
|
+
import { RUNNER_DIR_MODE, RUNNER_FILE_MODE, runnerDir, jobsDir } from './chunk-SOWXLIDN.js';
|
|
8
|
+
import { CLAUDE_PORT, JOB_MOUNT, GATEWAY_PORT, GATEWAY_SOCKET, CLAUDE_SOCKET, RELAY_PORT, DESTINATION_BASE_PORT } from './chunk-WHCDULC4.js';
|
|
9
9
|
import { JOIN_DIR, RELAY_ID, JOIN_SOCKET, TARGET_GATEWAY, TARGET_CLAUDE, destinationTarget, RELAY_USER } from './chunk-MESOOLF4.js';
|
|
10
10
|
import { StringDecoder } from 'string_decoder';
|
|
11
11
|
import { spawn } from 'child_process';
|
|
@@ -155,8 +155,10 @@ var JUDGE_DIR = "/outerlayer/judge";
|
|
|
155
155
|
var JUDGE_HOME = `${JUDGE_DIR}/home`;
|
|
156
156
|
var JUDGE_TREE = `${JUDGE_DIR}/tree`;
|
|
157
157
|
var JUDGE_REPORT = `${JUDGE_DIR}/report.html`;
|
|
158
|
+
var JUDGE_ITEMS = `${JUDGE_DIR}/items.json`;
|
|
158
159
|
var JUDGE_PROGRAM = "/opt/outerlayer/claude/bin/claude";
|
|
159
160
|
var MAX_REPORT_BYTES = 5 * 1024 * 1024;
|
|
161
|
+
var MAX_ITEMS_BYTES = 1024 * 1024;
|
|
160
162
|
var JUDGE_MAX_TURNS = 60;
|
|
161
163
|
var JUDGE_PATH = "/opt/outerlayer/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin";
|
|
162
164
|
var JUDGE_TOOLS = "Read,Grep,Glob,Write";
|
|
@@ -184,7 +186,7 @@ function judgeCommand(input) {
|
|
|
184
186
|
JUDGE_TOOLS,
|
|
185
187
|
"--allowedTools",
|
|
186
188
|
// A path that starts with two slashes is absolute in a permission rule.
|
|
187
|
-
`Read(/${JUDGE_DIR}/**),Edit(/${JUDGE_REPORT})`,
|
|
189
|
+
`Read(/${JUDGE_DIR}/**),Edit(/${JUDGE_REPORT}),Edit(/${JUDGE_ITEMS})`,
|
|
188
190
|
"--add-dir",
|
|
189
191
|
JUDGE_TREE,
|
|
190
192
|
"--permission-mode",
|
|
@@ -197,6 +199,20 @@ function judgeCommand(input) {
|
|
|
197
199
|
];
|
|
198
200
|
return { argv, env, cwd: JUDGE_DIR };
|
|
199
201
|
}
|
|
202
|
+
function withAnswerProtocol(brief, subjects) {
|
|
203
|
+
const inputs = subjects === "criteria" ? `\`${JUDGE_DIR}/criteria.json\` lists the criteria to judge, \`${JUDGE_DIR}/citations.json\` the tests that cite each one, \`${JUDGE_DIR}/diff.patch\` the change and \`${JUDGE_TREE}/\` the files of the pushed commit.` : `\`${JUDGE_DIR}/diff.patch\` holds the change and \`${JUDGE_TREE}/\` the files of the pushed commit.`;
|
|
204
|
+
const items = subjects === "criteria" ? `one entry per criterion in criteria.json, with its id: \`{"items":[{"id":"<criterion id>","result":"pass"|"fail","reason":"<one to three sentences>"}]}\`. A criterion you do not list fails.` : `your overall result and, when you judged separate parts, one entry per part with an id you choose (a file path or a short name): \`{"result":"pass"|"fail","items":[{"id":"<part>","result":"pass"|"fail","reason":"<one to three sentences>"}]}\`. A failing part fails the whole.`;
|
|
205
|
+
return `${brief.trimEnd()}
|
|
206
|
+
|
|
207
|
+
## How to answer
|
|
208
|
+
|
|
209
|
+
This section comes from the factory host and overrides any other answer format above. ${inputs}
|
|
210
|
+
|
|
211
|
+
Write your answer as JSON to \`${JUDGE_ITEMS}\`: ${items} A reason quotes the decisive assertion or names what is missing.
|
|
212
|
+
|
|
213
|
+
Then end your reply with one line \`unmet: <id>\` for each failing ${subjects === "criteria" ? "criterion" : "part"}, and a final line that is exactly \`result: pass\` or \`result: fail\`.
|
|
214
|
+
`;
|
|
215
|
+
}
|
|
200
216
|
var HASH_SCRIPT = 'const fs=require("fs"),c=require("crypto");const p=fs.realpathSync(process.argv[1]);process.stdout.write(c.createHash("sha256").update(fs.readFileSync(p)).digest("hex")+" "+p+"\\n")';
|
|
201
217
|
var HASH_ARGV = ["/opt/outerlayer/bin/node", "-e", HASH_SCRIPT, JUDGE_PROGRAM];
|
|
202
218
|
function parseProgramHash(stdout) {
|
|
@@ -715,4 +731,4 @@ ${result.stderr}`)) throw outOfMemory(builder, req.logPath);
|
|
|
715
731
|
};
|
|
716
732
|
}
|
|
717
733
|
|
|
718
|
-
export { BUILD_LABEL, COMMAND_DIR, HASH_ARGV, JUDGE_DIR, JUDGE_MAX_TURNS, JUDGE_PROGRAM, JUDGE_REPORT, MAX_REPORT_BYTES, MIN_BUILDX_VERSION, RUNNER_LABEL, builderName, builderNameFor, builderSpec, buildxState, childEnvironment, containerExecArgs, containerRunArgs, createDockerHost, dockerIdentity, ensureBuilder, ensureFailureCount, ensureRunnerIdentity, isOutOfMemory, judgeCommand, parseProgramHash, pathLabelValue, prepareRunArgs, proxyEnvironment, readJobFile, readJobFileChecked, readRunnerIdentity, resolveDevcontainerCli, runnerLabelValue, spawnRun, trackImageBuild, writeJobFile };
|
|
734
|
+
export { BUILD_LABEL, COMMAND_DIR, HASH_ARGV, JUDGE_DIR, JUDGE_ITEMS, JUDGE_MAX_TURNS, JUDGE_PROGRAM, JUDGE_REPORT, MAX_ITEMS_BYTES, MAX_REPORT_BYTES, MIN_BUILDX_VERSION, RUNNER_LABEL, builderName, builderNameFor, builderSpec, buildxState, childEnvironment, containerExecArgs, containerRunArgs, createDockerHost, dockerIdentity, ensureBuilder, ensureFailureCount, ensureRunnerIdentity, isOutOfMemory, judgeCommand, parseProgramHash, pathLabelValue, prepareRunArgs, proxyEnvironment, readJobFile, readJobFileChecked, readRunnerIdentity, resolveDevcontainerCli, runnerLabelValue, spawnRun, trackImageBuild, withAnswerProtocol, writeJobFile };
|
|
@@ -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-
|
|
5
|
+
import { splitRawFile } from './chunk-ZUOPFE22.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,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { readCloudConfigStrict, readCloudConfig, cloudConfigPath } from './chunk-PJDQPF5N.js';
|
|
4
|
-
import { signRunnerRequest, signerFor } from './chunk-
|
|
4
|
+
import { signRunnerRequest, signerFor } from './chunk-IRF2FKB5.js';
|
|
5
5
|
import { readRepoConnection, findGitDirs } from './chunk-BJ3KTMDH.js';
|
|
6
6
|
import { PLAIN_VERSION, recordCliVersion, removeRecordedVersion } from './chunk-5BHIBJDA.js';
|
|
7
7
|
import { resolvePackageVersion } from './chunk-RA3O54FC.js';
|
|
@@ -1,34 +1,16 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { launchRefusalForSession } from './chunk-ESVW4MJY.js';
|
|
4
|
-
import { detectActiveSession, autoConnect, transcriptPathForSession } from './chunk-
|
|
5
|
-
import './chunk-
|
|
6
|
-
import './chunk-BUP5N3X6.js';
|
|
7
|
-
import { resolveRepoIdentity, defaultProjectsDir, findTranscripts, sessionIdFromPath, scrubText } from './chunk-UHU7H57K.js';
|
|
8
|
-
import './chunk-5B7BEQPR.js';
|
|
9
|
-
import './chunk-HOU33DW5.js';
|
|
10
|
-
import './chunk-G2JWZDFA.js';
|
|
4
|
+
import { detectActiveSession, autoConnect, transcriptPathForSession } from './chunk-SJ4DX2AD.js';
|
|
5
|
+
import { resolveRepoIdentity, defaultProjectsDir, findTranscripts, sessionIdFromPath, scrubText } from './chunk-FTGJ3DPV.js';
|
|
11
6
|
import { C } from './chunk-ANPNT6PM.js';
|
|
12
|
-
import { resolveGatewayCredentials, defaultFetch, unauthorizedMessage } from './chunk-
|
|
13
|
-
import './chunk-PJDQPF5N.js';
|
|
14
|
-
import './chunk-R7TMTFJP.js';
|
|
15
|
-
import './chunk-DWVAG73B.js';
|
|
16
|
-
import './chunk-N5EEEKT6.js';
|
|
7
|
+
import { resolveGatewayCredentials, defaultFetch, unauthorizedMessage } from './chunk-AM3GMWQK.js';
|
|
17
8
|
import { readLatestProvenanceForSession } from './chunk-ZJSNLVCE.js';
|
|
18
|
-
import './chunk-BJ3KTMDH.js';
|
|
19
|
-
import './chunk-JGML2VUN.js';
|
|
20
|
-
import './chunk-5BHIBJDA.js';
|
|
21
|
-
import './chunk-CDDED64E.js';
|
|
22
|
-
import './chunk-RA3O54FC.js';
|
|
23
9
|
import { launchedItemForSession } from './chunk-T2Q7ISPE.js';
|
|
24
10
|
import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
|
|
25
11
|
import { cliInvocation } from './chunk-CRB3POP4.js';
|
|
26
|
-
import './chunk-
|
|
27
|
-
import { FindingBatchSchema, FindingsResponseSchema, SAME_PROBLEM_RULES } from './chunk-QZBXLLTV.js';
|
|
12
|
+
import { FindingBatchSchema, FindingsResponseSchema, SAME_PROBLEM_RULES } from './chunk-IWFYKNAO.js';
|
|
28
13
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
29
|
-
import './chunk-XD4ZCMA4.js';
|
|
30
|
-
import './chunk-MESOOLF4.js';
|
|
31
|
-
import './chunk-Z5GEFMRW.js';
|
|
32
14
|
import { readFileSync, existsSync } from 'fs';
|
|
33
15
|
import { join, dirname, basename } from 'path';
|
|
34
16
|
|
|
@@ -580,4 +562,4 @@ async function runEmitFindings(opts) {
|
|
|
580
562
|
});
|
|
581
563
|
}
|
|
582
564
|
|
|
583
|
-
export { EmitFindingError, refuseRemovedFindingFlags, runEmitFinding, runEmitFindings };
|
|
565
|
+
export { EmitFindingError, detectUploadSessionId, refuseRemovedFindingFlags, resolveUploadTarget, runEmitFinding, runEmitFindings };
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { detectMachine, supportsContainerBuilds, reachDockerStep, describeMachineDocker, supportsMicroVmBuilds } from './chunk-
|
|
4
|
-
import { MIN_ENGINE_MAJOR } from './chunk-
|
|
5
|
-
import { hasStoredCredential, AGENT_COMMANDS, storeClaudeCredential, credentialFromStdin, isAgentName } from './chunk-
|
|
6
|
-
import { runnerCredentialProblem } from './chunk-
|
|
7
|
-
import { runnerDir, RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-
|
|
3
|
+
import { detectMachine, supportsContainerBuilds, reachDockerStep, describeMachineDocker, supportsMicroVmBuilds } from './chunk-XRRSFHKV.js';
|
|
4
|
+
import { MIN_ENGINE_MAJOR } from './chunk-QQJGL7LG.js';
|
|
5
|
+
import { hasStoredCredential, AGENT_COMMANDS, storeClaudeCredential, credentialFromStdin, isAgentName } from './chunk-5HZDPOJI.js';
|
|
6
|
+
import { runnerCredentialProblem } from './chunk-2ZMJFGOZ.js';
|
|
7
|
+
import { runnerDir, RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-SOWXLIDN.js';
|
|
8
8
|
import { existsSync, readFileSync, mkdirSync, writeFileSync } from 'fs';
|
|
9
9
|
import { dirname } from 'path';
|
|
10
10
|
|
|
@@ -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-
|
|
5
|
-
import { skillsBaseFor } from './chunk-
|
|
4
|
+
import { POLICY_CONTENT, VALIDATOR_FILES, VALIDATORS_DIR, POLICY_PATH } from './chunk-XTKH5VAC.js';
|
|
5
|
+
import { skillsBaseFor } from './chunk-QDDPVBIS.js';
|
|
6
6
|
import { findGitDirs } from './chunk-BJ3KTMDH.js';
|
|
7
|
-
import { resolvePackRoot, OUTERLAYER_SKILLS_BASE, skillDir, loadTemplateFiles, rewriteSkillPaths, restoreSkillPaths, TEMPLATE_SKILLS } from './chunk-
|
|
7
|
+
import { resolvePackRoot, OUTERLAYER_SKILLS_BASE, skillDir, loadTemplateFiles, rewriteSkillPaths, restoreSkillPaths, TEMPLATE_SKILLS } from './chunk-AKKVPUGK.js';
|
|
8
8
|
import { cliInvocation } from './chunk-CRB3POP4.js';
|
|
9
|
-
import { hasSymlinkComponent } from './chunk-
|
|
9
|
+
import { hasSymlinkComponent } from './chunk-HJUGOAM7.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
3
|
import { isVersion, compareVersions } from './chunk-TQMI335S.js';
|
|
4
|
-
import { RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-
|
|
4
|
+
import { RUNNER_DIR_MODE, RUNNER_FILE_MODE } from './chunk-SOWXLIDN.js';
|
|
5
5
|
import { readFileSync, mkdirSync, writeFileSync, renameSync } from 'fs';
|
|
6
6
|
import { join } from 'path';
|
|
7
7
|
|