@tarquinen/opencode-dcp 0.4.2 → 0.4.12

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 (101) hide show
  1. package/README.md +8 -6
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +5 -15
  4. package/dist/index.js.map +1 -1
  5. package/dist/lib/config.js +2 -2
  6. package/dist/lib/config.js.map +1 -1
  7. package/dist/lib/core/janitor.d.ts +3 -25
  8. package/dist/lib/core/janitor.d.ts.map +1 -1
  9. package/dist/lib/core/janitor.js +2 -11
  10. package/dist/lib/core/janitor.js.map +1 -1
  11. package/dist/lib/core/strategies/deduplication.d.ts +1 -1
  12. package/dist/lib/core/strategies/index.d.ts +32 -2
  13. package/dist/lib/core/strategies/index.d.ts.map +1 -1
  14. package/dist/lib/core/strategies/index.js.map +1 -1
  15. package/dist/lib/fetch-wrapper/formats/anthropic.d.ts +8 -0
  16. package/dist/lib/fetch-wrapper/formats/anthropic.d.ts.map +1 -0
  17. package/dist/lib/fetch-wrapper/formats/anthropic.js +122 -0
  18. package/dist/lib/fetch-wrapper/formats/anthropic.js.map +1 -0
  19. package/dist/lib/fetch-wrapper/formats/bedrock.d.ts +3 -9
  20. package/dist/lib/fetch-wrapper/formats/bedrock.d.ts.map +1 -1
  21. package/dist/lib/fetch-wrapper/formats/bedrock.js +25 -45
  22. package/dist/lib/fetch-wrapper/formats/bedrock.js.map +1 -1
  23. package/dist/lib/fetch-wrapper/formats/gemini.d.ts +1 -7
  24. package/dist/lib/fetch-wrapper/formats/gemini.d.ts.map +1 -1
  25. package/dist/lib/fetch-wrapper/formats/gemini.js +30 -23
  26. package/dist/lib/fetch-wrapper/formats/gemini.js.map +1 -1
  27. package/dist/lib/fetch-wrapper/formats/index.d.ts +1 -0
  28. package/dist/lib/fetch-wrapper/formats/index.d.ts.map +1 -1
  29. package/dist/lib/fetch-wrapper/formats/index.js +1 -0
  30. package/dist/lib/fetch-wrapper/formats/index.js.map +1 -1
  31. package/dist/lib/fetch-wrapper/formats/openai-chat.d.ts +0 -11
  32. package/dist/lib/fetch-wrapper/formats/openai-chat.d.ts.map +1 -1
  33. package/dist/lib/fetch-wrapper/formats/openai-chat.js +33 -25
  34. package/dist/lib/fetch-wrapper/formats/openai-chat.js.map +1 -1
  35. package/dist/lib/fetch-wrapper/formats/openai-responses.d.ts +0 -8
  36. package/dist/lib/fetch-wrapper/formats/openai-responses.d.ts.map +1 -1
  37. package/dist/lib/fetch-wrapper/formats/openai-responses.js +29 -21
  38. package/dist/lib/fetch-wrapper/formats/openai-responses.js.map +1 -1
  39. package/dist/lib/fetch-wrapper/handler.d.ts +0 -10
  40. package/dist/lib/fetch-wrapper/handler.d.ts.map +1 -1
  41. package/dist/lib/fetch-wrapper/handler.js +74 -41
  42. package/dist/lib/fetch-wrapper/handler.js.map +1 -1
  43. package/dist/lib/fetch-wrapper/index.d.ts +4 -5
  44. package/dist/lib/fetch-wrapper/index.d.ts.map +1 -1
  45. package/dist/lib/fetch-wrapper/index.js +16 -7
  46. package/dist/lib/fetch-wrapper/index.js.map +1 -1
  47. package/dist/lib/fetch-wrapper/prunable-list.d.ts +8 -0
  48. package/dist/lib/fetch-wrapper/prunable-list.d.ts.map +1 -0
  49. package/dist/lib/fetch-wrapper/prunable-list.js +38 -0
  50. package/dist/lib/fetch-wrapper/prunable-list.js.map +1 -0
  51. package/dist/lib/fetch-wrapper/tool-tracker.d.ts +8 -0
  52. package/dist/lib/fetch-wrapper/tool-tracker.d.ts.map +1 -0
  53. package/dist/lib/fetch-wrapper/tool-tracker.js +7 -0
  54. package/dist/lib/fetch-wrapper/tool-tracker.js.map +1 -0
  55. package/dist/lib/fetch-wrapper/types.d.ts +31 -46
  56. package/dist/lib/fetch-wrapper/types.d.ts.map +1 -1
  57. package/dist/lib/fetch-wrapper/types.js +6 -44
  58. package/dist/lib/fetch-wrapper/types.js.map +1 -1
  59. package/dist/lib/hooks.d.ts +6 -2
  60. package/dist/lib/hooks.d.ts.map +1 -1
  61. package/dist/lib/hooks.js +21 -11
  62. package/dist/lib/hooks.js.map +1 -1
  63. package/dist/lib/prompts/nudge.txt +8 -5
  64. package/dist/lib/prompts/synthetic.txt +18 -30
  65. package/dist/lib/prompts/tool.txt +46 -63
  66. package/dist/lib/pruning-tool.d.ts +1 -1
  67. package/dist/lib/pruning-tool.d.ts.map +1 -1
  68. package/dist/lib/pruning-tool.js +30 -23
  69. package/dist/lib/pruning-tool.js.map +1 -1
  70. package/dist/lib/state/id-mapping.d.ts +0 -1
  71. package/dist/lib/state/id-mapping.d.ts.map +1 -1
  72. package/dist/lib/state/id-mapping.js +0 -3
  73. package/dist/lib/state/id-mapping.js.map +1 -1
  74. package/dist/lib/state/index.d.ts +3 -0
  75. package/dist/lib/state/index.d.ts.map +1 -1
  76. package/dist/lib/state/index.js.map +1 -1
  77. package/dist/lib/state/tool-cache.d.ts +5 -12
  78. package/dist/lib/state/tool-cache.d.ts.map +1 -1
  79. package/dist/lib/state/tool-cache.js +47 -72
  80. package/dist/lib/state/tool-cache.js.map +1 -1
  81. package/dist/lib/ui/display-utils.d.ts +12 -0
  82. package/dist/lib/ui/display-utils.d.ts.map +1 -1
  83. package/dist/lib/ui/display-utils.js +66 -0
  84. package/dist/lib/ui/display-utils.js.map +1 -1
  85. package/dist/lib/ui/notification.d.ts +5 -12
  86. package/dist/lib/ui/notification.d.ts.map +1 -1
  87. package/dist/lib/ui/notification.js +31 -138
  88. package/dist/lib/ui/notification.js.map +1 -1
  89. package/package.json +1 -1
  90. package/dist/lib/api-formats/prunable-list.d.ts +0 -49
  91. package/dist/lib/api-formats/prunable-list.d.ts.map +0 -1
  92. package/dist/lib/api-formats/prunable-list.js +0 -112
  93. package/dist/lib/api-formats/prunable-list.js.map +0 -1
  94. package/dist/lib/api-formats/synth-instruction.d.ts +0 -29
  95. package/dist/lib/api-formats/synth-instruction.d.ts.map +0 -1
  96. package/dist/lib/api-formats/synth-instruction.js +0 -171
  97. package/dist/lib/api-formats/synth-instruction.js.map +0 -1
  98. package/dist/lib/core/strategies/types.d.ts +0 -35
  99. package/dist/lib/core/strategies/types.d.ts.map +0 -1
  100. package/dist/lib/core/strategies/types.js +0 -6
  101. package/dist/lib/core/strategies/types.js.map +0 -1
