mirror of
https://github.com/eyaltoledano/claude-task-master.git
synced 2025-11-23 13:36:44 +00:00
This change makes the Claude Code SDK package optional, preventing installation failures for users who don't need Claude Code functionality. Changes: - Added @anthropic-ai/claude-code to optionalDependencies in package.json - Implemented lazy loading in language-model.js to only import the SDK when actually used - Updated documentation to explain the optional installation requirement - Applied formatting fixes to ensure code consistency Benefits: - Users without Claude Code subscriptions don't need to install the dependency - Reduces package size for users who don't use Claude Code - Prevents installation failures if the package is unavailable - Provides clear error messages when the package is needed but not installed The implementation uses dynamic imports to load the SDK only when doGenerate() or doStream() is called, ensuring the provider can be instantiated without the package present.
58 lines
1.7 KiB
JavaScript
58 lines
1.7 KiB
JavaScript
/**
|
|
* update-config-tokens.js
|
|
* Updates config.json with correct maxTokens values from supported-models.json
|
|
*/
|
|
|
|
import fs from 'fs';
|
|
import path from 'path';
|
|
import { fileURLToPath } from 'url';
|
|
import { dirname } from 'path';
|
|
|
|
const __filename = fileURLToPath(import.meta.url);
|
|
const __dirname = dirname(__filename);
|
|
|
|
/**
|
|
* Updates the config file with correct maxTokens values from supported-models.json
|
|
* @param {string} configPath - Path to the config.json file to update
|
|
* @returns {boolean} True if successful, false otherwise
|
|
*/
|
|
export function updateConfigMaxTokens(configPath) {
|
|
try {
|
|
// Load supported models
|
|
const supportedModelsPath = path.join(__dirname, 'supported-models.json');
|
|
const supportedModels = JSON.parse(
|
|
fs.readFileSync(supportedModelsPath, 'utf-8')
|
|
);
|
|
|
|
// Load config
|
|
const config = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
|
|
|
|
// Update each role's maxTokens if the model exists in supported-models.json
|
|
const roles = ['main', 'research', 'fallback'];
|
|
|
|
for (const role of roles) {
|
|
if (config.models && config.models[role]) {
|
|
const provider = config.models[role].provider;
|
|
const modelId = config.models[role].modelId;
|
|
|
|
// Find the model in supported models
|
|
if (supportedModels[provider]) {
|
|
const modelData = supportedModels[provider].find(
|
|
(m) => m.id === modelId
|
|
);
|
|
if (modelData && modelData.max_tokens) {
|
|
config.models[role].maxTokens = modelData.max_tokens;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// Write back the updated config
|
|
fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
|
|
return true;
|
|
} catch (error) {
|
|
console.error('Error updating config maxTokens:', error.message);
|
|
return false;
|
|
}
|
|
}
|