patchwork-os 1.2.0-beta.3.canary.897 → 1.2.0-beta.3.canary.899
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/dist/commands/policyExplain.d.ts +2 -0
- package/dist/commands/policyExplain.js +9 -1
- package/dist/commands/policyExplain.js.map +1 -1
- package/dist/commands/recipe.d.ts +8 -3
- package/dist/commands/recipe.js +28 -5
- package/dist/commands/recipe.js.map +1 -1
- package/dist/commands/recipeInstall.js +16 -2
- package/dist/commands/recipeInstall.js.map +1 -1
- package/dist/index.js +13 -4
- package/dist/index.js.map +1 -1
- package/dist/recipeRoutes.js +8 -2
- package/dist/recipeRoutes.js.map +1 -1
- package/dist/recipes/haltCategory.d.ts +9 -0
- package/dist/recipes/haltCategory.js +25 -0
- package/dist/recipes/haltCategory.js.map +1 -1
- package/dist/recipes/installProvenance.d.ts +101 -0
- package/dist/recipes/installProvenance.js +205 -0
- package/dist/recipes/installProvenance.js.map +1 -0
- package/dist/recipes/installer.d.ts +11 -0
- package/dist/recipes/installer.js +20 -1
- package/dist/recipes/installer.js.map +1 -1
- package/dist/recipes/schemaGenerator.js +33 -8
- package/dist/recipes/schemaGenerator.js.map +1 -1
- package/dist/recipes/simulation/policyProjection.d.ts +26 -0
- package/dist/recipes/simulation/policyProjection.js +62 -0
- package/dist/recipes/simulation/policyProjection.js.map +1 -0
- package/dist/recipes/simulation/simulate.d.ts +12 -5
- package/dist/recipes/simulation/simulate.js +75 -19
- package/dist/recipes/simulation/simulate.js.map +1 -1
- package/dist/recipes/simulation/types.d.ts +63 -12
- package/dist/recipes/simulation/types.js +13 -4
- package/dist/recipes/simulation/types.js.map +1 -1
- package/dist/recipesHttp.d.ts +8 -0
- package/dist/recipesHttp.js +10 -1
- package/dist/recipesHttp.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"haltCategory.js","sourceRoot":"","sources":["../../src/recipes/haltCategory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;
|
|
1
|
+
{"version":3,"file":"haltCategory.js","sourceRoot":"","sources":["../../src/recipes/haltCategory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Install provenance — where an installed recipe came from.
|
|
3
|
+
*
|
|
4
|
+
* Two install paths, two locations, one record shape:
|
|
5
|
+
*
|
|
6
|
+
* - **Install directories** (`patchwork recipe install`): `.install.json`
|
|
7
|
+
* inside the install directory.
|
|
8
|
+
* - **Top-level recipe files** (`POST /recipes/install`, which writes
|
|
9
|
+
* `<recipesDir>/<name>.json`): a sidecar at
|
|
10
|
+
* `<recipesDir>/.install/<file basename>.json`. Never inside the recipe
|
|
11
|
+
* file. The dot-dir is skipped by every recipe scan (it has no recipe
|
|
12
|
+
* extension, and its contents never match `recipe.json` or `*.yaml`).
|
|
13
|
+
*
|
|
14
|
+
* The recipe listing reads either back as `installedFrom`, so a reader can
|
|
15
|
+
* tell "this exact source is installed" apart from "some other recipe happens
|
|
16
|
+
* to share the name".
|
|
17
|
+
*
|
|
18
|
+
* Rules, each deliberate:
|
|
19
|
+
*
|
|
20
|
+
* - **Absence means unknown, never a guess.** An install made before this
|
|
21
|
+
* existed has no record, and the listing reports no `installedFrom` for it.
|
|
22
|
+
* Nothing is backfilled or inferred from a name.
|
|
23
|
+
* - **Install dirs: written in the staging directory, after every recipe file
|
|
24
|
+
* is copied and before the final rename.** A half-finished install never
|
|
25
|
+
* carries one, and a reinstall replaces it with the rest of the directory.
|
|
26
|
+
* - **Top-level files: bound to the installed bytes by sha256.** A top-level
|
|
27
|
+
* file can be deleted, archived, overwritten or edited by routes that know
|
|
28
|
+
* nothing about installs, and a later file can take the same name. The
|
|
29
|
+
* delete and archive routes clean the sidecar up, and the hash makes every
|
|
30
|
+
* other path safe too: a record whose hash no longer matches the file is
|
|
31
|
+
* ignored, so it can never attach to different content.
|
|
32
|
+
* - **Malformed ⇒ ignored.** A reader returns null rather than throwing; one
|
|
33
|
+
* bad file must not hide the recipe from the listing.
|
|
34
|
+
* - **No credentials.** The source is user-supplied and treated as public. A
|
|
35
|
+
* value that is not a short, single-line string, or that carries URL
|
|
36
|
+
* userinfo (`scheme://user:secret@host`), is not recorded at all.
|
|
37
|
+
*
|
|
38
|
+
* Lives under `src/recipes/` rather than in `commands/recipeInstall.ts`
|
|
39
|
+
* because `recipesHttp.ts` reads it and `recipeInstall.ts` already imports
|
|
40
|
+
* `recipesHttp.ts`; putting it in either would create an import cycle.
|
|
41
|
+
*/
|
|
42
|
+
export declare const INSTALL_PROVENANCE_FILE = ".install.json";
|
|
43
|
+
export declare const INSTALL_PROVENANCE_RV = 1;
|
|
44
|
+
export declare const MAX_INSTALL_SOURCE_LENGTH = 512;
|
|
45
|
+
/** Dot-dir holding sidecars for top-level recipe files. */
|
|
46
|
+
export declare const INSTALL_SIDECAR_DIR = ".install";
|
|
47
|
+
export interface InstallProvenance {
|
|
48
|
+
rv: 1;
|
|
49
|
+
/** The install source string exactly as given. */
|
|
50
|
+
source: string;
|
|
51
|
+
/** The branch, tag or commit actually fetched, when known. */
|
|
52
|
+
resolvedRef?: string;
|
|
53
|
+
/** Epoch ms of the install. */
|
|
54
|
+
installedAt: number;
|
|
55
|
+
}
|
|
56
|
+
/** Top-level sidecar: the same record, bound to the installed file's bytes. */
|
|
57
|
+
export interface TopLevelInstallProvenance extends InstallProvenance {
|
|
58
|
+
/** Hex sha256 of the recipe file as installed. */
|
|
59
|
+
sha256: string;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Build a provenance record, or null when the source is not recordable (in
|
|
63
|
+
* which case no file is written — never a placeholder).
|
|
64
|
+
*/
|
|
65
|
+
export declare function buildInstallProvenance(source: unknown, opts?: {
|
|
66
|
+
resolvedRef?: string;
|
|
67
|
+
now?: number;
|
|
68
|
+
}): InstallProvenance | null;
|
|
69
|
+
/** Atomically write `record` into an install directory. Throws on I/O failure. */
|
|
70
|
+
export declare function writeInstallProvenance(dir: string, record: InstallProvenance): void;
|
|
71
|
+
/**
|
|
72
|
+
* Read the provenance record from an install directory. Returns null when the
|
|
73
|
+
* file is absent, unreadable, unparseable, from another schema version, or
|
|
74
|
+
* carries a source that would not have been recorded. Never throws.
|
|
75
|
+
*/
|
|
76
|
+
export declare function readInstallProvenance(dir: string): InstallProvenance | null;
|
|
77
|
+
/** `<dir>/.install/<basename>.json` for the recipe file at `filePath`. */
|
|
78
|
+
export declare function topLevelProvenancePath(filePath: string): string;
|
|
79
|
+
/**
|
|
80
|
+
* Atomically write the sidecar for a top-level recipe file whose installed
|
|
81
|
+
* content is `content`. Returns false (writing nothing) when the source is not
|
|
82
|
+
* recordable. Throws on I/O failure.
|
|
83
|
+
*/
|
|
84
|
+
export declare function writeTopLevelProvenance(filePath: string, content: string, source: unknown, opts?: {
|
|
85
|
+
resolvedRef?: string;
|
|
86
|
+
now?: number;
|
|
87
|
+
}): boolean;
|
|
88
|
+
/**
|
|
89
|
+
* Read the sidecar for a top-level recipe file whose CURRENT content is
|
|
90
|
+
* `content`. Null when the sidecar is absent, malformed, or was written for
|
|
91
|
+
* different bytes. Never throws.
|
|
92
|
+
*/
|
|
93
|
+
export declare function readTopLevelProvenance(filePath: string, content: string): InstallProvenance | null;
|
|
94
|
+
/** Remove the sidecar for `filePath`, if any. Best-effort, never throws. */
|
|
95
|
+
export declare function removeTopLevelProvenance(filePath: string): void;
|
|
96
|
+
/**
|
|
97
|
+
* Move the sidecar for `from` so it sits beside `to` (e.g. into `.archive/`).
|
|
98
|
+
* Best-effort, never throws; a record that cannot be moved is removed so it
|
|
99
|
+
* does not stay in the live recipes directory.
|
|
100
|
+
*/
|
|
101
|
+
export declare function moveTopLevelProvenance(from: string, to: string): void;
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Install provenance — where an installed recipe came from.
|
|
3
|
+
*
|
|
4
|
+
* Two install paths, two locations, one record shape:
|
|
5
|
+
*
|
|
6
|
+
* - **Install directories** (`patchwork recipe install`): `.install.json`
|
|
7
|
+
* inside the install directory.
|
|
8
|
+
* - **Top-level recipe files** (`POST /recipes/install`, which writes
|
|
9
|
+
* `<recipesDir>/<name>.json`): a sidecar at
|
|
10
|
+
* `<recipesDir>/.install/<file basename>.json`. Never inside the recipe
|
|
11
|
+
* file. The dot-dir is skipped by every recipe scan (it has no recipe
|
|
12
|
+
* extension, and its contents never match `recipe.json` or `*.yaml`).
|
|
13
|
+
*
|
|
14
|
+
* The recipe listing reads either back as `installedFrom`, so a reader can
|
|
15
|
+
* tell "this exact source is installed" apart from "some other recipe happens
|
|
16
|
+
* to share the name".
|
|
17
|
+
*
|
|
18
|
+
* Rules, each deliberate:
|
|
19
|
+
*
|
|
20
|
+
* - **Absence means unknown, never a guess.** An install made before this
|
|
21
|
+
* existed has no record, and the listing reports no `installedFrom` for it.
|
|
22
|
+
* Nothing is backfilled or inferred from a name.
|
|
23
|
+
* - **Install dirs: written in the staging directory, after every recipe file
|
|
24
|
+
* is copied and before the final rename.** A half-finished install never
|
|
25
|
+
* carries one, and a reinstall replaces it with the rest of the directory.
|
|
26
|
+
* - **Top-level files: bound to the installed bytes by sha256.** A top-level
|
|
27
|
+
* file can be deleted, archived, overwritten or edited by routes that know
|
|
28
|
+
* nothing about installs, and a later file can take the same name. The
|
|
29
|
+
* delete and archive routes clean the sidecar up, and the hash makes every
|
|
30
|
+
* other path safe too: a record whose hash no longer matches the file is
|
|
31
|
+
* ignored, so it can never attach to different content.
|
|
32
|
+
* - **Malformed ⇒ ignored.** A reader returns null rather than throwing; one
|
|
33
|
+
* bad file must not hide the recipe from the listing.
|
|
34
|
+
* - **No credentials.** The source is user-supplied and treated as public. A
|
|
35
|
+
* value that is not a short, single-line string, or that carries URL
|
|
36
|
+
* userinfo (`scheme://user:secret@host`), is not recorded at all.
|
|
37
|
+
*
|
|
38
|
+
* Lives under `src/recipes/` rather than in `commands/recipeInstall.ts`
|
|
39
|
+
* because `recipesHttp.ts` reads it and `recipeInstall.ts` already imports
|
|
40
|
+
* `recipesHttp.ts`; putting it in either would create an import cycle.
|
|
41
|
+
*/
|
|
42
|
+
import { createHash } from "node:crypto";
|
|
43
|
+
import { existsSync, mkdirSync, readFileSync, renameSync, rmSync, } from "node:fs";
|
|
44
|
+
import path from "node:path";
|
|
45
|
+
import { writeFileAtomicSync } from "../writeFileAtomic.js";
|
|
46
|
+
export const INSTALL_PROVENANCE_FILE = ".install.json";
|
|
47
|
+
export const INSTALL_PROVENANCE_RV = 1;
|
|
48
|
+
export const MAX_INSTALL_SOURCE_LENGTH = 512;
|
|
49
|
+
/** Dot-dir holding sidecars for top-level recipe files. */
|
|
50
|
+
export const INSTALL_SIDECAR_DIR = ".install";
|
|
51
|
+
const CONTROL_CHARS_RE = /[\u0000-\u001f\u007f]/;
|
|
52
|
+
const URL_USERINFO_RE = /^[a-z][a-z0-9+.-]*:\/\/[^/?#]*@/i;
|
|
53
|
+
const SHA256_RE = /^[0-9a-f]{64}$/;
|
|
54
|
+
/** True when `value` is safe to persist as a provenance string. */
|
|
55
|
+
function isRecordableString(value) {
|
|
56
|
+
return (typeof value === "string" &&
|
|
57
|
+
value.length > 0 &&
|
|
58
|
+
value.length <= MAX_INSTALL_SOURCE_LENGTH &&
|
|
59
|
+
!CONTROL_CHARS_RE.test(value) &&
|
|
60
|
+
!URL_USERINFO_RE.test(value));
|
|
61
|
+
}
|
|
62
|
+
function sha256Of(content) {
|
|
63
|
+
return createHash("sha256").update(content, "utf-8").digest("hex");
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Build a provenance record, or null when the source is not recordable (in
|
|
67
|
+
* which case no file is written — never a placeholder).
|
|
68
|
+
*/
|
|
69
|
+
export function buildInstallProvenance(source, opts = {}) {
|
|
70
|
+
if (!isRecordableString(source))
|
|
71
|
+
return null;
|
|
72
|
+
return {
|
|
73
|
+
rv: INSTALL_PROVENANCE_RV,
|
|
74
|
+
source,
|
|
75
|
+
...(isRecordableString(opts.resolvedRef)
|
|
76
|
+
? { resolvedRef: opts.resolvedRef }
|
|
77
|
+
: {}),
|
|
78
|
+
installedAt: opts.now ?? Date.now(),
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
/** Atomically write `record` into an install directory. Throws on I/O failure. */
|
|
82
|
+
export function writeInstallProvenance(dir, record) {
|
|
83
|
+
writeFileAtomicSync(path.join(dir, INSTALL_PROVENANCE_FILE), `${JSON.stringify(record, null, 2)}\n`);
|
|
84
|
+
}
|
|
85
|
+
/** Parse + validate the common fields. Null on anything unexpected. */
|
|
86
|
+
function parseRecord(raw) {
|
|
87
|
+
let parsed;
|
|
88
|
+
try {
|
|
89
|
+
parsed = JSON.parse(raw);
|
|
90
|
+
}
|
|
91
|
+
catch {
|
|
92
|
+
return null;
|
|
93
|
+
}
|
|
94
|
+
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
97
|
+
const obj = parsed;
|
|
98
|
+
if (obj.rv !== INSTALL_PROVENANCE_RV)
|
|
99
|
+
return null;
|
|
100
|
+
if (!isRecordableString(obj.source))
|
|
101
|
+
return null;
|
|
102
|
+
if (typeof obj.installedAt !== "number" || !Number.isFinite(obj.installedAt))
|
|
103
|
+
return null;
|
|
104
|
+
return obj;
|
|
105
|
+
}
|
|
106
|
+
function toProvenance(obj) {
|
|
107
|
+
return {
|
|
108
|
+
rv: INSTALL_PROVENANCE_RV,
|
|
109
|
+
source: obj.source,
|
|
110
|
+
...(isRecordableString(obj.resolvedRef)
|
|
111
|
+
? { resolvedRef: obj.resolvedRef }
|
|
112
|
+
: {}),
|
|
113
|
+
installedAt: obj.installedAt,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Read the provenance record from an install directory. Returns null when the
|
|
118
|
+
* file is absent, unreadable, unparseable, from another schema version, or
|
|
119
|
+
* carries a source that would not have been recorded. Never throws.
|
|
120
|
+
*/
|
|
121
|
+
export function readInstallProvenance(dir) {
|
|
122
|
+
let raw;
|
|
123
|
+
try {
|
|
124
|
+
raw = readFileSync(path.join(dir, INSTALL_PROVENANCE_FILE), "utf-8");
|
|
125
|
+
}
|
|
126
|
+
catch {
|
|
127
|
+
return null;
|
|
128
|
+
}
|
|
129
|
+
const obj = parseRecord(raw);
|
|
130
|
+
return obj ? toProvenance(obj) : null;
|
|
131
|
+
}
|
|
132
|
+
// ── Top-level recipe files ───────────────────────────────────────────────────
|
|
133
|
+
/** `<dir>/.install/<basename>.json` for the recipe file at `filePath`. */
|
|
134
|
+
export function topLevelProvenancePath(filePath) {
|
|
135
|
+
return path.join(path.dirname(filePath), INSTALL_SIDECAR_DIR, `${path.basename(filePath)}.json`);
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Atomically write the sidecar for a top-level recipe file whose installed
|
|
139
|
+
* content is `content`. Returns false (writing nothing) when the source is not
|
|
140
|
+
* recordable. Throws on I/O failure.
|
|
141
|
+
*/
|
|
142
|
+
export function writeTopLevelProvenance(filePath, content, source, opts = {}) {
|
|
143
|
+
const base = buildInstallProvenance(source, opts);
|
|
144
|
+
if (!base)
|
|
145
|
+
return false;
|
|
146
|
+
const record = {
|
|
147
|
+
...base,
|
|
148
|
+
sha256: sha256Of(content),
|
|
149
|
+
};
|
|
150
|
+
const target = topLevelProvenancePath(filePath);
|
|
151
|
+
mkdirSync(path.dirname(target), { recursive: true });
|
|
152
|
+
writeFileAtomicSync(target, `${JSON.stringify(record, null, 2)}\n`);
|
|
153
|
+
return true;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Read the sidecar for a top-level recipe file whose CURRENT content is
|
|
157
|
+
* `content`. Null when the sidecar is absent, malformed, or was written for
|
|
158
|
+
* different bytes. Never throws.
|
|
159
|
+
*/
|
|
160
|
+
export function readTopLevelProvenance(filePath, content) {
|
|
161
|
+
let raw;
|
|
162
|
+
try {
|
|
163
|
+
raw = readFileSync(topLevelProvenancePath(filePath), "utf-8");
|
|
164
|
+
}
|
|
165
|
+
catch {
|
|
166
|
+
return null;
|
|
167
|
+
}
|
|
168
|
+
const obj = parseRecord(raw);
|
|
169
|
+
if (!obj)
|
|
170
|
+
return null;
|
|
171
|
+
if (typeof obj.sha256 !== "string" || !SHA256_RE.test(obj.sha256)) {
|
|
172
|
+
return null;
|
|
173
|
+
}
|
|
174
|
+
if (obj.sha256 !== sha256Of(content))
|
|
175
|
+
return null;
|
|
176
|
+
return toProvenance(obj);
|
|
177
|
+
}
|
|
178
|
+
/** Remove the sidecar for `filePath`, if any. Best-effort, never throws. */
|
|
179
|
+
export function removeTopLevelProvenance(filePath) {
|
|
180
|
+
try {
|
|
181
|
+
rmSync(topLevelProvenancePath(filePath), { force: true });
|
|
182
|
+
}
|
|
183
|
+
catch {
|
|
184
|
+
// best-effort — a leftover record cannot attach to other bytes (sha256)
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Move the sidecar for `from` so it sits beside `to` (e.g. into `.archive/`).
|
|
189
|
+
* Best-effort, never throws; a record that cannot be moved is removed so it
|
|
190
|
+
* does not stay in the live recipes directory.
|
|
191
|
+
*/
|
|
192
|
+
export function moveTopLevelProvenance(from, to) {
|
|
193
|
+
const src = topLevelProvenancePath(from);
|
|
194
|
+
if (!existsSync(src))
|
|
195
|
+
return;
|
|
196
|
+
const dest = topLevelProvenancePath(to);
|
|
197
|
+
try {
|
|
198
|
+
mkdirSync(path.dirname(dest), { recursive: true });
|
|
199
|
+
renameSync(src, dest);
|
|
200
|
+
}
|
|
201
|
+
catch {
|
|
202
|
+
removeTopLevelProvenance(from);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
//# sourceMappingURL=installProvenance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"installProvenance.js","sourceRoot":"","sources":["../../src/recipes/installProvenance.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,17 @@ export interface InstallOptions {
|
|
|
15
15
|
copyFile?: (src: string, dest: string) => void;
|
|
16
16
|
mkdir?: (p: string) => void;
|
|
17
17
|
};
|
|
18
|
+
/**
|
|
19
|
+
* Where this recipe came from. When given, a provenance sidecar is written
|
|
20
|
+
* at `<recipesDir>/.install/<name>.json.json` (see installProvenance.ts),
|
|
21
|
+
* bound to the installed bytes. Any previous sidecar for the same file is
|
|
22
|
+
* removed first, so an unrecordable source leaves no record rather than a
|
|
23
|
+
* stale one. Uses the real filesystem even when `fs` is injected.
|
|
24
|
+
*/
|
|
25
|
+
provenance?: {
|
|
26
|
+
source: string;
|
|
27
|
+
resolvedRef?: string;
|
|
28
|
+
};
|
|
18
29
|
}
|
|
19
30
|
export interface InstallResult {
|
|
20
31
|
compiled: CompiledRecipe;
|
|
@@ -3,6 +3,7 @@ import path from "node:path";
|
|
|
3
3
|
import { parse as parseYaml } from "yaml";
|
|
4
4
|
import { writeFileAtomicSync } from "../writeFileAtomic.js";
|
|
5
5
|
import { compileRecipeFull } from "./compiler.js";
|
|
6
|
+
import { removeTopLevelProvenance, writeTopLevelProvenance, } from "./installProvenance.js";
|
|
6
7
|
import { parseRecipe } from "./parser.js";
|
|
7
8
|
export function installRecipeFromFile(sourcePath, opts) {
|
|
8
9
|
const ext = path.extname(sourcePath).toLowerCase();
|
|
@@ -70,7 +71,25 @@ export function installRecipeFromFile(sourcePath, opts) {
|
|
|
70
71
|
catch {
|
|
71
72
|
// file doesn't exist — creating
|
|
72
73
|
}
|
|
73
|
-
|
|
74
|
+
const content = JSON.stringify(recipe, null, 2);
|
|
75
|
+
// Drop any record for the file being replaced BEFORE replacing it: whatever
|
|
76
|
+
// happens next, the old origin must not survive onto new content. (The
|
|
77
|
+
// sha256 binding would ignore it anyway; removing it keeps the dir honest.)
|
|
78
|
+
if (opts.provenance)
|
|
79
|
+
removeTopLevelProvenance(destPath);
|
|
80
|
+
writeFile(destPath, content);
|
|
81
|
+
if (opts.provenance) {
|
|
82
|
+
// The recipe is already installed; a sidecar that cannot be written
|
|
83
|
+
// leaves "unknown" (no record), never a failed install.
|
|
84
|
+
try {
|
|
85
|
+
writeTopLevelProvenance(destPath, content, opts.provenance.source, {
|
|
86
|
+
resolvedRef: opts.provenance.resolvedRef,
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
removeTopLevelProvenance(destPath);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
74
93
|
// Permissions sidecar (`<name>.permissions.json`) was decorative — never read by toolRegistry.
|
|
75
94
|
// Removed in alpha.36 per recipe-dogfood-2026-05-01/PLAN-MASTER-V2.md A-PR4.
|
|
76
95
|
// Canonical permissions location: ~/.claude/settings.json.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installer.js","sourceRoot":"","sources":["../../src/recipes/installer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"installer.js","sourceRoot":"","sources":["../../src/recipes/installer.ts"],"names":[],"mappings":"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"}
|
|
@@ -165,7 +165,7 @@ export function generateSimulationSchema() {
|
|
|
165
165
|
$schema: "http://json-schema.org/draft-07/schema#",
|
|
166
166
|
$id: "https://raw.githubusercontent.com/patchworkos/recipes/main/schema/simulation-report.v1.json",
|
|
167
167
|
title: "Patchwork Recipe What-If Preview",
|
|
168
|
-
description: "Stable machine-readable output of `patchwork recipe simulate` / GET /recipes/:name/simulate. Static counterfactual simulation — executes nothing. Pin consumers on schemaVersion. `gatedOnRecipeSteps`
|
|
168
|
+
description: "Stable machine-readable output of `patchwork recipe simulate` / GET /recipes/:name/simulate. Static counterfactual simulation — executes nothing. Pin consumers on schemaVersion. Approval verdicts (`gatedOnRecipeSteps`, `approvals.projected[].wouldRequireApproval`) are computed from the runtime's effective policy — the calculation both recipe runners consult per step.",
|
|
169
169
|
type: "object",
|
|
170
170
|
required: [
|
|
171
171
|
"schemaVersion",
|
|
@@ -186,7 +186,7 @@ export function generateSimulationSchema() {
|
|
|
186
186
|
"notes",
|
|
187
187
|
],
|
|
188
188
|
properties: {
|
|
189
|
-
schemaVersion: { type: "number", const:
|
|
189
|
+
schemaVersion: { type: "number", const: 3 },
|
|
190
190
|
kind: { type: "string", const: "what-if-preview" },
|
|
191
191
|
recipe: { type: "string" },
|
|
192
192
|
triggerType: { type: "string" },
|
|
@@ -201,8 +201,8 @@ export function generateSimulationSchema() {
|
|
|
201
201
|
},
|
|
202
202
|
topology: { type: "string", enum: ["chained", "flat"] },
|
|
203
203
|
gatedOnRecipeSteps: {
|
|
204
|
-
type: "boolean",
|
|
205
|
-
description: "
|
|
204
|
+
type: ["boolean", "null"],
|
|
205
|
+
description: "True when the runtime consults the approval gate for at least one step of this recipe under the current profile, approval-gate setting and trigger; false when for none; null when the effective policy could not be evaluated.",
|
|
206
206
|
},
|
|
207
207
|
steps: { type: "array", items: simStep },
|
|
208
208
|
summary: {
|
|
@@ -259,20 +259,45 @@ export function generateSimulationSchema() {
|
|
|
259
259
|
},
|
|
260
260
|
approvals: {
|
|
261
261
|
type: "object",
|
|
262
|
-
required: ["gatedOnRecipeSteps", "projected", "note"],
|
|
262
|
+
required: ["gatedOnRecipeSteps", "basis", "projected", "note"],
|
|
263
263
|
properties: {
|
|
264
|
-
gatedOnRecipeSteps: { type: "boolean" },
|
|
264
|
+
gatedOnRecipeSteps: { type: ["boolean", "null"] },
|
|
265
|
+
basis: { type: "string", enum: ["effective-policy", "unavailable"] },
|
|
266
|
+
profile: { type: "string", enum: ["governed", "compat"] },
|
|
267
|
+
trigger: {
|
|
268
|
+
type: "string",
|
|
269
|
+
description: "Trigger the verdicts were computed for (a top-level chained run is evaluated as manual).",
|
|
270
|
+
},
|
|
265
271
|
note: { type: "string" },
|
|
266
272
|
projected: {
|
|
267
273
|
type: "array",
|
|
268
274
|
items: {
|
|
269
275
|
type: "object",
|
|
270
|
-
required: [
|
|
276
|
+
required: [
|
|
277
|
+
"stepId",
|
|
278
|
+
"tier",
|
|
279
|
+
"wouldRequireApproval",
|
|
280
|
+
"verdict",
|
|
281
|
+
"reason",
|
|
282
|
+
],
|
|
271
283
|
properties: {
|
|
272
284
|
stepId: { type: "string" },
|
|
273
285
|
tool: { type: "string" },
|
|
274
286
|
tier: riskEnum,
|
|
275
|
-
wouldRequireApproval: {
|
|
287
|
+
wouldRequireApproval: {
|
|
288
|
+
type: ["boolean", "null"],
|
|
289
|
+
description: "True when the runner would hold this step for a human; null when the verdict is unknown.",
|
|
290
|
+
},
|
|
291
|
+
verdict: {
|
|
292
|
+
type: "string",
|
|
293
|
+
enum: [
|
|
294
|
+
"ALLOW",
|
|
295
|
+
"HUMAN_APPROVAL_REQUIRED",
|
|
296
|
+
"REFUSED",
|
|
297
|
+
"unknown",
|
|
298
|
+
],
|
|
299
|
+
},
|
|
300
|
+
consultsApproval: { type: "boolean" },
|
|
276
301
|
reason: { type: "string" },
|
|
277
302
|
},
|
|
278
303
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemaGenerator.js","sourceRoot":"","sources":["../../src/recipes/schemaGenerator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schemaGenerator.js","sourceRoot":"","sources":["../../src/recipes/schemaGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What-If Preview — effective-policy projection.
|
|
3
|
+
*
|
|
4
|
+
* Answers "would the runtime hold this step for a human?" for every step of a
|
|
5
|
+
* simulated recipe, by running the SAME calculation the runners consult per
|
|
6
|
+
* step: `explainRecipePolicy` (the body of `patchwork policy explain`) builds
|
|
7
|
+
* each step's `EffectivePolicyInput` and calls `computeEffectivePolicy`. This
|
|
8
|
+
* module only maps those verdicts onto the dry-run plan's step ids — it holds
|
|
9
|
+
* no rule of its own, because a preview with its own rule drifts from
|
|
10
|
+
* enforcement and the drift is silent.
|
|
11
|
+
*/
|
|
12
|
+
import type { RecipeDryRunPlan } from "../../commands/recipe.js";
|
|
13
|
+
import type { loadConfig } from "../../patchworkConfig.js";
|
|
14
|
+
import type { SimulationPolicy } from "./types.js";
|
|
15
|
+
export interface ProjectPolicyOptions {
|
|
16
|
+
/** Config to evaluate under; defaults to the loaded `config.json`. */
|
|
17
|
+
config?: ReturnType<typeof loadConfig>;
|
|
18
|
+
workersDir?: string;
|
|
19
|
+
patchworkDir?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Raw `steps:` index of the selected step when the plan was narrowed to one
|
|
22
|
+
* step (`--step`). Flat plans are matched to explained steps by position.
|
|
23
|
+
*/
|
|
24
|
+
selectedIndex?: number;
|
|
25
|
+
}
|
|
26
|
+
export declare function projectRecipePolicy(recipeFile: string, plan: RecipeDryRunPlan, opts?: ProjectPolicyOptions): Promise<SimulationPolicy>;
|