@camaradesuk/git-worktree-tools 1.3.0 → 1.4.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/README.md +290 -3
- package/dist/api/clean.d.ts +65 -0
- package/dist/api/clean.d.ts.map +1 -0
- package/dist/api/clean.js +209 -0
- package/dist/api/clean.js.map +1 -0
- package/dist/api/create.d.ts +88 -0
- package/dist/api/create.d.ts.map +1 -0
- package/dist/api/create.js +373 -0
- package/dist/api/create.js.map +1 -0
- package/dist/api/index.d.ts +15 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +19 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/list.d.ts +74 -0
- package/dist/api/list.d.ts.map +1 -0
- package/dist/api/list.js +80 -0
- package/dist/api/list.js.map +1 -0
- package/dist/api/state.d.ts +43 -0
- package/dist/api/state.d.ts.map +1 -0
- package/dist/api/state.js +70 -0
- package/dist/api/state.js.map +1 -0
- package/dist/cli/cleanpr.js +171 -28
- package/dist/cli/cleanpr.js.map +1 -1
- package/dist/cli/cleanpr.test.js +459 -7
- package/dist/cli/cleanpr.test.js.map +1 -1
- package/dist/cli/newpr.js +189 -28
- package/dist/cli/newpr.js.map +1 -1
- package/dist/cli/newpr.test.js +349 -0
- package/dist/cli/newpr.test.js.map +1 -1
- package/dist/cli/wtconfig.d.ts +14 -0
- package/dist/cli/wtconfig.d.ts.map +1 -0
- package/dist/cli/wtconfig.js +948 -0
- package/dist/cli/wtconfig.js.map +1 -0
- package/dist/cli/wtconfig.test.d.ts +5 -0
- package/dist/cli/wtconfig.test.d.ts.map +1 -0
- package/dist/cli/wtconfig.test.js +1281 -0
- package/dist/cli/wtconfig.test.js.map +1 -0
- package/dist/cli/wtlink.js +5 -0
- package/dist/cli/wtlink.js.map +1 -1
- package/dist/cli/wtstate.d.ts +8 -0
- package/dist/cli/wtstate.d.ts.map +1 -0
- package/dist/cli/wtstate.js +83 -0
- package/dist/cli/wtstate.js.map +1 -0
- package/dist/cli/wtstate.test.d.ts +5 -0
- package/dist/cli/wtstate.test.d.ts.map +1 -0
- package/dist/cli/wtstate.test.js +193 -0
- package/dist/cli/wtstate.test.js.map +1 -0
- package/dist/e2e/cleanpr/cleanpr.e2e.test.d.ts +2 -0
- package/dist/e2e/cleanpr/cleanpr.e2e.test.d.ts.map +1 -0
- package/dist/e2e/cleanpr/cleanpr.e2e.test.js +326 -0
- package/dist/e2e/cleanpr/cleanpr.e2e.test.js.map +1 -0
- package/dist/e2e/helpers/cli-runner.d.ts +103 -0
- package/dist/e2e/helpers/cli-runner.d.ts.map +1 -0
- package/dist/e2e/helpers/cli-runner.js +200 -0
- package/dist/e2e/helpers/cli-runner.js.map +1 -0
- package/dist/e2e/helpers/gh-mock.d.ts +87 -0
- package/dist/e2e/helpers/gh-mock.d.ts.map +1 -0
- package/dist/e2e/helpers/gh-mock.js +384 -0
- package/dist/e2e/helpers/gh-mock.js.map +1 -0
- package/dist/e2e/helpers/index.d.ts +12 -0
- package/dist/e2e/helpers/index.d.ts.map +1 -0
- package/dist/e2e/helpers/index.js +16 -0
- package/dist/e2e/helpers/index.js.map +1 -0
- package/dist/e2e/helpers/pty-wrapper.d.ts +118 -0
- package/dist/e2e/helpers/pty-wrapper.d.ts.map +1 -0
- package/dist/e2e/helpers/pty-wrapper.js +276 -0
- package/dist/e2e/helpers/pty-wrapper.js.map +1 -0
- package/dist/e2e/helpers/scenario-harness.d.ts +55 -0
- package/dist/e2e/helpers/scenario-harness.d.ts.map +1 -0
- package/dist/e2e/helpers/scenario-harness.js +360 -0
- package/dist/e2e/helpers/scenario-harness.js.map +1 -0
- package/dist/e2e/helpers/test-context.d.ts +120 -0
- package/dist/e2e/helpers/test-context.d.ts.map +1 -0
- package/dist/e2e/helpers/test-context.js +263 -0
- package/dist/e2e/helpers/test-context.js.map +1 -0
- package/dist/e2e/lswt/lswt.e2e.test.d.ts +2 -0
- package/dist/e2e/lswt/lswt.e2e.test.d.ts.map +1 -0
- package/dist/e2e/lswt/lswt.e2e.test.js +328 -0
- package/dist/e2e/lswt/lswt.e2e.test.js.map +1 -0
- package/dist/e2e/newpr/newpr.e2e.test.d.ts +2 -0
- package/dist/e2e/newpr/newpr.e2e.test.d.ts.map +1 -0
- package/dist/e2e/newpr/newpr.e2e.test.js +286 -0
- package/dist/e2e/newpr/newpr.e2e.test.js.map +1 -0
- package/dist/e2e/newpr/scenarios.e2e.test.d.ts +2 -0
- package/dist/e2e/newpr/scenarios.e2e.test.d.ts.map +1 -0
- package/dist/e2e/newpr/scenarios.e2e.test.js +426 -0
- package/dist/e2e/newpr/scenarios.e2e.test.js.map +1 -0
- package/dist/e2e/workflows/pr-lifecycle.e2e.test.d.ts +2 -0
- package/dist/e2e/workflows/pr-lifecycle.e2e.test.d.ts.map +1 -0
- package/dist/e2e/workflows/pr-lifecycle.e2e.test.js +298 -0
- package/dist/e2e/workflows/pr-lifecycle.e2e.test.js.map +1 -0
- package/dist/e2e/wtlink/wtlink.e2e.test.d.ts +2 -0
- package/dist/e2e/wtlink/wtlink.e2e.test.d.ts.map +1 -0
- package/dist/e2e/wtlink/wtlink.e2e.test.js +364 -0
- package/dist/e2e/wtlink/wtlink.e2e.test.js.map +1 -0
- package/dist/index.d.ts +15 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/ai/base-provider.d.ts +58 -0
- package/dist/lib/ai/base-provider.d.ts.map +1 -0
- package/dist/lib/ai/base-provider.js +246 -0
- package/dist/lib/ai/base-provider.js.map +1 -0
- package/dist/lib/ai/base-provider.test.d.ts +7 -0
- package/dist/lib/ai/base-provider.test.d.ts.map +1 -0
- package/dist/lib/ai/base-provider.test.js +320 -0
- package/dist/lib/ai/base-provider.test.js.map +1 -0
- package/dist/lib/ai/cli-provider.d.ts +87 -0
- package/dist/lib/ai/cli-provider.d.ts.map +1 -0
- package/dist/lib/ai/cli-provider.js +280 -0
- package/dist/lib/ai/cli-provider.js.map +1 -0
- package/dist/lib/ai/cli-provider.test.d.ts +5 -0
- package/dist/lib/ai/cli-provider.test.d.ts.map +1 -0
- package/dist/lib/ai/cli-provider.test.js +462 -0
- package/dist/lib/ai/cli-provider.test.js.map +1 -0
- package/dist/lib/ai/fallback-provider.d.ts +20 -0
- package/dist/lib/ai/fallback-provider.d.ts.map +1 -0
- package/dist/lib/ai/fallback-provider.js +125 -0
- package/dist/lib/ai/fallback-provider.js.map +1 -0
- package/dist/lib/ai/fallback-provider.test.d.ts +7 -0
- package/dist/lib/ai/fallback-provider.test.d.ts.map +1 -0
- package/dist/lib/ai/fallback-provider.test.js +165 -0
- package/dist/lib/ai/fallback-provider.test.js.map +1 -0
- package/dist/lib/ai/generation-service.d.ts +44 -0
- package/dist/lib/ai/generation-service.d.ts.map +1 -0
- package/dist/lib/ai/generation-service.js +107 -0
- package/dist/lib/ai/generation-service.js.map +1 -0
- package/dist/lib/ai/generation-service.test.d.ts +7 -0
- package/dist/lib/ai/generation-service.test.d.ts.map +1 -0
- package/dist/lib/ai/generation-service.test.js +213 -0
- package/dist/lib/ai/generation-service.test.js.map +1 -0
- package/dist/lib/ai/index.d.ts +19 -0
- package/dist/lib/ai/index.d.ts.map +1 -0
- package/dist/lib/ai/index.js +22 -0
- package/dist/lib/ai/index.js.map +1 -0
- package/dist/lib/ai/provider-manager.d.ts +109 -0
- package/dist/lib/ai/provider-manager.d.ts.map +1 -0
- package/dist/lib/ai/provider-manager.js +270 -0
- package/dist/lib/ai/provider-manager.js.map +1 -0
- package/dist/lib/ai/provider-manager.test.d.ts +5 -0
- package/dist/lib/ai/provider-manager.test.d.ts.map +1 -0
- package/dist/lib/ai/provider-manager.test.js +312 -0
- package/dist/lib/ai/provider-manager.test.js.map +1 -0
- package/dist/lib/ai/types.d.ts +166 -0
- package/dist/lib/ai/types.d.ts.map +1 -0
- package/dist/lib/ai/types.js +19 -0
- package/dist/lib/ai/types.js.map +1 -0
- package/dist/lib/cleanpr/args.d.ts.map +1 -1
- package/dist/lib/cleanpr/args.js +18 -0
- package/dist/lib/cleanpr/args.js.map +1 -1
- package/dist/lib/cleanpr/args.test.js +88 -11
- package/dist/lib/cleanpr/args.test.js.map +1 -1
- package/dist/lib/cleanpr/cleanup.d.ts +2 -0
- package/dist/lib/cleanpr/cleanup.d.ts.map +1 -1
- package/dist/lib/cleanpr/cleanup.js +30 -2
- package/dist/lib/cleanpr/cleanup.js.map +1 -1
- package/dist/lib/cleanpr/cleanup.test.js +37 -5
- package/dist/lib/cleanpr/cleanup.test.js.map +1 -1
- package/dist/lib/cleanpr/types.d.ts +10 -0
- package/dist/lib/cleanpr/types.d.ts.map +1 -1
- package/dist/lib/cleanpr/worktree-info.test.js +72 -1
- package/dist/lib/cleanpr/worktree-info.test.js.map +1 -1
- package/dist/lib/config.d.ts +170 -1
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +129 -2
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/config.test.js +406 -2
- package/dist/lib/config.test.js.map +1 -1
- package/dist/lib/hooks/executor.d.ts +35 -0
- package/dist/lib/hooks/executor.d.ts.map +1 -0
- package/dist/lib/hooks/executor.js +401 -0
- package/dist/lib/hooks/executor.js.map +1 -0
- package/dist/lib/hooks/executor.test.d.ts +5 -0
- package/dist/lib/hooks/executor.test.d.ts.map +1 -0
- package/dist/lib/hooks/executor.test.js +648 -0
- package/dist/lib/hooks/executor.test.js.map +1 -0
- package/dist/lib/hooks/index.d.ts +25 -0
- package/dist/lib/hooks/index.d.ts.map +1 -0
- package/dist/lib/hooks/index.js +26 -0
- package/dist/lib/hooks/index.js.map +1 -0
- package/dist/lib/hooks/templates.d.ts +74 -0
- package/dist/lib/hooks/templates.d.ts.map +1 -0
- package/dist/lib/hooks/templates.js +270 -0
- package/dist/lib/hooks/templates.js.map +1 -0
- package/dist/lib/hooks/templates.test.d.ts +5 -0
- package/dist/lib/hooks/templates.test.d.ts.map +1 -0
- package/dist/lib/hooks/templates.test.js +163 -0
- package/dist/lib/hooks/templates.test.js.map +1 -0
- package/dist/lib/hooks/types.d.ts +161 -0
- package/dist/lib/hooks/types.d.ts.map +1 -0
- package/dist/lib/hooks/types.js +73 -0
- package/dist/lib/hooks/types.js.map +1 -0
- package/dist/lib/hooks/types.test.d.ts +5 -0
- package/dist/lib/hooks/types.test.d.ts.map +1 -0
- package/dist/lib/hooks/types.test.js +132 -0
- package/dist/lib/hooks/types.test.js.map +1 -0
- package/dist/lib/json-output.d.ts +172 -0
- package/dist/lib/json-output.d.ts.map +1 -0
- package/dist/lib/json-output.js +134 -0
- package/dist/lib/json-output.js.map +1 -0
- package/dist/lib/json-output.test.d.ts +5 -0
- package/dist/lib/json-output.test.d.ts.map +1 -0
- package/dist/lib/json-output.test.js +259 -0
- package/dist/lib/json-output.test.js.map +1 -0
- package/dist/lib/lswt/action-executors.test.js +6 -0
- package/dist/lib/lswt/action-executors.test.js.map +1 -1
- package/dist/lib/newpr/action-deps.d.ts +15 -0
- package/dist/lib/newpr/action-deps.d.ts.map +1 -0
- package/dist/lib/newpr/action-deps.js +22 -0
- package/dist/lib/newpr/action-deps.js.map +1 -0
- package/dist/lib/newpr/args.d.ts.map +1 -1
- package/dist/lib/newpr/args.js +56 -0
- package/dist/lib/newpr/args.js.map +1 -1
- package/dist/lib/newpr/hook-runner.d.ts +80 -0
- package/dist/lib/newpr/hook-runner.d.ts.map +1 -0
- package/dist/lib/newpr/hook-runner.js +182 -0
- package/dist/lib/newpr/hook-runner.js.map +1 -0
- package/dist/lib/newpr/hook-runner.test.d.ts +7 -0
- package/dist/lib/newpr/hook-runner.test.d.ts.map +1 -0
- package/dist/lib/newpr/hook-runner.test.js +301 -0
- package/dist/lib/newpr/hook-runner.test.js.map +1 -0
- package/dist/lib/newpr/index.d.ts +3 -0
- package/dist/lib/newpr/index.d.ts.map +1 -1
- package/dist/lib/newpr/index.js +3 -0
- package/dist/lib/newpr/index.js.map +1 -1
- package/dist/lib/newpr/types.d.ts +9 -0
- package/dist/lib/newpr/types.d.ts.map +1 -1
- package/dist/lib/wtconfig/config-manager.d.ts +72 -0
- package/dist/lib/wtconfig/config-manager.d.ts.map +1 -0
- package/dist/lib/wtconfig/config-manager.js +408 -0
- package/dist/lib/wtconfig/config-manager.js.map +1 -0
- package/dist/lib/wtconfig/config-manager.test.d.ts +5 -0
- package/dist/lib/wtconfig/config-manager.test.d.ts.map +1 -0
- package/dist/lib/wtconfig/config-manager.test.js +501 -0
- package/dist/lib/wtconfig/config-manager.test.js.map +1 -0
- package/dist/lib/wtconfig/environment.d.ts +23 -0
- package/dist/lib/wtconfig/environment.d.ts.map +1 -0
- package/dist/lib/wtconfig/environment.js +242 -0
- package/dist/lib/wtconfig/environment.js.map +1 -0
- package/dist/lib/wtconfig/environment.test.d.ts +5 -0
- package/dist/lib/wtconfig/environment.test.d.ts.map +1 -0
- package/dist/lib/wtconfig/environment.test.js +246 -0
- package/dist/lib/wtconfig/environment.test.js.map +1 -0
- package/dist/lib/wtconfig/index.d.ts +7 -0
- package/dist/lib/wtconfig/index.d.ts.map +1 -0
- package/dist/lib/wtconfig/index.js +8 -0
- package/dist/lib/wtconfig/index.js.map +1 -0
- package/dist/lib/wtconfig/types.d.ts +97 -0
- package/dist/lib/wtconfig/types.d.ts.map +1 -0
- package/dist/lib/wtconfig/types.js +5 -0
- package/dist/lib/wtconfig/types.js.map +1 -0
- package/dist/lib/wtstate/analyze.d.ts +13 -0
- package/dist/lib/wtstate/analyze.d.ts.map +1 -0
- package/dist/lib/wtstate/analyze.js +165 -0
- package/dist/lib/wtstate/analyze.js.map +1 -0
- package/dist/lib/wtstate/analyze.test.d.ts +5 -0
- package/dist/lib/wtstate/analyze.test.d.ts.map +1 -0
- package/dist/lib/wtstate/analyze.test.js +282 -0
- package/dist/lib/wtstate/analyze.test.js.map +1 -0
- package/dist/lib/wtstate/args.d.ts +17 -0
- package/dist/lib/wtstate/args.d.ts.map +1 -0
- package/dist/lib/wtstate/args.js +91 -0
- package/dist/lib/wtstate/args.js.map +1 -0
- package/dist/lib/wtstate/args.test.d.ts +5 -0
- package/dist/lib/wtstate/args.test.d.ts.map +1 -0
- package/dist/lib/wtstate/args.test.js +120 -0
- package/dist/lib/wtstate/args.test.js.map +1 -0
- package/dist/lib/wtstate/index.d.ts +7 -0
- package/dist/lib/wtstate/index.d.ts.map +1 -0
- package/dist/lib/wtstate/index.js +8 -0
- package/dist/lib/wtstate/index.js.map +1 -0
- package/dist/lib/wtstate/types.d.ts +64 -0
- package/dist/lib/wtstate/types.d.ts.map +1 -0
- package/dist/lib/wtstate/types.js +5 -0
- package/dist/lib/wtstate/types.js.map +1 -0
- package/dist/mcp/server.d.ts +14 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +339 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/server.test.d.ts +9 -0
- package/dist/mcp/server.test.d.ts.map +1 -0
- package/dist/mcp/server.test.js +390 -0
- package/dist/mcp/server.test.js.map +1 -0
- package/package.json +8 -2
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI Provider Manager
|
|
3
|
+
*
|
|
4
|
+
* Handles provider selection, auto-detection, and fallback logic.
|
|
5
|
+
*/
|
|
6
|
+
import type { AIProvider, AIConfig, AIGenerationResult } from './types.js';
|
|
7
|
+
/**
|
|
8
|
+
* Provider manager configuration
|
|
9
|
+
*/
|
|
10
|
+
export interface ProviderManagerOptions {
|
|
11
|
+
/** AI configuration from .worktreerc */
|
|
12
|
+
config?: AIConfig;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* AI Provider Manager
|
|
16
|
+
*
|
|
17
|
+
* Manages provider selection and provides a unified interface for AI generation.
|
|
18
|
+
* Uses lazy initialization to avoid creating provider instances that won't be used.
|
|
19
|
+
*/
|
|
20
|
+
export declare class AIProviderManager {
|
|
21
|
+
private config;
|
|
22
|
+
private primaryProvider;
|
|
23
|
+
private fallbackProvider;
|
|
24
|
+
private initialized;
|
|
25
|
+
/** Cache of availability check results to avoid re-checking */
|
|
26
|
+
private availabilityCache;
|
|
27
|
+
constructor(options?: ProviderManagerOptions);
|
|
28
|
+
/**
|
|
29
|
+
* Initialize providers based on configuration
|
|
30
|
+
*/
|
|
31
|
+
initialize(): Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* Resolve a provider by name
|
|
34
|
+
*/
|
|
35
|
+
private resolveProvider;
|
|
36
|
+
/**
|
|
37
|
+
* Get lazy provider factories for auto-detection
|
|
38
|
+
* These check availability before creating full provider instances.
|
|
39
|
+
*/
|
|
40
|
+
private getLazyProviderFactories;
|
|
41
|
+
/**
|
|
42
|
+
* Check if a provider is available (with caching)
|
|
43
|
+
*/
|
|
44
|
+
private isProviderAvailable;
|
|
45
|
+
/**
|
|
46
|
+
* Auto-detect available AI provider using lazy initialization
|
|
47
|
+
* Only creates provider instance after confirming availability.
|
|
48
|
+
*/
|
|
49
|
+
private autoDetectProvider;
|
|
50
|
+
private createClaudeProvider;
|
|
51
|
+
private createGeminiProvider;
|
|
52
|
+
private createOllamaProvider;
|
|
53
|
+
private createOpenAIProvider;
|
|
54
|
+
private createScriptProvider;
|
|
55
|
+
/**
|
|
56
|
+
* Get the active provider (primary or fallback)
|
|
57
|
+
*/
|
|
58
|
+
getProvider(): Promise<AIProvider>;
|
|
59
|
+
/**
|
|
60
|
+
* Execute a generation with fallback support
|
|
61
|
+
*/
|
|
62
|
+
private executeWithFallback;
|
|
63
|
+
/**
|
|
64
|
+
* Check if AI generation is enabled for a feature
|
|
65
|
+
*/
|
|
66
|
+
isEnabled(feature: 'branchName' | 'prTitle' | 'prDescription' | 'commitMessage' | 'planDocument'): boolean;
|
|
67
|
+
/**
|
|
68
|
+
* Get the current configuration
|
|
69
|
+
*/
|
|
70
|
+
getConfig(): AIConfig;
|
|
71
|
+
/**
|
|
72
|
+
* Get information about available providers
|
|
73
|
+
* Uses cached availability checks to avoid redundant provider creation.
|
|
74
|
+
*/
|
|
75
|
+
getAvailableProviders(): Promise<string[]>;
|
|
76
|
+
/**
|
|
77
|
+
* Get the name of the active provider
|
|
78
|
+
*/
|
|
79
|
+
getActiveProviderName(): Promise<string>;
|
|
80
|
+
/**
|
|
81
|
+
* Generate a branch name
|
|
82
|
+
*/
|
|
83
|
+
generateBranchName(context: import('./types.js').BranchContext): Promise<AIGenerationResult>;
|
|
84
|
+
/**
|
|
85
|
+
* Generate a PR title
|
|
86
|
+
*/
|
|
87
|
+
generatePRTitle(context: import('./types.js').PRContext): Promise<AIGenerationResult>;
|
|
88
|
+
/**
|
|
89
|
+
* Generate a PR description
|
|
90
|
+
*/
|
|
91
|
+
generatePRDescription(context: import('./types.js').PRContext): Promise<AIGenerationResult>;
|
|
92
|
+
/**
|
|
93
|
+
* Generate a commit message
|
|
94
|
+
*/
|
|
95
|
+
generateCommitMessage(context: import('./types.js').CommitContext): Promise<AIGenerationResult>;
|
|
96
|
+
/**
|
|
97
|
+
* Generate a plan document
|
|
98
|
+
*/
|
|
99
|
+
generatePlanDocument(context: import('./types.js').PlanContext): Promise<AIGenerationResult>;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Create a provider manager with configuration
|
|
103
|
+
*/
|
|
104
|
+
export declare function createAIProviderManager(config?: AIConfig): AIProviderManager;
|
|
105
|
+
/**
|
|
106
|
+
* Get or create the default provider manager
|
|
107
|
+
*/
|
|
108
|
+
export declare function getDefaultAIProviderManager(config?: AIConfig): AIProviderManager;
|
|
109
|
+
//# sourceMappingURL=provider-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-manager.d.ts","sourceRoot":"","sources":["../../../src/lib/ai/provider-manager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAkB,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAW3F;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,wCAAwC;IACxC,MAAM,CAAC,EAAE,QAAQ,CAAC;CACnB;AAYD;;;;;GAKG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,eAAe,CAA2B;IAClD,OAAO,CAAC,gBAAgB,CAA2B;IACnD,OAAO,CAAC,WAAW,CAAS;IAC5B,+DAA+D;IAC/D,OAAO,CAAC,iBAAiB,CAAmC;gBAEhD,OAAO,GAAE,sBAA2B;IAIhD;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAYjC;;OAEG;YACW,eAAe;IA4B7B;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAyBhC;;OAEG;YACW,mBAAmB;IAYjC;;;OAGG;YACW,kBAAkB;YAclB,oBAAoB;YAKpB,oBAAoB;YAKpB,oBAAoB;YAKpB,oBAAoB;YAKpB,oBAAoB;IAQlC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,UAAU,CAAC;IAexC;;OAEG;YACW,mBAAmB;IAiCjC;;OAEG;IACH,SAAS,CACP,OAAO,EAAE,YAAY,GAAG,SAAS,GAAG,eAAe,GAAG,eAAe,GAAG,cAAc,GACrF,OAAO;IAIV;;OAEG;IACH,SAAS,IAAI,QAAQ;IAIrB;;;OAGG;IACG,qBAAqB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAahD;;OAEG;IACG,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC;IAW9C;;OAEG;IACG,kBAAkB,CACtB,OAAO,EAAE,OAAO,YAAY,EAAE,aAAa,GAC1C,OAAO,CAAC,kBAAkB,CAAC;IAI9B;;OAEG;IACG,eAAe,CAAC,OAAO,EAAE,OAAO,YAAY,EAAE,SAAS,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAI3F;;OAEG;IACG,qBAAqB,CACzB,OAAO,EAAE,OAAO,YAAY,EAAE,SAAS,GACtC,OAAO,CAAC,kBAAkB,CAAC;IAI9B;;OAEG;IACG,qBAAqB,CACzB,OAAO,EAAE,OAAO,YAAY,EAAE,aAAa,GAC1C,OAAO,CAAC,kBAAkB,CAAC;IAI9B;;OAEG;IACG,oBAAoB,CACxB,OAAO,EAAE,OAAO,YAAY,EAAE,WAAW,GACxC,OAAO,CAAC,kBAAkB,CAAC;CAG/B;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,iBAAiB,CAE5E;AAOD;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,iBAAiB,CAKhF"}
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI Provider Manager
|
|
3
|
+
*
|
|
4
|
+
* Handles provider selection, auto-detection, and fallback logic.
|
|
5
|
+
*/
|
|
6
|
+
import { DEFAULT_AI_CONFIG } from './types.js';
|
|
7
|
+
import { FallbackProvider } from './fallback-provider.js';
|
|
8
|
+
import { ClaudeProvider, GeminiProvider, OllamaProvider, OpenAIProvider, ScriptProvider, } from './cli-provider.js';
|
|
9
|
+
/**
|
|
10
|
+
* AI Provider Manager
|
|
11
|
+
*
|
|
12
|
+
* Manages provider selection and provides a unified interface for AI generation.
|
|
13
|
+
* Uses lazy initialization to avoid creating provider instances that won't be used.
|
|
14
|
+
*/
|
|
15
|
+
export class AIProviderManager {
|
|
16
|
+
config;
|
|
17
|
+
primaryProvider = null;
|
|
18
|
+
fallbackProvider = null;
|
|
19
|
+
initialized = false;
|
|
20
|
+
/** Cache of availability check results to avoid re-checking */
|
|
21
|
+
availabilityCache = new Map();
|
|
22
|
+
constructor(options = {}) {
|
|
23
|
+
this.config = { ...DEFAULT_AI_CONFIG, ...options.config };
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Initialize providers based on configuration
|
|
27
|
+
*/
|
|
28
|
+
async initialize() {
|
|
29
|
+
if (this.initialized)
|
|
30
|
+
return;
|
|
31
|
+
this.primaryProvider = await this.resolveProvider(this.config.provider ?? 'auto');
|
|
32
|
+
if (this.config.fallback && this.config.fallback !== 'none') {
|
|
33
|
+
this.fallbackProvider = await this.resolveProvider(this.config.fallback);
|
|
34
|
+
}
|
|
35
|
+
this.initialized = true;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Resolve a provider by name
|
|
39
|
+
*/
|
|
40
|
+
async resolveProvider(name) {
|
|
41
|
+
switch (name) {
|
|
42
|
+
case 'auto':
|
|
43
|
+
return this.autoDetectProvider();
|
|
44
|
+
case 'claude':
|
|
45
|
+
return this.createClaudeProvider();
|
|
46
|
+
case 'gemini':
|
|
47
|
+
return this.createGeminiProvider();
|
|
48
|
+
case 'openai':
|
|
49
|
+
return this.createOpenAIProvider();
|
|
50
|
+
case 'ollama':
|
|
51
|
+
return this.createOllamaProvider();
|
|
52
|
+
case 'script':
|
|
53
|
+
return this.createScriptProvider();
|
|
54
|
+
case 'none':
|
|
55
|
+
return null;
|
|
56
|
+
default:
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Get lazy provider factories for auto-detection
|
|
62
|
+
* These check availability before creating full provider instances.
|
|
63
|
+
*/
|
|
64
|
+
getLazyProviderFactories() {
|
|
65
|
+
return [
|
|
66
|
+
{
|
|
67
|
+
name: 'claude',
|
|
68
|
+
checkAvailability: () => ClaudeProvider.checkAvailability(),
|
|
69
|
+
create: () => new ClaudeProvider(this.config.claude?.model),
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
name: 'gemini',
|
|
73
|
+
checkAvailability: () => GeminiProvider.checkAvailability(),
|
|
74
|
+
create: () => new GeminiProvider(this.config.gemini?.model),
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
name: 'ollama',
|
|
78
|
+
checkAvailability: () => OllamaProvider.checkAvailability(this.config.ollama?.host),
|
|
79
|
+
create: () => new OllamaProvider(this.config.ollama?.model, this.config.ollama?.host),
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
name: 'openai',
|
|
83
|
+
checkAvailability: () => OpenAIProvider.checkAvailability(this.config.openai?.apiKeyEnv),
|
|
84
|
+
create: () => new OpenAIProvider(this.config.openai?.model, this.config.openai?.apiKeyEnv),
|
|
85
|
+
},
|
|
86
|
+
];
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Check if a provider is available (with caching)
|
|
90
|
+
*/
|
|
91
|
+
async isProviderAvailable(factory) {
|
|
92
|
+
// Check cache first
|
|
93
|
+
if (this.availabilityCache.has(factory.name)) {
|
|
94
|
+
return this.availabilityCache.get(factory.name);
|
|
95
|
+
}
|
|
96
|
+
// Check availability and cache result
|
|
97
|
+
const available = await factory.checkAvailability();
|
|
98
|
+
this.availabilityCache.set(factory.name, available);
|
|
99
|
+
return available;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Auto-detect available AI provider using lazy initialization
|
|
103
|
+
* Only creates provider instance after confirming availability.
|
|
104
|
+
*/
|
|
105
|
+
async autoDetectProvider() {
|
|
106
|
+
const factories = this.getLazyProviderFactories();
|
|
107
|
+
for (const factory of factories) {
|
|
108
|
+
const available = await this.isProviderAvailable(factory);
|
|
109
|
+
if (available) {
|
|
110
|
+
// Only create the provider if it's available
|
|
111
|
+
return factory.create();
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return null;
|
|
115
|
+
}
|
|
116
|
+
async createClaudeProvider() {
|
|
117
|
+
const factory = this.getLazyProviderFactories().find((f) => f.name === 'claude');
|
|
118
|
+
return (await this.isProviderAvailable(factory)) ? factory.create() : null;
|
|
119
|
+
}
|
|
120
|
+
async createGeminiProvider() {
|
|
121
|
+
const factory = this.getLazyProviderFactories().find((f) => f.name === 'gemini');
|
|
122
|
+
return (await this.isProviderAvailable(factory)) ? factory.create() : null;
|
|
123
|
+
}
|
|
124
|
+
async createOllamaProvider() {
|
|
125
|
+
const factory = this.getLazyProviderFactories().find((f) => f.name === 'ollama');
|
|
126
|
+
return (await this.isProviderAvailable(factory)) ? factory.create() : null;
|
|
127
|
+
}
|
|
128
|
+
async createOpenAIProvider() {
|
|
129
|
+
const factory = this.getLazyProviderFactories().find((f) => f.name === 'openai');
|
|
130
|
+
return (await this.isProviderAvailable(factory)) ? factory.create() : null;
|
|
131
|
+
}
|
|
132
|
+
async createScriptProvider() {
|
|
133
|
+
if (!this.config.script?.path) {
|
|
134
|
+
return null;
|
|
135
|
+
}
|
|
136
|
+
const provider = new ScriptProvider(this.config.script.path);
|
|
137
|
+
return (await provider.isAvailable()) ? provider : null;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Get the active provider (primary or fallback)
|
|
141
|
+
*/
|
|
142
|
+
async getProvider() {
|
|
143
|
+
await this.initialize();
|
|
144
|
+
if (this.primaryProvider) {
|
|
145
|
+
return this.primaryProvider;
|
|
146
|
+
}
|
|
147
|
+
if (this.fallbackProvider) {
|
|
148
|
+
return this.fallbackProvider;
|
|
149
|
+
}
|
|
150
|
+
// Return fallback provider for basic generation
|
|
151
|
+
return new FallbackProvider();
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Execute a generation with fallback support
|
|
155
|
+
*/
|
|
156
|
+
async executeWithFallback(operation) {
|
|
157
|
+
await this.initialize();
|
|
158
|
+
// Try primary provider
|
|
159
|
+
if (this.primaryProvider) {
|
|
160
|
+
const result = await operation(this.primaryProvider);
|
|
161
|
+
if (result.success) {
|
|
162
|
+
return result;
|
|
163
|
+
}
|
|
164
|
+
// Try fallback if available
|
|
165
|
+
if (this.fallbackProvider) {
|
|
166
|
+
const fallbackResult = await operation(this.fallbackProvider);
|
|
167
|
+
if (fallbackResult.success) {
|
|
168
|
+
return fallbackResult;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
return result; // Return primary error
|
|
172
|
+
}
|
|
173
|
+
// Try fallback provider
|
|
174
|
+
if (this.fallbackProvider) {
|
|
175
|
+
return operation(this.fallbackProvider);
|
|
176
|
+
}
|
|
177
|
+
// Use basic fallback
|
|
178
|
+
const fallback = new FallbackProvider();
|
|
179
|
+
return operation(fallback);
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Check if AI generation is enabled for a feature
|
|
183
|
+
*/
|
|
184
|
+
isEnabled(feature) {
|
|
185
|
+
return this.config[feature] ?? false;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Get the current configuration
|
|
189
|
+
*/
|
|
190
|
+
getConfig() {
|
|
191
|
+
return { ...this.config };
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Get information about available providers
|
|
195
|
+
* Uses cached availability checks to avoid redundant provider creation.
|
|
196
|
+
*/
|
|
197
|
+
async getAvailableProviders() {
|
|
198
|
+
const available = [];
|
|
199
|
+
const factories = this.getLazyProviderFactories();
|
|
200
|
+
for (const factory of factories) {
|
|
201
|
+
if (await this.isProviderAvailable(factory)) {
|
|
202
|
+
available.push(factory.name);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
return available;
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Get the name of the active provider
|
|
209
|
+
*/
|
|
210
|
+
async getActiveProviderName() {
|
|
211
|
+
await this.initialize();
|
|
212
|
+
if (this.primaryProvider) {
|
|
213
|
+
return this.primaryProvider.name;
|
|
214
|
+
}
|
|
215
|
+
if (this.fallbackProvider) {
|
|
216
|
+
return this.fallbackProvider.name;
|
|
217
|
+
}
|
|
218
|
+
return 'fallback';
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Generate a branch name
|
|
222
|
+
*/
|
|
223
|
+
async generateBranchName(context) {
|
|
224
|
+
return this.executeWithFallback((provider) => provider.generateBranchName(context));
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Generate a PR title
|
|
228
|
+
*/
|
|
229
|
+
async generatePRTitle(context) {
|
|
230
|
+
return this.executeWithFallback((provider) => provider.generatePRTitle(context));
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Generate a PR description
|
|
234
|
+
*/
|
|
235
|
+
async generatePRDescription(context) {
|
|
236
|
+
return this.executeWithFallback((provider) => provider.generatePRDescription(context));
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Generate a commit message
|
|
240
|
+
*/
|
|
241
|
+
async generateCommitMessage(context) {
|
|
242
|
+
return this.executeWithFallback((provider) => provider.generateCommitMessage(context));
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Generate a plan document
|
|
246
|
+
*/
|
|
247
|
+
async generatePlanDocument(context) {
|
|
248
|
+
return this.executeWithFallback((provider) => provider.generatePlanDocument(context));
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Create a provider manager with configuration
|
|
253
|
+
*/
|
|
254
|
+
export function createAIProviderManager(config) {
|
|
255
|
+
return new AIProviderManager({ config });
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Default singleton instance
|
|
259
|
+
*/
|
|
260
|
+
let defaultManager = null;
|
|
261
|
+
/**
|
|
262
|
+
* Get or create the default provider manager
|
|
263
|
+
*/
|
|
264
|
+
export function getDefaultAIProviderManager(config) {
|
|
265
|
+
if (!defaultManager || config) {
|
|
266
|
+
defaultManager = createAIProviderManager(config);
|
|
267
|
+
}
|
|
268
|
+
return defaultManager;
|
|
269
|
+
}
|
|
270
|
+
//# sourceMappingURL=provider-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-manager.js","sourceRoot":"","sources":["../../../src/lib/ai/provider-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-manager.test.d.ts","sourceRoot":"","sources":["../../../src/lib/ai/provider-manager.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|