@tarquinen/opencode-dcp 1.3.0-beta.1 → 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.
Files changed (181) hide show
  1. package/README.md +1 -9
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +1 -17
  4. package/dist/index.js.map +1 -1
  5. package/dist/lib/config.d.ts +0 -5
  6. package/dist/lib/config.d.ts.map +1 -1
  7. package/dist/lib/config.js +0 -30
  8. package/dist/lib/config.js.map +1 -1
  9. package/dist/lib/hooks.d.ts.map +1 -1
  10. package/dist/lib/hooks.js +2 -15
  11. package/dist/lib/hooks.js.map +1 -1
  12. package/dist/lib/messages/inject.d.ts.map +1 -1
  13. package/dist/lib/messages/inject.js +40 -74
  14. package/dist/lib/messages/inject.js.map +1 -1
  15. package/dist/lib/messages/prune.d.ts.map +1 -1
  16. package/dist/lib/messages/prune.js +1 -42
  17. package/dist/lib/messages/prune.js.map +1 -1
  18. package/dist/lib/messages/utils.d.ts +21 -3
  19. package/dist/lib/messages/utils.d.ts.map +1 -1
  20. package/dist/lib/messages/utils.js +52 -27
  21. package/dist/lib/messages/utils.js.map +1 -1
  22. package/dist/lib/prompts/discard-tool-spec.d.ts +1 -1
  23. package/dist/lib/prompts/discard-tool-spec.d.ts.map +1 -1
  24. package/dist/lib/prompts/discard-tool-spec.js +40 -17
  25. package/dist/lib/prompts/discard-tool-spec.js.map +1 -1
  26. package/dist/lib/prompts/extract-tool-spec.d.ts +1 -1
  27. package/dist/lib/prompts/extract-tool-spec.d.ts.map +1 -1
  28. package/dist/lib/prompts/extract-tool-spec.js +47 -22
  29. package/dist/lib/prompts/extract-tool-spec.js.map +1 -1
  30. package/dist/lib/prompts/index.d.ts.map +1 -1
  31. package/dist/lib/prompts/index.js +4 -22
  32. package/dist/lib/prompts/index.js.map +1 -1
  33. package/dist/lib/prompts/nudge/both.d.ts +2 -0
  34. package/dist/lib/prompts/nudge/both.d.ts.map +1 -0
  35. package/dist/lib/prompts/nudge/both.js +11 -0
  36. package/dist/lib/prompts/nudge/both.js.map +1 -0
  37. package/dist/lib/prompts/nudge/discard.d.ts +1 -1
  38. package/dist/lib/prompts/nudge/discard.d.ts.map +1 -1
  39. package/dist/lib/prompts/nudge/discard.js +7 -5
  40. package/dist/lib/prompts/nudge/discard.js.map +1 -1
  41. package/dist/lib/prompts/nudge/extract.d.ts +1 -1
  42. package/dist/lib/prompts/nudge/extract.d.ts.map +1 -1
  43. package/dist/lib/prompts/nudge/extract.js +7 -5
  44. package/dist/lib/prompts/nudge/extract.js.map +1 -1
  45. package/dist/lib/prompts/nudge.generated.d.ts +2 -0
  46. package/dist/lib/prompts/nudge.generated.d.ts.map +1 -0
  47. package/dist/lib/prompts/nudge.generated.js +17 -0
  48. package/dist/lib/prompts/nudge.generated.js.map +1 -0
  49. package/dist/lib/prompts/system/both.d.ts +2 -0
  50. package/dist/lib/prompts/system/both.d.ts.map +1 -0
  51. package/dist/lib/prompts/system/both.js +61 -0
  52. package/dist/lib/prompts/system/both.js.map +1 -0
  53. package/dist/lib/prompts/system/discard.d.ts +1 -1
  54. package/dist/lib/prompts/system/discard.d.ts.map +1 -1
  55. package/dist/lib/prompts/system/discard.js +43 -18
  56. package/dist/lib/prompts/system/discard.js.map +1 -1
  57. package/dist/lib/prompts/system/extract.d.ts +1 -1
  58. package/dist/lib/prompts/system/extract.d.ts.map +1 -1
  59. package/dist/lib/prompts/system/extract.js +43 -18
  60. package/dist/lib/prompts/system/extract.js.map +1 -1
  61. package/dist/lib/prompts/system.generated.d.ts +2 -0
  62. package/dist/lib/prompts/system.generated.d.ts.map +1 -0
  63. package/dist/lib/prompts/system.generated.js +90 -0
  64. package/dist/lib/prompts/system.generated.js.map +1 -0
  65. package/dist/lib/shared-utils.d.ts +1 -1
  66. package/dist/lib/shared-utils.d.ts.map +1 -1
  67. package/dist/lib/shared-utils.js +3 -10
  68. package/dist/lib/shared-utils.js.map +1 -1
  69. package/dist/lib/state/persistence.d.ts +1 -2
  70. package/dist/lib/state/persistence.d.ts.map +1 -1
  71. package/dist/lib/state/persistence.js +0 -1
  72. package/dist/lib/state/persistence.js.map +1 -1
  73. package/dist/lib/state/state.d.ts +1 -0
  74. package/dist/lib/state/state.d.ts.map +1 -1
  75. package/dist/lib/state/state.js +29 -10
  76. package/dist/lib/state/state.js.map +1 -1
  77. package/dist/lib/state/tool-cache.d.ts.map +1 -1
  78. package/dist/lib/state/tool-cache.js +2 -4
  79. package/dist/lib/state/tool-cache.js.map +1 -1
  80. package/dist/lib/state/types.d.ts +0 -6
  81. package/dist/lib/state/types.d.ts.map +1 -1
  82. package/dist/lib/state/utils.d.ts +0 -4
  83. package/dist/lib/state/utils.d.ts.map +1 -1
  84. package/dist/lib/state/utils.js +0 -33
  85. package/dist/lib/state/utils.js.map +1 -1
  86. package/dist/lib/strategies/index.d.ts +1 -1
  87. package/dist/lib/strategies/index.d.ts.map +1 -1
  88. package/dist/lib/strategies/index.js +1 -1
  89. package/dist/lib/strategies/index.js.map +1 -1
  90. package/dist/lib/{tools/types.d.ts → strategies/tools.d.ts} +4 -1
  91. package/dist/lib/strategies/tools.d.ts.map +1 -0
  92. package/dist/lib/strategies/tools.js +135 -0
  93. package/dist/lib/strategies/tools.js.map +1 -0
  94. package/dist/lib/strategies/utils.d.ts +0 -1
  95. package/dist/lib/strategies/utils.d.ts.map +1 -1
  96. package/dist/lib/strategies/utils.js +4 -5
  97. package/dist/lib/strategies/utils.js.map +1 -1
  98. package/dist/lib/ui/notification.d.ts +0 -1
  99. package/dist/lib/ui/notification.d.ts.map +1 -1
  100. package/dist/lib/ui/notification.js +1 -29
  101. package/dist/lib/ui/notification.js.map +1 -1
  102. package/dist/lib/ui/utils.d.ts +0 -1
  103. package/dist/lib/ui/utils.d.ts.map +1 -1
  104. package/dist/lib/ui/utils.js +0 -16
  105. package/dist/lib/ui/utils.js.map +1 -1
  106. package/package.json +1 -2
  107. package/dist/lib/auth.d.ts +0 -4
  108. package/dist/lib/auth.d.ts.map +0 -1
  109. package/dist/lib/auth.js +0 -32
  110. package/dist/lib/auth.js.map +0 -1
  111. package/dist/lib/prompts/nudge/all.d.ts +0 -2
  112. package/dist/lib/prompts/nudge/all.d.ts.map +0 -1
  113. package/dist/lib/prompts/nudge/all.js +0 -9
  114. package/dist/lib/prompts/nudge/all.js.map +0 -1
  115. package/dist/lib/prompts/nudge/discard-extract.d.ts +0 -2
  116. package/dist/lib/prompts/nudge/discard-extract.d.ts.map +0 -1
  117. package/dist/lib/prompts/nudge/discard-extract.js +0 -8
  118. package/dist/lib/prompts/nudge/discard-extract.js.map +0 -1
  119. package/dist/lib/prompts/nudge/discard-squash.d.ts +0 -2
  120. package/dist/lib/prompts/nudge/discard-squash.d.ts.map +0 -1
  121. package/dist/lib/prompts/nudge/discard-squash.js +0 -8
  122. package/dist/lib/prompts/nudge/discard-squash.js.map +0 -1
  123. package/dist/lib/prompts/nudge/extract-squash.d.ts +0 -2
  124. package/dist/lib/prompts/nudge/extract-squash.d.ts.map +0 -1
  125. package/dist/lib/prompts/nudge/extract-squash.js +0 -8
  126. package/dist/lib/prompts/nudge/extract-squash.js.map +0 -1
  127. package/dist/lib/prompts/nudge/squash.d.ts +0 -2
  128. package/dist/lib/prompts/nudge/squash.d.ts.map +0 -1
  129. package/dist/lib/prompts/nudge/squash.js +0 -8
  130. package/dist/lib/prompts/nudge/squash.js.map +0 -1
  131. package/dist/lib/prompts/squash-tool-spec.d.ts +0 -2
  132. package/dist/lib/prompts/squash-tool-spec.d.ts.map +0 -1
  133. package/dist/lib/prompts/squash-tool-spec.js +0 -33
  134. package/dist/lib/prompts/squash-tool-spec.js.map +0 -1
  135. package/dist/lib/prompts/system/all.d.ts +0 -2
  136. package/dist/lib/prompts/system/all.d.ts.map +0 -1
  137. package/dist/lib/prompts/system/all.js +0 -26
  138. package/dist/lib/prompts/system/all.js.map +0 -1
  139. package/dist/lib/prompts/system/discard-extract.d.ts +0 -2
  140. package/dist/lib/prompts/system/discard-extract.d.ts.map +0 -1
  141. package/dist/lib/prompts/system/discard-extract.js +0 -26
  142. package/dist/lib/prompts/system/discard-extract.js.map +0 -1
  143. package/dist/lib/prompts/system/discard-squash.d.ts +0 -2
  144. package/dist/lib/prompts/system/discard-squash.d.ts.map +0 -1
  145. package/dist/lib/prompts/system/discard-squash.js +0 -25
  146. package/dist/lib/prompts/system/discard-squash.js.map +0 -1
  147. package/dist/lib/prompts/system/extract-squash.d.ts +0 -2
  148. package/dist/lib/prompts/system/extract-squash.d.ts.map +0 -1
  149. package/dist/lib/prompts/system/extract-squash.js +0 -25
  150. package/dist/lib/prompts/system/extract-squash.js.map +0 -1
  151. package/dist/lib/prompts/system/squash.d.ts +0 -2
  152. package/dist/lib/prompts/system/squash.d.ts.map +0 -1
  153. package/dist/lib/prompts/system/squash.js +0 -27
  154. package/dist/lib/prompts/system/squash.js.map +0 -1
  155. package/dist/lib/tools/discard.d.ts +0 -4
  156. package/dist/lib/tools/discard.d.ts.map +0 -1
  157. package/dist/lib/tools/discard.js +0 -21
  158. package/dist/lib/tools/discard.js.map +0 -1
  159. package/dist/lib/tools/extract.d.ts +0 -4
  160. package/dist/lib/tools/extract.d.ts.map +0 -1
  161. package/dist/lib/tools/extract.js +0 -30
  162. package/dist/lib/tools/extract.js.map +0 -1
  163. package/dist/lib/tools/index.d.ts +0 -5
  164. package/dist/lib/tools/index.d.ts.map +0 -1
  165. package/dist/lib/tools/index.js +0 -4
  166. package/dist/lib/tools/index.js.map +0 -1
  167. package/dist/lib/tools/prune-shared.d.ts +0 -6
  168. package/dist/lib/tools/prune-shared.d.ts.map +0 -1
  169. package/dist/lib/tools/prune-shared.js +0 -107
  170. package/dist/lib/tools/prune-shared.js.map +0 -1
  171. package/dist/lib/tools/squash.d.ts +0 -4
  172. package/dist/lib/tools/squash.d.ts.map +0 -1
  173. package/dist/lib/tools/squash.js +0 -81
  174. package/dist/lib/tools/squash.js.map +0 -1
  175. package/dist/lib/tools/types.d.ts.map +0 -1
  176. package/dist/lib/tools/types.js +0 -2
  177. package/dist/lib/tools/types.js.map +0 -1
  178. package/dist/lib/tools/utils.d.ts +0 -26
  179. package/dist/lib/tools/utils.d.ts.map +0 -1
  180. package/dist/lib/tools/utils.js +0 -121
  181. package/dist/lib/tools/utils.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"prune-shared.js","sourceRoot":"","sources":["../../../lib/tools/prune-shared.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- import { tool } from "@opencode-ai/plugin";
2
- import type { PruneToolContext } from "./types";
3
- export declare function createSquashTool(ctx: PruneToolContext): ReturnType<typeof tool>;
4
- //# sourceMappingURL=squash.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"squash.d.ts","sourceRoot":"","sources":["../../../lib/tools/squash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAE1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAe/C,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,gBAAgB,GAAG,UAAU,CAAC,OAAO,IAAI,CAAC,CAuI/E"}
@@ -1,81 +0,0 @@
1
- import { tool } from "@opencode-ai/plugin";
2
- import { ensureSessionInitialized } from "../state";
3
- import { saveSessionState } from "../state/persistence";
4
- import { loadPrompt } from "../prompts";
5
- import { estimateTokensBatch, getCurrentParams } from "../strategies/utils";
6
- import { collectContentInRange, findStringInMessages, collectToolIdsInRange, collectMessageIdsInRange, } from "./utils";
7
- import { sendSquashNotification } from "../ui/notification";
8
- const SQUASH_TOOL_DESCRIPTION = loadPrompt("squash-tool-spec");
9
- export function createSquashTool(ctx) {
10
- return tool({
11
- description: SQUASH_TOOL_DESCRIPTION,
12
- args: {
13
- input: tool.schema
14
- .array(tool.schema.string())
15
- .length(4)
16
- .describe("[startString, endString, topic, summary] - 4 required strings: (1) startString: unique text from conversation marking range start, (2) endString: unique text marking range end, (3) topic: short 3-5 word label for UI, (4) summary: comprehensive text replacing all squashed content"),
17
- },
18
- async execute(args, toolCtx) {
19
- const { client, state, logger } = ctx;
20
- const sessionId = toolCtx.sessionID;
21
- const [startString, endString, topic, summary] = args.input;
22
- logger.info("Squash tool invoked");
23
- // logger.info(
24
- // JSON.stringify({
25
- // startString: startString?.substring(0, 50) + "...",
26
- // endString: endString?.substring(0, 50) + "...",
27
- // topic: topic,
28
- // summaryLength: summary?.length,
29
- // }),
30
- // )
31
- const messagesResponse = await client.session.messages({
32
- path: { id: sessionId },
33
- });
34
- const messages = messagesResponse.data || messagesResponse;
35
- await ensureSessionInitialized(client, state, sessionId, logger, messages);
36
- const startResult = findStringInMessages(messages, startString, logger, state.squashSummaries);
37
- const endResult = findStringInMessages(messages, endString, logger, state.squashSummaries);
38
- if (startResult.messageIndex > endResult.messageIndex) {
39
- throw new Error(`startString appears after endString in the conversation. Start must come before end.`);
40
- }
41
- const containedToolIds = collectToolIdsInRange(messages, startResult.messageIndex, endResult.messageIndex);
42
- const containedMessageIds = collectMessageIdsInRange(messages, startResult.messageIndex, endResult.messageIndex);
43
- state.prune.toolIds.push(...containedToolIds);
44
- state.prune.messageIds.push(...containedMessageIds);
45
- // Remove any existing summaries whose anchors are now inside this range
46
- // This prevents duplicate injections when a larger squash subsumes a smaller one
47
- const removedSummaries = state.squashSummaries.filter((s) => containedMessageIds.includes(s.anchorMessageId));
48
- if (removedSummaries.length > 0) {
49
- // logger.info("Removing subsumed squash summaries", {
50
- // count: removedSummaries.length,
51
- // anchorIds: removedSummaries.map((s) => s.anchorMessageId),
52
- // })
53
- state.squashSummaries = state.squashSummaries.filter((s) => !containedMessageIds.includes(s.anchorMessageId));
54
- }
55
- const squashSummary = {
56
- anchorMessageId: startResult.messageId,
57
- summary: summary,
58
- };
59
- state.squashSummaries.push(squashSummary);
60
- const contentsToTokenize = collectContentInRange(messages, startResult.messageIndex, endResult.messageIndex);
61
- const estimatedSquashedTokens = estimateTokensBatch(contentsToTokenize);
62
- state.stats.pruneTokenCounter += estimatedSquashedTokens;
63
- const currentParams = getCurrentParams(state, messages, logger);
64
- await sendSquashNotification(client, logger, ctx.config, state, sessionId, containedToolIds, containedMessageIds, topic, summary, startResult, endResult, messages.length, currentParams);
65
- state.stats.totalPruneTokens += state.stats.pruneTokenCounter;
66
- state.stats.pruneTokenCounter = 0;
67
- state.nudgeCounter = 0;
68
- // logger.info("Squash range created", {
69
- // startMessageId: startResult.messageId,
70
- // endMessageId: endResult.messageId,
71
- // toolIdsRemoved: containedToolIds.length,
72
- // messagesInRange: containedMessageIds.length,
73
- // estimatedTokens: estimatedSquashedTokens,
74
- // })
75
- saveSessionState(state, logger).catch((err) => logger.error("Failed to persist state", { error: err.message }));
76
- const messagesSquashed = endResult.messageIndex - startResult.messageIndex + 1;
77
- return `Squashed ${messagesSquashed} messages (${containedToolIds.length} tool calls) into summary. The content will be replaced with your summary.`;
78
- },
79
- });
80
- }
81
- //# sourceMappingURL=squash.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"squash.js","sourceRoot":"","sources":["../../../lib/tools/squash.ts"],"names":[],"mappings":"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"}
@@ -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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -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, SquashSummary } 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 squash summaries to enable chained squashing.
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, squashSummaries?: SquashSummary[]): {
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,aAAa,EAAE,MAAM,UAAU,CAAA;AACxD,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,eAAe,GAAE,aAAa,EAAO,GACtC;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"}
@@ -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 squash summaries to enable chained squashing.
5
- * Throws an error if the string is not found or found more than once.
6
- */
7
- export function findStringInMessages(messages, searchString, logger, squashSummaries = []) {
8
- const matches = [];
9
- // First, search through existing squash summaries
10
- // This allows referencing text from previous squash operations
11
- for (const summary of squashSummaries) {
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(`String not found in conversation. Make sure the string exists in the conversation.`);
49
- }
50
- if (matches.length > 1) {
51
- throw new Error(`String found in ${matches.length} messages. Please use a more unique string to identify the range boundary.`);
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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"}