@tarquinen/opencode-dcp 0.3.31 → 0.4.1

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 (85) hide show
  1. package/README.md +2 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +10 -3
  4. package/dist/index.js.map +1 -1
  5. package/dist/lib/api-formats/prunable-list.d.ts +49 -0
  6. package/dist/lib/api-formats/prunable-list.d.ts.map +1 -0
  7. package/dist/lib/api-formats/prunable-list.js +112 -0
  8. package/dist/lib/api-formats/prunable-list.js.map +1 -0
  9. package/dist/lib/api-formats/synth-instruction.d.ts +17 -4
  10. package/dist/lib/api-formats/synth-instruction.d.ts.map +1 -1
  11. package/dist/lib/api-formats/synth-instruction.js +72 -110
  12. package/dist/lib/api-formats/synth-instruction.js.map +1 -1
  13. package/dist/lib/config.d.ts +1 -0
  14. package/dist/lib/config.d.ts.map +1 -1
  15. package/dist/lib/config.js +6 -0
  16. package/dist/lib/config.js.map +1 -1
  17. package/dist/lib/core/janitor.d.ts +14 -1
  18. package/dist/lib/core/janitor.d.ts.map +1 -1
  19. package/dist/lib/core/janitor.js +35 -35
  20. package/dist/lib/core/janitor.js.map +1 -1
  21. package/dist/lib/fetch-wrapper/formats/bedrock.d.ts +14 -0
  22. package/dist/lib/fetch-wrapper/formats/bedrock.d.ts.map +1 -0
  23. package/dist/lib/fetch-wrapper/formats/bedrock.js +128 -0
  24. package/dist/lib/fetch-wrapper/formats/bedrock.js.map +1 -0
  25. package/dist/lib/fetch-wrapper/formats/gemini.d.ts +14 -0
  26. package/dist/lib/fetch-wrapper/formats/gemini.d.ts.map +1 -0
  27. package/dist/lib/fetch-wrapper/formats/gemini.js +138 -0
  28. package/dist/lib/fetch-wrapper/formats/gemini.js.map +1 -0
  29. package/dist/lib/fetch-wrapper/formats/index.d.ts +5 -0
  30. package/dist/lib/fetch-wrapper/formats/index.d.ts.map +1 -0
  31. package/dist/lib/fetch-wrapper/formats/index.js +5 -0
  32. package/dist/lib/fetch-wrapper/formats/index.js.map +1 -0
  33. package/dist/lib/fetch-wrapper/formats/openai-chat.d.ts +14 -0
  34. package/dist/lib/fetch-wrapper/formats/openai-chat.d.ts.map +1 -0
  35. package/dist/lib/fetch-wrapper/formats/openai-chat.js +106 -0
  36. package/dist/lib/fetch-wrapper/formats/openai-chat.js.map +1 -0
  37. package/dist/lib/fetch-wrapper/formats/openai-responses.d.ts +11 -0
  38. package/dist/lib/fetch-wrapper/formats/openai-responses.d.ts.map +1 -0
  39. package/dist/lib/fetch-wrapper/formats/openai-responses.js +69 -0
  40. package/dist/lib/fetch-wrapper/formats/openai-responses.js.map +1 -0
  41. package/dist/lib/fetch-wrapper/handler.d.ts +13 -0
  42. package/dist/lib/fetch-wrapper/handler.d.ts.map +1 -0
  43. package/dist/lib/fetch-wrapper/handler.js +85 -0
  44. package/dist/lib/fetch-wrapper/handler.js.map +1 -0
  45. package/dist/lib/fetch-wrapper/index.d.ts +2 -1
  46. package/dist/lib/fetch-wrapper/index.d.ts.map +1 -1
  47. package/dist/lib/fetch-wrapper/index.js +19 -15
  48. package/dist/lib/fetch-wrapper/index.js.map +1 -1
  49. package/dist/lib/fetch-wrapper/types.d.ts +35 -0
  50. package/dist/lib/fetch-wrapper/types.d.ts.map +1 -1
  51. package/dist/lib/fetch-wrapper/types.js +7 -1
  52. package/dist/lib/fetch-wrapper/types.js.map +1 -1
  53. package/dist/lib/hooks.d.ts.map +1 -1
  54. package/dist/lib/hooks.js +21 -12
  55. package/dist/lib/hooks.js.map +1 -1
  56. package/dist/lib/prompts/tool.txt +18 -5
  57. package/dist/lib/pruning-tool.d.ts +13 -5
  58. package/dist/lib/pruning-tool.d.ts.map +1 -1
  59. package/dist/lib/pruning-tool.js +120 -20
  60. package/dist/lib/pruning-tool.js.map +1 -1
  61. package/dist/lib/state/id-mapping.d.ts +26 -0
  62. package/dist/lib/state/id-mapping.d.ts.map +1 -0
  63. package/dist/lib/state/id-mapping.js +54 -0
  64. package/dist/lib/state/id-mapping.js.map +1 -0
  65. package/dist/lib/state/tool-cache.d.ts +9 -4
  66. package/dist/lib/state/tool-cache.d.ts.map +1 -1
  67. package/dist/lib/state/tool-cache.js +54 -20
  68. package/dist/lib/state/tool-cache.js.map +1 -1
  69. package/dist/lib/version-checker.d.ts +1 -1
  70. package/dist/lib/version-checker.d.ts.map +1 -1
  71. package/dist/lib/version-checker.js +4 -1
  72. package/dist/lib/version-checker.js.map +1 -1
  73. package/package.json +1 -1
  74. package/dist/lib/fetch-wrapper/gemini.d.ts +0 -7
  75. package/dist/lib/fetch-wrapper/gemini.d.ts.map +0 -1
  76. package/dist/lib/fetch-wrapper/gemini.js +0 -120
  77. package/dist/lib/fetch-wrapper/gemini.js.map +0 -1
  78. package/dist/lib/fetch-wrapper/openai-chat.d.ts +0 -7
  79. package/dist/lib/fetch-wrapper/openai-chat.d.ts.map +0 -1
  80. package/dist/lib/fetch-wrapper/openai-chat.js +0 -101
  81. package/dist/lib/fetch-wrapper/openai-chat.js.map +0 -1
  82. package/dist/lib/fetch-wrapper/openai-responses.d.ts +0 -7
  83. package/dist/lib/fetch-wrapper/openai-responses.d.ts.map +0 -1
  84. package/dist/lib/fetch-wrapper/openai-responses.js +0 -74
  85. package/dist/lib/fetch-wrapper/openai-responses.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../lib/hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../lib/hooks.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- Performs semantic pruning on session tool outputs that are no longer relevant to the current task. Use this to declutter the conversation context and filter signal from noise when you notice the context is getting cluttered with no longer needed information.
