@orkestrel/scaffold 0.0.53 → 0.0.54

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.
@@ -730,6 +730,12 @@ transport.
730
730
  **When a brief assigns a bench unit a path outside the obvious source tree, name the write limit
731
731
  in the brief.** If the sandbox rejects the patch, the unit stops and reports the rejection. Never
732
732
  find another write mechanism.
733
+ **A bench unit writes only under its own `--cd` root and the system temporary directory.** A
734
+ report path in the orchestrator's repository is outside both, so the write is rejected after the
735
+ work is already done and the unit improvises a fallback the Orchestrator has to go find. Name the
736
+ report path inside the unit's own tree, or tell the unit to return the report as its final
737
+ message and take it from the `--output-last-message` file. Retention still lands the report in
738
+ `.orkestrel/<package>/` — the Orchestrator copies it there, and the unit never writes it there.
733
739
  6. **Ephemeral streams, durable records.** A journal proves a bench is alive and recovers an
734
740
  interrupted session. Keep journals under `tmp/`, never commit them, and sweep them at acceptance
735
741
  after the final gate evidence is recorded. Durable retention — brief, distillate, verdict,
@@ -44,7 +44,7 @@ so network-controlled descriptions never enter agent instruction context.
44
44
  | `@orkestrel/abort` | `0.0.8` | L1 | `@orkestrel/contract` `^0.0.13` |
45
45
  | `@orkestrel/agent` | `0.0.18` | L5 | `@orkestrel/abort` `^0.0.7`, `@orkestrel/budget` `^0.0.7`, `@orkestrel/contract` `^0.0.13`, `@orkestrel/database` `^0.0.11`, `@orkestrel/emitter` `^0.0.7`, `@orkestrel/queue` `^0.0.10`, `@orkestrel/timeout` `^0.0.7`, `@orkestrel/tool` `^0.0.11`, `@orkestrel/workflow` `^0.0.14`, `@orkestrel/workspace` `^0.0.5` |
46
46
  | `@orkestrel/brief` | `0.0.6` | L4 | `@orkestrel/contract` `^0.0.13`, `@orkestrel/emitter` `^0.0.8`, `@orkestrel/interpret` `^0.0.11`, `@orkestrel/reason` `^0.0.8` |
47
- | `@orkestrel/browser` | `0.0.12` | L3 | `@orkestrel/contract` `^0.0.13`, `@orkestrel/emitter` `^0.0.7`, `@orkestrel/html` `^0.0.4`, `@orkestrel/websocket` `^0.0.9` |
47
+ | `@orkestrel/browser` | `0.0.13` | L3 | `@orkestrel/contract` `^0.0.13`, `@orkestrel/emitter` `^0.0.8`, `@orkestrel/html` `^0.0.6`, `@orkestrel/websocket` `^0.0.10` |
48
48
  | `@orkestrel/budget` | `0.0.8` | L1 | `@orkestrel/contract` `^0.0.13` |
49
49
  | `@orkestrel/console` | `0.0.10` | L2 | `@orkestrel/contract` `^0.0.13`, `@orkestrel/emitter` `^0.0.8` |
50
50
  | `@orkestrel/contract` | `0.0.13` | L0 | |
@@ -52,18 +52,19 @@ so network-controlled descriptions never enter agent instruction context.
52
52
  | `@orkestrel/database` | `0.0.12` | L2 | `@orkestrel/contract` `^0.0.13`, `@orkestrel/emitter` `^0.0.8`, `@orkestrel/indexeddb` `^0.0.9`, `@orkestrel/sqlite` `^0.0.9` |
53
53
  | `@orkestrel/emitter` | `0.0.8` | L1 | `@orkestrel/contract` `^0.0.13` |
54
54
  | `@orkestrel/form` | `0.0.3` | L2 | `@orkestrel/contract` `^0.0.13`, `@orkestrel/emitter` `^0.0.8` |
