@tarquinen/opencode-dcp 0.1.12 → 0.2.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.
package/dist/index.d.ts CHANGED
@@ -1,24 +1,4 @@
1
- declare const _default: (ctx: import("@opencode-ai/plugin").PluginInput) => Promise<{
2
- /**
3
- * Event Hook: Triggers janitor analysis when session becomes idle
4
- */
5
- event: ({ event }: {
6
- event: import("@opencode-ai/sdk").Event;
7
- }) => Promise<void>;
8
- /**
9
- * Chat Params Hook: Wraps fetch function to filter pruned tool responses
10
- */
11
- "chat.params": (input: {
12
- sessionID: string;
13
- agent: string;
14
- model: import("@opencode-ai/sdk").Model;
15
- provider: import("@opencode-ai/sdk").Provider;
16
- message: import("@opencode-ai/sdk").UserMessage;
17
- }, output: {
18
- temperature: number;
19
- topP: number;
20
- options: Record<string, any>;
21
- }) => Promise<void>;
22
- }>;
23
- export default _default;
1
+ import type { Plugin } from "@opencode-ai/plugin";
2
+ declare const plugin: Plugin;
3
+ export default plugin;
24
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";IAgFQ;;OAEG;;;;IA8BH;;OAEG;;;;;;;;;;;;;AAzGX,wBAoPmB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAuCjD,QAAA,MAAM,MAAM,EAAE,MAqUK,CAAA;AAEnB,eAAe,MAAM,CAAA"}
package/dist/index.js CHANGED
@@ -4,7 +4,32 @@ import { StateManager } from "./lib/state";
4
4
  import { Janitor } from "./lib/janitor";
5
5
  import { join } from "path";
6
6
  import { homedir } from "os";
