@orkestrel/scaffold 0.0.95 → 0.0.97

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.
@@ -46,55 +46,55 @@ so network-controlled descriptions never enter agent instruction context.
46
46
  | Package | Version | Layer | Runtime dependencies | Peer dependencies |
47
47
  | ----------------------- | -------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------- |
48
48
  | `@orkestrel/abort` | `0.0.13` | L1 | `@orkestrel/contract` `^0.0.19` | |
49
- | `@orkestrel/agent` | `0.0.28` | L5 | `@orkestrel/tool` `^0.0.18`, `@orkestrel/abort` `^0.0.12`, `@orkestrel/queue` `^0.0.16`, `@orkestrel/budget` `^0.0.12`, `@orkestrel/emitter` `^0.0.11`, `@orkestrel/timeout` `^0.0.12`, `@orkestrel/contract` `^0.0.19`, `@orkestrel/database` `^0.0.17`, `@orkestrel/workflow` `^0.0.21`, `@orkestrel/workspace` `^0.0.11` | |
50
- | `@orkestrel/brief` | `0.0.10` | L4 | `@orkestrel/reason` `^0.0.12`, `@orkestrel/emitter` `^0.0.11`, `@orkestrel/contract` `^0.0.18`, `@orkestrel/interpret` `^0.0.15` | |
51
- | `@orkestrel/browser` | `0.0.27` | L5 | `@orkestrel/mcp` `^0.0.37`, `@orkestrel/html` `^0.0.12`, `@orkestrel/pool` `^0.0.16`, `@orkestrel/tool` `^0.0.18`, `@orkestrel/codec` `^0.0.5`, `@orkestrel/router` `^0.0.16`, `@orkestrel/server` `^0.0.22`, `@orkestrel/emitter` `^0.0.11`, `@orkestrel/contract` `^0.0.19`, `@orkestrel/markdown` `^0.0.17`, `@orkestrel/websocket` `^0.0.14` | |
49
+ | `@orkestrel/agent` | `0.0.29` | L5 | `@orkestrel/tool` `^0.0.19`, `@orkestrel/abort` `^0.0.13`, `@orkestrel/queue` `^0.0.17`, `@orkestrel/budget` `^0.0.13`, `@orkestrel/emitter` `^0.0.12`, `@orkestrel/timeout` `^0.0.13`, `@orkestrel/contract` `^0.0.19`, `@orkestrel/database` `^0.0.18`, `@orkestrel/workflow` `^0.0.22`, `@orkestrel/workspace` `^0.0.12` | |
50
+ | `@orkestrel/brief` | `0.0.11` | L4 | `@orkestrel/reason` `^0.0.13`, `@orkestrel/emitter` `^0.0.12`, `@orkestrel/contract` `^0.0.19`, `@orkestrel/interpret` `^0.0.16` | |
51
+ | `@orkestrel/browser` | `0.0.28` | L5 | `@orkestrel/mcp` `^0.0.38`, `@orkestrel/html` `^0.0.12`, `@orkestrel/pool` `^0.0.17`, `@orkestrel/tool` `^0.0.19`, `@orkestrel/codec` `^0.0.6`, `@orkestrel/router` `^0.0.17`, `@orkestrel/server` `^0.0.23`, `@orkestrel/emitter` `^0.0.12`, `@orkestrel/contract` `^0.0.19`, `@orkestrel/markdown` `^0.0.17`, `@orkestrel/websocket` `^0.0.15` | |
52
52
  | `@orkestrel/budget` | `0.0.13` | L1 | `@orkestrel/contract` `^0.0.19` | |
53
- | `@orkestrel/codec` | `0.0.5` | L1 | `@orkestrel/contract` `^0.0.18` | |
54
- | `@orkestrel/console` | `0.0.15` | L2 | `@orkestrel/emitter` `^0.0.11`, `@orkestrel/contract` `^0.0.18` | |
53
+ | `@orkestrel/codec` | `0.0.6` | L1 | `@orkestrel/contract` `^0.0.19` | |
54
+ | `@orkestrel/console` | `0.0.16` | L2 | `@orkestrel/emitter` `^0.0.12`, `@orkestrel/contract` `^0.0.19` | |
55
55
  | `@orkestrel/contract` | `0.0.19` | L0 | | |