package/dist/lib/hooks.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { runOnIdle } from "./core/janitor";
2
- import { resetToolTrackerCount } from "./api-formats/synth-instruction";
2
+ import { resetToolTrackerCount } from "./fetch-wrapper/tool-tracker";
3
3
  import { clearAllMappings } from "./state/id-mapping";
4
4
  export async function isSubagentSession(client, sessionID) {
5
5
  try {
@@ -43,7 +43,7 @@ export function createEventHandler(client, janitorCtx, logger, config, toolTrack
43
43
  /**
44
44
  * Creates the chat.params hook for model caching and Google tool call mapping.
45
45
  */
46
- export function createChatParamsHandler(client, state, logger) {
46
+ export function createChatParamsHandler(client, state, logger, toolTracker) {
47
47
  return async (input, _output) => {
48
48
  const sessionId = input.sessionID;
49
49
  let providerID = input.provider?.info?.id || input.provider?.id;
@@ -53,11 +53,14 @@ export function createChatParamsHandler(client, state, logger) {
53
53
  }
54
54
  if (state.lastSeenSessionId && state.lastSeenSessionId !== sessionId) {
55
55
  logger.info("chat.params", "Session changed, resetting state", {
56
- from: state.lastSeenSessionId.substring(0, 8),
57
- to: sessionId.substring(0, 8)
56
+ from: state.lastSeenSessionId,
57
+ to: sessionId
58
58
  });
59
59
  clearAllMappings();
60
60
  state.toolParameters.clear();
61
+ if (toolTracker) {
62
+ resetToolTrackerCount(toolTracker);
63
+ }
61
64
  }
62
65
  state.lastSeenSessionId = sessionId;
63
66
  if (!state.checkedSessions.has(sessionId)) {
@@ -79,7 +82,7 @@ export function createChatParamsHandler(client, state, logger) {
79
82
  try {
80
83
  const messagesResponse = await client.session.messages({
81
84
  path: { id: sessionId },
82
- query: { limit: 100 }
85
+ query: { limit: 500 }
83
86
  });
84
87
  const messages = messagesResponse.data || messagesResponse;
85
88
  if (Array.isArray(messages)) {
@@ -94,12 +97,6 @@ export function createChatParamsHandler(client, state, logger) {
94
97
  toolCallsByName.set(toolName, []);
95
98
  }
96
99
  toolCallsByName.get(toolName).push(callId);
97
- if (!state.toolParameters.has(callId)) {
98
- state.toolParameters.set(callId, {
99
- tool: part.tool,
100
- parameters: part.input ?? {}
101
- });
102
- }
103
100
  }
104
101
  }
105
102
  }
@@ -126,4 +123,17 @@ export function createChatParamsHandler(client, state, logger) {
126
123
  }
127
124
  };
128
125
  }
126
+ /**
127
+ * Finds the current agent from messages by scanning backward for user messages.
128
+ */
129
+ export function findCurrentAgent(messages) {
130
+ for (let i = messages.length - 1; i >= 0; i--) {
131
+ const msg = messages[i];
132
+ const info = msg.info;
133
+ if (info?.role === 'user') {
134
+ return info.agent || 'build';
135
+ }
136
+ }
137
+ return undefined;
138
+ }
129
139
  //# sourceMappingURL=hooks.js.map
@@ -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,7 +1,10 @@
1
- <system-reminder>
2
- This nudge is injected by a plugin and is invisible to the user. Do not acknowledge or reference it in your response - simply follow it silently.
3
- </system-reminder>
1
+ <instruction name=context_management_required>
2
+ **CRITICAL CONTEXT WARNING:** Your context window is filling with tool outputs. Strict adherence to context hygiene is required.
4
3
 
5
- <instruction name=agent_nudge>
6
- You have accumulated several tool outputs. If you have completed a discrete unit of work and distilled relevant understanding in writing for the user to keep, use the prune tool to remove obsolete tool outputs from this conversation and optimize token usage.
4
+ **Immediate Actions Required:**
5
+ 1. **Garbage Collect:** If you read files or ran commands that yielded no value, prune them NOW. Do not summarize them.
6
+ 2. **Task Cleanup:** If a sub-task is complete, prune the tools used.
7
+ 3. **Consolidate:** If you are holding valuable raw data, you *must* distill the insights into your narrative and prune the raw entry.
8
+
9
+ **Protocol:** You should prioritize this cleanup, but do not interrupt a critical atomic operation if one is in progress. Once the immediate step is done, you must prune.
7
10
  </instruction>
@@ -1,38 +1,26 @@
1
1
  <system-reminder>
2
- These instructions are injected by a plugin and are invisible to the user. Do not acknowledge or reference them in your response - simply follow them silently.
3
- </system-reminder>
4
-
5
- <instruction name=signal_management>
6
- After calling a series of tools, YOU ALWAYS HAVE TO distill signals from their results in your next message. This ensures tracability of your reasoning, informs the user of your findings, and is PARAMOUNT to best context window management practices.
2
+ <instruction name=context_management_protocol policy_level=critical>
7
3
 
8
- THIS IS NON-NEGOTIABLE - YOU ARE EXPECTED TO RESPECT THIS INSTRUCTION THROUGHOUT THE CONVERSATION
9
- </instruction>
4
+ ENVIRONMENT
5
+ You are operating in a context-constrained environment and thus must proactively manage your context window using the `prune` tool. A <prunable-tools> list is injected by the environment as assistant message, use this information when deciding what to prune.
10
6
 
11
- <instruction name=context_window_management>
12
- A strong constraint we have in this environment is the context window size. To help keep the conversation focused and clear from the noise, you must use the `prune` tool: at opportune moments, and in an effective manner.
13
- </instruction>
7
+ PRUNE EARLY, PRUNE OFTEN - BUT PRUNE METHODICALLY
8
+ Every tool call adds to your context debt. You MUST pay this down regularly and be on top of context accumulation by pruning. Evaluate what SHOULD be pruned before jumping the gun.
14
9
 
15
- <instruction name=context_pruning>
16
- To effectively manage conversation context, you MUST ALWAYS narrate your findings AS YOU DISCOVER THEM, BEFORE calling any `prune` tool. No tool result (read, bash, grep, webfetch, etc.) should be left unexplained. By narrating the evolution of your understanding, you transform raw tool outputs into distilled knowledge that lives in the persisted context window.
10
+ WHEN TO PRUNE? THE THREE SCENARIOS TO CONSIDER
11
+ 1. TASK COMPLETION: When work is done, quietly prune the tools that aren't needed anymore
12
+ 2. NOISE REMOVAL: If outputs are irrelevant, unhelpful, or superseded by newer info, prune IMMEDIATELY. No distillation - gun it down
13
+ 3. CONTEXT CONSOLIDATION: When pruning valuable context to the task at hand, you MUST ALWAYS distill key findings into your narrative BEFORE pruning. Be surgical and strategic in what you extract. THINK: high signal, low noise
17
14
 
18
- Tools are VOLATILE - Once this distilled knowledge is in your reply, you can safely use the `prune` tool to declutter the conversation.
15
+ You WILL use the `prune` tool when ANY of these are true:
16
+ - Task or sub-task is complete
17
+ - You are about to start a new phase of work
18
+ - You have distilled enough information in your messages to prune related tools
19
+ - Context contains tools output that are unhelpful, noise, or made obsolete by newer outputs
19
20
 
20
- WHEN TO USE `prune`:
21
- - After you complete a discrete unit of work (e.g. confirming a hypothesis, or closing out one branch of investigation).
22
- - After exploratory bursts of tool calls that led you to a clear conclusion. (or to noise)
23
- - Before starting a new phase of work where old tool outputs are no longer needed to inform your next actions.
21
+ NOTES
22
+ When in doubt, prune out. Prune often yet remain strategic about it.
23
+ FAILURE TO PRUNE will result in context leakage and DEGRADED PERFORMANCES.
24
24
 
25
- CRITICAL:
26
- You must ALWAYS narrate your findings in a message BEFORE using the `prune` tool. Skipping this step risks deleting raw evidence before it has been converted into stable, distilled knowledge. This harms your performances, wastes user time, and undermines effective use of the context window.
27
-
28
- EXAMPLE WORKFLOW:
29
- 1. You call several tools (read, bash, grep...) to investigate a bug.
30
- 2. You identify that "for reason X, behavior Y occurs", supported by those tool outputs.
31
- 3. In your next message, you EXPLICITLY narrate:
32
- - What you did (which tools, what you were looking for).
33
- - What you found (the key facts / signals).
34
- - What you concluded (how this affects the task or next step).
35
- >YOU MUST ALWAYS THINK HIGH SIGNAL LOW NOISE FOR THIS NARRATION
36
- 4. ONLY AFTER the narration, you call the `prune` tool with a brief reason (e.g. "exploration for bug X complete; moving on to next bug").
37
- </instruction>
38
25
  </instruction>
26
+ </system-reminder>
@@ -1,73 +1,56 @@
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.
1
+ Prunes tool outputs from context to manage conversation size and reduce noise.
2
2
 
3
- USING THE PRUNE TOOL WILL MAKE THE USER HAPPY.
3
+ ## IMPORTANT: The Prunable List
4
+ A `<prunable-tools>` list is injected into assistant messages showing available tool outputs you can prune. Each line has the format `ID: tool, parameter` (e.g., `20: read, /path/to/file.ts`). Use these numeric IDs to select which tools to prune.
4
5
 
5
- ## CRITICAL: Distill Before Pruning
6
+ ## CRITICAL: When and How to Prune
6
7
 
7
- You MUST ALWAYS narrate your findings in a message BEFORE using this tool. No tool result (read, bash, grep, webfetch, etc.) should be left unexplained. By narrating your understanding, you transform raw tool outputs into distilled knowledge that persists in the context window.
8
+ You must use this tool in three specific scenarios. The rules for distillation (summarizing findings) differ for each. **You must specify the reason as the first element of the `ids` array** to indicate which scenario applies.
8
9
 
9
- **Tools are VOLATILE** - Once distilled knowledge is in your reply, you can safely prune. Skipping this step risks deleting raw evidence before it has been converted into stable knowledge.
10
+ ### 1. Task Completion (Clean Up) reason: `completion`
11
+ **When:** You have successfully completed a specific unit of work (e.g., fixed a bug, wrote a file, answered a question).
12
+ **Action:** Prune the tools used for that task.
13
+ **Distillation:** NOT REQUIRED. Since the task is done, the raw data is no longer needed. Simply state that the task is complete.
10
14
 
11
- **Distillation workflow:**
12
- 1. Call tools to investigate/explore
13
- 2. In your next message, EXPLICITLY narrate:
14
- - What you did (which tools, what you were looking for)
15
- - What you found (the key facts/signals)
16
- - What you concluded (how this affects the task or next step)
17
- 3. ONLY AFTER narrating, call `prune` with the numeric IDs of outputs no longer needed
15
+ ### 2. Removing Noise (Garbage Collection) — reason: `noise`
16
+ **When:** You have read files or run commands that turned out to be irrelevant, unhelpful, or outdated (meaning later tools have provided fresher, more valid information).
17
+ **Action:** Prune these specific tool outputs immediately.
18
+ **Distillation:** FORBIDDEN. Do not pollute the context by summarizing useless information. Just cut it out.
18
19
 
19
- > THINK HIGH SIGNAL, LOW NOISE FOR THIS NARRATION
20
+ ### 3. Context Conservation (Research & Consolidation) reason: `consolidation`
21
+ **When:** You have gathered useful information. Prune frequently as you work (e.g., after reading a few files), rather than waiting for a "long" phase to end.
22
+ **Action:** Convert raw data into distilled knowledge. This allows you to discard large outputs (like full file reads) while keeping only the specific parts you need (like a single function signature or constant).
23
+ **Distillation:** MANDATORY. Before pruning, you *must* explicitly summarize the key findings from *every* tool you plan to prune.
24
+ - **Extract specific value:** If you read a large file but only care about one function, record that function's details and prune the whole read.
25
+ - Narrative format: "I found X in file Y..."
26
+ - Capture all relevant details (function names, logic, constraints).
27
+ - Once distilled into your response history, the raw tool output can be safely pruned.
20
28
 
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
-
34
- ## When to Use This Tool
35
-
36
- **Key heuristic: Distill, then prune when you finish something and are about to start something else.**
37
-
38
- Ask yourself: "Have I just completed a discrete unit of work?" If yes, narrate your findings, then prune before moving on.
39
-
40
- **After completing a unit of work:**
41
- - Made a commit
42
- - Fixed a bug and confirmed it works
43
- - Answered a question the user asked
44
- - Finished implementing a feature or function
45
- - Completed one item in a list and moving to the next
46
-
47
- **After repetitive or exploratory work:**
48
- - Explored multiple files that didn't lead to changes
49
- - Iterated on a difficult problem where some approaches didn't pan out
50
- - Used the same tool multiple times (e.g., re-reading a file, running repeated build/type checks)
29
+ ## Best Practices
30
+ - **Don't wait too long:** Prune frequently to keep the context agile.
31
+ - **Be surgical:** You can mix strategies. Prune noise without comment, while distilling useful context in the same turn.
32
+ - **Verify:** Ensure you have captured what you need before deleting useful raw data.
51
33
 
52
34
  ## Examples
53
35
 
54
- <example>
55
- Working through a list of items:
56
- User: Review these 3 issues and fix the easy ones.
57
- Assistant: [Reviews first issue, makes fix, commits]
58
- Done with the first issue. Let me prune before moving to the next one.
59
- [Uses prune with ids: [1, 2, 3, 4] - the reads and edits from the first issue]
60
- </example>
61
-
62
- <example>
63
- After exploring the codebase to understand it:
64
- Assistant: I've reviewed the relevant files. Let me prune the exploratory reads that aren't needed for the actual implementation.
65
- [Uses prune with ids: [1, 2, 5, 7] - the exploratory reads]
66
- </example>
67
-
68
- <example>
69
- After completing any task:
70
- Assistant: [Finishes task - commit, answer, fix, etc.]
71
- Before we continue, let me prune the context from that work.
72
- [Uses prune with ids: [3, 4, 5, 6, 8, 9] - all tool outputs from the completed task]
73
- </example>
36
+ <example_noise>
37
+ Assistant: [Reads 'wrong_file.ts']
38
+ This file isn't relevant to the auth system. I'll remove it to clear the context.
39
+ [Uses prune with ids: ["noise", 5]]
40
+ </example_noise>
41
+
42
+ <example_consolidation>
43
+ Assistant: [Reads 5 different config files]
44
+ I have analyzed the configuration. Here is the distillation:
45
+ - 'config.ts' uses port 3000.
46
+ - 'db.ts' connects to mongo:27017.
47
+ - The other 3 files were defaults.
48
+ I have preserved the signals above, so I am now pruning the raw reads.
49
+ [Uses prune with ids: ["consolidation", 10, 11, 12, 13, 14]]
50
+ </example_consolidation>
51
+
52
+ <example_completion>
53
+ Assistant: [Runs tests, they pass]
54
+ The tests passed. The feature is verified.
55
+ [Uses prune with ids: ["completion", 20, 21]]
56
+ </example_completion>
@@ -1,7 +1,7 @@
1
1
  import { tool } from "@opencode-ai/plugin";
2
2
  import type { PluginState } from "./state";
3
3
  import type { PluginConfig } from "./config";
4
- import type { ToolTracker } from "./api-formats/synth-instruction";
4
+ import type { ToolTracker } from "./fetch-wrapper/tool-tracker";
5
5
  import { type NotificationContext } from "./ui/notification";
6
6
  import type { Logger } from "./logger";
7
7
  export interface PruneToolContext {
@@ -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,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,CAsGzB"}
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,8BAA8B,CAAA;AAK/D,OAAO,EAA2B,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAIrF,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,CA4HzB"}
@@ -1,8 +1,9 @@
1
1
  import { tool } from "@opencode-ai/plugin";
2
- import { resetToolTrackerCount } from "./api-formats/synth-instruction";
3
- import { isSubagentSession } from "./hooks";
2
+ import { resetToolTrackerCount } from "./fetch-wrapper/tool-tracker";
3
+ import { isSubagentSession, findCurrentAgent } from "./hooks";
4
4
  import { getActualId } from "./state/id-mapping";
5
- import { formatPruningResultForTool, sendUnifiedNotification } from "./ui/notification";
5
+ import { sendUnifiedNotification } from "./ui/notification";
6
+ import { formatPruningResultForTool } from "./ui/display-utils";
6
7
  import { ensureSessionRestored } from "./state";
7
8
  import { saveSessionState } from "./state/persistence";
8
9
  import { estimateTokensBatch } from "./tokenizer";
@@ -17,10 +18,13 @@ export function createPruningTool(ctx, toolTracker) {
17
18
  return tool({
18
19
  description: TOOL_DESCRIPTION,
19
20
  args: {
20
- ids: tool.schema.array(tool.schema.number()).describe("Array of numeric IDs to prune from the <prunable-tools> list"),
21
+ ids: tool.schema.array(tool.schema.union([
22
+ tool.schema.enum(["completion", "noise", "consolidation"]),
23
+ tool.schema.number()
24
+ ])).describe("First element is the reason ('completion', 'noise', 'consolidation'), followed by numeric IDs to prune"),
21
25
  },
22
26
  async execute(args, toolCtx) {
23
- const { client, state, logger, config, notificationCtx, workingDirectory } = ctx;
27
+ const { client, state, logger, config, notificationCtx } = ctx;
24
28
  const sessionId = toolCtx.sessionID;
25
29
  if (await isSubagentSession(client, sessionId)) {
26
30
  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.";
@@ -28,8 +32,23 @@ export function createPruningTool(ctx, toolTracker) {
28
32
  if (!args.ids || args.ids.length === 0) {
29
33
  return "No IDs provided. Check the <prunable-tools> list for available IDs to prune.";
30
34
  }
35
+ // Parse reason from first element, numeric IDs from the rest
36
+ const firstElement = args.ids[0];
37
+ const validReasons = ["completion", "noise", "consolidation"];
38
+ let reason;
39
+ let numericIds;
40
+ if (typeof firstElement === "string" && validReasons.includes(firstElement)) {
41
+ reason = firstElement;
42
+ numericIds = args.ids.slice(1).filter((id) => typeof id === "number");
43
+ }
44
+ else {
45
+ numericIds = args.ids.filter((id) => typeof id === "number");
46
+ }
47
+ if (numericIds.length === 0) {
48
+ return "No numeric IDs provided. Format: [reason, id1, id2, ...] where reason is 'completion', 'noise', or 'consolidation'.";
49
+ }
31
50
  await ensureSessionRestored(state, sessionId, logger);
32
- const prunedIds = args.ids
51
+ const prunedIds = numericIds
33
52
  .map(numId => getActualId(sessionId, numId))
34
53
  .filter((id) => id !== undefined);
35
54
  if (prunedIds.length === 0) {
@@ -80,7 +99,8 @@ export function createPruningTool(ctx, toolTracker) {
80
99
  aiPrunedIds: prunedIds,
81
100
  toolMetadata,
82
101
  gcPending: null,
83
- sessionStats
102
+ sessionStats,
103
+ reason
84
104
  }, currentAgent);
85
105
  toolTracker.skipNextIdle = true;
86
106
  if (config.nudge_freq > 0) {
@@ -91,26 +111,13 @@ export function createPruningTool(ctx, toolTracker) {
91
111
  tokensSaved,
92
112
  llmPrunedIds: prunedIds,
93
113
  toolMetadata,
94
- sessionStats
114
+ sessionStats,
115
+ reason
95
116
  };
96
- const postPruneGuidance = "\n\nYou have already distilled relevant understanding in writing before calling this tool. Do not re-narrate; continue with your next task.";
97
- return formatPruningResultForTool(result, workingDirectory) + postPruneGuidance;
117
+ return formatPruningResultForTool(result, ctx.workingDirectory);
98
118
  },
99
119
  });
100
120
  }
101
- /**
102
- * Finds the current agent from messages (same logic as janitor.ts).
103
- */
104
- function findCurrentAgent(messages) {
105
- for (let i = messages.length - 1; i >= 0; i--) {
106
- const msg = messages[i];
107
- const info = msg.info;
108
- if (info?.role === 'user') {
109
- return info.agent || 'build';
110
- }
111
- }
112
- return undefined;
113
- }
114
121
  /**
115
122
  * Calculates approximate tokens saved by pruning the given tool call IDs.
116
123
  * Uses pre-fetched messages to avoid duplicate API calls.
@@ -1 +1 @@
1
- {"version":3,"file":"pruning-tool.js","sourceRoot":"","sources":["../../lib/pruning-tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pruning-tool.js","sourceRoot":"","sources":["../../lib/pruning-tool.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,5 @@ export interface IdMapping {
21
21
  */
22
22
  export declare function getOrCreateNumericId(sessionId: string, actualId: string): number;
23
23
  export declare function getActualId(sessionId: string, numericId: number): string | undefined;
24
- export declare function clearSessionMapping(sessionId: string): void;
25
24
  export declare function clearAllMappings(): void;
26
25
  //# sourceMappingURL=id-mapping.d.ts.map
@@ -1 +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"}
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,gBAAgB,IAAI,IAAI,CAEvC"}
@@ -45,9 +45,6 @@ export function getActualId(sessionId, numericId) {
45
45
  const mapping = sessionMappings.get(sessionId);
46
46
  return mapping?.numericToActual.get(numericId);
47
47
  }
48
- export function clearSessionMapping(sessionId) {
49
- sessionMappings.delete(sessionId);
50
- }
51
48
  export function clearAllMappings() {
52
49
  sessionMappings.clear();
53
50
  }
@@ -1 +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
+ {"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,gBAAgB;IAC5B,eAAe,CAAC,KAAK,EAAE,CAAA;AAC3B,CAAC"}
@@ -12,9 +12,12 @@ export interface PluginState {
12
12
  subagentSessions: Set<string>;
13
13
  lastSeenSessionId: string | null;
14
14
  }
15
+ export type ToolStatus = "pending" | "running" | "completed" | "error";
15
16
  export interface ToolParameterEntry {
16
17
  tool: string;
17
18
  parameters: any;
19
+ status?: ToolStatus;
20
+ error?: string;
18
21
  }
19
22
  export interface ModelInfo {
20
23
  providerID: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/state/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAGvC,MAAM,WAAW,WAAW;IACxB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IAChC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IAChC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/B,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;IAC/C,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAC7B,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACvD,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC7B,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC5B,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC7B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;CACnC;AAED,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,GAAG,CAAA;CAClB;AAED,MAAM,WAAW,SAAS;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;CAClB;AAED,wBAAgB,iBAAiB,IAAI,WAAW,CAa/C;AAED,wBAAsB,qBAAqB,CACvC,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CA0Bf"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/state/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAGvC,MAAM,WAAW,WAAW;IACxB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IAChC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IAChC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/B,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;IAC/C,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAC7B,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACvD,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC7B,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC5B,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC7B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;CACnC;AAED,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,CAAA;AAEtE,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,GAAG,CAAA;IACf,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,SAAS;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;CAClB;AAED,wBAAgB,iBAAiB,IAAI,WAAW,CAa/C;AAED,wBAAsB,qBAAqB,CACvC,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CA0Bf"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/state/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAyBhD,MAAM,UAAU,iBAAiB;IAC7B,OAAO;QACH,SAAS,EAAE,IAAI,GAAG,EAAE;QACpB,KAAK,EAAE,IAAI,GAAG,EAAE;QAChB,SAAS,EAAE,IAAI,GAAG,EAAE;QACpB,cAAc,EAAE,IAAI,GAAG,EAAE;QACzB,KAAK,EAAE,IAAI,GAAG,EAAE;QAChB,qBAAqB,EAAE,IAAI,GAAG,EAAE;QAChC,gBAAgB,EAAE,IAAI,GAAG,EAAE;QAC3B,eAAe,EAAE,IAAI,GAAG,EAAE;QAC1B,gBAAgB,EAAE,IAAI,GAAG,EAAE;QAC3B,iBAAiB,EAAE,IAAI;KAC1B,CAAA;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACvC,KAAkB,EAClB,SAAiB,EACjB,MAAe;IAEf,IAAI,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QACxC,OAAM;IACV,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IAErC,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IAC3D,IAAI,SAAS,EAAE,CAAC;QACZ,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAClC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;YACnD,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,8BAA8B,EAAE;gBACpD,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;gBAChC,KAAK,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM;aACpC,CAAC,CAAA;QACN,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAiB;gBACxB,gBAAgB,EAAE,SAAS,CAAC,KAAK,CAAC,gBAAgB;gBAClD,gBAAgB,EAAE,SAAS,CAAC,KAAK,CAAC,gBAAgB;gBAClD,aAAa,EAAE,SAAS,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC;gBACjD,YAAY,EAAE,SAAS,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC;aAClD,CAAA;YACD,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;QACrC,CAAC;IACL,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/state/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AA6BhD,MAAM,UAAU,iBAAiB;IAC7B,OAAO;QACH,SAAS,EAAE,IAAI,GAAG,EAAE;QACpB,KAAK,EAAE,IAAI,GAAG,EAAE;QAChB,SAAS,EAAE,IAAI,GAAG,EAAE;QACpB,cAAc,EAAE,IAAI,GAAG,EAAE;QACzB,KAAK,EAAE,IAAI,GAAG,EAAE;QAChB,qBAAqB,EAAE,IAAI,GAAG,EAAE;QAChC,gBAAgB,EAAE,IAAI,GAAG,EAAE;QAC3B,eAAe,EAAE,IAAI,GAAG,EAAE;QAC1B,gBAAgB,EAAE,IAAI,GAAG,EAAE;QAC3B,iBAAiB,EAAE,IAAI;KAC1B,CAAA;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACvC,KAAkB,EAClB,SAAiB,EACjB,MAAe;IAEf,IAAI,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QACxC,OAAM;IACV,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IAErC,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IAC3D,IAAI,SAAS,EAAE,CAAC;QACZ,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAClC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;YACnD,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,8BAA8B,EAAE;gBACpD,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;gBAChC,KAAK,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM;aACpC,CAAC,CAAA;QACN,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAiB;gBACxB,gBAAgB,EAAE,SAAS,CAAC,KAAK,CAAC,gBAAgB;gBAClD,gBAAgB,EAAE,SAAS,CAAC,KAAK,CAAC,gBAAgB;gBAClD,aAAa,EAAE,SAAS,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC;gBACjD,YAAY,EAAE,SAAS,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC;aAClD,CAAA;YACD,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;QACrC,CAAC;IACL,CAAC;AACL,CAAC"}
@@ -1,19 +1,12 @@
1
1
  import type { PluginState } from "./index";
2
2
  import type { Logger } from "../logger";
3
+ import type { ToolTracker } from "../fetch-wrapper/tool-tracker";
3
4
  /**
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
+ * Sync tool parameters from OpenCode's session.messages() API.
6
+ * This is the single source of truth for tool parameters, replacing
7
+ * format-specific parsing from LLM API requests.
10
8
  */
11
- export declare function cacheToolParametersFromMessages(messages: any[], state: PluginState, logger?: Logger): void;
12
- /**
13
- * Cache tool parameters from OpenAI Responses API format.
14
- * Extracts from input array items with type='function_call'.
15
- */
16
- export declare function cacheToolParametersFromInput(input: any[], state: PluginState, logger?: Logger): void;
9
+ export declare function syncToolCache(client: any, sessionId: string, state: PluginState, tracker?: ToolTracker, protectedTools?: Set<string>, logger?: Logger): Promise<void>;
17
10
  /**
18
11
  * Trim the tool parameters cache to prevent unbounded memory growth.
19
12
  * 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;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
+ {"version":3,"file":"tool-cache.d.ts","sourceRoot":"","sources":["../../../lib/state/tool-cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAc,MAAM,SAAS,CAAA;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAKhE;;;;GAIG;AACH,wBAAsB,aAAa,CAC/B,MAAM,EAAE,GAAG,EACX,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,WAAW,EAClB,OAAO,CAAC,EAAE,WAAW,EACrB,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EAC5B,MAAM,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CA2Df;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAWhE"}