@tarquinen/opencode-dcp 0.4.17 → 1.0.0-beta.1

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 (163) hide show
  1. package/README.md +58 -30
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +19 -59
  4. package/dist/index.js.map +1 -1
  5. package/dist/lib/config.d.ts +30 -13
  6. package/dist/lib/config.d.ts.map +1 -1
  7. package/dist/lib/config.js +339 -121
  8. package/dist/lib/config.js.map +1 -1
  9. package/dist/lib/hooks.d.ts +5 -13
  10. package/dist/lib/hooks.d.ts.map +1 -1
  11. package/dist/lib/hooks.js +26 -125
  12. package/dist/lib/hooks.js.map +1 -1
  13. package/dist/lib/logger.d.ts +5 -9
  14. package/dist/lib/logger.d.ts.map +1 -1
  15. package/dist/lib/logger.js +30 -160
  16. package/dist/lib/logger.js.map +1 -1
  17. package/dist/lib/messages/index.d.ts +2 -0
  18. package/dist/lib/messages/index.d.ts.map +1 -0
  19. package/dist/lib/messages/index.js +2 -0
  20. package/dist/lib/messages/index.js.map +1 -0
  21. package/dist/lib/messages/prune.d.ts +6 -0
  22. package/dist/lib/messages/prune.d.ts.map +1 -0
  23. package/dist/lib/messages/prune.js +85 -0
  24. package/dist/lib/messages/prune.js.map +1 -0
  25. package/dist/lib/messages/utils.d.ts +10 -0
  26. package/dist/lib/messages/utils.d.ts.map +1 -0
  27. package/dist/lib/messages/utils.js +103 -0
  28. package/dist/lib/messages/utils.js.map +1 -0
  29. package/dist/lib/model-selector.js +3 -3
  30. package/dist/lib/model-selector.js.map +1 -1
  31. package/dist/lib/{core/prompt.d.ts → prompt.d.ts} +1 -1
  32. package/dist/lib/prompt.d.ts.map +1 -0
  33. package/dist/lib/{core/prompt.js → prompt.js} +2 -6
  34. package/dist/lib/prompt.js.map +1 -0
  35. package/dist/lib/prompts/pruning.txt +1 -1
  36. package/dist/lib/prompts/tool.txt +3 -3
  37. package/dist/lib/state/index.d.ts +3 -27
  38. package/dist/lib/state/index.d.ts.map +1 -1
  39. package/dist/lib/state/index.js +3 -40
  40. package/dist/lib/state/index.js.map +1 -1
  41. package/dist/lib/state/persistence.d.ts +4 -4
  42. package/dist/lib/state/persistence.d.ts.map +1 -1
  43. package/dist/lib/state/persistence.js +24 -20
  44. package/dist/lib/state/persistence.js.map +1 -1
  45. package/dist/lib/state/state.d.ts +7 -0
  46. package/dist/lib/state/state.d.ts.map +1 -0
  47. package/dist/lib/state/state.js +76 -0
  48. package/dist/lib/state/state.js.map +1 -0
  49. package/dist/lib/state/tool-cache.d.ts +4 -6
  50. package/dist/lib/state/tool-cache.d.ts.map +1 -1
  51. package/dist/lib/state/tool-cache.js +14 -46
  52. package/dist/lib/state/tool-cache.js.map +1 -1
  53. package/dist/lib/state/types.d.ts +30 -0
  54. package/dist/lib/state/types.d.ts.map +1 -0
  55. package/dist/lib/state/types.js +2 -0
  56. package/dist/lib/state/types.js.map +1 -0
  57. package/dist/lib/strategies/deduplication.d.ts +10 -0
  58. package/dist/lib/strategies/deduplication.d.ts.map +1 -0
  59. package/dist/lib/strategies/deduplication.js +89 -0
  60. package/dist/lib/strategies/deduplication.js.map +1 -0
  61. package/dist/lib/strategies/index.d.ts +4 -0
  62. package/dist/lib/strategies/index.d.ts.map +1 -0
  63. package/dist/lib/strategies/index.js +4 -0
  64. package/dist/lib/strategies/index.js.map +1 -0
  65. package/dist/lib/strategies/on-idle.d.ts +14 -0
  66. package/dist/lib/strategies/on-idle.d.ts.map +1 -0
  67. package/dist/lib/strategies/on-idle.js +216 -0
  68. package/dist/lib/strategies/on-idle.js.map +1 -0
  69. package/dist/lib/strategies/prune-tool.d.ts +17 -0
  70. package/dist/lib/strategies/prune-tool.d.ts.map +1 -0
  71. package/dist/lib/strategies/prune-tool.js +70 -0
  72. package/dist/lib/strategies/prune-tool.js.map +1 -0
  73. package/dist/lib/ui/display-utils.d.ts +3 -12
  74. package/dist/lib/ui/display-utils.d.ts.map +1 -1
  75. package/dist/lib/ui/display-utils.js +12 -79
  76. package/dist/lib/ui/display-utils.js.map +1 -1
  77. package/dist/lib/ui/notification.d.ts +7 -23
  78. package/dist/lib/ui/notification.d.ts.map +1 -1
  79. package/dist/lib/ui/notification.js +38 -47
  80. package/dist/lib/ui/notification.js.map +1 -1
  81. package/dist/lib/utils.d.ts +9 -0
  82. package/dist/lib/utils.d.ts.map +1 -0
  83. package/dist/lib/utils.js +61 -0
  84. package/dist/lib/utils.js.map +1 -0
  85. package/package.json +1 -1
  86. package/dist/lib/core/janitor.d.ts +0 -38
  87. package/dist/lib/core/janitor.d.ts.map +0 -1
  88. package/dist/lib/core/janitor.js +0 -294
  89. package/dist/lib/core/janitor.js.map +0 -1
  90. package/dist/lib/core/prompt.d.ts.map +0 -1
  91. package/dist/lib/core/prompt.js.map +0 -1
  92. package/dist/lib/core/strategies/deduplication.d.ts +0 -7
  93. package/dist/lib/core/strategies/deduplication.d.ts.map +0 -1
  94. package/dist/lib/core/strategies/deduplication.js +0 -76
  95. package/dist/lib/core/strategies/deduplication.js.map +0 -1
  96. package/dist/lib/core/strategies/index.d.ts +0 -51
  97. package/dist/lib/core/strategies/index.d.ts.map +0 -1
  98. package/dist/lib/core/strategies/index.js +0 -48
  99. package/dist/lib/core/strategies/index.js.map +0 -1
  100. package/dist/lib/fetch-wrapper/formats/anthropic.d.ts +0 -8
  101. package/dist/lib/fetch-wrapper/formats/anthropic.d.ts.map +0 -1
  102. package/dist/lib/fetch-wrapper/formats/anthropic.js +0 -96
  103. package/dist/lib/fetch-wrapper/formats/anthropic.js.map +0 -1
  104. package/dist/lib/fetch-wrapper/formats/bedrock.d.ts +0 -8
  105. package/dist/lib/fetch-wrapper/formats/bedrock.d.ts.map +0 -1
  106. package/dist/lib/fetch-wrapper/formats/bedrock.js +0 -97
  107. package/dist/lib/fetch-wrapper/formats/bedrock.js.map +0 -1
  108. package/dist/lib/fetch-wrapper/formats/gemini.d.ts +0 -8
  109. package/dist/lib/fetch-wrapper/formats/gemini.d.ts.map +0 -1
  110. package/dist/lib/fetch-wrapper/formats/gemini.js +0 -134
  111. package/dist/lib/fetch-wrapper/formats/gemini.js.map +0 -1
  112. package/dist/lib/fetch-wrapper/formats/index.d.ts +0 -6
  113. package/dist/lib/fetch-wrapper/formats/index.d.ts.map +0 -1
  114. package/dist/lib/fetch-wrapper/formats/index.js +0 -6
  115. package/dist/lib/fetch-wrapper/formats/index.js.map +0 -1
  116. package/dist/lib/fetch-wrapper/formats/openai-chat.d.ts +0 -3
  117. package/dist/lib/fetch-wrapper/formats/openai-chat.d.ts.map +0 -1
  118. package/dist/lib/fetch-wrapper/formats/openai-chat.js +0 -100
  119. package/dist/lib/fetch-wrapper/formats/openai-chat.js.map +0 -1
  120. package/dist/lib/fetch-wrapper/formats/openai-responses.d.ts +0 -3
  121. package/dist/lib/fetch-wrapper/formats/openai-responses.d.ts.map +0 -1
  122. package/dist/lib/fetch-wrapper/formats/openai-responses.js +0 -63
  123. package/dist/lib/fetch-wrapper/formats/openai-responses.js.map +0 -1
  124. package/dist/lib/fetch-wrapper/gc-tracker.d.ts +0 -4
  125. package/dist/lib/fetch-wrapper/gc-tracker.d.ts.map +0 -1
  126. package/dist/lib/fetch-wrapper/gc-tracker.js +0 -61
  127. package/dist/lib/fetch-wrapper/gc-tracker.js.map +0 -1
  128. package/dist/lib/fetch-wrapper/handler.d.ts +0 -3
  129. package/dist/lib/fetch-wrapper/handler.d.ts.map +0 -1
  130. package/dist/lib/fetch-wrapper/handler.js +0 -118
  131. package/dist/lib/fetch-wrapper/handler.js.map +0 -1
  132. package/dist/lib/fetch-wrapper/index.d.ts +0 -18
  133. package/dist/lib/fetch-wrapper/index.d.ts.map +0 -1
  134. package/dist/lib/fetch-wrapper/index.js +0 -107
  135. package/dist/lib/fetch-wrapper/index.js.map +0 -1
  136. package/dist/lib/fetch-wrapper/prunable-list.d.ts +0 -8
  137. package/dist/lib/fetch-wrapper/prunable-list.d.ts.map +0 -1
  138. package/dist/lib/fetch-wrapper/prunable-list.js +0 -38
  139. package/dist/lib/fetch-wrapper/prunable-list.js.map +0 -1
  140. package/dist/lib/fetch-wrapper/tool-tracker.d.ts +0 -9
  141. package/dist/lib/fetch-wrapper/tool-tracker.d.ts.map +0 -1
  142. package/dist/lib/fetch-wrapper/tool-tracker.js +0 -12
  143. package/dist/lib/fetch-wrapper/tool-tracker.js.map +0 -1
  144. package/dist/lib/fetch-wrapper/types.d.ts +0 -62
  145. package/dist/lib/fetch-wrapper/types.d.ts.map +0 -1
  146. package/dist/lib/fetch-wrapper/types.js +0 -7
  147. package/dist/lib/fetch-wrapper/types.js.map +0 -1
  148. package/dist/lib/pruning-tool.d.ts +0 -20
  149. package/dist/lib/pruning-tool.d.ts.map +0 -1
  150. package/dist/lib/pruning-tool.js +0 -160
  151. package/dist/lib/pruning-tool.js.map +0 -1
  152. package/dist/lib/state/id-mapping.d.ts +0 -25
  153. package/dist/lib/state/id-mapping.d.ts.map +0 -1
  154. package/dist/lib/state/id-mapping.js +0 -51
  155. package/dist/lib/state/id-mapping.js.map +0 -1
  156. package/dist/lib/tokenizer.d.ts +0 -3
  157. package/dist/lib/tokenizer.d.ts.map +0 -1
  158. package/dist/lib/tokenizer.js +0 -16
  159. package/dist/lib/tokenizer.js.map +0 -1
  160. package/dist/lib/version-checker.d.ts +0 -9
  161. package/dist/lib/version-checker.d.ts.map +0 -1
  162. package/dist/lib/version-checker.js +0 -77
  163. package/dist/lib/version-checker.js.map +0 -1
