gencode-ai 0.1.0 → 0.1.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 +8 -90
- package/dist/agent/agent.d.ts +1 -1
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/agent.js +8 -2
- package/dist/agent/agent.js.map +1 -1
- package/dist/agent/types.d.ts +9 -1
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/cli/components/AllModelsSelector.d.ts +11 -0
- package/dist/cli/components/AllModelsSelector.d.ts.map +1 -0
- package/dist/cli/components/AllModelsSelector.js +153 -0
- package/dist/cli/components/AllModelsSelector.js.map +1 -0
- package/dist/cli/components/App.d.ts.map +1 -1
- package/dist/cli/components/App.js +59 -25
- package/dist/cli/components/App.js.map +1 -1
- package/dist/cli/components/CommandSuggestions.d.ts.map +1 -1
- package/dist/cli/components/CommandSuggestions.js +1 -0
- package/dist/cli/components/CommandSuggestions.js.map +1 -1
- package/dist/cli/components/Messages.d.ts +15 -1
- package/dist/cli/components/Messages.d.ts.map +1 -1
- package/dist/cli/components/Messages.js +41 -15
- package/dist/cli/components/Messages.js.map +1 -1
- package/dist/cli/components/ModelSelector.d.ts +7 -7
- package/dist/cli/components/ModelSelector.d.ts.map +1 -1
- package/dist/cli/components/ModelSelector.js +116 -33
- package/dist/cli/components/ModelSelector.js.map +1 -1
- package/dist/cli/components/ProviderManager.d.ts +8 -0
- package/dist/cli/components/ProviderManager.d.ts.map +1 -0
- package/dist/cli/components/ProviderManager.js +280 -0
- package/dist/cli/components/ProviderManager.js.map +1 -0
- package/dist/cli/components/markdown.d.ts +9 -0
- package/dist/cli/components/markdown.d.ts.map +1 -0
- package/dist/cli/components/markdown.js +129 -0
- package/dist/cli/components/markdown.js.map +1 -0
- package/dist/cli/components/theme.d.ts +5 -0
- package/dist/cli/components/theme.d.ts.map +1 -1
- package/dist/cli/components/theme.js +7 -0
- package/dist/cli/components/theme.js.map +1 -1
- package/dist/cli/index.js +19 -5
- package/dist/cli/index.js.map +1 -1
- package/dist/config/index.d.ts +3 -2
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +2 -1
- package/dist/config/index.js.map +1 -1
- package/dist/config/providers-config.d.ts +28 -0
- package/dist/config/providers-config.d.ts.map +1 -0
- package/dist/config/providers-config.js +79 -0
- package/dist/config/providers-config.js.map +1 -0
- package/dist/config/types.d.ts +31 -1
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +1 -0
- package/dist/config/types.js.map +1 -1
- package/dist/providers/gemini.d.ts.map +1 -1
- package/dist/providers/gemini.js +14 -3
- package/dist/providers/gemini.js.map +1 -1
- package/dist/providers/index.d.ts +5 -3
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +13 -1
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/registry.d.ts +66 -0
- package/dist/providers/registry.d.ts.map +1 -0
- package/dist/providers/registry.js +158 -0
- package/dist/providers/registry.js.map +1 -0
- package/dist/providers/search/brave.d.ts +14 -0
- package/dist/providers/search/brave.d.ts.map +1 -0
- package/dist/providers/search/brave.js +87 -0
- package/dist/providers/search/brave.js.map +1 -0
- package/dist/providers/search/exa.d.ts +12 -0
- package/dist/providers/search/exa.d.ts.map +1 -0
- package/dist/providers/search/exa.js +158 -0
- package/dist/providers/search/exa.js.map +1 -0
- package/dist/providers/search/index.d.ts +31 -0
- package/dist/providers/search/index.d.ts.map +1 -0
- package/dist/providers/search/index.js +75 -0
- package/dist/providers/search/index.js.map +1 -0
- package/dist/providers/search/serper.d.ts +14 -0
- package/dist/providers/search/serper.d.ts.map +1 -0
- package/dist/providers/search/serper.js +87 -0
- package/dist/providers/search/serper.js.map +1 -0
- package/dist/providers/search/types.d.ts +21 -0
- package/dist/providers/search/types.d.ts.map +1 -0
- package/dist/providers/search/types.js +5 -0
- package/dist/providers/search/types.js.map +1 -0
- package/dist/providers/store.d.ts +104 -0
- package/dist/providers/store.d.ts.map +1 -0
- package/dist/providers/store.js +171 -0
- package/dist/providers/store.js.map +1 -0
- package/dist/providers/types.d.ts +7 -1
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/providers/vertex-ai.d.ts +33 -0
- package/dist/providers/vertex-ai.d.ts.map +1 -0
- package/dist/providers/vertex-ai.js +407 -0
- package/dist/providers/vertex-ai.js.map +1 -0
- package/dist/tools/builtin/webfetch.d.ts +20 -0
- package/dist/tools/builtin/webfetch.d.ts.map +1 -0
- package/dist/tools/builtin/webfetch.js +231 -0
- package/dist/tools/builtin/webfetch.js.map +1 -0
- package/dist/tools/builtin/websearch.d.ts +17 -0
- package/dist/tools/builtin/websearch.d.ts.map +1 -0
- package/dist/tools/builtin/websearch.js +101 -0
- package/dist/tools/builtin/websearch.js.map +1 -0
- package/dist/tools/index.d.ts +11 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +24 -2
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/types.d.ts +19 -0
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/types.js +8 -0
- package/dist/tools/types.js.map +1 -1
- package/dist/tools/utils/ssrf.d.ts +18 -0
- package/dist/tools/utils/ssrf.d.ts.map +1 -0
- package/dist/tools/utils/ssrf.js +70 -0
- package/dist/tools/utils/ssrf.js.map +1 -0
- package/docs/README.md +5 -4
- package/docs/proposals/0001-web-fetch-tool.md +32 -2
- package/docs/proposals/0002-web-search-tool.md +59 -2
- package/docs/proposals/0041-configuration-system.md +556 -0
- package/docs/proposals/README.md +3 -2
- package/docs/providers.md +220 -0
- package/package.json +7 -2
- package/src/agent/agent.ts +9 -2
- package/src/agent/types.ts +9 -1
- package/src/cli/components/App.tsx +72 -23
- package/src/cli/components/CommandSuggestions.tsx +1 -0
- package/src/cli/components/Messages.tsx +117 -29
- package/src/cli/components/ModelSelector.tsx +169 -52
- package/src/cli/components/ProviderManager.tsx +534 -0
- package/src/cli/components/markdown.ts +157 -0
- package/src/cli/components/theme.ts +7 -0
- package/src/cli/index.tsx +22 -7
- package/src/config/index.ts +3 -2
- package/src/config/providers-config.ts +85 -0
- package/src/config/types.ts +35 -1
- package/src/providers/gemini.ts +20 -4
- package/src/providers/index.ts +18 -3
- package/src/providers/registry.ts +198 -0
- package/src/providers/search/brave.ts +132 -0
- package/src/providers/search/exa.ts +217 -0
- package/src/providers/search/index.ts +79 -0
- package/src/providers/search/serper.ts +133 -0
- package/src/providers/search/types.ts +24 -0
- package/src/providers/store.ts +216 -0
- package/src/providers/types.ts +9 -1
- package/src/providers/vertex-ai.ts +594 -0
- package/src/tools/builtin/webfetch.ts +264 -0
- package/src/tools/builtin/websearch.ts +117 -0
- package/src/tools/index.ts +24 -2
- package/src/tools/types.ts +20 -0
- package/src/tools/utils/ssrf.ts +79 -0
- package/CLAUDE.md +0 -70
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Providers Config Manager - Reads providers.json for model-to-provider mapping
|
|
3
|
+
*/
|
|
4
|
+
import type { ProvidersConfig, ProviderName } from './types.js';
|
|
5
|
+
export declare class ProvidersConfigManager {
|
|
6
|
+
private settingsDir;
|
|
7
|
+
private providersPath;
|
|
8
|
+
private config;
|
|
9
|
+
constructor(settingsDir?: string);
|
|
10
|
+
/**
|
|
11
|
+
* Load providers config from disk
|
|
12
|
+
*/
|
|
13
|
+
load(): Promise<ProvidersConfig | null>;
|
|
14
|
+
/**
|
|
15
|
+
* Get cached config (call load() first)
|
|
16
|
+
*/
|
|
17
|
+
get(): ProvidersConfig | null;
|
|
18
|
+
/**
|
|
19
|
+
* Infer provider from model ID using cached models in providers.json
|
|
20
|
+
* Returns undefined if model not found in any provider's cached list
|
|
21
|
+
*/
|
|
22
|
+
inferProvider(modelId: string): ProviderName | undefined;
|
|
23
|
+
/**
|
|
24
|
+
* Get all model IDs for a provider
|
|
25
|
+
*/
|
|
26
|
+
getModelIds(provider: string): string[];
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=providers-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providers-config.d.ts","sourceRoot":"","sources":["../../src/config/providers-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAGhE,qBAAa,sBAAsB;IACjC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,MAAM,CAAgC;gBAElC,WAAW,CAAC,EAAE,MAAM;IAMhC;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAY7C;;OAEG;IACH,GAAG,IAAI,eAAe,GAAG,IAAI;IAI7B;;;OAGG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IA4BxD;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE;CAMxC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Providers Config Manager - Reads providers.json for model-to-provider mapping
|
|
3
|
+
*/
|
|
4
|
+
import * as fs from 'fs/promises';
|
|
5
|
+
import * as path from 'path';
|
|
6
|
+
import * as os from 'os';
|
|
7
|
+
import { DEFAULT_SETTINGS_DIR, PROVIDERS_FILE_NAME } from './types.js';
|
|
8
|
+
export class ProvidersConfigManager {
|
|
9
|
+
settingsDir;
|
|
10
|
+
providersPath;
|
|
11
|
+
config = null;
|
|
12
|
+
constructor(settingsDir) {
|
|
13
|
+
const dir = settingsDir ?? DEFAULT_SETTINGS_DIR;
|
|
14
|
+
this.settingsDir = dir.replace('~', os.homedir());
|
|
15
|
+
this.providersPath = path.join(this.settingsDir, PROVIDERS_FILE_NAME);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Load providers config from disk
|
|
19
|
+
*/
|
|
20
|
+
async load() {
|
|
21
|
+
try {
|
|
22
|
+
const content = await fs.readFile(this.providersPath, 'utf-8');
|
|
23
|
+
this.config = JSON.parse(content);
|
|
24
|
+
return this.config;
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
// File doesn't exist or is invalid
|
|
28
|
+
this.config = null;
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Get cached config (call load() first)
|
|
34
|
+
*/
|
|
35
|
+
get() {
|
|
36
|
+
return this.config;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Infer provider from model ID using cached models in providers.json
|
|
40
|
+
* Returns undefined if model not found in any provider's cached list
|
|
41
|
+
*/
|
|
42
|
+
inferProvider(modelId) {
|
|
43
|
+
if (!this.config?.models) {
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
46
|
+
for (const [providerKey, providerModels] of Object.entries(this.config.models)) {
|
|
47
|
+
const found = providerModels.list?.some((m) => m.id === modelId);
|
|
48
|
+
if (found) {
|
|
49
|
+
// Map provider key to ProviderName
|
|
50
|
+
// Note: 'anthropic' in providers.json might use vertex connection
|
|
51
|
+
if (providerKey === 'gemini') {
|
|
52
|
+
return 'gemini';
|
|
53
|
+
}
|
|
54
|
+
else if (providerKey === 'anthropic') {
|
|
55
|
+
// Check connection method to determine if vertex or direct
|
|
56
|
+
const connection = this.config.connections?.[providerKey];
|
|
57
|
+
if (connection?.method === 'vertex') {
|
|
58
|
+
return 'vertex-ai';
|
|
59
|
+
}
|
|
60
|
+
return 'anthropic';
|
|
61
|
+
}
|
|
62
|
+
else if (providerKey === 'openai') {
|
|
63
|
+
return 'openai';
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return undefined;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Get all model IDs for a provider
|
|
71
|
+
*/
|
|
72
|
+
getModelIds(provider) {
|
|
73
|
+
if (!this.config?.models?.[provider]) {
|
|
74
|
+
return [];
|
|
75
|
+
}
|
|
76
|
+
return this.config.models[provider].list?.map((m) => m.id) ?? [];
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=providers-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providers-config.js","sourceRoot":"","sources":["../../src/config/providers-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEvE,MAAM,OAAO,sBAAsB;IACzB,WAAW,CAAS;IACpB,aAAa,CAAS;IACtB,MAAM,GAA2B,IAAI,CAAC;IAE9C,YAAY,WAAoB;QAC9B,MAAM,GAAG,GAAG,WAAW,IAAI,oBAAoB,CAAC;QAChD,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;IACxE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YAC/D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAClC,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;QAAC,MAAM,CAAC;YACP,mCAAmC;YACnC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,GAAG;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,OAAe;QAC3B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;YACzB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,KAAK,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/E,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;YACjE,IAAI,KAAK,EAAE,CAAC;gBACV,mCAAmC;gBACnC,kEAAkE;gBAClE,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;oBAC7B,OAAO,QAAQ,CAAC;gBAClB,CAAC;qBAAM,IAAI,WAAW,KAAK,WAAW,EAAE,CAAC;oBACvC,2DAA2D;oBAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,WAAW,CAAC,CAAC;oBAC1D,IAAI,UAAU,EAAE,MAAM,KAAK,QAAQ,EAAE,CAAC;wBACpC,OAAO,WAAW,CAAC;oBACrB,CAAC;oBACD,OAAO,WAAW,CAAC;gBACrB,CAAC;qBAAM,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;oBACpC,OAAO,QAAQ,CAAC;gBAClB,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,QAAgB;QAC1B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrC,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;IACnE,CAAC;CACF"}
|
package/dist/config/types.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Settings Types - User settings persistence (Claude Code style)
|
|
3
3
|
*/
|
|
4
|
-
export type ProviderName = 'openai' | 'anthropic' | 'gemini';
|
|
4
|
+
export type ProviderName = 'openai' | 'anthropic' | 'gemini' | 'vertex-ai';
|
|
5
5
|
/**
|
|
6
6
|
* Settings file structure (~/.gencode/settings.json)
|
|
7
7
|
* Similar to Claude Code's settings.json
|
|
@@ -19,4 +19,34 @@ export interface SettingsManagerOptions {
|
|
|
19
19
|
}
|
|
20
20
|
export declare const DEFAULT_SETTINGS_DIR = "~/.gencode";
|
|
21
21
|
export declare const SETTINGS_FILE_NAME = "settings.json";
|
|
22
|
+
export declare const PROVIDERS_FILE_NAME = "providers.json";
|
|
23
|
+
/**
|
|
24
|
+
* Provider connection info
|
|
25
|
+
*/
|
|
26
|
+
export interface ProviderConnection {
|
|
27
|
+
method: 'api_key' | 'vertex' | 'oauth';
|
|
28
|
+
connectedAt: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Cached model info
|
|
32
|
+
*/
|
|
33
|
+
export interface CachedModel {
|
|
34
|
+
id: string;
|
|
35
|
+
name: string;
|
|
36
|
+
description?: string;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Cached models for a provider
|
|
40
|
+
*/
|
|
41
|
+
export interface ProviderModels {
|
|
42
|
+
cachedAt: string;
|
|
43
|
+
list: CachedModel[];
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Providers config file structure (~/.gencode/providers.json)
|
|
47
|
+
*/
|
|
48
|
+
export interface ProvidersConfig {
|
|
49
|
+
connections: Record<string, ProviderConnection>;
|
|
50
|
+
models: Record<string, ProviderModels>;
|
|
51
|
+
}
|
|
22
52
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;AAE3E;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,WAAW,CAAC,EAAE;QACZ,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,sBAAsB;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,oBAAoB,eAAe,CAAC;AACjD,eAAO,MAAM,kBAAkB,kBAAkB,CAAC;AAClD,eAAO,MAAM,mBAAmB,mBAAmB,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;IACvC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,WAAW,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAChD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CACxC"}
|
package/dist/config/types.js
CHANGED
package/dist/config/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAqBH,MAAM,CAAC,MAAM,oBAAoB,GAAG,YAAY,CAAC;AACjD,MAAM,CAAC,MAAM,kBAAkB,GAAG,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAqBH,MAAM,CAAC,MAAM,oBAAoB,GAAG,YAAY,CAAC;AACjD,MAAM,CAAC,MAAM,kBAAkB,GAAG,eAAe,CAAC;AAClD,MAAM,CAAC,MAAM,mBAAmB,GAAG,gBAAgB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/providers/gemini.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EAKX,YAAY,EAEZ,SAAS,EACV,MAAM,YAAY,CAAC;AAEpB,qBAAa,cAAe,YAAW,WAAW;IAChD,QAAQ,CAAC,IAAI,YAAY;IACzB,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,GAAE,YAAiB;IAS/B,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAiBhE,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,cAAc,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/providers/gemini.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EAKX,YAAY,EAEZ,SAAS,EACV,MAAM,YAAY,CAAC;AAEpB,qBAAa,cAAe,YAAW,WAAW;IAChD,QAAQ,CAAC,IAAI,YAAY;IACzB,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,GAAE,YAAiB;IAS/B,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAiBhE,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,cAAc,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC;IAgFrF,OAAO,CAAC,eAAe;IAoBvB,OAAO,CAAC,cAAc;IAoCtB,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,aAAa;IAsCrB,OAAO,CAAC,eAAe;IAoCvB,OAAO,CAAC,aAAa;IAef,UAAU,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;CAoBzC"}
|
package/dist/providers/gemini.js
CHANGED
|
@@ -54,10 +54,13 @@ export class GeminiProvider {
|
|
|
54
54
|
else if ('functionCall' in part && part.functionCall) {
|
|
55
55
|
const fc = part.functionCall;
|
|
56
56
|
const id = `call_${callIndex++}`;
|
|
57
|
+
// Capture thoughtSignature for Gemini 3+ models
|
|
58
|
+
const partAny = part;
|
|
57
59
|
functionCalls.push({
|
|
58
60
|
id,
|
|
59
61
|
name: fc.name,
|
|
60
62
|
args: fc.args ?? {},
|
|
63
|
+
thoughtSignature: partAny.thoughtSignature,
|
|
61
64
|
});
|
|
62
65
|
yield { type: 'tool_start', id, name: fc.name };
|
|
63
66
|
yield { type: 'tool_input', id, input: JSON.stringify(fc.args) };
|
|
@@ -75,6 +78,7 @@ export class GeminiProvider {
|
|
|
75
78
|
id: fc.id,
|
|
76
79
|
name: fc.name,
|
|
77
80
|
input: fc.args,
|
|
81
|
+
thoughtSignature: fc.thoughtSignature,
|
|
78
82
|
});
|
|
79
83
|
}
|
|
80
84
|
const finalResponse = await result.response;
|
|
@@ -118,13 +122,17 @@ export class GeminiProvider {
|
|
|
118
122
|
parts.push({ text: item.text });
|
|
119
123
|
}
|
|
120
124
|
else if (item.type === 'tool_use' && role === 'model') {
|
|
121
|
-
// Function call from model
|
|
122
|
-
|
|
125
|
+
// Function call from model - include thoughtSignature for Gemini 3+
|
|
126
|
+
const fcPart = {
|
|
123
127
|
functionCall: {
|
|
124
128
|
name: item.name,
|
|
125
129
|
args: item.input,
|
|
126
130
|
},
|
|
127
|
-
}
|
|
131
|
+
};
|
|
132
|
+
if (item.thoughtSignature) {
|
|
133
|
+
fcPart.thoughtSignature = item.thoughtSignature;
|
|
134
|
+
}
|
|
135
|
+
parts.push(fcPart);
|
|
128
136
|
}
|
|
129
137
|
else if (item.type === 'tool_result' && role === 'user') {
|
|
130
138
|
// Function response
|
|
@@ -193,11 +201,14 @@ export class GeminiProvider {
|
|
|
193
201
|
content.push({ type: 'text', text: part.text });
|
|
194
202
|
}
|
|
195
203
|
else if ('functionCall' in part && part.functionCall) {
|
|
204
|
+
// Capture thoughtSignature for Gemini 3+ models
|
|
205
|
+
const partAny = part;
|
|
196
206
|
content.push({
|
|
197
207
|
type: 'tool_use',
|
|
198
208
|
id: `call_${callIndex++}`,
|
|
199
209
|
name: part.functionCall.name,
|
|
200
210
|
input: part.functionCall.args ?? {},
|
|
211
|
+
thoughtSignature: partAny.thoughtSignature,
|
|
201
212
|
});
|
|
202
213
|
}
|
|
203
214
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/providers/gemini.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAgBvE,MAAM,OAAO,cAAc;IAChB,IAAI,GAAG,QAAQ,CAAC;IACjB,MAAM,CAAqB;IAC3B,MAAM,CAAS;IAEvB,YAAY,SAAuB,EAAE;QACnC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;QACzF,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;QACvF,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAA0B;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC;YAC3C,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,iBAAiB,EAAE,OAAO,CAAC,YAAY;YACvC,gBAAgB,EAAE;gBAChB,eAAe,EAAE,OAAO,CAAC,SAAS;gBAClC,WAAW,EAAE,OAAO,CAAC,WAAW;aACjC;YACD,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;SACpE,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;QAEzD,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,CAAC,MAAM,CAAC,OAA0B;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC;YAC3C,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,iBAAiB,EAAE,OAAO,CAAC,YAAY;YACvC,gBAAgB,EAAE;gBAChB,eAAe,EAAE,OAAO,CAAC,SAAS;gBAClC,WAAW,EAAE,OAAO,CAAC,WAAW;aACjC;YACD,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;SACpE,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,qBAAqB,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;QAE/D,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/providers/gemini.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* LLM Providers - Unified interface for OpenAI, Anthropic, and
|
|
2
|
+
* LLM Providers - Unified interface for OpenAI, Anthropic, Gemini, and Vertex AI
|
|
3
3
|
*/
|
|
4
4
|
export * from './types.js';
|
|
5
5
|
export { OpenAIProvider } from './openai.js';
|
|
6
6
|
export { AnthropicProvider } from './anthropic.js';
|
|
7
7
|
export { GeminiProvider } from './gemini.js';
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
export { VertexAIProvider } from './vertex-ai.js';
|
|
9
|
+
import type { LLMProvider, OpenAIConfig, AnthropicConfig, GeminiConfig, VertexAIConfig } from './types.js';
|
|
10
|
+
export type ProviderName = 'openai' | 'anthropic' | 'gemini' | 'vertex-ai';
|
|
10
11
|
export type ProviderConfigMap = {
|
|
11
12
|
openai: OpenAIConfig;
|
|
12
13
|
anthropic: AnthropicConfig;
|
|
13
14
|
gemini: GeminiConfig;
|
|
15
|
+
'vertex-ai': VertexAIConfig;
|
|
14
16
|
};
|
|
15
17
|
export interface CreateProviderOptions<T extends ProviderName = ProviderName> {
|
|
16
18
|
provider: T;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAM3G,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;AAC3E,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,eAAe,CAAC;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,WAAW,EAAE,cAAc,CAAC;CAC7B,CAAC;AAEF,MAAM,WAAW,qBAAqB,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY;IAC1E,QAAQ,EAAE,CAAC,CAAC;IACZ,MAAM,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;CAC/B;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,WAAW,CAa1E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAgCzD;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,QAAQ,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAwBlF,CAAC"}
|
package/dist/providers/index.js
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* LLM Providers - Unified interface for OpenAI, Anthropic, and
|
|
2
|
+
* LLM Providers - Unified interface for OpenAI, Anthropic, Gemini, and Vertex AI
|
|
3
3
|
*/
|
|
4
4
|
export * from './types.js';
|
|
5
5
|
export { OpenAIProvider } from './openai.js';
|
|
6
6
|
export { AnthropicProvider } from './anthropic.js';
|
|
7
7
|
export { GeminiProvider } from './gemini.js';
|
|
8
|
+
export { VertexAIProvider } from './vertex-ai.js';
|
|
8
9
|
import { OpenAIProvider } from './openai.js';
|
|
9
10
|
import { AnthropicProvider } from './anthropic.js';
|
|
10
11
|
import { GeminiProvider } from './gemini.js';
|
|
12
|
+
import { VertexAIProvider } from './vertex-ai.js';
|
|
11
13
|
/**
|
|
12
14
|
* Create a provider instance by name
|
|
13
15
|
*/
|
|
@@ -19,6 +21,8 @@ export function createProvider(options) {
|
|
|
19
21
|
return new AnthropicProvider(options.config);
|
|
20
22
|
case 'gemini':
|
|
21
23
|
return new GeminiProvider(options.config);
|
|
24
|
+
case 'vertex-ai':
|
|
25
|
+
return new VertexAIProvider(options.config);
|
|
22
26
|
default:
|
|
23
27
|
throw new Error(`Unknown provider: ${options.provider}`);
|
|
24
28
|
}
|
|
@@ -28,6 +32,10 @@ export function createProvider(options) {
|
|
|
28
32
|
*/
|
|
29
33
|
export function inferProvider(model) {
|
|
30
34
|
const modelLower = model.toLowerCase();
|
|
35
|
+
// Vertex AI models (Claude models with @ version suffix like claude-sonnet-4-5@20250929)
|
|
36
|
+
if (modelLower.includes('claude') && modelLower.includes('@')) {
|
|
37
|
+
return 'vertex-ai';
|
|
38
|
+
}
|
|
31
39
|
// OpenAI models
|
|
32
40
|
if (modelLower.includes('gpt') ||
|
|
33
41
|
modelLower.includes('o1') ||
|
|
@@ -68,5 +76,9 @@ export const ModelAliases = {
|
|
|
68
76
|
'gemini-2.0-flash': { provider: 'gemini', model: 'gemini-2.0-flash' },
|
|
69
77
|
'gemini-1.5-pro': { provider: 'gemini', model: 'gemini-1.5-pro' },
|
|
70
78
|
'gemini-1.5-flash': { provider: 'gemini', model: 'gemini-1.5-flash' },
|
|
79
|
+
// Vertex AI (Claude on GCP)
|
|
80
|
+
'vertex-sonnet': { provider: 'vertex-ai', model: 'claude-sonnet-4-5@20250929' },
|
|
81
|
+
'vertex-haiku': { provider: 'vertex-ai', model: 'claude-haiku-4-5@20251001' },
|
|
82
|
+
'vertex-opus': { provider: 'vertex-ai', model: 'claude-opus-4-1@20250805' },
|
|
71
83
|
};
|
|
72
84
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider Registry - Provider definitions with connection options
|
|
3
|
+
*/
|
|
4
|
+
import type { ProviderName } from './index.js';
|
|
5
|
+
import type { SearchProviderName } from './search/types.js';
|
|
6
|
+
export interface ConnectionOption {
|
|
7
|
+
method: string;
|
|
8
|
+
name: string;
|
|
9
|
+
envVars: string[];
|
|
10
|
+
description?: string;
|
|
11
|
+
providerImpl?: ProviderName;
|
|
12
|
+
}
|
|
13
|
+
export interface ProviderDefinition {
|
|
14
|
+
id: ProviderName;
|
|
15
|
+
name: string;
|
|
16
|
+
popularity: number;
|
|
17
|
+
connections: ConnectionOption[];
|
|
18
|
+
}
|
|
19
|
+
export interface SearchProviderDefinition {
|
|
20
|
+
id: SearchProviderName;
|
|
21
|
+
name: string;
|
|
22
|
+
popularity: number;
|
|
23
|
+
connections: ConnectionOption[];
|
|
24
|
+
requiresKey: boolean;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* All supported providers with their connection options
|
|
28
|
+
*/
|
|
29
|
+
export declare const PROVIDERS: ProviderDefinition[];
|
|
30
|
+
/**
|
|
31
|
+
* All supported search providers
|
|
32
|
+
*/
|
|
33
|
+
export declare const SEARCH_PROVIDERS: SearchProviderDefinition[];
|
|
34
|
+
/**
|
|
35
|
+
* Get provider definition by ID
|
|
36
|
+
*/
|
|
37
|
+
export declare function getProvider(id: ProviderName): ProviderDefinition | undefined;
|
|
38
|
+
/**
|
|
39
|
+
* Get search provider definition by ID
|
|
40
|
+
*/
|
|
41
|
+
export declare function getSearchProvider(id: SearchProviderName): SearchProviderDefinition | undefined;
|
|
42
|
+
/**
|
|
43
|
+
* Get all search providers sorted by popularity
|
|
44
|
+
*/
|
|
45
|
+
export declare function getSearchProvidersSorted(): SearchProviderDefinition[];
|
|
46
|
+
/**
|
|
47
|
+
* Get all providers sorted by popularity
|
|
48
|
+
*/
|
|
49
|
+
export declare function getProvidersSorted(): ProviderDefinition[];
|
|
50
|
+
/**
|
|
51
|
+
* Check if any of the provider's env vars are set
|
|
52
|
+
*/
|
|
53
|
+
export declare function hasEnvVars(provider: ProviderDefinition): boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Get the first available connection method (where env vars are set)
|
|
56
|
+
*/
|
|
57
|
+
export declare function getAvailableConnection(provider: ProviderDefinition): ConnectionOption | undefined;
|
|
58
|
+
/**
|
|
59
|
+
* Check if a specific connection option has its env vars set
|
|
60
|
+
*/
|
|
61
|
+
export declare function isConnectionReady(conn: ConnectionOption): boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Get all available (ready) connections for a provider
|
|
64
|
+
*/
|
|
65
|
+
export declare function getAvailableConnections(provider: ProviderDefinition): ConnectionOption[];
|
|
66
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/providers/registry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,YAAY,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,gBAAgB,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,kBAAkB,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,kBAAkB,EAqDzC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,wBAAwB,EA2CtD,CAAC;AAEF;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,YAAY,GAAG,kBAAkB,GAAG,SAAS,CAE5E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,kBAAkB,GAAG,wBAAwB,GAAG,SAAS,CAE9F;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,wBAAwB,EAAE,CAErE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,kBAAkB,EAAE,CAEzD;AAKD;;GAEG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAEhE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,kBAAkB,GAC3B,gBAAgB,GAAG,SAAS,CAE9B;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAEjE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,kBAAkB,GAC3B,gBAAgB,EAAE,CAEpB"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider Registry - Provider definitions with connection options
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* All supported providers with their connection options
|
|
6
|
+
*/
|
|
7
|
+
export const PROVIDERS = [
|
|
8
|
+
{
|
|
9
|
+
id: 'anthropic',
|
|
10
|
+
name: 'Anthropic',
|
|
11
|
+
popularity: 1,
|
|
12
|
+
connections: [
|
|
13
|
+
{
|
|
14
|
+
method: 'api_key',
|
|
15
|
+
name: 'API Key',
|
|
16
|
+
envVars: ['ANTHROPIC_API_KEY'],
|
|
17
|
+
description: 'Direct API access',
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
method: 'vertex',
|
|
21
|
+
name: 'Google Vertex AI',
|
|
22
|
+
envVars: ['ANTHROPIC_VERTEX_PROJECT_ID', 'GOOGLE_CLOUD_PROJECT'],
|
|
23
|
+
description: 'Claude via GCP',
|
|
24
|
+
providerImpl: 'vertex-ai',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
method: 'bedrock',
|
|
28
|
+
name: 'Amazon Bedrock',
|
|
29
|
+
envVars: ['AWS_ACCESS_KEY_ID', 'AWS_PROFILE'],
|
|
30
|
+
description: 'Claude via AWS (coming soon)',
|
|
31
|
+
},
|
|
32
|
+
],
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
id: 'openai',
|
|
36
|
+
name: 'OpenAI',
|
|
37
|
+
popularity: 2,
|
|
38
|
+
connections: [
|
|
39
|
+
{
|
|
40
|
+
method: 'api_key',
|
|
41
|
+
name: 'API Key',
|
|
42
|
+
envVars: ['OPENAI_API_KEY'],
|
|
43
|
+
description: 'Direct API access',
|
|
44
|
+
},
|
|
45
|
+
],
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
id: 'gemini',
|
|
49
|
+
name: 'Google Gemini',
|
|
50
|
+
popularity: 3,
|
|
51
|
+
connections: [
|
|
52
|
+
{
|
|
53
|
+
method: 'api_key',
|
|
54
|
+
name: 'API Key',
|
|
55
|
+
envVars: ['GOOGLE_API_KEY', 'GEMINI_API_KEY'],
|
|
56
|
+
description: 'Direct API access',
|
|
57
|
+
},
|
|
58
|
+
],
|
|
59
|
+
},
|
|
60
|
+
];
|
|
61
|
+
/**
|
|
62
|
+
* All supported search providers
|
|
63
|
+
*/
|
|
64
|
+
export const SEARCH_PROVIDERS = [
|
|
65
|
+
{
|
|
66
|
+
id: 'exa',
|
|
67
|
+
name: 'Exa AI',
|
|
68
|
+
popularity: 1,
|
|
69
|
+
connections: [
|
|
70
|
+
{
|
|
71
|
+
method: 'public',
|
|
72
|
+
name: 'Public API',
|
|
73
|
+
envVars: [],
|
|
74
|
+
description: 'No API key required',
|
|
75
|
+
},
|
|
76
|
+
],
|
|
77
|
+
requiresKey: false,
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
id: 'serper',
|
|
81
|
+
name: 'Serper.dev',
|
|
82
|
+
popularity: 2,
|
|
83
|
+
connections: [
|
|
84
|
+
{
|
|
85
|
+
method: 'api_key',
|
|
86
|
+
name: 'API Key',
|
|
87
|
+
envVars: ['SERPER_API_KEY'],
|
|
88
|
+
description: 'Google Search via Serper',
|
|
89
|
+
},
|
|
90
|
+
],
|
|
91
|
+
requiresKey: true,
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
id: 'brave',
|
|
95
|
+
name: 'Brave Search',
|
|
96
|
+
popularity: 3,
|
|
97
|
+
connections: [
|
|
98
|
+
{
|
|
99
|
+
method: 'api_key',
|
|
100
|
+
name: 'API Key',
|
|
101
|
+
envVars: ['BRAVE_API_KEY'],
|
|
102
|
+
description: 'Privacy-focused search',
|
|
103
|
+
},
|
|
104
|
+
],
|
|
105
|
+
requiresKey: true,
|
|
106
|
+
},
|
|
107
|
+
];
|
|
108
|
+
/**
|
|
109
|
+
* Get provider definition by ID
|
|
110
|
+
*/
|
|
111
|
+
export function getProvider(id) {
|
|
112
|
+
return PROVIDERS.find((p) => p.id === id);
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Get search provider definition by ID
|
|
116
|
+
*/
|
|
117
|
+
export function getSearchProvider(id) {
|
|
118
|
+
return SEARCH_PROVIDERS.find((p) => p.id === id);
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Get all search providers sorted by popularity
|
|
122
|
+
*/
|
|
123
|
+
export function getSearchProvidersSorted() {
|
|
124
|
+
return [...SEARCH_PROVIDERS].sort((a, b) => a.popularity - b.popularity);
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Get all providers sorted by popularity
|
|
128
|
+
*/
|
|
129
|
+
export function getProvidersSorted() {
|
|
130
|
+
return [...PROVIDERS].sort((a, b) => a.popularity - b.popularity);
|
|
131
|
+
}
|
|
132
|
+
// Helper: check if any env var in the list is set
|
|
133
|
+
const hasAnyEnvVar = (envVars) => envVars.some((v) => !!process.env[v]);
|
|
134
|
+
/**
|
|
135
|
+
* Check if any of the provider's env vars are set
|
|
136
|
+
*/
|
|
137
|
+
export function hasEnvVars(provider) {
|
|
138
|
+
return provider.connections.some((conn) => hasAnyEnvVar(conn.envVars));
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Get the first available connection method (where env vars are set)
|
|
142
|
+
*/
|
|
143
|
+
export function getAvailableConnection(provider) {
|
|
144
|
+
return provider.connections.find((conn) => hasAnyEnvVar(conn.envVars));
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Check if a specific connection option has its env vars set
|
|
148
|
+
*/
|
|
149
|
+
export function isConnectionReady(conn) {
|
|
150
|
+
return hasAnyEnvVar(conn.envVars);
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Get all available (ready) connections for a provider
|
|
154
|
+
*/
|
|
155
|
+
export function getAvailableConnections(provider) {
|
|
156
|
+
return provider.connections.filter((conn) => hasAnyEnvVar(conn.envVars));
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/providers/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Brave Search Provider
|
|
3
|
+
*
|
|
4
|
+
* Uses Brave Search API (same as Claude Code).
|
|
5
|
+
* Requires BRAVE_API_KEY environment variable.
|
|
6
|
+
*/
|
|
7
|
+
import type { SearchProvider, SearchResult, SearchOptions } from './types.js';
|
|
8
|
+
export declare class BraveProvider implements SearchProvider {
|
|
9
|
+
readonly name: "brave";
|
|
10
|
+
private apiKey;
|
|
11
|
+
constructor(apiKey?: string);
|
|
12
|
+
search(query: string, options?: SearchOptions): Promise<SearchResult[]>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=brave.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brave.d.ts","sourceRoot":"","sources":["../../../src/providers/search/brave.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAyD9E,qBAAa,aAAc,YAAW,cAAc;IAClD,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAU;IACjC,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,CAAC,EAAE,MAAM;IAOrB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;CAwD9E"}
|