55
- | `@orkestrel/guide` | `0.0.13` | L3 | `@orkestrel/contract` `^0.0.13`, `@orkestrel/markdown` `^0.0.10` |
56
- | `@orkestrel/html` | `0.0.6` | L1 | `@orkestrel/contract` `^0.0.13` |
55
+ | `@orkestrel/guide` | `0.0.14` | L3 | `@orkestrel/contract` `^0.0.13`, `@orkestrel/markdown` `^0.0.11` |
56
+ | `@orkestrel/html` | `0.0.7` | L1 | `@orkestrel/contract` `^0.0.13` |
57
57
  | `@orkestrel/indexeddb` | `0.0.9` | L1 | `@orkestrel/contract` `^0.0.13` |
58
58
  | `@orkestrel/interpret` | `0.0.11` | L3 | `@orkestrel/reason` `^0.0.8`, `@orkestrel/emitter` `^0.0.8`, `@orkestrel/contract` `^0.0.13`, `@orkestrel/template` `^0.0.5` |
59
- | `@orkestrel/markdown` | `0.0.11` | L2 | `@orkestrel/contract` `^0.0.13`, `@orkestrel/html` `^0.0.6` |
60
- | `@orkestrel/mcp` | `0.0.24` | L3 | `@orkestrel/contract` `^0.0.13`, `@orkestrel/emitter` `^0.0.8`, `@orkestrel/process` `^0.0.6`, `@orkestrel/sse` `^0.0.5`, `@orkestrel/tool` `^0.0.12`, `@orkestrel/websocket` `^0.0.10` |
59
+ | `@orkestrel/lsp` | `0.0.2` | L3 | `@orkestrel/contract` `^0.0.13`, `@orkestrel/emitter` `^0.0.8`, `@orkestrel/process` `^0.0.6` |
60
+ | `@orkestrel/markdown` | `0.0.12` | L2 | `@orkestrel/contract` `^0.0.13`, `@orkestrel/html` `^0.0.7` |
61
+ | `@orkestrel/mcp` | `0.0.25` | L3 | `@orkestrel/contract` `^0.0.13`, `@orkestrel/emitter` `^0.0.8`, `@orkestrel/process` `^0.0.6`, `@orkestrel/sse` `^0.0.5`, `@orkestrel/tool` `^0.0.12`, `@orkestrel/websocket` `^0.0.10` |
61
62
  | `@orkestrel/middleware` | `0.0.17` | L2 | `@orkestrel/abort` `^0.0.7`, `@orkestrel/budget` `^0.0.7`, `@orkestrel/contract` `^0.0.13`, `@orkestrel/timeout` `^0.0.7` |
62
63
  | `@orkestrel/msg` | `0.0.8` | L0 | |
63
64
  | `@orkestrel/ndjson` | `0.0.8` | L1 | `@orkestrel/contract` `^0.0.13` |
64
65
  | `@orkestrel/ollama` | `0.0.12` | L6 | `@orkestrel/agent` `^0.0.18`, `@orkestrel/budget` `^0.0.8`, `@orkestrel/contract` `^0.0.13`, `@orkestrel/ndjson` `^0.0.8`, `@orkestrel/timeout` `^0.0.8`, `@orkestrel/tool` `^0.0.12` |
65
66
  | `@orkestrel/pool` | `0.0.8` | L2 | `@orkestrel/emitter` `^0.0.7` |
66
- | `@orkestrel/probe` | `0.0.6` | L4 | `@orkestrel/contract` `^0.0.13`, `@orkestrel/emitter` `^0.0.8`, `@orkestrel/mcp` `^0.0.24`, `@orkestrel/queue` `^0.0.10`, `@orkestrel/timeout` `^0.0.8`, `@orkestrel/tool` `^0.0.12` |
67
+ | `@orkestrel/probe` | `0.0.8` | L4 | `@orkestrel/contract` `^0.0.13`, `@orkestrel/emitter` `^0.0.8`, `@orkestrel/lsp` `^0.0.2`, `@orkestrel/mcp` `^0.0.25`, `@orkestrel/queue` `^0.0.10`, `@orkestrel/timeout` `^0.0.8`, `@orkestrel/tool` `^0.0.12` |
67
68
  | `@orkestrel/process` | `0.0.6` | L2 | `@orkestrel/contract` `^0.0.13`, `@orkestrel/emitter` `^0.0.7` |
