feat: add Claude Code provider support
Implements Claude Code as a new AI provider that uses the Claude Code CLI without requiring API keys. This enables users to leverage Claude models through their local Claude Code installation. Key changes: - Add complete AI SDK v1 implementation for Claude Code provider - Custom SDK with streaming/non-streaming support - Session management for conversation continuity - JSON extraction for object generation mode - Support for advanced settings (maxTurns, allowedTools, etc.) - Integrate Claude Code into Task Master's provider system - Update ai-services-unified.js to handle keyless authentication - Add provider to supported-models.json with opus/sonnet models - Ensure correct maxTokens values are applied (opus: 32000, sonnet: 64000) - Fix maxTokens configuration issue - Add max_tokens property to getAvailableModels() output - Update setModel() to properly handle claude-code models - Create update-config-tokens.js utility for init process - Add comprehensive documentation - User guide with configuration examples - Advanced settings explanation and future integration options The implementation maintains full backward compatibility with existing providers while adding seamless Claude Code support to all Task Master commands.
This commit is contained in:
committed by
Ralph Khreish
parent
1b8c320c57
commit
3e838ed34b
@@ -28,6 +28,7 @@ import {
|
||||
convertAllRulesToProfileRules,
|
||||
getRulesProfile
|
||||
} from '../src/utils/rule-transformer.js';
|
||||
import { updateConfigMaxTokens } from './modules/update-config-tokens.js';
|
||||
|
||||
import { execSync } from 'child_process';
|
||||
import {
|
||||
@@ -506,6 +507,14 @@ function createProjectStructure(
|
||||
...replacements
|
||||
}
|
||||
);
|
||||
|
||||
// Update config.json with correct maxTokens values from supported-models.json
|
||||
const configPath = path.join(targetDir, TASKMASTER_CONFIG_FILE);
|
||||
if (updateConfigMaxTokens(configPath)) {
|
||||
log('info', 'Updated config with correct maxTokens values');
|
||||
} else {
|
||||
log('warn', 'Could not update maxTokens in config');
|
||||
}
|
||||
|
||||
// Copy .gitignore
|
||||
copyTemplateFile('gitignore', path.join(targetDir, GITIGNORE_FILE));
|
||||
|
||||
Reference in New Issue
Block a user