56
56
  | `@orkestrel/csv` | `0.0.10` | L1 | `@orkestrel/contract` `^0.0.19` | |
57
- | `@orkestrel/database` | `0.0.17` | L2 | `@orkestrel/sqlite` `^0.0.14`, `@orkestrel/emitter` `^0.0.11`, `@orkestrel/contract` `^0.0.19`, `@orkestrel/indexeddb` `^0.0.14` | |
57
+ | `@orkestrel/database` | `0.0.18` | L2 | `@orkestrel/sqlite` `^0.0.14`, `@orkestrel/emitter` `^0.0.12`, `@orkestrel/contract` `^0.0.19`, `@orkestrel/indexeddb` `^0.0.14` | |
58
58
  | `@orkestrel/emitter` | `0.0.12` | L1 | `@orkestrel/contract` `^0.0.19` | |
59
- | `@orkestrel/form` | `0.0.8` | L2 | `@orkestrel/emitter` `^0.0.11`, `@orkestrel/contract` `^0.0.18` | |
59
+ | `@orkestrel/form` | `0.0.9` | L2 | `@orkestrel/emitter` `^0.0.12`, `@orkestrel/contract` `^0.0.19` | |
60
60
  | `@orkestrel/guide` | `0.0.24` | L3 | `@orkestrel/contract` `^0.0.19`, `@orkestrel/markdown` `^0.0.17` | |
61
61
  | `@orkestrel/html` | `0.0.12` | L1 | `@orkestrel/contract` `^0.0.19` | |
62
62
  | `@orkestrel/indexeddb` | `0.0.14` | L1 | `@orkestrel/contract` `^0.0.19` | |
63
- | `@orkestrel/interpret` | `0.0.15` | L3 | `@orkestrel/reason` `^0.0.12`, `@orkestrel/emitter` `^0.0.11`, `@orkestrel/contract` `^0.0.18`, `@orkestrel/template` `^0.0.9` | |
64
- | `@orkestrel/lsp` | `0.0.10` | L3 | `@orkestrel/emitter` `^0.0.11`, `@orkestrel/process` `^0.0.14`, `@orkestrel/contract` `^0.0.18` | |
63
+ | `@orkestrel/interpret` | `0.0.16` | L3 | `@orkestrel/reason` `^0.0.13`, `@orkestrel/emitter` `^0.0.12`, `@orkestrel/contract` `^0.0.19`, `@orkestrel/template` `^0.0.10` | |
64
+ | `@orkestrel/lsp` | `0.0.11` | L3 | `@orkestrel/emitter` `^0.0.12`, `@orkestrel/process` `^0.0.15`, `@orkestrel/contract` `^0.0.19` | |
65
65
  | `@orkestrel/markdown` | `0.0.17` | L2 | `@orkestrel/html` `^0.0.12`, `@orkestrel/contract` `^0.0.19` | |
66
- | `@orkestrel/mcp` | `0.0.37` | L4 | `@orkestrel/sse` `^0.0.9`, `@orkestrel/tool` `^0.0.18`, `@orkestrel/codec` `^0.0.5`, `@orkestrel/emitter` `^0.0.11`, `@orkestrel/process` `^0.0.14`, `@orkestrel/contract` `^0.0.19`, `@orkestrel/websocket` `^0.0.14` | `@orkestrel/router` `^0.0.16`, `@orkestrel/server` `^0.0.22` |
67
- | `@orkestrel/middleware` | `0.0.23` | L4 | `@orkestrel/abort` `^0.0.12`, `@orkestrel/budget` `^0.0.12`, `@orkestrel/timeout` `^0.0.12`, `@orkestrel/contract` `^0.0.19` | `@orkestrel/server` `^0.0.22`, `@orkestrel/database` `^0.0.17` |
66
+ | `@orkestrel/mcp` | `0.0.38` | L4 | `@orkestrel/sse` `^0.0.10`, `@orkestrel/tool` `^0.0.19`, `@orkestrel/codec` `^0.0.6`, `@orkestrel/emitter` `^0.0.12`, `@orkestrel/process` `^0.0.15`, `@orkestrel/contract` `^0.0.19`, `@orkestrel/websocket` `^0.0.15` | `@orkestrel/router` `^0.0.17`, `@orkestrel/server` `^0.0.23` |
67
+ | `@orkestrel/middleware` | `0.0.24` | L4 | `@orkestrel/abort` `^0.0.13`, `@orkestrel/budget` `^0.0.13`, `@orkestrel/timeout` `^0.0.13`, `@orkestrel/contract` `^0.0.19` | `@orkestrel/server` `^0.0.23`, `@orkestrel/database` `^0.0.18` |
68
68
  | `@orkestrel/msg` | `0.0.13` | L1 | `@orkestrel/contract` `^0.0.19` | |