68
69
  | `@orkestrel/program` | `0.0.10` | L4 | `@orkestrel/contract` `^0.0.13`, `@orkestrel/emitter` `^0.0.7`, `@orkestrel/qualifier` `^0.0.11`, `@orkestrel/rater` `^0.0.11`, `@orkestrel/reason` `^0.0.7` |
69
70
  | `@orkestrel/qualifier` | `0.0.11` | L3 | `@orkestrel/contract` `^0.0.13`, `@orkestrel/emitter` `^0.0.7`, `@orkestrel/reason` `^0.0.7` |
@@ -72,7 +73,7 @@ so network-controlled descriptions never enter agent instruction context.
72
73
  | `@orkestrel/reason` | `0.0.8` | L2 | `@orkestrel/contract` `^0.0.13`, `@orkestrel/emitter` `^0.0.8` |
73
74
  | `@orkestrel/relation` | `0.0.10` | L3 | `@orkestrel/contract` `^0.0.13`, `@orkestrel/database` `^0.0.12`, `@orkestrel/emitter` `^0.0.8` |
74
75
  | `@orkestrel/router` | `0.0.11` | L2 | `@orkestrel/abort` `^0.0.7`, `@orkestrel/contract` `^0.0.13`, `@orkestrel/emitter` `^0.0.7` |
75
- | `@orkestrel/scaffold` | `0.0.52` | L3 | `@orkestrel/console` `^0.0.10`, `@orkestrel/contract` `^0.0.13`, `@orkestrel/emitter` `^0.0.8`, `@orkestrel/markdown` `^0.0.10`, `@orkestrel/process` `^0.0.6`, `@orkestrel/template` `^0.0.5` |
76
+ | `@orkestrel/scaffold` | `0.0.53` | L3 | `@orkestrel/console` `^0.0.10`, `@orkestrel/contract` `^0.0.13`, `@orkestrel/emitter` `^0.0.8`, `@orkestrel/markdown` `^0.0.11`, `@orkestrel/process` `^0.0.6`, `@orkestrel/template` `^0.0.5` |
76
77
  | `@orkestrel/sea` | `0.0.11` | L3 | `@orkestrel/contract` `^0.0.13`, `@orkestrel/emitter` `^0.0.8`, `@orkestrel/process` `^0.0.6` |
77
78
  | `@orkestrel/server` | `0.0.15` | L3 | `@orkestrel/abort` `^0.0.8`, `@orkestrel/contract` `^0.0.13`, `@orkestrel/emitter` `^0.0.8`, `@orkestrel/router` `^0.0.11`, `@orkestrel/timeout` `^0.0.8` |
78
79
  | `@orkestrel/sqlite` | `0.0.9` | L1 | `@orkestrel/contract` `^0.0.13` |
@@ -87,7 +88,7 @@ so network-controlled descriptions never enter agent instruction context.
87
88
  | `@orkestrel/toolbox` | `0.0.9` | L6 | `@orkestrel/agent` `^0.0.18`, `@orkestrel/contract` `^0.0.13`, `@orkestrel/database` `^0.0.11`, `@orkestrel/form` `^0.0.2`, `@orkestrel/relation` `^0.0.9`, `@orkestrel/server` `^0.0.14`, `@orkestrel/terminal` `^0.0.11`, `@orkestrel/tool` `^0.0.11`, `@orkestrel/workflow` `^0.0.14`, `@orkestrel/workspace` `^0.0.5` |
88
89
  | `@orkestrel/websocket` | `0.0.10` | L2 | `@orkestrel/emitter` `^0.0.8` |
89
90
  | `@orkestrel/worker` | `0.0.9` | L4 | `@orkestrel/contract` `^0.0.13`, `@orkestrel/database` `^0.0.11`, `@orkestrel/emitter` `^0.0.7`, `@orkestrel/pool` `^0.0.8`, `@orkestrel/queue` `^0.0.10` |