7
- export default (async (ctx) => {
7
+ /**
8
+ * Checks if a session is a subagent (child session)
9
+ * Subagent sessions should skip pruning operations
10
+ */
11
+ async function isSubagentSession(client, sessionID, logger) {
12
+ try {
13
+ const result = await client.session.get({ path: { id: sessionID } });
14
+ if (result.data?.parentID) {
15
+ logger.debug("subagent-check", "Detected subagent session, skipping pruning", {
16
+ sessionID,
17
+ parentID: result.data.parentID
18
+ });
19
+ return true;
20
+ }
21
+ return false;
22
+ }
23
+ catch (error) {
24
+ logger.error("subagent-check", "Failed to check if session is subagent", {
25
+ sessionID,
26
+ error: error.message
27
+ });
28
+ // On error, assume it's not a subagent and continue (fail open)
29
+ return false;
30
+ }
31
+ }
32
+ const plugin = (async (ctx) => {
8
33
  const config = getConfig();
9
34
  // Suppress AI SDK warnings about responseFormat (harmless for our use case)
10
35
  if (typeof globalThis !== 'undefined') {
@@ -14,7 +39,8 @@ export default (async (ctx) => {
14
39
  const logger = new Logger(config.debug);
15
40
  const stateManager = new StateManager();
16
41
  const toolParametersCache = new Map(); // callID -> parameters
17
- const janitor = new Janitor(ctx.client, stateManager, logger, toolParametersCache, config.protectedTools);
42
+ const modelCache = new Map(); // sessionID -> model info
43
+ const janitor = new Janitor(ctx.client, stateManager, logger, toolParametersCache, config.protectedTools, modelCache);
18
44
  const cacheToolParameters = (messages, component) => {
19
45
  for (const message of messages) {
20
46
  if (message.role !== 'assistant' || !Array.isArray(message.tool_calls)) {
@@ -44,15 +70,59 @@ export default (async (ctx) => {
44
70
  }
45
71
  }
46
72
  };
47
- // Lightweight global fetch wrapper that only caches tool parameters so Janitor can display
48
- // meaningful metadata even if the plugin loads mid-session before chat.params runs.
73
+ // Global fetch wrapper that both caches tool parameters AND performs pruning
74
+ // This works because all providers ultimately call globalThis.fetch
49
75
  const originalGlobalFetch = globalThis.fetch;
50
76
  globalThis.fetch = async (input, init) => {
51
77
  if (init?.body && typeof init.body === 'string') {
52
78
  try {
53
79
  const body = JSON.parse(init.body);
54
80
  if (body.messages && Array.isArray(body.messages)) {
81
+ // Cache tool parameters for janitor metadata
55
82
  cacheToolParameters(body.messages, "global-fetch");
83
+ // Perform pruning: collect all pruned IDs across all non-subagent sessions
84
+ const toolMessages = body.messages.filter((m) => m.role === 'tool');
85
+ if (toolMessages.length > 0) {
86
+ logger.debug("global-fetch", "Found tool messages in request", {
87
+ toolMessageCount: toolMessages.length,
88
+ toolCallIds: toolMessages.map((m) => m.tool_call_id).slice(0, 5)
89
+ });
90
+ // Collect all pruned IDs across all sessions, excluding subagent sessions
91
+ const allSessions = await ctx.client.session.list();
92
+ const allPrunedIds = new Set();
93
+ if (allSessions.data) {
94
+ for (const session of allSessions.data) {
95
+ // Skip subagent sessions
96
+ if (session.parentID) {
97
+ continue;
98
+ }
99
+ const prunedIds = await stateManager.get(session.id);
100
+ prunedIds.forEach(id => allPrunedIds.add(id));
101
+ }
102
+ }
103
+ if (allPrunedIds.size > 0) {
104
+ let replacedCount = 0;
105
+ body.messages = body.messages.map((m) => {
106
+ if (m.role === 'tool' && allPrunedIds.has(m.tool_call_id)) {
107
+ replacedCount++;
108
+ return {
109
+ ...m,
110
+ content: '[Output removed to save context - information superseded or no longer needed]'
111
+ };
112
+ }
113
+ return m;
114
+ });
115
+ if (replacedCount > 0) {
116
+ logger.info("global-fetch", "✂️ Replaced pruned tool messages", {
117
+ totalPrunedIds: allPrunedIds.size,
118
+ replacedCount: replacedCount,
119
+ totalMessages: body.messages.length
120
+ });
121
+ // Update the request body with modified messages
122
+ init.body = JSON.stringify(body);
123
+ }
124
+ }
125
+ }
56
126
  }
57
127
  }
58
128
  catch (e) {
@@ -73,16 +143,9 @@ export default (async (ctx) => {
73
143
  */
74
144
  event: async ({ event }) => {
75
145
  if (event.type === "session.status" && event.properties.status.type === "idle") {
76
- // Get session info to check if it's a subagent
77
- const result = await ctx.client.session.get({ path: { id: event.properties.sessionID } });
78
146
  // Skip pruning for subagent sessions
79
- if (result.data?.parentID) {
80
- logger.debug("event", "Skipping janitor for subagent session", {
81
- sessionID: event.properties.sessionID,
82
- parentID: result.data.parentID
83
- });
147
+ if (await isSubagentSession(ctx.client, event.properties.sessionID, logger))
84
148
  return;
85
- }
86
149
  logger.debug("event", "Session became idle, triggering janitor", {
87
150
  sessionID: event.properties.sessionID
88
151
  });
@@ -101,16 +164,53 @@ export default (async (ctx) => {
101
164
  */
102
165
  "chat.params": async (input, output) => {
103
166
  const sessionId = input.sessionID;
104
- // Get session info to check if it's a subagent
105
- const result = await ctx.client.session.get({ path: { id: sessionId } });
106
- // Skip pruning for subagent sessions
107
- if (result.data?.parentID) {
108
- logger.debug("chat.params", "Skipping context pruning for subagent session", {
167
+ // Debug: Log the entire input structure to see what we're getting
168
+ logger.debug("chat.params", "Hook input structure", {
169
+ sessionID: sessionId,
170
+ hasProvider: !!input.provider,
171
+ hasModel: !!input.model,
172
+ providerKeys: input.provider ? Object.keys(input.provider) : [],
173
+ provider: input.provider,
174
+ modelKeys: input.model ? Object.keys(input.model) : [],
175
+ model: input.model
176
+ });
177
+ // Cache model information for this session so janitor can access it
178
+ // The provider.id is actually nested at provider.info.id (not in SDK types)
179
+ let providerID = input.provider?.info?.id || input.provider?.id;
180
+ const modelID = input.model?.id;
181
+ // If provider.id is not available, try to get it from the message
182
+ if (!providerID && input.message?.model?.providerID) {
183
+ providerID = input.message.model.providerID;
184
+ logger.debug("chat.params", "Got providerID from message instead of provider object", {
185
+ sessionID: sessionId,
186
+ providerID: providerID
187
+ });
188
+ }
189
+ if (providerID && modelID) {
190
+ modelCache.set(sessionId, {
191
+ providerID: providerID,
192
+ modelID: modelID
193
+ });
194
+ logger.debug("chat.params", "Cached model info for session", {
195
+ sessionID: sessionId,
196
+ providerID: providerID,
197
+ modelID: modelID
198
+ });
199
+ }
200
+ else {
201
+ logger.warn("chat.params", "Missing provider or model info in hook input", {
109
202
  sessionID: sessionId,
110
- parentID: result.data.parentID
203
+ hasProvider: !!input.provider,
204
+ hasModel: !!input.model,
205
+ providerID: providerID,
206
+ modelID: modelID,
207
+ inputKeys: Object.keys(input),
208
+ messageModel: input.message?.model
111
209
  });
112
- return; // Don't wrap fetch, let it pass through unchanged
113
210
  }
211
+ // Skip pruning for subagent sessions
212
+ if (await isSubagentSession(ctx.client, sessionId, logger))
213
+ return;
114
214
  logger.debug("chat.params", "Wrapping fetch for session", {
115
215
  sessionID: sessionId,
116
216
  hasFetch: !!output.options["fetch"],
@@ -222,4 +322,5 @@ export default (async (ctx) => {
222
322
  },
223
323
  };
224
324
  });
325
+ export default plugin;
225
326
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,11 @@ export declare class Janitor {
6
6
  private logger;
7
7
  private toolParametersCache;
8
8
  private protectedTools;
9
- constructor(client: any, stateManager: StateManager, logger: Logger, toolParametersCache: Map<string, any>, protectedTools: string[]);
9
+ private modelCache;
10
+ constructor(client: any, stateManager: StateManager, logger: Logger, toolParametersCache: Map<string, any>, protectedTools: string[], modelCache: Map<string, {
11
+ providerID: string;
12
+ modelID: string;
13
+ }>);
10
14
  run(sessionID: string): Promise<void>;
11
15
  }
12
16
  //# sourceMappingURL=janitor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"janitor.d.ts","sourceRoot":"","sources":["../../lib/janitor.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAG3C,qBAAa,OAAO;IAEZ,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,cAAc;gBAJd,MAAM,EAAE,GAAG,EACX,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,EACd,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EACrC,cAAc,EAAE,MAAM,EAAE;IAG9B,GAAG,CAAC,SAAS,EAAE,MAAM;CAsX9B"}
1
+ {"version":3,"file":"janitor.d.ts","sourceRoot":"","sources":["../../lib/janitor.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAI3C,qBAAa,OAAO;IAEZ,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,UAAU;gBALV,MAAM,EAAE,GAAG,EACX,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,EACd,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EACrC,cAAc,EAAE,MAAM,EAAE,EACxB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAGtE,GAAG,CAAC,SAAS,EAAE,MAAM;CA8Y9B"}
@@ -1,31 +1,34 @@
1
1
  import { generateObject } from "ai";
2
- import { createOpenAICompatible } from "@ai-sdk/openai-compatible";
3
2
  import { z } from "zod";
4
3
  import { buildAnalysisPrompt } from "./prompt";
4
+ import { selectModel, extractModelFromSession } from "./model-selector";
5
5
  export class Janitor {
6
6
  client;
7
7
  stateManager;
8
8
  logger;
9
9
  toolParametersCache;
10
10
  protectedTools;
11
- constructor(client, stateManager, logger, toolParametersCache, protectedTools) {
11
+ modelCache;
12
+ constructor(client, stateManager, logger, toolParametersCache, protectedTools, modelCache) {
12
13
  this.client = client;
13
14
  this.stateManager = stateManager;
14
15
  this.logger = logger;
15
16
  this.toolParametersCache = toolParametersCache;
16
17
  this.protectedTools = protectedTools;
18
+ this.modelCache = modelCache;
17
19
  }
18
20
  async run(sessionID) {
19
21
  this.logger.info("janitor", "Starting analysis", { sessionID });
20
22
  try {
21
- // Fetch session history from OpenCode API
22
- this.logger.debug("janitor", "Fetching session messages", { sessionID });
23
- const response = await this.client.session.messages({
24
- path: { id: sessionID },
25
- query: { limit: 100 }
26
- });
23
+ // Fetch session info and messages from OpenCode API
24
+ this.logger.debug("janitor", "Fetching session info and messages", { sessionID });
25
+ const [sessionInfoResponse, messagesResponse] = await Promise.all([
26
+ this.client.session.get({ path: { id: sessionID } }),
27
+ this.client.session.messages({ path: { id: sessionID }, query: { limit: 100 } })
28
+ ]);
29
+ const sessionInfo = sessionInfoResponse.data;
27
30
  // Handle the response format - it should be { data: Array<{info, parts}> } or just the array
28
- const messages = response.data || response;
31
+ const messages = messagesResponse.data || messagesResponse;
29
32
  this.logger.debug("janitor", "Retrieved messages", {
30
33
  sessionID,
31
34
  messageCount: messages.length
@@ -157,18 +160,38 @@ export class Janitor {
157
160
  });
158
161
  return;
159
162
  }
160
- // Use big-pickle model - no auth needed!
161
- // Use big-pickle model (public and free, no auth needed)
162
- const openai = createOpenAICompatible({
163
- baseURL: "https://opencode.ai/zen/v1",
164
- name: "opencode",
163
+ // Select appropriate model with intelligent fallback
164
+ // Try to get model from cache first, otherwise extractModelFromSession won't find it
165
+ const cachedModelInfo = this.modelCache.get(sessionID);
166
+ const sessionModelInfo = extractModelFromSession(sessionInfo, this.logger);
167
+ let currentModelInfo = cachedModelInfo || sessionModelInfo;
168
+ // Skip GitHub Copilot for background analysis - it has expensive usage
169
+ if (currentModelInfo && currentModelInfo.providerID === 'github-copilot') {
170
+ this.logger.info("janitor", "Skipping GitHub Copilot for analysis (expensive), forcing fallback", {
171
+ sessionID,
172
+ originalProvider: currentModelInfo.providerID,
173
+ originalModel: currentModelInfo.modelID
174
+ });
175
+ currentModelInfo = undefined; // Force fallback to cheaper model
176
+ }
177
+ else if (cachedModelInfo) {
178
+ this.logger.debug("janitor", "Using cached model info", {
179
+ sessionID,
180
+ providerID: cachedModelInfo.providerID,
181
+ modelID: cachedModelInfo.modelID
182
+ });
183
+ }
184
+ const modelSelection = await selectModel(currentModelInfo, this.logger);
185
+ this.logger.info("janitor", "Model selected for analysis", {
186
+ sessionID,
187
+ modelInfo: modelSelection.modelInfo,
188
+ tier: modelSelection.tier,
189
+ reason: modelSelection.reason
165
190
  });
166
- const model = openai("big-pickle");
167
191
  this.logger.debug("janitor", "Starting shadow inference", { sessionID });
168
192
  // Analyze which tool calls are obsolete
169
193
  const result = await generateObject({
170
- model,
171
- mode: "json", // Use JSON mode instead of native structured outputs
194
+ model: modelSelection.model,
172
195
  schema: z.object({
173
196
  pruned_tool_call_ids: z.array(z.string()),
174
197
  reasoning: z.string(),
@@ -1 +1 @@
1
- {"version":3,"file":"janitor.js","sourceRoot":"","sources":["../../lib/janitor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"janitor.js","sourceRoot":"","sources":["../../lib/janitor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Model Selection and Fallback Logic
3
+ *
4
+ * This module handles intelligent model selection for the DCP plugin's analysis tasks.
5
+ * It attempts to use the same model as the current session, with cascading fallbacks
6
+ * to faster/cheaper alternatives when needed.
7
+ */
8
+ import type { LanguageModel } from 'ai';
9
+ import type { Logger } from './logger';
10
+ export interface ModelInfo {
11
+ providerID: string;
12
+ modelID: string;
13
+ }
14
+ export interface ModelTierConfig {
15
+ tier1Models: string[];
16
+ tier2Models: string[];
17
+ }
18
+ /**
19
+ * Model tier mappings for each provider
20
+ * Tier 1: High-quality models
21
+ * Tier 2: Fast, cost-effective alternatives
22
+ */
23
+ export declare const MODEL_TIERS: Record<string, ModelTierConfig>;
24
+ export interface ModelSelectionResult {
25
+ model: LanguageModel;
26
+ modelInfo: ModelInfo;
27
+ tier: 'primary' | 'tier2-same-provider' | 'tier2-other-provider' | 'fallback';
28
+ reason?: string;
29
+ }
30
+ /**
31
+ * Main model selection function with intelligent fallback logic
32
+ *
33
+ * Selection hierarchy:
34
+ * 1. Try the current session's model
35
+ * 2. If tier 1, fall back to tier 2 from same provider
36
+ * 3. Try tier 2 models from other authenticated providers
37
+ * 4. Ultimate fallback to big-pickle (free, no auth)
38
+ *
39
+ * @param currentModel - The model being used in the current session (optional)
40
+ * @param logger - Logger instance for debug output
41
+ * @returns Selected model with metadata about the selection
42
+ */
43
+ export declare function selectModel(currentModel?: ModelInfo, logger?: Logger): Promise<ModelSelectionResult>;
44
+ /**
45
+ * Helper to extract model info from OpenCode session state
46
+ * This can be used by the plugin to get the current session's model
47
+ */
48
+ export declare function extractModelFromSession(sessionState: any, logger?: Logger): ModelInfo | undefined;
49
+ //# sourceMappingURL=model-selector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-selector.d.ts","sourceRoot":"","sources":["../../lib/model-selector.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAGxC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAkCvD,CAAC;AAiBF,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,EAAE,SAAS,GAAG,qBAAqB,GAAG,sBAAsB,GAAG,UAAU,CAAC;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAiCD;;;;;;;;;;;;GAYG;AACH,wBAAsB,WAAW,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAqJ1G;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAgCjG"}
@@ -0,0 +1,281 @@
1
+ /**
2
+ * Model Selection and Fallback Logic
3
+ *
4
+ * This module handles intelligent model selection for the DCP plugin's analysis tasks.
5
+ * It attempts to use the same model as the current session, with cascading fallbacks
6
+ * to faster/cheaper alternatives when needed.
7
+ */
8
+ import { createOpenAICompatible } from '@ai-sdk/openai-compatible';
9
+ import { OpencodeAI } from '@tarquinen/opencode-auth-provider';
10
+ /**
11
+ * Model tier mappings for each provider
12
+ * Tier 1: High-quality models
13
+ * Tier 2: Fast, cost-effective alternatives
14
+ */
15
+ export const MODEL_TIERS = {
16
+ openai: {
17
+ tier1Models: ['gpt-5.1-codex', 'gpt-5.1', 'gpt-5', 'gpt-4o', 'gpt-4-turbo'],
18
+ tier2Models: ['gpt-5.1-codex-mini', 'gpt-5-mini', 'gpt-5-nano', 'gpt-4.1-mini', 'gpt-4o-mini', 'gpt-3.5-turbo']
19
+ },
20
+ anthropic: {
21
+ tier1Models: ['claude-sonnet-4.5', 'claude-sonnet-4', 'claude-opus-4.1', 'claude-3-5-sonnet-20241022', 'claude-3-opus-20240229'],
22
+ tier2Models: ['claude-haiku-4-5', 'claude-3-5-haiku-20241022', 'claude-3-haiku-20240307']
23
+ },
24
+ google: {
25
+ tier1Models: ['gemini-3-pro-preview', 'gemini-2.5-pro', 'gemini-2.0-pro', 'gemini-1.5-pro'],
26
+ tier2Models: ['gemini-2.5-flash', 'gemini-2.5-flash-lite', 'gemini-2.0-flash-lite', 'gemini-1.5-flash', 'gemini-1.5-flash-8b']
27
+ },
28
+ deepseek: {
29
+ tier1Models: ['deepseek-r1', 'deepseek-v3.1', 'deepseek-reasoner', 'deepseek-coder'],
30
+ tier2Models: ['deepseek-chat']
31
+ },
32
+ xai: {
33
+ tier1Models: ['grok-4', 'grok-code-fast-1', 'grok-3'],
34
+ tier2Models: ['grok-4-fast', 'grok-3-mini', 'grok-2-mini']
35
+ },
36
+ qwen: {
37
+ tier1Models: ['qwen3-coder-480b', 'qwen3-max', 'qwen2.5-coder-32b'],
38
+ tier2Models: ['qwen3-coder-flash', 'qwen-flash', 'qwen-turbo']
39
+ },
40
+ zhipu: {
41
+ tier1Models: ['glm-4.6', 'glm-4.5', 'glm-4'],
42
+ tier2Models: ['glm-4.5-air', 'glm-4.5-flash', 'glm-4-flash']
43
+ },
44
+ // Default fallback - no auth required
45
+ bigpickle: {
46
+ tier1Models: ['big-pickle'],
47
+ tier2Models: ['big-pickle']
48
+ }
49
+ };
50
+ /**
51
+ * Provider priority order for fallback selection
52
+ * Providers earlier in the list are preferred over later ones
53
+ */
54
+ const PROVIDER_PRIORITY = [
55
+ 'openai',
56
+ 'anthropic',
57
+ 'google',
58
+ 'deepseek',
59
+ 'xai',
60
+ 'qwen',
61
+ 'zhipu',
62
+ 'bigpickle'
63
+ ];
64
+ /**
65
+ * Gets a tier 2 (fast) model for a given provider
66
+ */
67
+ function getTier2Model(providerID) {
68
+ const config = MODEL_TIERS[providerID.toLowerCase()];
69
+ if (!config || config.tier2Models.length === 0) {
70
+ return null;
71
+ }
72
+ return config.tier2Models[0];
73
+ }
74
+ /**
75
+ * Checks if a model belongs to tier 1 (primary) for a provider
76
+ */
77
+ function isTier1Model(providerID, modelID) {
78
+ const config = MODEL_TIERS[providerID.toLowerCase()];
79
+ if (!config)
80
+ return false;
81
+ return config.tier1Models.some(m => modelID.toLowerCase().includes(m.toLowerCase()));
82
+ }
83
+ /**
84
+ * Gets the fallback big-pickle model (no auth required)
85
+ */
86
+ function getBigPickleModel() {
87
+ const bigPickle = createOpenAICompatible({
88
+ name: 'big-pickle',
89
+ baseURL: 'https://models.fly.dev/v1',
90
+ });
91
+ return bigPickle('big-pickle');
92
+ }
93
+ /**
94
+ * Main model selection function with intelligent fallback logic
95
+ *
96
+ * Selection hierarchy:
97
+ * 1. Try the current session's model
98
+ * 2. If tier 1, fall back to tier 2 from same provider
99
+ * 3. Try tier 2 models from other authenticated providers
100
+ * 4. Ultimate fallback to big-pickle (free, no auth)
101
+ *
102
+ * @param currentModel - The model being used in the current session (optional)
103
+ * @param logger - Logger instance for debug output
104
+ * @returns Selected model with metadata about the selection
105
+ */
106
+ export async function selectModel(currentModel, logger) {
107
+ logger?.info('model-selector', 'Model selection started', { currentModel });
108
+ const opencodeAI = new OpencodeAI();
109
+ // Step 1: Try to use the current session's model
110
+ if (currentModel) {
111
+ logger?.debug('model-selector', 'Step 1: Attempting to use current session model', {
112
+ providerID: currentModel.providerID,
113
+ modelID: currentModel.modelID
114
+ });
115
+ try {
116
+ const model = await opencodeAI.getLanguageModel(currentModel.providerID, currentModel.modelID);
117
+ logger?.info('model-selector', '✓ Successfully using current session model', {
118
+ providerID: currentModel.providerID,
119
+ modelID: currentModel.modelID
120
+ });
121
+ return {
122
+ model,
123
+ modelInfo: currentModel,
124
+ tier: 'primary',
125
+ reason: 'Using current session model'
126
+ };
127
+ }
128
+ catch (error) {
129
+ // Continue to fallback logic
130
+ logger?.warn('model-selector', '✗ Failed to use session model', {
131
+ providerID: currentModel.providerID,
132
+ modelID: currentModel.modelID,
133
+ error: error.message
134
+ });
135
+ }
136
+ // Step 2: If current model is tier 1, try tier 2 from same provider
137
+ const isTier1 = isTier1Model(currentModel.providerID, currentModel.modelID);
138
+ logger?.debug('model-selector', 'Checking if current model is tier 1', {
139
+ providerID: currentModel.providerID,
140
+ modelID: currentModel.modelID,
141
+ isTier1
142
+ });
143
+ if (isTier1) {
144
+ const tier2ModelID = getTier2Model(currentModel.providerID);
145
+ logger?.debug('model-selector', 'Step 2: Attempting tier 2 fallback from same provider', {
146
+ providerID: currentModel.providerID,
147
+ tier2ModelID
148
+ });
149
+ if (tier2ModelID) {
150
+ try {
151
+ const model = await opencodeAI.getLanguageModel(currentModel.providerID, tier2ModelID);
152
+ logger?.info('model-selector', '✓ Successfully using tier 2 model from same provider', {
153
+ providerID: currentModel.providerID,
154
+ modelID: tier2ModelID
155
+ });
156
+ return {
157
+ model,
158
+ modelInfo: { providerID: currentModel.providerID, modelID: tier2ModelID },
159
+ tier: 'tier2-same-provider',
160
+ reason: `Falling back to faster model from same provider: ${tier2ModelID}`
161
+ };
162
+ }
163
+ catch (error) {
164
+ logger?.warn('model-selector', '✗ Failed to use tier 2 model from same provider', {
165
+ providerID: currentModel.providerID,
166
+ modelID: tier2ModelID,
167
+ error: error.message
168
+ });
169
+ }
170
+ }
171
+ else {
172
+ logger?.debug('model-selector', 'No tier 2 model available for provider', {
173
+ providerID: currentModel.providerID
174
+ });
175
+ }
176
+ }
177
+ }
178
+ else {
179
+ logger?.debug('model-selector', 'No current session model provided, skipping steps 1-2');
180
+ }
181
+ // Step 3: Try tier 2 models from other authenticated providers
182
+ logger?.debug('model-selector', 'Step 3: Fetching available authenticated providers');
183
+ const providers = await opencodeAI.listProviders();
184
+ const availableProviderIDs = Object.keys(providers);
185
+ logger?.info('model-selector', 'Available authenticated providers', {
186
+ providerCount: availableProviderIDs.length,
187
+ providerIDs: availableProviderIDs,
188
+ providers: Object.entries(providers).map(([id, info]) => ({
189
+ id,
190
+ source: info.source,
191
+ name: info.info.name
192
+ }))
193
+ });
194
+ logger?.debug('model-selector', 'Attempting tier 2 models from other providers', {
195
+ priorityOrder: PROVIDER_PRIORITY,
196
+ currentProvider: currentModel?.providerID
197
+ });
198
+ for (const providerID of PROVIDER_PRIORITY) {
199
+ if (providerID === 'bigpickle') {
200
+ logger?.debug('model-selector', 'Skipping bigpickle (saving for final fallback)');
201
+ continue;
202
+ }
203
+ if (currentModel && providerID === currentModel.providerID) {
204
+ logger?.debug('model-selector', `Skipping ${providerID} (already tried as current provider)`);
205
+ continue;
206
+ }
207
+ if (!providers[providerID]) {
208
+ logger?.debug('model-selector', `Skipping ${providerID} (not authenticated)`);
209
+ continue;
210
+ }
211
+ const tier2ModelID = getTier2Model(providerID);
212
+ if (!tier2ModelID) {
213
+ logger?.debug('model-selector', `Skipping ${providerID} (no tier 2 model configured)`);
214
+ continue;
215
+ }
216
+ logger?.debug('model-selector', `Attempting ${providerID}/${tier2ModelID}`);
217
+ try {
218
+ const model = await opencodeAI.getLanguageModel(providerID, tier2ModelID);
219
+ logger?.info('model-selector', `✓ Successfully using tier 2 model from other provider`, {
220
+ providerID,
221
+ modelID: tier2ModelID
222
+ });
223
+ return {
224
+ model,
225
+ modelInfo: { providerID, modelID: tier2ModelID },
226
+ tier: 'tier2-other-provider',
227
+ reason: `Falling back to ${providerID}/${tier2ModelID}`
228
+ };
229
+ }
230
+ catch (error) {
231
+ logger?.warn('model-selector', `✗ Failed to use ${providerID}/${tier2ModelID}`, {
232
+ error: error.message
233
+ });
234
+ continue;
235
+ }
236
+ }
237
+ // Step 4: Ultimate fallback to big-pickle
238
+ logger?.debug('model-selector', 'Step 4: Using ultimate fallback (big-pickle)');
239
+ logger?.info('model-selector', '✓ Using big-pickle (free, no auth required)');
240
+ return {
241
+ model: getBigPickleModel(),
242
+ modelInfo: { providerID: 'bigpickle', modelID: 'big-pickle' },
243
+ tier: 'fallback',
244
+ reason: 'Using free big-pickle model (no authenticated providers available)'
245
+ };
246
+ }
247
+ /**
248
+ * Helper to extract model info from OpenCode session state
249
+ * This can be used by the plugin to get the current session's model
250
+ */
251
+ export function extractModelFromSession(sessionState, logger) {
252
+ logger?.debug('model-selector', 'Extracting model from session state');
253
+ // Try to get from ACP session state
254
+ if (sessionState?.model?.providerID && sessionState?.model?.modelID) {
255
+ logger?.info('model-selector', 'Found model in ACP session state', {
256
+ providerID: sessionState.model.providerID,
257
+ modelID: sessionState.model.modelID
258
+ });
259
+ return {
260
+ providerID: sessionState.model.providerID,
261
+ modelID: sessionState.model.modelID
262
+ };
263
+ }
264
+ // Try to get from last message
265
+ if (sessionState?.messages && Array.isArray(sessionState.messages)) {
266
+ const lastMessage = sessionState.messages[sessionState.messages.length - 1];
267
+ if (lastMessage?.model?.providerID && lastMessage?.model?.modelID) {
268
+ logger?.info('model-selector', 'Found model in last message', {
269
+ providerID: lastMessage.model.providerID,
270
+ modelID: lastMessage.model.modelID
271
+ });
272
+ return {
273
+ providerID: lastMessage.model.providerID,
274
+ modelID: lastMessage.model.modelID
275
+ };
276
+ }
277
+ }
278
+ logger?.warn('model-selector', 'Could not extract model from session state');
279
+ return undefined;
280
+ }
281
+ //# sourceMappingURL=model-selector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-selector.js","sourceRoot":"","sources":["../../lib/model-selector.ts"],"names":[],"mappings":"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"}
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.1.12",
4
+ "version": "0.2.1",
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",
@@ -39,6 +39,7 @@
39
39
  "dependencies": {
40
40
  "@ai-sdk/openai-compatible": "^1.0.0",
41
41
  "@opencode-ai/sdk": "latest",
42
+ "@tarquinen/opencode-auth-provider": "^0.1.3",
42
43
  "ai": "^5.0.0",
43
44
  "zod": "^3.23.0"
44
45
  },