69
69
  | `@orkestrel/ndjson` | `0.0.12` | L1 | `@orkestrel/contract` `^0.0.19` | |
70
- | `@orkestrel/ollama` | `0.0.21` | L6 | `@orkestrel/tool` `^0.0.18`, `@orkestrel/agent` `^0.0.28`, `@orkestrel/budget` `^0.0.12`, `@orkestrel/ndjson` `^0.0.11`, `@orkestrel/contract` `^0.0.19` | |
71
- | `@orkestrel/pool` | `0.0.16` | L2 | `@orkestrel/emitter` `^0.0.11`, `@orkestrel/contract` `^0.0.19` | |
72
- | `@orkestrel/probe` | `0.0.22` | L5 | `@orkestrel/lsp` `^0.0.10`, `@orkestrel/mcp` `^0.0.37`, `@orkestrel/pool` `^0.0.16`, `@orkestrel/tool` `^0.0.18`, `@orkestrel/emitter` `^0.0.11`, `@orkestrel/timeout` `^0.0.12`, `@orkestrel/contract` `^0.0.19` | `vitest` `^4.1.11`, `typescript` `^6.0.3` |
73
- | `@orkestrel/process` | `0.0.14` | L2 | `@orkestrel/emitter` `^0.0.11`, `@orkestrel/contract` `^0.0.18` | |
74
- | `@orkestrel/program` | `0.0.15` | L4 | `@orkestrel/rater` `^0.0.16`, `@orkestrel/reason` `^0.0.12`, `@orkestrel/emitter` `^0.0.11`, `@orkestrel/contract` `^0.0.18`, `@orkestrel/qualifier` `^0.0.16` | |
75
- | `@orkestrel/qualifier` | `0.0.16` | L3 | `@orkestrel/reason` `^0.0.12`, `@orkestrel/emitter` `^0.0.11`, `@orkestrel/contract` `^0.0.18` | |
76
- | `@orkestrel/queue` | `0.0.16` | L3 | `@orkestrel/abort` `^0.0.12`, `@orkestrel/emitter` `^0.0.11`, `@orkestrel/timeout` `^0.0.12`, `@orkestrel/contract` `^0.0.19`, `@orkestrel/database` `^0.0.17` | |
77
- | `@orkestrel/rater` | `0.0.16` | L3 | `@orkestrel/reason` `^0.0.12`, `@orkestrel/emitter` `^0.0.11`, `@orkestrel/contract` `^0.0.18` | |
78
- | `@orkestrel/reason` | `0.0.12` | L2 | `@orkestrel/emitter` `^0.0.11`, `@orkestrel/contract` `^0.0.18` | |
79
- | `@orkestrel/relation` | `0.0.15` | L3 | `@orkestrel/emitter` `^0.0.11`, `@orkestrel/contract` `^0.0.19`, `@orkestrel/database` `^0.0.17` | |
80
- | `@orkestrel/router` | `0.0.16` | L2 | `@orkestrel/abort` `^0.0.12`, `@orkestrel/emitter` `^0.0.11`, `@orkestrel/contract` `^0.0.18` | |
81
- | `@orkestrel/scaffold` | `0.0.94` | L3 | `@orkestrel/console` `^0.0.15`, `@orkestrel/emitter` `^0.0.11`, `@orkestrel/process` `^0.0.14`, `@orkestrel/contract` `^0.0.19`, `@orkestrel/markdown` `^0.0.17`, `@orkestrel/template` `^0.0.9` | |
82
- | `@orkestrel/sea` | `0.0.18` | L3 | `@orkestrel/emitter` `^0.0.11`, `@orkestrel/process` `^0.0.14`, `@orkestrel/contract` `^0.0.18` | |
83
- | `@orkestrel/server` | `0.0.22` | L3 | `@orkestrel/abort` `^0.0.12`, `@orkestrel/codec` `^0.0.5`, `@orkestrel/router` `^0.0.16`, `@orkestrel/emitter` `^0.0.11`, `@orkestrel/timeout` `^0.0.12`, `@orkestrel/contract` `^0.0.19` | |
70
+ | `@orkestrel/ollama` | `0.0.22` | L6 | `@orkestrel/tool` `^0.0.19`, `@orkestrel/agent` `^0.0.29`, `@orkestrel/budget` `^0.0.13`, `@orkestrel/ndjson` `^0.0.12`, `@orkestrel/contract` `^0.0.19` | |
71
+ | `@orkestrel/pool` | `0.0.17` | L2 | `@orkestrel/emitter` `^0.0.12`, `@orkestrel/contract` `^0.0.19` | |
72
+ | `@orkestrel/probe` | `0.0.23` | L5 | `@orkestrel/lsp` `^0.0.11`, `@orkestrel/mcp` `^0.0.38`, `@orkestrel/pool` `^0.0.17`, `@orkestrel/tool` `^0.0.19`, `@orkestrel/emitter` `^0.0.12`, `@orkestrel/timeout` `^0.0.13`, `@orkestrel/contract` `^0.0.19` | `vitest` `^4.1.11`, `typescript` `^6.0.3` |
73
+ | `@orkestrel/process` | `0.0.15` | L2 | `@orkestrel/emitter` `^0.0.12`, `@orkestrel/contract` `^0.0.19` | |
74
+ | `@orkestrel/program` | `0.0.16` | L4 | `@orkestrel/rater` `^0.0.17`, `@orkestrel/reason` `^0.0.13`, `@orkestrel/emitter` `^0.0.12`, `@orkestrel/contract` `^0.0.19`, `@orkestrel/qualifier` `^0.0.17` | |
75
+ | `@orkestrel/qualifier` | `0.0.17` | L3 | `@orkestrel/reason` `^0.0.13`, `@orkestrel/emitter` `^0.0.12`, `@orkestrel/contract` `^0.0.19` | |
76
+ | `@orkestrel/queue` | `0.0.17` | L3 | `@orkestrel/abort` `^0.0.13`, `@orkestrel/emitter` `^0.0.12`, `@orkestrel/timeout` `^0.0.13`, `@orkestrel/contract` `^0.0.19`, `@orkestrel/database` `^0.0.18` | |
77
+ | `@orkestrel/rater` | `0.0.17` | L3 | `@orkestrel/reason` `^0.0.13`, `@orkestrel/emitter` `^0.0.12`, `@orkestrel/contract` `^0.0.19` | |
78
+ | `@orkestrel/reason` | `0.0.13` | L2 | `@orkestrel/emitter` `^0.0.12`, `@orkestrel/contract` `^0.0.19` | |
79
+ | `@orkestrel/relation` | `0.0.16` | L3 | `@orkestrel/emitter` `^0.0.12`, `@orkestrel/contract` `^0.0.19`, `@orkestrel/database` `^0.0.18` | |
80
+ | `@orkestrel/router` | `0.0.17` | L2 | `@orkestrel/abort` `^0.0.13`, `@orkestrel/emitter` `^0.0.12`, `@orkestrel/contract` `^0.0.19` | |
81
+ | `@orkestrel/scaffold` | `0.0.96` | L3 | `@orkestrel/console` `^0.0.16`, `@orkestrel/emitter` `^0.0.12`, `@orkestrel/process` `^0.0.15`, `@orkestrel/contract` `^0.0.19`, `@orkestrel/markdown` `^0.0.17`, `@orkestrel/template` `^0.0.10` | |
82
+ | `@orkestrel/sea` | `0.0.19` | L3 | `@orkestrel/emitter` `^0.0.12`, `@orkestrel/process` `^0.0.15`, `@orkestrel/contract` `^0.0.19` | |
83
+ | `@orkestrel/server` | `0.0.23` | L3 | `@orkestrel/abort` `^0.0.13`, `@orkestrel/codec` `^0.0.6`, `@orkestrel/router` `^0.0.17`, `@orkestrel/emitter` `^0.0.12`, `@orkestrel/timeout` `^0.0.13`, `@orkestrel/contract` `^0.0.19` | |
84
84
  | `@orkestrel/sqlite` | `0.0.14` | L1 | `@orkestrel/contract` `^0.0.19` | |
