@tarquinen/opencode-dcp 0.2.4 → 0.2.6

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 CHANGED
@@ -27,7 +27,12 @@ Restart OpenCode. The plugin will automatically start optimizing your sessions.
27
27
 
28
28
  ## Configuration
29
29
 
30
- The plugin creates a configuration file at `~/.config/opencode/dcp.jsonc` on first run. You can edit this file to customize the plugin's behavior.
30
+ The plugin supports both global and project-level configuration:
31
+
32
+ - **Global:** `~/.config/opencode/dcp.jsonc` - Applies to all OpenCode sessions
33
+ - **Project:** `.opencode/dcp.jsonc` - Applies only to the current project
34
+
35
+ Project configuration takes precedence over global configuration. The plugin creates a default global configuration file on first run.
31
36
 
32
37
  ```jsonc
33
38
  {
@@ -43,6 +48,39 @@ The plugin creates a configuration file at `~/.config/opencode/dcp.jsonc` on fir
43
48
  }
44
49
  ```
45
50
 
51
+ ### Configuration Hierarchy
52
+
53
+ 1. **Defaults** - Built-in plugin defaults
54
+ 2. **Global config** (`~/.config/opencode/dcp.jsonc`) - Overrides defaults
55
+ 3. **Project config** (`.opencode/dcp.jsonc`) - Overrides global config
56
+
57
+ This allows you to:
58
+ - Set global defaults for all projects
59
+ - Override settings per-project (e.g., disable for sensitive projects, use different models)
60
+ - Commit project config to version control for team consistency
61
+
62
+ ### Creating Project-Level Config
63
+
64
+ To create a project-specific configuration:
65
+
66
+ 1. Create `.opencode` directory in your project root (if it doesn't exist)
67
+ 2. Create `dcp.jsonc` file inside `.opencode/`
68
+ 3. Add your project-specific settings
69
+
70
+ ```bash
71
+ # In your project directory
72
+ mkdir -p .opencode
73
+ cat > .opencode/dcp.jsonc << 'EOF'
74
+ {
75
+ // Project-specific DCP settings
76
+ "debug": true,
77
+ "protectedTools": ["task", "read"]
78
+ }
79
+ EOF
80
+ ```
81
+
82
+ The global config (`~/.config/opencode/dcp.jsonc`) is automatically created on first run. Project configs are opt-in and must be created manually.
83
+
46
84
  ### Configuration Options
47
85
 
48
86
  - **`enabled`** (boolean, default: `true`)
@@ -85,7 +123,7 @@ If you want to ensure a specific version is always used, you can pin it in your
85
123
  ```json
86
124
  {
87
125
  "plugin": [
88
- "@tarquinen/opencode-dcp@0.1.11"
126
+ "@tarquinen/opencode-dcp@0.2.5"
89
127
  ]
90
128
  }
91
129
  ```
@@ -1 +1 @@
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,MAoVK,CAAA;AAEnB,eAAe,MAAM,CAAA"}
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,MAqVK,CAAA;AAEnB,eAAe,MAAM,CAAA"}
package/dist/index.js CHANGED
@@ -30,7 +30,7 @@ async function isSubagentSession(client, sessionID, logger) {
30
30
  }
31
31
  }
