@sublang/slc 0.1.0 → 0.2.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/README.md +99 -90
- package/dist/config.js +6 -2
- package/dist/config.js.map +1 -1
- package/dist/emitted-imports.d.ts +6 -0
- package/dist/emitted-imports.d.ts.map +1 -0
- package/dist/emitted-imports.js +36 -0
- package/dist/emitted-imports.js.map +1 -0
- package/dist/entry-module.d.ts.map +1 -1
- package/dist/entry-module.js +3 -1
- package/dist/entry-module.js.map +1 -1
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +26 -0
- package/dist/runner.js.map +1 -1
- package/package.json +5 -4
- package/dist/file-capability.d.ts +0 -46
- package/dist/file-capability.d.ts.map +0 -1
- package/dist/file-capability.js +0 -234
- package/dist/file-capability.js.map +0 -1
- package/dist/file-grants.d.ts +0 -79
- package/dist/file-grants.d.ts.map +0 -1
- package/dist/file-grants.js +0 -133
- package/dist/file-grants.js.map +0 -1
package/README.md
CHANGED
|
@@ -3,51 +3,62 @@
|
|
|
3
3
|
|
|
4
4
|
# slc
|
|
5
5
|
|
|
6
|
+
[](https://www.npmjs.com/package/@sublang/slc)
|
|
7
|
+
[](https://nodejs.org/)
|
|
6
8
|
[](https://github.com/sublang-ai/slc/actions/workflows/ci.yml)
|
|
7
9
|
|
|
8
|
-
_The SubLang Compiler:
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
10
|
+
_The SubLang Compiler: describe a workflow in a paragraph of prose, get a
|
|
11
|
+
deterministic multi-agent program you can inspect, verify, and run._
|
|
12
|
+
|
|
13
|
+
You write what should happen — in English or Chinese, no DSL, no
|
|
14
|
+
orchestration framework. `slc` compiles that paragraph into a spec, a
|
|
15
|
+
state machine, and a runnable **playbook** that drives AI coding agents
|
|
16
|
+
through it. Why compile prose instead of prompting with it:
|
|
17
|
+
|
|
18
|
+
- **Deterministic where it matters.** Who acts, in what order, when to
|
|
19
|
+
stop — the control flow becomes an inspectable
|
|
20
|
+
[XState](https://xstate.js.org) machine, not prompt improvisation.
|
|
21
|
+
LLM judgment is confined to the work *inside* each state.
|
|
22
|
+
- **Auditable at every stage.** The intermediates are first-class files
|
|
23
|
+
you can read and edit: the normalized text, one testable "shall" item
|
|
24
|
+
per behavior (in the GEARS spec grammar the SubLang stack shares), and
|
|
25
|
+
the state machine itself. The compiler also emits verification tests
|
|
26
|
+
binding its output to the source spec.
|
|
27
|
+
- **Cheaper and safer by optimization.** Steps that need no judgment are
|
|
28
|
+
rewritten at compile time into plain shell commands — no LLM call, no
|
|
29
|
+
hallucination, verifiable before anything runs.
|
|
30
|
+
- **Your agents, per role.** Compilation and execution run through the
|
|
31
|
+
agent CLIs you already use — Claude Code, Codex, Gemini, OpenCode —
|
|
32
|
+
selectable per role.
|
|
33
|
+
|
|
34
|
+
The flagship pipeline is `playbook` (the name of both the pipeline and
|
|
35
|
+
the sibling [playbook](https://github.com/sublang-ai/playbook) project
|
|
36
|
+
that executes its output): prose → GEARS spec items → XState machine →
|
|
37
|
+
a linked module the `playbook` CLI runs.
|
|
38
|
+
|
|
39
|
+
## See it run
|
|
40
|
+
|
|
41
|
+
The [demo](demo/README.md) compiles a one-paragraph description into a
|
|
42
|
+
two-agent code-review loop, then lets it loose on a buggy C file: the
|
|
43
|
+
coder and reviewer commit, review, and debate inside a real Git
|
|
44
|
+
repository until the review comes back clean. Precompiled reference
|
|
45
|
+
artifacts are included, so you can watch a run — or just read every
|
|
46
|
+
compile stage — without waiting on a compile.
|
|
36
47
|
|
|
37
48
|
## Install
|
|
38
49
|
|
|
39
|
-
Install the compiler and Playbook runtime in the project that will contain the
|
|
40
|
-
generated artifacts:
|
|
41
|
-
|
|
42
50
|
```bash
|
|
43
|
-
npm install
|
|
44
|
-
|
|
51
|
+
npm install -g @sublang/slc @sublang/playbook
|
|
52
|
+
slc --version
|
|
45
53
|
```
|
|
46
54
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
the artifact
|
|
50
|
-
|
|
55
|
+
Compiled artifacts import the Playbook engine from their own directory;
|
|
56
|
+
when that import does not resolve, `playbook run` (3.1+) links its own
|
|
57
|
+
engine beside the artifact and says so (`--no-provision` opts out).
|
|
58
|
+
Working inside an npm project instead? Install both packages there and
|
|
59
|
+
prefix the commands with `npx` — a project's own install is always
|
|
60
|
+
authoritative ([RELEASE-11](specs/dev/release.md#release-11) has the
|
|
61
|
+
full rules).
|
|
51
62
|
|
|
52
63
|
Requirements:
|
|
53
64
|
|
|
@@ -64,28 +75,36 @@ Requirements:
|
|
|
64
75
|
|
|
65
76
|
## Quick start
|
|
66
77
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
78
|
+
In any directory, write a prose workflow as a `.md` or plain `.txt`
|
|
79
|
+
file — [`demo/workflow.txt`](demo/workflow.txt) is a complete
|
|
80
|
+
one-paragraph example — and compile it:
|
|
70
81
|
|
|
71
82
|
```bash
|
|
72
|
-
|
|
83
|
+
slc playbook my-workflow.md
|
|
73
84
|
```
|
|
74
85
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
`
|
|
88
|
-
|
|
86
|
+
`slc` finds the `playbook` pipeline inside its own `@sublang/playbook`
|
|
87
|
+
dependency, so it compiles in any directory — no clone, no project
|
|
88
|
+
setup. Compilation drives your configured coding agent — the first run
|
|
89
|
+
seeds `~/.config/slc/config.yaml` with `agent: claude-code`; set
|
|
90
|
+
`SLC_AGENT` (or edit that file) to use another agent CLI — and a full
|
|
91
|
+
pipeline can take more than ten minutes. Plain-text input (`.txt`)
|
|
92
|
+
works too; it is normalized first. The pipeline's optimization pass,
|
|
93
|
+
which rewrites judgment-free steps into plain script, runs by default
|
|
94
|
+
(`--no-optimize` skips it).
|
|
95
|
+
|
|
96
|
+
Artifacts land in your working directory: `my-workflow.playbook/` holds
|
|
97
|
+
the intermediates — `my-workflow.gears.md`, the XState machine
|
|
98
|
+
`my-workflow.fsm.ts`, the linked runtime module, and its verification
|
|
99
|
+
tests — and `my-workflow.ts` is the runnable entry. Run it:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
playbook run ./my-workflow.ts "<your task>"
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Intermediates are first-class: edit one and re-run a single phase
|
|
106
|
+
(`slc playbook.gears2fsm …`) and it lands in the same place.
|
|
107
|
+
`slc --help` shows all invocation forms.
|
|
89
108
|
|
|
90
109
|
Success prints the written artifact paths and exits 0; a failure prints
|
|
91
110
|
diagnostics to stderr — naming the failing phase when one is at fault —
|
|
@@ -108,26 +127,10 @@ pipelinePath: # search roots for <pipeline> references; defaults to the cwd
|
|
|
108
127
|
- ./pipelines
|
|
109
128
|
```
|
|
110
129
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
`slc --config <path>` loads a specific file and disables discovery; a `--config`
|
|
117
|
-
path that does not exist is an error, whereas a discovery miss simply falls
|
|
118
|
-
through to the environment and defaults. Unknown keys, malformed YAML, and
|
|
119
|
-
wrong-typed values are rejected.
|
|
120
|
-
|
|
121
|
-
The matching environment variables, which override the file per key, are:
|
|
122
|
-
|
|
123
|
-
| Variable | Overrides | Meaning |
|
|
124
|
-
| --- | --- | --- |
|
|
125
|
-
| `SLC_AGENT` | `agent` | agent CLI: `claude-code`, `codex`, `gemini`, `opencode` |
|
|
126
|
-
| `SLC_MODEL` | `model` | optional model for the agent CLI |
|
|
127
|
-
| `SLC_PIPELINE_PATH` | `pipelinePath` | OS path-list of search roots (default: cwd) |
|
|
128
|
-
|
|
129
|
-
Credentials are read by the agent CLI from the inherited process environment.
|
|
130
|
-
Run `slc --help` for the full invocation and configuration summary.
|
|
130
|
+
A `slc.config.yaml` in the working directory wins over the user config;
|
|
131
|
+
`SLC_AGENT`, `SLC_MODEL`, and `SLC_PIPELINE_PATH` override either per
|
|
132
|
+
key. Discovery order, `--config`, and validation rules live in the
|
|
133
|
+
[CLI spec](specs/user/cli.md); `slc --help` prints the summary.
|
|
131
134
|
|
|
132
135
|
## How pipelines work
|
|
133
136
|
|
|
@@ -135,21 +138,23 @@ A pipeline is a directory of phase definitions named
|
|
|
135
138
|
`<source-format>2<target-format>.md`, each declaring its formats in a
|
|
136
139
|
`## Formats` table, plus an optional `link.md` defining the terminal
|
|
137
140
|
link phase. `slc` infers phase order by chaining formats — no
|
|
138
|
-
manifest — and refuses incomplete, branching, or cyclic chains.
|
|
139
|
-
|
|
140
|
-
|
|
141
|
+
manifest — and refuses incomplete, branching, or cyclic chains. Adding
|
|
142
|
+
a phase means writing a definition, never changing the compiler: `slc`
|
|
143
|
+
itself performs only the generic mechanics of chaining, validation, and
|
|
144
|
+
artifact placement. The bundled `playbook` pipeline chains `text2gears`
|
|
145
|
+
and `gears2fsm`, with `link` emitting the runnable runtime.
|
|
141
146
|
|
|
142
147
|
Every phase runs through a coding agent, one of two ways:
|
|
143
148
|
|
|
144
149
|
- **Interpreted** — the configured agent reads the definition and
|
|
145
|
-
performs it.
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
150
|
+
performs it. This is how an npm-installed `slc` runs the `playbook`
|
|
151
|
+
pipeline, using the definitions shipped inside `@sublang/playbook`.
|
|
152
|
+
- **Compiled** — the phase's own compiled playbook artifact drives the
|
|
153
|
+
agent through audited state-machine steps. This repository's checkout
|
|
154
|
+
runs its bundled phases this way: `slc` is self-hosting, its phase
|
|
155
|
+
definitions compiled, reviewed, and sha256-pinned under
|
|
156
|
+
[`pipelines/playbook/`](pipelines/playbook), failing closed on drift
|
|
157
|
+
([self-hosting spec](specs/user/self-hosting.md)).
|
|
153
158
|
|
|
154
159
|
Specs are the source of truth — start at the
|
|
155
160
|
[spec map](specs/map.md).
|
|
@@ -163,8 +168,9 @@ Specs are the source of truth — start at the
|
|
|
163
168
|
coding-agent SDK `slc` executes phases through.
|
|
164
169
|
- [playbook](https://github.com/sublang-ai/playbook) — authors the
|
|
165
170
|
`playbook` pipeline's phase specs and runs the compiled output.
|
|
166
|
-
- [spex](https://github.com/sublang-ai/spex) — the
|
|
167
|
-
invokes `slc` for its in-app playbook
|
|
171
|
+
- [spex](https://github.com/sublang-ai/spex) — the spec tool that owns
|
|
172
|
+
the shared GEARS grammar and invokes `slc` for its in-app playbook
|
|
173
|
+
compile flow.
|
|
168
174
|
|
|
169
175
|
## Develop
|
|
170
176
|
|
|
@@ -175,8 +181,11 @@ npm test
|
|
|
175
181
|
npm run lint
|
|
176
182
|
```
|
|
177
183
|
|
|
178
|
-
|
|
179
|
-
|
|
184
|
+
A checkout's own [`slc.config.yaml`](slc.config.yaml) routes the
|
|
185
|
+
`playbook` pipeline to the bundled copy under `pipelines/`, so repo
|
|
186
|
+
compiles exercise the pinned artifacts. CI additionally re-verifies the
|
|
187
|
+
compiled meta-phase bundles and checks that pin regeneration is
|
|
188
|
+
byte-identical to the committed index.
|
|
180
189
|
|
|
181
190
|
## Contributing
|
|
182
191
|
|
package/dist/config.js
CHANGED
|
@@ -150,10 +150,14 @@ function runtimeContractForPin(choice) {
|
|
|
150
150
|
// the six-port boundary and structured results while moving Captain host
|
|
151
151
|
// failures onto the resolved `failed` path and emitting thin linked
|
|
152
152
|
// modules (DR-017), so all three provenances select the composed profile.
|
|
153
|
-
// 1.
|
|
153
|
+
// 3.1.0 ships runtime.ts byte-identical to 2.0.0 and only adds the
|
|
154
|
+
// additive DR-022 compat self-report on the shared engine, so it selects
|
|
155
|
+
// the same profile (DR-018). 1.3.0 and 3.0.0 were never installed or
|
|
156
|
+
// reviewed here and stay fail-closed.
|
|
154
157
|
if (provenance === '@sublang/playbook@0.10.0' ||
|
|
155
158
|
provenance === '@sublang/playbook@1.0.0' ||
|
|
156
|
-
provenance === '@sublang/playbook@2.0.0'
|
|
159
|
+
provenance === '@sublang/playbook@2.0.0' ||
|
|
160
|
+
provenance === '@sublang/playbook@3.1.0') {
|
|
157
161
|
return 'composed-v2';
|
|
158
162
|
}
|
|
159
163
|
throw new Error(`unsupported pinned Playbook runtime contract: ${provenance}`);
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The relative import specifiers of a `.ts`/`.js` module that do not resolve
|
|
3
|
+
* to an existing file from the module's own directory, in source order.
|
|
4
|
+
*/
|
|
5
|
+
export declare function unresolvableRelativeImports(modulePath: string): Promise<string[]>;
|
|
6
|
+
//# sourceMappingURL=emitted-imports.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emitted-imports.d.ts","sourceRoot":"","sources":["../src/emitted-imports.ts"],"names":[],"mappings":"AAqBA;;;GAGG;AACH,wBAAsB,2BAA2B,CAC/C,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,EAAE,CAAC,CAWnB"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
// SPDX-FileCopyrightText: 2026 SubLang International <https://sublang.ai>
|
|
3
|
+
/**
|
|
4
|
+
* Deterministic load-integrity check for emitted modules (VERIFY-18).
|
|
5
|
+
*
|
|
6
|
+
* A linked artifact is code whose relative imports Node resolves with exact
|
|
7
|
+
* specifiers — `./workflow.fsm.js` does not find `workflow.fsm.ts`. An
|
|
8
|
+
* agent-performed link can emit the wrong extension, and a compile that
|
|
9
|
+
* reports success for a module that cannot load defers the failure to the
|
|
10
|
+
* first `playbook run`. This check reads the emitted module and requires
|
|
11
|
+
* every relative specifier to name an existing file beside it.
|
|
12
|
+
*/
|
|
13
|
+
import { existsSync } from 'node:fs';
|
|
14
|
+
import { readFile } from 'node:fs/promises';
|
|
15
|
+
import { dirname, resolve } from 'node:path';
|
|
16
|
+
const IMPORT_SPECIFIER = /\bfrom\s+(['"])([^'"\n]+)\1|\bimport\s*\(\s*(['"])([^'"\n]+)\3\s*\)|\bimport\s+(['"])([^'"\n]+)\5/g;
|
|
17
|
+
/**
|
|
18
|
+
* The relative import specifiers of a `.ts`/`.js` module that do not resolve
|
|
19
|
+
* to an existing file from the module's own directory, in source order.
|
|
20
|
+
*/
|
|
21
|
+
export async function unresolvableRelativeImports(modulePath) {
|
|
22
|
+
const source = await readFile(modulePath, 'utf8');
|
|
23
|
+
const dir = dirname(modulePath);
|
|
24
|
+
const missing = [];
|
|
25
|
+
for (const match of source.matchAll(IMPORT_SPECIFIER)) {
|
|
26
|
+
const specifier = match[2] ?? match[4] ?? match[6];
|
|
27
|
+
if (specifier === undefined)
|
|
28
|
+
continue;
|
|
29
|
+
if (!specifier.startsWith('./') && !specifier.startsWith('../'))
|
|
30
|
+
continue;
|
|
31
|
+
if (!existsSync(resolve(dir, specifier)))
|
|
32
|
+
missing.push(specifier);
|
|
33
|
+
}
|
|
34
|
+
return missing;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=emitted-imports.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emitted-imports.js","sourceRoot":"","sources":["../src/emitted-imports.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,0EAA0E;AAE1E;;;;;;;;;GASG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE7C,MAAM,gBAAgB,GACpB,oGAAoG,CAAC;AAEvG;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,UAAkB;IAElB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAClD,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAChC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACtD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;QACnD,IAAI,SAAS,KAAK,SAAS;YAAE,SAAS;QACtC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,SAAS;QAC1E,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry-module.d.ts","sourceRoot":"","sources":["../src/entry-module.ts"],"names":[],"mappings":"AAwBA,2CAA2C;AAC3C,MAAM,WAAW,sBAAsB;IACrC,wEAAwE;IACxE,GAAG,EAAE,MAAM,CAAC;IACZ,kEAAkE;IAClE,QAAQ,EAAE,MAAM,CAAC;IACjB,oFAAoF;IACpF,QAAQ,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,SAAS,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,mDAAmD;AACnD,wBAAsB,eAAe,CACnC,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,MAAM,CAAC,CAiCjB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"entry-module.d.ts","sourceRoot":"","sources":["../src/entry-module.ts"],"names":[],"mappings":"AAwBA,2CAA2C;AAC3C,MAAM,WAAW,sBAAsB;IACrC,wEAAwE;IACxE,GAAG,EAAE,MAAM,CAAC;IACZ,kEAAkE;IAClE,QAAQ,EAAE,MAAM,CAAC;IACjB,oFAAoF;IACpF,QAAQ,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,SAAS,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,mDAAmD;AACnD,wBAAsB,eAAe,CACnC,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,MAAM,CAAC,CAiCjB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAsBvD"}
|
package/dist/entry-module.js
CHANGED
|
@@ -54,7 +54,9 @@ export function declaredPlayers(gears) {
|
|
|
54
54
|
const players = [];
|
|
55
55
|
let inBlock = false;
|
|
56
56
|
for (const line of gears.split('\n')) {
|
|
57
|
-
|
|
57
|
+
// Gears render the declaration either as a `Players:` line or as a
|
|
58
|
+
// markdown `Players` heading; both carry the same source declaration.
|
|
59
|
+
if (/^(?:#{1,6}\s+Players|Players:)\s*$/.test(line.trim())) {
|
|
58
60
|
inBlock = true;
|
|
59
61
|
continue;
|
|
60
62
|
}
|
package/dist/entry-module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry-module.js","sourceRoot":"","sources":["../src/entry-module.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,0EAA0E;AAE1E;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAgB9C,mDAAmD;AACnD,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAA4B;IAE5B,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACvC,0EAA0E;IAC1E,wEAAwE;IACxE,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QACrD,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CACb,4CAA4C,QAAQ,UAAU,MAAM,8BAA8B,CACnG,CAAC;QACJ,CAAC;QACD,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC;IACD,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,IAAI,CAC3C,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,CAClC,CAAC;IACF,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC;IACnD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC;IACnD,MAAM,SAAS,CACb,IAAI,EACJ,iBAAiB,CAAC;QAChB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,UAAU,EAAE,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;QAC/C,OAAO;QACP,SAAS;QACT,MAAM;KACP,CAAC,EACF,MAAM,CACP,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,IAAI,
|
|
1
|
+
{"version":3,"file":"entry-module.js","sourceRoot":"","sources":["../src/entry-module.ts"],"names":[],"mappings":"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"}
|
package/dist/runner.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAoBA,OAAO,EAEL,KAAK,aAAa,EAGnB,MAAM,gBAAgB,CAAC;AAIxB,OAAO,EAAuC,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAEhF,OAAO,EAEL,KAAK,gBAAgB,EAGtB,MAAM,eAAe,CAAC;AAavB,iFAAiF;AACjF,MAAM,WAAW,iBAAiB;IAChC,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,MAAM,EAAE,SAAS,CAAC;CACnB;AAED,4CAA4C;AAC5C,MAAM,WAAW,OAAO;IACtB,uEAAuE;IACvE,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,uFAAuF;IACvF,QAAQ,EAAE,aAAa,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,iBAAiB,KAAK,aAAa,CAAC;IAC3D,uGAAuG;IACvG,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,mCAAmC;AACnC,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,OAAO,CAAC;IACZ,wCAAwC;IACxC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,sEAAsE;IACtE,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;;GAIG;AACH,wBAAsB,MAAM,CAC1B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,SAAS,CAAC,CAoCpB;AA4VD,6EAA6E;AAC7E,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD"}
|
package/dist/runner.js
CHANGED
|
@@ -14,6 +14,7 @@ import { dirname, join } from 'node:path';
|
|
|
14
14
|
import { fileURLToPath } from 'node:url';
|
|
15
15
|
import { artifactDir, planArtifacts, parseSource } from './artifacts.js';
|
|
16
16
|
import { emitEntryModule } from './entry-module.js';
|
|
17
|
+
import { unresolvableRelativeImports } from './emitted-imports.js';
|
|
17
18
|
import { formatFailureReport, runPhase, } from './execution.js';
|
|
18
19
|
import { parseInvocation } from './invocation.js';
|
|
19
20
|
import { linkedArtifactPath, loadLinkFile } from './link.js';
|
|
@@ -231,6 +232,18 @@ async function runFullLink(invocation, deps) {
|
|
|
231
232
|
gearsPath: gearsPlan.path,
|
|
232
233
|
textPath,
|
|
233
234
|
});
|
|
235
|
+
const missing = await unresolvableRelativeImports(entryPath);
|
|
236
|
+
if (missing.length > 0) {
|
|
237
|
+
return {
|
|
238
|
+
ok: false,
|
|
239
|
+
outputs: verified.outputs,
|
|
240
|
+
diagnostics: [
|
|
241
|
+
...verified.diagnostics,
|
|
242
|
+
`entry module ${entryPath} has unresolvable relative imports: ` +
|
|
243
|
+
`${missing.join(', ')} (VERIFY-18)`,
|
|
244
|
+
],
|
|
245
|
+
};
|
|
246
|
+
}
|
|
234
247
|
return { ...verified, outputs: [...verified.outputs, entryPath] };
|
|
235
248
|
}
|
|
236
249
|
}
|
|
@@ -440,6 +453,19 @@ async function executeSteps(steps, pipeline, deps) {
|
|
|
440
453
|
return { ok: false, outputs, diagnostics };
|
|
441
454
|
}
|
|
442
455
|
diagnostics.push(...result.diagnostics);
|
|
456
|
+
// A linked module that cannot resolve its own relative imports cannot
|
|
457
|
+
// load under `playbook run`; fail the link rather than report success
|
|
458
|
+
// for a dead artifact (VERIFY-18).
|
|
459
|
+
if (step.phase === 'link' &&
|
|
460
|
+
(step.targetExt === '.ts' || step.targetExt === '.js')) {
|
|
461
|
+
const missing = await unresolvableRelativeImports(step.request.kind === 'link' ? step.request.linked : target);
|
|
462
|
+
if (missing.length > 0) {
|
|
463
|
+
diagnostics.push(`linked module ${target} has unresolvable relative imports: ` +
|
|
464
|
+
`${missing.join(', ')} — an emitted module that cannot load ` +
|
|
465
|
+
'fails the link (VERIFY-18)');
|
|
466
|
+
return { ok: false, outputs, diagnostics };
|
|
467
|
+
}
|
|
468
|
+
}
|
|
443
469
|
outputs.push(target);
|
|
444
470
|
}
|
|
445
471
|
return { ok: true, outputs, diagnostics };
|
package/dist/runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sublang/slc",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "SubLang Compiler (slc): runs phase pipelines.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -41,9 +41,10 @@
|
|
|
41
41
|
"node": ">=23.6"
|
|
42
42
|
},
|
|
43
43
|
"scripts": {
|
|
44
|
-
"build": "tsc && cp src/normalize.md src/slc.config.template.yaml dist/",
|
|
44
|
+
"build": "rm -rf dist && tsc && cp src/normalize.md src/slc.config.template.yaml dist/",
|
|
45
45
|
"test": "vitest run",
|
|
46
46
|
"test:package": "node scripts/test-package.mjs",
|
|
47
|
+
"test:acceptance": "node scripts/test-acceptance.mjs",
|
|
47
48
|
"lint": "eslint .",
|
|
48
49
|
"format": "prettier --write .",
|
|
49
50
|
"format:check": "prettier --check .",
|
|
@@ -51,7 +52,7 @@
|
|
|
51
52
|
"verify:release": "node scripts/verify-release-workflow.mjs",
|
|
52
53
|
"verify:artifacts": "node scripts/verify-artifacts.mjs pipelines/playbook/text2gears.slc text2gears && node scripts/verify-artifacts.mjs pipelines/playbook/gears2fsm.slc gears2fsm && node scripts/verify-artifacts.mjs pipelines/playbook/link.slc link",
|
|
53
54
|
"verify:pins": "node scripts/generate-pins.mjs && git diff --exit-code -- pipelines/playbook/slc.pins.json",
|
|
54
|
-
"verify:demo": "node demo/reference/check.mjs en",
|
|
55
|
+
"verify:demo": "node demo/reference/check.mjs en && node demo/reference/check.mjs zh",
|
|
55
56
|
"release:check": "npm run format:check && npm run lint && npm run build && npm test && npm run verify:definitions && npm run verify:release && npm run verify:artifacts && npm run verify:pins && npm run verify:demo && npm run test:package",
|
|
56
57
|
"prepublishOnly": "npm run release:check"
|
|
57
58
|
},
|
|
@@ -67,7 +68,7 @@
|
|
|
67
68
|
},
|
|
68
69
|
"dependencies": {
|
|
69
70
|
"@sublang/cligent": "^0.16.0",
|
|
70
|
-
"@sublang/playbook": "^
|
|
71
|
+
"@sublang/playbook": "^3.1.0",
|
|
71
72
|
"@sublang/spex": "^0.3.0",
|
|
72
73
|
"typescript": "^6.0.3",
|
|
73
74
|
"xstate": "^5.32.4",
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { type Hash } from './hash.js';
|
|
2
|
-
/** A virtual POSIX path inside the run root (DR-008). */
|
|
3
|
-
export type SlcPath = string;
|
|
4
|
-
/** Machine-readable reason a capability operation failed (DR-008). */
|
|
5
|
-
export type FileErrorCode = 'invalid_path' | 'not_found' | 'not_file' | 'not_directory' | 'unauthorized' | 'stale' | 'io_error';
|
|
6
|
-
/** The result of a capability operation: a value, or a coded failure (DR-008). */
|
|
7
|
-
export type FileResult<T> = {
|
|
8
|
-
ok: true;
|
|
9
|
-
value: T;
|
|
10
|
-
} | {
|
|
11
|
-
ok: false;
|
|
12
|
-
code: FileErrorCode;
|
|
13
|
-
diagnostic: string;
|
|
14
|
-
};
|
|
15
|
-
/** One immediate child returned by {@link FileCapability.list} (DR-008). */
|
|
16
|
-
export interface DirectoryEntry {
|
|
17
|
-
name: string;
|
|
18
|
-
kind: 'file' | 'directory';
|
|
19
|
-
}
|
|
20
|
-
/** The artifact-facing file capability (FCAP-1; DR-008). */
|
|
21
|
-
export interface FileCapability {
|
|
22
|
-
read(path: SlcPath): Promise<FileResult<{
|
|
23
|
-
bytes: Uint8Array;
|
|
24
|
-
hash: Hash;
|
|
25
|
-
}>>;
|
|
26
|
-
list(path: SlcPath): Promise<FileResult<{
|
|
27
|
-
entries: DirectoryEntry[];
|
|
28
|
-
}>>;
|
|
29
|
-
write(path: SlcPath, bytes: Uint8Array, opts?: {
|
|
30
|
-
ifMatch?: Hash;
|
|
31
|
-
}): Promise<FileResult<{
|
|
32
|
-
hash: Hash;
|
|
33
|
-
}>>;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Creates a {@link FileCapability} rooted at `runRoot`, confining every operation
|
|
37
|
-
* to that directory after symlink resolution (FCAP-1..6).
|
|
38
|
-
*/
|
|
39
|
-
export declare function createFileCapability(runRoot: string): FileCapability;
|
|
40
|
-
/**
|
|
41
|
-
* Canonicalizes a virtual POSIX path to its normalized `/`-prefixed form — the key
|
|
42
|
-
* the host-side grant model matches on — or `null` when the path is
|
|
43
|
-
* platform-absolute or escapes the run root (FCAP-2).
|
|
44
|
-
*/
|
|
45
|
-
export declare function canonicalize(path: SlcPath): string | null;
|
|
46
|
-
//# sourceMappingURL=file-capability.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-capability.d.ts","sourceRoot":"","sources":["../src/file-capability.ts"],"names":[],"mappings":"AAoCA,OAAO,EAAE,KAAK,IAAI,EAAa,MAAM,WAAW,CAAC;AAEjD,yDAAyD;AACzD,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAE7B,sEAAsE;AACtE,MAAM,MAAM,aAAa,GACrB,cAAc,GACd,WAAW,GACX,UAAU,GACV,eAAe,GACf,cAAc,GACd,OAAO,GACP,UAAU,CAAC;AAEf,kFAAkF;AAClF,MAAM,MAAM,UAAU,CAAC,CAAC,IACpB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GACtB;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,aAAa,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3D,4EAA4E;AAC5E,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;CAC5B;AAED,4DAA4D;AAC5D,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;QAAE,KAAK,EAAE,UAAU,CAAC;QAAC,IAAI,EAAE,IAAI,CAAA;KAAE,CAAC,CAAC,CAAC;IAC5E,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,cAAc,EAAE,CAAA;KAAE,CAAC,CAAC,CAAC;IACxE,KAAK,CACH,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,UAAU,EACjB,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,IAAI,CAAA;KAAE,GACxB,OAAO,CAAC,UAAU,CAAC;QAAE,IAAI,EAAE,IAAI,CAAA;KAAE,CAAC,CAAC,CAAC;CACxC;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,CAoHpE;AAwDD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CASzD"}
|
package/dist/file-capability.js
DELETED
|
@@ -1,234 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
-
// SPDX-FileCopyrightText: 2026 SubLang International <https://sublang.ai>
|
|
3
|
-
/**
|
|
4
|
-
* Host-supplied file capability for compiled phase artifacts (FCAP-1..6; DR-008).
|
|
5
|
-
*
|
|
6
|
-
* A {@link FileCapability} gives a compiled artifact deterministic, confined
|
|
7
|
-
* whole-file access through three operations — `read`, `list`, and `write` — over
|
|
8
|
-
* virtual POSIX paths inside a per-run root. A leading `/` names the run root, not
|
|
9
|
-
* an operating-system absolute path; paths are normalized (repeated separators
|
|
10
|
-
* collapsed, `.` removed, `..` resolved) and confined to the root after resolving
|
|
11
|
-
* symlinks, so a path that escapes the root or uses platform-absolute syntax (for
|
|
12
|
-
* example a Windows drive path) is rejected as `invalid_path` (FCAP-2). Reads and
|
|
13
|
-
* writes return the exact-byte `sha256:` hash with no content transformation
|
|
14
|
-
* (FCAP-3, FCAP-5); writes are atomic whole-file replacements and honor an
|
|
15
|
-
* `ifMatch` compare-and-swap that returns `stale` on a hash mismatch (FCAP-6);
|
|
16
|
-
* listing returns only immediate children, directories before files then
|
|
17
|
-
* lexicographic (FCAP-4).
|
|
18
|
-
*
|
|
19
|
-
* This module is the artifact-facing surface. The host-side per-run grant model
|
|
20
|
-
* that authorizes each operation (default-deny, writable target/linked only) is a
|
|
21
|
-
* later FCAP concern; this capability authorizes by run-root containment alone.
|
|
22
|
-
* See specs/dev/file-capability.md.
|
|
23
|
-
*/
|
|
24
|
-
import { randomUUID } from 'node:crypto';
|
|
25
|
-
import { readFile, readdir, realpath, rename, stat, writeFile, } from 'node:fs/promises';
|
|
26
|
-
import { basename, dirname, join, relative, resolve, sep } from 'node:path';
|
|
27
|
-
import { hashBytes } from './hash.js';
|
|
28
|
-
/**
|
|
29
|
-
* Creates a {@link FileCapability} rooted at `runRoot`, confining every operation
|
|
30
|
-
* to that directory after symlink resolution (FCAP-1..6).
|
|
31
|
-
*/
|
|
32
|
-
export function createFileCapability(runRoot) {
|
|
33
|
-
const root = resolve(runRoot);
|
|
34
|
-
let realRoot = null;
|
|
35
|
-
const canonicalRoot = () => (realRoot ??= realpath(root));
|
|
36
|
-
async function resolveHost(path) {
|
|
37
|
-
if (isPlatformAbsolute(path)) {
|
|
38
|
-
return fail('invalid_path', `path "${path}" uses platform-absolute syntax`);
|
|
39
|
-
}
|
|
40
|
-
const segments = normalizeVirtual(path);
|
|
41
|
-
if (segments === null) {
|
|
42
|
-
return fail('invalid_path', `path "${path}" escapes the run root`);
|
|
43
|
-
}
|
|
44
|
-
const host = segments.length === 0 ? root : join(root, ...segments);
|
|
45
|
-
const real = await realpathAllowingMissing(host);
|
|
46
|
-
if (!isInside(await canonicalRoot(), real)) {
|
|
47
|
-
return fail('invalid_path', `path "${path}" escapes the run root after resolving symlinks`);
|
|
48
|
-
}
|
|
49
|
-
return { ok: true, value: host };
|
|
50
|
-
}
|
|
51
|
-
// Serialize writes per resolved host path so an ifMatch read-check-rename runs
|
|
52
|
-
// without another write to the same path interleaving at an await — making the
|
|
53
|
-
// compare-and-swap atomic across operations through this capability (FCAP-6).
|
|
54
|
-
const writeLocks = new Map();
|
|
55
|
-
function serializeWrite(host, op) {
|
|
56
|
-
const prior = writeLocks.get(host) ?? Promise.resolve();
|
|
57
|
-
const run = prior.then(op, op);
|
|
58
|
-
writeLocks.set(host, run.then(() => undefined, () => undefined));
|
|
59
|
-
return run;
|
|
60
|
-
}
|
|
61
|
-
return {
|
|
62
|
-
async read(path) {
|
|
63
|
-
const resolved = await resolveHost(path);
|
|
64
|
-
if (!resolved.ok) {
|
|
65
|
-
return resolved;
|
|
66
|
-
}
|
|
67
|
-
try {
|
|
68
|
-
const info = await stat(resolved.value);
|
|
69
|
-
if (info.isDirectory()) {
|
|
70
|
-
return fail('not_file', `path "${path}" is a directory`);
|
|
71
|
-
}
|
|
72
|
-
const bytes = await readFile(resolved.value);
|
|
73
|
-
return { ok: true, value: { bytes, hash: hashBytes(bytes) } };
|
|
74
|
-
}
|
|
75
|
-
catch (error) {
|
|
76
|
-
return fromFsError(error, path);
|
|
77
|
-
}
|
|
78
|
-
},
|
|
79
|
-
async list(path) {
|
|
80
|
-
const resolved = await resolveHost(path);
|
|
81
|
-
if (!resolved.ok) {
|
|
82
|
-
return resolved;
|
|
83
|
-
}
|
|
84
|
-
try {
|
|
85
|
-
const info = await stat(resolved.value);
|
|
86
|
-
if (!info.isDirectory()) {
|
|
87
|
-
return fail('not_directory', `path "${path}" is not a directory`);
|
|
88
|
-
}
|
|
89
|
-
const dirents = await readdir(resolved.value, { withFileTypes: true });
|
|
90
|
-
const entries = dirents
|
|
91
|
-
.map((entry) => ({
|
|
92
|
-
name: entry.name,
|
|
93
|
-
kind: entry.isDirectory() ? 'directory' : 'file',
|
|
94
|
-
}))
|
|
95
|
-
.sort(compareEntries);
|
|
96
|
-
return { ok: true, value: { entries } };
|
|
97
|
-
}
|
|
98
|
-
catch (error) {
|
|
99
|
-
return fromFsError(error, path);
|
|
100
|
-
}
|
|
101
|
-
},
|
|
102
|
-
async write(path, bytes, opts) {
|
|
103
|
-
const resolved = await resolveHost(path);
|
|
104
|
-
if (!resolved.ok) {
|
|
105
|
-
return resolved;
|
|
106
|
-
}
|
|
107
|
-
const host = resolved.value;
|
|
108
|
-
return serializeWrite(host, async () => {
|
|
109
|
-
try {
|
|
110
|
-
const current = await currentHash(host);
|
|
111
|
-
if (current.kind === 'directory') {
|
|
112
|
-
return fail('not_file', `path "${path}" is a directory`);
|
|
113
|
-
}
|
|
114
|
-
if (opts?.ifMatch !== undefined && opts.ifMatch !== current.hash) {
|
|
115
|
-
return fail('stale', `path "${path}" did not match ifMatch ${opts.ifMatch}`);
|
|
116
|
-
}
|
|
117
|
-
await atomicWrite(host, bytes);
|
|
118
|
-
return { ok: true, value: { hash: hashBytes(bytes) } };
|
|
119
|
-
}
|
|
120
|
-
catch (error) {
|
|
121
|
-
return fromFsError(error, path);
|
|
122
|
-
}
|
|
123
|
-
});
|
|
124
|
-
},
|
|
125
|
-
};
|
|
126
|
-
}
|
|
127
|
-
/** The current exact-byte hash of `host`, or `null` when it does not exist. */
|
|
128
|
-
async function currentHash(host) {
|
|
129
|
-
try {
|
|
130
|
-
const info = await stat(host);
|
|
131
|
-
if (info.isDirectory()) {
|
|
132
|
-
return { kind: 'directory' };
|
|
133
|
-
}
|
|
134
|
-
return { kind: 'file', hash: hashBytes(await readFile(host)) };
|
|
135
|
-
}
|
|
136
|
-
catch (error) {
|
|
137
|
-
if (isNotFound(error)) {
|
|
138
|
-
return { kind: 'absent', hash: null };
|
|
139
|
-
}
|
|
140
|
-
throw error;
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
/** Atomically replaces or creates `host` by writing a sibling temp file and renaming. */
|
|
144
|
-
async function atomicWrite(host, bytes) {
|
|
145
|
-
const temp = join(dirname(host), `.${basename(host)}.${randomUUID()}.tmp`);
|
|
146
|
-
await writeFile(temp, bytes);
|
|
147
|
-
await rename(temp, host);
|
|
148
|
-
}
|
|
149
|
-
/**
|
|
150
|
-
* Normalizes a virtual POSIX path to in-root segments, treating a leading `/` as
|
|
151
|
-
* the root and resolving `.`/`..`; returns `null` when `..` escapes the root.
|
|
152
|
-
*/
|
|
153
|
-
function normalizeVirtual(path) {
|
|
154
|
-
const out = [];
|
|
155
|
-
for (const part of path.split('/')) {
|
|
156
|
-
if (part === '' || part === '.') {
|
|
157
|
-
continue;
|
|
158
|
-
}
|
|
159
|
-
if (part === '..') {
|
|
160
|
-
if (out.length === 0) {
|
|
161
|
-
return null;
|
|
162
|
-
}
|
|
163
|
-
out.pop();
|
|
164
|
-
continue;
|
|
165
|
-
}
|
|
166
|
-
out.push(part);
|
|
167
|
-
}
|
|
168
|
-
return out;
|
|
169
|
-
}
|
|
170
|
-
/** Rejects Windows drive paths and UNC syntax (DR-008 platform-absolute paths). */
|
|
171
|
-
function isPlatformAbsolute(path) {
|
|
172
|
-
return /^[a-zA-Z]:[\\/]/.test(path) || path.startsWith('\\');
|
|
173
|
-
}
|
|
174
|
-
/**
|
|
175
|
-
* Canonicalizes a virtual POSIX path to its normalized `/`-prefixed form — the key
|
|
176
|
-
* the host-side grant model matches on — or `null` when the path is
|
|
177
|
-
* platform-absolute or escapes the run root (FCAP-2).
|
|
178
|
-
*/
|
|
179
|
-
export function canonicalize(path) {
|
|
180
|
-
if (isPlatformAbsolute(path)) {
|
|
181
|
-
return null;
|
|
182
|
-
}
|
|
183
|
-
const segments = normalizeVirtual(path);
|
|
184
|
-
if (segments === null) {
|
|
185
|
-
return null;
|
|
186
|
-
}
|
|
187
|
-
return `/${segments.join('/')}`;
|
|
188
|
-
}
|
|
189
|
-
/** Resolves `host` through symlinks, falling back to the deepest existing ancestor. */
|
|
190
|
-
async function realpathAllowingMissing(host) {
|
|
191
|
-
try {
|
|
192
|
-
return await realpath(host);
|
|
193
|
-
}
|
|
194
|
-
catch (error) {
|
|
195
|
-
if (!isNotFound(error)) {
|
|
196
|
-
throw error;
|
|
197
|
-
}
|
|
198
|
-
const parent = dirname(host);
|
|
199
|
-
if (parent === host) {
|
|
200
|
-
return host;
|
|
201
|
-
}
|
|
202
|
-
return join(await realpathAllowingMissing(parent), basename(host));
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
function isInside(root, candidate) {
|
|
206
|
-
if (candidate === root) {
|
|
207
|
-
return true;
|
|
208
|
-
}
|
|
209
|
-
const rel = relative(root, candidate);
|
|
210
|
-
return rel !== '' && rel !== '..' && !rel.startsWith(`..${sep}`);
|
|
211
|
-
}
|
|
212
|
-
/** Orders entries with directories before files, then lexicographically by name. */
|
|
213
|
-
function compareEntries(a, b) {
|
|
214
|
-
if (a.kind !== b.kind) {
|
|
215
|
-
return a.kind === 'directory' ? -1 : 1;
|
|
216
|
-
}
|
|
217
|
-
return a.name < b.name ? -1 : a.name > b.name ? 1 : 0;
|
|
218
|
-
}
|
|
219
|
-
function fromFsError(error, path) {
|
|
220
|
-
if (isNotFound(error)) {
|
|
221
|
-
return fail('not_found', `path "${path}" was not found`);
|
|
222
|
-
}
|
|
223
|
-
return fail('io_error', `path "${path}": ${messageOf(error)}`);
|
|
224
|
-
}
|
|
225
|
-
function isNotFound(error) {
|
|
226
|
-
return error?.code === 'ENOENT';
|
|
227
|
-
}
|
|
228
|
-
function fail(code, diagnostic) {
|
|
229
|
-
return { ok: false, code, diagnostic };
|
|
230
|
-
}
|
|
231
|
-
function messageOf(error) {
|
|
232
|
-
return error instanceof Error ? error.message : String(error);
|
|
233
|
-
}
|
|
234
|
-
//# sourceMappingURL=file-capability.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-capability.js","sourceRoot":"","sources":["../src/file-capability.ts"],"names":[],"mappings":"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"}
|
package/dist/file-grants.d.ts
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Host-side per-run grant model for the file capability (FCAP-11..14; DR-008).
|
|
3
|
-
*
|
|
4
|
-
* A compiled phase artifact reaches files only through a {@link FileCapability}
|
|
5
|
-
* the host builds for that run. The capability is default-deny: an operation
|
|
6
|
-
* succeeds only when its path is inside the run root (enforced by the artifact-
|
|
7
|
-
* facing layer in `file-capability.ts`) and is covered by a {@link Grant} of the
|
|
8
|
-
* matching access. {@link buildRunGrants} encodes the policy — the only writable
|
|
9
|
-
* path is the run's `target` (compile) or `linked` (link), and read grants are
|
|
10
|
-
* the run's source/object inputs, its link target when applicable, and the
|
|
11
|
-
* recorded semantic-input closure, each enumerated as a file grant.
|
|
12
|
-
* {@link createGuardedCapability} wraps a run-root capability with that grant set,
|
|
13
|
-
* reporting `unauthorized` for any ungranted access.
|
|
14
|
-
*
|
|
15
|
-
* Directory listing and recursive directory reads are withheld: until a pinning
|
|
16
|
-
* extension defines directory listing and subtree identities, this model grants
|
|
17
|
-
* neither (DR-008), so a pinned phase cannot widen its closure at run time.
|
|
18
|
-
* Scope failures (`invalid_path`, `unauthorized`) are distinguished by
|
|
19
|
-
* {@link isScopeFailure} so the executor can fail them like a generic check rather
|
|
20
|
-
* than a phase `BLOCKED`. See specs/dev/file-capability.md.
|
|
21
|
-
*/
|
|
22
|
-
import { type FileCapability, type FileErrorCode, type SlcPath } from './file-capability.js';
|
|
23
|
-
import { type Hash } from './hash.js';
|
|
24
|
-
/** Whether a grant authorizes reading or writing (DR-008). */
|
|
25
|
-
export type GrantAccess = 'read' | 'write';
|
|
26
|
-
/** Whether a grant covers a file or a directory (DR-008). */
|
|
27
|
-
export type GrantKind = 'file' | 'directory';
|
|
28
|
-
/** Why a path is granted, for audit and diagnostics (DR-008). */
|
|
29
|
-
export type GrantReason = 'source' | 'object' | 'linkTarget' | 'semanticInput' | 'target' | 'linked';
|
|
30
|
-
/** One host-side authorization over a normalized virtual path (DR-008). */
|
|
31
|
-
export interface Grant {
|
|
32
|
-
/** Normalized virtual path (see {@link canonicalize}). */
|
|
33
|
-
path: string;
|
|
34
|
-
access: GrantAccess;
|
|
35
|
-
kind: GrantKind;
|
|
36
|
-
/** Directory grants only: whether `list` is allowed. */
|
|
37
|
-
listing?: boolean;
|
|
38
|
-
/** Directory read grants only: whether descendant reads are covered. */
|
|
39
|
-
recursive?: boolean;
|
|
40
|
-
/** Expected identity for audit: file hash, listing identity, or subtree identity. */
|
|
41
|
-
identity?: Hash;
|
|
42
|
-
reason: GrantReason;
|
|
43
|
-
}
|
|
44
|
-
/** The run inputs a grant set is closed over (DR-008; the closure to authorize). */
|
|
45
|
-
export interface RunGrantSpec {
|
|
46
|
-
kind: 'compile' | 'link';
|
|
47
|
-
/** Compile source input. */
|
|
48
|
-
source?: SlcPath;
|
|
49
|
-
/** Link object artifacts. */
|
|
50
|
-
objects?: readonly SlcPath[];
|
|
51
|
-
/** Runtime link target, when the run consumes one. */
|
|
52
|
-
linkTarget?: SlcPath;
|
|
53
|
-
/** Compile writable target. */
|
|
54
|
-
target?: SlcPath;
|
|
55
|
-
/** Link writable artifact. */
|
|
56
|
-
linked?: SlcPath;
|
|
57
|
-
/** Recorded semantic-input closure files, each enumerated (DR-007). */
|
|
58
|
-
semanticInputs?: readonly {
|
|
59
|
-
path: SlcPath;
|
|
60
|
-
identity?: Hash;
|
|
61
|
-
}[];
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Builds the default-deny grant set for a run (FCAP-12, FCAP-13).
|
|
65
|
-
*
|
|
66
|
-
* The only writable grant is the run's `target` (compile) or `linked` (link); read
|
|
67
|
-
* grants enumerate the source/object inputs, the link target when present, and the
|
|
68
|
-
* semantic-input closure. Directory listing and recursive reads are not granted.
|
|
69
|
-
*/
|
|
70
|
-
export declare function buildRunGrants(spec: RunGrantSpec): Grant[];
|
|
71
|
-
/**
|
|
72
|
-
* Wraps a run-root capability with a grant set, denying every ungranted access
|
|
73
|
-
* (FCAP-11). Path validity and run-root containment are left to the wrapped
|
|
74
|
-
* capability, so an invalid or escaping path still reports `invalid_path`.
|
|
75
|
-
*/
|
|
76
|
-
export declare function createGuardedCapability(runRoot: string, grants: readonly Grant[]): FileCapability;
|
|
77
|
-
/** Reports whether a capability error is a host-enforced scope failure (FCAP-14). */
|
|
78
|
-
export declare function isScopeFailure(code: FileErrorCode): boolean;
|
|
79
|
-
//# sourceMappingURL=file-grants.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-grants.d.ts","sourceRoot":"","sources":["../src/file-grants.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,aAAa,EAElB,KAAK,OAAO,EAGb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,8DAA8D;AAC9D,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3C,6DAA6D;AAC7D,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,WAAW,CAAC;AAE7C,iEAAiE;AACjE,MAAM,MAAM,WAAW,GACnB,QAAQ,GACR,QAAQ,GACR,YAAY,GACZ,eAAe,GACf,QAAQ,GACR,QAAQ,CAAC;AAEb,2EAA2E;AAC3E,MAAM,WAAW,KAAK;IACpB,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,SAAS,CAAC;IAChB,wDAAwD;IACxD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wEAAwE;IACxE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,qFAAqF;IACrF,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,oFAAoF;AACpF,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,SAAS,GAAG,MAAM,CAAC;IACzB,4BAA4B;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,6BAA6B;IAC7B,OAAO,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IAC7B,sDAAsD;IACtD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,+BAA+B;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,8BAA8B;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,uEAAuE;IACvE,cAAc,CAAC,EAAE,SAAS;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,IAAI,CAAA;KAAE,EAAE,CAAC;CAChE;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,YAAY,GAAG,KAAK,EAAE,CAqB1D;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,SAAS,KAAK,EAAE,GACvB,cAAc,CAahB;AAED,qFAAqF;AACrF,wBAAgB,cAAc,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAE3D"}
|
package/dist/file-grants.js
DELETED
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
-
// SPDX-FileCopyrightText: 2026 SubLang International <https://sublang.ai>
|
|
3
|
-
/**
|
|
4
|
-
* Host-side per-run grant model for the file capability (FCAP-11..14; DR-008).
|
|
5
|
-
*
|
|
6
|
-
* A compiled phase artifact reaches files only through a {@link FileCapability}
|
|
7
|
-
* the host builds for that run. The capability is default-deny: an operation
|
|
8
|
-
* succeeds only when its path is inside the run root (enforced by the artifact-
|
|
9
|
-
* facing layer in `file-capability.ts`) and is covered by a {@link Grant} of the
|
|
10
|
-
* matching access. {@link buildRunGrants} encodes the policy — the only writable
|
|
11
|
-
* path is the run's `target` (compile) or `linked` (link), and read grants are
|
|
12
|
-
* the run's source/object inputs, its link target when applicable, and the
|
|
13
|
-
* recorded semantic-input closure, each enumerated as a file grant.
|
|
14
|
-
* {@link createGuardedCapability} wraps a run-root capability with that grant set,
|
|
15
|
-
* reporting `unauthorized` for any ungranted access.
|
|
16
|
-
*
|
|
17
|
-
* Directory listing and recursive directory reads are withheld: until a pinning
|
|
18
|
-
* extension defines directory listing and subtree identities, this model grants
|
|
19
|
-
* neither (DR-008), so a pinned phase cannot widen its closure at run time.
|
|
20
|
-
* Scope failures (`invalid_path`, `unauthorized`) are distinguished by
|
|
21
|
-
* {@link isScopeFailure} so the executor can fail them like a generic check rather
|
|
22
|
-
* than a phase `BLOCKED`. See specs/dev/file-capability.md.
|
|
23
|
-
*/
|
|
24
|
-
import { canonicalize, createFileCapability, } from './file-capability.js';
|
|
25
|
-
import {} from './hash.js';
|
|
26
|
-
/**
|
|
27
|
-
* Builds the default-deny grant set for a run (FCAP-12, FCAP-13).
|
|
28
|
-
*
|
|
29
|
-
* The only writable grant is the run's `target` (compile) or `linked` (link); read
|
|
30
|
-
* grants enumerate the source/object inputs, the link target when present, and the
|
|
31
|
-
* semantic-input closure. Directory listing and recursive reads are not granted.
|
|
32
|
-
*/
|
|
33
|
-
export function buildRunGrants(spec) {
|
|
34
|
-
const grants = [];
|
|
35
|
-
if (spec.kind === 'compile' && spec.target !== undefined) {
|
|
36
|
-
grants.push(fileGrant(spec.target, 'write', 'target'));
|
|
37
|
-
}
|
|
38
|
-
if (spec.kind === 'link' && spec.linked !== undefined) {
|
|
39
|
-
grants.push(fileGrant(spec.linked, 'write', 'linked'));
|
|
40
|
-
}
|
|
41
|
-
if (spec.source !== undefined) {
|
|
42
|
-
grants.push(fileGrant(spec.source, 'read', 'source'));
|
|
43
|
-
}
|
|
44
|
-
for (const object of spec.objects ?? []) {
|
|
45
|
-
grants.push(fileGrant(object, 'read', 'object'));
|
|
46
|
-
}
|
|
47
|
-
if (spec.linkTarget !== undefined) {
|
|
48
|
-
grants.push(fileGrant(spec.linkTarget, 'read', 'linkTarget'));
|
|
49
|
-
}
|
|
50
|
-
for (const input of spec.semanticInputs ?? []) {
|
|
51
|
-
grants.push(fileGrant(input.path, 'read', 'semanticInput', input.identity));
|
|
52
|
-
}
|
|
53
|
-
return grants;
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Wraps a run-root capability with a grant set, denying every ungranted access
|
|
57
|
-
* (FCAP-11). Path validity and run-root containment are left to the wrapped
|
|
58
|
-
* capability, so an invalid or escaping path still reports `invalid_path`.
|
|
59
|
-
*/
|
|
60
|
-
export function createGuardedCapability(runRoot, grants) {
|
|
61
|
-
const inner = createFileCapability(runRoot);
|
|
62
|
-
return {
|
|
63
|
-
async read(path) {
|
|
64
|
-
return authorize(grants, path, 'read') ?? inner.read(path);
|
|
65
|
-
},
|
|
66
|
-
async list(path) {
|
|
67
|
-
return authorizeList(grants, path) ?? inner.list(path);
|
|
68
|
-
},
|
|
69
|
-
async write(path, bytes, opts) {
|
|
70
|
-
return authorize(grants, path, 'write') ?? inner.write(path, bytes, opts);
|
|
71
|
-
},
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
/** Reports whether a capability error is a host-enforced scope failure (FCAP-14). */
|
|
75
|
-
export function isScopeFailure(code) {
|
|
76
|
-
return code === 'invalid_path' || code === 'unauthorized';
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Returns an `unauthorized` denial when no grant covers `path` for `access`, or
|
|
80
|
-
* `null` to defer to the wrapped capability (which validates the path itself).
|
|
81
|
-
*/
|
|
82
|
-
function authorize(grants, path, access) {
|
|
83
|
-
const canonical = canonicalize(path);
|
|
84
|
-
if (canonical === null) {
|
|
85
|
-
return null;
|
|
86
|
-
}
|
|
87
|
-
if (!covers(grants, canonical, access)) {
|
|
88
|
-
return deny(`no ${access} grant covers "${path}"`);
|
|
89
|
-
}
|
|
90
|
-
return null;
|
|
91
|
-
}
|
|
92
|
-
function authorizeList(grants, path) {
|
|
93
|
-
const canonical = canonicalize(path);
|
|
94
|
-
if (canonical === null) {
|
|
95
|
-
return null;
|
|
96
|
-
}
|
|
97
|
-
const granted = grants.some((grant) => grant.access === 'read' &&
|
|
98
|
-
grant.path === canonical &&
|
|
99
|
-
grant.kind === 'directory' &&
|
|
100
|
-
grant.listing === true);
|
|
101
|
-
return granted ? null : deny(`no listing grant covers "${path}"`);
|
|
102
|
-
}
|
|
103
|
-
function covers(grants, canonical, access) {
|
|
104
|
-
return grants.some((grant) => {
|
|
105
|
-
if (grant.access !== access) {
|
|
106
|
-
return false;
|
|
107
|
-
}
|
|
108
|
-
if (grant.path === canonical) {
|
|
109
|
-
return true;
|
|
110
|
-
}
|
|
111
|
-
return (access === 'read' &&
|
|
112
|
-
grant.kind === 'directory' &&
|
|
113
|
-
grant.recursive === true &&
|
|
114
|
-
isUnder(grant.path, canonical));
|
|
115
|
-
});
|
|
116
|
-
}
|
|
117
|
-
function isUnder(ancestor, candidate) {
|
|
118
|
-
const prefix = ancestor === '/' ? '/' : `${ancestor}/`;
|
|
119
|
-
return candidate.startsWith(prefix);
|
|
120
|
-
}
|
|
121
|
-
function fileGrant(path, access, reason, identity) {
|
|
122
|
-
const canonical = canonicalize(path);
|
|
123
|
-
if (canonical === null) {
|
|
124
|
-
throw new Error(`grant path "${path}" is not a valid run-root path`);
|
|
125
|
-
}
|
|
126
|
-
return identity === undefined
|
|
127
|
-
? { path: canonical, access, kind: 'file', reason }
|
|
128
|
-
: { path: canonical, access, kind: 'file', identity, reason };
|
|
129
|
-
}
|
|
130
|
-
function deny(diagnostic) {
|
|
131
|
-
return { ok: false, code: 'unauthorized', diagnostic };
|
|
132
|
-
}
|
|
133
|
-
//# sourceMappingURL=file-grants.js.map
|
package/dist/file-grants.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-grants.js","sourceRoot":"","sources":["../src/file-grants.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,0EAA0E;AAE1E;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAKL,YAAY,EACZ,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAa,MAAM,WAAW,CAAC;AAiDtC;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,IAAkB;IAC/C,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACzD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACtD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;IAChE,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,cAAc,IAAI,EAAE,EAAE,CAAC;QAC9C,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CACrC,OAAe,EACf,MAAwB;IAExB,MAAM,KAAK,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC5C,OAAO;QACL,KAAK,CAAC,IAAI,CAAC,IAAI;YACb,OAAO,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7D,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,IAAI;YACb,OAAO,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,CAAC;QACD,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI;YAC3B,OAAO,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC5E,CAAC;KACF,CAAC;AACJ,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,cAAc,CAAC,IAAmB;IAChD,OAAO,IAAI,KAAK,cAAc,IAAI,IAAI,KAAK,cAAc,CAAC;AAC5D,CAAC;AAED;;;GAGG;AACH,SAAS,SAAS,CAChB,MAAwB,EACxB,IAAa,EACb,MAAmB;IAEnB,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC,MAAM,MAAM,kBAAkB,IAAI,GAAG,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,aAAa,CACpB,MAAwB,EACxB,IAAa;IAEb,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CACzB,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,MAAM,KAAK,MAAM;QACvB,KAAK,CAAC,IAAI,KAAK,SAAS;QACxB,KAAK,CAAC,IAAI,KAAK,WAAW;QAC1B,KAAK,CAAC,OAAO,KAAK,IAAI,CACzB,CAAC;IACF,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,4BAA4B,IAAI,GAAG,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,MAAM,CACb,MAAwB,EACxB,SAAiB,EACjB,MAAmB;IAEnB,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3B,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,CACL,MAAM,KAAK,MAAM;YACjB,KAAK,CAAC,IAAI,KAAK,WAAW;YAC1B,KAAK,CAAC,SAAS,KAAK,IAAI;YACxB,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAC/B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,OAAO,CAAC,QAAgB,EAAE,SAAiB;IAClD,MAAM,MAAM,GAAG,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC;IACvD,OAAO,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,SAAS,CAChB,IAAa,EACb,MAAmB,EACnB,MAAmB,EACnB,QAAe;IAEf,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,eAAe,IAAI,gCAAgC,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,QAAQ,KAAK,SAAS;QAC3B,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE;QACnD,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAClE,CAAC;AAED,SAAS,IAAI,CAAC,UAAkB;IAC9B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;AACzD,CAAC"}
|