@tarquinen/opencode-dcp 0.3.9 → 0.3.10

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.
@@ -19,25 +19,51 @@ export class Logger {
19
19
  await mkdir(this.logDir, { recursive: true });
20
20
  }
21
21
  }
22
+ /**
23
+ * Formats data object into a compact, readable string
24
+ * e.g., {saved: "~4.1K", pruned: 4, duplicates: 0} -> "saved=~4.1K pruned=4 duplicates=0"
25
+ */
26
+ formatData(data) {
27
+ if (!data)
28
+ return "";
29
+ const parts = [];
30
+ for (const [key, value] of Object.entries(data)) {
31
+ if (value === undefined || value === null)
32
+ continue;
33
+ // Format arrays compactly
34
+ if (Array.isArray(value)) {
35
+ if (value.length === 0)
36
+ continue;
37
+ parts.push(`${key}=[${value.slice(0, 3).join(",")}${value.length > 3 ? `...+${value.length - 3}` : ""}]`);
38
+ }
39
+ // Format objects inline if small, skip if large
40
+ else if (typeof value === 'object') {
41
+ const str = JSON.stringify(value);
42
+ if (str.length < 50) {
43
+ parts.push(`${key}=${str}`);
44
+ }
45
+ }
46
+ // Format primitives directly
47
+ else {
48
+ parts.push(`${key}=${value}`);
49
+ }
50
+ }
51
+ return parts.join(" ");
52
+ }
22
53
  async write(level, component, message, data) {
23
54
  if (!this.enabled)
24
55
  return;
25
56
  try {
26
57
  await this.ensureLogDir();
27
58
  const timestamp = new Date().toISOString();
28
- const logEntry = {
29
- timestamp,
30
- level,
31
- component,
32
- message,
33
- ...(data && { data })
34
- };
59
+ const dataStr = this.formatData(data);
60
+ // Simple, readable format: TIMESTAMP LEVEL component: message | key=value key=value
61
+ const logLine = `${timestamp} ${level.padEnd(5)} ${component}: ${message}${dataStr ? " | " + dataStr : ""}\n`;
35
62
  const dailyLogDir = join(this.logDir, "daily");
36
63
  if (!existsSync(dailyLogDir)) {
37
64
  await mkdir(dailyLogDir, { recursive: true });
38
65
  }
39
66
  const logFile = join(dailyLogDir, `${new Date().toISOString().split('T')[0]}.log`);
40
- const logLine = JSON.stringify(logEntry) + "\n";
41
67
  await writeFile(logFile, logLine, { flag: "a" });
42
68
  }
43
69
  catch (error) {
@@ -117,7 +143,6 @@ export class Logger {
117
143
  // We detect being "inside a string" by tracking quotes
118
144
  let result = '';
119
145
  let inString = false;
120
- let escaped = false;
121
146
  for (let i = 0; i < jsonText.length; i++) {
122
147
  const char = jsonText[i];
123
148
  const prevChar = i > 0 ? jsonText[i - 1] : '';
@@ -206,14 +231,6 @@ export class Logger {
206
231
  // Pretty print with 2-space indentation
207
232
  const jsonString = JSON.stringify(content, null, 2);
208
233
  await writeFile(filepath, jsonString);
209
- // Log that we saved it
210
- await this.debug("logger", "Saved AI context", {
211
- sessionID,
212
- filepath,
213
- messageCount: messages.length,
214
- isJanitorShadow,
215
- parsed: isJanitorShadow
216
- });
217
234
  }
218
235
  catch (error) {
219
236
  // Silently fail - don't break the plugin if logging fails
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../lib/logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../lib/logger.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"model-selector.d.ts","sourceRoot":"","sources":["../../lib/model-selector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACxC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,MAAM,WAAW,SAAS;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CASlD,CAAC;AAmBF,MAAM,WAAW,oBAAoB;IACjC,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,YAAY,GAAG,QAAQ,GAAG,UAAU,CAAC;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,SAAS,CAAC;CAC3B;AA8CD;;;;;;;;;;;;GAYG;AACH,wBAAsB,WAAW,CAC7B,YAAY,CAAC,EAAE,SAAS,EACxB,MAAM,CAAC,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,oBAAoB,CAAC,CAgJ/B;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAgCjG"}
1
+ {"version":3,"file":"model-selector.d.ts","sourceRoot":"","sources":["../../lib/model-selector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACxC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,MAAM,WAAW,SAAS;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CASlD,CAAC;AAmBF,MAAM,WAAW,oBAAoB;IACjC,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,YAAY,GAAG,QAAQ,GAAG,UAAU,CAAC;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,SAAS,CAAC;CAC3B;AA8CD;;;;;;;;;;;;GAYG;AACH,wBAAsB,WAAW,CAC7B,YAAY,CAAC,EAAE,SAAS,EACxB,MAAM,CAAC,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,oBAAoB,CAAC,CAiF/B;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAqBjG"}
@@ -89,7 +89,6 @@ async function importOpencodeAI(logger, maxRetries = 3, delayMs = 100, workspace
89
89
  * @returns Selected model with metadata about the selection
90
90
  */
91
91
  export async function selectModel(currentModel, logger, configModel, workspaceDir) {
92
- logger?.info('model-selector', 'Model selection started', { currentModel, configModel, workspaceDir });
93
92
  // Lazy import with retry logic - handles plugin initialization timing issues
94
93
  // Some providers (like openai via @openhax/codex) may not be ready on first attempt
95
94
  // Pass workspaceDir so OpencodeAI can find project-level config and plugins
@@ -99,22 +98,12 @@ export async function selectModel(currentModel, logger, configModel, workspaceDi
99
98
  if (configModel) {
100
99
  const parts = configModel.split('/');
101
100
  if (parts.length !== 2) {
102
- logger?.warn('model-selector', 'Invalid config model format, expected "provider/model"', {
103
- configModel
104
- });
101
+ logger?.warn('model-selector', 'Invalid config model format', { configModel });
105
102
  }
106
103
  else {
107
104
  const [providerID, modelID] = parts;
108
- logger?.debug('model-selector', 'Attempting to use config-specified model', {
109
- providerID,
110
- modelID
111
- });
112
105
  try {
113
106
  const model = await opencodeAI.getLanguageModel(providerID, modelID);
114
- logger?.info('model-selector', '✓ Successfully using config-specified model', {
115
- providerID,
116
- modelID
117
- });
118
107
  return {
119
108
  model,
120
109
  modelInfo: { providerID, modelID },
@@ -123,9 +112,7 @@ export async function selectModel(currentModel, logger, configModel, workspaceDi
123
112
  };
124
113
  }
125
114
  catch (error) {
126
- logger?.warn('model-selector', '✗ Failed to use config-specified model, falling back', {
127
- providerID,
128
- modelID,
115
+ logger?.warn('model-selector', `Config model failed: ${providerID}/${modelID}`, {
129
116
  error: error.message
130
117
  });
131
118
  failedModelInfo = { providerID, modelID };
@@ -135,27 +122,14 @@ export async function selectModel(currentModel, logger, configModel, workspaceDi
135
122
  // Step 2: Try user's current model (if not skipped provider)
136
123
  if (currentModel) {
137
124
  if (shouldSkipProvider(currentModel.providerID)) {
138
- logger?.info('model-selector', 'Skipping user model (provider not suitable for background tasks)', {
139
- providerID: currentModel.providerID,
140
- modelID: currentModel.modelID,
141
- reason: 'github-copilot and anthropic are skipped for analysis'
142
- });
143
125
  // Track as failed so we can show toast
144
126
  if (!failedModelInfo) {
145
127
  failedModelInfo = currentModel;
146
128
  }
147
129
  }
148
130
  else {
149
- logger?.debug('model-selector', 'Attempting to use user\'s current model', {
150
- providerID: currentModel.providerID,
151
- modelID: currentModel.modelID
152
- });
153
131
  try {
154
132
  const model = await opencodeAI.getLanguageModel(currentModel.providerID, currentModel.modelID);
155
- logger?.info('model-selector', '✓ Successfully using user\'s current model', {
156
- providerID: currentModel.providerID,
157
- modelID: currentModel.modelID
158
- });
159
133
  return {
160
134
  model,
161
135
  modelInfo: currentModel,
@@ -164,11 +138,6 @@ export async function selectModel(currentModel, logger, configModel, workspaceDi
164
138
  };
165
139
  }
166
140
  catch (error) {
167
- logger?.warn('model-selector', '✗ Failed to use user\'s current model', {
168
- providerID: currentModel.providerID,
169
- modelID: currentModel.modelID,
170
- error: error.message
171
- });
172
141
  if (!failedModelInfo) {
173
142
  failedModelInfo = currentModel;
174
143
  }
@@ -176,38 +145,15 @@ export async function selectModel(currentModel, logger, configModel, workspaceDi
176
145
  }
177
146
  }
178
147
  // Step 3: Try fallback models from authenticated providers
179
- logger?.debug('model-selector', 'Fetching available authenticated providers');
180
148
  const providers = await opencodeAI.listProviders();
181
- const availableProviderIDs = Object.keys(providers);
182
- logger?.info('model-selector', 'Available authenticated providers', {
183
- providerCount: availableProviderIDs.length,
184
- providerIDs: availableProviderIDs,
185
- providers: Object.entries(providers).map(([id, info]) => ({
186
- id,
187
- source: info.source,
188
- name: info.info?.name
189
- }))
190
- });
191
- logger?.debug('model-selector', 'Attempting fallback models from providers', {
192
- priorityOrder: PROVIDER_PRIORITY
193
- });
194
149
  for (const providerID of PROVIDER_PRIORITY) {
195
- if (!providers[providerID]) {
196
- logger?.debug('model-selector', `Skipping ${providerID} (not authenticated)`);
150
+ if (!providers[providerID])
197
151
  continue;
198
- }
199
152
  const fallbackModelID = FALLBACK_MODELS[providerID];
200
- if (!fallbackModelID) {
201
- logger?.debug('model-selector', `Skipping ${providerID} (no fallback model configured)`);
153
+ if (!fallbackModelID)
202
154
  continue;
203
- }
204
- logger?.debug('model-selector', `Attempting ${providerID}/${fallbackModelID}`);
205
155
  try {
206
156
  const model = await opencodeAI.getLanguageModel(providerID, fallbackModelID);
207
- logger?.info('model-selector', `✓ Successfully using fallback model`, {
208
- providerID,
209
- modelID: fallbackModelID
210
- });
211
157
  return {
212
158
  model,
213
159
  modelInfo: { providerID, modelID: fallbackModelID },
@@ -217,9 +163,6 @@ export async function selectModel(currentModel, logger, configModel, workspaceDi
217
163
  };
218
164
  }
219
165
  catch (error) {
220
- logger?.warn('model-selector', `✗ Failed to use ${providerID}/${fallbackModelID}`, {
221
- error: error.message
222
- });
223
166
  continue;
224
167
  }
225
168
  }
@@ -230,13 +173,8 @@ export async function selectModel(currentModel, logger, configModel, workspaceDi
230
173
  * This can be used by the plugin to get the current session's model
231
174
  */
232
175
  export function extractModelFromSession(sessionState, logger) {
233
- logger?.debug('model-selector', 'Extracting model from session state');
234
176
  // Try to get from ACP session state
235
177
  if (sessionState?.model?.providerID && sessionState?.model?.modelID) {
236
- logger?.info('model-selector', 'Found model in ACP session state', {
237
- providerID: sessionState.model.providerID,
238
- modelID: sessionState.model.modelID
239
- });
240
178
  return {
241
179
  providerID: sessionState.model.providerID,
242
180
  modelID: sessionState.model.modelID
@@ -246,17 +184,12 @@ export function extractModelFromSession(sessionState, logger) {
246
184
  if (sessionState?.messages && Array.isArray(sessionState.messages)) {
247
185
  const lastMessage = sessionState.messages[sessionState.messages.length - 1];
248
186
  if (lastMessage?.model?.providerID && lastMessage?.model?.modelID) {
249
- logger?.info('model-selector', 'Found model in last message', {
250
- providerID: lastMessage.model.providerID,
251
- modelID: lastMessage.model.modelID
252
- });
253
187
  return {
254
188
  providerID: lastMessage.model.providerID,
255
189
  modelID: lastMessage.model.modelID
256
190
  };
257
191
  }
258
192
  }
259
- logger?.warn('model-selector', 'Could not extract model from session state');
260
193
  return undefined;
261
194
  }
262
195
  //# sourceMappingURL=model-selector.js.map
@@ -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,6 +1,13 @@
1
+ export interface SessionStats {
2
+ totalToolsPruned: number;
3
+ totalTokensSaved: number;
4
+ }
1
5
  export declare class StateManager {
2
6
  private state;
7
+ private stats;
3
8
  get(sessionID: string): Promise<string[]>;
4
9
  set(sessionID: string, prunedIds: string[]): Promise<void>;
10
+ getStats(sessionID: string): Promise<SessionStats>;
11
+ addStats(sessionID: string, toolsPruned: number, tokensSaved: number): Promise<SessionStats>;
5
12
  }
6
13
  //# sourceMappingURL=state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../lib/state.ts"],"names":[],"mappings":"AAEA,qBAAa,YAAY;IACrB,OAAO,CAAC,KAAK,CAAmC;IAE1C,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAIzC,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAGnE"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../lib/state.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IACzB,gBAAgB,EAAE,MAAM,CAAA;IACxB,gBAAgB,EAAE,MAAM,CAAA;CAC3B;AAED,qBAAa,YAAY;IACrB,OAAO,CAAC,KAAK,CAAmC;IAChD,OAAO,CAAC,KAAK,CAAuC;IAE9C,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAIzC,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1D,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAIlD,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;CASrG"}
package/dist/lib/state.js CHANGED
@@ -1,11 +1,24 @@
1
1
  // lib/state.ts
2
2
  export class StateManager {
3
3
  state = new Map();
4
+ stats = new Map();
4
5
  async get(sessionID) {
5
6
  return this.state.get(sessionID) ?? [];
6
7
  }
7
8
  async set(sessionID, prunedIds) {
8
9
  this.state.set(sessionID, prunedIds);
9
10
  }
11
+ async getStats(sessionID) {
12
+ return this.stats.get(sessionID) ?? { totalToolsPruned: 0, totalTokensSaved: 0 };
13
+ }
14
+ async addStats(sessionID, toolsPruned, tokensSaved) {
15
+ const current = await this.getStats(sessionID);
16
+ const updated = {
17
+ totalToolsPruned: current.totalToolsPruned + toolsPruned,
18
+ totalTokensSaved: current.totalTokensSaved + tokensSaved
19
+ };
20
+ this.stats.set(sessionID, updated);
21
+ return updated;
22
+ }
10
23
  }
11
24
  //# sourceMappingURL=state.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../lib/state.ts"],"names":[],"mappings":"AAAA,eAAe;AAEf,MAAM,OAAO,YAAY;IACb,KAAK,GAA0B,IAAI,GAAG,EAAE,CAAA;IAEhD,KAAK,CAAC,GAAG,CAAC,SAAiB;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA;IAC1C,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,SAAiB,EAAE,SAAmB;QAC5C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;IACxC,CAAC;CACJ"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../lib/state.ts"],"names":[],"mappings":"AAAA,eAAe;AAOf,MAAM,OAAO,YAAY;IACb,KAAK,GAA0B,IAAI,GAAG,EAAE,CAAA;IACxC,KAAK,GAA8B,IAAI,GAAG,EAAE,CAAA;IAEpD,KAAK,CAAC,GAAG,CAAC,SAAiB;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA;IAC1C,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,SAAiB,EAAE,SAAmB;QAC5C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;IACxC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,SAAiB;QAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,gBAAgB,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAA;IACpF,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,SAAiB,EAAE,WAAmB,EAAE,WAAmB;QACtE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;QAC9C,MAAM,OAAO,GAAiB;YAC1B,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,GAAG,WAAW;YACxD,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,GAAG,WAAW;SAC3D,CAAA;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QAClC,OAAO,OAAO,CAAA;IAClB,CAAC;CACJ"}
@@ -9,15 +9,13 @@
9
9
  * during plugin initialization. The package is only loaded when tokenization
10
10
  * is actually needed.
11
11
  */
12
- import type { Logger } from './logger';
13
12
  /**
14
13
  * Batch estimates tokens for multiple text samples
15
14
  *
16
15
  * @param texts - Array of text strings to tokenize
17
- * @param logger - Optional logger instance
18
16
  * @returns Array of token counts
19
17
  */
20
- export declare function estimateTokensBatch(texts: string[], logger?: Logger): Promise<number[]>;
18
+ export declare function estimateTokensBatch(texts: string[]): Promise<number[]>;
21
19
  /**
22
20
  * Formats token count for display (e.g., 1500 -> "1.5K", 50 -> "50")
23
21
  *
@@ -1 +1 @@
1
- {"version":3,"file":"tokenizer.d.ts","sourceRoot":"","sources":["../../lib/tokenizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEtC;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACrC,KAAK,EAAE,MAAM,EAAE,EACf,MAAM,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,EAAE,CAAC,CAyBnB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAKvD"}
1
+ {"version":3,"file":"tokenizer.d.ts","sourceRoot":"","sources":["../../lib/tokenizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAS5E;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAKvD"}
@@ -13,29 +13,16 @@
13
13
  * Batch estimates tokens for multiple text samples
14
14
  *
15
15
  * @param texts - Array of text strings to tokenize
16
- * @param logger - Optional logger instance
17
16
  * @returns Array of token counts
18
17
  */
19
- export async function estimateTokensBatch(texts, logger) {
18
+ export async function estimateTokensBatch(texts) {
20
19
  try {
21
20
  // Lazy import - only load the 53MB gpt-tokenizer package when actually needed
22
21
  const { encode } = await import('gpt-tokenizer');
23
- const results = texts.map(text => {
24
- const tokens = encode(text);
25
- return tokens.length;
26
- });
27
- logger?.debug('tokenizer', 'Batch token estimation complete', {
28
- batchSize: texts.length,
29
- totalTokens: results.reduce((sum, count) => sum + count, 0),
30
- avgTokensPerText: Math.round(results.reduce((sum, count) => sum + count, 0) / results.length)
31
- });
32
- return results;
22
+ return texts.map(text => encode(text).length);
33
23
  }
34
- catch (error) {
35
- logger?.warn('tokenizer', 'Batch tokenization failed, using fallback', {
36
- error: error.message
37
- });
38
- // Fallback to character-based estimation
24
+ catch {
25
+ // Fallback to character-based estimation if tokenizer fails
39
26
  return texts.map(text => Math.round(text.length / 4));
40
27
  }
41
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tokenizer.js","sourceRoot":"","sources":["../../lib/tokenizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACrC,KAAe,EACf,MAAe;IAEf,IAAI,CAAC;QACD,8EAA8E;QAC9E,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAA;QAEhD,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;YAC3B,OAAO,MAAM,CAAC,MAAM,CAAA;QACxB,CAAC,CAAC,CAAA;QAEF,MAAM,EAAE,KAAK,CAAC,WAAW,EAAE,iCAAiC,EAAE;YAC1D,SAAS,EAAE,KAAK,CAAC,MAAM;YACvB,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC;YAC3D,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;SAChG,CAAC,CAAA;QAEF,OAAO,OAAO,CAAA;IAClB,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,2CAA2C,EAAE;YACnE,KAAK,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC,CAAA;QAEF,yCAAyC;QACzC,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;IACzD,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAc;IAC3C,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACjB,OAAO,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IAC/D,CAAC;IACD,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAA;AAC5B,CAAC"}
1
+ {"version":3,"file":"tokenizer.js","sourceRoot":"","sources":["../../lib/tokenizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,KAAe;IACrD,IAAI,CAAC;QACD,8EAA8E;QAC9E,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAA;QAChD,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAA;IACjD,CAAC;IAAC,MAAM,CAAC;QACL,4DAA4D;QAC5D,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;IACzD,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAc;IAC3C,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACjB,OAAO,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IAC/D,CAAC;IACD,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAA;AAC5B,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "@tarquinen/opencode-dcp",
4
- "version": "0.3.9",
4
+ "version": "0.3.10",
5
5
  "type": "module",
6
6
  "description": "OpenCode plugin that optimizes token usage by pruning obsolete tool outputs from conversation context",
7
7
  "main": "./dist/index.js",