85
85
  | `@orkestrel/sse` | `0.0.10` | L1 | `@orkestrel/contract` `^0.0.19` | |
86
86
  | `@orkestrel/supervisor` | `0.0.1` | L5 | `@orkestrel/contract` `^0.0.11`, `@orkestrel/database` `^0.0.9`, `@orkestrel/emitter` `^0.0.6`, `@orkestrel/workflow` `^0.0.12` | |
87
- | `@orkestrel/table` | `0.0.7` | L2 | `@orkestrel/emitter` `^0.0.11`, `@orkestrel/contract` `^0.0.18` | |
88
- | `@orkestrel/template` | `0.0.9` | L2 | `@orkestrel/emitter` `^0.0.11`, `@orkestrel/contract` `^0.0.18` | |
89
- | `@orkestrel/terminal` | `0.0.18` | L3 | `@orkestrel/sse` `^0.0.9`, `@orkestrel/form` `^0.0.8`, `@orkestrel/console` `^0.0.15`, `@orkestrel/emitter` `^0.0.11`, `@orkestrel/contract` `^0.0.19`, `@orkestrel/database` `^0.0.17` | |
90
- | `@orkestrel/test` | `0.0.24` | L1 | `@orkestrel/contract` `^0.0.18` | `vitest` `^4.1.11` |
87
+ | `@orkestrel/table` | `0.0.8` | L2 | `@orkestrel/emitter` `^0.0.12`, `@orkestrel/contract` `^0.0.19` | |
88
+ | `@orkestrel/template` | `0.0.10` | L2 | `@orkestrel/emitter` `^0.0.12`, `@orkestrel/contract` `^0.0.19` | |
89
+ | `@orkestrel/terminal` | `0.0.19` | L3 | `@orkestrel/sse` `^0.0.10`, `@orkestrel/form` `^0.0.9`, `@orkestrel/console` `^0.0.16`, `@orkestrel/emitter` `^0.0.12`, `@orkestrel/contract` `^0.0.19`, `@orkestrel/database` `^0.0.18` | |
90
+ | `@orkestrel/test` | `0.0.25` | L1 | `@orkestrel/contract` `^0.0.19` | `vitest` `^4.1.11` |
91
91
  | `@orkestrel/timeout` | `0.0.13` | L1 | `@orkestrel/contract` `^0.0.19` | |
