@tarquinen/opencode-dcp 0.4.2 → 0.4.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -15
- package/dist/index.js.map +1 -1
- package/dist/lib/config.js +2 -2
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/core/janitor.d.ts +3 -25
- package/dist/lib/core/janitor.d.ts.map +1 -1
- package/dist/lib/core/janitor.js +2 -11
- package/dist/lib/core/janitor.js.map +1 -1
- package/dist/lib/core/strategies/deduplication.d.ts +1 -1
- package/dist/lib/core/strategies/index.d.ts +32 -2
- package/dist/lib/core/strategies/index.d.ts.map +1 -1
- package/dist/lib/core/strategies/index.js.map +1 -1
- package/dist/lib/fetch-wrapper/formats/anthropic.d.ts +8 -0
- package/dist/lib/fetch-wrapper/formats/anthropic.d.ts.map +1 -0
- package/dist/lib/fetch-wrapper/formats/anthropic.js +96 -0
- package/dist/lib/fetch-wrapper/formats/anthropic.js.map +1 -0
- package/dist/lib/fetch-wrapper/formats/bedrock.d.ts +3 -9
- package/dist/lib/fetch-wrapper/formats/bedrock.d.ts.map +1 -1
- package/dist/lib/fetch-wrapper/formats/bedrock.js +15 -46
- package/dist/lib/fetch-wrapper/formats/bedrock.js.map +1 -1
- package/dist/lib/fetch-wrapper/formats/gemini.d.ts +1 -7
- package/dist/lib/fetch-wrapper/formats/gemini.d.ts.map +1 -1
- package/dist/lib/fetch-wrapper/formats/gemini.js +19 -23
- package/dist/lib/fetch-wrapper/formats/gemini.js.map +1 -1
- package/dist/lib/fetch-wrapper/formats/index.d.ts +1 -0
- package/dist/lib/fetch-wrapper/formats/index.d.ts.map +1 -1
- package/dist/lib/fetch-wrapper/formats/index.js +1 -0
- package/dist/lib/fetch-wrapper/formats/index.js.map +1 -1
- package/dist/lib/fetch-wrapper/formats/openai-chat.d.ts +0 -11
- package/dist/lib/fetch-wrapper/formats/openai-chat.d.ts.map +1 -1
- package/dist/lib/fetch-wrapper/formats/openai-chat.js +19 -25
- package/dist/lib/fetch-wrapper/formats/openai-chat.js.map +1 -1
- package/dist/lib/fetch-wrapper/formats/openai-responses.d.ts +0 -8
- package/dist/lib/fetch-wrapper/formats/openai-responses.d.ts.map +1 -1
- package/dist/lib/fetch-wrapper/formats/openai-responses.js +15 -21
- package/dist/lib/fetch-wrapper/formats/openai-responses.js.map +1 -1
- package/dist/lib/fetch-wrapper/handler.d.ts +0 -10
- package/dist/lib/fetch-wrapper/handler.d.ts.map +1 -1
- package/dist/lib/fetch-wrapper/handler.js +74 -41
- package/dist/lib/fetch-wrapper/handler.js.map +1 -1
- package/dist/lib/fetch-wrapper/index.d.ts +4 -5
- package/dist/lib/fetch-wrapper/index.d.ts.map +1 -1
- package/dist/lib/fetch-wrapper/index.js +16 -7
- package/dist/lib/fetch-wrapper/index.js.map +1 -1
- package/dist/lib/fetch-wrapper/prunable-list.d.ts +8 -0
- package/dist/lib/fetch-wrapper/prunable-list.d.ts.map +1 -0
- package/dist/lib/fetch-wrapper/prunable-list.js +38 -0
- package/dist/lib/fetch-wrapper/prunable-list.js.map +1 -0
- package/dist/lib/fetch-wrapper/tool-tracker.d.ts +8 -0
- package/dist/lib/fetch-wrapper/tool-tracker.d.ts.map +1 -0
- package/dist/lib/fetch-wrapper/tool-tracker.js +7 -0
- package/dist/lib/fetch-wrapper/tool-tracker.js.map +1 -0
- package/dist/lib/fetch-wrapper/types.d.ts +31 -46
- package/dist/lib/fetch-wrapper/types.d.ts.map +1 -1
- package/dist/lib/fetch-wrapper/types.js +6 -44
- package/dist/lib/fetch-wrapper/types.js.map +1 -1
- package/dist/lib/hooks.d.ts +6 -2
- package/dist/lib/hooks.d.ts.map +1 -1
- package/dist/lib/hooks.js +21 -11
- package/dist/lib/hooks.js.map +1 -1
- package/dist/lib/prompts/nudge.txt +8 -5
- package/dist/lib/prompts/synthetic.txt +30 -28
- package/dist/lib/prompts/tool.txt +46 -63
- package/dist/lib/pruning-tool.d.ts +1 -1
- package/dist/lib/pruning-tool.d.ts.map +1 -1
- package/dist/lib/pruning-tool.js +30 -23
- package/dist/lib/pruning-tool.js.map +1 -1
- package/dist/lib/state/id-mapping.d.ts +0 -1
- package/dist/lib/state/id-mapping.d.ts.map +1 -1
- package/dist/lib/state/id-mapping.js +0 -3
- package/dist/lib/state/id-mapping.js.map +1 -1
- package/dist/lib/state/index.d.ts +3 -0
- package/dist/lib/state/index.d.ts.map +1 -1
- package/dist/lib/state/index.js.map +1 -1
- package/dist/lib/state/tool-cache.d.ts +5 -12
- package/dist/lib/state/tool-cache.d.ts.map +1 -1
- package/dist/lib/state/tool-cache.js +47 -72
- package/dist/lib/state/tool-cache.js.map +1 -1
- package/dist/lib/ui/display-utils.d.ts +12 -0
- package/dist/lib/ui/display-utils.d.ts.map +1 -1
- package/dist/lib/ui/display-utils.js +66 -0
- package/dist/lib/ui/display-utils.js.map +1 -1
- package/dist/lib/ui/notification.d.ts +5 -12
- package/dist/lib/ui/notification.d.ts.map +1 -1
- package/dist/lib/ui/notification.js +31 -138
- package/dist/lib/ui/notification.js.map +1 -1
- package/package.json +1 -1
- package/dist/lib/api-formats/prunable-list.d.ts +0 -49
- package/dist/lib/api-formats/prunable-list.d.ts.map +0 -1
- package/dist/lib/api-formats/prunable-list.js +0 -112
- package/dist/lib/api-formats/prunable-list.js.map +0 -1
- package/dist/lib/api-formats/synth-instruction.d.ts +0 -29
- package/dist/lib/api-formats/synth-instruction.d.ts.map +0 -1
- package/dist/lib/api-formats/synth-instruction.js +0 -171
- package/dist/lib/api-formats/synth-instruction.js.map +0 -1
- package/dist/lib/core/strategies/types.d.ts +0 -35
- package/dist/lib/core/strategies/types.d.ts.map +0 -1
- package/dist/lib/core/strategies/types.js +0 -6
- package/dist/lib/core/strategies/types.js.map +0 -1
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
export function createToolTracker() {
|
|
2
|
-
return { seenToolResultIds: new Set(), toolResultCount: 0, skipNextIdle: false };
|
|
3
|
-
}
|
|
4
|
-
export function resetToolTrackerCount(tracker) {
|
|
5
|
-
tracker.toolResultCount = 0;
|
|
6
|
-
}
|
|
7
|
-
/**
|
|
8
|
-
* Track new tool results in OpenAI/Anthropic messages.
|
|
9
|
-
* Increments toolResultCount only for tools not already seen and not protected.
|
|
10
|
-
* Returns the number of NEW tools found (since last call).
|
|
11
|
-
*/
|
|
12
|
-
export function trackNewToolResults(messages, tracker, protectedTools) {
|
|
13
|
-
let newCount = 0;
|
|
14
|
-
for (const m of messages) {
|
|
15
|
-
if (m.role === 'tool' && m.tool_call_id) {
|
|
16
|
-
if (!tracker.seenToolResultIds.has(m.tool_call_id)) {
|
|
17
|
-
tracker.seenToolResultIds.add(m.tool_call_id);
|
|
18
|
-
const toolName = tracker.getToolName?.(m.tool_call_id);
|
|
19
|
-
if (!toolName || !protectedTools.has(toolName)) {
|
|
20
|
-
tracker.toolResultCount++;
|
|
21
|
-
newCount++;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
else if (m.role === 'user' && Array.isArray(m.content)) {
|
|
26
|
-
for (const part of m.content) {
|
|
27
|
-
if (part.type === 'tool_result' && part.tool_use_id) {
|
|
28
|
-
if (!tracker.seenToolResultIds.has(part.tool_use_id)) {
|
|
29
|
-
tracker.seenToolResultIds.add(part.tool_use_id);
|
|
30
|
-
const toolName = tracker.getToolName?.(part.tool_use_id);
|
|
31
|
-
if (!toolName || !protectedTools.has(toolName)) {
|
|
32
|
-
tracker.toolResultCount++;
|
|
33
|
-
newCount++;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
return newCount;
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Track new tool results in Gemini contents.
|
|
44
|
-
* Uses position-based tracking since Gemini doesn't have tool call IDs.
|
|
45
|
-
* Returns the number of NEW tools found (since last call).
|
|
46
|
-
*/
|
|
47
|
-
export function trackNewToolResultsGemini(contents, tracker, protectedTools) {
|
|
48
|
-
let newCount = 0;
|
|
49
|
-
let positionCounter = 0;
|
|
50
|
-
for (const content of contents) {
|
|
51
|
-
if (!Array.isArray(content.parts))
|
|
52
|
-
continue;
|
|
53
|
-
for (const part of content.parts) {
|
|
54
|
-
if (part.functionResponse) {
|
|
55
|
-
const positionId = `gemini_pos_${positionCounter}`;
|
|
56
|
-
positionCounter++;
|
|
57
|
-
if (!tracker.seenToolResultIds.has(positionId)) {
|
|
58
|
-
tracker.seenToolResultIds.add(positionId);
|
|
59
|
-
const toolName = part.functionResponse.name;
|
|
60
|
-
if (!toolName || !protectedTools.has(toolName)) {
|
|
61
|
-
tracker.toolResultCount++;
|
|
62
|
-
newCount++;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
return newCount;
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Track new tool results in OpenAI Responses API input.
|
|
72
|
-
* Returns the number of NEW tools found (since last call).
|
|
73
|
-
*/
|
|
74
|
-
export function trackNewToolResultsResponses(input, tracker, protectedTools) {
|
|
75
|
-
let newCount = 0;
|
|
76
|
-
for (const item of input) {
|
|
77
|
-
if (item.type === 'function_call_output' && item.call_id) {
|
|
78
|
-
if (!tracker.seenToolResultIds.has(item.call_id)) {
|
|
79
|
-
tracker.seenToolResultIds.add(item.call_id);
|
|
80
|
-
const toolName = tracker.getToolName?.(item.call_id);
|
|
81
|
-
if (!toolName || !protectedTools.has(toolName)) {
|
|
82
|
-
tracker.toolResultCount++;
|
|
83
|
-
newCount++;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
return newCount;
|
|
89
|
-
}
|
|
90
|
-
function isNudgeMessage(msg, nudgeText) {
|
|
91
|
-
if (typeof msg.content === 'string') {
|
|
92
|
-
return msg.content === nudgeText;
|
|
93
|
-
}
|
|
94
|
-
return false;
|
|
95
|
-
}
|
|
96
|
-
export function injectSynth(messages, instruction, nudgeText) {
|
|
97
|
-
for (let i = messages.length - 1; i >= 0; i--) {
|
|
98
|
-
const msg = messages[i];
|
|
99
|
-
if (msg.role === 'user') {
|
|
100
|
-
// Skip nudge messages - find real user message
|
|
101
|
-
if (isNudgeMessage(msg, nudgeText))
|
|
102
|
-
continue;
|
|
103
|
-
if (typeof msg.content === 'string') {
|
|
104
|
-
if (msg.content.includes(instruction))
|
|
105
|
-
return false;
|
|
106
|
-
msg.content = msg.content + '\n\n' + instruction;
|
|
107
|
-
}
|
|
108
|
-
else if (Array.isArray(msg.content)) {
|
|
109
|
-
const alreadyInjected = msg.content.some((part) => part?.type === 'text' && typeof part.text === 'string' && part.text.includes(instruction));
|
|
110
|
-
if (alreadyInjected)
|
|
111
|
-
return false;
|
|
112
|
-
msg.content.push({ type: 'text', text: instruction });
|
|
113
|
-
}
|
|
114
|
-
return true;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
return false;
|
|
118
|
-
}
|
|
119
|
-
function isNudgeContentGemini(content, nudgeText) {
|
|
120
|
-
if (Array.isArray(content.parts) && content.parts.length === 1) {
|
|
121
|
-
const part = content.parts[0];
|
|
122
|
-
return part?.text === nudgeText;
|
|
123
|
-
}
|
|
124
|
-
return false;
|
|
125
|
-
}
|
|
126
|
-
export function injectSynthGemini(contents, instruction, nudgeText) {
|
|
127
|
-
for (let i = contents.length - 1; i >= 0; i--) {
|
|
128
|
-
const content = contents[i];
|
|
129
|
-
if (content.role === 'user' && Array.isArray(content.parts)) {
|
|
130
|
-
// Skip nudge messages - find real user message
|
|
131
|
-
if (isNudgeContentGemini(content, nudgeText))
|
|
132
|
-
continue;
|
|
133
|
-
const alreadyInjected = content.parts.some((part) => part?.text && typeof part.text === 'string' && part.text.includes(instruction));
|
|
134
|
-
if (alreadyInjected)
|
|
135
|
-
return false;
|
|
136
|
-
content.parts.push({ text: instruction });
|
|
137
|
-
return true;
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
return false;
|
|
141
|
-
}
|
|
142
|
-
function isNudgeItemResponses(item, nudgeText) {
|
|
143
|
-
if (typeof item.content === 'string') {
|
|
144
|
-
return item.content === nudgeText;
|
|
145
|
-
}
|
|
146
|
-
return false;
|
|
147
|
-
}
|
|
148
|
-
export function injectSynthResponses(input, instruction, nudgeText) {
|
|
149
|
-
for (let i = input.length - 1; i >= 0; i--) {
|
|
150
|
-
const item = input[i];
|
|
151
|
-
if (item.type === 'message' && item.role === 'user') {
|
|
152
|
-
// Skip nudge messages - find real user message
|
|
153
|
-
if (isNudgeItemResponses(item, nudgeText))
|
|
154
|
-
continue;
|
|
155
|
-
if (typeof item.content === 'string') {
|
|
156
|
-
if (item.content.includes(instruction))
|
|
157
|
-
return false;
|
|
158
|
-
item.content = item.content + '\n\n' + instruction;
|
|
159
|
-
}
|
|
160
|
-
else if (Array.isArray(item.content)) {
|
|
161
|
-
const alreadyInjected = item.content.some((part) => part?.type === 'input_text' && typeof part.text === 'string' && part.text.includes(instruction));
|
|
162
|
-
if (alreadyInjected)
|
|
163
|
-
return false;
|
|
164
|
-
item.content.push({ type: 'input_text', text: instruction });
|
|
165
|
-
}
|
|
166
|
-
return true;
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
return false;
|
|
170
|
-
}
|
|
171
|
-
//# sourceMappingURL=synth-instruction.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"synth-instruction.js","sourceRoot":"","sources":["../../../lib/api-formats/synth-instruction.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Common interface for rule-based pruning strategies.
|
|
3
|
-
* Each strategy analyzes tool metadata and returns IDs that should be pruned.
|
|
4
|
-
*/
|
|
5
|
-
export interface ToolMetadata {
|
|
6
|
-
tool: string;
|
|
7
|
-
parameters?: any;
|
|
8
|
-
}
|
|
9
|
-
export interface StrategyResult {
|
|
10
|
-
/** Tool call IDs that should be pruned */
|
|
11
|
-
prunedIds: string[];
|
|
12
|
-
/** Optional details about what was pruned and why */
|
|
13
|
-
details?: Map<string, StrategyDetail>;
|
|
14
|
-
}
|
|
15
|
-
export interface StrategyDetail {
|
|
16
|
-
toolName: string;
|
|
17
|
-
parameterKey: string;
|
|
18
|
-
reason: string;
|
|
19
|
-
/** Additional info specific to the strategy */
|
|
20
|
-
[key: string]: any;
|
|
21
|
-
}
|
|
22
|
-
export interface PruningStrategy {
|
|
23
|
-
/** Unique identifier for this strategy */
|
|
24
|
-
name: string;
|
|
25
|
-
/**
|
|
26
|
-
* Analyze tool metadata and determine which tool calls should be pruned.
|
|
27
|
-
*
|
|
28
|
-
* @param toolMetadata - Map of tool call ID to metadata (tool name + parameters)
|
|
29
|
-
* @param unprunedIds - Tool call IDs that haven't been pruned yet (chronological order)
|
|
30
|
-
* @param protectedTools - Tool names that should never be pruned
|
|
31
|
-
* @returns IDs to prune and optional details
|
|
32
|
-
*/
|
|
33
|
-
detect(toolMetadata: Map<string, ToolMetadata>, unprunedIds: string[], protectedTools: string[]): StrategyResult;
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../lib/core/strategies/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,GAAG,CAAA;CACnB;AAED,MAAM,WAAW,cAAc;IAC3B,0CAA0C;IAC1C,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,qDAAqD;IACrD,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;CACxC;AAED,MAAM,WAAW,cAAc;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,+CAA+C;IAC/C,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACrB;AAED,MAAM,WAAW,eAAe;IAC5B,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAA;IAEZ;;;;;;;OAOG;IACH,MAAM,CACF,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,EACvC,WAAW,EAAE,MAAM,EAAE,EACrB,cAAc,EAAE,MAAM,EAAE,GACzB,cAAc,CAAA;CACpB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../lib/core/strategies/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|