90
- | `@orkestrel/workflow` | `0.0.14` | L4 | `@orkestrel/abort` `^0.0.7`, `@orkestrel/budget` `^0.0.7`, `@orkestrel/contract` `^0.0.13`, `@orkestrel/database` `^0.0.11`, `@orkestrel/emitter` `^0.0.7`, `@orkestrel/queue` `^0.0.10`, `@orkestrel/timeout` `^0.0.7` |
91
+ | `@orkestrel/workflow` | `0.0.15` | L4 | `@orkestrel/abort` `^0.0.8`, `@orkestrel/budget` `^0.0.8`, `@orkestrel/contract` `^0.0.13`, `@orkestrel/database` `^0.0.12`, `@orkestrel/emitter` `^0.0.8`, `@orkestrel/queue` `^0.0.10`, `@orkestrel/timeout` `^0.0.8` |
91
92
  | `@orkestrel/workspace` | `0.0.6` | L3 | `@orkestrel/contract` `^0.0.13`, `@orkestrel/database` `^0.0.12`, `@orkestrel/emitter` `^0.0.8` |
92
93
 
93
94
  <!-- /orkestrel:catalog -->
@@ -1,5 +1,6 @@
1
1
  {
2
2
  "$schema": "https://raw.githubusercontent.com/oxc-project/oxc/main/npm/oxlint/configuration_schema.json",
3
+ "ignorePatterns": [".orkestrel/"],
3
4
  "plugins": ["import", "typescript", "vitest"],
4
5
  "jsPlugins": [{ "name": "policy", "specifier": "./configs/policy.ts" }],
5
6
  "rules": {
@@ -9,3 +9,6 @@ demo/showcase.html
9
9
 
10
10
  # Campaign records under the orchestration folder are verbatim evidence, not formatted source.
11
11
  .orkestrel/
12
+
13
+ # Fetched-bytes mirrors keep their upstream bytes and stay out of the formatter.
14
+ tests/mirrors/
@@ -456,16 +456,18 @@ package distributes; each operation reports one baseline word per surface. A sur
456
456
  `floor` only where the package distributes a copy. The registry's organization membership ships
457
457
  nowhere, so `catalog` refuses when that read fails.
458
458
 
459
- For `new`, `repair`, `catalog`, and `overwrite`, authoritative absence never selects `floor`. A
460
- registry `404` or a packument with no admitted version stays a `FETCH` refusal, because writing a
461
- version the registry says is absent produces an uninstallable manifest. `audit` turns release
462
- absence into questions and returns its audit result. Transport faults, timeouts, rate refusals,
463
- byte-bound refusals, and integrity refusals can select the floor.
464
-
465
- The guide surface is the per-row exception to whole-surface fallback. A failed foreign guide keeps
466
- the target's existing mirror as its floor, while the other guide rows can still update. When at
467
- least one selected guide keeps its mirror, `provenance.guides` is `floor` for the result; it is
468
- `live` only when every selected guide resolved live.
459
+ For `new`, `repair`, `catalog`, and `overwrite`, authoritative absence on a version surface never
460
+ selects `floor`. A registry `404` or a packument with no admitted version stays a `FETCH` refusal,
461
+ because writing a version the registry says is absent produces an uninstallable manifest. `audit`
462
+ turns release absence into questions and returns its audit result. Transport faults, timeouts, rate
463
+ refusals, byte-bound refusals, and integrity refusals can select the floor.
464
+
465
+ The guide surface is the per-row exception to whole-surface fallback, for absence as well as for
466
+ faults. A foreign guide the host could not serve a failed read, or the `404` a published package
467
+ with a private repository answers with — keeps the target's existing mirror as its floor, while the
468
+ other guide rows can still update. When at least one selected guide keeps its mirror,
469
+ `provenance.guides` is `floor` for the result; it is `live` only when every selected guide resolved
470
+ live.
469
471
 
470
472
  A value `Host` can carry live host-owned bytes beside installed floor bytes for deferred guide and
471
473
  catalog paths. Each surface still contributes one baseline. Deferred paths are presence-only, and
@@ -1096,13 +1098,13 @@ Each verb resolves a surface's complete answer before it opens that surface's wr
1096
1098
  a partial answer never becomes a partial pin set. `overwrite` keeps the repair and removal work it
1097
1099
  committed before a later catalog refusal and records that refusal in `note`.
1098
1100
 
1099
- | Verb | Reads live | When the network forces a floor | With `--offline` |
1100
- | ----------- | ---------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
1101
- | `new` | Declared versions and the vendored host | Writes the distributed version and host floors; exits `0` after creating the workspace | Reads no upstream surface, writes the same floors, and exits `0` after creating the workspace |
1102
- | `audit` | Declared versions and the vendored host | Compares through the distributed floors and exits `1` | Compares through the floors; exits `0` for an aligned target or `1` for drift |
1103
- | `repair` | Declared versions and the vendored host | Repairs from the distributed floors and exits `1`, even when the terminal audit is aligned | Repairs from the floors; the terminal audit decides exit `0` or `1` |
1104
- | `catalog` | Organization membership, its packuments, and the selected guides | Refuses a membership or version failure with `FETCH` and exit `1`; preserves each failed guide's local mirror and exits `1` | Is a usage error; exits `2` and writes nothing |
1105
- | `overwrite` | Everything `repair` and `catalog` read | Keeps completed repair and deletion work, names each floor or refused catalog step in `note`, and exits `1` | Repairs, deletes, and writes version floors; skips `catalog`, records that refusal in `note`, and exits `1` |
1101
+ | Verb | Reads live | When the network forces a floor | With `--offline` |
1102
+ | ----------- | ---------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
1103
+ | `new` | Declared versions and the vendored host | Writes the distributed version and host floors; exits `0` after creating the workspace | Reads no upstream surface, writes the same floors, and exits `0` after creating the workspace |
1104
+ | `audit` | Declared versions and the vendored host | Compares through the distributed floors and exits `1` | Compares through the floors; exits `0` for an aligned target or `1` for drift |
1105
+ | `repair` | Declared versions and the vendored host | Repairs from the distributed floors and exits `1`, even when the terminal audit is aligned | Repairs from the floors; the terminal audit decides exit `0` or `1` |
1106
+ | `catalog` | Organization membership, its packuments, and the selected guides | Refuses a membership or version failure with `FETCH` and exit `1`; preserves the local mirror of each guide that failed or is absent upstream and exits `1` | Is a usage error; exits `2` and writes nothing |
1107
+ | `overwrite` | Everything `repair` and `catalog` read | Keeps completed repair and deletion work, names each floor or refused catalog step in `note`, and exits `1` | Repairs, deletes, and writes version floors; skips `catalog`, records that refusal in `note`, and exits `1` |
1106
1108
 
1107
1109
  A fleet row is compared exactly — `^0.1.0` is stale the moment the registry serves `0.1.2` — and
1108
1110
  that inequality alone raises `audit` to exit `1`. A foreign row is compared inside its declared
@@ -22,7 +22,7 @@
22
22
  "storage": "agents/orchestration.md",
23
23
  "destination": ".agents/orchestration.md",
24
24
  "executable": false,
25
- "digest": "3681749c3a0a0d601dacf78c7726a2018d0ea7643d96dbd77641c186ee2cd01e"
25
+ "digest": "db4414f1dc8eb2cc9e96cb920f08946d4be2507b081866839fea4112949b7505"
26
26
  },
27
27
  {
28
28
  "storage": "agents/skills/enterprise-bootstrap/SKILL.md",
@@ -310,7 +310,7 @@
310
310
  "storage": "claude/agents/orkestrel.md",
311
311
  "destination": ".claude/agents/orkestrel.md",
312
312
  "executable": false,
313
- "digest": "3d1d0b4ee196465d831178f5aa1c425325f39d4f9087654aac48b877f728af3d"
313
+ "digest": "f71a28e5a4865bf6a910d9628d645f7d430f38aef29b815ef85caa1c01d87454"
314
314
  },
315
315
  {
316
316
  "storage": "claude/agents/planner.md",
@@ -628,13 +628,13 @@
628
628
  "storage": "dotfiles/oxlintrc.json",
629
629
  "destination": ".oxlintrc.json",
630
630
  "executable": false,
631
- "digest": "d4154c90721ff32cb1e4a709ac4672ca7bf31c0c9d757a0643397b2c8fbcff0d"
631
+ "digest": "c2d9715f5db07992601cf764532c9d9c7b11177a366d46d767ce07f50f49acad"
632
632
  },
633
633
  {
634
634
  "storage": "dotfiles/prettierignore",
635
635
  "destination": ".prettierignore",
636
636
  "executable": false,
637
- "digest": "9a2f99856efdf7a1c1cd806e40997a4621237de5a037ee60b2ac0bd23a3979cb"
637
+ "digest": "6f8bd3b8a192c974ae6332f017c2e76179d15e2598fbd624f7cd4e9e57156ff2"
638
638
  },
639
639
  {
640
640
  "storage": "guides/guide.md",
@@ -646,7 +646,7 @@
646
646
  "storage": "guides/scaffold.md",
647
647
  "destination": "guides/scaffold.md",
648
648
  "executable": false,
649
- "digest": "0a69b1cf0194078be9a54c9c51d88029d7c7d93a41bce63001e038f588f175ce"
649
+ "digest": "4b6e503d74188118ebba5ff4c9d76d9c9a933c0aec055ae600e02540e73c8c57"
650
650
  },
651
651
  {
652
652
  "storage": "scripts/codex.sh",
@@ -736,5 +736,5 @@
736
736
  ".codex/agents",
737
737
  ".cursor/rules"
738
738
  ],
739
- "digest": "938ab0fd0dc511cf6d138259d14c58de31eaec665ce65ce2ac4ef62e5f31ae32"
739
+ "digest": "bb4f3428a2d0d631ca77df5dc1921a7a171cef0b5e8a840038f0b7ab32f751d7"
740
740
  }
