agent-orcha 0.0.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/LICENSE +21 -0
- package/README.md +917 -0
- package/bin/cli.js +2 -0
- package/dist/lib/agents/agent-executor.d.ts +13 -0
- package/dist/lib/agents/agent-executor.d.ts.map +1 -0
- package/dist/lib/agents/agent-executor.js +158 -0
- package/dist/lib/agents/agent-executor.js.map +1 -0
- package/dist/lib/agents/agent-loader.d.ts +13 -0
- package/dist/lib/agents/agent-loader.d.ts.map +1 -0
- package/dist/lib/agents/agent-loader.js +39 -0
- package/dist/lib/agents/agent-loader.js.map +1 -0
- package/dist/lib/agents/index.d.ts +5 -0
- package/dist/lib/agents/index.d.ts.map +1 -0
- package/dist/lib/agents/index.js +4 -0
- package/dist/lib/agents/index.js.map +1 -0
- package/dist/lib/agents/types.d.ts +140 -0
- package/dist/lib/agents/types.d.ts.map +1 -0
- package/dist/lib/agents/types.js +28 -0
- package/dist/lib/agents/types.js.map +1 -0
- package/dist/lib/functions/function-loader.d.ts +30 -0
- package/dist/lib/functions/function-loader.d.ts.map +1 -0
- package/dist/lib/functions/function-loader.js +107 -0
- package/dist/lib/functions/function-loader.js.map +1 -0
- package/dist/lib/functions/index.d.ts +3 -0
- package/dist/lib/functions/index.d.ts.map +1 -0
- package/dist/lib/functions/index.js +2 -0
- package/dist/lib/functions/index.js.map +1 -0
- package/dist/lib/functions/simple-function-wrapper.d.ts +33 -0
- package/dist/lib/functions/simple-function-wrapper.d.ts.map +1 -0
- package/dist/lib/functions/simple-function-wrapper.js +66 -0
- package/dist/lib/functions/simple-function-wrapper.js.map +1 -0
- package/dist/lib/index.d.ts +16 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +17 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/llm/index.d.ts +6 -0
- package/dist/lib/llm/index.d.ts.map +1 -0
- package/dist/lib/llm/index.js +4 -0
- package/dist/lib/llm/index.js.map +1 -0
- package/dist/lib/llm/llm-config.d.ts +138 -0
- package/dist/lib/llm/llm-config.d.ts.map +1 -0
- package/dist/lib/llm/llm-config.js +75 -0
- package/dist/lib/llm/llm-config.js.map +1 -0
- package/dist/lib/llm/llm-factory.d.ts +30 -0
- package/dist/lib/llm/llm-factory.d.ts.map +1 -0
- package/dist/lib/llm/llm-factory.js +103 -0
- package/dist/lib/llm/llm-factory.js.map +1 -0
- package/dist/lib/llm/provider-detector.d.ts +12 -0
- package/dist/lib/llm/provider-detector.d.ts.map +1 -0
- package/dist/lib/llm/provider-detector.js +46 -0
- package/dist/lib/llm/provider-detector.js.map +1 -0
- package/dist/lib/llm/types.d.ts +19 -0
- package/dist/lib/llm/types.d.ts.map +1 -0
- package/dist/lib/llm/types.js +18 -0
- package/dist/lib/llm/types.js.map +1 -0
- package/dist/lib/logger.d.ts +43 -0
- package/dist/lib/logger.d.ts.map +1 -0
- package/dist/lib/logger.js +113 -0
- package/dist/lib/logger.js.map +1 -0
- package/dist/lib/mcp/index.d.ts +4 -0
- package/dist/lib/mcp/index.d.ts.map +1 -0
- package/dist/lib/mcp/index.js +3 -0
- package/dist/lib/mcp/index.js.map +1 -0
- package/dist/lib/mcp/mcp-client.d.ts +17 -0
- package/dist/lib/mcp/mcp-client.d.ts.map +1 -0
- package/dist/lib/mcp/mcp-client.js +166 -0
- package/dist/lib/mcp/mcp-client.js.map +1 -0
- package/dist/lib/mcp/types.d.ts +146 -0
- package/dist/lib/mcp/types.d.ts.map +1 -0
- package/dist/lib/mcp/types.js +24 -0
- package/dist/lib/mcp/types.js.map +1 -0
- package/dist/lib/orchestrator.d.ts +64 -0
- package/dist/lib/orchestrator.d.ts.map +1 -0
- package/dist/lib/orchestrator.js +201 -0
- package/dist/lib/orchestrator.js.map +1 -0
- package/dist/lib/tools/built-in/index.d.ts +2 -0
- package/dist/lib/tools/built-in/index.d.ts.map +1 -0
- package/dist/lib/tools/built-in/index.js +2 -0
- package/dist/lib/tools/built-in/index.js.map +1 -0
- package/dist/lib/tools/built-in/vector-search.tool.d.ts +4 -0
- package/dist/lib/tools/built-in/vector-search.tool.d.ts.map +1 -0
- package/dist/lib/tools/built-in/vector-search.tool.js +26 -0
- package/dist/lib/tools/built-in/vector-search.tool.js.map +1 -0
- package/dist/lib/tools/index.d.ts +3 -0
- package/dist/lib/tools/index.d.ts.map +1 -0
- package/dist/lib/tools/index.js +3 -0
- package/dist/lib/tools/index.js.map +1 -0
- package/dist/lib/tools/tool-registry.d.ts +20 -0
- package/dist/lib/tools/tool-registry.d.ts.map +1 -0
- package/dist/lib/tools/tool-registry.js +76 -0
- package/dist/lib/tools/tool-registry.js.map +1 -0
- package/dist/lib/vectors/index.d.ts +5 -0
- package/dist/lib/vectors/index.d.ts.map +1 -0
- package/dist/lib/vectors/index.js +4 -0
- package/dist/lib/vectors/index.js.map +1 -0
- package/dist/lib/vectors/types.d.ts +212 -0
- package/dist/lib/vectors/types.d.ts.map +1 -0
- package/dist/lib/vectors/types.js +39 -0
- package/dist/lib/vectors/types.js.map +1 -0
- package/dist/lib/vectors/vector-store-factory.d.ts +14 -0
- package/dist/lib/vectors/vector-store-factory.d.ts.map +1 -0
- package/dist/lib/vectors/vector-store-factory.js +350 -0
- package/dist/lib/vectors/vector-store-factory.js.map +1 -0
- package/dist/lib/vectors/vector-store-manager.d.ts +18 -0
- package/dist/lib/vectors/vector-store-manager.d.ts.map +1 -0
- package/dist/lib/vectors/vector-store-manager.js +79 -0
- package/dist/lib/vectors/vector-store-manager.js.map +1 -0
- package/dist/lib/workflows/index.d.ts +5 -0
- package/dist/lib/workflows/index.d.ts.map +1 -0
- package/dist/lib/workflows/index.js +4 -0
- package/dist/lib/workflows/index.js.map +1 -0
- package/dist/lib/workflows/types.d.ts +630 -0
- package/dist/lib/workflows/types.d.ts.map +1 -0
- package/dist/lib/workflows/types.js +51 -0
- package/dist/lib/workflows/types.js.map +1 -0
- package/dist/lib/workflows/workflow-executor.d.ts +22 -0
- package/dist/lib/workflows/workflow-executor.d.ts.map +1 -0
- package/dist/lib/workflows/workflow-executor.js +276 -0
- package/dist/lib/workflows/workflow-executor.js.map +1 -0
- package/dist/lib/workflows/workflow-loader.d.ts +13 -0
- package/dist/lib/workflows/workflow-loader.d.ts.map +1 -0
- package/dist/lib/workflows/workflow-loader.js +39 -0
- package/dist/lib/workflows/workflow-loader.js.map +1 -0
- package/dist/public/index.html +762 -0
- package/dist/src/cli/commands/init.d.ts +2 -0
- package/dist/src/cli/commands/init.d.ts.map +1 -0
- package/dist/src/cli/commands/init.js +108 -0
- package/dist/src/cli/commands/init.js.map +1 -0
- package/dist/src/cli/commands/start.d.ts +3 -0
- package/dist/src/cli/commands/start.d.ts.map +1 -0
- package/dist/src/cli/commands/start.js +114 -0
- package/dist/src/cli/commands/start.js.map +1 -0
- package/dist/src/cli/index.d.ts +3 -0
- package/dist/src/cli/index.d.ts.map +1 -0
- package/dist/src/cli/index.js +59 -0
- package/dist/src/cli/index.js.map +1 -0
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +62 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/routes/agents.route.d.ts +3 -0
- package/dist/src/routes/agents.route.d.ts.map +1 -0
- package/dist/src/routes/agents.route.js +58 -0
- package/dist/src/routes/agents.route.js.map +1 -0
- package/dist/src/routes/llm.route.d.ts +3 -0
- package/dist/src/routes/llm.route.d.ts.map +1 -0
- package/dist/src/routes/llm.route.js +97 -0
- package/dist/src/routes/llm.route.js.map +1 -0
- package/dist/src/routes/vectors.route.d.ts +3 -0
- package/dist/src/routes/vectors.route.d.ts.map +1 -0
- package/dist/src/routes/vectors.route.js +74 -0
- package/dist/src/routes/vectors.route.js.map +1 -0
- package/dist/src/routes/workflows.route.d.ts +3 -0
- package/dist/src/routes/workflows.route.d.ts.map +1 -0
- package/dist/src/routes/workflows.route.js +58 -0
- package/dist/src/routes/workflows.route.js.map +1 -0
- package/dist/src/server.d.ts +9 -0
- package/dist/src/server.d.ts.map +1 -0
- package/dist/src/server.js +34 -0
- package/dist/src/server.js.map +1 -0
- package/dist/templates/.env.example +6 -0
- package/dist/templates/README.md +234 -0
- package/dist/templates/agents/example.agent.yaml +32 -0
- package/dist/templates/agents/knowledge.agent.yaml +36 -0
- package/dist/templates/agents/math.agent.yaml +38 -0
- package/dist/templates/agents/time.agent.yaml +42 -0
- package/dist/templates/functions/README.md +195 -0
- package/dist/templates/functions/fibonacci.function.js +55 -0
- package/dist/templates/llm.json +44 -0
- package/dist/templates/mcp.json +18 -0
- package/dist/templates/vectors/example-chroma.vector.yaml +43 -0
- package/dist/templates/vectors/example.vector.yaml +28 -0
- package/dist/templates/vectors/sample-data/example-document.txt +15 -0
- package/dist/templates/workflows/example.workflow.yaml +79 -0
- package/package.json +77 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Simple function parameter definition (no imports needed for user code)
|
|
4
|
+
*/
|
|
5
|
+
export interface SimpleFunctionParameter {
|
|
6
|
+
type: 'string' | 'number' | 'boolean' | 'array' | 'object' | 'enum';
|
|
7
|
+
description: string;
|
|
8
|
+
values?: string[];
|
|
9
|
+
required?: boolean;
|
|
10
|
+
default?: any;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Simple function definition (no imports needed for user code)
|
|
14
|
+
*/
|
|
15
|
+
export interface SimpleFunctionDefinition {
|
|
16
|
+
name: string;
|
|
17
|
+
description: string;
|
|
18
|
+
parameters?: Record<string, SimpleFunctionParameter>;
|
|
19
|
+
execute: (args: any) => Promise<string> | string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Wraps a simple function definition into a LangChain StructuredTool
|
|
23
|
+
*/
|
|
24
|
+
export declare function wrapSimpleFunction(definition: SimpleFunctionDefinition): import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<Record<string, z.ZodTypeAny>, "strip", z.ZodTypeAny, {
|
|
25
|
+
[x: string]: any;
|
|
26
|
+
}, {
|
|
27
|
+
[x: string]: any;
|
|
28
|
+
}>, {
|
|
29
|
+
[x: string]: any;
|
|
30
|
+
}, {
|
|
31
|
+
[x: string]: any;
|
|
32
|
+
}, string, string>;
|
|
33
|
+
//# sourceMappingURL=simple-function-wrapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simple-function-wrapper.d.ts","sourceRoot":"","sources":["../../../lib/functions/simple-function-wrapper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpE,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,GAAG,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;IACrD,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;CAClD;AAgDD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,wBAAwB;;;;;;;;mBAwBtE"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { tool } from '@langchain/core/tools';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
/**
|
|
4
|
+
* Converts a simple parameter definition to a Zod schema
|
|
5
|
+
*/
|
|
6
|
+
function parameterToZodSchema(param) {
|
|
7
|
+
let schema;
|
|
8
|
+
switch (param.type) {
|
|
9
|
+
case 'string':
|
|
10
|
+
schema = z.string();
|
|
11
|
+
break;
|
|
12
|
+
case 'number':
|
|
13
|
+
schema = z.number();
|
|
14
|
+
break;
|
|
15
|
+
case 'boolean':
|
|
16
|
+
schema = z.boolean();
|
|
17
|
+
break;
|
|
18
|
+
case 'array':
|
|
19
|
+
schema = z.array(z.any());
|
|
20
|
+
break;
|
|
21
|
+
case 'object':
|
|
22
|
+
schema = z.object({}).passthrough();
|
|
23
|
+
break;
|
|
24
|
+
case 'enum':
|
|
25
|
+
if (!param.values || param.values.length === 0) {
|
|
26
|
+
throw new Error('Enum parameter must have values array');
|
|
27
|
+
}
|
|
28
|
+
schema = z.enum(param.values);
|
|
29
|
+
break;
|
|
30
|
+
default:
|
|
31
|
+
throw new Error(`Unsupported parameter type: ${param.type}`);
|
|
32
|
+
}
|
|
33
|
+
// Add description
|
|
34
|
+
schema = schema.describe(param.description);
|
|
35
|
+
// Handle optional/default
|
|
36
|
+
if (param.required === false || param.default !== undefined) {
|
|
37
|
+
schema = schema.optional();
|
|
38
|
+
if (param.default !== undefined) {
|
|
39
|
+
schema = schema.default(param.default);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return schema;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Wraps a simple function definition into a LangChain StructuredTool
|
|
46
|
+
*/
|
|
47
|
+
export function wrapSimpleFunction(definition) {
|
|
48
|
+
// Build Zod schema from parameters
|
|
49
|
+
const schemaShape = {};
|
|
50
|
+
if (definition.parameters) {
|
|
51
|
+
for (const [key, param] of Object.entries(definition.parameters)) {
|
|
52
|
+
schemaShape[key] = parameterToZodSchema(param);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
const schema = z.object(schemaShape);
|
|
56
|
+
// Create the LangChain tool
|
|
57
|
+
return tool(async (args) => {
|
|
58
|
+
const result = await definition.execute(args);
|
|
59
|
+
return String(result);
|
|
60
|
+
}, {
|
|
61
|
+
name: definition.name,
|
|
62
|
+
description: definition.description,
|
|
63
|
+
schema,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=simple-function-wrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simple-function-wrapper.js","sourceRoot":"","sources":["../../../lib/functions/simple-function-wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAuBxB;;GAEG;AACH,SAAS,oBAAoB,CAAC,KAA8B;IAC1D,IAAI,MAAoB,CAAC;IAEzB,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,QAAQ;YACX,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM;QACR,KAAK,SAAS;YACZ,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;YACrB,MAAM;QACR,KAAK,OAAO;YACV,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YAC1B,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YACpC,MAAM;QACR,KAAK,MAAM;YACT,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/C,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YAC3D,CAAC;YACD,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAA+B,CAAC,CAAC;YACvD,MAAM;QACR;YACE,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,kBAAkB;IAClB,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAE5C,0BAA0B;IAC1B,IAAI,KAAK,CAAC,QAAQ,KAAK,KAAK,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC5D,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,UAAoC;IACrE,mCAAmC;IACnC,MAAM,WAAW,GAAiC,EAAE,CAAC;IAErD,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;QAC1B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACjE,WAAW,CAAC,GAAG,CAAC,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAErC,4BAA4B;IAC5B,OAAO,IAAI,CACT,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9C,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC,EACD;QACE,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,WAAW,EAAE,UAAU,CAAC,WAAW;QACnC,MAAM;KACP,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export { Orchestrator } from './orchestrator.js';
|
|
2
|
+
export type { OrchestratorConfig } from './orchestrator.js';
|
|
3
|
+
export { AgentLoader, AgentExecutor } from './agents/index.js';
|
|
4
|
+
export type { AgentDefinition, AgentInstance, AgentResult, ToolReference, OutputConfig, ToolCallRecord, } from './agents/index.js';
|
|
5
|
+
export { WorkflowLoader, WorkflowExecutor } from './workflows/index.js';
|
|
6
|
+
export type { WorkflowDefinition, WorkflowStep, WorkflowResult, WorkflowContext, StepResult, InputMapping, ParallelSteps, } from './workflows/index.js';
|
|
7
|
+
export { VectorStoreFactory, VectorStoreManager } from './vectors/index.js';
|
|
8
|
+
export type { VectorConfig, VectorStoreInstance, SearchResult, DocumentInput, } from './vectors/index.js';
|
|
9
|
+
export { LLMFactory } from './llm/index.js';
|
|
10
|
+
export type { ModelConfig, AgentLLMRef } from './llm/index.js';
|
|
11
|
+
export { MCPClientManager } from './mcp/index.js';
|
|
12
|
+
export type { MCPConfig, MCPServerConfig } from './mcp/index.js';
|
|
13
|
+
export { ToolRegistry, createVectorSearchTool } from './tools/index.js';
|
|
14
|
+
export { FunctionLoader } from './functions/index.js';
|
|
15
|
+
export type { FunctionMetadata, LoadedFunction } from './functions/index.js';
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAG5D,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC/D,YAAY,EACV,eAAe,EACf,aAAa,EACb,WAAW,EACX,aAAa,EACb,YAAY,EACZ,cAAc,GACf,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxE,YAAY,EACV,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,eAAe,EACf,UAAU,EACV,YAAY,EACZ,aAAa,GACd,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,YAAY,EACV,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,aAAa,GACd,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGjE,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAGxE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// Main orchestrator
|
|
2
|
+
export { Orchestrator } from './orchestrator.js';
|
|
3
|
+
// Agents
|
|
4
|
+
export { AgentLoader, AgentExecutor } from './agents/index.js';
|
|
5
|
+
// Workflows
|
|
6
|
+
export { WorkflowLoader, WorkflowExecutor } from './workflows/index.js';
|
|
7
|
+
// Vectors
|
|
8
|
+
export { VectorStoreFactory, VectorStoreManager } from './vectors/index.js';
|
|
9
|
+
// LLM
|
|
10
|
+
export { LLMFactory } from './llm/index.js';
|
|
11
|
+
// MCP
|
|
12
|
+
export { MCPClientManager } from './mcp/index.js';
|
|
13
|
+
// Tools
|
|
14
|
+
export { ToolRegistry, createVectorSearchTool } from './tools/index.js';
|
|
15
|
+
// Functions
|
|
16
|
+
export { FunctionLoader } from './functions/index.js';
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,SAAS;AACT,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAU/D,YAAY;AACZ,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAWxE,UAAU;AACV,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAQ5E,MAAM;AACN,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG5C,MAAM;AACN,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGlD,QAAQ;AACR,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAExE,YAAY;AACZ,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { LLMFactory } from './llm-factory.js';
|
|
2
|
+
export { loadLLMConfig, getModelConfig, getEmbeddingConfig, listModelConfigs, listEmbeddingConfigs, isLLMConfigLoaded, } from './llm-config.js';
|
|
3
|
+
export type { ModelConfig, EmbeddingModelConfig, LLMJsonConfig } from './llm-config.js';
|
|
4
|
+
export { AgentLLMRefSchema, resolveAgentLLMRef } from './types.js';
|
|
5
|
+
export type { AgentLLMRef } from './types.js';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/llm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EACL,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACxF,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACnE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { LLMFactory } from './llm-factory.js';
|
|
2
|
+
export { loadLLMConfig, getModelConfig, getEmbeddingConfig, listModelConfigs, listEmbeddingConfigs, isLLMConfigLoaded, } from './llm-config.js';
|
|
3
|
+
export { AgentLLMRefSchema, resolveAgentLLMRef } from './types.js';
|
|
4
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/llm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EACL,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const ModelConfigSchema: z.ZodObject<{
|
|
3
|
+
provider: z.ZodOptional<z.ZodEnum<["openai", "gemini", "anthropic", "local"]>>;
|
|
4
|
+
baseUrl: z.ZodOptional<z.ZodString>;
|
|
5
|
+
apiKey: z.ZodString;
|
|
6
|
+
model: z.ZodString;
|
|
7
|
+
temperature: z.ZodOptional<z.ZodNumber>;
|
|
8
|
+
maxTokens: z.ZodOptional<z.ZodNumber>;
|
|
9
|
+
}, "strip", z.ZodTypeAny, {
|
|
10
|
+
apiKey: string;
|
|
11
|
+
model: string;
|
|
12
|
+
provider?: "openai" | "gemini" | "anthropic" | "local" | undefined;
|
|
13
|
+
baseUrl?: string | undefined;
|
|
14
|
+
temperature?: number | undefined;
|
|
15
|
+
maxTokens?: number | undefined;
|
|
16
|
+
}, {
|
|
17
|
+
apiKey: string;
|
|
18
|
+
model: string;
|
|
19
|
+
provider?: "openai" | "gemini" | "anthropic" | "local" | undefined;
|
|
20
|
+
baseUrl?: string | undefined;
|
|
21
|
+
temperature?: number | undefined;
|
|
22
|
+
maxTokens?: number | undefined;
|
|
23
|
+
}>;
|
|
24
|
+
export declare const EmbeddingModelConfigSchema: z.ZodObject<{
|
|
25
|
+
provider: z.ZodOptional<z.ZodEnum<["openai", "gemini", "anthropic", "local"]>>;
|
|
26
|
+
baseUrl: z.ZodOptional<z.ZodString>;
|
|
27
|
+
apiKey: z.ZodString;
|
|
28
|
+
model: z.ZodString;
|
|
29
|
+
dimensions: z.ZodOptional<z.ZodNumber>;
|
|
30
|
+
eosToken: z.ZodOptional<z.ZodString>;
|
|
31
|
+
}, "strip", z.ZodTypeAny, {
|
|
32
|
+
apiKey: string;
|
|
33
|
+
model: string;
|
|
34
|
+
provider?: "openai" | "gemini" | "anthropic" | "local" | undefined;
|
|
35
|
+
baseUrl?: string | undefined;
|
|
36
|
+
dimensions?: number | undefined;
|
|
37
|
+
eosToken?: string | undefined;
|
|
38
|
+
}, {
|
|
39
|
+
apiKey: string;
|
|
40
|
+
model: string;
|
|
41
|
+
provider?: "openai" | "gemini" | "anthropic" | "local" | undefined;
|
|
42
|
+
baseUrl?: string | undefined;
|
|
43
|
+
dimensions?: number | undefined;
|
|
44
|
+
eosToken?: string | undefined;
|
|
45
|
+
}>;
|
|
46
|
+
export declare const LLMJsonConfigSchema: z.ZodObject<{
|
|
47
|
+
version: z.ZodDefault<z.ZodString>;
|
|
48
|
+
models: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
49
|
+
provider: z.ZodOptional<z.ZodEnum<["openai", "gemini", "anthropic", "local"]>>;
|
|
50
|
+
baseUrl: z.ZodOptional<z.ZodString>;
|
|
51
|
+
apiKey: z.ZodString;
|
|
52
|
+
model: z.ZodString;
|
|
53
|
+
temperature: z.ZodOptional<z.ZodNumber>;
|
|
54
|
+
maxTokens: z.ZodOptional<z.ZodNumber>;
|
|
55
|
+
}, "strip", z.ZodTypeAny, {
|
|
56
|
+
apiKey: string;
|
|
57
|
+
model: string;
|
|
58
|
+
provider?: "openai" | "gemini" | "anthropic" | "local" | undefined;
|
|
59
|
+
baseUrl?: string | undefined;
|
|
60
|
+
temperature?: number | undefined;
|
|
61
|
+
maxTokens?: number | undefined;
|
|
62
|
+
}, {
|
|
63
|
+
apiKey: string;
|
|
64
|
+
model: string;
|
|
65
|
+
provider?: "openai" | "gemini" | "anthropic" | "local" | undefined;
|
|
66
|
+
baseUrl?: string | undefined;
|
|
67
|
+
temperature?: number | undefined;
|
|
68
|
+
maxTokens?: number | undefined;
|
|
69
|
+
}>>;
|
|
70
|
+
embeddings: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
71
|
+
provider: z.ZodOptional<z.ZodEnum<["openai", "gemini", "anthropic", "local"]>>;
|
|
72
|
+
baseUrl: z.ZodOptional<z.ZodString>;
|
|
73
|
+
apiKey: z.ZodString;
|
|
74
|
+
model: z.ZodString;
|
|
75
|
+
dimensions: z.ZodOptional<z.ZodNumber>;
|
|
76
|
+
eosToken: z.ZodOptional<z.ZodString>;
|
|
77
|
+
}, "strip", z.ZodTypeAny, {
|
|
78
|
+
apiKey: string;
|
|
79
|
+
model: string;
|
|
80
|
+
provider?: "openai" | "gemini" | "anthropic" | "local" | undefined;
|
|
81
|
+
baseUrl?: string | undefined;
|
|
82
|
+
dimensions?: number | undefined;
|
|
83
|
+
eosToken?: string | undefined;
|
|
84
|
+
}, {
|
|
85
|
+
apiKey: string;
|
|
86
|
+
model: string;
|
|
87
|
+
provider?: "openai" | "gemini" | "anthropic" | "local" | undefined;
|
|
88
|
+
baseUrl?: string | undefined;
|
|
89
|
+
dimensions?: number | undefined;
|
|
90
|
+
eosToken?: string | undefined;
|
|
91
|
+
}>>;
|
|
92
|
+
}, "strip", z.ZodTypeAny, {
|
|
93
|
+
version: string;
|
|
94
|
+
models: Record<string, {
|
|
95
|
+
apiKey: string;
|
|
96
|
+
model: string;
|
|
97
|
+
provider?: "openai" | "gemini" | "anthropic" | "local" | undefined;
|
|
98
|
+
baseUrl?: string | undefined;
|
|
99
|
+
temperature?: number | undefined;
|
|
100
|
+
maxTokens?: number | undefined;
|
|
101
|
+
}>;
|
|
102
|
+
embeddings: Record<string, {
|
|
103
|
+
apiKey: string;
|
|
104
|
+
model: string;
|
|
105
|
+
provider?: "openai" | "gemini" | "anthropic" | "local" | undefined;
|
|
106
|
+
baseUrl?: string | undefined;
|
|
107
|
+
dimensions?: number | undefined;
|
|
108
|
+
eosToken?: string | undefined;
|
|
109
|
+
}>;
|
|
110
|
+
}, {
|
|
111
|
+
models: Record<string, {
|
|
112
|
+
apiKey: string;
|
|
113
|
+
model: string;
|
|
114
|
+
provider?: "openai" | "gemini" | "anthropic" | "local" | undefined;
|
|
115
|
+
baseUrl?: string | undefined;
|
|
116
|
+
temperature?: number | undefined;
|
|
117
|
+
maxTokens?: number | undefined;
|
|
118
|
+
}>;
|
|
119
|
+
embeddings: Record<string, {
|
|
120
|
+
apiKey: string;
|
|
121
|
+
model: string;
|
|
122
|
+
provider?: "openai" | "gemini" | "anthropic" | "local" | undefined;
|
|
123
|
+
baseUrl?: string | undefined;
|
|
124
|
+
dimensions?: number | undefined;
|
|
125
|
+
eosToken?: string | undefined;
|
|
126
|
+
}>;
|
|
127
|
+
version?: string | undefined;
|
|
128
|
+
}>;
|
|
129
|
+
export type ModelConfig = z.infer<typeof ModelConfigSchema>;
|
|
130
|
+
export type EmbeddingModelConfig = z.infer<typeof EmbeddingModelConfigSchema>;
|
|
131
|
+
export type LLMJsonConfig = z.infer<typeof LLMJsonConfigSchema>;
|
|
132
|
+
export declare function loadLLMConfig(llmJsonPath: string): Promise<LLMJsonConfig>;
|
|
133
|
+
export declare function getModelConfig(name: string): ModelConfig;
|
|
134
|
+
export declare function getEmbeddingConfig(name: string): EmbeddingModelConfig;
|
|
135
|
+
export declare function listModelConfigs(): string[];
|
|
136
|
+
export declare function listEmbeddingConfigs(): string[];
|
|
137
|
+
export declare function isLLMConfigLoaded(): boolean;
|
|
138
|
+
//# sourceMappingURL=llm-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm-config.d.ts","sourceRoot":"","sources":["../../../lib/llm/llm-config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;EAO5B,CAAC;AAGH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;EAOrC,CAAC;AAGH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI9B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAKhE,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAU/E;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAYxD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,CAYrE;AAED,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CAK3C;AAED,wBAAgB,oBAAoB,IAAI,MAAM,EAAE,CAK/C;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import * as fs from 'fs/promises';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { logger } from '../logger.js';
|
|
4
|
+
// Schema for individual model configuration
|
|
5
|
+
export const ModelConfigSchema = z.object({
|
|
6
|
+
provider: z.enum(['openai', 'gemini', 'anthropic', 'local']).optional(),
|
|
7
|
+
baseUrl: z.string().optional(),
|
|
8
|
+
apiKey: z.string(),
|
|
9
|
+
model: z.string(),
|
|
10
|
+
temperature: z.number().min(0).max(2).optional(),
|
|
11
|
+
maxTokens: z.number().optional(),
|
|
12
|
+
});
|
|
13
|
+
// Schema for individual embedding configuration
|
|
14
|
+
export const EmbeddingModelConfigSchema = z.object({
|
|
15
|
+
provider: z.enum(['openai', 'gemini', 'anthropic', 'local']).optional(),
|
|
16
|
+
baseUrl: z.string().optional(),
|
|
17
|
+
apiKey: z.string(),
|
|
18
|
+
model: z.string(),
|
|
19
|
+
dimensions: z.number().optional(), // Embedding dimensions (optional, e.g., for OpenAI)
|
|
20
|
+
eosToken: z.string().optional(), // EOS token to append to text (e.g., for Nomic models)
|
|
21
|
+
});
|
|
22
|
+
// Schema for the entire llm.json file
|
|
23
|
+
export const LLMJsonConfigSchema = z.object({
|
|
24
|
+
version: z.string().default('1.0'),
|
|
25
|
+
models: z.record(z.string(), ModelConfigSchema),
|
|
26
|
+
embeddings: z.record(z.string(), EmbeddingModelConfigSchema),
|
|
27
|
+
});
|
|
28
|
+
// Singleton config manager
|
|
29
|
+
let loadedConfig = null;
|
|
30
|
+
export async function loadLLMConfig(llmJsonPath) {
|
|
31
|
+
const content = await fs.readFile(llmJsonPath, 'utf-8');
|
|
32
|
+
const parsed = JSON.parse(content);
|
|
33
|
+
const validated = LLMJsonConfigSchema.parse(parsed);
|
|
34
|
+
loadedConfig = validated;
|
|
35
|
+
logger.info(`[LLMConfig] Loaded ${Object.keys(validated.models).length} model(s), ${Object.keys(validated.embeddings).length} embedding(s)`);
|
|
36
|
+
return validated;
|
|
37
|
+
}
|
|
38
|
+
export function getModelConfig(name) {
|
|
39
|
+
if (!loadedConfig) {
|
|
40
|
+
throw new Error('LLM config not loaded. Call loadLLMConfig() first.');
|
|
41
|
+
}
|
|
42
|
+
const config = loadedConfig.models[name];
|
|
43
|
+
if (!config) {
|
|
44
|
+
const available = Object.keys(loadedConfig.models).join(', ');
|
|
45
|
+
throw new Error(`Model config "${name}" not found. Available: ${available}`);
|
|
46
|
+
}
|
|
47
|
+
return config;
|
|
48
|
+
}
|
|
49
|
+
export function getEmbeddingConfig(name) {
|
|
50
|
+
if (!loadedConfig) {
|
|
51
|
+
throw new Error('LLM config not loaded. Call loadLLMConfig() first.');
|
|
52
|
+
}
|
|
53
|
+
const config = loadedConfig.embeddings[name];
|
|
54
|
+
if (!config) {
|
|
55
|
+
const available = Object.keys(loadedConfig.embeddings).join(', ');
|
|
56
|
+
throw new Error(`Embedding config "${name}" not found. Available: ${available}`);
|
|
57
|
+
}
|
|
58
|
+
return config;
|
|
59
|
+
}
|
|
60
|
+
export function listModelConfigs() {
|
|
61
|
+
if (!loadedConfig) {
|
|
62
|
+
return [];
|
|
63
|
+
}
|
|
64
|
+
return Object.keys(loadedConfig.models);
|
|
65
|
+
}
|
|
66
|
+
export function listEmbeddingConfigs() {
|
|
67
|
+
if (!loadedConfig) {
|
|
68
|
+
return [];
|
|
69
|
+
}
|
|
70
|
+
return Object.keys(loadedConfig.embeddings);
|
|
71
|
+
}
|
|
72
|
+
export function isLLMConfigLoaded() {
|
|
73
|
+
return loadedConfig !== null;
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=llm-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm-config.js","sourceRoot":"","sources":["../../../lib/llm/llm-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { BaseChatModel } from '@langchain/core/language_models/chat_models';
|
|
2
|
+
import { type AgentLLMRef } from './types.js';
|
|
3
|
+
export declare class LLMFactory {
|
|
4
|
+
private static instances;
|
|
5
|
+
/**
|
|
6
|
+
* Create an LLM instance from a config name (defined in llm.json)
|
|
7
|
+
* @param ref - Config name as string, or object with name and optional temperature override
|
|
8
|
+
*/
|
|
9
|
+
static create(ref?: AgentLLMRef): BaseChatModel;
|
|
10
|
+
/**
|
|
11
|
+
* Create OpenAI LLM instance
|
|
12
|
+
*/
|
|
13
|
+
private static createOpenAI;
|
|
14
|
+
/**
|
|
15
|
+
* Create Google Gemini LLM instance
|
|
16
|
+
*/
|
|
17
|
+
private static createGemini;
|
|
18
|
+
/**
|
|
19
|
+
* Create Anthropic Claude LLM instance
|
|
20
|
+
*/
|
|
21
|
+
private static createAnthropic;
|
|
22
|
+
/**
|
|
23
|
+
* Create Local LLM instance (OpenAI-compatible)
|
|
24
|
+
* Used for LM Studio, Ollama, and other OpenAI-compatible local servers
|
|
25
|
+
*/
|
|
26
|
+
private static createLocal;
|
|
27
|
+
private static getCacheKey;
|
|
28
|
+
static clearCache(): void;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=llm-factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm-factory.d.ts","sourceRoot":"","sources":["../../../lib/llm/llm-factory.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAEjF,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAIlE,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAC,SAAS,CAAyC;IAEjE;;;OAGG;IACH,MAAM,CAAC,MAAM,CAAC,GAAG,GAAE,WAAuB,GAAG,aAAa;IAsC1D;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IAe3B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IAc3B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAc9B;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAI1B,OAAO,CAAC,MAAM,CAAC,WAAW;IAI1B,MAAM,CAAC,UAAU,IAAI,IAAI;CAG1B"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { ChatOpenAI } from '@langchain/openai';
|
|
2
|
+
import { ChatGoogleGenerativeAI } from '@langchain/google-genai';
|
|
3
|
+
import { ChatAnthropic } from '@langchain/anthropic';
|
|
4
|
+
import { getModelConfig } from './llm-config.js';
|
|
5
|
+
import { resolveAgentLLMRef } from './types.js';
|
|
6
|
+
import { detectProvider } from './provider-detector.js';
|
|
7
|
+
import { logger } from '../logger.js';
|
|
8
|
+
export class LLMFactory {
|
|
9
|
+
static instances = new Map();
|
|
10
|
+
/**
|
|
11
|
+
* Create an LLM instance from a config name (defined in llm.json)
|
|
12
|
+
* @param ref - Config name as string, or object with name and optional temperature override
|
|
13
|
+
*/
|
|
14
|
+
static create(ref = 'default') {
|
|
15
|
+
const { name, temperature: tempOverride } = resolveAgentLLMRef(ref);
|
|
16
|
+
const config = getModelConfig(name);
|
|
17
|
+
const provider = detectProvider(config);
|
|
18
|
+
// Apply temperature override if provided, otherwise use config temperature
|
|
19
|
+
const temperature = tempOverride ?? config.temperature;
|
|
20
|
+
const key = this.getCacheKey(name, temperature ?? 0);
|
|
21
|
+
const cached = this.instances.get(key);
|
|
22
|
+
if (cached) {
|
|
23
|
+
return cached;
|
|
24
|
+
}
|
|
25
|
+
logger.info(`[LLMFactory] Creating LLM: ${name} (provider: ${provider}, model: ${config.model}, temp: ${temperature ?? 'default'})`);
|
|
26
|
+
let llm;
|
|
27
|
+
switch (provider) {
|
|
28
|
+
case 'openai':
|
|
29
|
+
llm = this.createOpenAI(config, temperature);
|
|
30
|
+
break;
|
|
31
|
+
case 'gemini':
|
|
32
|
+
llm = this.createGemini(config, temperature);
|
|
33
|
+
break;
|
|
34
|
+
case 'anthropic':
|
|
35
|
+
llm = this.createAnthropic(config, temperature);
|
|
36
|
+
break;
|
|
37
|
+
case 'local':
|
|
38
|
+
llm = this.createLocal(config, temperature);
|
|
39
|
+
break;
|
|
40
|
+
default:
|
|
41
|
+
throw new Error(`Unsupported provider: ${provider}`);
|
|
42
|
+
}
|
|
43
|
+
this.instances.set(key, llm);
|
|
44
|
+
return llm;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Create OpenAI LLM instance
|
|
48
|
+
*/
|
|
49
|
+
static createOpenAI(config, temperature) {
|
|
50
|
+
const options = {
|
|
51
|
+
modelName: config.model,
|
|
52
|
+
openAIApiKey: config.apiKey,
|
|
53
|
+
maxTokens: config.maxTokens,
|
|
54
|
+
configuration: config.baseUrl ? { baseURL: config.baseUrl } : undefined,
|
|
55
|
+
};
|
|
56
|
+
if (temperature !== undefined) {
|
|
57
|
+
options.temperature = temperature;
|
|
58
|
+
}
|
|
59
|
+
return new ChatOpenAI(options);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Create Google Gemini LLM instance
|
|
63
|
+
*/
|
|
64
|
+
static createGemini(config, temperature) {
|
|
65
|
+
const options = {
|
|
66
|
+
model: config.model,
|
|
67
|
+
apiKey: config.apiKey,
|
|
68
|
+
maxOutputTokens: config.maxTokens,
|
|
69
|
+
};
|
|
70
|
+
if (temperature !== undefined) {
|
|
71
|
+
options.temperature = temperature;
|
|
72
|
+
}
|
|
73
|
+
return new ChatGoogleGenerativeAI(options);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Create Anthropic Claude LLM instance
|
|
77
|
+
*/
|
|
78
|
+
static createAnthropic(config, temperature) {
|
|
79
|
+
const options = {
|
|
80
|
+
modelName: config.model,
|
|
81
|
+
anthropicApiKey: config.apiKey,
|
|
82
|
+
maxTokens: config.maxTokens,
|
|
83
|
+
};
|
|
84
|
+
if (temperature !== undefined) {
|
|
85
|
+
options.temperature = temperature;
|
|
86
|
+
}
|
|
87
|
+
return new ChatAnthropic(options);
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Create Local LLM instance (OpenAI-compatible)
|
|
91
|
+
* Used for LM Studio, Ollama, and other OpenAI-compatible local servers
|
|
92
|
+
*/
|
|
93
|
+
static createLocal(config, temperature) {
|
|
94
|
+
return this.createOpenAI(config, temperature);
|
|
95
|
+
}
|
|
96
|
+
static getCacheKey(name, temperature) {
|
|
97
|
+
return `${name}-${temperature}`;
|
|
98
|
+
}
|
|
99
|
+
static clearCache() {
|
|
100
|
+
this.instances.clear();
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=llm-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm-factory.js","sourceRoot":"","sources":["../../../lib/llm/llm-factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ModelConfig } from './llm-config.js';
|
|
2
|
+
export type LLMProvider = 'openai' | 'gemini' | 'anthropic' | 'local';
|
|
3
|
+
/**
|
|
4
|
+
* Detects which LLM provider to use based on configuration
|
|
5
|
+
* Priority:
|
|
6
|
+
* 1. Explicit provider field
|
|
7
|
+
* 2. Auto-detect from baseUrl
|
|
8
|
+
* 3. Auto-detect from model name
|
|
9
|
+
* 4. Default to 'openai' for backwards compatibility
|
|
10
|
+
*/
|
|
11
|
+
export declare function detectProvider(config: ModelConfig): LLMProvider;
|
|
12
|
+
//# sourceMappingURL=provider-detector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-detector.d.ts","sourceRoot":"","sources":["../../../lib/llm/provider-detector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,OAAO,CAAC;AAEtE;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,CAuC/D"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detects which LLM provider to use based on configuration
|
|
3
|
+
* Priority:
|
|
4
|
+
* 1. Explicit provider field
|
|
5
|
+
* 2. Auto-detect from baseUrl
|
|
6
|
+
* 3. Auto-detect from model name
|
|
7
|
+
* 4. Default to 'openai' for backwards compatibility
|
|
8
|
+
*/
|
|
9
|
+
export function detectProvider(config) {
|
|
10
|
+
// 1. Explicit provider field takes precedence
|
|
11
|
+
if (config.provider) {
|
|
12
|
+
return config.provider;
|
|
13
|
+
}
|
|
14
|
+
// 2. Auto-detect from baseUrl
|
|
15
|
+
if (config.baseUrl) {
|
|
16
|
+
if (config.baseUrl.includes('api.openai.com')) {
|
|
17
|
+
return 'openai';
|
|
18
|
+
}
|
|
19
|
+
if (config.baseUrl.includes('generativelanguage.googleapis.com')) {
|
|
20
|
+
// Check if using OpenAI-compatible endpoint
|
|
21
|
+
if (config.baseUrl.includes('/openai/')) {
|
|
22
|
+
return 'local'; // Treat OpenAI-compatible Gemini as local
|
|
23
|
+
}
|
|
24
|
+
return 'gemini'; // Native Google API
|
|
25
|
+
}
|
|
26
|
+
if (config.baseUrl.includes('api.anthropic.com')) {
|
|
27
|
+
return 'anthropic';
|
|
28
|
+
}
|
|
29
|
+
// Any other baseUrl is assumed to be an OpenAI-compatible local server
|
|
30
|
+
return 'local';
|
|
31
|
+
}
|
|
32
|
+
// 3. Auto-detect from model name patterns
|
|
33
|
+
const modelLower = config.model.toLowerCase();
|
|
34
|
+
if (modelLower.startsWith('gpt-')) {
|
|
35
|
+
return 'openai';
|
|
36
|
+
}
|
|
37
|
+
if (modelLower.startsWith('gemini-')) {
|
|
38
|
+
return 'gemini';
|
|
39
|
+
}
|
|
40
|
+
if (modelLower.startsWith('claude-')) {
|
|
41
|
+
return 'anthropic';
|
|
42
|
+
}
|
|
43
|
+
// 4. Default to openai for backwards compatibility
|
|
44
|
+
return 'openai';
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=provider-detector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-detector.js","sourceRoot":"","sources":["../../../lib/llm/provider-detector.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,MAAmB;IAChD,8CAA8C;IAC9C,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,OAAO,MAAM,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,8BAA8B;IAC9B,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC9C,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,mCAAmC,CAAC,EAAE,CAAC;YACjE,4CAA4C;YAC5C,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBACxC,OAAO,OAAO,CAAC,CAAC,0CAA0C;YAC5D,CAAC;YACD,OAAO,QAAQ,CAAC,CAAC,oBAAoB;QACvC,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACjD,OAAO,WAAW,CAAC;QACrB,CAAC;QACD,uEAAuE;QACvE,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,0CAA0C;IAC1C,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;IAC9C,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAClC,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACrC,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACrC,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,mDAAmD;IACnD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export type { ModelConfig, EmbeddingModelConfig, LLMJsonConfig, } from './llm-config.js';
|
|
3
|
+
export { ModelConfigSchema, EmbeddingModelConfigSchema, LLMJsonConfigSchema, } from './llm-config.js';
|
|
4
|
+
export declare const AgentLLMRefSchema: z.ZodUnion<[z.ZodString, z.ZodObject<{
|
|
5
|
+
name: z.ZodString;
|
|
6
|
+
temperature: z.ZodOptional<z.ZodNumber>;
|
|
7
|
+
}, "strip", z.ZodTypeAny, {
|
|
8
|
+
name: string;
|
|
9
|
+
temperature?: number | undefined;
|
|
10
|
+
}, {
|
|
11
|
+
name: string;
|
|
12
|
+
temperature?: number | undefined;
|
|
13
|
+
}>]>;
|
|
14
|
+
export type AgentLLMRef = z.infer<typeof AgentLLMRefSchema>;
|
|
15
|
+
export declare function resolveAgentLLMRef(ref: AgentLLMRef): {
|
|
16
|
+
name: string;
|
|
17
|
+
temperature?: number;
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../lib/llm/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,YAAY,EACV,WAAW,EACX,oBAAoB,EACpB,aAAa,GACd,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,iBAAiB,EACjB,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AAGzB,eAAO,MAAM,iBAAiB;;;;;;;;;IAM5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAG5D,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,WAAW,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAK3F"}
|