92
- | `@orkestrel/tool` | `0.0.18` | L2 | `@orkestrel/emitter` `^0.0.11`, `@orkestrel/contract` `^0.0.19` | |
93
- | `@orkestrel/toolbox` | `0.0.17` | L6 | `@orkestrel/form` `^0.0.8`, `@orkestrel/tool` `^0.0.18`, `@orkestrel/agent` `^0.0.26`, `@orkestrel/server` `^0.0.22`, `@orkestrel/contract` `^0.0.19`, `@orkestrel/database` `^0.0.17`, `@orkestrel/relation` `^0.0.15`, `@orkestrel/terminal` `^0.0.18`, `@orkestrel/workflow` `^0.0.21`, `@orkestrel/workspace` `^0.0.11` | |
94
- | `@orkestrel/websocket` | `0.0.14` | L2 | `@orkestrel/emitter` `^0.0.11`, `@orkestrel/contract` `^0.0.18` | |
95
- | `@orkestrel/worker` | `0.0.16` | L4 | `@orkestrel/pool` `^0.0.16`, `@orkestrel/queue` `^0.0.16`, `@orkestrel/emitter` `^0.0.11`, `@orkestrel/contract` `^0.0.19`, `@orkestrel/database` `^0.0.17` | |
96
- | `@orkestrel/workflow` | `0.0.21` | L4 | `@orkestrel/abort` `^0.0.12`, `@orkestrel/queue` `^0.0.16`, `@orkestrel/budget` `^0.0.12`, `@orkestrel/emitter` `^0.0.11`, `@orkestrel/timeout` `^0.0.12`, `@orkestrel/contract` `^0.0.19`, `@orkestrel/database` `^0.0.17` | |
97
- | `@orkestrel/workspace` | `0.0.11` | L3 | `@orkestrel/emitter` `^0.0.11`, `@orkestrel/contract` `^0.0.19`, `@orkestrel/database` `^0.0.17` | |
92
+ | `@orkestrel/tool` | `0.0.19` | L2 | `@orkestrel/emitter` `^0.0.12`, `@orkestrel/contract` `^0.0.19` | |
93
+ | `@orkestrel/toolbox` | `0.0.18` | L6 | `@orkestrel/form` `^0.0.9`, `@orkestrel/tool` `^0.0.19`, `@orkestrel/agent` `^0.0.29`, `@orkestrel/server` `^0.0.23`, `@orkestrel/contract` `^0.0.19`, `@orkestrel/database` `^0.0.18`, `@orkestrel/relation` `^0.0.16`, `@orkestrel/terminal` `^0.0.19`, `@orkestrel/workflow` `^0.0.22`, `@orkestrel/workspace` `^0.0.12` | |
94
+ | `@orkestrel/websocket` | `0.0.15` | L2 | `@orkestrel/emitter` `^0.0.12`, `@orkestrel/contract` `^0.0.19` | |
95
+ | `@orkestrel/worker` | `0.0.17` | L4 | `@orkestrel/pool` `^0.0.17`, `@orkestrel/queue` `^0.0.17`, `@orkestrel/emitter` `^0.0.12`, `@orkestrel/contract` `^0.0.19`, `@orkestrel/database` `^0.0.18` | |
96
+ | `@orkestrel/workflow` | `0.0.22` | L4 | `@orkestrel/abort` `^0.0.13`, `@orkestrel/queue` `^0.0.17`, `@orkestrel/budget` `^0.0.13`, `@orkestrel/emitter` `^0.0.12`, `@orkestrel/timeout` `^0.0.13`, `@orkestrel/contract` `^0.0.19`, `@orkestrel/database` `^0.0.18` | |
97
+ | `@orkestrel/workspace` | `0.0.12` | L3 | `@orkestrel/emitter` `^0.0.12`, `@orkestrel/contract` `^0.0.19`, `@orkestrel/database` `^0.0.18` | |
98
98
 
