@zihanw/pi-forge 0.5.5 → 0.5.7

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 (60) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +2 -2
  3. package/README.zh-CN.md +2 -2
  4. package/dist/agent-profile.d.ts +1 -0
  5. package/dist/agent-profile.d.ts.map +1 -1
  6. package/dist/agent-profile.js +9 -14
  7. package/dist/agent-profile.js.map +1 -1
  8. package/dist/compiler.d.ts.map +1 -1
  9. package/dist/compiler.js +11 -0
  10. package/dist/compiler.js.map +1 -1
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +4 -0
  13. package/dist/index.js.map +1 -1
  14. package/dist/preset-command.d.ts +1 -0
  15. package/dist/preset-command.d.ts.map +1 -1
  16. package/dist/preset-command.js +2 -1
  17. package/dist/preset-command.js.map +1 -1
  18. package/dist/preview-inspection.d.ts +68 -0
  19. package/dist/preview-inspection.d.ts.map +1 -0
  20. package/dist/preview-inspection.js +293 -0
  21. package/dist/preview-inspection.js.map +1 -0
  22. package/dist/preview.d.ts.map +1 -1
  23. package/dist/preview.js +16 -2
  24. package/dist/preview.js.map +1 -1
  25. package/dist/runtime/capability-runtime.d.ts +2 -0
  26. package/dist/runtime/capability-runtime.d.ts.map +1 -1
  27. package/dist/runtime/capability-runtime.js +21 -1
  28. package/dist/runtime/capability-runtime.js.map +1 -1
  29. package/dist/runtime/profile-runtime.d.ts.map +1 -1
  30. package/dist/runtime/profile-runtime.js +10 -9
  31. package/dist/runtime/profile-runtime.js.map +1 -1
  32. package/dist/runtime/prompt-stack-runtime.d.ts +7 -4
  33. package/dist/runtime/prompt-stack-runtime.d.ts.map +1 -1
  34. package/dist/runtime/prompt-stack-runtime.js +47 -11
  35. package/dist/runtime/prompt-stack-runtime.js.map +1 -1
  36. package/dist/runtime/tool-policy-runtime.d.ts +3 -1
  37. package/dist/runtime/tool-policy-runtime.d.ts.map +1 -1
  38. package/dist/runtime/tool-policy-runtime.js +2 -2
  39. package/dist/runtime/tool-policy-runtime.js.map +1 -1
  40. package/dist/web-editor/client-script.generated.d.ts.map +1 -1
  41. package/dist/web-editor/client-script.generated.js +1 -1
  42. package/dist/web-editor/client-script.generated.js.map +1 -1
  43. package/dist/web-editor/client-styles.generated.d.ts.map +1 -1
  44. package/dist/web-editor/client-styles.generated.js +1 -1
  45. package/dist/web-editor/client-styles.generated.js.map +1 -1
  46. package/dist/web-editor/styles.d.ts.map +1 -1
  47. package/dist/web-editor/styles.js +109 -28
  48. package/dist/web-editor/styles.js.map +1 -1
  49. package/dist/web-editor/types.d.ts +18 -0
  50. package/dist/web-editor/types.d.ts.map +1 -1
  51. package/dist/web-host.d.ts +2 -0
  52. package/dist/web-host.d.ts.map +1 -1
  53. package/dist/web-host.js +42 -6
  54. package/dist/web-host.js.map +1 -1
  55. package/docs/development/release.md +1 -1
  56. package/docs/development/roadmap.md +12 -2
  57. package/docs/guides/web-editor.md +18 -1
  58. package/docs/reference/capabilities.md +2 -2
  59. package/docs/zh-CN/guides/web-editor.md +18 -1
  60. package/package.json +1 -1
