@tarquinen/opencode-dcp 1.3.1-beta.0 → 1.3.1-beta1
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 -17
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -25
- package/dist/index.js.map +1 -1
- package/dist/lib/commands/context.d.ts.map +1 -1
- package/dist/lib/commands/context.js +23 -36
- package/dist/lib/commands/context.js.map +1 -1
- package/dist/lib/config.d.ts +4 -9
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +28 -59
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/hooks.d.ts.map +1 -1
- package/dist/lib/hooks.js +16 -8
- package/dist/lib/hooks.js.map +1 -1
- package/dist/lib/messages/inject.d.ts +0 -7
- package/dist/lib/messages/inject.d.ts.map +1 -1
- package/dist/lib/messages/inject.js +51 -90
- package/dist/lib/messages/inject.js.map +1 -1
- package/dist/lib/messages/prune.d.ts.map +1 -1
- package/dist/lib/messages/prune.js +1 -42
- package/dist/lib/messages/prune.js.map +1 -1
- package/dist/lib/messages/utils.d.ts +0 -2
- package/dist/lib/messages/utils.d.ts.map +1 -1
- package/dist/lib/messages/utils.js +12 -21
- package/dist/lib/messages/utils.js.map +1 -1
- package/dist/lib/prompts/discard-tool-spec.d.ts +2 -0
- package/dist/lib/prompts/discard-tool-spec.d.ts.map +1 -0
- package/dist/lib/prompts/discard-tool-spec.js +41 -0
- package/dist/lib/prompts/discard-tool-spec.js.map +1 -0
- package/dist/lib/prompts/extract-tool-spec.d.ts +2 -0
- package/dist/lib/prompts/extract-tool-spec.d.ts.map +1 -0
- package/dist/lib/prompts/{distill-tool-spec.js → extract-tool-spec.js} +14 -14
- package/dist/lib/prompts/extract-tool-spec.js.map +1 -0
- package/dist/lib/prompts/index.d.ts +0 -7
- package/dist/lib/prompts/index.d.ts.map +1 -1
- package/dist/lib/prompts/index.js +18 -28
- package/dist/lib/prompts/index.js.map +1 -1
- package/dist/lib/prompts/nudge/both.d.ts +2 -0
- package/dist/lib/prompts/nudge/both.d.ts.map +1 -0
- package/dist/lib/prompts/nudge/both.js +11 -0
- package/dist/lib/prompts/nudge/both.js.map +1 -0
- package/dist/lib/prompts/nudge/discard.d.ts +2 -0
- package/dist/lib/prompts/nudge/discard.d.ts.map +1 -0
- package/dist/lib/prompts/nudge/discard.js +10 -0
- package/dist/lib/prompts/nudge/discard.js.map +1 -0
- package/dist/lib/prompts/nudge/extract.d.ts +2 -0
- package/dist/lib/prompts/nudge/extract.d.ts.map +1 -0
- package/dist/lib/prompts/nudge/extract.js +10 -0
- package/dist/lib/prompts/nudge/extract.js.map +1 -0
- package/dist/lib/prompts/system/both.d.ts +2 -0
- package/dist/lib/prompts/system/both.d.ts.map +1 -0
- package/dist/lib/prompts/system/both.js +61 -0
- package/dist/lib/prompts/system/both.js.map +1 -0
- package/dist/lib/prompts/system/discard.d.ts +2 -0
- package/dist/lib/prompts/system/discard.d.ts.map +1 -0
- package/dist/lib/prompts/system/discard.js +52 -0
- package/dist/lib/prompts/system/discard.js.map +1 -0
- package/dist/lib/prompts/system/extract.d.ts +2 -0
- package/dist/lib/prompts/system/extract.d.ts.map +1 -0
- package/dist/lib/prompts/system/extract.js +52 -0
- package/dist/lib/prompts/system/extract.js.map +1 -0
- package/dist/lib/shared-utils.d.ts +1 -1
- package/dist/lib/shared-utils.d.ts.map +1 -1
- package/dist/lib/shared-utils.js +3 -10
- package/dist/lib/shared-utils.js.map +1 -1
- package/dist/lib/state/persistence.d.ts +1 -2
- package/dist/lib/state/persistence.d.ts.map +1 -1
- package/dist/lib/state/persistence.js +0 -1
- package/dist/lib/state/persistence.js.map +1 -1
- package/dist/lib/state/state.d.ts +1 -0
- package/dist/lib/state/state.d.ts.map +1 -1
- package/dist/lib/state/state.js +29 -10
- package/dist/lib/state/state.js.map +1 -1
- package/dist/lib/state/tool-cache.d.ts.map +1 -1
- package/dist/lib/state/tool-cache.js +3 -2
- package/dist/lib/state/tool-cache.js.map +1 -1
- package/dist/lib/state/types.d.ts +0 -6
- package/dist/lib/state/types.d.ts.map +1 -1
- package/dist/lib/state/utils.d.ts +0 -4
- package/dist/lib/state/utils.d.ts.map +1 -1
- package/dist/lib/state/utils.js +0 -33
- package/dist/lib/state/utils.js.map +1 -1
- package/dist/lib/strategies/index.d.ts +1 -1
- package/dist/lib/strategies/index.d.ts.map +1 -1
- package/dist/lib/strategies/index.js +1 -1
- package/dist/lib/strategies/index.js.map +1 -1
- package/dist/lib/{tools/types.d.ts → strategies/tools.d.ts} +4 -1
- package/dist/lib/strategies/tools.d.ts.map +1 -0
- package/dist/lib/strategies/tools.js +135 -0
- package/dist/lib/strategies/tools.js.map +1 -0
- package/dist/lib/strategies/utils.d.ts +0 -1
- package/dist/lib/strategies/utils.d.ts.map +1 -1
- package/dist/lib/strategies/utils.js +4 -5
- package/dist/lib/strategies/utils.js.map +1 -1
- package/dist/lib/ui/notification.d.ts +0 -1
- package/dist/lib/ui/notification.d.ts.map +1 -1
- package/dist/lib/ui/notification.js +4 -32
- package/dist/lib/ui/notification.js.map +1 -1
- package/dist/lib/ui/utils.d.ts +0 -1
- package/dist/lib/ui/utils.d.ts.map +1 -1
- package/dist/lib/ui/utils.js +0 -16
- package/dist/lib/ui/utils.js.map +1 -1
- package/package.json +4 -7
- package/dist/lib/auth.d.ts +0 -4
- package/dist/lib/auth.d.ts.map +0 -1
- package/dist/lib/auth.js +0 -32
- package/dist/lib/auth.js.map +0 -1
- package/dist/lib/prompts/compress-tool-spec.d.ts +0 -2
- package/dist/lib/prompts/compress-tool-spec.d.ts.map +0 -1
- package/dist/lib/prompts/compress-tool-spec.js +0 -58
- package/dist/lib/prompts/compress-tool-spec.js.map +0 -1
- package/dist/lib/prompts/distill-tool-spec.d.ts +0 -2
- package/dist/lib/prompts/distill-tool-spec.d.ts.map +0 -1
- package/dist/lib/prompts/distill-tool-spec.js.map +0 -1
- package/dist/lib/prompts/prune-tool-spec.d.ts +0 -2
- package/dist/lib/prompts/prune-tool-spec.d.ts.map +0 -1
- package/dist/lib/prompts/prune-tool-spec.js +0 -40
- package/dist/lib/prompts/prune-tool-spec.js.map +0 -1
- package/dist/lib/tools/compress.d.ts +0 -4
- package/dist/lib/tools/compress.d.ts.map +0 -1
- package/dist/lib/tools/compress.js +0 -81
- package/dist/lib/tools/compress.js.map +0 -1
- package/dist/lib/tools/distill.d.ts +0 -4
- package/dist/lib/tools/distill.d.ts.map +0 -1
- package/dist/lib/tools/distill.js +0 -35
- package/dist/lib/tools/distill.js.map +0 -1
- package/dist/lib/tools/index.d.ts +0 -5
- package/dist/lib/tools/index.d.ts.map +0 -1
- package/dist/lib/tools/index.js +0 -4
- package/dist/lib/tools/index.js.map +0 -1
- package/dist/lib/tools/prune-shared.d.ts +0 -6
- package/dist/lib/tools/prune-shared.d.ts.map +0 -1
- package/dist/lib/tools/prune-shared.js +0 -107
- package/dist/lib/tools/prune-shared.js.map +0 -1
- package/dist/lib/tools/prune.d.ts +0 -4
- package/dist/lib/tools/prune.d.ts.map +0 -1
- package/dist/lib/tools/prune.js +0 -21
- package/dist/lib/tools/prune.js.map +0 -1
- package/dist/lib/tools/types.d.ts.map +0 -1
- package/dist/lib/tools/types.js +0 -2
- package/dist/lib/tools/types.js.map +0 -1
- package/dist/lib/tools/utils.d.ts +0 -26
- package/dist/lib/tools/utils.d.ts.map +0 -1
- package/dist/lib/tools/utils.js +0 -121
- package/dist/lib/tools/utils.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prune.js","sourceRoot":"","sources":["../../../lib/tools/prune.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAE1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAEtD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAEvC,MAAM,sBAAsB,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAA;AAE5D,MAAM,UAAU,eAAe,CAAC,GAAqB;IACjD,OAAO,IAAI,CAAC;QACR,WAAW,EAAE,sBAAsB;QACnC,IAAI,EAAE;YACF,GAAG,EAAE,IAAI,CAAC,MAAM;iBACX,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;iBAC3B,GAAG,CAAC,CAAC,CAAC;iBACN,QAAQ,CAAC,gEAAgE,CAAC;SAClF;QACD,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO;YACvB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAA;YAC3B,MAAM,MAAM,GAAG,OAAO,CAAA;YAEtB,OAAO,qBAAqB,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QAC3E,CAAC;KACJ,CAAC,CAAA;AACN,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../lib/tools/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAEvC,MAAM,WAAW,gBAAgB;IAC7B,MAAM,EAAE,GAAG,CAAA;IACX,KAAK,EAAE,YAAY,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,YAAY,CAAA;IACpB,gBAAgB,EAAE,MAAM,CAAA;CAC3B"}
|
package/dist/lib/tools/types.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../lib/tools/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import type { WithParts, CompressSummary } from "../state";
|
|
2
|
-
import type { Logger } from "../logger";
|
|
3
|
-
/**
|
|
4
|
-
* Searches messages for a string and returns the message ID where it's found.
|
|
5
|
-
* Searches in text parts, tool outputs, tool inputs, and other textual content.
|
|
6
|
-
* Also searches through existing compress summaries to enable chained compression.
|
|
7
|
-
* Throws an error if the string is not found or found more than once.
|
|
8
|
-
*/
|
|
9
|
-
export declare function findStringInMessages(messages: WithParts[], searchString: string, logger: Logger, compressSummaries: CompressSummary[] | undefined, stringType: "startString" | "endString"): {
|
|
10
|
-
messageId: string;
|
|
11
|
-
messageIndex: number;
|
|
12
|
-
};
|
|
13
|
-
/**
|
|
14
|
-
* Collects all tool callIDs from messages between start and end indices (inclusive).
|
|
15
|
-
*/
|
|
16
|
-
export declare function collectToolIdsInRange(messages: WithParts[], startIndex: number, endIndex: number): string[];
|
|
17
|
-
/**
|
|
18
|
-
* Collects all message IDs from messages between start and end indices (inclusive).
|
|
19
|
-
*/
|
|
20
|
-
export declare function collectMessageIdsInRange(messages: WithParts[], startIndex: number, endIndex: number): string[];
|
|
21
|
-
/**
|
|
22
|
-
* Collects all textual content (text parts, tool inputs, and tool outputs)
|
|
23
|
-
* from a range of messages. Used for token estimation.
|
|
24
|
-
*/
|
|
25
|
-
export declare function collectContentInRange(messages: WithParts[], startIndex: number, endIndex: number): string[];
|
|
26
|
-
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../lib/tools/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAEvC;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAChC,QAAQ,EAAE,SAAS,EAAE,EACrB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,eAAe,EAAE,YAAK,EACzC,UAAU,EAAE,aAAa,GAAG,WAAW,GACxC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CA2D7C;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACjC,QAAQ,EAAE,SAAS,EAAE,EACrB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACjB,MAAM,EAAE,CAiBV;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACpC,QAAQ,EAAE,SAAS,EAAE,EACrB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACjB,MAAM,EAAE,CAWV;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACjC,QAAQ,EAAE,SAAS,EAAE,EACrB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACjB,MAAM,EAAE,CAkCV"}
|
package/dist/lib/tools/utils.js
DELETED
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Searches messages for a string and returns the message ID where it's found.
|
|
3
|
-
* Searches in text parts, tool outputs, tool inputs, and other textual content.
|
|
4
|
-
* Also searches through existing compress summaries to enable chained compression.
|
|
5
|
-
* Throws an error if the string is not found or found more than once.
|
|
6
|
-
*/
|
|
7
|
-
export function findStringInMessages(messages, searchString, logger, compressSummaries = [], stringType) {
|
|
8
|
-
const matches = [];
|
|
9
|
-
// First, search through existing compress summaries
|
|
10
|
-
// This allows referencing text from previous compress operations
|
|
11
|
-
for (const summary of compressSummaries) {
|
|
12
|
-
if (summary.summary.includes(searchString)) {
|
|
13
|
-
const anchorIndex = messages.findIndex((m) => m.info.id === summary.anchorMessageId);
|
|
14
|
-
if (anchorIndex !== -1) {
|
|
15
|
-
matches.push({
|
|
16
|
-
messageId: summary.anchorMessageId,
|
|
17
|
-
messageIndex: anchorIndex,
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
// Then search through raw messages
|
|
23
|
-
for (let i = 0; i < messages.length; i++) {
|
|
24
|
-
const msg = messages[i];
|
|
25
|
-
const parts = Array.isArray(msg.parts) ? msg.parts : [];
|
|
26
|
-
for (const part of parts) {
|
|
27
|
-
let content = "";
|
|
28
|
-
if (part.type === "text" && typeof part.text === "string") {
|
|
29
|
-
content = part.text;
|
|
30
|
-
}
|
|
31
|
-
else if (part.type === "tool" && part.state?.status === "completed") {
|
|
32
|
-
if (typeof part.state.output === "string") {
|
|
33
|
-
content = part.state.output;
|
|
34
|
-
}
|
|
35
|
-
if (part.state.input) {
|
|
36
|
-
const inputStr = typeof part.state.input === "string"
|
|
37
|
-
? part.state.input
|
|
38
|
-
: JSON.stringify(part.state.input);
|
|
39
|
-
content += " " + inputStr;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
if (content.includes(searchString)) {
|
|
43
|
-
matches.push({ messageId: msg.info.id, messageIndex: i });
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
if (matches.length === 0) {
|
|
48
|
-
throw new Error(`${stringType} not found in conversation. Make sure the string exists and is spelled exactly as it appears.`);
|
|
49
|
-
}
|
|
50
|
-
if (matches.length > 1) {
|
|
51
|
-
throw new Error(`Found multiple matches for ${stringType}. Provide more surrounding context to uniquely identify the intended match.`);
|
|
52
|
-
}
|
|
53
|
-
return matches[0];
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Collects all tool callIDs from messages between start and end indices (inclusive).
|
|
57
|
-
*/
|
|
58
|
-
export function collectToolIdsInRange(messages, startIndex, endIndex) {
|
|
59
|
-
const toolIds = [];
|
|
60
|
-
for (let i = startIndex; i <= endIndex; i++) {
|
|
61
|
-
const msg = messages[i];
|
|
62
|
-
const parts = Array.isArray(msg.parts) ? msg.parts : [];
|
|
63
|
-
for (const part of parts) {
|
|
64
|
-
if (part.type === "tool" && part.callID) {
|
|
65
|
-
if (!toolIds.includes(part.callID)) {
|
|
66
|
-
toolIds.push(part.callID);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
return toolIds;
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Collects all message IDs from messages between start and end indices (inclusive).
|
|
75
|
-
*/
|
|
76
|
-
export function collectMessageIdsInRange(messages, startIndex, endIndex) {
|
|
77
|
-
const messageIds = [];
|
|
78
|
-
for (let i = startIndex; i <= endIndex; i++) {
|
|
79
|
-
const msgId = messages[i].info.id;
|
|
80
|
-
if (!messageIds.includes(msgId)) {
|
|
81
|
-
messageIds.push(msgId);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
return messageIds;
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Collects all textual content (text parts, tool inputs, and tool outputs)
|
|
88
|
-
* from a range of messages. Used for token estimation.
|
|
89
|
-
*/
|
|
90
|
-
export function collectContentInRange(messages, startIndex, endIndex) {
|
|
91
|
-
const contents = [];
|
|
92
|
-
for (let i = startIndex; i <= endIndex; i++) {
|
|
93
|
-
const msg = messages[i];
|
|
94
|
-
const parts = Array.isArray(msg.parts) ? msg.parts : [];
|
|
95
|
-
for (const part of parts) {
|
|
96
|
-
if (part.type === "text") {
|
|
97
|
-
contents.push(part.text);
|
|
98
|
-
}
|
|
99
|
-
else if (part.type === "tool") {
|
|
100
|
-
const toolState = part.state;
|
|
101
|
-
if (toolState?.input) {
|
|
102
|
-
contents.push(typeof toolState.input === "string"
|
|
103
|
-
? toolState.input
|
|
104
|
-
: JSON.stringify(toolState.input));
|
|
105
|
-
}
|
|
106
|
-
if (toolState?.status === "completed" && toolState?.output) {
|
|
107
|
-
contents.push(typeof toolState.output === "string"
|
|
108
|
-
? toolState.output
|
|
109
|
-
: JSON.stringify(toolState.output));
|
|
110
|
-
}
|
|
111
|
-
else if (toolState?.status === "error" && toolState?.error) {
|
|
112
|
-
contents.push(typeof toolState.error === "string"
|
|
113
|
-
? toolState.error
|
|
114
|
-
: JSON.stringify(toolState.error));
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
return contents;
|
|
120
|
-
}
|
|
121
|
-
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../lib/tools/utils.ts"],"names":[],"mappings":"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"}
|