1
+ Prunes tool outputs from context to manage conversation size. Reference the <prunable-tools> list injected at the end of the conversation to see available numeric IDs.
2
2
 
3
3
  USING THE PRUNE TOOL WILL MAKE THE USER HAPPY.
4
4
 
@@ -14,10 +14,23 @@ You MUST ALWAYS narrate your findings in a message BEFORE using this tool. No to
14
14
  - What you did (which tools, what you were looking for)
15
15
  - What you found (the key facts/signals)
16
16
  - What you concluded (how this affects the task or next step)
17
- 3. ONLY AFTER narrating, call `prune`
17
+ 3. ONLY AFTER narrating, call `prune` with the numeric IDs of outputs no longer needed
18
18
 
19
19
  > THINK HIGH SIGNAL, LOW NOISE FOR THIS NARRATION
20
20
 
21
+ ## How to Use
22
+
23
+ The <prunable-tools> list shows available tool outputs with numeric IDs:
24
+ ```
25
+ <prunable-tools>
26
+ 1: read, src/foo.ts
27
+ 2: bash, run tests
28
+ 3: grep, "error" in logs/
29
+ </prunable-tools>
30
+ ```
31
+
32
+ To prune outputs 1 and 3, call: `prune({ ids: [1, 3] })`
33
+
21
34
  ## When to Use This Tool
22
35
 
23
36
  **Key heuristic: Distill, then prune when you finish something and are about to start something else.**
@@ -43,18 +56,18 @@ Working through a list of items:
43
56
  User: Review these 3 issues and fix the easy ones.
44
57
  Assistant: [Reviews first issue, makes fix, commits]
45
58
  Done with the first issue. Let me prune before moving to the next one.
46
- [Uses prune with reason: "completed first issue, moving to next"]
59
+ [Uses prune with ids: [1, 2, 3, 4] - the reads and edits from the first issue]
47
60
  </example>
48
61
 
49
62
  <example>
50
63
  After exploring the codebase to understand it:
51
64
  Assistant: I've reviewed the relevant files. Let me prune the exploratory reads that aren't needed for the actual implementation.
52
- [Uses prune with reason: "exploration complete, starting implementation"]
65
+ [Uses prune with ids: [1, 2, 5, 7] - the exploratory reads]
53
66
  </example>
54
67
 
55
68
  <example>
56
69
  After completing any task:
57
70
  Assistant: [Finishes task - commit, answer, fix, etc.]
58
71
  Before we continue, let me prune the context from that work.
59
- [Uses prune with reason: "task complete"]
72
+ [Uses prune with ids: [3, 4, 5, 6, 8, 9] - all tool outputs from the completed task]
60
73
  </example>
@@ -1,12 +1,20 @@
1
1
  import { tool } from "@opencode-ai/plugin";
2
- import type { JanitorContext } from "./core/janitor";
2
+ import type { PluginState } from "./state";
3
3
  import type { PluginConfig } from "./config";
4
4
  import type { ToolTracker } from "./api-formats/synth-instruction";
