@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.
Files changed (163) hide show
  1. package/LICENSE +126 -0
  2. package/REFERENCE.md +284 -0
  3. package/dist/extension/active-tools.d.ts +17 -0
  4. package/dist/extension/active-tools.d.ts.map +1 -0
  5. package/dist/extension/active-tools.js +47 -0
  6. package/dist/extension/active-tools.js.map +1 -0
  7. package/dist/extension/approvals.d.ts +26 -0
  8. package/dist/extension/approvals.d.ts.map +1 -0
  9. package/dist/extension/approvals.js +124 -0
  10. package/dist/extension/approvals.js.map +1 -0
  11. package/dist/extension/boot.d.ts +18 -0
  12. package/dist/extension/boot.d.ts.map +1 -0
  13. package/dist/extension/boot.js +129 -0
  14. package/dist/extension/boot.js.map +1 -0
  15. package/dist/extension/chrome.d.ts +33 -0
  16. package/dist/extension/chrome.d.ts.map +1 -0
  17. package/dist/extension/chrome.js +167 -0
  18. package/dist/extension/chrome.js.map +1 -0
  19. package/dist/extension/commands.d.ts +41 -0
  20. package/dist/extension/commands.d.ts.map +1 -0
  21. package/dist/extension/commands.js +47 -0
  22. package/dist/extension/commands.js.map +1 -0
  23. package/dist/extension/entry.d.ts +9 -0
  24. package/dist/extension/entry.d.ts.map +1 -0
  25. package/dist/extension/entry.js +16 -0
  26. package/dist/extension/entry.js.map +1 -0
  27. package/dist/extension/events.d.ts +17 -0
  28. package/dist/extension/events.d.ts.map +1 -0
  29. package/dist/extension/events.js +42 -0
  30. package/dist/extension/events.js.map +1 -0
  31. package/dist/extension/index.d.ts +54 -0
  32. package/dist/extension/index.d.ts.map +1 -0
  33. package/dist/extension/index.js +541 -0
  34. package/dist/extension/index.js.map +1 -0
  35. package/dist/extension/models.d.ts +30 -0
  36. package/dist/extension/models.d.ts.map +1 -0
  37. package/dist/extension/models.js +104 -0
  38. package/dist/extension/models.js.map +1 -0
  39. package/dist/extension/render.d.ts +17 -0
  40. package/dist/extension/render.d.ts.map +1 -0
  41. package/dist/extension/render.js +107 -0
  42. package/dist/extension/render.js.map +1 -0
  43. package/dist/extension/runtime-host.d.ts +6 -0
  44. package/dist/extension/runtime-host.d.ts.map +1 -0
  45. package/dist/extension/runtime-host.js +2 -0
  46. package/dist/extension/runtime-host.js.map +1 -0
  47. package/dist/external/external.plugin.d.ts +7 -0
  48. package/dist/external/external.plugin.d.ts.map +1 -0
  49. package/dist/external/external.plugin.js +44 -0
  50. package/dist/external/external.plugin.js.map +1 -0
  51. package/dist/external/index.d.ts +8 -0
  52. package/dist/external/index.d.ts.map +1 -0
  53. package/dist/external/index.js +8 -0
  54. package/dist/external/index.js.map +1 -0
  55. package/dist/external/pi/bootstrap.d.ts +34 -0
  56. package/dist/external/pi/bootstrap.d.ts.map +1 -0
  57. package/dist/external/pi/bootstrap.js +238 -0
  58. package/dist/external/pi/bootstrap.js.map +1 -0
  59. package/dist/external/pi/guide.d.ts +3 -0
  60. package/dist/external/pi/guide.d.ts.map +1 -0
  61. package/dist/external/pi/guide.js +33 -0
  62. package/dist/external/pi/guide.js.map +1 -0
  63. package/dist/external/pi/index.d.ts +162 -0
  64. package/dist/external/pi/index.d.ts.map +1 -0
  65. package/dist/external/pi/index.js +7 -0
  66. package/dist/external/pi/index.js.map +1 -0
  67. package/dist/external/pi/installer.d.ts +19 -0
  68. package/dist/external/pi/installer.d.ts.map +1 -0
  69. package/dist/external/pi/installer.descriptor.d.ts +373 -0
  70. package/dist/external/pi/installer.descriptor.d.ts.map +1 -0
  71. package/dist/external/pi/installer.descriptor.js +43 -0
  72. package/dist/external/pi/installer.descriptor.js.map +1 -0
  73. package/dist/external/pi/installer.js +82 -0
  74. package/dist/external/pi/installer.js.map +1 -0
  75. package/dist/external/pi/installers/errors.d.ts +16 -0
  76. package/dist/external/pi/installers/errors.d.ts.map +1 -0
  77. package/dist/external/pi/installers/errors.js +15 -0
  78. package/dist/external/pi/installers/errors.js.map +1 -0
  79. package/dist/external/pi/installers/extension.d.ts +16 -0
  80. package/dist/external/pi/installers/extension.d.ts.map +1 -0
  81. package/dist/external/pi/installers/extension.js +292 -0
  82. package/dist/external/pi/installers/extension.js.map +1 -0
  83. package/dist/external/pi/installers/plan.d.ts +29 -0
  84. package/dist/external/pi/installers/plan.d.ts.map +1 -0
  85. package/dist/external/pi/installers/plan.js +391 -0
  86. package/dist/external/pi/installers/plan.js.map +1 -0
  87. package/dist/external/pi/installers/transaction.d.ts +5 -0
  88. package/dist/external/pi/installers/transaction.d.ts.map +1 -0
  89. package/dist/external/pi/installers/transaction.js +66 -0
  90. package/dist/external/pi/installers/transaction.js.map +1 -0
  91. package/dist/external/pi/manifest.d.ts +6 -0
  92. package/dist/external/pi/manifest.d.ts.map +1 -0
  93. package/dist/external/pi/manifest.js +91 -0
  94. package/dist/external/pi/manifest.js.map +1 -0
  95. package/dist/external/pi-presets.d.ts +817 -0
  96. package/dist/external/pi-presets.d.ts.map +1 -0
  97. package/dist/external/pi-presets.js +75 -0
  98. package/dist/external/pi-presets.js.map +1 -0
  99. package/dist/harness/constants.d.ts +46 -0
  100. package/dist/harness/constants.d.ts.map +1 -0
  101. package/dist/harness/constants.js +52 -0
  102. package/dist/harness/constants.js.map +1 -0
  103. package/dist/harness/identity.d.ts +29 -0
  104. package/dist/harness/identity.d.ts.map +1 -0
  105. package/dist/harness/identity.js +40 -0
  106. package/dist/harness/identity.js.map +1 -0
  107. package/dist/harness/index.d.ts +19 -0
  108. package/dist/harness/index.d.ts.map +1 -0
  109. package/dist/harness/index.js +18 -0
  110. package/dist/harness/index.js.map +1 -0
  111. package/dist/harness/managed-block.d.ts +20 -0
  112. package/dist/harness/managed-block.d.ts.map +1 -0
  113. package/dist/harness/managed-block.js +23 -0
  114. package/dist/harness/managed-block.js.map +1 -0
  115. package/dist/harness/pi-naming.d.ts +32 -0
  116. package/dist/harness/pi-naming.d.ts.map +1 -0
  117. package/dist/harness/pi-naming.js +110 -0
  118. package/dist/harness/pi-naming.js.map +1 -0
  119. package/dist/harness/preflight.d.ts +5 -0
  120. package/dist/harness/preflight.d.ts.map +1 -0
  121. package/dist/harness/preflight.js +163 -0
  122. package/dist/harness/preflight.js.map +1 -0
  123. package/dist/harness/prompt.d.ts +14 -0
  124. package/dist/harness/prompt.d.ts.map +1 -0
  125. package/dist/harness/prompt.js +15 -0
  126. package/dist/harness/prompt.js.map +1 -0
  127. package/dist/harness/runtime.d.ts +137 -0
  128. package/dist/harness/runtime.d.ts.map +1 -0
  129. package/dist/harness/runtime.js +53 -0
  130. package/dist/harness/runtime.js.map +1 -0
  131. package/dist/harness/scope.d.ts +11 -0
  132. package/dist/harness/scope.d.ts.map +1 -0
  133. package/dist/harness/scope.js +47 -0
  134. package/dist/harness/scope.js.map +1 -0
  135. package/dist/harness/themes.d.ts +30 -0
  136. package/dist/harness/themes.d.ts.map +1 -0
  137. package/dist/harness/themes.js +225 -0
  138. package/dist/harness/themes.js.map +1 -0
  139. package/dist/index.d.ts +2 -0
  140. package/dist/index.d.ts.map +1 -0
  141. package/dist/index.js +2 -0
  142. package/dist/index.js.map +1 -0
  143. package/dist/schemas/extension-api.d.ts +102 -0
  144. package/dist/schemas/extension-api.d.ts.map +1 -0
  145. package/dist/schemas/extension-api.js +2 -0
  146. package/dist/schemas/extension-api.js.map +1 -0
  147. package/dist/schemas/extension-host.d.ts +11 -0
  148. package/dist/schemas/extension-host.d.ts.map +1 -0
  149. package/dist/schemas/extension-host.js +12 -0
  150. package/dist/schemas/extension-host.js.map +1 -0
  151. package/dist/schemas/extension.d.ts +193 -0
  152. package/dist/schemas/extension.d.ts.map +1 -0
  153. package/dist/schemas/extension.js +82 -0
  154. package/dist/schemas/extension.js.map +1 -0
  155. package/dist/schemas/installer.d.ts +872 -0
  156. package/dist/schemas/installer.d.ts.map +1 -0
  157. package/dist/schemas/installer.js +138 -0
  158. package/dist/schemas/installer.js.map +1 -0
  159. package/dist/themes/vibes-dark.json +63 -0
  160. package/dist/themes/vibes-high-contrast.json +63 -0
  161. package/dist/themes/vibes-light.json +63 -0
  162. package/package.json +110 -4
  163. 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"}