99
99
  <!-- /orkestrel:catalog -->
100
100
 
@@ -749,26 +749,32 @@ A `Shape` cell holds the constant's declared type.
749
749
 
750
750
  #### Helpers
751
751
 
752
- | API | Kind | Signature | Summary |
753
- | ------------------------ | -------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ |
754
- | `readInventory` | function | `(root: URL \| string, targets: readonly string[], options?: InventoryOptions) => Readonly<Record<string, string>>` | Reads files from selected targets below a root directory. |
755
- | `resolveContained` | function | `(root: string, target: string) => string \| undefined` | Resolves a target that stays below a root directory. |
756
- | `requireContained` | function | `(root: string, target: string) => string` | Resolves a target that stays below a root directory, refusing an escape. |
757
- | `isExcluded` | function | `(key: string, exclusions: readonly string[]) => boolean` | Reports whether a root-relative key matches an exclusion. |
758
- | `readIdentity` | function | `(status: Stats) => ScratchIdentity` | Reads the identity of one allocated directory off a host status. |
759
- | `matchesIdentity` | function | `(current: ScratchIdentity, allocation: ScratchIdentity) => boolean` | Reports whether two directory identities name the same allocation. |
760
- | `readErrorCode` | function | `(error: unknown) => string \| undefined` | Reads the `code` an unknown thrown value carries. |
761
- | `createLink` | function | `(path: string, source: string) => void` | Creates a symbolic link with a directory-junction fallback for hosts that refuse symbolic links. |
762
- | `removeTree` | function | `(path: string) => void` | Removes a directory tree, retrying past a transient Windows handle-release race. |
763
- | `isRunning` | function | `(pid: number) => boolean` | Reports whether a process id names a live process. |
764
- | `waitForSocketClose` | function | `(socket: Socket, options?: WaitOptions) => Promise<void>` | Waits for a socket to close, accepting a peer reset as a forced close. |
765
- | `destroyScratch` | function | `(scratch: ScratchInterface, options?: WaitOptions) => Promise<void>` | Destroys a scratch directory, retrying until the host releases it. |
766
- | `requestUpgrade` | function | `(port: number, options?: UpgradeOptions) => Promise<UpgradeResult>` | Drives a real client upgrade request against a loopback port and reports what the server did. |
767
- | `supportsDirectoryLinks` | function | `() => boolean` | Checks whether this host links a directory, by creating one link and reading through it. |
768
- | `supportsFileLinks` | function | `() => boolean` | Checks whether this host links a file, by creating one link and reading the file through it. |
769
- | `supportsMode` | function | `() => boolean` | Checks whether POSIX permission bits round-trip through this host's `chmod` and `stat`. |
770
- | `supportsCase` | function | `() => boolean` | Checks whether this host treats two names differing only by case as distinct files. |
771
- | `supportsBytes` | function | `() => boolean` | Checks whether this host accepts a filename carrying a raw byte no UTF-8 decoder resolves. |
752
+ | API | Kind | Signature | Summary |
753
+ | ------------------------ | -------- | ------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
754
+ | `readInventory` | function | `(root: URL \| string, targets: readonly string[], options?: InventoryOptions) => Readonly<Record<string, string>>` | Reads files from selected targets below a root directory. |
755
+ | `resolveContained` | function | `(root: string, target: string) => string \| undefined` | Resolves a target that stays below a root directory. |
756
+ | `requireContained` | function | `(root: string, target: string) => string` | Resolves a target that stays below a root directory, refusing an escape. |
757
+ | `hasScratchPath` | function | `(root: string, target: string) => boolean` | Reports whether a contained entry exists under a scratch directory without following its final link. |
758
+ | `isExcluded` | function | `(key: string, exclusions: readonly string[]) => boolean` | Reports whether a root-relative key matches an exclusion. |
759
+ | `readIdentity` | function | `(status: Stats) => ScratchIdentity` | Reads the identity of one allocated directory off a host status. |
760
+ | `matchesIdentity` | function | `(current: ScratchIdentity, allocation: ScratchIdentity) => boolean` | Reports whether two directory identities name the same allocation. |
761
+ | `readErrorCode` | function | `(error: unknown) => string \| undefined` | Reads the `code` an unknown thrown value carries. |
762
+ | `createLink` | function | `(path: string, source: string) => void` | Creates a symbolic link with a directory-junction fallback for hosts that refuse symbolic links. |
763
+ | `removeTree` | function | `(path: string) => void` | Removes a directory tree, retrying past a transient Windows handle-release race. |
764
+ | `isRunning` | function | `(pid: number) => boolean` | Reports whether a process id names a live process. |
765
+ | `waitForSocketClose` | function | `(socket: Socket, options?: WaitOptions) => Promise<void>` | Waits for a socket to close, accepting a peer reset as a forced close. |
766
+ | `destroyScratch` | function | `(scratch: ScratchInterface, options?: WaitOptions) => Promise<void>` | Destroys a scratch directory, retrying until the host releases it. |
767
+ | `requestUpgrade` | function | `(port: number, options?: UpgradeOptions) => Promise<UpgradeResult>` | Drives a real client upgrade request against a loopback port and reports what the server did. |
768
+ | `supportsDirectoryLinks` | function | `() => boolean` | Checks whether this host links a directory, by creating one link and reading through it. |
769
+ | `supportsFileLinks` | function | `() => boolean` | Checks whether this host links a file, by creating one link and reading the file through it. |
770
+ | `supportsMode` | function | `() => boolean` | Checks whether POSIX permission bits round-trip through this host's `chmod` and `stat`. |
771
+ | `supportsCase` | function | `() => boolean` | Checks whether this host treats two names differing only by case as distinct files. |
772
+ | `supportsBytes` | function | `() => boolean` | Checks whether this host accepts a filename carrying a raw byte no UTF-8 decoder resolves. |
773
+
774
+ `hasScratchPath` takes a scratch's absolute path and a relative or absolute target. It checks
775
+ containment before inspecting the root, returns `false` for a missing root or entry, and refuses a
776
+ root that is a symbolic link or not a directory. It follows intermediate links and counts a dangling final link
777
+ as present. It checks no allocation identity.
772
778
 