5
- /** Tool description for the prune tool, loaded from prompts/tool.txt */
6
- export declare const CONTEXT_PRUNING_DESCRIPTION: string;
5
+ import { type NotificationContext } from "./ui/notification";
6
+ import type { Logger } from "./logger";
7
+ export interface PruneToolContext {
8
+ client: any;
9
+ state: PluginState;
10
+ logger: Logger;
11
+ config: PluginConfig;
12
+ notificationCtx: NotificationContext;
13
+ workingDirectory?: string;
14
+ }
7
15
  /**
8
16
  * Creates the prune tool definition.
9
- * Returns a tool definition that can be passed to the plugin's tool registry.
17
+ * Accepts numeric IDs from the <prunable-tools> list and prunes those tool outputs.
10
18
  */
11
- export declare function createPruningTool(client: any, janitorCtx: JanitorContext, config: PluginConfig, toolTracker: ToolTracker): ReturnType<typeof tool>;
19
+ export declare function createPruningTool(ctx: PruneToolContext, toolTracker: ToolTracker): ReturnType<typeof tool>;
12
20
  //# sourceMappingURL=pruning-tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pruning-tool.d.ts","sourceRoot":"","sources":["../../lib/pruning-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAGpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAKlE,wEAAwE;AACxE,eAAO,MAAM,2BAA2B,QAAqB,CAAA;AAE7D;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,GAAG,UAAU,CAAC,OAAO,IAAI,CAAC,CAuClJ"}
