pi-forge 1.1.4 → 1.1.6
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 +1 -1
- package/bin/fix-pty-perms.mjs +69 -0
- package/dist/client/assets/CodeMirrorEditor-C_ITRoQa.js +50 -0
- package/dist/client/assets/CodeMirrorEditor-C_ITRoQa.js.map +1 -0
- package/dist/client/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
- package/dist/client/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- package/dist/client/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- package/dist/client/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- package/dist/client/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- package/dist/client/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
- package/dist/client/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- package/dist/client/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
- package/dist/client/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- package/dist/client/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- package/dist/client/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- package/dist/client/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
- package/dist/client/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- package/dist/client/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
- package/dist/client/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- package/dist/client/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
- package/dist/client/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- package/dist/client/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- package/dist/client/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
- package/dist/client/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- package/dist/client/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- package/dist/client/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- package/dist/client/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- package/dist/client/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
- package/dist/client/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
- package/dist/client/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- package/dist/client/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- package/dist/client/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- package/dist/client/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
- package/dist/client/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- package/dist/client/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- package/dist/client/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- package/dist/client/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
- package/dist/client/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- package/dist/client/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
- package/dist/client/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- package/dist/client/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
- package/dist/client/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- package/dist/client/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- package/dist/client/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- package/dist/client/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- package/dist/client/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
- package/dist/client/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- package/dist/client/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
- package/dist/client/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- package/dist/client/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- package/dist/client/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- package/dist/client/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
- package/dist/client/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- package/dist/client/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
- package/dist/client/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- package/dist/client/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- package/dist/client/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- package/dist/client/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- package/dist/client/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- package/dist/client/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
- package/dist/client/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- package/dist/client/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
- package/dist/client/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- package/dist/client/assets/index-B67tDt4n.js +356 -0
- package/dist/client/assets/index-B67tDt4n.js.map +1 -0
- package/dist/client/assets/index-BB-19PiX.css +1 -0
- package/dist/client/assets/workbox-window.prod.es5-Cch4wiA5.js +3 -0
- package/dist/client/assets/workbox-window.prod.es5-Cch4wiA5.js.map +1 -0
- package/dist/client/index.html +2 -2
- package/dist/client/sw.js +1 -1
- package/dist/client/sw.js.map +1 -1
- package/dist/server/agent-resource-loader.js +32 -11
- package/dist/server/agent-resource-loader.js.map +1 -1
- package/dist/server/config-export.js +36 -8
- package/dist/server/config-export.js.map +1 -1
- package/dist/server/config-manager.js +131 -5
- package/dist/server/config-manager.js.map +1 -1
- package/dist/server/config.js +11 -0
- package/dist/server/config.js.map +1 -1
- package/dist/server/extensions-discovery.js +1 -1
- package/dist/server/extensions-discovery.js.map +1 -1
- package/dist/server/file-manager.js +19 -1
- package/dist/server/file-manager.js.map +1 -1
- package/dist/server/file-references.js +124 -29
- package/dist/server/file-references.js.map +1 -1
- package/dist/server/project-manager.js +4 -0
- package/dist/server/project-manager.js.map +1 -1
- package/dist/server/prompt-overrides.js +131 -0
- package/dist/server/prompt-overrides.js.map +1 -0
- package/dist/server/routes/config.js +268 -19
- package/dist/server/routes/config.js.map +1 -1
- package/dist/server/routes/health.js +38 -13
- package/dist/server/routes/health.js.map +1 -1
- package/dist/server/session-registry.js +16 -8
- package/dist/server/session-registry.js.map +1 -1
- package/dist/server/turn-diff-builder.js +1 -1
- package/dist/server/turn-diff-builder.js.map +1 -1
- package/package.json +7 -4
- package/dist/client/assets/CodeMirrorEditor-BqaaP1EE.js +0 -34
- package/dist/client/assets/CodeMirrorEditor-BqaaP1EE.js.map +0 -1
- package/dist/client/assets/index-B-529kgJ.css +0 -32
- package/dist/client/assets/index-BzKzxXFs.js +0 -392
- package/dist/client/assets/index-BzKzxXFs.js.map +0 -1
- package/dist/client/assets/workbox-window.prod.es5-BBnX5xw4.js +0 -3
- package/dist/client/assets/workbox-window.prod.es5-BBnX5xw4.js.map +0 -1
|
@@ -23,25 +23,53 @@ import { checkFileReference, readFile } from "./file-manager.js";
|
|
|
23
23
|
* `@<path>` — greedy non-whitespace; common case.
|
|
24
24
|
* `@"<path with spaces>"` — anything that isn't a `"` or newline.
|
|
25
25
|
* - Resolved against the project's workspace root via file-manager's
|
|
26
|
-
* path-traversal-safe `checkFileReference`.
|
|
27
|
-
* inline
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
26
|
+
* path-traversal-safe `checkFileReference`. Four outcomes:
|
|
27
|
+
* inline → file ≤ INLINE_THRESHOLD; replace marker with a
|
|
28
|
+
* fenced code block. Language hint derived from
|
|
29
|
+
* extension.
|
|
30
|
+
* defer → file > INLINE_THRESHOLD; leave the literal `@<path>`
|
|
31
|
+
* reference for the model to load on demand.
|
|
32
|
+
* directory → path is a directory; preserve the marker normalized
|
|
33
|
+
* with a trailing `/` (e.g. `@src/components/`) so
|
|
34
|
+
* the model can ls/find/grep it via its tools. We
|
|
35
|
+
* intentionally do NOT bulk-embed directory contents
|
|
36
|
+
* — large dirs would blow the context window, and
|
|
37
|
+
* the model has cheap tools to explore on demand.
|
|
38
|
+
* error → missing / outside root / binary. Replace marker
|
|
39
|
+
* with `[@<path> not included: <reason>]` so neither
|
|
40
|
+
* user nor model is left guessing.
|
|
34
41
|
*
|
|
35
|
-
* Multiple markers in one prompt
|
|
42
|
+
* Multiple markers in one prompt are classified independently, then
|
|
43
|
+
* inline candidates compete for a shared aggregate budget. See
|
|
44
|
+
* `AGGREGATE_INLINE_BUDGET_BYTES` for the cap and the smallest-first
|
|
45
|
+
* walk that keeps the degradation graceful.
|
|
36
46
|
*/
|
|
37
47
|
/**
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
* fetch. 128 KB is roughly 32K tokens — small enough to be
|
|
41
|
-
* 200K-token context window and large enough to cover most
|
|
42
|
-
* source files (a 1k-line TS file is typically ~50 KB).
|
|
48
|
+
* Per-file inlining cutoff. Files at or under this byte count are
|
|
49
|
+
* eligible for inlining; larger files are left as `@<path>` for the
|
|
50
|
+
* model to fetch. 128 KB is roughly 32K tokens — small enough to be
|
|
51
|
+
* safe in a 200K-token context window and large enough to cover most
|
|
52
|
+
* real source files (a 1k-line TS file is typically ~50 KB).
|
|
43
53
|
*/
|
|
44
54
|
const INLINE_THRESHOLD_BYTES = 128 * 1024;
|
|
55
|
+
/**
|
|
56
|
+
* Aggregate cap on TOTAL bytes inlined across every `@<path>` in a
|
|
57
|
+
* single prompt. Without this, a user `@`-ing 50 mid-sized files
|
|
58
|
+
* (each well under the per-file cap) could push 5+ MB into a single
|
|
59
|
+
* prompt and blow the model's context window. 512 KB ≈ 128K tokens,
|
|
60
|
+
* which leaves comfortable headroom for the user's prose, the system
|
|
61
|
+
* prompt, the model's response, and tool round-trips inside a 200K
|
|
62
|
+
* context window.
|
|
63
|
+
*
|
|
64
|
+
* Files that would push the running total over this cap fall back to
|
|
65
|
+
* `defer` (the model can still load them via its read tool on demand).
|
|
66
|
+
* We process candidates in ascending size order so the smallest /
|
|
67
|
+
* cheapest files inline first — graceful degradation: a 2 KB
|
|
68
|
+
* package.json + a 90 KB README both inline, and the 50th mid-sized
|
|
69
|
+
* file is the one that defers, not whichever happened to be parsed
|
|
70
|
+
* first in the user's text.
|
|
71
|
+
*/
|
|
72
|
+
const AGGREGATE_INLINE_BUDGET_BYTES = 512 * 1024;
|
|
45
73
|
/**
|
|
46
74
|
* Regex shared by `findRefs` and `parseFileReferences`. Match `@` at
|
|
47
75
|
* start-or-after-whitespace then either a `"path with spaces"` quoted
|
|
@@ -84,29 +112,93 @@ export async function expandFileReferences(text, workspacePath) {
|
|
|
84
112
|
const matches = findRefs(text);
|
|
85
113
|
if (matches.length === 0)
|
|
86
114
|
return text;
|
|
87
|
-
|
|
115
|
+
// Phase 1: classify every marker in parallel. Cheap — `checkFileReference`
|
|
116
|
+
// does a path-safety check + a stat + an 8 KB binary sniff. No content
|
|
117
|
+
// reads here, so there's no point doing the budget walk later if all
|
|
118
|
+
// we've spent is a few stats.
|
|
119
|
+
const classifications = await Promise.all(matches.map(async (mm) => {
|
|
88
120
|
try {
|
|
89
121
|
const abs = join(workspacePath, mm.path);
|
|
90
|
-
// Cheap up-front check (path safety + stat + 8 KB sniff) so we
|
|
91
|
-
// can decide inline-vs-defer without reading large files.
|
|
92
122
|
const check = await checkFileReference(abs, workspacePath);
|
|
123
|
+
if (check.kind === "directory")
|
|
124
|
+
return { kind: "directory" };
|
|
93
125
|
if (check.binary)
|
|
94
126
|
return { kind: "error", reason: "binary file" };
|
|
95
127
|
if (check.size > INLINE_THRESHOLD_BYTES)
|
|
96
|
-
return { kind: "
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
128
|
+
return { kind: "deferLarge" };
|
|
129
|
+
return { kind: "inlineCandidate", size: check.size, abs };
|
|
130
|
+
}
|
|
131
|
+
catch (err) {
|
|
132
|
+
const e = err;
|
|
133
|
+
if (e.name === "NotFoundError" || e.code === "ENOENT") {
|
|
134
|
+
return { kind: "error", reason: "file not found" };
|
|
135
|
+
}
|
|
136
|
+
if (e.name === "PathOutsideRootError") {
|
|
137
|
+
return { kind: "error", reason: "path is outside the project root" };
|
|
138
|
+
}
|
|
139
|
+
// NotAFileError now only fires for non-regular non-directory
|
|
140
|
+
// entries (sockets, devices, etc.) — directories are handled
|
|
141
|
+
// explicitly via the directory outcome above.
|
|
142
|
+
if (e.name === "NotAFileError") {
|
|
143
|
+
return { kind: "error", reason: "path is not a regular file or directory" };
|
|
144
|
+
}
|
|
145
|
+
return { kind: "error", reason: "unreadable" };
|
|
146
|
+
}
|
|
147
|
+
}));
|
|
148
|
+
// Phase 2: aggregate-budget walk. Sort inline candidates ascending by
|
|
149
|
+
// size and walk until the budget runs out. Survivors get marked for
|
|
150
|
+
// inlining; the rest fall back to defer. Walking smallest-first
|
|
151
|
+
// maximises the number of useful inlines before the budget exhausts —
|
|
152
|
+
// a 2 KB `package.json` + 90 KB README both fit, and the 50th
|
|
153
|
+
// mid-sized file is the one that defers, not whichever happened to
|
|
154
|
+
// be parsed first in the user's text.
|
|
155
|
+
const inlineSet = new Set();
|
|
156
|
+
const candidateIndices = [];
|
|
157
|
+
for (let i = 0; i < classifications.length; i += 1) {
|
|
158
|
+
const c = classifications[i];
|
|
159
|
+
if (c?.kind === "inlineCandidate")
|
|
160
|
+
candidateIndices.push({ i, size: c.size });
|
|
161
|
+
}
|
|
162
|
+
candidateIndices.sort((a, b) => a.size - b.size);
|
|
163
|
+
let remaining = AGGREGATE_INLINE_BUDGET_BYTES;
|
|
164
|
+
for (const { i, size } of candidateIndices) {
|
|
165
|
+
if (size <= remaining) {
|
|
166
|
+
inlineSet.add(i);
|
|
167
|
+
remaining -= size;
|
|
168
|
+
}
|
|
169
|
+
// Else: this index falls back to defer in phase 3. We DON'T break
|
|
170
|
+
// here — a single oversized candidate still leaves room for
|
|
171
|
+
// smaller ones later in the (size-sorted) walk.
|
|
172
|
+
}
|
|
173
|
+
// Phase 3: read content for the budget survivors, materialise the
|
|
174
|
+
// final outcomes for everything else. Index order preserved so the
|
|
175
|
+
// splice loop below can apply each outcome at its original marker
|
|
176
|
+
// position in the user's text.
|
|
177
|
+
const outcomes = await Promise.all(classifications.map(async (c, i) => {
|
|
178
|
+
if (c.kind === "directory")
|
|
179
|
+
return { kind: "directory" };
|
|
180
|
+
if (c.kind === "error")
|
|
181
|
+
return { kind: "error", reason: c.reason };
|
|
182
|
+
if (c.kind === "deferLarge")
|
|
183
|
+
return { kind: "defer" };
|
|
184
|
+
// c.kind === "inlineCandidate"
|
|
185
|
+
if (!inlineSet.has(i))
|
|
186
|
+
return { kind: "defer" };
|
|
187
|
+
try {
|
|
188
|
+
const result = await readFile(c.abs, workspacePath);
|
|
100
189
|
if (result.binary)
|
|
101
190
|
return { kind: "error", reason: "binary file" };
|
|
191
|
+
const mm = matches[i];
|
|
192
|
+
if (mm === undefined)
|
|
193
|
+
return { kind: "defer" };
|
|
102
194
|
return { kind: "inline", text: formatExpansion(mm.path, result.content) };
|
|
103
195
|
}
|
|
104
196
|
catch (err) {
|
|
105
197
|
const e = err;
|
|
106
198
|
if (e.name === "FileTooLargeError") {
|
|
107
199
|
// readFile's own 5 MB cap fired — defer to model tool use.
|
|
108
|
-
// Shouldn't normally hit this since
|
|
109
|
-
// catches anything
|
|
200
|
+
// Shouldn't normally hit this since classification already
|
|
201
|
+
// catches anything > INLINE_THRESHOLD_BYTES, but
|
|
110
202
|
// belt-and-suspenders for cases where the file grew between
|
|
111
203
|
// check and read.
|
|
112
204
|
return { kind: "defer" };
|
|
@@ -114,12 +206,6 @@ export async function expandFileReferences(text, workspacePath) {
|
|
|
114
206
|
if (e.name === "NotFoundError" || e.code === "ENOENT") {
|
|
115
207
|
return { kind: "error", reason: "file not found" };
|
|
116
208
|
}
|
|
117
|
-
if (e.name === "PathOutsideRootError") {
|
|
118
|
-
return { kind: "error", reason: "path is outside the project root" };
|
|
119
|
-
}
|
|
120
|
-
if (e.name === "NotAFileError") {
|
|
121
|
-
return { kind: "error", reason: "path is a directory, not a file" };
|
|
122
|
-
}
|
|
123
209
|
return { kind: "error", reason: "unreadable" };
|
|
124
210
|
}
|
|
125
211
|
}));
|
|
@@ -144,6 +230,15 @@ export async function expandFileReferences(text, workspacePath) {
|
|
|
144
230
|
else if (outcome.kind === "defer") {
|
|
145
231
|
out = `${before}${marker}${after}`;
|
|
146
232
|
}
|
|
233
|
+
else if (outcome.kind === "directory") {
|
|
234
|
+
// Normalize the directory marker to end with `/` so the model
|
|
235
|
+
// can tell file vs folder at a glance — same convention as
|
|
236
|
+
// `ls -F`. If the user already typed the trailing slash we
|
|
237
|
+
// keep their form; otherwise we append one.
|
|
238
|
+
const dirPath = mm.path.endsWith("/") ? mm.path : `${mm.path}/`;
|
|
239
|
+
const dirMarker = /\s/.test(dirPath) ? `@"${dirPath}"` : `@${dirPath}`;
|
|
240
|
+
out = `${before}${dirMarker}${after}`;
|
|
241
|
+
}
|
|
147
242
|
else {
|
|
148
243
|
out = `${before}[${marker} not included: ${outcome.reason}]${after}`;
|
|
149
244
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-references.js","sourceRoot":"","sources":["../src/file-references.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAEjE
|
|
1
|
+
{"version":3,"file":"file-references.js","sourceRoot":"","sources":["../src/file-references.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import { dirname, join, relative, resolve, sep } from "node:path";
|
|
|
3
3
|
import { randomUUID } from "node:crypto";
|
|
4
4
|
import { config } from "./config.js";
|
|
5
5
|
import { clearProjectOverrides as clearProjectSkillOverrides } from "./skill-overrides.js";
|
|
6
|
+
import { clearProjectPromptOverrides } from "./prompt-overrides.js";
|
|
6
7
|
/**
|
|
7
8
|
* Project ids are always `randomUUID()` output. Mirrors the same
|
|
8
9
|
* regex used in session-registry's `sessionDirFor()` validator.
|
|
@@ -218,6 +219,9 @@ export async function deleteProject(id, opts = {}) {
|
|
|
218
219
|
await clearProjectSkillOverrides(id).catch((err) => {
|
|
219
220
|
warn({ err, id }, "skill-overrides cleanup failed");
|
|
220
221
|
});
|
|
222
|
+
await clearProjectPromptOverrides(id).catch((err) => {
|
|
223
|
+
warn({ err, id }, "prompt-overrides cleanup failed");
|
|
224
|
+
});
|
|
221
225
|
if (opts.cascadeSessionDir === true) {
|
|
222
226
|
// Wipe the project's session directory. Best-effort — a missing
|
|
223
227
|
// dir (no sessions ever recorded) is not an error.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-manager.js","sourceRoot":"","sources":["../src/project-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"project-manager.js","sourceRoot":"","sources":["../src/project-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { chmodSync } from "node:fs";
|
|
2
|
+
import { mkdir, readFile, rename, unlink, writeFile } from "node:fs/promises";
|
|
3
|
+
import { dirname } from "node:path";
|
|
4
|
+
import { randomUUID } from "node:crypto";
|
|
5
|
+
import { config } from "./config.js";
|
|
6
|
+
const EMPTY = { projects: {} };
|
|
7
|
+
async function ensureDir() {
|
|
8
|
+
await mkdir(dirname(config.promptOverridesFile), { recursive: true });
|
|
9
|
+
}
|
|
10
|
+
async function atomicWrite(data) {
|
|
11
|
+
await ensureDir();
|
|
12
|
+
const path = config.promptOverridesFile;
|
|
13
|
+
const tmp = `${path}.${randomUUID()}.tmp`;
|
|
14
|
+
await writeFile(tmp, JSON.stringify(data, null, 2), { mode: 0o600 });
|
|
15
|
+
try {
|
|
16
|
+
chmodSync(tmp, 0o600);
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
// best-effort
|
|
20
|
+
}
|
|
21
|
+
try {
|
|
22
|
+
await rename(tmp, path);
|
|
23
|
+
}
|
|
24
|
+
catch (err) {
|
|
25
|
+
await unlink(tmp).catch(() => undefined);
|
|
26
|
+
throw err;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
export async function readPromptOverrides() {
|
|
30
|
+
try {
|
|
31
|
+
const raw = await readFile(config.promptOverridesFile, "utf8");
|
|
32
|
+
if (raw.trim().length === 0)
|
|
33
|
+
return { projects: {} };
|
|
34
|
+
const parsed = JSON.parse(raw);
|
|
35
|
+
if (typeof parsed !== "object" || parsed === null || !("projects" in parsed)) {
|
|
36
|
+
return { projects: {} };
|
|
37
|
+
}
|
|
38
|
+
const projects = parsed.projects;
|
|
39
|
+
if (typeof projects !== "object" || projects === null)
|
|
40
|
+
return { projects: {} };
|
|
41
|
+
// Normalize each project entry — stale/malformed entries silently
|
|
42
|
+
// become empty rather than throwing.
|
|
43
|
+
const out = { projects: {} };
|
|
44
|
+
for (const [pid, val] of Object.entries(projects)) {
|
|
45
|
+
if (typeof val !== "object" || val === null)
|
|
46
|
+
continue;
|
|
47
|
+
const enable = Array.isArray(val.enable)
|
|
48
|
+
? val.enable.filter((s) => typeof s === "string")
|
|
49
|
+
: [];
|
|
50
|
+
const disable = Array.isArray(val.disable)
|
|
51
|
+
? val.disable.filter((s) => typeof s === "string")
|
|
52
|
+
: [];
|
|
53
|
+
out.projects[pid] = { enable, disable };
|
|
54
|
+
}
|
|
55
|
+
return out;
|
|
56
|
+
}
|
|
57
|
+
catch (err) {
|
|
58
|
+
if (err.code === "ENOENT")
|
|
59
|
+
return { projects: {} };
|
|
60
|
+
throw err;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Tri-state set: pass `state = undefined` to clear (inherit). Empty
|
|
65
|
+
* project entries are pruned so the file doesn't grow with stale
|
|
66
|
+
* keys after a series of toggles back to inherit.
|
|
67
|
+
*/
|
|
68
|
+
export async function setProjectPromptOverride(projectId, promptName, state) {
|
|
69
|
+
const cur = await readPromptOverrides();
|
|
70
|
+
const entry = cur.projects[projectId] ?? { enable: [], disable: [] };
|
|
71
|
+
// Always remove from both lists first — flipping enabled→disabled
|
|
72
|
+
// or vice versa is just remove + maybe add.
|
|
73
|
+
entry.enable = entry.enable.filter((n) => n !== promptName);
|
|
74
|
+
entry.disable = entry.disable.filter((n) => n !== promptName);
|
|
75
|
+
if (state === "enabled")
|
|
76
|
+
entry.enable.push(promptName);
|
|
77
|
+
else if (state === "disabled")
|
|
78
|
+
entry.disable.push(promptName);
|
|
79
|
+
if (entry.enable.length === 0 && entry.disable.length === 0) {
|
|
80
|
+
delete cur.projects[projectId];
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
cur.projects[projectId] = entry;
|
|
84
|
+
}
|
|
85
|
+
await atomicWrite(cur);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Lookup helper used by the UI. Returns `undefined` when the project
|
|
89
|
+
* has no opinion on this prompt (= inherit from global).
|
|
90
|
+
*/
|
|
91
|
+
export function getProjectPromptState(overrides, projectId, promptName) {
|
|
92
|
+
const entry = overrides.projects[projectId];
|
|
93
|
+
if (entry === undefined)
|
|
94
|
+
return undefined;
|
|
95
|
+
if (entry.enable.includes(promptName))
|
|
96
|
+
return "enabled";
|
|
97
|
+
if (entry.disable.includes(promptName))
|
|
98
|
+
return "disabled";
|
|
99
|
+
return undefined;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Return the set of prompt names this project has explicitly
|
|
103
|
+
* disabled. Used by the resource-loader's `promptsOverride` hook to
|
|
104
|
+
* filter out prompts that pi's pattern system can't reach (parallel
|
|
105
|
+
* to `getProjectDisabledSkillNames`). Today the SDK has no
|
|
106
|
+
* package-contributed prompts, but the hook is plumbed for symmetry
|
|
107
|
+
* with skills + future-proofing.
|
|
108
|
+
*/
|
|
109
|
+
export async function getProjectDisabledPromptNames(projectId) {
|
|
110
|
+
const cur = await readPromptOverrides();
|
|
111
|
+
const entry = cur.projects[projectId];
|
|
112
|
+
if (entry === undefined)
|
|
113
|
+
return new Set();
|
|
114
|
+
return new Set(entry.disable);
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Drop every override mention of a deleted project so the file
|
|
118
|
+
* doesn't accumulate orphaned entries. Called from project-manager
|
|
119
|
+
* on project delete (parallel to the skill-overrides version).
|
|
120
|
+
*/
|
|
121
|
+
export async function clearProjectPromptOverrides(projectId) {
|
|
122
|
+
const cur = await readPromptOverrides();
|
|
123
|
+
if (cur.projects[projectId] === undefined)
|
|
124
|
+
return;
|
|
125
|
+
delete cur.projects[projectId];
|
|
126
|
+
await atomicWrite(cur);
|
|
127
|
+
}
|
|
128
|
+
/** Suppress an unused-export warning if EMPTY isn't referenced
|
|
129
|
+
* by the importing module — the constant is exported for tests. */
|
|
130
|
+
export const _EMPTY_FOR_TESTS = EMPTY;
|
|
131
|
+
//# sourceMappingURL=prompt-overrides.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-overrides.js","sourceRoot":"","sources":["../src/prompt-overrides.ts"],"names":[],"mappings":"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"}
|