773
779
  `resolveContained` is the one lexical containment check, and `readInventory` and `createScratch`
774
780
  both call it. It resolves the target against the root — relative or absolute — and returns
@@ -496,7 +496,7 @@
496
496
  "storage": "claude/agents/orkestrel.md",
497
497
  "destination": ".claude/agents/orkestrel.md",
498
498
  "executable": false,
499
- "digest": "5f763e0e937888661175795f7c8235cba38db8ce6ebbcf3715ce50472756bd8f"
499
+ "digest": "45b2b7db03fb405888baab95eb966efecbb31506755cc7e3a003152828d6b008"
500
500
  },
501
501
  {
502
502
  "storage": "claude/agents/planner.md",
@@ -1096,7 +1096,7 @@
1096
1096
  "storage": "guides/test.md",
1097
1097
  "destination": "guides/test.md",
1098
1098
  "executable": false,
1099
- "digest": "1a3bea6f17d3c54fd20e4350a76e89c8f1457f2ef1bc83e0b04775a3727af4cd"
1099
+ "digest": "56d10ea64af7a6fdd756ee37c2f78cdb229a8cca58077c2f2c33f8ffc02c19b2"
1100
1100
  },
1101
1101
  {
1102
1102
  "storage": "guides/timeout.md",
@@ -2108,5 +2108,5 @@
2108
2108
  ]
