@tarquinen/opencode-dcp 1.1.2-beta.0 → 1.1.3
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 +24 -24
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -19
- package/dist/index.js.map +1 -1
- package/dist/lib/config.d.ts +6 -8
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +60 -76
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/hooks.d.ts +0 -3
- package/dist/lib/hooks.d.ts.map +1 -1
- package/dist/lib/hooks.js +3 -25
- package/dist/lib/hooks.js.map +1 -1
- package/dist/lib/messages/index.d.ts +2 -1
- package/dist/lib/messages/index.d.ts.map +1 -1
- package/dist/lib/messages/index.js +2 -1
- package/dist/lib/messages/index.js.map +1 -1
- package/dist/lib/messages/inject.d.ts +5 -0
- package/dist/lib/messages/inject.d.ts.map +1 -0
- package/dist/lib/messages/inject.js +99 -0
- package/dist/lib/messages/inject.js.map +1 -0
- package/dist/lib/messages/prune.d.ts +0 -1
- package/dist/lib/messages/prune.d.ts.map +1 -1
- package/dist/lib/messages/prune.js +38 -117
- package/dist/lib/messages/prune.js.map +1 -1
- package/dist/lib/messages/utils.d.ts +0 -1
- package/dist/lib/messages/utils.d.ts.map +1 -1
- package/dist/lib/messages/utils.js +27 -27
- package/dist/lib/messages/utils.js.map +1 -1
- package/dist/lib/prompts/index.d.ts +2 -0
- package/dist/lib/prompts/index.d.ts.map +1 -0
- package/dist/lib/prompts/index.js +13 -0
- package/dist/lib/prompts/index.js.map +1 -0
- package/dist/lib/shared-utils.d.ts +0 -1
- package/dist/lib/shared-utils.d.ts.map +1 -1
- package/dist/lib/shared-utils.js +0 -9
- package/dist/lib/shared-utils.js.map +1 -1
- package/dist/lib/state/state.js +2 -2
- package/dist/lib/state/state.js.map +1 -1
- package/dist/lib/state/types.d.ts +1 -1
- package/dist/lib/state/types.d.ts.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/strategies/purge-errors.d.ts +13 -0
- package/dist/lib/strategies/purge-errors.d.ts.map +1 -0
- package/dist/lib/strategies/purge-errors.js +54 -0
- package/dist/lib/strategies/purge-errors.js.map +1 -0
- package/dist/lib/strategies/tools.d.ts.map +1 -1
- package/dist/lib/strategies/tools.js +4 -7
- package/dist/lib/strategies/tools.js.map +1 -1
- package/dist/lib/ui/notification.d.ts +2 -3
- package/dist/lib/ui/notification.d.ts.map +1 -1
- package/dist/lib/ui/notification.js +13 -36
- package/dist/lib/ui/notification.js.map +1 -1
- package/dist/lib/ui/utils.d.ts +2 -0
- package/dist/lib/ui/utils.d.ts.map +1 -1
- package/dist/lib/ui/utils.js +14 -0
- package/dist/lib/ui/utils.js.map +1 -1
- package/package.json +2 -5
- package/dist/lib/model-selector.d.ts +0 -17
- package/dist/lib/model-selector.d.ts.map +0 -1
- package/dist/lib/model-selector.js +0 -141
- package/dist/lib/model-selector.js.map +0 -1
- package/dist/lib/prompt.d.ts +0 -3
- package/dist/lib/prompt.d.ts.map +0 -1
- package/dist/lib/prompt.js +0 -128
- package/dist/lib/prompt.js.map +0 -1
- package/dist/lib/prompts/assistant/nudge/nudge-both.txt +0 -10
- package/dist/lib/prompts/assistant/nudge/nudge-discard.txt +0 -9
- package/dist/lib/prompts/assistant/nudge/nudge-extract.txt +0 -9
- package/dist/lib/prompts/assistant/system/system-prompt-both.txt +0 -44
- package/dist/lib/prompts/assistant/system/system-prompt-discard.txt +0 -36
- package/dist/lib/prompts/assistant/system/system-prompt-extract.txt +0 -36
- package/dist/lib/prompts/on-idle-analysis.txt +0 -30
- package/dist/lib/strategies/on-idle.d.ts +0 -14
- package/dist/lib/strategies/on-idle.d.ts.map +0 -1
- package/dist/lib/strategies/on-idle.js +0 -220
- package/dist/lib/strategies/on-idle.js.map +0 -1
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { loadPrompt } from "../prompts";
|
|
2
|
+
import { extractParameterKey, buildToolIdList, createSyntheticUserMessage } from "./utils";
|
|
3
|
+
import { getLastUserMessage } from "../shared-utils";
|
|
4
|
+
const getNudgeString = (config) => {
|
|
5
|
+
const discardEnabled = config.tools.discard.enabled;
|
|
6
|
+
const extractEnabled = config.tools.extract.enabled;
|
|
7
|
+
if (discardEnabled && extractEnabled) {
|
|
8
|
+
return loadPrompt(`user/nudge/nudge-both`);
|
|
9
|
+
}
|
|
10
|
+
else if (discardEnabled) {
|
|
11
|
+
return loadPrompt(`user/nudge/nudge-discard`);
|
|
12
|
+
}
|
|
13
|
+
else if (extractEnabled) {
|
|
14
|
+
return loadPrompt(`user/nudge/nudge-extract`);
|
|
15
|
+
}
|
|
16
|
+
return "";
|
|
17
|
+
};
|
|
18
|
+
const wrapPrunableTools = (content) => `<prunable-tools>
|
|
19
|
+
The following tools have been invoked and are available for pruning. This list does not mandate immediate action. Consider your current goals and the resources you need before discarding valuable tool inputs or outputs. Consolidate your prunes for efficiency; it is rarely worth pruning a single tiny tool output. Keep the context free of noise.
|
|
20
|
+
${content}
|
|
21
|
+
</prunable-tools>`;
|
|
22
|
+
const getCooldownMessage = (config) => {
|
|
23
|
+
const discardEnabled = config.tools.discard.enabled;
|
|
24
|
+
const extractEnabled = config.tools.extract.enabled;
|
|
25
|
+
let toolName;
|
|
26
|
+
if (discardEnabled && extractEnabled) {
|
|
27
|
+
toolName = "discard or extract tools";
|
|
28
|
+
}
|
|
29
|
+
else if (discardEnabled) {
|
|
30
|
+
toolName = "discard tool";
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
toolName = "extract tool";
|
|
34
|
+
}
|
|
35
|
+
return `<prunable-tools>
|
|
36
|
+
Context management was just performed. Do not use the ${toolName} again. A fresh list will be available after your next tool use.
|
|
37
|
+
</prunable-tools>`;
|
|
38
|
+
};
|
|
39
|
+
const buildPrunableToolsList = (state, config, logger, messages) => {
|
|
40
|
+
const lines = [];
|
|
41
|
+
const toolIdList = buildToolIdList(state, messages, logger);
|
|
42
|
+
state.toolParameters.forEach((toolParameterEntry, toolCallId) => {
|
|
43
|
+
if (state.prune.toolIds.includes(toolCallId)) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
const allProtectedTools = config.tools.settings.protectedTools;
|
|
47
|
+
if (allProtectedTools.includes(toolParameterEntry.tool)) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
const numericId = toolIdList.indexOf(toolCallId);
|
|
51
|
+
if (numericId === -1) {
|
|
52
|
+
logger.warn(`Tool in cache but not in toolIdList - possible stale entry`, {
|
|
53
|
+
toolCallId,
|
|
54
|
+
tool: toolParameterEntry.tool,
|
|
55
|
+
});
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
const paramKey = extractParameterKey(toolParameterEntry.tool, toolParameterEntry.parameters);
|
|
59
|
+
const description = paramKey
|
|
60
|
+
? `${toolParameterEntry.tool}, ${paramKey}`
|
|
61
|
+
: toolParameterEntry.tool;
|
|
62
|
+
lines.push(`${numericId}: ${description}`);
|
|
63
|
+
logger.debug(`Prunable tool found - ID: ${numericId}, Tool: ${toolParameterEntry.tool}, Call ID: ${toolCallId}`);
|
|
64
|
+
});
|
|
65
|
+
if (lines.length === 0) {
|
|
66
|
+
return "";
|
|
67
|
+
}
|
|
68
|
+
return wrapPrunableTools(lines.join("\n"));
|
|
69
|
+
};
|
|
70
|
+
export const insertPruneToolContext = (state, config, logger, messages) => {
|
|
71
|
+
if (!config.tools.discard.enabled && !config.tools.extract.enabled) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
let prunableToolsContent;
|
|
75
|
+
if (state.lastToolPrune) {
|
|
76
|
+
logger.debug("Last tool was prune - injecting cooldown message");
|
|
77
|
+
prunableToolsContent = getCooldownMessage(config);
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
const prunableToolsList = buildPrunableToolsList(state, config, logger, messages);
|
|
81
|
+
if (!prunableToolsList) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
logger.debug("prunable-tools: \n" + prunableToolsList);
|
|
85
|
+
let nudgeString = "";
|
|
86
|
+
if (config.tools.settings.nudgeEnabled &&
|
|
87
|
+
state.nudgeCounter >= config.tools.settings.nudgeFrequency) {
|
|
88
|
+
logger.info("Inserting prune nudge message");
|
|
89
|
+
nudgeString = "\n" + getNudgeString(config);
|
|
90
|
+
}
|
|
91
|
+
prunableToolsContent = prunableToolsList + nudgeString;
|
|
92
|
+
}
|
|
93
|
+
const lastUserMessage = getLastUserMessage(messages);
|
|
94
|
+
if (!lastUserMessage) {
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
messages.push(createSyntheticUserMessage(lastUserMessage, prunableToolsContent));
|
|
98
|
+
};
|
|
99
|
+
//# sourceMappingURL=inject.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inject.js","sourceRoot":"","sources":["../../../lib/messages/inject.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { SessionState, WithParts } from "../state";
|
|
2
2
|
import type { Logger } from "../logger";
|
|
3
3
|
import type { PluginConfig } from "../config";
|
|
4
|
-
export declare const insertPruneToolContext: (state: SessionState, config: PluginConfig, logger: Logger, messages: WithParts[]) => void;
|
|
5
4
|
export declare const prune: (state: SessionState, logger: Logger, config: PluginConfig, messages: WithParts[]) => void;
|
|
6
5
|
//# sourceMappingURL=prune.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prune.d.ts","sourceRoot":"","sources":["../../../lib/messages/prune.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"prune.d.ts","sourceRoot":"","sources":["../../../lib/messages/prune.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAS7C,eAAO,MAAM,KAAK,GACd,OAAO,YAAY,EACnB,QAAQ,MAAM,EACd,QAAQ,YAAY,EACpB,UAAU,SAAS,EAAE,KACtB,IAIF,CAAA"}
|
|
@@ -1,124 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { extractParameterKey, buildToolIdList, createSyntheticUserMessage, createSyntheticAssistantMessage, } from "./utils";
|
|
3
|
-
import { getLastAssistantMessage, getLastUserMessage, isMessageCompacted } from "../shared-utils";
|
|
1
|
+
import { isMessageCompacted } from "../shared-utils";
|
|
4
2
|
const PRUNED_TOOL_INPUT_REPLACEMENT = "[content removed to save context, this is not what was written to the file, but a placeholder]";
|
|
5
3
|
const PRUNED_TOOL_OUTPUT_REPLACEMENT = "[Output removed to save context - information superseded or no longer needed]";
|
|
6
|
-
const
|
|
7
|
-
const discardEnabled = config.tools.discard.enabled;
|
|
8
|
-
const extractEnabled = config.tools.extract.enabled;
|
|
9
|
-
const roleDir = isReasoningModel ? "user" : "assistant";
|
|
10
|
-
if (discardEnabled && extractEnabled) {
|
|
11
|
-
return loadPrompt(`${roleDir}/nudge/nudge-both`);
|
|
12
|
-
}
|
|
13
|
-
else if (discardEnabled) {
|
|
14
|
-
return loadPrompt(`${roleDir}/nudge/nudge-discard`);
|
|
15
|
-
}
|
|
16
|
-
else if (extractEnabled) {
|
|
17
|
-
return loadPrompt(`${roleDir}/nudge/nudge-extract`);
|
|
18
|
-
}
|
|
19
|
-
return "";
|
|
20
|
-
};
|
|
21
|
-
const wrapPrunableToolsUser = (content) => `<prunable-tools>
|
|
22
|
-
The following tools have been invoked and are available for pruning. This list does not mandate immediate action. Consider your current goals and the resources you need before discarding valuable tool inputs or outputs. Consolidate your prunes for efficiency; it is rarely worth pruning a single tiny tool output. Keep the context free of noise.
|
|
23
|
-
${content}
|
|
24
|
-
</prunable-tools>`;
|
|
25
|
-
const wrapPrunableToolsAssistant = (content) => `<prunable-tools>
|
|
26
|
-
I have the following tool outputs available for pruning. I should consider my current goals and the resources I need before discarding valuable inputs or outputs. I should consolidate prunes for efficiency; it is rarely worth pruning a single tiny tool output.
|
|
27
|
-
${content}
|
|
28
|
-
</prunable-tools>`;
|
|
29
|
-
const getCooldownMessage = (config, isReasoningModel) => {
|
|
30
|
-
const discardEnabled = config.tools.discard.enabled;
|
|
31
|
-
const extractEnabled = config.tools.extract.enabled;
|
|
32
|
-
let toolName;
|
|
33
|
-
if (discardEnabled && extractEnabled) {
|
|
34
|
-
toolName = "discard or extract tools";
|
|
35
|
-
}
|
|
36
|
-
else if (discardEnabled) {
|
|
37
|
-
toolName = "discard tool";
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
toolName = "extract tool";
|
|
41
|
-
}
|
|
42
|
-
const message = isReasoningModel
|
|
43
|
-
? `Context management was just performed. Do not use the ${toolName} again. A fresh list will be available after your next tool use.`
|
|
44
|
-
: `I just performed context management. I will not use the ${toolName} again until after my next tool use, when a fresh list will be available.`;
|
|
45
|
-
return `<prunable-tools>\n${message}\n</prunable-tools>`;
|
|
46
|
-
};
|
|
47
|
-
const buildPrunableToolsList = (state, config, logger, messages) => {
|
|
48
|
-
const lines = [];
|
|
49
|
-
const toolIdList = buildToolIdList(state, messages, logger);
|
|
50
|
-
state.toolParameters.forEach((toolParameterEntry, toolCallId) => {
|
|
51
|
-
if (state.prune.toolIds.includes(toolCallId)) {
|
|
52
|
-
return;
|
|
53
|
-
}
|
|
54
|
-
const allProtectedTools = config.tools.settings.protectedTools;
|
|
55
|
-
if (allProtectedTools.includes(toolParameterEntry.tool)) {
|
|
56
|
-
return;
|
|
57
|
-
}
|
|
58
|
-
const numericId = toolIdList.indexOf(toolCallId);
|
|
59
|
-
if (numericId === -1) {
|
|
60
|
-
logger.warn(`Tool in cache but not in toolIdList - possible stale entry`, {
|
|
61
|
-
toolCallId,
|
|
62
|
-
tool: toolParameterEntry.tool,
|
|
63
|
-
});
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
const paramKey = extractParameterKey(toolParameterEntry.tool, toolParameterEntry.parameters);
|
|
67
|
-
const description = paramKey
|
|
68
|
-
? `${toolParameterEntry.tool}, ${paramKey}`
|
|
69
|
-
: toolParameterEntry.tool;
|
|
70
|
-
lines.push(`${numericId}: ${description}`);
|
|
71
|
-
logger.debug(`Prunable tool found - ID: ${numericId}, Tool: ${toolParameterEntry.tool}, Call ID: ${toolCallId}`);
|
|
72
|
-
});
|
|
73
|
-
if (lines.length === 0) {
|
|
74
|
-
return "";
|
|
75
|
-
}
|
|
76
|
-
const wrapFn = state.isReasoningModel ? wrapPrunableToolsUser : wrapPrunableToolsAssistant;
|
|
77
|
-
return wrapFn(lines.join("\n"));
|
|
78
|
-
};
|
|
79
|
-
export const insertPruneToolContext = (state, config, logger, messages) => {
|
|
80
|
-
if (!config.tools.discard.enabled && !config.tools.extract.enabled) {
|
|
81
|
-
return;
|
|
82
|
-
}
|
|
83
|
-
// For reasoning models, inject into user role; for non-reasoning, inject into assistant role
|
|
84
|
-
const isReasoningModel = state.isReasoningModel;
|
|
85
|
-
let prunableToolsContent;
|
|
86
|
-
if (state.lastToolPrune) {
|
|
87
|
-
logger.debug("Last tool was prune - injecting cooldown message");
|
|
88
|
-
prunableToolsContent = getCooldownMessage(config, isReasoningModel);
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
const prunableToolsList = buildPrunableToolsList(state, config, logger, messages);
|
|
92
|
-
if (!prunableToolsList) {
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
logger.debug("prunable-tools: \n" + prunableToolsList);
|
|
96
|
-
let nudgeString = "";
|
|
97
|
-
if (config.tools.settings.nudgeEnabled &&
|
|
98
|
-
state.nudgeCounter >= config.tools.settings.nudgeFrequency) {
|
|
99
|
-
logger.info("Inserting prune nudge message");
|
|
100
|
-
nudgeString = "\n" + getNudgeString(config, isReasoningModel);
|
|
101
|
-
}
|
|
102
|
-
prunableToolsContent = prunableToolsList + nudgeString;
|
|
103
|
-
}
|
|
104
|
-
if (isReasoningModel) {
|
|
105
|
-
const lastUserMessage = getLastUserMessage(messages);
|
|
106
|
-
if (!lastUserMessage) {
|
|
107
|
-
return;
|
|
108
|
-
}
|
|
109
|
-
messages.push(createSyntheticUserMessage(lastUserMessage, prunableToolsContent));
|
|
110
|
-
}
|
|
111
|
-
else {
|
|
112
|
-
const lastAssistantMessage = getLastAssistantMessage(messages);
|
|
113
|
-
if (!lastAssistantMessage) {
|
|
114
|
-
return;
|
|
115
|
-
}
|
|
116
|
-
messages.push(createSyntheticAssistantMessage(lastAssistantMessage, prunableToolsContent));
|
|
117
|
-
}
|
|
118
|
-
};
|
|
4
|
+
const PRUNED_TOOL_ERROR_INPUT_REPLACEMENT = "[input removed due to failed tool call]";
|
|
119
5
|
export const prune = (state, logger, config, messages) => {
|
|
120
6
|
pruneToolOutputs(state, logger, messages);
|
|
121
7
|
pruneToolInputs(state, logger, messages);
|
|
8
|
+
pruneToolErrors(state, logger, messages);
|
|
122
9
|
};
|
|
123
10
|
const pruneToolOutputs = (state, logger, messages) => {
|
|
124
11
|
for (const msg of messages) {
|
|
@@ -141,8 +28,15 @@ const pruneToolOutputs = (state, logger, messages) => {
|
|
|
141
28
|
}
|
|
142
29
|
}
|
|
143
30
|
};
|
|
31
|
+
// NOTE: This function is currently unused because "write" and "edit" are protected by default.
|
|
32
|
+
// Some models incorrectly use PRUNED_TOOL_INPUT_REPLACEMENT in their output when they see it in context.
|
|
33
|
+
// See: https://github.com/Opencode-DCP/opencode-dynamic-context-pruning/issues/215
|
|
34
|
+
// Keeping this function in case the bug is resolved in the future.
|
|
144
35
|
const pruneToolInputs = (state, logger, messages) => {
|
|
145
36
|
for (const msg of messages) {
|
|
37
|
+
if (isMessageCompacted(state, msg)) {
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
146
40
|
for (const part of msg.parts) {
|
|
147
41
|
if (part.type !== "tool") {
|
|
148
42
|
continue;
|
|
@@ -153,7 +47,7 @@ const pruneToolInputs = (state, logger, messages) => {
|
|
|
153
47
|
if (part.tool !== "write" && part.tool !== "edit") {
|
|
154
48
|
continue;
|
|
155
49
|
}
|
|
156
|
-
if (part.state.status
|
|
50
|
+
if (part.state.status !== "completed") {
|
|
157
51
|
continue;
|
|
158
52
|
}
|
|
159
53
|
if (part.tool === "write" && part.state.input?.content !== undefined) {
|
|
@@ -170,4 +64,31 @@ const pruneToolInputs = (state, logger, messages) => {
|
|
|
170
64
|
}
|
|
171
65
|
}
|
|
172
66
|
};
|
|
67
|
+
const pruneToolErrors = (state, logger, messages) => {
|
|
68
|
+
for (const msg of messages) {
|
|
69
|
+
if (isMessageCompacted(state, msg)) {
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
for (const part of msg.parts) {
|
|
73
|
+
if (part.type !== "tool") {
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
if (!state.prune.toolIds.includes(part.callID)) {
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
if (part.state.status !== "error") {
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
// Prune all string inputs for errored tools
|
|
83
|
+
const input = part.state.input;
|
|
84
|
+
if (input && typeof input === "object") {
|
|
85
|
+
for (const key of Object.keys(input)) {
|
|
86
|
+
if (typeof input[key] === "string") {
|
|
87
|
+
input[key] = PRUNED_TOOL_ERROR_INPUT_REPLACEMENT;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
};
|
|
173
94
|
//# sourceMappingURL=prune.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prune.js","sourceRoot":"","sources":["../../../lib/messages/prune.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"prune.js","sourceRoot":"","sources":["../../../lib/messages/prune.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Logger } from "../logger";
|
|
2
2
|
import type { SessionState, WithParts } from "../state";
|
|
3
3
|
export declare const createSyntheticUserMessage: (baseMessage: WithParts, content: string) => WithParts;
|
|
4
|
-
export declare const createSyntheticAssistantMessage: (baseMessage: WithParts, content: string) => WithParts;
|
|
5
4
|
/**
|
|
6
5
|
* Extracts a human-readable key from tool metadata for display purposes.
|
|
7
6
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../lib/messages/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAElC,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAMvD,eAAO,MAAM,0BAA0B,GAAI,aAAa,SAAS,EAAE,SAAS,MAAM,KAAG,SAwBpF,CAAA;AAED
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../lib/messages/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAElC,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAMvD,eAAO,MAAM,0BAA0B,GAAI,aAAa,SAAS,EAAE,SAAS,MAAM,KAAG,SAwBpF,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAAI,MAAM,MAAM,EAAE,YAAY,GAAG,KAAG,MA8FnE,CAAA;AAED,wBAAgB,eAAe,CAC3B,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,SAAS,EAAE,EACrB,MAAM,EAAE,MAAM,GACf,MAAM,EAAE,CAeV"}
|
|
@@ -26,33 +26,6 @@ export const createSyntheticUserMessage = (baseMessage, content) => {
|
|
|
26
26
|
],
|
|
27
27
|
};
|
|
28
28
|
};
|
|
29
|
-
export const createSyntheticAssistantMessage = (baseMessage, content) => {
|
|
30
|
-
const assistantInfo = baseMessage.info;
|
|
31
|
-
return {
|
|
32
|
-
info: {
|
|
33
|
-
id: SYNTHETIC_MESSAGE_ID,
|
|
34
|
-
sessionID: assistantInfo.sessionID,
|
|
35
|
-
role: "assistant",
|
|
36
|
-
parentID: assistantInfo.parentID,
|
|
37
|
-
modelID: assistantInfo.modelID,
|
|
38
|
-
providerID: assistantInfo.providerID,
|
|
39
|
-
time: { created: Date.now() },
|
|
40
|
-
tokens: { input: 0, output: 0, reasoning: 0, cache: { read: 0, write: 0 } },
|
|
41
|
-
cost: 0,
|
|
42
|
-
path: assistantInfo.path,
|
|
43
|
-
mode: assistantInfo.mode,
|
|
44
|
-
},
|
|
45
|
-
parts: [
|
|
46
|
-
{
|
|
47
|
-
id: SYNTHETIC_PART_ID,
|
|
48
|
-
sessionID: assistantInfo.sessionID,
|
|
49
|
-
messageID: SYNTHETIC_MESSAGE_ID,
|
|
50
|
-
type: "text",
|
|
51
|
-
text: content,
|
|
52
|
-
},
|
|
53
|
-
],
|
|
54
|
-
};
|
|
55
|
-
};
|
|
56
29
|
/**
|
|
57
30
|
* Extracts a human-readable key from tool metadata for display purposes.
|
|
58
31
|
*/
|
|
@@ -60,6 +33,17 @@ export const extractParameterKey = (tool, parameters) => {
|
|
|
60
33
|
if (!parameters)
|
|
61
34
|
return "";
|
|
62
35
|
if (tool === "read" && parameters.filePath) {
|
|
36
|
+
const offset = parameters.offset;
|
|
37
|
+
const limit = parameters.limit;
|
|
38
|
+
if (offset !== undefined && limit !== undefined) {
|
|
39
|
+
return `${parameters.filePath} (lines ${offset}-${offset + limit})`;
|
|
40
|
+
}
|
|
41
|
+
if (offset !== undefined) {
|
|
42
|
+
return `${parameters.filePath} (lines ${offset}+)`;
|
|
43
|
+
}
|
|
44
|
+
if (limit !== undefined) {
|
|
45
|
+
return `${parameters.filePath} (lines 0-${limit})`;
|
|
46
|
+
}
|
|
63
47
|
return parameters.filePath;
|
|
64
48
|
}
|
|
65
49
|
if (tool === "write" && parameters.filePath) {
|
|
@@ -112,6 +96,22 @@ export const extractParameterKey = (tool, parameters) => {
|
|
|
112
96
|
if (tool === "task" && parameters.description) {
|
|
113
97
|
return parameters.description;
|
|
114
98
|
}
|
|
99
|
+
if (tool === "skill" && parameters.name) {
|
|
100
|
+
return parameters.name;
|
|
101
|
+
}
|
|
102
|
+
if (tool === "lsp") {
|
|
103
|
+
const op = parameters.operation || "lsp";
|
|
104
|
+
const path = parameters.filePath || "";
|
|
105
|
+
const line = parameters.line;
|
|
106
|
+
const char = parameters.character;
|
|
107
|
+
if (path && line !== undefined && char !== undefined) {
|
|
108
|
+
return `${op} ${path}:${line}:${char}`;
|
|
109
|
+
}
|
|
110
|
+
if (path) {
|
|
111
|
+
return `${op} ${path}`;
|
|
112
|
+
}
|
|
113
|
+
return op;
|
|
114
|
+
}
|
|
115
115
|
const paramStr = JSON.stringify(parameters);
|
|
116
116
|
if (paramStr === "{}" || paramStr === "[]" || paramStr === "null") {
|
|
117
117
|
return "";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../lib/messages/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAIpD,MAAM,oBAAoB,GAAG,gCAAgC,CAAA;AAC7D,MAAM,iBAAiB,GAAG,gCAAgC,CAAA;AAE1D,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,WAAsB,EAAE,OAAe,EAAa,EAAE;IAC7F,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAmB,CAAA;IAChD,OAAO;QACH,IAAI,EAAE;YACF,EAAE,EAAE,oBAAoB;YACxB,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE;YAC7B,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,MAAM;YAC/B,KAAK,EAAE;gBACH,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,UAAU;gBACrC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO;aAClC;SACJ;QACD,KAAK,EAAE;YACH;gBACI,EAAE,EAAE,iBAAiB;gBACrB,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,SAAS,EAAE,oBAAoB;gBAC/B,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,OAAO;aAChB;SACJ;KACJ,CAAA;AACL,CAAC,CAAA;AAED,MAAM,CAAC,MAAM
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../lib/messages/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/prompts/index.ts"],"names":[],"mappings":"AAGA,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAS9E"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { readFileSync } from "fs";
|
|
2
|
+
import { join } from "path";
|
|
3
|
+
export function loadPrompt(name, vars) {
|
|
4
|
+
const filePath = join(__dirname, `${name}.txt`);
|
|
5
|
+
let content = readFileSync(filePath, "utf8").trim();
|
|
6
|
+
if (vars) {
|
|
7
|
+
for (const [key, value] of Object.entries(vars)) {
|
|
8
|
+
content = content.replace(new RegExp(`\\{\\{${key}\\}\\}`, "g"), value);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
return content;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/prompts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,IAA6B;IAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,MAAM,CAAC,CAAA;IAC/C,IAAI,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;IACnD,IAAI,IAAI,EAAE,CAAC;QACP,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9C,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,SAAS,GAAG,QAAQ,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,CAAA;QAC3E,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAA;AAClB,CAAC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { SessionState, WithParts } from "./state";
|
|
2
2
|
export declare const isMessageCompacted: (state: SessionState, msg: WithParts) => boolean;
|
|
3
3
|
export declare const getLastUserMessage: (messages: WithParts[]) => WithParts | null;
|
|
4
|
-
export declare const getLastAssistantMessage: (messages: WithParts[]) => WithParts | null;
|
|
5
4
|
//# sourceMappingURL=shared-utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-utils.d.ts","sourceRoot":"","sources":["../../lib/shared-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEjD,eAAO,MAAM,kBAAkB,GAAI,OAAO,YAAY,EAAE,KAAK,SAAS,KAAG,OAExE,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,UAAU,SAAS,EAAE,KAAG,SAAS,GAAG,IAQtE,CAAA
|
|
1
|
+
{"version":3,"file":"shared-utils.d.ts","sourceRoot":"","sources":["../../lib/shared-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEjD,eAAO,MAAM,kBAAkB,GAAI,OAAO,YAAY,EAAE,KAAK,SAAS,KAAG,OAExE,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,UAAU,SAAS,EAAE,KAAG,SAAS,GAAG,IAQtE,CAAA"}
|
package/dist/lib/shared-utils.js
CHANGED
|
@@ -10,13 +10,4 @@ export const getLastUserMessage = (messages) => {
|
|
|
10
10
|
}
|
|
11
11
|
return null;
|
|
12
12
|
};
|
|
13
|
-
export const getLastAssistantMessage = (messages) => {
|
|
14
|
-
for (let i = messages.length - 1; i >= 0; i--) {
|
|
15
|
-
const msg = messages[i];
|
|
16
|
-
if (msg.info.role === "assistant") {
|
|
17
|
-
return msg;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
return null;
|
|
21
|
-
};
|
|
22
13
|
//# sourceMappingURL=shared-utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-utils.js","sourceRoot":"","sources":["../../lib/shared-utils.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAmB,EAAE,GAAc,EAAW,EAAE;IAC/E,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,cAAc,CAAA;AACvD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,QAAqB,EAAoB,EAAE;IAC1E,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;QACvB,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC3B,OAAO,GAAG,CAAA;QACd,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAA;AACf,CAAC,CAAA
|
|
1
|
+
{"version":3,"file":"shared-utils.js","sourceRoot":"","sources":["../../lib/shared-utils.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAmB,EAAE,GAAc,EAAW,EAAE;IAC/E,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,cAAc,CAAA;AACvD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,QAAqB,EAAoB,EAAE;IAC1E,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;QACvB,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC3B,OAAO,GAAG,CAAA;QACd,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAA;AACf,CAAC,CAAA"}
|
package/dist/lib/state/state.js
CHANGED
|
@@ -31,6 +31,7 @@ export function createSessionState() {
|
|
|
31
31
|
return {
|
|
32
32
|
sessionId: null,
|
|
33
33
|
isSubAgent: false,
|
|
34
|
+
isInternalAgent: false,
|
|
34
35
|
prune: {
|
|
35
36
|
toolIds: [],
|
|
36
37
|
},
|
|
@@ -43,12 +44,12 @@ export function createSessionState() {
|
|
|
43
44
|
lastToolPrune: false,
|
|
44
45
|
lastCompaction: 0,
|
|
45
46
|
currentTurn: 0,
|
|
46
|
-
isReasoningModel: false,
|
|
47
47
|
};
|
|
48
48
|
}
|
|
49
49
|
export function resetSessionState(state) {
|
|
50
50
|
state.sessionId = null;
|
|
51
51
|
state.isSubAgent = false;
|
|
52
|
+
state.isInternalAgent = false;
|
|
52
53
|
state.prune = {
|
|
53
54
|
toolIds: [],
|
|
54
55
|
};
|
|
@@ -61,7 +62,6 @@ export function resetSessionState(state) {
|
|
|
61
62
|
state.lastToolPrune = false;
|
|
62
63
|
state.lastCompaction = 0;
|
|
63
64
|
state.currentTurn = 0;
|
|
64
|
-
state.isReasoningModel = false;
|
|
65
65
|
}
|
|
66
66
|
export async function ensureSessionInitialized(client, state, sessionId, logger, messages) {
|
|
67
67
|
if (state.sessionId === sessionId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../lib/state/state.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAExE,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC7B,MAAW,EACX,KAAmB,EACnB,MAAc,EACd,QAAqB,EACR,EAAE;IACf,MAAM,eAAe,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAA;IACpD,IAAI,CAAC,eAAe,EAAE,CAAC;QACnB,OAAM;IACV,CAAC;IAED,MAAM,aAAa,GAAG,eAAe,CAAC,IAAI,CAAC,SAAS,CAAA;IAEpD,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,IAAI,KAAK,CAAC,SAAS,KAAK,aAAa,EAAE,CAAC;QAChE,MAAM,CAAC,IAAI,CAAC,oBAAoB,KAAK,CAAC,SAAS,OAAO,aAAa,EAAE,CAAC,CAAA;QACtE,IAAI,CAAC;YACD,MAAM,wBAAwB,CAAC,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;QAClF,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAChB,MAAM,CAAC,KAAK,CAAC,oCAAoC,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;QAC9E,CAAC;IACL,CAAC;IAED,MAAM,uBAAuB,GAAG,2BAA2B,CAAC,QAAQ,CAAC,CAAA;IACrE,IAAI,uBAAuB,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;QACjD,KAAK,CAAC,cAAc,GAAG,uBAAuB,CAAA;QAC9C,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,CAAA;QAC5B,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAA;QACxB,MAAM,CAAC,IAAI,CAAC,wDAAwD,EAAE;YAClE,SAAS,EAAE,uBAAuB;SACrC,CAAC,CAAA;IACN,CAAC;IAED,KAAK,CAAC,WAAW,GAAG,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;AACnD,CAAC,CAAA;AAED,MAAM,UAAU,kBAAkB;IAC9B,OAAO;QACH,SAAS,EAAE,IAAI;QACf,UAAU,EAAE,KAAK;QACjB,KAAK,EAAE;YACH,OAAO,EAAE,EAAE;SACd;QACD,KAAK,EAAE;YACH,iBAAiB,EAAE,CAAC;YACpB,gBAAgB,EAAE,CAAC;SACtB;QACD,cAAc,EAAE,IAAI,GAAG,EAA8B;QACrD,YAAY,EAAE,CAAC;QACf,aAAa,EAAE,KAAK;QACpB,cAAc,EAAE,CAAC;QACjB,WAAW,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../lib/state/state.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,7 @@ export interface Prune {
|
|
|
21
21
|
export interface SessionState {
|
|
22
22
|
sessionId: string | null;
|
|
23
23
|
isSubAgent: boolean;
|
|
24
|
+
isInternalAgent: boolean;
|
|
24
25
|
prune: Prune;
|
|
25
26
|
stats: SessionStats;
|
|
26
27
|
toolParameters: Map<string, ToolParameterEntry>;
|
|
@@ -28,6 +29,5 @@ export interface SessionState {
|
|
|
28
29
|
lastToolPrune: boolean;
|
|
29
30
|
lastCompaction: number;
|
|
30
31
|
currentTurn: number;
|
|
31
|
-
isReasoningModel: boolean;
|
|
32
32
|
}
|
|
33
33
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../lib/state/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAEhD,MAAM,WAAW,SAAS;IACtB,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,IAAI,EAAE,CAAA;CAChB;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;IACd,IAAI,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,YAAY;IACzB,iBAAiB,EAAE,MAAM,CAAA;IACzB,gBAAgB,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,KAAK;IAClB,OAAO,EAAE,MAAM,EAAE,CAAA;CACpB;AAED,MAAM,WAAW,YAAY;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,UAAU,EAAE,OAAO,CAAA;IACnB,KAAK,EAAE,KAAK,CAAA;IACZ,KAAK,EAAE,YAAY,CAAA;IACnB,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;IAC/C,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,OAAO,CAAA;IACtB,cAAc,EAAE,MAAM,CAAA;IACtB,WAAW,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../lib/state/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAEhD,MAAM,WAAW,SAAS;IACtB,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,IAAI,EAAE,CAAA;CAChB;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;IACd,IAAI,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,YAAY;IACzB,iBAAiB,EAAE,MAAM,CAAA;IACzB,gBAAgB,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,KAAK;IAClB,OAAO,EAAE,MAAM,EAAE,CAAA;CACpB;AAED,MAAM,WAAW,YAAY;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,UAAU,EAAE,OAAO,CAAA;IACnB,eAAe,EAAE,OAAO,CAAA;IACxB,KAAK,EAAE,KAAK,CAAA;IACZ,KAAK,EAAE,YAAY,CAAA;IACnB,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;IAC/C,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,OAAO,CAAA;IACtB,cAAc,EAAE,MAAM,CAAA;IACtB,WAAW,EAAE,MAAM,CAAA;CACtB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { deduplicate } from "./deduplication";
|
|
2
|
-
export { runOnIdle } from "./on-idle";
|
|
3
2
|
export { createDiscardTool, createExtractTool } from "./tools";
|
|
4
3
|
export { supersedeWrites } from "./supersede-writes";
|
|
4
|
+
export { purgeErrors } from "./purge-errors";
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/strategies/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/strategies/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { deduplicate } from "./deduplication";
|
|
2
|
-
export { runOnIdle } from "./on-idle";
|
|
3
2
|
export { createDiscardTool, createExtractTool } from "./tools";
|
|
4
3
|
export { supersedeWrites } from "./supersede-writes";
|
|
4
|
+
export { purgeErrors } from "./purge-errors";
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/strategies/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/strategies/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA"}
|