32
32
  const plugin = (async (ctx) => {
33
- const config = getConfig();
33
+ const config = getConfig(ctx);
34
34
  // Exit early if plugin is disabled
35
35
  if (!config.enabled) {
36
36
  return {};
@@ -44,7 +44,7 @@ const plugin = (async (ctx) => {
44
44
  const stateManager = new StateManager();
45
45
  const toolParametersCache = new Map(); // callID -> parameters
46
46
  const modelCache = new Map(); // sessionID -> model info
47
- const janitor = new Janitor(ctx.client, stateManager, logger, toolParametersCache, config.protectedTools, modelCache, config.model);
47
+ const janitor = new Janitor(ctx.client, stateManager, logger, toolParametersCache, config.protectedTools, modelCache, config.model, config.showModelErrorToasts);
48
48
  const cacheToolParameters = (messages, component) => {
49
49
  for (const message of messages) {
50
50
  if (message.role !== 'assistant' || !Array.isArray(message.tool_calls)) {
@@ -146,7 +146,8 @@ const plugin = (async (ctx) => {
146
146
  debug: config.debug,
147
147
  protectedTools: config.protectedTools,
148
148
  model: config.model,
149
- configFile: join(homedir(), ".config", "opencode", "dcp.jsonc"),
149
+ globalConfigFile: join(homedir(), ".config", "opencode", "dcp.jsonc"),
150
+ projectConfigFile: ctx.directory ? join(ctx.directory, ".opencode", "dcp.jsonc") : "N/A",
150
151
  logDirectory: join(homedir(), ".config", "opencode", "logs", "dcp"),
151
152
  globalFetchWrapped: true
152
153
  });
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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"}
@@ -1,13 +1,23 @@
1
+ import type { PluginInput } from '@opencode-ai/plugin';
1
2
  export interface PluginConfig {
2
3
  enabled: boolean;
3
4
  debug: boolean;
4
5
  protectedTools: string[];
5
6
  model?: string;
7
+ showModelErrorToasts?: boolean;
6
8
  }
7
9
  /**
8
- * Loads configuration from ~/.config/opencode/dcp.jsonc or dcp.json
9
- * Creates the file with defaults if it doesn't exist
10
- * Supports both JSON and JSONC (JSON with Comments) formats
10
+ * Loads configuration with support for both global and project-level configs
11
+ *
12
+ * Config resolution order:
13
+ * 1. Start with default config
14
+ * 2. Merge with global config (~/.config/opencode/dcp.jsonc)
15
+ * 3. Merge with project config (.opencode/dcp.jsonc) if found
16
+ *
17
+ * Project config overrides global config, which overrides defaults.
18
+ *
19
+ * @param ctx - Plugin input context (optional). If provided, will search for project-level config.
20
+ * @returns Merged configuration
11
21
  */
12
- export declare function getConfig(): PluginConfig;
22
+ export declare function getConfig(ctx?: PluginInput): PluginConfig;
13
23
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../lib/config.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,YAAY;IACzB,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,OAAO,CAAA;IACd,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,KAAK,CAAC,EAAE,MAAM,CAAA;CACjB;AAwDD;;;;GAIG;AACH,wBAAgB,SAAS,IAAI,YAAY,CA2BxC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../lib/config.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEtD,MAAM,WAAW,YAAY;IACzB,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,OAAO,CAAA;IACd,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,oBAAoB,CAAC,EAAE,OAAO,CAAA;CACjC;AA8GD;;;;;;;;;;;;GAYG;AACH,wBAAgB,SAAS,CAAC,GAAG,CAAC,EAAE,WAAW,GAAG,YAAY,CA0CzD"}
@@ -1,37 +1,73 @@
1
1
  // lib/config.ts
2
- import { readFileSync, writeFileSync, existsSync, mkdirSync } from 'fs';
3
- import { join } from 'path';
2
+ import { readFileSync, writeFileSync, existsSync, mkdirSync, statSync } from 'fs';
3
+ import { join, dirname } from 'path';
4
4
  import { homedir } from 'os';
5
5
  import { parse } from 'jsonc-parser';
6
6
  import { Logger } from './logger';
7
7
  const defaultConfig = {
8
8
  enabled: true, // Plugin is enabled by default
9
9
  debug: false, // Disable debug logging by default
10
- protectedTools: ['task'] // Tools that should never be pruned
10
+ protectedTools: ['task'], // Tools that should never be pruned
11
+ showModelErrorToasts: true // Show model error toasts by default
11
12
  };
12
- const CONFIG_DIR = join(homedir(), '.config', 'opencode');
13
- const CONFIG_PATH_JSONC = join(CONFIG_DIR, 'dcp.jsonc');
14
- const CONFIG_PATH_JSON = join(CONFIG_DIR, 'dcp.json');
13
+ const GLOBAL_CONFIG_DIR = join(homedir(), '.config', 'opencode');
14
+ const GLOBAL_CONFIG_PATH_JSONC = join(GLOBAL_CONFIG_DIR, 'dcp.jsonc');
15
+ const GLOBAL_CONFIG_PATH_JSON = join(GLOBAL_CONFIG_DIR, 'dcp.json');
16
+ /**
17
+ * Searches for .opencode directory starting from current directory and going up
18
+ * Returns the path to .opencode directory if found, null otherwise
19
+ */
20
+ function findOpencodeDir(startDir) {
21
+ let current = startDir;
22
+ while (current !== '/') {
23
+ const candidate = join(current, '.opencode');
24
+ if (existsSync(candidate) && statSync(candidate).isDirectory()) {
25
+ return candidate;
26
+ }
27
+ const parent = dirname(current);
28
+ if (parent === current)
29
+ break; // Reached root
30
+ current = parent;
31
+ }
32
+ return null;
33
+ }
15
34
  /**
16
35
  * Determines which config file to use (prefers .jsonc, falls back to .json)
36
+ * Checks both project-level and global configs
17
37
  */
18
- function getConfigPath() {
19
- if (existsSync(CONFIG_PATH_JSONC)) {
20
- return CONFIG_PATH_JSONC;
38
+ function getConfigPaths(ctx) {
39
+ // Global config paths
40
+ let globalPath = null;
41
+ if (existsSync(GLOBAL_CONFIG_PATH_JSONC)) {
42
+ globalPath = GLOBAL_CONFIG_PATH_JSONC;
21
43
  }
22
- if (existsSync(CONFIG_PATH_JSON)) {
23
- return CONFIG_PATH_JSON;
44
+ else if (existsSync(GLOBAL_CONFIG_PATH_JSON)) {
45
+ globalPath = GLOBAL_CONFIG_PATH_JSON;
24
46
  }
25
- // Default to .jsonc for new installations (supports comments)
26
- return CONFIG_PATH_JSONC;
47
+ // Project config paths (if context provided)
48
+ let projectPath = null;
49
+ if (ctx?.directory) {
50
+ const opencodeDir = findOpencodeDir(ctx.directory);
51
+ if (opencodeDir) {
52
+ const projectJsonc = join(opencodeDir, 'dcp.jsonc');
53
+ const projectJson = join(opencodeDir, 'dcp.json');
54
+ if (existsSync(projectJsonc)) {
55
+ projectPath = projectJsonc;
56
+ }
57
+ else if (existsSync(projectJson)) {
58
+ projectPath = projectJson;
59
+ }
60
+ }
61
+ }
62
+ return { global: globalPath, project: projectPath };
27
63
  }
28
64
  /**
29
65
  * Creates the default configuration file with helpful comments
30
66
  */
31
67
  function createDefaultConfig() {
32
68
  // Ensure the directory exists
33
- if (!existsSync(CONFIG_DIR)) {
34
- mkdirSync(CONFIG_DIR, { recursive: true });
69
+ if (!existsSync(GLOBAL_CONFIG_DIR)) {
70
+ mkdirSync(GLOBAL_CONFIG_DIR, { recursive: true });
35
71
  }
36
72
  const configContent = `{
37
73
  // Enable or disable the Dynamic Context Pruning plugin
@@ -45,42 +81,84 @@ function createDefaultConfig() {
45
81
  // NOTE: Anthropic OAuth sonnet 4+ tier models are currently not supported
46
82
  // "model": "anthropic/claude-haiku-4-5",
47
83
 
84
+ // Show toast notifications when model selection fails and falls back
85
+ // Set to false to disable these informational toasts
86
+ "showModelErrorToasts": true,
87
+
48
88
  // List of tools that should never be pruned from context
49
89
  // The 'task' tool is protected by default to preserve subagent coordination
50
90
  "protectedTools": ["task"]
51
91
  }
52
92
  `;
53
- writeFileSync(CONFIG_PATH_JSONC, configContent, 'utf-8');
93
+ writeFileSync(GLOBAL_CONFIG_PATH_JSONC, configContent, 'utf-8');
54
94
  }
55
95
  /**
56
- * Loads configuration from ~/.config/opencode/dcp.jsonc or dcp.json
57
- * Creates the file with defaults if it doesn't exist
58
- * Supports both JSON and JSONC (JSON with Comments) formats
96
+ * Loads a single config file and parses it
59
97
  */
60
- export function getConfig() {
61
- const configPath = getConfigPath();
62
- // Create default config if neither file exists
63
- if (!existsSync(configPath)) {
64
- createDefaultConfig();
65
- }
98
+ function loadConfigFile(configPath) {
66
99
  try {
67
100
  const fileContent = readFileSync(configPath, 'utf-8');
68
- // jsonc-parser handles both JSON and JSONC formats
69
- const userConfig = parse(fileContent);
70
- // Merge user config with defaults (user config takes precedence)
71
- return {
72
- enabled: userConfig.enabled ?? defaultConfig.enabled,
73
- debug: userConfig.debug ?? defaultConfig.debug,
74
- protectedTools: userConfig.protectedTools ?? defaultConfig.protectedTools,
75
- model: userConfig.model
76
- };
101
+ return parse(fileContent);
77
102
  }
78
103
  catch (error) {
79
- // Log errors to file (always enabled for config errors)
80
104
  const logger = new Logger(true);
81
105
  logger.error('config', `Failed to read config from ${configPath}: ${error.message}`);
82
- logger.error('config', 'Using default configuration');
83
- return defaultConfig;
106
+ return null;
107
+ }
108
+ }
109
+ /**
110
+ * Loads configuration with support for both global and project-level configs
111
+ *
112
+ * Config resolution order:
113
+ * 1. Start with default config
114
+ * 2. Merge with global config (~/.config/opencode/dcp.jsonc)
115
+ * 3. Merge with project config (.opencode/dcp.jsonc) if found
116
+ *
117
+ * Project config overrides global config, which overrides defaults.
118
+ *
119
+ * @param ctx - Plugin input context (optional). If provided, will search for project-level config.
120
+ * @returns Merged configuration
121
+ */
122
+ export function getConfig(ctx) {
123
+ let config = { ...defaultConfig };
124
+ const configPaths = getConfigPaths(ctx);
125
+ const logger = new Logger(true); // Always log config loading
126
+ // 1. Load global config
127
+ if (configPaths.global) {
128
+ const globalConfig = loadConfigFile(configPaths.global);
129
+ if (globalConfig) {
130
+ config = {
131
+ enabled: globalConfig.enabled ?? config.enabled,
132
+ debug: globalConfig.debug ?? config.debug,
133
+ protectedTools: globalConfig.protectedTools ?? config.protectedTools,
134
+ model: globalConfig.model ?? config.model,
135
+ showModelErrorToasts: globalConfig.showModelErrorToasts ?? config.showModelErrorToasts
136
+ };
137
+ logger.info('config', 'Loaded global config', { path: configPaths.global });
138
+ }
139
+ }
140
+ else {
141
+ // Create default global config if it doesn't exist
142
+ createDefaultConfig();
143
+ logger.info('config', 'Created default global config', { path: GLOBAL_CONFIG_PATH_JSONC });
144
+ }
145
+ // 2. Load project config (overrides global)
146
+ if (configPaths.project) {
147
+ const projectConfig = loadConfigFile(configPaths.project);
148
+ if (projectConfig) {
149
+ config = {
150
+ enabled: projectConfig.enabled ?? config.enabled,
151
+ debug: projectConfig.debug ?? config.debug,
152
+ protectedTools: projectConfig.protectedTools ?? config.protectedTools,
153
+ model: projectConfig.model ?? config.model,
154
+ showModelErrorToasts: projectConfig.showModelErrorToasts ?? config.showModelErrorToasts
155
+ };
156
+ logger.info('config', 'Loaded project config (overrides global)', { path: configPaths.project });
157
+ }
158
+ }
159
+ else if (ctx?.directory) {
160
+ logger.debug('config', 'No project config found', { searchedFrom: ctx.directory });
84
161
  }
162
+ return config;
85
163
  }
86
164
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../lib/config.ts"],"names":[],"mappings":"AAAA,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,CAAA;AACvE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAA;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AASjC,MAAM,aAAa,GAAiB;IAChC,OAAO,EAAE,IAAI,EAAE,+BAA+B;IAC9C,KAAK,EAAE,KAAK,EAAE,mCAAmC;IACjD,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC,oCAAoC;CAChE,CAAA;AAED,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA;AACzD,MAAM,iBAAiB,GAAG,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;AACvD,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;AAErD;;GAEG;AACH,SAAS,aAAa;IAClB,IAAI,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAChC,OAAO,iBAAiB,CAAA;IAC5B,CAAC;IACD,IAAI,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC/B,OAAO,gBAAgB,CAAA;IAC3B,CAAC;IACD,8DAA8D;IAC9D,OAAO,iBAAiB,CAAA;AAC5B,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB;IACxB,8BAA8B;IAC9B,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1B,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC9C,CAAC;IAED,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;CAgBzB,CAAA;IAEG,aAAa,CAAC,iBAAiB,EAAE,aAAa,EAAE,OAAO,CAAC,CAAA;AAC5D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS;IACrB,MAAM,UAAU,GAAG,aAAa,EAAE,CAAA;IAElC,+CAA+C;IAC/C,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1B,mBAAmB,EAAE,CAAA;IACzB,CAAC;IAED,IAAI,CAAC;QACD,MAAM,WAAW,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QACrD,mDAAmD;QACnD,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAA0B,CAAA;QAE9D,iEAAiE;QACjE,OAAO;YACH,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,aAAa,CAAC,OAAO;YACpD,KAAK,EAAE,UAAU,CAAC,KAAK,IAAI,aAAa,CAAC,KAAK;YAC9C,cAAc,EAAE,UAAU,CAAC,cAAc,IAAI,aAAa,CAAC,cAAc;YACzE,KAAK,EAAE,UAAU,CAAC,KAAK;SAC1B,CAAA;IACL,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,wDAAwD;QACxD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAA;QAC/B,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,8BAA8B,UAAU,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QACpF,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,6BAA6B,CAAC,CAAA;QACrD,OAAO,aAAa,CAAA;IACxB,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../lib/config.ts"],"names":[],"mappings":"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"}
@@ -8,10 +8,12 @@ export declare class Janitor {
8
8
  private protectedTools;
9
9
  private modelCache;
10
10
  private configModel?;
11
+ private showModelErrorToasts;
11
12
  constructor(client: any, stateManager: StateManager, logger: Logger, toolParametersCache: Map<string, any>, protectedTools: string[], modelCache: Map<string, {
12
13
  providerID: string;
13
14
  modelID: string;
14
- }>, configModel?: string | undefined);
15
+ }>, configModel?: string | undefined, // Format: "provider/model"
16
+ showModelErrorToasts?: boolean);
15
17
  run(sessionID: string): Promise<void>;
16
18
  }
17
19
  //# sourceMappingURL=janitor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"janitor.d.ts","sourceRoot":"","sources":["../../lib/janitor.ts"],"names":[],"mappings":"AAEA,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;IAClB,OAAO,CAAC,WAAW,CAAC;gBANZ,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,EAChE,WAAW,CAAC,EAAE,MAAM,YAAA;IAG1B,GAAG,CAAC,SAAS,EAAE,MAAM;CAob9B"}
1
+ {"version":3,"file":"janitor.d.ts","sourceRoot":"","sources":["../../lib/janitor.ts"],"names":[],"mappings":"AAEA,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;IAClB,OAAO,CAAC,WAAW,CAAC;IACpB,OAAO,CAAC,oBAAoB;gBAPpB,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,EAChE,WAAW,CAAC,EAAE,MAAM,YAAA,EAAE,2BAA2B;IACjD,oBAAoB,GAAE,OAAc;IAG1C,GAAG,CAAC,SAAS,EAAE,MAAM;CAwc9B"}
@@ -10,7 +10,9 @@ export class Janitor {
10
10
  protectedTools;
11
11
  modelCache;
12
12
  configModel;
13
- constructor(client, stateManager, logger, toolParametersCache, protectedTools, modelCache, configModel // Format: "provider/model"
13
+ showModelErrorToasts;
14
+ constructor(client, stateManager, logger, toolParametersCache, protectedTools, modelCache, configModel, // Format: "provider/model"
15
+ showModelErrorToasts = true // Whether to show toast for model errors
14
16
  ) {
15
17
  this.client = client;
16
18
  this.stateManager = stateManager;
@@ -19,6 +21,7 @@ export class Janitor {
19
21
  this.protectedTools = protectedTools;
20
22
  this.modelCache = modelCache;
21
23
  this.configModel = configModel;
24
+ this.showModelErrorToasts = showModelErrorToasts;
22
25
  }
23
26
  async run(sessionID) {
24
27
  this.logger.info("janitor", "Starting analysis", { sessionID });
@@ -171,17 +174,8 @@ export class Janitor {
171
174
  // Try to get model from cache first, otherwise extractModelFromSession won't find it
172
175
  const cachedModelInfo = this.modelCache.get(sessionID);
173
176
  const sessionModelInfo = extractModelFromSession(sessionInfo, this.logger);
174
- let currentModelInfo = cachedModelInfo || sessionModelInfo;
175
- // Skip GitHub Copilot for background analysis - it has expensive usage
176
- if (currentModelInfo && currentModelInfo.providerID === 'github-copilot') {
177
- this.logger.info("janitor", "Skipping GitHub Copilot for analysis (expensive), forcing fallback", {
178
- sessionID,
179
- originalProvider: currentModelInfo.providerID,
180
- originalModel: currentModelInfo.modelID
181
- });
182
- currentModelInfo = undefined; // Force fallback to cheaper model
183
- }
184
- else if (cachedModelInfo) {
177
+ const currentModelInfo = cachedModelInfo || sessionModelInfo;
178
+ if (cachedModelInfo) {
185
179
  this.logger.debug("janitor", "Using cached model info", {
186
180
  sessionID,
187
181
  providerID: cachedModelInfo.providerID,
@@ -192,9 +186,38 @@ export class Janitor {
192
186
  this.logger.info("janitor", "Model selected for analysis", {
193
187
  sessionID,
194
188
  modelInfo: modelSelection.modelInfo,
195
- tier: modelSelection.tier,
189
+ source: modelSelection.source,
196
190
  reason: modelSelection.reason
197
191
  });
192
+ // Show toast if we had to fallback from a failed model
193
+ if (modelSelection.failedModel && this.showModelErrorToasts) {
194
+ try {
195
+ await this.client.tui.showToast({
196
+ body: {
197
+ title: "DCP: Model fallback",
198
+ message: `${modelSelection.failedModel.providerID}/${modelSelection.failedModel.modelID} failed\nUsing ${modelSelection.modelInfo.providerID}/${modelSelection.modelInfo.modelID}`,
199
+ variant: "info",
200
+ duration: 5000
201
+ }
202
+ });
203
+ this.logger.info("janitor", "Toast notification shown for model fallback", {
204
+ failedModel: modelSelection.failedModel,
205
+ selectedModel: modelSelection.modelInfo
206
+ });
207
+ }
208
+ catch (toastError) {
209
+ this.logger.error("janitor", "Failed to show toast notification", {
210
+ error: toastError.message
211
+ });
212
+ // Don't fail the whole operation if toast fails
213
+ }
214
+ }
215
+ else if (modelSelection.failedModel && !this.showModelErrorToasts) {
216
+ this.logger.info("janitor", "Model fallback occurred but toast disabled by config", {
217
+ failedModel: modelSelection.failedModel,
218
+ selectedModel: modelSelection.modelInfo
219
+ });
220
+ }
198
221
  // Log comprehensive stats before AI call
199
222
  this.logger.info("janitor", "Preparing AI analysis", {
200
223
  sessionID,
@@ -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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"}
@@ -2,8 +2,8 @@
2
2
  * Model Selection and Fallback Logic
3
3
  *
4
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.
5
+ * It attempts to use the same model as the current session, with fallbacks to other
6
+ * available models when needed.
7
7
  */
8
8
  import type { LanguageModel } from 'ai';
9
9
  import type { Logger } from './logger';
@@ -11,31 +11,25 @@ export interface ModelInfo {
11
11
  providerID: string;
12
12
  modelID: string;
13
13
  }
14
- export interface ModelTierConfig {
15
- tier1Models: string[];
16
- tier2Models: string[];
17
- }
18
14
  /**
19
- * Model tier mappings for each provider
20
- * Tier 1: High-quality models
21
- * Tier 2: Fast, cost-effective alternatives
15
+ * Fallback models to try in priority order
16
+ * Earlier entries are tried first
22
17
  */
23
- export declare const MODEL_TIERS: Record<string, ModelTierConfig>;
18
+ export declare const FALLBACK_MODELS: Record<string, string>;
24
19
  export interface ModelSelectionResult {
25
20
  model: LanguageModel;
26
21
  modelInfo: ModelInfo;
27
- tier: 'primary' | 'tier2-same-provider' | 'tier2-other-provider' | 'fallback';
22
+ source: 'user-model' | 'config' | 'fallback';
28
23
  reason?: string;
24
+ failedModel?: ModelInfo;
29
25
  }
30
26
  /**
31
27
  * Main model selection function with intelligent fallback logic
32
28
  *
33
29
  * Selection hierarchy:
34
- * 1. Try the config-specified model (if provided)
35
- * 2. Try the current session's model
36
- * 3. If tier 1, fall back to tier 2 from same provider
37
- * 4. Try tier 2 models from other authenticated providers
38
- * 5. Ultimate fallback to big-pickle (free, no auth)
30
+ * 1. Try the config-specified model (if provided in dcp.jsonc)
31
+ * 2. Try the user's current model (skip if github-copilot or anthropic)
32
+ * 3. Try fallback models from authenticated providers (in priority order)
39
33
  *
40
34
  * @param currentModel - The model being used in the current session (optional)
41
35
  * @param logger - Logger instance for debug output
@@ -1 +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;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC5B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAkCvD,CAAC;AAiBF,MAAM,WAAW,oBAAoB;IACjC,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;CACnB;AAiCD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,WAAW,CAC7B,YAAY,CAAC,EAAE,SAAS,EACxB,MAAM,CAAC,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,oBAAoB,CAAC,CA0L/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;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAExC,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;AAUD;;;;;;;;;;;;GAYG;AACH,wBAAsB,WAAW,CAC7B,YAAY,CAAC,EAAE,SAAS,EACxB,MAAM,CAAC,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,oBAAoB,CAAC,CA4I/B;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAgCjG"}
@@ -2,103 +2,53 @@
2
2
  * Model Selection and Fallback Logic
3
3
  *
4
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.
5
+ * It attempts to use the same model as the current session, with fallbacks to other
6
+ * available models when needed.
7
7
  */
8
- import { createOpenAICompatible } from '@ai-sdk/openai-compatible';
9
8
  import { OpencodeAI } from '@tarquinen/opencode-auth-provider';
10
9
  /**
11
- * Model tier mappings for each provider
12
- * Tier 1: High-quality models
13
- * Tier 2: Fast, cost-effective alternatives
10
+ * Fallback models to try in priority order
11
+ * Earlier entries are tried first
14
12
  */
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
- }
13
+ export const FALLBACK_MODELS = {
14
+ openai: 'gpt-5-mini',
15
+ anthropic: 'claude-haiku-4-5',
16
+ google: 'gemini-2.5-flash',
17
+ deepseek: 'deepseek-chat',
18
+ xai: 'grok-4-fast',
19
+ alibaba: 'qwen3-coder-flash',
20
+ zai: 'glm-4.5-flash',
21
+ opencode: 'big-pickle'
49
22
  };
50
- /**
51
- * Provider priority order for fallback selection
52
- * Providers earlier in the list are preferred over later ones
53
- */
54
23
  const PROVIDER_PRIORITY = [
55
24
  'openai',
56
25
  'anthropic',
57
26
  'google',
58
27
  'deepseek',
59
28
  'xai',
60
- 'qwen',
61
- 'zhipu',
62
- 'bigpickle'
29
+ 'alibaba',
30
+ 'zai',
31
+ 'opencode'
63
32
  ];
64
33
  /**
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
34
+ * Providers to skip for background analysis
35
+ * These providers are either expensive or not suitable for background tasks
76
36
  */
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
- }
37
+ const SKIP_PROVIDERS = ['github-copilot', 'anthropic'];
83
38
  /**
84
- * Gets the fallback big-pickle model (no auth required)
39
+ * Checks if a provider should be skipped for background analysis
85
40
  */
86
- function getBigPickleModel() {
87
- const bigPickle = createOpenAICompatible({
88
- name: 'big-pickle',
89
- baseURL: 'https://models.fly.dev/v1',
90
- });
91
- return bigPickle('big-pickle');
41
+ function shouldSkipProvider(providerID) {
42
+ const normalized = providerID.toLowerCase().trim();
43
+ return SKIP_PROVIDERS.some(skip => normalized.includes(skip.toLowerCase()));
92
44
  }
93
45
  /**
94
46
  * Main model selection function with intelligent fallback logic
95
47
  *
96
48
  * Selection hierarchy:
97
- * 1. Try the config-specified model (if provided)
98
- * 2. Try the current session's model
99
- * 3. If tier 1, fall back to tier 2 from same provider
100
- * 4. Try tier 2 models from other authenticated providers
101
- * 5. Ultimate fallback to big-pickle (free, no auth)
49
+ * 1. Try the config-specified model (if provided in dcp.jsonc)
50
+ * 2. Try the user's current model (skip if github-copilot or anthropic)
51
+ * 3. Try fallback models from authenticated providers (in priority order)
102
52
  *
103
53
  * @param currentModel - The model being used in the current session (optional)
104
54
  * @param logger - Logger instance for debug output
@@ -108,7 +58,8 @@ function getBigPickleModel() {
108
58
  export async function selectModel(currentModel, logger, configModel) {
109
59
  logger?.info('model-selector', 'Model selection started', { currentModel, configModel });
110
60
  const opencodeAI = new OpencodeAI();
111
- // Step 0: Try to use the config-specified model if provided
61
+ let failedModelInfo;
62
+ // Step 1: Try config-specified model first (highest priority)
112
63
  if (configModel) {
113
64
  const parts = configModel.split('/');
114
65
  if (parts.length !== 2) {
@@ -118,7 +69,7 @@ export async function selectModel(currentModel, logger, configModel) {
118
69
  }
119
70
  else {
120
71
  const [providerID, modelID] = parts;
121
- logger?.debug('model-selector', 'Step 0: Attempting to use config-specified model', {
72
+ logger?.debug('model-selector', 'Attempting to use config-specified model', {
122
73
  providerID,
123
74
  modelID
124
75
  });
@@ -131,94 +82,65 @@ export async function selectModel(currentModel, logger, configModel) {
131
82
  return {
132
83
  model,
133
84
  modelInfo: { providerID, modelID },
134
- tier: 'primary',
85
+ source: 'config',
135
86
  reason: 'Using model specified in dcp.jsonc config'
136
87
  };
137
88
  }
138
89
  catch (error) {
139
- // Log warning but continue to fallback logic
140
90
  logger?.warn('model-selector', '✗ Failed to use config-specified model, falling back', {
141
91
  providerID,
142
92
  modelID,
143
93
  error: error.message
144
94
  });
95
+ failedModelInfo = { providerID, modelID };
145
96
  }
146
97
  }
147
98
  }
148
- // Step 1: Try to use the current session's model
99
+ // Step 2: Try user's current model (if not skipped provider)
149
100
  if (currentModel) {
150
- logger?.debug('model-selector', 'Step 1: Attempting to use current session model', {
151
- providerID: currentModel.providerID,
152
- modelID: currentModel.modelID
153
- });
154
- try {
155
- const model = await opencodeAI.getLanguageModel(currentModel.providerID, currentModel.modelID);
156
- logger?.info('model-selector', '✓ Successfully using current session model', {
157
- providerID: currentModel.providerID,
158
- modelID: currentModel.modelID
159
- });
160
- return {
161
- model,
162
- modelInfo: currentModel,
163
- tier: 'primary',
164
- reason: 'Using current session model'
165
- };
166
- }
167
- catch (error) {
168
- // Continue to fallback logic
169
- logger?.warn('model-selector', '✗ Failed to use session model', {
101
+ if (shouldSkipProvider(currentModel.providerID)) {
102
+ logger?.info('model-selector', 'Skipping user model (provider not suitable for background tasks)', {
170
103
  providerID: currentModel.providerID,
171
104
  modelID: currentModel.modelID,
172
- error: error.message
105
+ reason: 'github-copilot and anthropic are skipped for analysis'
173
106
  });
107
+ // Track as failed so we can show toast
108
+ if (!failedModelInfo) {
109
+ failedModelInfo = currentModel;
110
+ }
174
111
  }
175
- // Step 2: If current model is tier 1, try tier 2 from same provider
176
- const isTier1 = isTier1Model(currentModel.providerID, currentModel.modelID);
177
- logger?.debug('model-selector', 'Checking if current model is tier 1', {
178
- providerID: currentModel.providerID,
179
- modelID: currentModel.modelID,
180
- isTier1
181
- });
182
- if (isTier1) {
183
- const tier2ModelID = getTier2Model(currentModel.providerID);
184
- logger?.debug('model-selector', 'Step 2: Attempting tier 2 fallback from same provider', {
112
+ else {
113
+ logger?.debug('model-selector', 'Attempting to use user\'s current model', {
185
114
  providerID: currentModel.providerID,
186
- tier2ModelID
115
+ modelID: currentModel.modelID
187
116
  });
188
- if (tier2ModelID) {
189
- try {
190
- const model = await opencodeAI.getLanguageModel(currentModel.providerID, tier2ModelID);
191
- logger?.info('model-selector', '✓ Successfully using tier 2 model from same provider', {
192
- providerID: currentModel.providerID,
193
- modelID: tier2ModelID
194
- });
195
- return {
196
- model,
197
- modelInfo: { providerID: currentModel.providerID, modelID: tier2ModelID },
198
- tier: 'tier2-same-provider',
199
- reason: `Falling back to faster model from same provider: ${tier2ModelID}`
200
- };
201
- }
202
- catch (error) {
203
- logger?.warn('model-selector', '✗ Failed to use tier 2 model from same provider', {
204
- providerID: currentModel.providerID,
205
- modelID: tier2ModelID,
206
- error: error.message
207
- });
208
- }
117
+ try {
118
+ const model = await opencodeAI.getLanguageModel(currentModel.providerID, currentModel.modelID);
119
+ logger?.info('model-selector', '✓ Successfully using user\'s current model', {
120
+ providerID: currentModel.providerID,
121
+ modelID: currentModel.modelID
122
+ });
123
+ return {
124
+ model,
125
+ modelInfo: currentModel,
126
+ source: 'user-model',
127
+ reason: 'Using current session model'
128
+ };
209
129
  }
210
- else {
211
- logger?.debug('model-selector', 'No tier 2 model available for provider', {
212
- providerID: currentModel.providerID
130
+ catch (error) {
131
+ logger?.warn('model-selector', ' Failed to use user\'s current model', {
132
+ providerID: currentModel.providerID,
133
+ modelID: currentModel.modelID,
134
+ error: error.message
213
135
  });
136
+ if (!failedModelInfo) {
137
+ failedModelInfo = currentModel;
138
+ }
214
139
  }
215
140
  }
216
141
  }
217
- else {
218
- logger?.debug('model-selector', 'No current session model provided, skipping steps 1-2');
219
- }
220
- // Step 3: Try tier 2 models from other authenticated providers
221
- logger?.debug('model-selector', 'Step 3: Fetching available authenticated providers');
142
+ // Step 3: Try fallback models from authenticated providers
143
+ logger?.debug('model-selector', 'Fetching available authenticated providers');
222
144
  const providers = await opencodeAI.listProviders();
223
145
  const availableProviderIDs = Object.keys(providers);
224
146
  logger?.info('model-selector', 'Available authenticated providers', {
@@ -230,58 +152,42 @@ export async function selectModel(currentModel, logger, configModel) {
230
152
  name: info.info.name
231
153
  }))
232
154
  });
233
- logger?.debug('model-selector', 'Attempting tier 2 models from other providers', {
234
- priorityOrder: PROVIDER_PRIORITY,
235
- currentProvider: currentModel?.providerID
155
+ logger?.debug('model-selector', 'Attempting fallback models from providers', {
156
+ priorityOrder: PROVIDER_PRIORITY
236
157
  });
237
158
  for (const providerID of PROVIDER_PRIORITY) {
238
- if (providerID === 'bigpickle') {
239
- logger?.debug('model-selector', 'Skipping bigpickle (saving for final fallback)');
240
- continue;
241
- }
242
- if (currentModel && providerID === currentModel.providerID) {
243
- logger?.debug('model-selector', `Skipping ${providerID} (already tried as current provider)`);
244
- continue;
245
- }
246
159
  if (!providers[providerID]) {
247
160
  logger?.debug('model-selector', `Skipping ${providerID} (not authenticated)`);
248
161
  continue;
249
162
  }
250
- const tier2ModelID = getTier2Model(providerID);
251
- if (!tier2ModelID) {
252
- logger?.debug('model-selector', `Skipping ${providerID} (no tier 2 model configured)`);
163
+ const fallbackModelID = FALLBACK_MODELS[providerID];
164
+ if (!fallbackModelID) {
165
+ logger?.debug('model-selector', `Skipping ${providerID} (no fallback model configured)`);
253
166
  continue;
254
167
  }
255
- logger?.debug('model-selector', `Attempting ${providerID}/${tier2ModelID}`);
168
+ logger?.debug('model-selector', `Attempting ${providerID}/${fallbackModelID}`);
256
169
  try {
257
- const model = await opencodeAI.getLanguageModel(providerID, tier2ModelID);
258
- logger?.info('model-selector', `✓ Successfully using tier 2 model from other provider`, {
170
+ const model = await opencodeAI.getLanguageModel(providerID, fallbackModelID);
171
+ logger?.info('model-selector', `✓ Successfully using fallback model`, {
259
172
  providerID,
260
- modelID: tier2ModelID
173
+ modelID: fallbackModelID
261
174
  });
262
175
  return {
263
176
  model,
264
- modelInfo: { providerID, modelID: tier2ModelID },
265
- tier: 'tier2-other-provider',
266
- reason: `Falling back to ${providerID}/${tier2ModelID}`
177
+ modelInfo: { providerID, modelID: fallbackModelID },
178
+ source: 'fallback',
179
+ reason: `Using ${providerID}/${fallbackModelID}`,
180
+ failedModel: failedModelInfo
267
181
  };
268
182
  }
269
183
  catch (error) {
270
- logger?.warn('model-selector', `✗ Failed to use ${providerID}/${tier2ModelID}`, {
184
+ logger?.warn('model-selector', `✗ Failed to use ${providerID}/${fallbackModelID}`, {
271
185
  error: error.message
272
186
  });
273
187
  continue;
274
188
  }
275
189
  }
276
- // Step 4: Ultimate fallback to big-pickle
277
- logger?.debug('model-selector', 'Step 4: Using ultimate fallback (big-pickle)');
278
- logger?.info('model-selector', '✓ Using big-pickle (free, no auth required)');
279
- return {
280
- model: getBigPickleModel(),
281
- modelInfo: { providerID: 'bigpickle', modelID: 'big-pickle' },
282
- tier: 'fallback',
283
- reason: 'Using free big-pickle model (no authenticated providers available)'
284
- };
190
+ throw new Error('No available models for analysis. Please authenticate with at least one provider.');
285
191
  }
286
192
  /**
287
193
  * Helper to extract model info from OpenCode session state
@@ -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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"}
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.2.4",
4
+ "version": "0.2.6",
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",