@@ -0,0 +1,293 @@
1
+ import { hashText } from "./context-diff.js";
2
+ /**
3
+ * Tracks occurrence counts per preview compile to disambiguate identical content
4
+ * or duplicate message identities within the same rendered preview.
5
+ *
6
+ * When duplicate fingerprints are detected, ALL occurrences sharing that fingerprint
7
+ * (including the first occurrence) are marked as temporary (:temp:N), and all of their
8
+ * part keys are retroactively updated as well.
9
+ */
10
+ export class InspectionOccurrenceTracker {
11
+ entriesByBaseKey = new Map();
12
+ register(baseKey, inspection) {
13
+ const entries = this.entriesByBaseKey.get(baseKey) ?? [];
14
+ const occurrence = entries.length + 1;
15
+ if (occurrence === 1) {
16
+ inspection.key = `${baseKey}:1`;
17
+ for (let i = 0; i < inspection.parts.length; i++) {
18
+ inspection.parts[i].key = `${inspection.key}:part:${i}`;
19
+ }
20
+ entries.push({ inspection, baseKey, occurrence });
21
+ this.entriesByBaseKey.set(baseKey, entries);
22
+ }
23
+ else {
24
+ // Only the first duplicate needs retroactive relabeling; later entries are already temporary.
25
+ for (const prev of occurrence === 2 ? entries : []) {
26
+ prev.inspection.key = `${baseKey}:temp:${prev.occurrence}`;
27
+ for (let i = 0; i < prev.inspection.parts.length; i++) {
28
+ prev.inspection.parts[i].key = `${prev.inspection.key}:part:${i}`;
29
+ }
30
+ }
31
+ // Mark current entry as temporary
32
+ inspection.key = `${baseKey}:temp:${occurrence}`;
33
+ for (let i = 0; i < inspection.parts.length; i++) {
34
+ inspection.parts[i].key = `${inspection.key}:part:${i}`;
35
+ }
36
+ entries.push({ inspection, baseKey, occurrence });
37
+ }
38
+ }
39
+ }
40
+ export function createInspectionTracker() {
41
+ return new InspectionOccurrenceTracker();
42
+ }
43
+ /**
44
+ * Determines whether an inspection key is a temporary/duplicate key.
45
+ * When identical fingerprints repeat, all occurrences (including the first) are marked
46
+ * with a temporary key (:temp:N) and do not claim cross-insertion stability.
47
+ */
48
+ export function isTemporaryInspectionKey(key) {
49
+ return key.includes(":temp:");
50
+ }
51
+ /**
52
+ * Resolve the inspection scope according to CompileMessageSource history slot instances,
53
+ * stack item identities, or implicit conversation history.
54
+ * Scoping ensures repeating history slots do not cross-pair.
55
+ */
56
+ export function resolveInspectionScope(source, role, isForgeUpdate = false) {
57
+ if (isForgeUpdate) {
58
+ return "forge-capability-update";
59
+ }
60
+ if (source?.kind === "stack-item") {
61
+ if (source.mergedItems && source.mergedItems.length > 0) {
62
+ return `stack-items:${source.mergedItems.map((item) => item.itemId ?? "").join("+")}`;
63
+ }
64
+ if (source.itemId) {
65
+ return `stack-item:${source.itemId}`;
66
+ }
67
+ return "stack-item";
68
+ }
69
+ if (source?.kind === "chat-history") {
70
+ return `chat-history:${source.itemId ?? source.slot ?? "history"}`;
71
+ }
72
+ if (source?.kind === "implicit-history") {
73
+ return "implicit-history";
74
+ }
75
+ if (role === "system") {
76
+ return "system";
77
+ }
78
+ return "implicit-history";
79
+ }
80
+ /**
81
+ * Format structured tool call arguments into clean display JSON.
82
+ * Preserves structured values without claiming wire raw text, and never
83
+ * substitutes null or missing values with `{}`.
84
+ */
85
+ export function formatToolCallArguments(args) {
86
+ if (args === undefined) {
87
+ return "[arguments unavailable]";
88
+ }
89
+ if (args === null) {
90
+ return "null";
91
+ }
92
+ if (typeof args === "string") {
93
+ return JSON.stringify(args);
94
+ }
95
+ try {
96
+ const formatted = JSON.stringify(args, null, 2);
97
+ return formatted !== undefined ? formatted : JSON.stringify(String(args));
98
+ }
99
+ catch {
100
+ try {
101
+ return JSON.stringify(String(args));
102
+ }
103
+ catch {
104
+ return String(args);
105
+ }
106
+ }
107
+ }
108
+ /**
109
+ * Extract raw ordered parts from a compiled AgentMessage.
110
+ * Does not guess from title or preview text; inspects the actual message content structure.
111
+ */
112
+ export function extractRawParts(message) {
113
+ if (!message)
114
+ return [];
115
+ const content = message.content;
116
+ if (Array.isArray(content)) {
117
+ const parts = [];
118
+ for (const part of content) {
119
+ if (!part || typeof part !== "object") {
120
+ if (typeof part === "string") {
121
+ parts.push({ kind: "text", text: part });
122
+ }
123
+ else {
124
+ parts.push({ kind: "unknown", text: "[unknown]" });
125
+ }
126
+ continue;
127
+ }
128
+ const item = part;
129
+ const type = item.type;
130
+ if (type === "text") {
131
+ parts.push({
132
+ kind: "text",
133
+ text: typeof item.text === "string" ? item.text : "",
134
+ });
135
+ }
136
+ else if (type === "thinking") {
137
+ parts.push({
138
+ kind: "thinking",
139
+ text: typeof item.thinking === "string" ? item.thinking : "",
140
+ });
141
+ }
142
+ else if (type === "toolCall") {
143
+ parts.push({
144
+ kind: "toolCall",
145
+ toolName: typeof item.name === "string" ? item.name : undefined,
146
+ callId: typeof item.id === "string" ? item.id : undefined,
147
+ text: formatToolCallArguments(item.arguments),
148
+ });
149
+ }
150
+ else if (type === "image") {
151
+ // Provide explicit placeholder/type only. Never copy or leak base64 data.
152
+ const mimeType = typeof item.mimeType === "string" && item.mimeType.trim().length > 0
153
+ ? item.mimeType.trim()
154
+ : "";
155
+ parts.push({
156
+ kind: "image",
157
+ text: mimeType ? `[image: ${mimeType}]` : "[image]",
158
+ });
159
+ }
160
+ else {
161
+ // Neutral type hint preserved for unknown part types
162
+ const typeHint = typeof type === "string" && type.trim().length > 0
163
+ ? type.trim()
164
+ : "unknown";
165
+ parts.push({
166
+ kind: "unknown",
167
+ text: `[unknown: ${typeHint}]`,
168
+ });
169
+ }
170
+ }
171
+ return parts;
172
+ }
173
+ if (typeof content === "string") {
174
+ if (content.length > 0) {
175
+ return [{ kind: "text", text: content }];
176
+ }
177
+ return [];
178
+ }
179
+ // Handle messages without content (e.g. bashExecution, branchSummary, or text property)
180
+ const msg = message;
181
+ const role = typeof msg.role === "string" ? msg.role : "";
182
+ if (role === "bashExecution") {
183
+ const command = typeof msg.command === "string" ? msg.command : "";
184
+ const output = typeof msg.output === "string" ? msg.output : "";
185
+ return [{ kind: "text", text: `Ran ${command}\n${output}` }];
186
+ }
187
+ if (role === "branchSummary" || role === "compactionSummary") {
188
+ const summary = typeof msg.summary === "string" ? msg.summary : "";
189
+ if (summary.length > 0) {
190
+ return [{ kind: "text", text: summary }];
191
+ }
192
+ }
193
+ if (typeof msg.text === "string" && msg.text.length > 0) {
194
+ return [{ kind: "text", text: msg.text }];
195
+ }
196
+ if (typeof msg.summary === "string" && msg.summary.length > 0) {
197
+ return [{ kind: "text", text: msg.summary }];
198
+ }
199
+ return [];
200
+ }
201
+ /**
202
+ * Extract toolResult metadata strictly from a standard SDK toolResult message.
203
+ * Must be msg.role === 'toolResult' and strictly extract toolCallId from msg.toolCallId.
204
+ * Does not guess from unknown roles or other fields. Unknown roles remain neutral.
205
+ */
206
+ export function extractToolResult(message) {
207
+ if (!message || typeof message !== "object")
208
+ return undefined;
209
+ const msg = message;
210
+ if (msg.role !== "toolResult") {
211
+ return undefined;
212
+ }
213
+ const callId = typeof msg.toolCallId === "string" ? msg.toolCallId : undefined;
214
+ const toolName = typeof msg.toolName === "string" ? msg.toolName : undefined;
215
+ const isError = typeof msg.isError === "boolean" ? msg.isError : undefined;
216
+ const res = {};
217
+ if (callId !== undefined)
218
+ res.callId = callId;
219
+ if (toolName !== undefined)
220
+ res.toolName = toolName;
221
+ if (isError !== undefined)
222
+ res.isError = isError;
223
+ return res;
224
+ }
225
+ /**
226
+ * Compute stable content fingerprint from scope, role, full display parts, and toolResult.
227
+ * Ensures argument or tool changes alter the hash even if legacy content strings match.
228
+ * Distinguishes missing isError from false and true (does not default to false).
229
+ */
230
+ export function computeInspectionFingerprint(scope, role, parts, toolResult, systemMetadata) {
231
+ const raw = JSON.stringify({
232
+ scope,
233
+ role,
234
+ systemMetadata,
235
+ parts: parts.map((p) => [p.kind, p.text, p.toolName ?? "", p.callId ?? ""]),
236
+ toolResult: toolResult
237
+ ? {
238
+ callId: toolResult.callId ?? null,
239
+ toolName: toolResult.toolName ?? null,
240
+ isError: toolResult.isError === undefined ? "missing" : toolResult.isError,
241
+ }
242
+ : null,
243
+ });
244
+ return hashText(raw);
245
+ }
246
+ /**
247
+ * Build the complete inspection sidecar for a section from its compiled AgentMessage.
248
+ * Relies strictly on scope + display structure hash rather than heuristics on message fields.
249
+ */
250
+ export function buildSectionInspection(message, scope, tracker) {
251
+ if (!message) {
252
+ const baseKey = `${scope}:system:empty`;
253
+ const inspection = {
254
+ key: "",
255
+ scope,
256
+ parts: [],
257
+ };
258
+ tracker.register(baseKey, inspection);
259
+ return inspection;
260
+ }
261
+ const role = String(message.role ?? "unknown");
262
+ const rawParts = extractRawParts(message);
263
+ const toolResult = extractToolResult(message);
264
+ // Named section operations and tool declarations are displayed separately, but
265
+ // still distinguish reading identity (including null versus an empty string).
266
+ const system = role === "system" ? message : undefined;
267
+ const metadata = system ? { sections: system.sections, added: system.toolsAdded, removed: system.toolsRemoved } : undefined;
268
+ const hash = computeInspectionFingerprint(scope, role, rawParts, toolResult, metadata);
269
+ const baseFingerprintKey = `${scope}:${role}:${hash}`;
270
+ const parts = rawParts.map((raw) => {
271
+ const part = {
272
+ key: "",
273
+ kind: raw.kind,
274
+ text: raw.text,
275
+ };
276
+ if (raw.toolName !== undefined)
277
+ part.toolName = raw.toolName;
278
+ if (raw.callId !== undefined)
279
+ part.callId = raw.callId;
280
+ return part;
281
+ });
282
+ const inspection = {
283
+ key: "",
284
+ scope,
285
+ parts,
286
+ };
287
+ if (toolResult) {
288
+ inspection.toolResult = toolResult;
289
+ }
290
+ tracker.register(baseFingerprintKey, inspection);
291
+ return inspection;
292
+ }
293
+ //# sourceMappingURL=preview-inspection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview-inspection.js","sourceRoot":"","sources":["../src/preview-inspection.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"preview.d.ts","sourceRoot":"","sources":["../src/preview.ts"],"names":[],"mappings":"AACA,OAAO,EAEN,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EAErB,MAAM,iCAAiC,CAAC;AAsBzC,OAAO,KAAK,EAAwB,iBAAiB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACvH,OAAO,KAAK,EAAE,gBAAgB,EAA2B,MAAM,uBAAuB,CAAC;AAEvF;;;;GAIG;AACH,wBAAgB,aAAa,CAC5B,GAAG,EAAE,uBAAuB,EAC5B,MAAM,EAAE,iBAAiB,GACvB,MAAM,CAER;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAC3B,GAAG,EAAE,gBAAgB,EACrB,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,oBAAoB,GAC3B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,gBAAgB,CAAC;IAAC,WAAW,EAAE,qBAAqB,EAAE,CAAA;CAAE,CAwHnF;AAgHD,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,qBAAqB,EAAE,GAAG,MAAM,CAG9E;AAED,wBAAsB,QAAQ,CAAC,GAAG,EAAE,uBAAuB,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMvG"}
1
+ {"version":3,"file":"preview.d.ts","sourceRoot":"","sources":["../src/preview.ts"],"names":[],"mappings":"AACA,OAAO,EAEN,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EAErB,MAAM,iCAAiC,CAAC;AA2BzC,OAAO,KAAK,EAAwB,iBAAiB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACvH,OAAO,KAAK,EAAE,gBAAgB,EAA2B,MAAM,uBAAuB,CAAC;AAEvF;;;;GAIG;AACH,wBAAgB,aAAa,CAC5B,GAAG,EAAE,uBAAuB,EAC5B,MAAM,EAAE,iBAAiB,GACvB,MAAM,CAER;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAC3B,GAAG,EAAE,gBAAgB,EACrB,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,oBAAoB,GAC3B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,gBAAgB,CAAC;IAAC,WAAW,EAAE,qBAAqB,EAAE,CAAA;CAAE,CAuInF;AAgHD,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,qBAAqB,EAAE,GAAG,MAAM,CAG9E;AAED,wBAAsB,QAAQ,CAAC,GAAG,EAAE,uBAAuB,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMvG"}
package/dist/preview.js CHANGED
@@ -10,6 +10,7 @@ import { getCurrentBranchEntries, readCapabilitySession } from "./session-adapte
10
10
  import { isCapabilityDelivery } from "./capability-protocol.js";