@@ -0,0 +1,103 @@
1
+ /**
2
+ * Extracts a human-readable key from tool metadata for display purposes.
3
+ */
4
+ export const extractParameterKey = (tool, parameters) => {
5
+ if (!parameters)
6
+ return '';
7
+ if (tool === "read" && parameters.filePath) {
8
+ return parameters.filePath;
9
+ }
10
+ if (tool === "write" && parameters.filePath) {
11
+ return parameters.filePath;
12
+ }
13
+ if (tool === "edit" && parameters.filePath) {
14
+ return parameters.filePath;
15
+ }
16
+ if (tool === "list") {
17
+ return parameters.path || '(current directory)';
18
+ }
19
+ if (tool === "glob") {
20
+ if (parameters.pattern) {
21
+ const pathInfo = parameters.path ? ` in ${parameters.path}` : "";
22
+ return `"${parameters.pattern}"${pathInfo}`;
23
+ }
24
+ return '(unknown pattern)';
25
+ }
26
+ if (tool === "grep") {
27
+ if (parameters.pattern) {
28
+ const pathInfo = parameters.path ? ` in ${parameters.path}` : "";
29
+ return `"${parameters.pattern}"${pathInfo}`;
30
+ }
31
+ return '(unknown pattern)';
32
+ }
33
+ if (tool === "bash") {
34
+ if (parameters.description)
35
+ return parameters.description;
36
+ if (parameters.command) {
37
+ return parameters.command.length > 50
38
+ ? parameters.command.substring(0, 50) + "..."
39
+ : parameters.command;
40
+ }
41
+ }
42
+ if (tool === "webfetch" && parameters.url) {
43
+ return parameters.url;
44
+ }
45
+ if (tool === "websearch" && parameters.query) {
46
+ return `"${parameters.query}"`;
47
+ }
48
+ if (tool === "codesearch" && parameters.query) {
49
+ return `"${parameters.query}"`;
50
+ }
51
+ if (tool === "todowrite") {
52
+ return `${parameters.todos?.length || 0} todos`;
53
+ }
54
+ if (tool === "todoread") {
55
+ return "read todo list";
56
+ }
57
+ if (tool === "task" && parameters.description) {
58
+ return parameters.description;
59
+ }
60
+ const paramStr = JSON.stringify(parameters);
61
+ if (paramStr === '{}' || paramStr === '[]' || paramStr === 'null') {
62
+ return '';
63
+ }
64
+ return paramStr.substring(0, 50);
65
+ };
66
+ export const getLastUserMessage = (messages) => {
67
+ for (let i = messages.length - 1; i >= 0; i--) {
68
+ const msg = messages[i];
69
+ if (msg.info.role === 'user') {
70
+ return msg;
71
+ }
72
+ }
73
+ return null;
74
+ };
75
+ export function findCurrentAgent(messages) {
76
+ const userMsg = getLastUserMessage(messages);
77
+ if (!userMsg)
78
+ return undefined;
79
+ return userMsg.info.agent || 'build';
80
+ }
81
+ export function buildToolIdList(messages) {
82
+ const toolIds = [];
83
+ for (const msg of messages) {
84
+ if (msg.parts) {
85
+ for (const part of msg.parts) {
86
+ if (part.type === 'tool' && part.callID && part.tool) {
87
+ toolIds.push(part.callID);
88
+ }
89
+ }
90
+ }
91
+ }
92
+ return toolIds;
93
+ }
94
+ export function getPruneToolIds(numericToolIds, toolIdList) {
95
+ const pruneToolIds = [];
96
+ for (const index of numericToolIds) {
97
+ if (!isNaN(index) && index >= 0 && index < toolIdList.length) {
98
+ pruneToolIds.push(toolIdList[index]);
99
+ }
100
+ }
101
+ return pruneToolIds;
102
+ }
103
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../lib/messages/utils.ts"],"names":[],"mappings":"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"}
@@ -34,7 +34,7 @@ async function importOpencodeAI(logger, maxRetries = 3, delayMs = 100, workspace
34
34
  catch (error) {
35
35
  lastError = error;
36
36
  if (error.message?.includes('before initialization')) {
37
- logger?.debug('model-selector', `Import attempt ${attempt}/${maxRetries} failed, will retry`, {
37
+ logger?.debug(`Import attempt ${attempt}/${maxRetries} failed, will retry`, {
38
38
  error: error.message
39
39
  });
40
40
  if (attempt < maxRetries) {
@@ -53,7 +53,7 @@ export async function selectModel(currentModel, logger, configModel, workspaceDi
53
53
  if (configModel) {
54
54
  const parts = configModel.split('/');
55
55
  if (parts.length !== 2) {
56
- logger?.warn('model-selector', 'Invalid config model format', { configModel });
56
+ logger?.warn('Invalid config model format', { configModel });
57
57
  }
58
58
  else {
59
59
  const [providerID, modelID] = parts;
@@ -67,7 +67,7 @@ export async function selectModel(currentModel, logger, configModel, workspaceDi
67
67
  };
68
68
  }
69
69
  catch (error) {
70
- logger?.warn('model-selector', `Config model failed: ${providerID}/${modelID}`, {
70
+ logger?.warn(`Config model failed: ${providerID}/${modelID}`, {
71
71
  error: error.message
72
72
  });
73
73
  failedModelInfo = { providerID, modelID };
@@ -1 +1 @@
1
- {"version":3,"file":"model-selector.js","sourceRoot":"","sources":["../../lib/model-selector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model-selector.js","sourceRoot":"","sources":["../../lib/model-selector.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  export declare function loadPrompt(name: string, vars?: Record<string, string>): string;
2
- export declare function buildAnalysisPrompt(unprunedToolCallIds: string[], messages: any[], alreadyPrunedIds?: string[], protectedToolCallIds?: string[], reason?: string): string;
2
+ export declare function buildAnalysisPrompt(unprunedToolCallIds: string[], messages: any[], alreadyPrunedIds?: string[], protectedToolCallIds?: string[]): string;
3
3
  //# sourceMappingURL=prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../lib/prompt.ts"],"names":[],"mappings":"AAGA,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAS9E;AA4GD,wBAAgB,mBAAmB,CAC/B,mBAAmB,EAAE,MAAM,EAAE,EAC7B,QAAQ,EAAE,GAAG,EAAE,EACf,gBAAgB,CAAC,EAAE,MAAM,EAAE,EAC3B,oBAAoB,CAAC,EAAE,MAAM,EAAE,GAChC,MAAM,CAQR"}
@@ -1,7 +1,7 @@
1
1
  import { readFileSync } from "fs";
2
2
  import { join } from "path";
3
3
  export function loadPrompt(name, vars) {
4
- const filePath = join(__dirname, "..", "prompts", `${name}.txt`);
4
+ const filePath = join(__dirname, "prompts", `${name}.txt`);
5
5
  let content = readFileSync(filePath, "utf8").trim();
6
6
  if (vars) {
7
7
  for (const [key, value] of Object.entries(vars)) {
@@ -105,14 +105,10 @@ function minimizeMessages(messages, alreadyPrunedIds, protectedToolCallIds) {
105
105
  return msg.parts && msg.parts.length > 0;
106
106
  });
107
107
  }
108
- export function buildAnalysisPrompt(unprunedToolCallIds, messages, alreadyPrunedIds, protectedToolCallIds, reason) {
108
+ export function buildAnalysisPrompt(unprunedToolCallIds, messages, alreadyPrunedIds, protectedToolCallIds) {
109
109
  const minimizedMessages = minimizeMessages(messages, alreadyPrunedIds, protectedToolCallIds);
110
110
  const messagesJson = JSON.stringify(minimizedMessages, null, 2).replace(/\\n/g, '\n');
111
- const reasonContext = reason
112
- ? `\nContext: The AI has requested pruning with the following reason: "${reason}"\nUse this context to inform your decisions about what is most relevant to keep.`
113
- : '';
114
111
  return loadPrompt("pruning", {
115
- reason_context: reasonContext,
116
112
  available_tool_call_ids: unprunedToolCallIds.join(", "),
117
113
  session_history: messagesJson
118
114
  });
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../lib/prompt.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  You are a conversation analyzer that identifies obsolete tool outputs in a coding session.
2
- {{reason_context}}
2
+
3
3
  Your task: Analyze the session history and identify tool call IDs whose outputs are NO LONGER RELEVANT to the current conversation context.
4
4
 
5
5
  Guidelines for identifying obsolete tool calls:
@@ -36,7 +36,7 @@ You must use this tool in three specific scenarios. The rules for distillation (
36
36
  <example_noise>
37
37
  Assistant: [Reads 'wrong_file.ts']
38
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]]
39
+ [Uses prune with ids: ["noise", "5"]]
40
40
  </example_noise>
41
41
 
42
42
  <example_consolidation>
@@ -46,11 +46,11 @@ I have analyzed the configuration. Here is the distillation:
46
46
  - 'db.ts' connects to mongo:27017.
47
47
  - The other 3 files were defaults.
48
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]]
49
+ [Uses prune with ids: ["consolidation", "10", "11", "12", "13", "14"]]
50
50
  </example_consolidation>
51
51
 
52
52
  <example_completion>
53
53
  Assistant: [Runs tests, they pass]
54
54
  The tests passed. The feature is verified.
55
- [Uses prune with ids: ["completion", 20, 21]]
55
+ [Uses prune with ids: ["completion", "20", "21"]]
56
56
  </example_completion>
@@ -1,28 +1,4 @@
1
- import type { SessionStats, GCStats } from "../core/janitor";
2
- import type { Logger } from "../logger";
3
- export interface PluginState {
4
- prunedIds: Map<string, string[]>;
5
- stats: Map<string, SessionStats>;
6
- gcPending: Map<string, GCStats>;
7
- toolParameters: Map<string, ToolParameterEntry>;
8
- model: Map<string, ModelInfo>;
9
- googleToolCallMapping: Map<string, Map<string, string>>;
10
- restoredSessions: Set<string>;
11
- checkedSessions: Set<string>;
12
- subagentSessions: Set<string>;
13
- lastSeenSessionId: string | null;
14
- }
15
- export type ToolStatus = "pending" | "running" | "completed" | "error";
16
- export interface ToolParameterEntry {
17
- tool: string;
18
- parameters: any;
19
- status?: ToolStatus;
20
- error?: string;
21
- }
22
- export interface ModelInfo {
23
- providerID: string;
24
- modelID: string;
25
- }
26
- export declare function createPluginState(): PluginState;
27
- export declare function ensureSessionRestored(state: PluginState, sessionId: string, logger?: Logger): Promise<void>;
1
+ export * from "./persistence";
2
+ export * from "./types";
3
+ export * from "./state";
28
4
  //# sourceMappingURL=index.d.ts.map
@@ -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,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
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/state/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA"}
@@ -1,41 +1,4 @@
1
- import { loadSessionState } from "./persistence";
2
- export function createPluginState() {
3
- return {
4
- prunedIds: new Map(),
5
- stats: new Map(),
6
- gcPending: new Map(),
7
- toolParameters: new Map(),
8
- model: new Map(),
9
- googleToolCallMapping: new Map(),
10
- restoredSessions: new Set(),
11
- checkedSessions: new Set(),
12
- subagentSessions: new Set(),
13
- lastSeenSessionId: null,
14
- };
15
- }
16
- export async function ensureSessionRestored(state, sessionId, logger) {
17
- if (state.restoredSessions.has(sessionId)) {
18
- return;
19
- }
20
- state.restoredSessions.add(sessionId);
21
- const persisted = await loadSessionState(sessionId, logger);
22
- if (persisted) {
23
- if (!state.prunedIds.has(sessionId)) {
24
- state.prunedIds.set(sessionId, persisted.prunedIds);
25
- logger?.info("persist", "Restored prunedIds from disk", {
26
- sessionId: sessionId.slice(0, 8),
27
- count: persisted.prunedIds.length,
28
- });
29
- }
30
- if (!state.stats.has(sessionId)) {
31
- const stats = {
32
- totalToolsPruned: persisted.stats.totalToolsPruned,
33
- totalTokensSaved: persisted.stats.totalTokensSaved,
34
- totalGCTokens: persisted.stats.totalGCTokens ?? 0,
35
- totalGCTools: persisted.stats.totalGCTools ?? 0
36
- };
37
- state.stats.set(sessionId, stats);
38
- }
39
- }
40
- }
1
+ export * from "./persistence";
2
+ export * from "./types";
3
+ export * from "./state";
41
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
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
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/state/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA"}
@@ -3,14 +3,14 @@
3
3
  * Persists pruned tool IDs across sessions so they survive OpenCode restarts.
4
4
  * Storage location: ~/.local/share/opencode/storage/plugin/dcp/{sessionId}.json
5
5
  */
6
- import type { SessionStats } from "../core/janitor";
6
+ import type { SessionState, SessionStats, Prune } from "./types";
7
7
  import type { Logger } from "../logger";
8
8
  export interface PersistedSessionState {
9
9
  sessionName?: string;
10
- prunedIds: string[];
10
+ prune: Prune;
11
11
  stats: SessionStats;
12
12
  lastUpdated: string;
13
13
  }
14
- export declare function saveSessionState(sessionId: string, prunedIds: Set<string>, stats: SessionStats, logger?: Logger, sessionName?: string): Promise<void>;
15
- export declare function loadSessionState(sessionId: string, logger?: Logger): Promise<PersistedSessionState | null>;
14
+ export declare function saveSessionState(sessionState: SessionState, logger: Logger, sessionName?: string): Promise<void>;
15
+ export declare function loadSessionState(sessionId: string, logger: Logger): Promise<PersistedSessionState | null>;
16
16
  //# sourceMappingURL=persistence.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../../lib/state/persistence.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC,MAAM,WAAW,qBAAqB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,EAAE,YAAY,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACvB;AAsBD,wBAAsB,gBAAgB,CAClC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,EACtB,KAAK,EAAE,YAAY,EACnB,MAAM,CAAC,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,IAAI,CAAC,CA0Bf;AAED,wBAAsB,gBAAgB,CAClC,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAgCvC"}
1
+ {"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../../lib/state/persistence.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC,MAAM,WAAW,qBAAqB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,KAAK,CAAA;IACZ,KAAK,EAAE,YAAY,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACvB;AAsBD,wBAAsB,gBAAgB,CAClC,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,IAAI,CAAC,CA6Bf;AAED,wBAAsB,gBAAgB,CAClC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAmCvC"}
@@ -16,27 +16,29 @@ async function ensureStorageDir() {
16
16
  function getSessionFilePath(sessionId) {
17
17
  return join(STORAGE_DIR, `${sessionId}.json`);
18
18
  }
19
- export async function saveSessionState(sessionId, prunedIds, stats, logger, sessionName) {
19
+ export async function saveSessionState(sessionState, logger, sessionName) {
20
20
  try {
21
+ if (!sessionState.sessionId) {
22
+ return;
23
+ }
21
24
  await ensureStorageDir();
22
25
  const state = {
23
- ...(sessionName && { sessionName }),
24
- prunedIds: Array.from(prunedIds),
25
- stats,
26
+ sessionName: sessionName,
27
+ prune: sessionState.prune,
28
+ stats: sessionState.stats,
26
29
  lastUpdated: new Date().toISOString(),
27
30
  };
28
- const filePath = getSessionFilePath(sessionId);
31
+ const filePath = getSessionFilePath(sessionState.sessionId);
29
32
  const content = JSON.stringify(state, null, 2);
30
33
  await fs.writeFile(filePath, content, "utf-8");
31
- logger?.info("persist", "Saved session state to disk", {
32
- sessionId: sessionId.slice(0, 8),
33
- prunedIds: prunedIds.size,
34
- totalTokensSaved: stats.totalTokensSaved,
34
+ logger.info("Saved session state to disk", {
35
+ sessionId: sessionState.sessionId,
36
+ totalTokensSaved: state.stats.totalPruneTokens
35
37
  });
36
38
  }
37
39
  catch (error) {
38
- logger?.error("persist", "Failed to save session state", {
39
- sessionId: sessionId.slice(0, 8),
40
+ logger.error("Failed to save session state", {
41
+ sessionId: sessionState.sessionId,
40
42
  error: error?.message,
41
43
  });
42
44
  }
@@ -49,22 +51,24 @@ export async function loadSessionState(sessionId, logger) {
49
51
  }
50
52
  const content = await fs.readFile(filePath, "utf-8");
51
53
  const state = JSON.parse(content);
52
- if (!state || !Array.isArray(state.prunedIds) || !state.stats) {
53
- logger?.warn("persist", "Invalid session state file, ignoring", {
54
- sessionId: sessionId.slice(0, 8),
54
+ if (!state ||
55
+ !state.prune ||
56
+ !Array.isArray(state.prune.toolIds) ||
57
+ !state.stats) {
58
+ logger.warn("Invalid session state file, ignoring", {
59
+ sessionId: sessionId,
55
60
  });
56
61
  return null;
57
62
  }
58
- logger?.info("persist", "Loaded session state from disk", {
59
- sessionId: sessionId.slice(0, 8),
60
- prunedIds: state.prunedIds.length,
61
- totalTokensSaved: state.stats.totalTokensSaved,
63
+ logger.info("Loaded session state from disk", {
64
+ sessionId: sessionId,
65
+ totalTokensSaved: state.stats.totalPruneTokens
62
66
  });
63
67
  return state;
64
68
  }
65
69
  catch (error) {
66
- logger?.warn("persist", "Failed to load session state", {
67
- sessionId: sessionId.slice(0, 8),
70
+ logger.warn("Failed to load session state", {
71
+ sessionId: sessionId,
68
72
  error: error?.message,
69
73
  });
70
74
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../../lib/state/persistence.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAW5B,MAAM,WAAW,GAAG,IAAI,CACpB,OAAO,EAAE,EACT,QAAQ,EACR,OAAO,EACP,UAAU,EACV,SAAS,EACT,QAAQ,EACR,KAAK,CACR,CAAC;AAEF,KAAK,UAAU,gBAAgB;IAC3B,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC3B,MAAM,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,CAAC;AACL,CAAC;AAED,SAAS,kBAAkB,CAAC,SAAiB;IACzC,OAAO,IAAI,CAAC,WAAW,EAAE,GAAG,SAAS,OAAO,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAClC,SAAiB,EACjB,SAAsB,EACtB,KAAmB,EACnB,MAAe,EACf,WAAoB;IAEpB,IAAI,CAAC;QACD,MAAM,gBAAgB,EAAE,CAAC;QAEzB,MAAM,KAAK,GAA0B;YACjC,GAAG,CAAC,WAAW,IAAI,EAAE,WAAW,EAAE,CAAC;YACnC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;YAChC,KAAK;YACL,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACxC,CAAC;QAEF,MAAM,QAAQ,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/C,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAE/C,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,6BAA6B,EAAE;YACnD,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YAChC,SAAS,EAAE,SAAS,CAAC,IAAI;YACzB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;SAC3C,CAAC,CAAC;IACP,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,MAAM,EAAE,KAAK,CAAC,SAAS,EAAE,8BAA8B,EAAE;YACrD,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YAChC,KAAK,EAAE,KAAK,EAAE,OAAO;SACxB,CAAC,CAAC;IACP,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAClC,SAAiB,EACjB,MAAe;IAEf,IAAI,CAAC;QACD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAE/C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAA0B,CAAC;QAE3D,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YAC5D,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,sCAAsC,EAAE;gBAC5D,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;aACnC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,gCAAgC,EAAE;YACtD,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YAChC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;YACjC,gBAAgB,EAAE,KAAK,CAAC,KAAK,CAAC,gBAAgB;SACjD,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;IACjB,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,8BAA8B,EAAE;YACpD,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YAChC,KAAK,EAAE,KAAK,EAAE,OAAO;SACxB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IAChB,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../../lib/state/persistence.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { SessionState, WithParts } from "./types";
2
+ import type { Logger } from "../logger";
3
+ export declare const checkSession: (client: any, state: SessionState, logger: Logger, messages: WithParts[]) => Promise<void>;
4
+ export declare function createSessionState(): SessionState;
5
+ export declare function resetSessionState(state: SessionState): void;
6
+ export declare function ensureSessionInitialized(client: any, state: SessionState, sessionId: string, logger: Logger): Promise<void>;
7
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../lib/state/state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAsB,SAAS,EAAE,MAAM,SAAS,CAAA;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAKvC,eAAO,MAAM,YAAY,GACrB,QAAQ,GAAG,EACX,OAAO,YAAY,EACnB,QAAQ,MAAM,EACd,UAAU,SAAS,EAAE,KACtB,OAAO,CAAC,IAAI,CAiBd,CAAA;AAED,wBAAgB,kBAAkB,IAAI,YAAY,CAejD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAa3D;AAED,wBAAsB,wBAAwB,CAC1C,MAAM,EAAE,GAAG,EACX,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CA8Bf"}
@@ -0,0 +1,76 @@
1
+ import { loadSessionState } from "./persistence";
2
+ import { getLastUserMessage } from "../messages/utils";
3
+ import { isSubAgentSession } from "../utils";
4
+ export const checkSession = async (client, state, logger, messages) => {
5
+ const lastUserMessage = getLastUserMessage(messages);
6
+ if (!lastUserMessage) {
7
+ return;
8
+ }
9
+ const lastSessionId = lastUserMessage.info.sessionID;
10
+ if (state.sessionId === null || state.sessionId !== lastSessionId) {
11
+ logger.info(`Session changed: ${state.sessionId} -> ${lastSessionId}`);
12
+ try {
13
+ await ensureSessionInitialized(client, state, lastSessionId, logger);
14
+ }
15
+ catch (err) {
16
+ logger.error("Failed to initialize session state", { error: err.message });
17
+ }
18
+ }
19
+ };
20
+ export function createSessionState() {
21
+ return {
22
+ sessionId: null,
23
+ isSubAgent: false,
24
+ prune: {
25
+ toolIds: []
26
+ },
27
+ stats: {
28
+ pruneTokenCounter: 0,
29
+ totalPruneTokens: 0,
30
+ },
31
+ toolParameters: new Map(),
32
+ nudgeCounter: 0,
33
+ lastToolPrune: false
34
+ };
35
+ }
36
+ export function resetSessionState(state) {
37
+ state.sessionId = null;
38
+ state.isSubAgent = false;
39
+ state.prune = {
40
+ toolIds: []
41
+ };
42
+ state.stats = {
43
+ pruneTokenCounter: 0,
44
+ totalPruneTokens: 0,
45
+ };
46
+ state.toolParameters.clear();
47
+ state.nudgeCounter = 0;
48
+ state.lastToolPrune = false;
49
+ }
50
+ export async function ensureSessionInitialized(client, state, sessionId, logger) {
51
+ if (state.sessionId === sessionId) {
52
+ return;
53
+ }
54
+ logger.info("session ID = " + sessionId);
55
+ logger.info("Initializing session state", { sessionId: sessionId });
56
+ // Clear previous session data
57
+ resetSessionState(state);
58
+ state.sessionId = sessionId;
59
+ const isSubAgent = await isSubAgentSession(client, sessionId);
60
+ state.isSubAgent = isSubAgent;
61
+ logger.info("isSubAgent = " + isSubAgent);
62
+ // Load session data from storage
63
+ const persisted = await loadSessionState(sessionId, logger);
64
+ if (persisted === null) {
65
+ return;
66
+ }
67
+ // Populate state with loaded data
68
+ state.prune = {
69
+ toolIds: persisted.prune.toolIds || []
70
+ };
71
+ state.stats = {
72
+ pruneTokenCounter: persisted.stats?.pruneTokenCounter || 0,
73
+ totalPruneTokens: persisted.stats?.totalPruneTokens || 0,
74
+ };
75
+ }
76
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../lib/state/state.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,13 @@
1
- import type { PluginState } from "./index";
1
+ import type { SessionState, WithParts } from "./index";
2
2
  import type { Logger } from "../logger";
3
- import type { ToolTracker } from "../fetch-wrapper/tool-tracker";
3
+ import { PluginConfig } from "../config";
4
4
  /**
5
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.
8
6
  */
9
- export declare function syncToolCache(client: any, sessionId: string, state: PluginState, tracker?: ToolTracker, protectedTools?: Set<string>, logger?: Logger): Promise<void>;
7
+ export declare function syncToolCache(state: SessionState, config: PluginConfig, logger: Logger, messages: WithParts[]): Promise<void>;
10
8
  /**
11
9
  * Trim the tool parameters cache to prevent unbounded memory growth.
12
10
  * Uses FIFO eviction - removes oldest entries first.
13
11
  */
14
- export declare function trimToolParametersCache(state: PluginState): void;
12
+ export declare function trimToolParametersCache(state: SessionState): void;
15
13
  //# sourceMappingURL=tool-cache.d.ts.map
@@ -1 +1 @@
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,CAgEf;AAED;;;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,YAAY,EAAc,SAAS,EAAE,MAAM,SAAS,CAAA;AAClE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAIxC;;GAEG;AACH,wBAAsB,aAAa,CAC/B,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,SAAS,EAAE,GACtB,OAAO,CAAC,IAAI,CAAC,CAsCf;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAWjE"}