File without changes
File without changes
File without changes
File without changes
@@ -4,7 +4,7 @@ let _orkestrel_template = require("@orkestrel/template");
4
4
  let _orkestrel_emitter = require("@orkestrel/emitter");
5
5
  var package_default = {
6
6
  name: "@orkestrel/scaffold",
7
- version: "0.0.53",
7
+ version: "0.0.54",
8
8
  description: "Scaffold workspaces with five commands: new, audit, repair, catalog, and overwrite.",
9
9
  keywords: [
10
10
  "audit",
@@ -78,7 +78,7 @@ var package_default = {
78
78
  "test:distribution": "vitest run --config vite.config.ts --no-cache --reporter=dot --project distribution",
79
79
  "test:probe": "vitest run --config vite.config.ts --no-cache --reporter=verbose --project probe",
80
80
  "test:bench": "vitest bench --config vite.config.ts --no-cache --project probe",
81
- "build": "npm run clean && npm run build:src && npm run build:host",
81
+ "build": "npm run clean && npm run build:src && npm run build:host && npm run build:inventory",
82
82
  "build:src": "npm run build:src:core && npm run build:src:server && npm run build:src:bin",
83
83
  "build:src:core": "vite build --config configs/src/vite.core.config.ts && npm run copy dist/src/core/index.d.ts dist/src/core/index.d.cts",
84
84
  "build:src:server": "vite build --config configs/src/vite.server.config.ts && npm run copy dist/src/server/index.d.ts dist/src/server/index.d.cts",
@@ -92,20 +92,20 @@ var package_default = {
92
92
  "@orkestrel/console": "^0.0.10",
93
93
  "@orkestrel/contract": "^0.0.13",
94
94
  "@orkestrel/emitter": "^0.0.8",
95
- "@orkestrel/markdown": "^0.0.11",
95
+ "@orkestrel/markdown": "^0.0.12",
96
96
  "@orkestrel/process": "^0.0.6",
97
97
  "@orkestrel/template": "^0.0.5"
98
98
  },
99
99
  devDependencies: {
100
100
  "@microsoft/api-extractor": "^7.59.0",
101
- "@orkestrel/guide": "^0.0.13",
102
- "@orkestrel/html": "^0.0.6",
103
- "@orkestrel/probe": "^0.0.6",
101
+ "@orkestrel/guide": "^0.0.14",
102
+ "@orkestrel/html": "^0.0.7",
103
+ "@orkestrel/probe": "^0.0.8",
104
104
  "@orkestrel/test": "^0.0.11",
105
- "@types/node": "^26.2.0",
105
+ "@types/node": "^26.3.0",
106
106
  "@vitest/browser-playwright": "^4.1.11",
107
- "oxfmt": "^0.64.0",
108
- "oxlint": "^1.79.0",
107
+ "oxfmt": "^0.65.0",
108
+ "oxlint": "^1.80.0",
109
109
  "playwright": "^1.62.1",
110
110
  "typescript": "^6.0.3",
111
111
  "vite": "^8.2.2",