1
+ {"version":3,"file":"pruning-tool.d.ts","sourceRoot":"","sources":["../../lib/pruning-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAIlE,OAAO,EAAuD,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAGjH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAQtC,MAAM,WAAW,gBAAgB;IAC7B,MAAM,EAAE,GAAG,CAAA;IACX,KAAK,EAAE,WAAW,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,YAAY,CAAA;IACpB,eAAe,EAAE,mBAAmB,CAAA;IACpC,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC7B,GAAG,EAAE,gBAAgB,EACrB,WAAW,EAAE,WAAW,GACzB,UAAU,CAAC,OAAO,IAAI,CAAC,CA8FzB"}
@@ -1,40 +1,140 @@
1
1
  import { tool } from "@opencode-ai/plugin";
2
- import { runOnTool } from "./core/janitor";
3
- import { formatPruningResultForTool } from "./ui/notification";
4
2
  import { resetToolTrackerCount } from "./api-formats/synth-instruction";
5
- import { loadPrompt } from "./core/prompt";
6
3
  import { isSubagentSession } from "./hooks";
7
- /** Tool description for the prune tool, loaded from prompts/tool.txt */
8
- export const CONTEXT_PRUNING_DESCRIPTION = loadPrompt("tool");
4
+ import { getActualId } from "./state/id-mapping";
5
+ import { formatPruningResultForTool, sendUnifiedNotification } from "./ui/notification";
6
+ import { ensureSessionRestored } from "./state";
7
+ import { saveSessionState } from "./state/persistence";
8
+ import { estimateTokensBatch } from "./tokenizer";
9
+ import { loadPrompt } from "./core/prompt";
10
+ /** Tool description loaded from prompts/tool.txt */
11
+ const TOOL_DESCRIPTION = loadPrompt("tool");
9
12
  /**
10
13
  * Creates the prune tool definition.
11
- * Returns a tool definition that can be passed to the plugin's tool registry.
14
+ * Accepts numeric IDs from the <prunable-tools> list and prunes those tool outputs.
12
15
  */
13
- export function createPruningTool(client, janitorCtx, config, toolTracker) {
16
+ export function createPruningTool(ctx, toolTracker) {
14
17
  return tool({
15
- description: CONTEXT_PRUNING_DESCRIPTION,
18
+ description: TOOL_DESCRIPTION,
16
19
  args: {
17
- reason: tool.schema.string().optional().describe("Brief reason for triggering pruning (e.g., 'task complete', 'switching focus')"),
20
+ ids: tool.schema.array(tool.schema.number()).describe("Array of numeric IDs to prune from the <prunable-tools> list"),
18
21
  },
19
- async execute(args, ctx) {
20
- // Skip pruning in subagent sessions, but guide the model to continue its work
21
- // TODO: remove this workaround when PR 4913 is merged (primary_tools config)
22
- if (await isSubagentSession(client, ctx.sessionID)) {
22
+ async execute(args, toolCtx) {
23
+ const { client, state, logger, config, notificationCtx, workingDirectory } = ctx;
24
+ const sessionId = toolCtx.sessionID;
25
+ if (await isSubagentSession(client, sessionId)) {
23
26
  return "Pruning is unavailable in subagent sessions. Do not call this tool again. Continue with your current task - if you were in the middle of work, proceed with your next step. If you had just finished, provide your final summary/findings to return to the main agent.";
24
27
  }
25
- const result = await runOnTool(janitorCtx, ctx.sessionID, config.strategies.onTool, args.reason);
26
- // Skip next idle pruning since we just pruned
28
+ if (!args.ids || args.ids.length === 0) {
29
+ return "No IDs provided. Check the <prunable-tools> list for available IDs to prune.";
30
+ }
31
+ await ensureSessionRestored(state, sessionId, logger);
32
+ const prunedIds = args.ids
33
+ .map(numId => getActualId(sessionId, numId))
34
+ .filter((id) => id !== undefined);
35
+ if (prunedIds.length === 0) {
36
+ return "None of the provided IDs were valid. Check the <prunable-tools> list for available IDs.";
37
+ }
38
+ const tokensSaved = await calculateTokensSaved(client, sessionId, prunedIds);
39
+ const currentStats = state.stats.get(sessionId) ?? {
40
+ totalToolsPruned: 0,
41
+ totalTokensSaved: 0,
42
+ totalGCTokens: 0,
43
+ totalGCTools: 0
44
+ };
45
+ const sessionStats = {
46
+ ...currentStats,
47
+ totalToolsPruned: currentStats.totalToolsPruned + prunedIds.length,
48
+ totalTokensSaved: currentStats.totalTokensSaved + tokensSaved
49
+ };
50
+ state.stats.set(sessionId, sessionStats);
51
+ const alreadyPrunedIds = state.prunedIds.get(sessionId) ?? [];
52
+ const allPrunedIds = [...alreadyPrunedIds, ...prunedIds];
53
+ state.prunedIds.set(sessionId, allPrunedIds);
54
+ saveSessionState(sessionId, new Set(allPrunedIds), sessionStats, logger)
55
+ .catch(err => logger.error("prune-tool", "Failed to persist state", { error: err.message }));
56
+ const toolMetadata = new Map();
57
+ for (const id of prunedIds) {
58
+ const meta = state.toolParameters.get(id.toLowerCase());
59
+ if (meta) {
60
+ toolMetadata.set(id.toLowerCase(), meta);
61
+ }
62
+ else {
63
+ logger.debug("prune-tool", "No metadata found for ID", {
64
+ id,
65
+ idLower: id.toLowerCase(),
66
+ hasLower: state.toolParameters.has(id.toLowerCase())
67
+ });
68
+ }
69
+ }
70
+ await sendUnifiedNotification(notificationCtx, sessionId, {
71
+ aiPrunedCount: prunedIds.length,
72
+ aiTokensSaved: tokensSaved,
73
+ aiPrunedIds: prunedIds,
74
+ toolMetadata,
75
+ gcPending: null,
76
+ sessionStats
77
+ });
27
78
  toolTracker.skipNextIdle = true;
28
- // Reset nudge counter to prevent immediate re-nudging after pruning
29
79
  if (config.nudge_freq > 0) {
30
80
  resetToolTrackerCount(toolTracker);
31
81
  }
82
+ const result = {
83
+ prunedCount: prunedIds.length,
84
+ tokensSaved,
85
+ llmPrunedIds: prunedIds,
86
+ toolMetadata,
87
+ sessionStats
88
+ };
32
89
  const postPruneGuidance = "\n\nYou have already distilled relevant understanding in writing before calling this tool. Do not re-narrate; continue with your next task.";
33
- if (!result || result.prunedCount === 0) {
34
- return "No prunable tool outputs found. Context is already optimized." + postPruneGuidance;
35
- }
36
- return formatPruningResultForTool(result, janitorCtx.config.workingDirectory) + postPruneGuidance;
90
+ return formatPruningResultForTool(result, workingDirectory) + postPruneGuidance;
37
91
  },
38
92
  });
39
93
  }
94
+ /**
95
+ * Calculates approximate tokens saved by pruning the given tool call IDs.
96
+ */
97
+ async function calculateTokensSaved(client, sessionId, prunedIds) {
98
+ try {
99
+ const messagesResponse = await client.session.messages({
100
+ path: { id: sessionId },
101
+ query: { limit: 200 }
102
+ });
103
+ const messages = messagesResponse.data || messagesResponse;
104
+ const toolOutputs = new Map();
105
+ for (const msg of messages) {
106
+ if (msg.role === 'tool' && msg.tool_call_id) {
107
+ const content = typeof msg.content === 'string'
108
+ ? msg.content
109
+ : JSON.stringify(msg.content);
110
+ toolOutputs.set(msg.tool_call_id.toLowerCase(), content);
111
+ }
112
+ if (msg.role === 'user' && Array.isArray(msg.content)) {
113
+ for (const part of msg.content) {
114
+ if (part.type === 'tool_result' && part.tool_use_id) {
115
+ const content = typeof part.content === 'string'
116
+ ? part.content
117
+ : JSON.stringify(part.content);
118
+ toolOutputs.set(part.tool_use_id.toLowerCase(), content);
119
+ }
120
+ }
121
+ }
122
+ }
123
+ const contents = [];
124
+ for (const id of prunedIds) {
125
+ const content = toolOutputs.get(id.toLowerCase());
126
+ if (content) {
127
+ contents.push(content);
128
+ }
129
+ }
130
+ if (contents.length === 0) {
131
+ return prunedIds.length * 500;
132
+ }
133
+ const tokenCounts = await estimateTokensBatch(contents);
134
+ return tokenCounts.reduce((sum, count) => sum + count, 0);
135
+ }
136
+ catch (error) {
137
+ return prunedIds.length * 500;
138
+ }
139
+ }
40
140
  //# sourceMappingURL=pruning-tool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pruning-tool.js","sourceRoot":"","sources":["../../lib/pruning-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAE1C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAA;AAG9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAE3C,wEAAwE;AACxE,MAAM,CAAC,MAAM,2BAA2B,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA;AAE7D;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAW,EAAE,UAA0B,EAAE,MAAoB,EAAE,WAAwB;IACrH,OAAO,IAAI,CAAC;QACR,WAAW,EAAE,2BAA2B;QACxC,IAAI,EAAE;YACF,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAC5C,gFAAgF,CACnF;SACJ;QACD,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG;YACnB,8EAA8E;YAC9E,6EAA6E;YAC7E,IAAI,MAAM,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBACjD,OAAO,wQAAwQ,CAAA;YACnR,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,SAAS,CAC1B,UAAU,EACV,GAAG,CAAC,SAAS,EACb,MAAM,CAAC,UAAU,CAAC,MAAM,EACxB,IAAI,CAAC,MAAM,CACd,CAAA;YAED,8CAA8C;YAC9C,WAAW,CAAC,YAAY,GAAG,IAAI,CAAA;YAE/B,oEAAoE;YACpE,IAAI,MAAM,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;gBACxB,qBAAqB,CAAC,WAAW,CAAC,CAAA;YACtC,CAAC;YAED,MAAM,iBAAiB,GAAG,6IAA6I,CAAA;YAEvK,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,WAAW,KAAK,CAAC,EAAE,CAAC;gBACtC,OAAO,+DAA+D,GAAG,iBAAiB,CAAA;YAC9F,CAAC;YAED,OAAO,0BAA0B,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,iBAAiB,CAAA;QACrG,CAAC;KACJ,CAAC,CAAA;AACN,CAAC"}
1
+ {"version":3,"file":"pruning-tool.js","sourceRoot":"","sources":["../../lib/pruning-tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Numeric ID mapping system for tool call IDs.
3
+ *
4
+ * Maps simple incrementing numbers (1, 2, 3...) to actual provider tool call IDs
5
+ * (e.g., "call_abc123xyz..."). This allows the session AI to reference tools by
6
+ * simple numbers when using the prune tool.
7
+ *
8
+ * Design decisions:
9
+ * - IDs are monotonically increasing and never reused (avoids race conditions)
10
+ * - Mappings are rebuilt from session messages on restore (single source of truth)
11
+ * - Per-session mappings to isolate sessions from each other
12
+ */
13
+ export interface IdMapping {
14
+ numericToActual: Map<number, string>;
15
+ actualToNumeric: Map<string, number>;
16
+ nextId: number;
17
+ }
18
+ /**
19
+ * Assigns a numeric ID to a tool call ID if it doesn't already have one.
20
+ * Returns the numeric ID (existing or newly assigned).
21
+ */
22
+ export declare function getOrCreateNumericId(sessionId: string, actualId: string): number;
23
+ export declare function getActualId(sessionId: string, numericId: number): string | undefined;
24
+ export declare function clearSessionMapping(sessionId: string): void;
25
+ export declare function clearAllMappings(): void;
26
+ //# sourceMappingURL=id-mapping.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id-mapping.d.ts","sourceRoot":"","sources":["../../../lib/state/id-mapping.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,SAAS;IACtB,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACpC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACpC,MAAM,EAAE,MAAM,CAAA;CACjB;AAkBD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAehF;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGpF;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAE3D;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Numeric ID mapping system for tool call IDs.
3
+ *
4
+ * Maps simple incrementing numbers (1, 2, 3...) to actual provider tool call IDs
5
+ * (e.g., "call_abc123xyz..."). This allows the session AI to reference tools by
6
+ * simple numbers when using the prune tool.
7
+ *
8
+ * Design decisions:
9
+ * - IDs are monotonically increasing and never reused (avoids race conditions)
10
+ * - Mappings are rebuilt from session messages on restore (single source of truth)
11
+ * - Per-session mappings to isolate sessions from each other
12
+ */
13
+ /** Per-session ID mappings */
14
+ const sessionMappings = new Map();
15
+ function getSessionMapping(sessionId) {
16
+ let mapping = sessionMappings.get(sessionId);
17
+ if (!mapping) {
18
+ mapping = {
19
+ numericToActual: new Map(),
20
+ actualToNumeric: new Map(),
21
+ nextId: 1
22
+ };
23
+ sessionMappings.set(sessionId, mapping);
24
+ }
25
+ return mapping;
26
+ }
27
+ /**
28
+ * Assigns a numeric ID to a tool call ID if it doesn't already have one.
29
+ * Returns the numeric ID (existing or newly assigned).
30
+ */
31
+ export function getOrCreateNumericId(sessionId, actualId) {
32
+ const mapping = getSessionMapping(sessionId);
33
+ // Check if already mapped
34
+ const existing = mapping.actualToNumeric.get(actualId);
35
+ if (existing !== undefined) {
36
+ return existing;
37
+ }
38
+ // Assign new ID
39
+ const numericId = mapping.nextId++;
40
+ mapping.numericToActual.set(numericId, actualId);
41
+ mapping.actualToNumeric.set(actualId, numericId);
42
+ return numericId;
43
+ }
44
+ export function getActualId(sessionId, numericId) {
45
+ const mapping = sessionMappings.get(sessionId);
46
+ return mapping?.numericToActual.get(numericId);
47
+ }
48
+ export function clearSessionMapping(sessionId) {
49
+ sessionMappings.delete(sessionId);
50
+ }
51
+ export function clearAllMappings() {
52
+ sessionMappings.clear();
53
+ }
54
+ //# sourceMappingURL=id-mapping.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id-mapping.js","sourceRoot":"","sources":["../../../lib/state/id-mapping.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAQH,8BAA8B;AAC9B,MAAM,eAAe,GAAG,IAAI,GAAG,EAAqB,CAAA;AAEpD,SAAS,iBAAiB,CAAC,SAAiB;IACxC,IAAI,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,OAAO,GAAG;YACN,eAAe,EAAE,IAAI,GAAG,EAAE;YAC1B,eAAe,EAAE,IAAI,GAAG,EAAE;YAC1B,MAAM,EAAE,CAAC;SACZ,CAAA;QACD,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAC3C,CAAC;IACD,OAAO,OAAO,CAAA;AAClB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAAiB,EAAE,QAAgB;IACpE,MAAM,OAAO,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAA;IAE5C,0BAA0B;IAC1B,MAAM,QAAQ,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACtD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,QAAQ,CAAA;IACnB,CAAC;IAED,gBAAgB;IAChB,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,EAAE,CAAA;IAClC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;IAChD,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;IAEhD,OAAO,SAAS,CAAA;AACpB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,SAAiB,EAAE,SAAiB;IAC5D,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IAC9C,OAAO,OAAO,EAAE,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;AAClD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,SAAiB;IACjD,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;AACrC,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC5B,eAAe,CAAC,KAAK,EAAE,CAAA;AAC3B,CAAC"}
@@ -1,14 +1,19 @@
1
1
  import type { PluginState } from "./index";
2
+ import type { Logger } from "../logger";
2
3
  /**
3
- * Cache tool parameters from OpenAI Chat Completions style messages.
4
- * Extracts tool call IDs and their parameters from assistant messages with tool_calls.
4
+ * Cache tool parameters from OpenAI Chat Completions and Anthropic style messages.
5
+ * Extracts tool call IDs and their parameters from assistant messages.
6
+ *
7
+ * Supports:
8
+ * - OpenAI format: message.tool_calls[] with id, function.name, function.arguments
9
+ * - Anthropic format: message.content[] with type='tool_use', id, name, input
5
10
  */
6
- export declare function cacheToolParametersFromMessages(messages: any[], state: PluginState): void;
11
+ export declare function cacheToolParametersFromMessages(messages: any[], state: PluginState, logger?: Logger): void;
7
12
  /**
8
13
  * Cache tool parameters from OpenAI Responses API format.
9
14
  * Extracts from input array items with type='function_call'.
10
15
  */
11
- export declare function cacheToolParametersFromInput(input: any[], state: PluginState): void;
16
+ export declare function cacheToolParametersFromInput(input: any[], state: PluginState, logger?: Logger): void;
12
17
  /**
13
18
  * Trim the tool parameters cache to prevent unbounded memory growth.
14
19
  * Uses FIFO eviction - removes oldest entries first.
@@ -1 +1 @@
1
- {"version":3,"file":"tool-cache.d.ts","sourceRoot":"","sources":["../../../lib/state/tool-cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE1C;;;GAGG;AACH,wBAAgB,+BAA+B,CAC3C,QAAQ,EAAE,GAAG,EAAE,EACf,KAAK,EAAE,WAAW,GACnB,IAAI,CAwBN;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CACxC,KAAK,EAAE,GAAG,EAAE,EACZ,KAAK,EAAE,WAAW,GACnB,IAAI,CAkBN;AAKD;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAWhE"}
1
+ {"version":3,"file":"tool-cache.d.ts","sourceRoot":"","sources":["../../../lib/state/tool-cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAEvC;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,CAC3C,QAAQ,EAAE,GAAG,EAAE,EACf,KAAK,EAAE,WAAW,EAClB,MAAM,CAAC,EAAE,MAAM,GAChB,IAAI,CAmDN;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CACxC,KAAK,EAAE,GAAG,EAAE,EACZ,KAAK,EAAE,WAAW,EAClB,MAAM,CAAC,EAAE,MAAM,GAChB,IAAI,CA2BN;AAKD;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAWhE"}
@@ -1,36 +1,64 @@
1
1
  /**
2
- * Cache tool parameters from OpenAI Chat Completions style messages.
3
- * Extracts tool call IDs and their parameters from assistant messages with tool_calls.
2
+ * Cache tool parameters from OpenAI Chat Completions and Anthropic style messages.
3
+ * Extracts tool call IDs and their parameters from assistant messages.
4
+ *
5
+ * Supports:
6
+ * - OpenAI format: message.tool_calls[] with id, function.name, function.arguments
7
+ * - Anthropic format: message.content[] with type='tool_use', id, name, input
4
8
  */
5
- export function cacheToolParametersFromMessages(messages, state) {
9
+ export function cacheToolParametersFromMessages(messages, state, logger) {
10
+ let openaiCached = 0;
11
+ let anthropicCached = 0;
6
12
  for (const message of messages) {
7
- if (message.role !== 'assistant' || !Array.isArray(message.tool_calls)) {
13
+ if (message.role !== 'assistant') {
8
14
  continue;
9
15
  }
10
- for (const toolCall of message.tool_calls) {
11
- if (!toolCall.id || !toolCall.function) {
12
- continue;
16
+ if (Array.isArray(message.tool_calls)) {
17
+ for (const toolCall of message.tool_calls) {
18
+ if (!toolCall.id || !toolCall.function) {
19
+ continue;
20
+ }
21
+ try {
22
+ const params = typeof toolCall.function.arguments === 'string'
23
+ ? JSON.parse(toolCall.function.arguments)
24
+ : toolCall.function.arguments;
25
+ state.toolParameters.set(toolCall.id.toLowerCase(), {
26
+ tool: toolCall.function.name,
27
+ parameters: params
28
+ });
29
+ openaiCached++;
30
+ }
31
+ catch (error) {
32
+ }
13
33
  }
14
- try {
15
- const params = typeof toolCall.function.arguments === 'string'
16
- ? JSON.parse(toolCall.function.arguments)
17
- : toolCall.function.arguments;
18
- state.toolParameters.set(toolCall.id, {
19
- tool: toolCall.function.name,
20
- parameters: params
34
+ }
35
+ if (Array.isArray(message.content)) {
36
+ for (const part of message.content) {
37
+ if (part.type !== 'tool_use' || !part.id || !part.name) {
38
+ continue;
39
+ }
40
+ state.toolParameters.set(part.id.toLowerCase(), {
41
+ tool: part.name,
42
+ parameters: part.input ?? {}
21
43
  });
22
- }
23
- catch (error) {
24
- // Silently ignore parse errors
44
+ anthropicCached++;
25
45
  }
26
46
  }
27
47
  }
48
+ if (logger && (openaiCached > 0 || anthropicCached > 0)) {
49
+ logger.debug("tool-cache", "Cached tool parameters from messages", {
50
+ openaiFormat: openaiCached,
51
+ anthropicFormat: anthropicCached,
52
+ totalCached: state.toolParameters.size
53
+ });
54
+ }
28
55
  }
29
56
  /**
30
57
  * Cache tool parameters from OpenAI Responses API format.
31
58
  * Extracts from input array items with type='function_call'.
32
59
  */
33
- export function cacheToolParametersFromInput(input, state) {
60
+ export function cacheToolParametersFromInput(input, state, logger) {
61
+ let cached = 0;
34
62
  for (const item of input) {
35
63
  if (item.type !== 'function_call' || !item.call_id || !item.name) {
36
64
  continue;
@@ -39,15 +67,21 @@ export function cacheToolParametersFromInput(input, state) {
39
67
  const params = typeof item.arguments === 'string'
40
68
  ? JSON.parse(item.arguments)
41
69
  : item.arguments;
42
- state.toolParameters.set(item.call_id, {
70
+ state.toolParameters.set(item.call_id.toLowerCase(), {
43
71
  tool: item.name,
44
72
  parameters: params
45
73
  });
74
+ cached++;
46
75
  }
47
76
  catch (error) {
48
- // Silently ignore parse errors
49
77
  }
50
78
  }
79
+ if (logger && cached > 0) {
80
+ logger.debug("tool-cache", "Cached tool parameters from input", {
81
+ responsesApiFormat: cached,
82
+ totalCached: state.toolParameters.size
83
+ });
84
+ }
51
85
  }
52
86
  /** Maximum number of entries to keep in the tool parameters cache */
53
87
  const MAX_TOOL_CACHE_SIZE = 500;
@@ -1 +1 @@
1
- {"version":3,"file":"tool-cache.js","sourceRoot":"","sources":["../../../lib/state/tool-cache.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,UAAU,+BAA+B,CAC3C,QAAe,EACf,KAAkB;IAElB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC7B,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YACrE,SAAQ;QACZ,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACxC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACrC,SAAQ;YACZ,CAAC;YAED,IAAI,CAAC;gBACD,MAAM,MAAM,GAAG,OAAO,QAAQ,CAAC,QAAQ,CAAC,SAAS,KAAK,QAAQ;oBAC1D,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;oBACzC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAA;gBACjC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE;oBAClC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI;oBAC5B,UAAU,EAAE,MAAM;iBACrB,CAAC,CAAA;YACN,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,+BAA+B;YACnC,CAAC;QACL,CAAC;IACL,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,4BAA4B,CACxC,KAAY,EACZ,KAAkB;IAElB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAC/D,SAAQ;QACZ,CAAC;QAED,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;gBAC7C,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;gBAC5B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAA;YACpB,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE;gBACnC,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,UAAU,EAAE,MAAM;aACrB,CAAC,CAAA;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,+BAA+B;QACnC,CAAC;IACL,CAAC;AACL,CAAC;AAED,qEAAqE;AACrE,MAAM,mBAAmB,GAAG,GAAG,CAAA;AAE/B;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAkB;IACtD,IAAI,KAAK,CAAC,cAAc,CAAC,IAAI,IAAI,mBAAmB,EAAE,CAAC;QACnD,OAAM;IACV,CAAC;IAED,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;SACvD,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,GAAG,mBAAmB,CAAC,CAAA;IAE9D,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC7B,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACpC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"tool-cache.js","sourceRoot":"","sources":["../../../lib/state/tool-cache.ts"],"names":[],"mappings":"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"}
@@ -5,5 +5,5 @@ export declare function getNpmVersion(): Promise<string | null>;
5
5
  export declare function isOutdated(local: string, remote: string): boolean;
6
6
  export declare function checkForUpdates(client: any, logger?: {
7
7
  info: (component: string, message: string, data?: any) => void;
8
- }): Promise<void>;
8
+ }, showToast?: boolean): Promise<void>;
9
9
  //# sourceMappingURL=version-checker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"version-checker.d.ts","sourceRoot":"","sources":["../../lib/version-checker.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,YAAY,4BAA4B,CAAA;AACrD,eAAO,MAAM,gBAAgB,8DAAsD,CAAA;AAKnF,wBAAgB,eAAe,IAAI,MAAM,CAQxC;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAiB5D;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAWjE;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE;IAAE,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA2B7I"}
1
+ {"version":3,"file":"version-checker.d.ts","sourceRoot":"","sources":["../../lib/version-checker.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,YAAY,4BAA4B,CAAA;AACrD,eAAO,MAAM,gBAAgB,8DAAsD,CAAA;AAKnF,wBAAgB,eAAe,IAAI,MAAM,CAQxC;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAiB5D;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAWjE;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE;IAAE,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,CAAA;CAAE,EAAE,SAAS,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BxK"}
@@ -46,7 +46,7 @@ export function isOutdated(local, remote) {
46
46
  }
47
47
  return false;
48
48
  }
49
- export async function checkForUpdates(client, logger) {
49
+ export async function checkForUpdates(client, logger, showToast = true) {
50
50
  try {
51
51
  const local = getLocalVersion();
52
52
  const npm = await getNpmVersion();
@@ -59,6 +59,9 @@ export async function checkForUpdates(client, logger) {
59
59
  return;
60
60
  }
61
61
  logger?.info("version", "Update available", { local, npm });
62
+ if (!showToast) {
63
+ return;
64
+ }
62
65
  await client.tui.showToast({
63
66
  body: {
64
67
  title: "DCP: Update available",
@@ -1 +1 @@
1
- {"version":3,"file":"version-checker.js","sourceRoot":"","sources":["../../lib/version-checker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"version-checker.js","sourceRoot":"","sources":["../../lib/version-checker.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "@tarquinen/opencode-dcp",
4
- "version": "0.3.31",
4
+ "version": "0.4.1",
5
5
  "type": "module",
6
6
  "description": "OpenCode plugin that optimizes token usage by pruning obsolete tool outputs from conversation context",
7
7
  "main": "./dist/index.js",
@@ -1,7 +0,0 @@
1
- import type { FetchHandlerContext, FetchHandlerResult } from "./types";
2
- /**
3
- * Handles Google/Gemini format (body.contents array with functionResponse parts).
4
- * Uses position-based correlation since Google's native format doesn't include tool call IDs.
5
- */
6
- export declare function handleGemini(body: any, ctx: FetchHandlerContext, inputUrl: string): Promise<FetchHandlerResult>;
7
- //# sourceMappingURL=gemini.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../../lib/fetch-wrapper/gemini.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAQtE;;;GAGG;AACH,wBAAsB,YAAY,CAC9B,IAAI,EAAE,GAAG,EACT,GAAG,EAAE,mBAAmB,EACxB,QAAQ,EAAE,MAAM,GACjB,OAAO,CAAC,kBAAkB,CAAC,CA8I7B"}