11
11
  import { materializeCapabilityAnchors } from "./capability-anchors.js";
12
12
  import { reduceCapabilityEvents } from "./capability-events.js";
13
+ import { buildSectionInspection, createInspectionTracker, resolveInspectionScope, } from "./preview-inspection.js";
13
14
  /**
14
15
  * Render preview for a prompt stack against current session context.
15
16
  * Evaluates the selected draft against current session capability snapshots without
@@ -41,10 +42,15 @@ export function buildPreview(ctx, target, options) {
41
42
  const baseProjected = projectPresetSystemPrompt(messages.messages, system.systemPrompt ?? "");
42
43
  // Base projection clones every System and may insert one new leading System.
43
44
  // Preserve provenance by position here, before capability projection inserts/removes entries.
45
+ // Multiple history slots can output identical message references; track a list per reference
46
+ // so duplicate slots retain their distinct slot instance identities and do not cross-pair.
44
47
  const originalMessageSources = new Map();
45
48
  const baseOffset = baseProjected.length - messages.messages.length;
46
49
  for (let i = 0; i < messages.messages.length; i++) {
47
- originalMessageSources.set(baseProjected[i + baseOffset], messages.messageSources[i]);
50
+ const msg = baseProjected[i + baseOffset];
51
+ const list = originalMessageSources.get(msg) ?? [];
52
+ list.push(messages.messageSources[i]);
53
+ originalMessageSources.set(msg, list);
48
54
  }
49
55
  const beforeCapabilityProjection = new Set(baseProjected);
50
56
  const history = readCapabilitySession(ctx);
@@ -86,6 +92,7 @@ export function buildPreview(ctx, target, options) {
86
92
  message: 'request-frequency regex rules also run on tool-result follow-up requests; only the first request of a turn is previewed.',
87
93
  });
88
94
  }
95
+ const inspectionTracker = createInspectionTracker();
89
96
  const leadingSystem = previewMessages[0]?.role === "system" ? previewMessages[0] : undefined;
90
97
  const systemSection = leadingSystem
91
98
  ? previewMessageSection(leadingSystem, "system", "System prompt", "system")
@@ -95,11 +102,16 @@ export function buildPreview(ctx, target, options) {
95
102
  if (capabilityUpdate)
96
103
  systemSection.capabilityUpdate = capabilityUpdate;
97
104
  }
105
+ systemSection.inspection = buildSectionInspection(leadingSystem, "system", inspectionTracker);
98
106
  const messagesToDisplay = leadingSystem ? previewMessages.slice(1) : previewMessages;
99
107
  const diffKeyOccurrences = new Map();
100
108
  const messageSections = [];
109
+ const sourceUsageCounts = new Map();
101
110
  for (const [index, message] of messagesToDisplay.entries()) {
102
- const source = originalMessageSources.get(message);
111
+ const sourceList = originalMessageSources.get(message);
112
+ const usageIndex = sourceUsageCounts.get(message) ?? 0;
113
+ sourceUsageCounts.set(message, usageIndex + 1);
114
+ const source = sourceList ? sourceList[usageIndex] : undefined;
103
115
  const isForgeUpdate = !beforeCapabilityProjection.has(message);
104
116
  const section = previewMessageSection(message, `message-${index}`, previewMessageTitle(source, index, isForgeUpdate));
105
117
  const capabilityUpdate = capabilityUpdates.get(message);
@@ -112,6 +124,8 @@ export function buildPreview(ctx, target, options) {
112
124
  const occurrence = (diffKeyOccurrences.get(baseDiffKey) ?? 0) + 1;
113
125
  diffKeyOccurrences.set(baseDiffKey, occurrence);
114
126
  section.diffKey = `${baseDiffKey}:${occurrence}`;
127
+ const scope = resolveInspectionScope(source, message.role, isForgeUpdate);
128
+ section.inspection = buildSectionInspection(message, scope, inspectionTracker);
115
129
  messageSections.push(section);
116
130
  }
117
131
  const totalChars = systemSection.chars + messageSections.reduce((sum, section) => sum + section.chars, 0);
@@ -1 +1 @@
1
- {"version":3,"file":"preview.js","sourceRoot":"","sources":["../src/preview.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preview.js","sourceRoot":"","sources":["../src/preview.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import type { ExtensionAPI, ExtensionContext } from "@earendil-works/pi-coding-a
4
4
  import { type ResolvedCapabilityBinding } from "../capabilities.ts";
5
5
  import { type ResourceKey } from "../resource-identity.ts";
6
6
  import type { ForgeWorkspace } from "../workspace.ts";
7
+ import type { LoadedPromptStack } from "../types.ts";
7
8
  import type { ToolPolicyRuntime } from "./tool-policy-runtime.ts";
8
9
  export type ReadBindingsResult = {
9
10
  ok: true;
@@ -63,6 +64,7 @@ export declare function createCapabilityRuntime(pi: ExtensionAPI, workspace: For
63
64
  deferToolPolicy?: boolean;
64
65
  }) => void;
65
66
  sync: (ctx?: ExtensionContext | undefined) => void;
67
+ validatePresetSwitch: (target: LoadedPromptStack | undefined, ctx?: ExtensionContext) => string | undefined;
66
68
  prepareMessages: (raw: AgentMessage[], ctx: ExtensionContext) => AgentMessage[];
67
69
  project: (messages: AgentMessage[], ctx: ExtensionContext) => AgentMessage[];
68
70
  commitEndAnchors: (ctx: ExtensionContext) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"capability-runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/capability-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capability-runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/capability-runtime.ts"],"names":[],"mappings":"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"}
@@ -126,6 +126,26 @@ export function createCapabilityRuntime(pi, workspace, tools) {
126
126
  tools.sync(ctx);
127
127
  rememberTools(ctx);
128
128
  }
129
+ function validatePresetSwitch(target, ctx) {
130
+ const targetCtx = ctx ?? context;
131
+ if (!targetCtx)
132
+ return undefined;
133
+ const { state } = view(targetCtx);
134
+ const prospectivePresetKey = target ? formatResourceKey(target.key) : undefined;
135
+ const survivingPatches = [];
136
+ for (const item of state.active) {
137
+ const source = item.snapshot.source;
138
+ if (source.kind === "capability" && source.binding && formatResourceKey(source.binding.preset) !== prospectivePresetKey) {
139
+ // Bound to another/old preset; will be retired upon switch
140
+ continue;
141
+ }
142
+ survivingPatches.push(item.snapshot.tools);
143
+ }
144
+ if (!targetCtx.isProjectTrusted() && survivingPatches.length > 0) {
145
+ return "Active capabilities require a trusted project. Use /capability reset to clear them, or trust the project.";
146
+ }
147
+ return tools.validateCapabilities(survivingPatches, { prospectiveStack: target });
148
+ }
129
149
  function pendingEvents(ctx) {
130
150
  const history = readCapabilitySession(ctx);
131
151
  const checkpoint = history.events.findIndex(event => event.eventId === history.checkpointThrough);
@@ -959,7 +979,7 @@ export function createCapabilityRuntime(pi, workspace, tools) {
959
979
  restoredTools = undefined;
960
980
  agentBusy = false;
961
981
  }
962
- return { prepareRestore, restore, sync, prepareMessages, project, commitEndAnchors, setAgentBusy, library, completionView, status, change, readBindings, enableBound, disableBound, executeAgentTool, readState, mutateState, readAvailableCapabilities, enableCapability, dispose };
982
+ return { prepareRestore, restore, sync, validatePresetSwitch, prepareMessages, project, commitEndAnchors, setAgentBusy, library, completionView, status, change, readBindings, enableBound, disableBound, executeAgentTool, readState, mutateState, readAvailableCapabilities, enableCapability, dispose };
963
983
  }
964
984
  function sourceLabel(item) {
965
985
  return item.snapshot.source.kind === "manual" ? "manual" : formatResourceKey(item.snapshot.source.key);