@toolplex/ai-engine 0.1.0

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.
Files changed (88) hide show
  1. package/LICENSE +98 -0
  2. package/README.md +292 -0
  3. package/dist/adapters/index.d.ts +9 -0
  4. package/dist/adapters/index.d.ts.map +1 -0
  5. package/dist/adapters/index.js +9 -0
  6. package/dist/adapters/index.js.map +1 -0
  7. package/dist/adapters/types.d.ts +137 -0
  8. package/dist/adapters/types.d.ts.map +1 -0
  9. package/dist/adapters/types.js +14 -0
  10. package/dist/adapters/types.js.map +1 -0
  11. package/dist/core/ChatEngine.d.ts +47 -0
  12. package/dist/core/ChatEngine.d.ts.map +1 -0
  13. package/dist/core/ChatEngine.js +355 -0
  14. package/dist/core/ChatEngine.js.map +1 -0
  15. package/dist/core/ToolBuilder.d.ts +25 -0
  16. package/dist/core/ToolBuilder.d.ts.map +1 -0
  17. package/dist/core/ToolBuilder.js +215 -0
  18. package/dist/core/ToolBuilder.js.map +1 -0
  19. package/dist/core/index.d.ts +6 -0
  20. package/dist/core/index.d.ts.map +1 -0
  21. package/dist/core/index.js +6 -0
  22. package/dist/core/index.js.map +1 -0
  23. package/dist/index.d.ts +41 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +49 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/mcp/DefaultStdioTransportFactory.d.ts +27 -0
  28. package/dist/mcp/DefaultStdioTransportFactory.d.ts.map +1 -0
  29. package/dist/mcp/DefaultStdioTransportFactory.js +60 -0
  30. package/dist/mcp/DefaultStdioTransportFactory.js.map +1 -0
  31. package/dist/mcp/MCPClient.d.ts +60 -0
  32. package/dist/mcp/MCPClient.d.ts.map +1 -0
  33. package/dist/mcp/MCPClient.js +164 -0
  34. package/dist/mcp/MCPClient.js.map +1 -0
  35. package/dist/mcp/index.d.ts +10 -0
  36. package/dist/mcp/index.d.ts.map +1 -0
  37. package/dist/mcp/index.js +11 -0
  38. package/dist/mcp/index.js.map +1 -0
  39. package/dist/mcp/paths.d.ts +16 -0
  40. package/dist/mcp/paths.d.ts.map +1 -0
  41. package/dist/mcp/paths.js +58 -0
  42. package/dist/mcp/paths.js.map +1 -0
  43. package/dist/mcp/types.d.ts +85 -0
  44. package/dist/mcp/types.d.ts.map +1 -0
  45. package/dist/mcp/types.js +7 -0
  46. package/dist/mcp/types.js.map +1 -0
  47. package/dist/providers/index.d.ts +40 -0
  48. package/dist/providers/index.d.ts.map +1 -0
  49. package/dist/providers/index.js +148 -0
  50. package/dist/providers/index.js.map +1 -0
  51. package/dist/providers/toolplex.d.ts +43 -0
  52. package/dist/providers/toolplex.d.ts.map +1 -0
  53. package/dist/providers/toolplex.js +168 -0
  54. package/dist/providers/toolplex.js.map +1 -0
  55. package/dist/types/index.d.ts +218 -0
  56. package/dist/types/index.d.ts.map +1 -0
  57. package/dist/types/index.js +8 -0
  58. package/dist/types/index.js.map +1 -0
  59. package/dist/utils/index.d.ts +8 -0
  60. package/dist/utils/index.d.ts.map +1 -0
  61. package/dist/utils/index.js +8 -0
  62. package/dist/utils/index.js.map +1 -0
  63. package/dist/utils/models.d.ts +30 -0
  64. package/dist/utils/models.d.ts.map +1 -0
  65. package/dist/utils/models.js +52 -0
  66. package/dist/utils/models.js.map +1 -0
  67. package/dist/utils/schema.d.ts +74 -0
  68. package/dist/utils/schema.d.ts.map +1 -0
  69. package/dist/utils/schema.js +253 -0
  70. package/dist/utils/schema.js.map +1 -0
  71. package/package.json +70 -0
  72. package/src/adapters/index.ts +9 -0
  73. package/src/adapters/types.ts +241 -0
  74. package/src/core/ChatEngine.ts +464 -0
  75. package/src/core/ToolBuilder.ts +323 -0
  76. package/src/core/index.ts +6 -0
  77. package/src/index.ts +86 -0
  78. package/src/mcp/DefaultStdioTransportFactory.ts +71 -0
  79. package/src/mcp/MCPClient.ts +209 -0
  80. package/src/mcp/index.ts +24 -0
  81. package/src/mcp/paths.ts +91 -0
  82. package/src/mcp/types.ts +93 -0
  83. package/src/providers/index.ts +177 -0
  84. package/src/providers/toolplex.ts +217 -0
  85. package/src/types/index.ts +290 -0
  86. package/src/utils/index.ts +8 -0
  87. package/src/utils/models.ts +59 -0
  88. package/src/utils/schema.ts +307 -0