2109
2109
  }
2110
2110
  ],
2111
- "digest": "38e3f7e6d29adb05d4febb0639fef8a650f175a7ba624c7958e8cd060730a80f"
2111
+ "digest": "6981084470d3dbfe6c017adc4a1ba93efd243bc15f11508c1ba8a6e01ae43093"
2112
2112
  }
@@ -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.95",
7
+ version: "0.0.97",
8
8
  description: "Scaffold workspaces with commands: new, audit, repair, catalog, and overwrite.",
9
9
  keywords: [
10
10
  "audit",
@@ -95,20 +95,20 @@ var package_default = {
95
95
  "prepublishOnly": "npm run format:check && npm run lint:check && npm run check && npm run build && npm test && npm run test:templates && npm run test:distribution -- --mode release"
96
96
  },
97
97
  dependencies: {
98
- "@orkestrel/console": "^0.0.15",
98
+ "@orkestrel/console": "^0.0.16",
99
99
  "@orkestrel/contract": "^0.0.19",
100
100
  "@orkestrel/emitter": "^0.0.12",
101
101
  "@orkestrel/markdown": "^0.0.17",
102
- "@orkestrel/process": "^0.0.14",
103
- "@orkestrel/template": "^0.0.9"
102
+ "@orkestrel/process": "^0.0.15",
103
+ "@orkestrel/template": "^0.0.10"
104
104
  },
105
105
  devDependencies: {
106
106
  "@microsoft/api-extractor": "^7.59.4",
107
- "@orkestrel/browser": "^0.0.27",
107
+ "@orkestrel/browser": "^0.0.28",
108
108
  "@orkestrel/guide": "^0.0.24",
109
109
  "@orkestrel/html": "^0.0.12",
110
- "@orkestrel/probe": "^0.0.22",
111
- "@orkestrel/test": "^0.0.24",
110
+ "@orkestrel/probe": "^0.0.23",
111
+ "@orkestrel/test": "^0.0.25",
112
112
  "@types/node": "^26.6.4",
113
113
  "@vitest/browser-playwright": "^4.1.11",
114
114
  "oxfmt": "^0.72.0",