@vibesdotdev/integrations-pi 0.0.0-stage → 1.0.0-rc.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/LICENSE +126 -0
- package/REFERENCE.md +284 -0
- package/dist/extension/active-tools.d.ts +17 -0
- package/dist/extension/active-tools.d.ts.map +1 -0
- package/dist/extension/active-tools.js +47 -0
- package/dist/extension/active-tools.js.map +1 -0
- package/dist/extension/approvals.d.ts +26 -0
- package/dist/extension/approvals.d.ts.map +1 -0
- package/dist/extension/approvals.js +124 -0
- package/dist/extension/approvals.js.map +1 -0
- package/dist/extension/boot.d.ts +18 -0
- package/dist/extension/boot.d.ts.map +1 -0
- package/dist/extension/boot.js +129 -0
- package/dist/extension/boot.js.map +1 -0
- package/dist/extension/chrome.d.ts +33 -0
- package/dist/extension/chrome.d.ts.map +1 -0
- package/dist/extension/chrome.js +167 -0
- package/dist/extension/chrome.js.map +1 -0
- package/dist/extension/commands.d.ts +41 -0
- package/dist/extension/commands.d.ts.map +1 -0
- package/dist/extension/commands.js +47 -0
- package/dist/extension/commands.js.map +1 -0
- package/dist/extension/entry.d.ts +9 -0
- package/dist/extension/entry.d.ts.map +1 -0
- package/dist/extension/entry.js +16 -0
- package/dist/extension/entry.js.map +1 -0
- package/dist/extension/events.d.ts +17 -0
- package/dist/extension/events.d.ts.map +1 -0
- package/dist/extension/events.js +42 -0
- package/dist/extension/events.js.map +1 -0
- package/dist/extension/index.d.ts +54 -0
- package/dist/extension/index.d.ts.map +1 -0
- package/dist/extension/index.js +541 -0
- package/dist/extension/index.js.map +1 -0
- package/dist/extension/models.d.ts +30 -0
- package/dist/extension/models.d.ts.map +1 -0
- package/dist/extension/models.js +104 -0
- package/dist/extension/models.js.map +1 -0
- package/dist/extension/render.d.ts +17 -0
- package/dist/extension/render.d.ts.map +1 -0
- package/dist/extension/render.js +107 -0
- package/dist/extension/render.js.map +1 -0
- package/dist/extension/runtime-host.d.ts +6 -0
- package/dist/extension/runtime-host.d.ts.map +1 -0
- package/dist/extension/runtime-host.js +2 -0
- package/dist/extension/runtime-host.js.map +1 -0
- package/dist/external/external.plugin.d.ts +7 -0
- package/dist/external/external.plugin.d.ts.map +1 -0
- package/dist/external/external.plugin.js +44 -0
- package/dist/external/external.plugin.js.map +1 -0
- package/dist/external/index.d.ts +8 -0
- package/dist/external/index.d.ts.map +1 -0
- package/dist/external/index.js +8 -0
- package/dist/external/index.js.map +1 -0
- package/dist/external/pi/bootstrap.d.ts +34 -0
- package/dist/external/pi/bootstrap.d.ts.map +1 -0
- package/dist/external/pi/bootstrap.js +238 -0
- package/dist/external/pi/bootstrap.js.map +1 -0
- package/dist/external/pi/guide.d.ts +3 -0
- package/dist/external/pi/guide.d.ts.map +1 -0
- package/dist/external/pi/guide.js +33 -0
- package/dist/external/pi/guide.js.map +1 -0
- package/dist/external/pi/index.d.ts +162 -0
- package/dist/external/pi/index.d.ts.map +1 -0
- package/dist/external/pi/index.js +7 -0
- package/dist/external/pi/index.js.map +1 -0
- package/dist/external/pi/installer.d.ts +19 -0
- package/dist/external/pi/installer.d.ts.map +1 -0
- package/dist/external/pi/installer.descriptor.d.ts +373 -0
- package/dist/external/pi/installer.descriptor.d.ts.map +1 -0
- package/dist/external/pi/installer.descriptor.js +43 -0
- package/dist/external/pi/installer.descriptor.js.map +1 -0
- package/dist/external/pi/installer.js +82 -0
- package/dist/external/pi/installer.js.map +1 -0
- package/dist/external/pi/installers/errors.d.ts +16 -0
- package/dist/external/pi/installers/errors.d.ts.map +1 -0
- package/dist/external/pi/installers/errors.js +15 -0
- package/dist/external/pi/installers/errors.js.map +1 -0
- package/dist/external/pi/installers/extension.d.ts +16 -0
- package/dist/external/pi/installers/extension.d.ts.map +1 -0
- package/dist/external/pi/installers/extension.js +292 -0
- package/dist/external/pi/installers/extension.js.map +1 -0
- package/dist/external/pi/installers/plan.d.ts +29 -0
- package/dist/external/pi/installers/plan.d.ts.map +1 -0
- package/dist/external/pi/installers/plan.js +391 -0
- package/dist/external/pi/installers/plan.js.map +1 -0
- package/dist/external/pi/installers/transaction.d.ts +5 -0
- package/dist/external/pi/installers/transaction.d.ts.map +1 -0
- package/dist/external/pi/installers/transaction.js +66 -0
- package/dist/external/pi/installers/transaction.js.map +1 -0
- package/dist/external/pi/manifest.d.ts +6 -0
- package/dist/external/pi/manifest.d.ts.map +1 -0
- package/dist/external/pi/manifest.js +91 -0
- package/dist/external/pi/manifest.js.map +1 -0
- package/dist/external/pi-presets.d.ts +817 -0
- package/dist/external/pi-presets.d.ts.map +1 -0
- package/dist/external/pi-presets.js +75 -0
- package/dist/external/pi-presets.js.map +1 -0
- package/dist/harness/constants.d.ts +46 -0
- package/dist/harness/constants.d.ts.map +1 -0
- package/dist/harness/constants.js +52 -0
- package/dist/harness/constants.js.map +1 -0
- package/dist/harness/identity.d.ts +29 -0
- package/dist/harness/identity.d.ts.map +1 -0
- package/dist/harness/identity.js +40 -0
- package/dist/harness/identity.js.map +1 -0
- package/dist/harness/index.d.ts +19 -0
- package/dist/harness/index.d.ts.map +1 -0
- package/dist/harness/index.js +18 -0
- package/dist/harness/index.js.map +1 -0
- package/dist/harness/managed-block.d.ts +20 -0
- package/dist/harness/managed-block.d.ts.map +1 -0
- package/dist/harness/managed-block.js +23 -0
- package/dist/harness/managed-block.js.map +1 -0
- package/dist/harness/pi-naming.d.ts +32 -0
- package/dist/harness/pi-naming.d.ts.map +1 -0
- package/dist/harness/pi-naming.js +110 -0
- package/dist/harness/pi-naming.js.map +1 -0
- package/dist/harness/preflight.d.ts +5 -0
- package/dist/harness/preflight.d.ts.map +1 -0
- package/dist/harness/preflight.js +163 -0
- package/dist/harness/preflight.js.map +1 -0
- package/dist/harness/prompt.d.ts +14 -0
- package/dist/harness/prompt.d.ts.map +1 -0
- package/dist/harness/prompt.js +15 -0
- package/dist/harness/prompt.js.map +1 -0
- package/dist/harness/runtime.d.ts +137 -0
- package/dist/harness/runtime.d.ts.map +1 -0
- package/dist/harness/runtime.js +53 -0
- package/dist/harness/runtime.js.map +1 -0
- package/dist/harness/scope.d.ts +11 -0
- package/dist/harness/scope.d.ts.map +1 -0
- package/dist/harness/scope.js +47 -0
- package/dist/harness/scope.js.map +1 -0
- package/dist/harness/themes.d.ts +30 -0
- package/dist/harness/themes.d.ts.map +1 -0
- package/dist/harness/themes.js +225 -0
- package/dist/harness/themes.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/schemas/extension-api.d.ts +102 -0
- package/dist/schemas/extension-api.d.ts.map +1 -0
- package/dist/schemas/extension-api.js +2 -0
- package/dist/schemas/extension-api.js.map +1 -0
- package/dist/schemas/extension-host.d.ts +11 -0
- package/dist/schemas/extension-host.d.ts.map +1 -0
- package/dist/schemas/extension-host.js +12 -0
- package/dist/schemas/extension-host.js.map +1 -0
- package/dist/schemas/extension.d.ts +193 -0
- package/dist/schemas/extension.d.ts.map +1 -0
- package/dist/schemas/extension.js +82 -0
- package/dist/schemas/extension.js.map +1 -0
- package/dist/schemas/installer.d.ts +872 -0
- package/dist/schemas/installer.d.ts.map +1 -0
- package/dist/schemas/installer.js +138 -0
- package/dist/schemas/installer.js.map +1 -0
- package/dist/themes/vibes-dark.json +63 -0
- package/dist/themes/vibes-high-contrast.json +63 -0
- package/dist/themes/vibes-light.json +63 -0
- package/package.json +110 -4
- package/README.md +0 -3
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
import { PiInstallError } from "./errors.js";
|
|
2
|
+
export { PiInstallError } from "./errors.js";
|
|
3
|
+
/**
|
|
4
|
+
* Pi vibes extension installer.
|
|
5
|
+
*
|
|
6
|
+
* One owner for the Pi harness files: the project-local extension module,
|
|
7
|
+
* SYSTEM.md, settings.json, and Studio theme JSON. plan.ts decides the desired
|
|
8
|
+
* bytes; this module reads, preflights, writes transactionally, and reports.
|
|
9
|
+
* install, repair, upgrade, dry-run, status, and uninstall all go through the
|
|
10
|
+
* same plan, so a dry run cannot disagree with the real thing.
|
|
11
|
+
*
|
|
12
|
+
* Nothing reported here is runtime-verified. Only loading Pi proves the
|
|
13
|
+
* extension registered, so results say what was written and never claim the
|
|
14
|
+
* harness works.
|
|
15
|
+
*/
|
|
16
|
+
import { managedFileVersion, VIBES_HARNESS_MARKER_VERSION } from '@vibesdotdev/external/harness';
|
|
17
|
+
import { join } from '@vibesdotdev/filesystem';
|
|
18
|
+
import { CapabilityError } from '@vibesdotdev/kernel';
|
|
19
|
+
import { DEFAULT_PI_TOOL_POLICY_PROFILE, VIBES_PI_EXTENSION_PACKAGE, } from "../../../harness/constants.js";
|
|
20
|
+
import { runPiInstallPreflight } from "../../../harness/preflight.js";
|
|
21
|
+
import { piInstallHost, readPiText } from "../../../harness/runtime.js";
|
|
22
|
+
import { resolvePiScopePaths } from "../../../harness/scope.js";
|
|
23
|
+
import { PiInstallOptionsSchema, PiProfileSchema } from "../../../schemas/installer.js";
|
|
24
|
+
import { applyPiChanges } from "./transaction.js";
|
|
25
|
+
import { PI_BUILTIN_TOOLS } from "../../../harness/pi-naming.js";
|
|
26
|
+
import { renderPiVibesThemes } from "../../../harness/themes.js";
|
|
27
|
+
import { PI_EXTENSION_FILE_KIND, PI_SYSTEM_PROMPT_BLOCK_KIND, planPiHarnessFiles, planPiHarnessRemoval, renderPiSystemPrompt, renderPiVibesExtension } from "./plan.js";
|
|
28
|
+
export { renderPiSystemPrompt, renderPiVibesExtension };
|
|
29
|
+
/** Options for an install/repair/upgrade: those run the preflight probes, which search the handed `env`. */
|
|
30
|
+
function profileOrThrow(profile) {
|
|
31
|
+
const parsed = PiProfileSchema.safeParse(profile ?? DEFAULT_PI_TOOL_POLICY_PROFILE);
|
|
32
|
+
if (!parsed.success)
|
|
33
|
+
throw new CapabilityError('Unknown Pi tool policy profile.', 'INVALID_INPUT', {
|
|
34
|
+
reason: 'pi-profile-invalid', cause: parsed.error
|
|
35
|
+
});
|
|
36
|
+
return parsed.data;
|
|
37
|
+
}
|
|
38
|
+
async function readExisting(paths, fs) {
|
|
39
|
+
return {
|
|
40
|
+
extension: await readPiText(fs, paths.extensionPath),
|
|
41
|
+
systemPrompt: await readPiText(fs, paths.systemPromptPath),
|
|
42
|
+
settings: await readPiText(fs, paths.settingsPath),
|
|
43
|
+
themes: Object.fromEntries(await Promise.all(renderPiVibesThemes().map(async (file) => [
|
|
44
|
+
file.filename, await readPiText(fs, fs.join(paths.themesDir, file.filename))
|
|
45
|
+
])))
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
function describe(changes, paths) {
|
|
49
|
+
const byKind = {
|
|
50
|
+
extension: paths.extensionPath,
|
|
51
|
+
'system-prompt': paths.systemPromptPath,
|
|
52
|
+
settings: paths.settingsPath,
|
|
53
|
+
theme: paths.themesDir
|
|
54
|
+
};
|
|
55
|
+
return changes.map((change) => ({ ...change, path: byKind[change.kind] }));
|
|
56
|
+
}
|
|
57
|
+
function formatChangeList(changes) {
|
|
58
|
+
return changes.map((change) => change.action + ' ' + change.kind + ' (' + change.summary + ')').join('; ');
|
|
59
|
+
}
|
|
60
|
+
export async function installPiVibesExtension(options) {
|
|
61
|
+
const scope = options.scope ?? 'project';
|
|
62
|
+
const host = await piInstallHost(options.runtime);
|
|
63
|
+
const paths = resolvePiScopePaths(scope, options, host.paths);
|
|
64
|
+
const admitted = PiInstallOptionsSchema.safeParse(options);
|
|
65
|
+
if (!admitted.success)
|
|
66
|
+
throw new CapabilityError('Pi installation options are invalid.', 'INVALID_INPUT', { reason: 'pi-install-options-invalid', cause: admitted.error });
|
|
67
|
+
const packageName = admitted.data.packageName ?? VIBES_PI_EXTENSION_PACKAGE;
|
|
68
|
+
const requestedProfile = options.profile === undefined ? undefined : profileOrThrow(options.profile);
|
|
69
|
+
const dryRun = options.dryRun ?? false;
|
|
70
|
+
const existing = await readExisting(paths, host.fs);
|
|
71
|
+
const plan = planPiHarnessFiles({
|
|
72
|
+
packageName,
|
|
73
|
+
profile: requestedProfile,
|
|
74
|
+
extensionRef: paths.extensionRef,
|
|
75
|
+
knownBuiltins: PI_BUILTIN_TOOLS,
|
|
76
|
+
extension: existing.extension,
|
|
77
|
+
systemPrompt: existing.systemPrompt,
|
|
78
|
+
settings: existing.settings,
|
|
79
|
+
themes: existing.themes
|
|
80
|
+
}, paths.settingsPath);
|
|
81
|
+
const profile = plan.managed.profile;
|
|
82
|
+
const preflight = await runPiInstallPreflight({
|
|
83
|
+
paths,
|
|
84
|
+
packageName,
|
|
85
|
+
conflicts: plan.conflicts,
|
|
86
|
+
skip: options.skipChecks,
|
|
87
|
+
env: options.env,
|
|
88
|
+
runtime: options.runtime
|
|
89
|
+
});
|
|
90
|
+
if (plan.conflicts.length > 0) {
|
|
91
|
+
throw new PiInstallError('Pi harness install refused: ' +
|
|
92
|
+
plan.conflicts.map((conflict) => conflict.reason + ' - ' + conflict.remedy).join('; '), { conflicts: plan.conflicts, preflight });
|
|
93
|
+
}
|
|
94
|
+
if (!preflight.ok) {
|
|
95
|
+
const failures = preflight.checks.filter((check) => check.status === 'fail');
|
|
96
|
+
throw new PiInstallError('Pi harness preflight failed: ' +
|
|
97
|
+
failures.map((check) => check.message + ' - ' + (check.remedy ?? '')).join('; '), { preflight });
|
|
98
|
+
}
|
|
99
|
+
const writes = [
|
|
100
|
+
{ path: paths.extensionPath, content: plan.extensionContent, mode: 0o644 },
|
|
101
|
+
{ path: paths.systemPromptPath, content: plan.systemPromptContent, mode: 0o644 },
|
|
102
|
+
{ path: paths.settingsPath, content: plan.settingsContent, mode: 0o644 },
|
|
103
|
+
...plan.themeFiles.map((file) => ({
|
|
104
|
+
path: join(paths.themesDir, file.filename),
|
|
105
|
+
content: file.content,
|
|
106
|
+
mode: 0o644
|
|
107
|
+
}))
|
|
108
|
+
];
|
|
109
|
+
const changes = describe(plan.changes, paths);
|
|
110
|
+
if (dryRun) {
|
|
111
|
+
return {
|
|
112
|
+
ok: true,
|
|
113
|
+
scope,
|
|
114
|
+
profile,
|
|
115
|
+
dryRun: true,
|
|
116
|
+
settingsPath: paths.settingsPath,
|
|
117
|
+
extensionPath: paths.extensionPath,
|
|
118
|
+
systemPromptPath: paths.systemPromptPath,
|
|
119
|
+
changes,
|
|
120
|
+
migrations: plan.migrations,
|
|
121
|
+
preflight,
|
|
122
|
+
verified: false,
|
|
123
|
+
message: 'Dry run: ' + formatChangeList(changes)
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
await applyPiChanges(host.fs, writes);
|
|
127
|
+
return {
|
|
128
|
+
ok: true,
|
|
129
|
+
scope,
|
|
130
|
+
profile,
|
|
131
|
+
dryRun: false,
|
|
132
|
+
settingsPath: paths.settingsPath,
|
|
133
|
+
extensionPath: paths.extensionPath,
|
|
134
|
+
systemPromptPath: paths.systemPromptPath,
|
|
135
|
+
changes,
|
|
136
|
+
migrations: plan.migrations,
|
|
137
|
+
preflight,
|
|
138
|
+
verified: false,
|
|
139
|
+
message: 'Pi harness written (' +
|
|
140
|
+
profile +
|
|
141
|
+
', ' +
|
|
142
|
+
scope +
|
|
143
|
+
'): ' +
|
|
144
|
+
formatChangeList(changes) +
|
|
145
|
+
'. Not runtime-verified: run pi and list tools to prove registration.'
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
/** Idempotent re-apply of the current templates; reports drift it fixes. */
|
|
149
|
+
export async function repairPiVibesExtension(options) {
|
|
150
|
+
return await installPiVibesExtension(options);
|
|
151
|
+
}
|
|
152
|
+
/** Refuses to "upgrade" a directory that never held a Vibes install. */
|
|
153
|
+
export async function upgradePiVibesExtension(options) {
|
|
154
|
+
const status = await readPiInstallStatus(options);
|
|
155
|
+
if (status.state === 'not-installed') {
|
|
156
|
+
throw new PiInstallError('Nothing to upgrade: no Vibes Pi harness is installed for scope ' + status.scope);
|
|
157
|
+
}
|
|
158
|
+
return await installPiVibesExtension(options);
|
|
159
|
+
}
|
|
160
|
+
export async function readPiInstallStatus(options = {}) {
|
|
161
|
+
const scope = options.scope ?? 'project';
|
|
162
|
+
const host = await piInstallHost(options.runtime);
|
|
163
|
+
const paths = resolvePiScopePaths(scope, options, host.paths);
|
|
164
|
+
const existing = await readExisting(paths, host.fs);
|
|
165
|
+
const plan = planPiHarnessFiles({
|
|
166
|
+
packageName: options.packageName ?? VIBES_PI_EXTENSION_PACKAGE,
|
|
167
|
+
profile: options.profile === undefined ? undefined : profileOrThrow(options.profile),
|
|
168
|
+
extensionRef: paths.extensionRef,
|
|
169
|
+
knownBuiltins: PI_BUILTIN_TOOLS,
|
|
170
|
+
extension: existing.extension,
|
|
171
|
+
systemPrompt: existing.systemPrompt,
|
|
172
|
+
settings: existing.settings,
|
|
173
|
+
themes: existing.themes
|
|
174
|
+
}, paths.settingsPath);
|
|
175
|
+
const details = [];
|
|
176
|
+
const markerVersion = plan.extensionContent === existing.extension ? VIBES_HARNESS_MARKER_VERSION : null;
|
|
177
|
+
const extensionMarker = existing.extension === undefined
|
|
178
|
+
? null
|
|
179
|
+
: managedFileVersion(existing.extension, PI_EXTENSION_FILE_KIND);
|
|
180
|
+
const settingsMarker = plan.managed.markerVersion;
|
|
181
|
+
const managedHere = (existing.settings !== undefined && existing.settings.includes(VIBES_PI_EXTENSION_PACKAGE)) ||
|
|
182
|
+
extensionMarker !== null;
|
|
183
|
+
let state = 'not-installed';
|
|
184
|
+
if (plan.conflicts.length > 0) {
|
|
185
|
+
state = 'conflict';
|
|
186
|
+
details.push(...plan.conflicts.map((conflict) => conflict.reason));
|
|
187
|
+
}
|
|
188
|
+
else if (!managedHere) {
|
|
189
|
+
state = 'not-installed';
|
|
190
|
+
}
|
|
191
|
+
else if (existing.extension === undefined ||
|
|
192
|
+
existing.settings === undefined ||
|
|
193
|
+
existing.systemPrompt === undefined ||
|
|
194
|
+
plan.themeFiles.some(file => existing.themes[file.filename] === undefined)) {
|
|
195
|
+
state = 'partial';
|
|
196
|
+
details.push('one or more owned files are missing');
|
|
197
|
+
}
|
|
198
|
+
else if (markerVersion !== null && settingsMarker >= 0 && existing.extension === plan.extensionContent &&
|
|
199
|
+
existing.systemPrompt === plan.systemPromptContent && existing.settings === plan.settingsContent &&
|
|
200
|
+
plan.themeFiles.every(file => existing.themes[file.filename] === file.content)) {
|
|
201
|
+
state = 'installed-current';
|
|
202
|
+
}
|
|
203
|
+
else if (extensionMarker !== null && extensionMarker < VIBES_HARNESS_MARKER_VERSION) {
|
|
204
|
+
state = 'installed-outdated';
|
|
205
|
+
details.push('ownership marker v' + extensionMarker + ' is older than v' + VIBES_HARNESS_MARKER_VERSION);
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
state = 'installed-outdated';
|
|
209
|
+
details.push('installed files drift from the current templates');
|
|
210
|
+
}
|
|
211
|
+
const remedy = state === 'not-installed'
|
|
212
|
+
? 'vibes dev external pi install'
|
|
213
|
+
: state === 'conflict'
|
|
214
|
+
? 'resolve the named conflicts, then vibes dev external pi install'
|
|
215
|
+
: 'vibes dev external pi repair';
|
|
216
|
+
return {
|
|
217
|
+
scope,
|
|
218
|
+
state,
|
|
219
|
+
profile: plan.managed.profile,
|
|
220
|
+
markerVersion: extensionMarker ?? (managedHere ? VIBES_HARNESS_MARKER_VERSION : null),
|
|
221
|
+
paths: {
|
|
222
|
+
extensionPath: paths.extensionPath,
|
|
223
|
+
systemPromptPath: paths.systemPromptPath,
|
|
224
|
+
settingsPath: paths.settingsPath
|
|
225
|
+
},
|
|
226
|
+
details,
|
|
227
|
+
remedy
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
export async function uninstallPiVibesExtension(options = {}) {
|
|
231
|
+
const scope = options.scope ?? 'project';
|
|
232
|
+
const host = await piInstallHost(options.runtime);
|
|
233
|
+
const paths = resolvePiScopePaths(scope, options, host.paths);
|
|
234
|
+
const existing = await readExisting(paths, host.fs);
|
|
235
|
+
const plan = planPiHarnessRemoval({
|
|
236
|
+
extension: existing.extension,
|
|
237
|
+
systemPrompt: existing.systemPrompt,
|
|
238
|
+
settings: existing.settings,
|
|
239
|
+
themes: existing.themes,
|
|
240
|
+
extensionRef: paths.extensionRef
|
|
241
|
+
}, paths.settingsPath);
|
|
242
|
+
if (plan.conflicts.length > 0) {
|
|
243
|
+
throw new PiInstallError('Pi harness uninstall refused: ' +
|
|
244
|
+
plan.conflicts.map((conflict) => conflict.reason + ' - ' + conflict.remedy).join('; '), { conflicts: plan.conflicts });
|
|
245
|
+
}
|
|
246
|
+
const deleted = [];
|
|
247
|
+
if (options.dryRun) {
|
|
248
|
+
return {
|
|
249
|
+
ok: true,
|
|
250
|
+
scope,
|
|
251
|
+
changes: describe(plan.changes, paths),
|
|
252
|
+
deleted,
|
|
253
|
+
message: 'Dry run: ' + formatChangeList(describe(plan.changes, paths))
|
|
254
|
+
};
|
|
255
|
+
}
|
|
256
|
+
const writes = [];
|
|
257
|
+
if (plan.systemPromptContent !== undefined) {
|
|
258
|
+
writes.push({ path: paths.systemPromptPath, content: plan.systemPromptContent });
|
|
259
|
+
}
|
|
260
|
+
if (plan.settingsContent !== undefined) {
|
|
261
|
+
writes.push({ path: paths.settingsPath, content: plan.settingsContent });
|
|
262
|
+
}
|
|
263
|
+
if (plan.systemPromptContent === undefined && existing.systemPrompt !== undefined) {
|
|
264
|
+
writes.push({ path: paths.systemPromptPath });
|
|
265
|
+
deleted.push(paths.systemPromptPath);
|
|
266
|
+
}
|
|
267
|
+
if (plan.settingsContent === undefined && existing.settings !== undefined) {
|
|
268
|
+
writes.push({ path: paths.settingsPath });
|
|
269
|
+
deleted.push(paths.settingsPath);
|
|
270
|
+
}
|
|
271
|
+
if (plan.removeExtensionFile) {
|
|
272
|
+
writes.push({ path: paths.extensionPath });
|
|
273
|
+
deleted.push(paths.extensionPath);
|
|
274
|
+
}
|
|
275
|
+
for (const filename of plan.removeThemeFiles) {
|
|
276
|
+
const themePath = host.paths.join(paths.themesDir, filename);
|
|
277
|
+
writes.push({ path: themePath });
|
|
278
|
+
deleted.push(themePath);
|
|
279
|
+
}
|
|
280
|
+
await applyPiChanges(host.fs, writes);
|
|
281
|
+
return {
|
|
282
|
+
ok: true,
|
|
283
|
+
scope,
|
|
284
|
+
changes: describe(plan.changes, paths),
|
|
285
|
+
deleted,
|
|
286
|
+
message: 'Pi harness removed (' + scope + '): ' + formatChangeList(describe(plan.changes, paths))
|
|
287
|
+
};
|
|
288
|
+
}
|
|
289
|
+
/** Kept for callers that only need the SYSTEM.md text for a given projection. */
|
|
290
|
+
export const PI_SYSTEM_PROMPT_BLOCK_KIND_EXPORT = PI_SYSTEM_PROMPT_BLOCK_KIND;
|
|
291
|
+
export default installPiVibesExtension;
|
|
292
|
+
//# sourceMappingURL=extension.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extension.js","sourceRoot":"","sources":["../../../../src/external/pi/installers/extension.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { type PiPlan, type PiPlanInput, type PiRemovalPlan, type PiSettings } from '../../../schemas/installer.ts';
|
|
2
|
+
export type { PiFileChangeKind, PiManagedSettings, PiPlan, PiPlanConflict, PiPlanInput, PiPlannedChange, PiRemovalPlan } from '../../../schemas/installer.ts';
|
|
3
|
+
/**
|
|
4
|
+
* Frozen pre-live-catalog prompt texts. Pre-marker installs baked a prompt
|
|
5
|
+
* that enumerated the curated harness table; the managed-block migration
|
|
6
|
+
* strips exactly these bytes so they are replaced, not duplicated. Frozen:
|
|
7
|
+
* do not edit, do not reuse for new installs.
|
|
8
|
+
*/
|
|
9
|
+
export declare const LEGACY_PI_PROMPT_TEXTS: readonly string[];
|
|
10
|
+
export declare const PI_SYSTEM_PROMPT_BLOCK_KIND = "pi-system-prompt";
|
|
11
|
+
export declare const PI_EXTENSION_FILE_KIND = "pi-extension";
|
|
12
|
+
/** Prompt Pi is given. Generic by design: the live extension briefing names
|
|
13
|
+
* the tools actually registered at Pi load, so the baked file must not repeat
|
|
14
|
+
* a tool list that can drift from the registry. */
|
|
15
|
+
export declare function renderPiSystemPrompt(): string;
|
|
16
|
+
/** The project-local module Pi loads; the specifier is JSON-escaped. */
|
|
17
|
+
export declare function renderPiVibesExtension(packageName?: string): string;
|
|
18
|
+
export declare function parsePiSettings(raw: string | undefined, _path: string): PiSettings;
|
|
19
|
+
/** Plan an install (also used for repair, upgrade, and dry-run). */
|
|
20
|
+
export declare function planPiHarnessFiles(rawInput: PiPlanInput, settingsPath?: string): PiPlan;
|
|
21
|
+
/** Remove exactly the bytes the installer wrote, restoring captured values. */
|
|
22
|
+
export declare function planPiHarnessRemoval(input: {
|
|
23
|
+
extension: string | undefined;
|
|
24
|
+
systemPrompt: string | undefined;
|
|
25
|
+
settings: string | undefined;
|
|
26
|
+
extensionRef: string;
|
|
27
|
+
themes?: Readonly<Record<string, string | undefined>>;
|
|
28
|
+
}, settingsPath?: string): PiRemovalPlan;
|
|
29
|
+
//# sourceMappingURL=plan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../../../src/external/pi/installers/plan.ts"],"names":[],"mappings":"AAEA,OAAO,EAAuG,KAAK,MAAM,EAAqB,KAAK,WAAW,EAAsB,KAAK,aAAa,EAAgB,KAAK,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC7Q,YAAY,EAAE,gBAAgB,EAAC,iBAAiB,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,eAAe,EAAC,aAAa,EAAE,MAAM,+BAA+B,CAAC;AA6BxJ;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,EAAE,SAAS,MAAM,EAGnD,CAAC;AAcF,eAAO,MAAM,2BAA2B,qBAAqB,CAAC;AAC9D,eAAO,MAAM,sBAAsB,iBAAiB,CAAC;AAErD;;mDAEmD;AACnD,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED,wEAAwE;AACxE,wBAAgB,sBAAsB,CACrC,WAAW,GAAE,MAAmC,GAC9C,MAAM,CAIR;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,CASlF;AAoBD,oEAAoE;AACpE,wBAAgB,kBAAkB,CACjC,QAAQ,EAAE,WAAW,EACrB,YAAY,SAAsB,GAChC,MAAM,CA2NR;AAED,+EAA+E;AAC/E,wBAAgB,oBAAoB,CACnC,KAAK,EAAE;IACN,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;CACtD,EACD,YAAY,SAAsB,GAChC,aAAa,CA6Gf"}
|