@@ -0,0 +1,40 @@
1
+ /**
2
+ * @toolplex/ai-engine - Provider Factory
3
+ *
4
+ * Central provider management for the AI engine.
5
+ * Handles instantiation of both built-in AI SDK providers and custom providers.
6
+ */
7
+ import type { AIProvider, ProviderCredentials } from "../types/index.js";
8
+ import type { LoggerAdapter } from "../adapters/types.js";
9
+ export { toolplexUsageMap } from "./toolplex.js";
10
+ export interface GetProviderOptions {
11
+ logger?: LoggerAdapter;
12
+ clientVersion?: string;
13
+ }
14
+ /**
15
+ * Get provider instance by ID
16
+ *
17
+ * @param providerId - Provider identifier (e.g., 'toolplex', 'openai', 'anthropic')
18
+ * @param credentials - API keys and credentials
19
+ * @param options - Optional logger and client version
20
+ * @returns Provider instance
21
+ */
22
+ export declare function getProvider(providerId: string, credentials: ProviderCredentials, options?: GetProviderOptions): AIProvider;
23
+ /**
24
+ * Get model instance for streaming
25
+ *
26
+ * @param modelId - Full model identifier (e.g., 'anthropic/claude-sonnet-4')
27
+ * @param credentials - API keys and credentials
28
+ * @param options - Optional logger and client version
29
+ * @returns Language model instance ready for streamText()
30
+ */
31
+ export declare function getModel(modelId: string, credentials: ProviderCredentials, options?: GetProviderOptions): any;
32
+ /**
33
+ * Check if a provider is available (has required credentials)
34
+ *
35
+ * @param providerId - Provider identifier
36
+ * @param credentials - API keys and credentials
37
+ * @returns True if provider can be instantiated
38
+ */
39
+ export declare function isProviderAvailable(providerId: string, credentials: ProviderCredentials): boolean;
40
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,mBAAmB,EAChC,OAAO,CAAC,EAAE,kBAAkB,GAC3B,UAAU,CAqGZ;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CACtB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,mBAAmB,EAChC,OAAO,CAAC,EAAE,kBAAkB,OAS7B;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,mBAAmB,GAC/B,OAAO,CAOT"}
@@ -0,0 +1,148 @@
1
+ /**
2
+ * @toolplex/ai-engine - Provider Factory
3
+ *
4
+ * Central provider management for the AI engine.
5
+ * Handles instantiation of both built-in AI SDK providers and custom providers.
6
+ */
7
+ import { createOpenAI } from "@ai-sdk/openai";
8
+ import { createAnthropic } from "@ai-sdk/anthropic";
9
+ import { createGoogleGenerativeAI } from "@ai-sdk/google";
10
+ import { createOpenRouter } from "@openrouter/ai-sdk-provider";
11
+ import { createToolPlex } from "./toolplex.js";
12
+ export { toolplexUsageMap } from "./toolplex.js";
13
+ /**
14
+ * Get provider instance by ID
15
+ *
16
+ * @param providerId - Provider identifier (e.g., 'toolplex', 'openai', 'anthropic')
17
+ * @param credentials - API keys and credentials
18
+ * @param options - Optional logger and client version
19
+ * @returns Provider instance
20
+ */
21
+ export function getProvider(providerId, credentials, options) {
22
+ switch (providerId.toLowerCase()) {
23
+ case "toolplex": {
24
+ if (!credentials.toolplexApiKey) {
25
+ throw new Error("ToolPlex API key is required");
26
+ }
27
+ const toolplexProvider = createToolPlex({
28
+ apiKey: credentials.toolplexApiKey,
29
+ baseURL: "https://api.toolplex.ai",
30
+ clientVersion: options?.clientVersion,
31
+ logger: options?.logger,
32
+ });
33
+ return {
34
+ id: "toolplex",
35
+ chat: (modelId) => toolplexProvider(modelId),
36
+ };
37
+ }
38
+ case "openai": {
39
+ if (!credentials.openaiKey) {
40
+ throw new Error("OpenAI API key is required");
41
+ }
42
+ const openaiProvider = createOpenAI({ apiKey: credentials.openaiKey });
43
+ return {
44
+ id: "openai",
45
+ chat: (modelId) => openaiProvider(modelId),
46
+ };
47
+ }
48
+ case "anthropic": {
49
+ if (!credentials.anthropicKey) {
50
+ throw new Error("Anthropic API key is required");
51
+ }
52
+ const anthropicProvider = createAnthropic({
53
+ apiKey: credentials.anthropicKey,
54
+ });
55
+ return {
56
+ id: "anthropic",
57
+ chat: (modelId) => anthropicProvider(modelId),
58
+ };
59
+ }
60
+ case "google": {
61
+ if (!credentials.googleKey) {
62
+ throw new Error("Google API key is required");
63
+ }
64
+ const googleProvider = createGoogleGenerativeAI({
65
+ apiKey: credentials.googleKey,
66
+ });
67
+ return {
68
+ id: "google",
69
+ chat: (modelId) => googleProvider(modelId),
70
+ };
71
+ }
72
+ case "openrouter": {
73
+ if (!credentials.openrouterKey) {
74
+ throw new Error("OpenRouter API key is required");
75
+ }
76
+ const openrouterProvider = createOpenRouter({
77
+ apiKey: credentials.openrouterKey,
78
+ });
79
+ return {
80
+ id: "openrouter",
81
+ chat: (modelId) => openrouterProvider(modelId),
82
+ };
83
+ }
84
+ case "deepseek": {
85
+ if (!credentials.deepseekKey) {
86
+ throw new Error("DeepSeek API key is required");
87
+ }
88
+ // DeepSeek uses OpenAI-compatible API
89
+ const deepseekProvider = createOpenAI({
90
+ apiKey: credentials.deepseekKey,
91
+ baseURL: "https://api.deepseek.com/v1",
92
+ });
93
+ return {
94
+ id: "deepseek",
95
+ chat: (modelId) => deepseekProvider(modelId),
96
+ };
97
+ }
98
+ case "moonshot": {
99
+ if (!credentials.moonshotKey) {
100
+ throw new Error("Moonshot API key is required");
101
+ }
102
+ // Moonshot uses OpenAI-compatible API
103
+ const moonshotProvider = createOpenAI({
104
+ apiKey: credentials.moonshotKey,
105
+ baseURL: "https://api.moonshot.cn/v1",
106
+ });
107
+ return {
108
+ id: "moonshot",
109
+ chat: (modelId) => moonshotProvider(modelId),
110
+ };
111
+ }
112
+ default:
113
+ throw new Error(`Unknown provider: ${providerId}`);
114
+ }
115
+ }
116
+ /**
117
+ * Get model instance for streaming
118
+ *
119
+ * @param modelId - Full model identifier (e.g., 'anthropic/claude-sonnet-4')
120
+ * @param credentials - API keys and credentials
121
+ * @param options - Optional logger and client version
122
+ * @returns Language model instance ready for streamText()
123
+ */
124
+ export function getModel(modelId, credentials, options) {
125
+ // Parse model ID format: "provider/model-name"
126
+ const parts = modelId.split("/");
127
+ const providerId = parts[0];
128
+ const actualModelId = parts.slice(1).join("/");
129
+ const provider = getProvider(providerId, credentials, options);
130
+ return provider.chat(actualModelId);
131
+ }
132
+ /**
133
+ * Check if a provider is available (has required credentials)
134
+ *
135
+ * @param providerId - Provider identifier
136
+ * @param credentials - API keys and credentials
137
+ * @returns True if provider can be instantiated
138
+ */
139
+ export function isProviderAvailable(providerId, credentials) {
140
+ try {
141
+ getProvider(providerId, credentials);
142
+ return true;
143
+ }
144
+ catch {
145
+ return false;
146
+ }
147
+ }
148
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * @toolplex/ai-engine - ToolPlex Provider
3
+ *
4
+ * Custom ToolPlex Provider for Vercel AI SDK.
5
+ * Wraps the ToolPlex AI API backend (api.toolplex.ai) which proxies OpenRouter
6
+ * and returns OpenRouter-format SSE streaming responses.
7
+ *
8
+ * The backend handles:
9
+ * - Authentication via ToolPlex API keys (x-api-key header)
10
+ * - Usage tracking and enforcement
11
+ * - OpenRouter model access
12
+ * - Tool call handling
13
+ */
14
+ import type { LoggerAdapter } from "../adapters/types.js";
15
+ export interface ToolPlexConfig {
16
+ apiKey: string;
17
+ baseURL?: string;
18
+ clientVersion?: string;
19
+ logger?: LoggerAdapter;
20
+ }
21
+ /**
22
+ * Global map to store usage data from DONE events
23
+ * Key: sessionId, Value: Usage data from backend
24
+ * This is cleared after being read by the engine
25
+ */
26
+ export declare const toolplexUsageMap: Map<string, {
27
+ prompt_tokens: number;
28
+ completion_tokens: number;
29
+ total_tokens: number;
30
+ cost?: number;
31
+ }>;
32
+ /**
33
+ * ToolPlex model factory function type
34
+ */
35
+ export type ToolPlexModelFactory = (modelId: string) => any;
36
+ /**
37
+ * Create a ToolPlex provider instance
38
+ *
39
+ * Uses the specialized OpenRouter SDK provider with custom configuration to work with
40
+ * the ToolPlex backend API which proxies OpenRouter and returns OpenRouter's SSE format.
41
+ */
42
+ export declare function createToolPlex(config: ToolPlexConfig): ToolPlexModelFactory;
43
+ //# sourceMappingURL=toolplex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolplex.d.ts","sourceRoot":"","sources":["../../src/providers/toolplex.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB;mBAGV,MAAM;uBACF,MAAM;kBACX,MAAM;WACb,MAAM;EAEd,CAAC;AAEJ;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,GAAG,CAAC;AAE5D;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,oBAAoB,CAsK3E"}
@@ -0,0 +1,168 @@
1
+ /**
2
+ * @toolplex/ai-engine - ToolPlex Provider
3
+ *
4
+ * Custom ToolPlex Provider for Vercel AI SDK.
5
+ * Wraps the ToolPlex AI API backend (api.toolplex.ai) which proxies OpenRouter
6
+ * and returns OpenRouter-format SSE streaming responses.
7
+ *
8
+ * The backend handles:
9
+ * - Authentication via ToolPlex API keys (x-api-key header)
10
+ * - Usage tracking and enforcement
11
+ * - OpenRouter model access
12
+ * - Tool call handling
13
+ */
14
+ import { createOpenRouter } from "@openrouter/ai-sdk-provider";
15
+ /**
16
+ * Global map to store usage data from DONE events
17
+ * Key: sessionId, Value: Usage data from backend
18
+ * This is cleared after being read by the engine
19
+ */
20
+ export const toolplexUsageMap = new Map();
21
+ /**
22
+ * Create a ToolPlex provider instance
23
+ *
24
+ * Uses the specialized OpenRouter SDK provider with custom configuration to work with
25
+ * the ToolPlex backend API which proxies OpenRouter and returns OpenRouter's SSE format.
26
+ */
27
+ export function createToolPlex(config) {
28
+ const baseURL = config.baseURL || "https://api.toolplex.ai";
29
+ const logger = config.logger;
30
+ // Build headers
31
+ const headers = {
32
+ "x-api-key": config.apiKey,
33
+ };
34
+ if (config.clientVersion) {
35
+ headers["X-Client-Version"] = config.clientVersion;
36
+ }
37
+ // Create OpenRouter provider with custom configuration for ToolPlex backend
38
+ const provider = createOpenRouter({
39
+ apiKey: config.apiKey,
40
+ baseURL: `${baseURL}/ai`,
41
+ headers,
42
+ // Custom fetch to transform requests and intercept DONE events for usage data
43
+ fetch: async (url, init) => {
44
+ // Add provider field and session_id to request body
45
+ if (init?.body && typeof init.body === "string") {
46
+ try {
47
+ const body = JSON.parse(init.body);
48
+ // Extract session ID from headers if present
49
+ let sessionId = null;
50
+ if (init?.headers) {
51
+ if (init.headers instanceof Headers) {
52
+ sessionId = init.headers.get("x-session-id");
53
+ }
54
+ else if (Array.isArray(init.headers)) {
55
+ const sessionHeader = init.headers.find(([key]) => key.toLowerCase() === "x-session-id");
56
+ sessionId = sessionHeader ? sessionHeader[1] : null;
57
+ }
58
+ else {
59
+ sessionId =
60
+ init.headers["x-session-id"] ||
61
+ null;
62
+ }
63
+ }
64
+ logger?.debug("ToolPlex provider: Transforming request", {
65
+ hasSessionId: !!sessionId,
66
+ sessionId: sessionId ? sessionId.substring(0, 8) + "..." : null,
67
+ bodyKeys: Object.keys(body),
68
+ });
69
+ const toolplexBody = {
70
+ ...body,
71
+ provider: "openrouter",
72
+ ...(sessionId && { session_id: sessionId }),
73
+ };
74
+ init = {
75
+ ...init,
76
+ body: JSON.stringify(toolplexBody),
77
+ };
78
+ }
79
+ catch (error) {
80
+ logger?.error("Failed to transform ToolPlex request", { error });
81
+ }
82
+ }
83
+ const response = await fetch(url, init);
84
+ // Intercept SSE stream to capture usage from DONE event
85
+ if (response.body &&
86
+ response.headers.get("content-type")?.includes("text/event-stream")) {
87
+ const originalBody = response.body;
88
+ const reader = originalBody.getReader();
89
+ const decoder = new TextDecoder();
90
+ // Create a new readable stream that intercepts SSE events
91
+ const transformedStream = new ReadableStream({
92
+ async start(controller) {
93
+ let buffer = "";
94
+ try {
95
+ while (true) {
96
+ const { done, value } = await reader.read();
97
+ if (done) {
98
+ controller.close();
99
+ break;
100
+ }
101
+ // Decode chunk and add to buffer
102
+ buffer += decoder.decode(value, { stream: true });
103
+ // Process complete SSE events (separated by \n\n)
104
+ const events = buffer.split("\n\n");
105
+ buffer = events.pop() || ""; // Keep incomplete event in buffer
106
+ // Filter out DONE events and track usage
107
+ const filteredEvents = [];
108
+ for (const event of events) {
109
+ if (event.trim()) {
110
+ // Parse SSE event (format: "data: {...}")
111
+ const match = event.match(/^data: (.+)$/m);
112
+ if (match) {
113
+ try {
114
+ const data = JSON.parse(match[1]);
115
+ // Check for DONE event with usage data
116
+ if (data.done === true && data.usage) {
117
+ const sessionId = init?.headers?.["x-session-id"];
118
+ if (sessionId) {
119
+ toolplexUsageMap.set(sessionId, {
120
+ prompt_tokens: data.usage.prompt_tokens || 0,
121
+ completion_tokens: data.usage.completion_tokens || 0,
122
+ total_tokens: data.usage.total_tokens || 0,
123
+ cost: data.usage.cost,
124
+ });
125
+ }
126
+ // Skip this event to prevent AI SDK from seeing invalid chunk format
127
+ continue;
128
+ }
129
+ }
130
+ catch {
131
+ // Not JSON or different format - keep the event
132
+ }
133
+ }
134
+ }
135
+ // Keep this event
136
+ filteredEvents.push(event);
137
+ }
138
+ // Reconstruct the filtered stream
139
+ if (filteredEvents.length > 0) {
140
+ const filteredBuffer = filteredEvents.join("\n\n") + "\n\n";
141
+ controller.enqueue(Buffer.from(filteredBuffer, "utf8"));
142
+ }
143
+ }
144
+ }
145
+ catch (error) {
146
+ logger?.error("Error intercepting ToolPlex SSE stream", {
147
+ error,
148
+ });
149
+ controller.error(error);
150
+ }
151
+ },
152
+ });
153
+ // Return a new response with the transformed stream
154
+ return new Response(transformedStream, {
155
+ status: response.status,
156
+ statusText: response.statusText,
157
+ headers: response.headers,
158
+ });
159
+ }
160
+ return response;
161
+ },
162
+ });
163
+ // Return a function that creates model instances
164
+ return function (modelId) {
165
+ return provider.chat(modelId);
166
+ };
167
+ }
168
+ //# sourceMappingURL=toolplex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolplex.js","sourceRoot":"","sources":["../../src/providers/toolplex.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,218 @@
1
+ /**
2
+ * @toolplex/ai-engine - Core Type Definitions
3
+ *
4
+ * Platform-agnostic types for the AI chat engine.
5
+ * These types are used across desktop, cloud, and CLI environments.
6
+ */
7
+ import type { CoreMessage } from "ai";
8
+ /**
9
+ * Provider configuration
10
+ */
11
+ export interface ProviderConfig {
12
+ id: string;
13
+ apiKey?: string;
14
+ baseURL?: string;
15
+ timeout?: number;
16
+ maxRetries?: number;
17
+ }
18
+ /**
19
+ * Credentials passed to provider factory
20
+ */
21
+ export interface ProviderCredentials {
22
+ openaiKey?: string;
23
+ anthropicKey?: string;
24
+ googleKey?: string;
25
+ openrouterKey?: string;
26
+ deepseekKey?: string;
27
+ moonshotKey?: string;
28
+ toolplexApiKey?: string;
29
+ }
30
+ /**
31
+ * Provider interface - wraps AI SDK providers
32
+ */
33
+ export interface AIProvider {
34
+ id: string;
35
+ chat: (modelId: string) => any;
36
+ }
37
+ /**
38
+ * Model configuration flags (subset from server-side ModelConfig)
39
+ */
40
+ export interface ModelConfigFlags {
41
+ preserveEmptyContentBlocks?: boolean;
42
+ enforceMaxTokens?: boolean;
43
+ maxOutputTokens?: number;
44
+ }
45
+ /**
46
+ * File attachment structure
47
+ */
48
+ export interface FileAttachment {
49
+ name: string;
50
+ mimeType: string;
51
+ data: string;
52
+ }
53
+ /**
54
+ * Streaming options for chat requests
55
+ */
56
+ export interface StreamOptions {
57
+ streamId?: string;
58
+ sessionId: string;
59
+ modelId: string;
60
+ provider: string;
61
+ messages: CoreMessage[];
62
+ tools?: any;
63
+ temperature?: number;
64
+ maxTokens?: number;
65
+ topP?: number;
66
+ fileAttachments?: FileAttachment[];
67
+ streamingMessageId?: string;
68
+ modelConfig?: ModelConfigFlags;
69
+ }
70
+ /**
71
+ * Tool call data structure
72
+ */
73
+ export interface ToolCallData {
74
+ id: string;
75
+ type: "function";
76
+ function: {
77
+ name: string;
78
+ arguments: string;
79
+ };
80
+ }
81
+ /**
82
+ * Usage/token data structure
83
+ */
84
+ export interface UsageData {
85
+ promptTokens: number;
86
+ completionTokens: number;
87
+ totalTokens: number;
88
+ }
89
+ /**
90
+ * Stream event types
91
+ */
92
+ export type StreamEvent = {
93
+ type: "chunk";
94
+ content: string;
95
+ } | {
96
+ type: "tool_call";
97
+ toolCall: ToolCallData;
98
+ } | {
99
+ type: "complete";
100
+ fullText: string;
101
+ usage?: UsageData;
102
+ } | {
103
+ type: "error";
104
+ error: string;
105
+ };
106
+ /**
107
+ * Stream result from the engine
108
+ */
109
+ export interface StreamResult {
110
+ streamId: string;
111
+ textStream: AsyncIterable<string>;
112
+ fullStream: AsyncIterable<any>;
113
+ onFinishPromise: Promise<void>;
114
+ abort: () => Promise<void>;
115
+ }
116
+ /**
117
+ * MCP tool definition from server
118
+ */
119
+ export interface MCPTool {
120
+ name: string;
121
+ description?: string;
122
+ inputSchema?: any;
123
+ }
124
+ /**
125
+ * MCP session information
126
+ */
127
+ export interface MCPSessionInfo {
128
+ exists: boolean;
129
+ isConnected?: boolean;
130
+ serverPath?: string;
131
+ }
132
+ /**
133
+ * Result from MCP operations
134
+ */
135
+ export interface MCPResult {
136
+ success: boolean;
137
+ error?: string;
138
+ data?: any;
139
+ }
140
+ /**
141
+ * MCP tool call result
142
+ */
143
+ export interface MCPToolResult {
144
+ content: Array<{
145
+ type: string;
146
+ text?: string;
147
+ data?: any;
148
+ }>;
149
+ isError?: boolean;
150
+ }
151
+ /**
152
+ * Types of tool confirmations
153
+ */
154
+ export type ConfirmationType = "install" | "uninstall" | "missing-servers" | "save-playbook" | "submit-feedback" | "large-result";
155
+ /**
156
+ * Confirmation request from engine to adapter
157
+ */
158
+ export interface ConfirmationRequest {
159
+ type: ConfirmationType;
160
+ data: any;
161
+ }
162
+ /**
163
+ * Confirmation result from adapter
164
+ */
165
+ export interface ConfirmationResult {
166
+ allowed: boolean;
167
+ reason?: string;
168
+ action?: string;
169
+ editedConfig?: any;
170
+ wasEdited?: boolean;
171
+ }
172
+ /**
173
+ * Events emitted by the engine during streaming
174
+ */
175
+ export interface EngineEvents {
176
+ onStreamChunk: (streamId: string, chunk: string) => void;
177
+ onStreamComplete: (streamId: string, fullText: string, usage?: UsageData) => void;
178
+ onStreamError: (streamId: string, error: string) => void;
179
+ onToolInputStart: (streamId: string, toolCallId: string, toolName: string) => void;
180
+ onToolInputDelta: (streamId: string, toolCallId: string, argsDelta: string) => void;
181
+ onToolResult: (streamId: string, toolCallId: string, result: MCPToolResult, toolName: string, args: any) => void;
182
+ }
183
+ /**
184
+ * Configuration for the AI engine
185
+ */
186
+ export interface EngineConfig {
187
+ /** Maximum number of tool execution steps per request */
188
+ maxSteps?: number;
189
+ /** Whether to enable debug logging */
190
+ debug?: boolean;
191
+ /** Tools to hide from the AI agent */
192
+ hiddenTools?: string[];
193
+ /** Client version for API requests */
194
+ clientVersion?: string;
195
+ }
196
+ /**
197
+ * Chat session information
198
+ */
199
+ export interface ChatSession {
200
+ id: string;
201
+ createdAt: Date;
202
+ updatedAt: Date;
203
+ metadata?: Record<string, any>;
204
+ }
205
+ /**
206
+ * Message in a chat session
207
+ */
208
+ export interface ChatMessage {
209
+ id: string;
210
+ sessionId: string;
211
+ role: "user" | "assistant" | "system" | "tool";
212
+ content: string | any[];
213
+ toolCallId?: string;
214
+ toolCalls?: ToolCallData[];
215
+ createdAt: Date;
216
+ }
217
+ export type { CoreMessage };
218
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @toolplex/ai-engine - Core Type Definitions
3
+ *
4
+ * Platform-agnostic types for the AI chat engine.
5
+ * These types are used across desktop, cloud, and CLI environments.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @toolplex/ai-engine - Utilities
3
+ *
4
+ * Export all utility functions.
5
+ */
6
+ export * from "./schema.js";
7
+ export * from "./models.js";
8
+ //# sourceMappingURL=index.d.ts.map