@codeany/open-agent-sdk 0.2.1 → 0.2.2

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 (232) hide show
  1. package/.env.example +8 -0
  2. package/examples/01-simple-query.ts +43 -0
  3. package/examples/02-multi-tool.ts +44 -0
  4. package/examples/03-multi-turn.ts +39 -0
  5. package/examples/04-prompt-api.ts +29 -0
  6. package/examples/05-custom-system-prompt.ts +26 -0
  7. package/examples/06-mcp-server.ts +49 -0
  8. package/examples/07-custom-tools.ts +87 -0
  9. package/examples/08-official-api-compat.ts +38 -0
  10. package/examples/09-subagents.ts +48 -0
  11. package/examples/10-permissions.ts +40 -0
  12. package/examples/11-custom-mcp-tools.ts +101 -0
  13. package/examples/12-skills.ts +88 -0
  14. package/examples/13-hooks.ts +88 -0
  15. package/examples/14-openai-compat.ts +71 -0
  16. package/examples/web/index.html +365 -0
  17. package/examples/web/server.ts +157 -0
  18. package/package.json +1 -7
  19. package/src/engine.ts +3 -0
  20. package/tsconfig.json +19 -0
  21. package/dist/agent.d.ts +0 -113
  22. package/dist/agent.d.ts.map +0 -1
  23. package/dist/agent.js +0 -446
  24. package/dist/agent.js.map +0 -1
  25. package/dist/engine.d.ts +0 -62
  26. package/dist/engine.d.ts.map +0 -1
  27. package/dist/engine.js +0 -494
  28. package/dist/engine.js.map +0 -1
  29. package/dist/hooks.d.ts +0 -111
  30. package/dist/hooks.d.ts.map +0 -1
  31. package/dist/hooks.js +0 -179
  32. package/dist/hooks.js.map +0 -1
  33. package/dist/index.d.ts +0 -66
  34. package/dist/index.d.ts.map +0 -1
  35. package/dist/index.js +0 -133
  36. package/dist/index.js.map +0 -1
  37. package/dist/mcp/client.d.ts +0 -19
  38. package/dist/mcp/client.d.ts.map +0 -1
  39. package/dist/mcp/client.js +0 -126
  40. package/dist/mcp/client.js.map +0 -1
  41. package/dist/providers/anthropic.d.ts +0 -17
  42. package/dist/providers/anthropic.d.ts.map +0 -1
  43. package/dist/providers/anthropic.js +0 -47
  44. package/dist/providers/anthropic.js.map +0 -1
  45. package/dist/providers/index.d.ts +0 -20
  46. package/dist/providers/index.d.ts.map +0 -1
  47. package/dist/providers/index.js +0 -26
  48. package/dist/providers/index.js.map +0 -1
  49. package/dist/providers/openai.d.ts +0 -26
  50. package/dist/providers/openai.d.ts.map +0 -1
  51. package/dist/providers/openai.js +0 -212
  52. package/dist/providers/openai.js.map +0 -1
  53. package/dist/providers/types.d.ts +0 -84
  54. package/dist/providers/types.d.ts.map +0 -1
  55. package/dist/providers/types.js +0 -11
  56. package/dist/providers/types.js.map +0 -1
  57. package/dist/sdk-mcp-server.d.ts +0 -52
  58. package/dist/sdk-mcp-server.d.ts.map +0 -1
  59. package/dist/sdk-mcp-server.js +0 -57
  60. package/dist/sdk-mcp-server.js.map +0 -1
  61. package/dist/session.d.ts +0 -73
  62. package/dist/session.d.ts.map +0 -1
  63. package/dist/session.js +0 -159
  64. package/dist/session.js.map +0 -1
  65. package/dist/skills/bundled/commit.d.ts +0 -7
  66. package/dist/skills/bundled/commit.d.ts.map +0 -1
  67. package/dist/skills/bundled/commit.js +0 -35
  68. package/dist/skills/bundled/commit.js.map +0 -1
  69. package/dist/skills/bundled/debug.d.ts +0 -7
  70. package/dist/skills/bundled/debug.d.ts.map +0 -1
  71. package/dist/skills/bundled/debug.js +0 -46
  72. package/dist/skills/bundled/debug.js.map +0 -1
  73. package/dist/skills/bundled/index.d.ts +0 -11
  74. package/dist/skills/bundled/index.d.ts.map +0 -1
  75. package/dist/skills/bundled/index.js +0 -26
  76. package/dist/skills/bundled/index.js.map +0 -1
  77. package/dist/skills/bundled/review.d.ts +0 -7
  78. package/dist/skills/bundled/review.d.ts.map +0 -1
  79. package/dist/skills/bundled/review.js +0 -38
  80. package/dist/skills/bundled/review.js.map +0 -1
  81. package/dist/skills/bundled/simplify.d.ts +0 -8
  82. package/dist/skills/bundled/simplify.d.ts.map +0 -1
  83. package/dist/skills/bundled/simplify.js +0 -48
  84. package/dist/skills/bundled/simplify.js.map +0 -1
  85. package/dist/skills/bundled/test.d.ts +0 -7
  86. package/dist/skills/bundled/test.d.ts.map +0 -1
  87. package/dist/skills/bundled/test.js +0 -40
  88. package/dist/skills/bundled/test.js.map +0 -1
  89. package/dist/skills/index.d.ts +0 -7
  90. package/dist/skills/index.d.ts.map +0 -1
  91. package/dist/skills/index.js +0 -8
  92. package/dist/skills/index.js.map +0 -1
  93. package/dist/skills/registry.d.ts +0 -43
  94. package/dist/skills/registry.d.ts.map +0 -1
  95. package/dist/skills/registry.js +0 -111
  96. package/dist/skills/registry.js.map +0 -1
  97. package/dist/skills/types.d.ts +0 -83
  98. package/dist/skills/types.d.ts.map +0 -1
  99. package/dist/skills/types.js +0 -8
  100. package/dist/skills/types.js.map +0 -1
  101. package/dist/tool-helper.d.ts +0 -73
  102. package/dist/tool-helper.d.ts.map +0 -1
  103. package/dist/tool-helper.js +0 -86
  104. package/dist/tool-helper.js.map +0 -1
  105. package/dist/tools/agent-tool.d.ts +0 -17
  106. package/dist/tools/agent-tool.d.ts.map +0 -1
  107. package/dist/tools/agent-tool.js +0 -146
  108. package/dist/tools/agent-tool.js.map +0 -1
  109. package/dist/tools/ask-user.d.ts +0 -18
  110. package/dist/tools/ask-user.d.ts.map +0 -1
  111. package/dist/tools/ask-user.js +0 -72
  112. package/dist/tools/ask-user.js.map +0 -1
  113. package/dist/tools/bash.d.ts +0 -5
  114. package/dist/tools/bash.d.ts.map +0 -1
  115. package/dist/tools/bash.js +0 -67
  116. package/dist/tools/bash.js.map +0 -1
  117. package/dist/tools/config-tool.d.ts +0 -20
  118. package/dist/tools/config-tool.d.ts.map +0 -1
  119. package/dist/tools/config-tool.js +0 -83
  120. package/dist/tools/config-tool.js.map +0 -1
  121. package/dist/tools/cron-tools.d.ts +0 -33
  122. package/dist/tools/cron-tools.d.ts.map +0 -1
  123. package/dist/tools/cron-tools.js +0 -128
  124. package/dist/tools/cron-tools.js.map +0 -1
  125. package/dist/tools/edit.d.ts +0 -5
  126. package/dist/tools/edit.d.ts.map +0 -1
  127. package/dist/tools/edit.js +0 -70
  128. package/dist/tools/edit.js.map +0 -1
  129. package/dist/tools/glob.d.ts +0 -5
  130. package/dist/tools/glob.d.ts.map +0 -1
  131. package/dist/tools/glob.js +0 -75
  132. package/dist/tools/glob.js.map +0 -1
  133. package/dist/tools/grep.d.ts +0 -5
  134. package/dist/tools/grep.d.ts.map +0 -1
  135. package/dist/tools/grep.js +0 -168
  136. package/dist/tools/grep.js.map +0 -1
  137. package/dist/tools/index.d.ts +0 -45
  138. package/dist/tools/index.d.ts.map +0 -1
  139. package/dist/tools/index.js +0 -162
  140. package/dist/tools/index.js.map +0 -1
  141. package/dist/tools/lsp-tool.d.ts +0 -9
  142. package/dist/tools/lsp-tool.d.ts.map +0 -1
  143. package/dist/tools/lsp-tool.js +0 -137
  144. package/dist/tools/lsp-tool.js.map +0 -1
  145. package/dist/tools/mcp-resource-tools.d.ts +0 -14
  146. package/dist/tools/mcp-resource-tools.d.ts.map +0 -1
  147. package/dist/tools/mcp-resource-tools.js +0 -117
  148. package/dist/tools/mcp-resource-tools.js.map +0 -1
  149. package/dist/tools/notebook-edit.d.ts +0 -5
  150. package/dist/tools/notebook-edit.d.ts.map +0 -1
  151. package/dist/tools/notebook-edit.js +0 -85
  152. package/dist/tools/notebook-edit.js.map +0 -1
  153. package/dist/tools/plan-tools.d.ts +0 -12
  154. package/dist/tools/plan-tools.d.ts.map +0 -1
  155. package/dist/tools/plan-tools.js +0 -77
  156. package/dist/tools/plan-tools.js.map +0 -1
  157. package/dist/tools/read.d.ts +0 -5
  158. package/dist/tools/read.d.ts.map +0 -1
  159. package/dist/tools/read.js +0 -66
  160. package/dist/tools/read.js.map +0 -1
  161. package/dist/tools/send-message.d.ts +0 -31
  162. package/dist/tools/send-message.d.ts.map +0 -1
  163. package/dist/tools/send-message.js +0 -77
  164. package/dist/tools/send-message.js.map +0 -1
  165. package/dist/tools/skill-tool.d.ts +0 -9
  166. package/dist/tools/skill-tool.d.ts.map +0 -1
  167. package/dist/tools/skill-tool.js +0 -115
  168. package/dist/tools/skill-tool.js.map +0 -1
  169. package/dist/tools/task-tools.d.ts +0 -48
  170. package/dist/tools/task-tools.d.ts.map +0 -1
  171. package/dist/tools/task-tools.js +0 -242
  172. package/dist/tools/task-tools.js.map +0 -1
  173. package/dist/tools/team-tools.d.ts +0 -34
  174. package/dist/tools/team-tools.d.ts.map +0 -1
  175. package/dist/tools/team-tools.js +0 -103
  176. package/dist/tools/team-tools.js.map +0 -1
  177. package/dist/tools/todo-tool.d.ts +0 -22
  178. package/dist/tools/todo-tool.d.ts.map +0 -1
  179. package/dist/tools/todo-tool.js +0 -93
  180. package/dist/tools/todo-tool.js.map +0 -1
  181. package/dist/tools/tool-search.d.ts +0 -13
  182. package/dist/tools/tool-search.d.ts.map +0 -1
  183. package/dist/tools/tool-search.js +0 -76
  184. package/dist/tools/tool-search.js.map +0 -1
  185. package/dist/tools/types.d.ts +0 -29
  186. package/dist/tools/types.d.ts.map +0 -1
  187. package/dist/tools/types.js +0 -52
  188. package/dist/tools/types.js.map +0 -1
  189. package/dist/tools/web-fetch.d.ts +0 -5
  190. package/dist/tools/web-fetch.d.ts.map +0 -1
  191. package/dist/tools/web-fetch.js +0 -60
  192. package/dist/tools/web-fetch.js.map +0 -1
  193. package/dist/tools/web-search.d.ts +0 -5
  194. package/dist/tools/web-search.d.ts.map +0 -1
  195. package/dist/tools/web-search.js +0 -77
  196. package/dist/tools/web-search.js.map +0 -1
  197. package/dist/tools/worktree-tools.d.ts +0 -10
  198. package/dist/tools/worktree-tools.d.ts.map +0 -1
  199. package/dist/tools/worktree-tools.js +0 -130
  200. package/dist/tools/worktree-tools.js.map +0 -1
  201. package/dist/tools/write.d.ts +0 -5
  202. package/dist/tools/write.d.ts.map +0 -1
  203. package/dist/tools/write.js +0 -40
  204. package/dist/tools/write.js.map +0 -1
  205. package/dist/types.d.ts +0 -423
  206. package/dist/types.d.ts.map +0 -1
  207. package/dist/types.js +0 -5
  208. package/dist/types.js.map +0 -1
  209. package/dist/utils/compact.d.ts +0 -44
  210. package/dist/utils/compact.d.ts.map +0 -1
  211. package/dist/utils/compact.js +0 -162
  212. package/dist/utils/compact.js.map +0 -1
  213. package/dist/utils/context.d.ts +0 -35
  214. package/dist/utils/context.d.ts.map +0 -1
  215. package/dist/utils/context.js +0 -174
  216. package/dist/utils/context.js.map +0 -1
  217. package/dist/utils/fileCache.d.ts +0 -64
  218. package/dist/utils/fileCache.d.ts.map +0 -1
  219. package/dist/utils/fileCache.js +0 -117
  220. package/dist/utils/fileCache.js.map +0 -1
  221. package/dist/utils/messages.d.ts +0 -57
  222. package/dist/utils/messages.d.ts.map +0 -1
  223. package/dist/utils/messages.js +0 -152
  224. package/dist/utils/messages.js.map +0 -1
  225. package/dist/utils/retry.d.ts +0 -48
  226. package/dist/utils/retry.d.ts.map +0 -1
  227. package/dist/utils/retry.js +0 -111
  228. package/dist/utils/retry.js.map +0 -1
  229. package/dist/utils/tokens.d.ts +0 -57
  230. package/dist/utils/tokens.d.ts.map +0 -1
  231. package/dist/utils/tokens.js +0 -134
  232. package/dist/utils/tokens.js.map +0 -1
@@ -1,126 +0,0 @@
1
- /**
2
- * MCP Client - Connect to Model Context Protocol servers
3
- */
4
- /**
5
- * Connect to an MCP server and fetch its tools.
6
- */
7
- export async function connectMCPServer(name, config) {
8
- try {
9
- const { Client } = await import('@modelcontextprotocol/sdk/client/index.js');
10
- let transport;
11
- if (!config.type || config.type === 'stdio') {
12
- const stdioConfig = config;
13
- const { StdioClientTransport } = await import('@modelcontextprotocol/sdk/client/stdio.js');
14
- transport = new StdioClientTransport({
15
- command: stdioConfig.command,
16
- args: stdioConfig.args || [],
17
- env: { ...process.env, ...stdioConfig.env },
18
- });
19
- }
20
- else if (config.type === 'sse') {
21
- const sseConfig = config;
22
- const { SSEClientTransport } = await import('@modelcontextprotocol/sdk/client/sse.js');
23
- transport = new SSEClientTransport(new URL(sseConfig.url), {
24
- requestInit: sseConfig.headers ? { headers: sseConfig.headers } : undefined,
25
- });
26
- }
27
- else if (config.type === 'http') {
28
- const httpConfig = config;
29
- const { StreamableHTTPClientTransport } = await import('@modelcontextprotocol/sdk/client/streamableHttp.js');
30
- transport = new StreamableHTTPClientTransport(new URL(httpConfig.url), {
31
- requestInit: httpConfig.headers ? { headers: httpConfig.headers } : undefined,
32
- });
33
- }
34
- else {
35
- throw new Error(`Unsupported MCP transport type: ${config.type}`);
36
- }
37
- const client = new Client({ name: `agent-sdk-${name}`, version: '1.0.0' }, { capabilities: {} });
38
- await client.connect(transport);
39
- // Fetch available tools
40
- const toolList = await client.listTools();
41
- const tools = (toolList.tools || []).map((mcpTool) => createMCPToolDefinition(name, mcpTool, client));
42
- return {
43
- name,
44
- status: 'connected',
45
- tools,
46
- async close() {
47
- try {
48
- await client.close();
49
- }
50
- catch {
51
- // ignore close errors
52
- }
53
- },
54
- };
55
- }
56
- catch (err) {
57
- console.error(`[MCP] Failed to connect to "${name}": ${err.message}`);
58
- return {
59
- name,
60
- status: 'error',
61
- tools: [],
62
- async close() { },
63
- };
64
- }
65
- }
66
- /**
67
- * Create a ToolDefinition wrapping an MCP server tool.
68
- */
69
- function createMCPToolDefinition(serverName, mcpTool, client) {
70
- const toolName = `mcp__${serverName}__${mcpTool.name}`;
71
- return {
72
- name: toolName,
73
- description: mcpTool.description || `MCP tool: ${mcpTool.name} from ${serverName}`,
74
- inputSchema: mcpTool.inputSchema || { type: 'object', properties: {} },
75
- isReadOnly: () => false,
76
- isConcurrencySafe: () => false,
77
- isEnabled: () => true,
78
- async prompt() {
79
- return mcpTool.description || '';
80
- },
81
- async call(input) {
82
- try {
83
- const result = await client.callTool({
84
- name: mcpTool.name,
85
- arguments: input,
86
- });
87
- // Extract text content from MCP result
88
- let output = '';
89
- if (result.content) {
90
- for (const block of result.content) {
91
- if (block.type === 'text') {
92
- output += block.text;
93
- }
94
- else {
95
- output += JSON.stringify(block);
96
- }
97
- }
98
- }
99
- else {
100
- output = JSON.stringify(result);
101
- }
102
- return {
103
- type: 'tool_result',
104
- tool_use_id: '',
105
- content: output,
106
- is_error: result.isError || false,
107
- };
108
- }
109
- catch (err) {
110
- return {
111
- type: 'tool_result',
112
- tool_use_id: '',
113
- content: `MCP tool error: ${err.message}`,
114
- is_error: true,
115
- };
116
- }
117
- },
118
- };
119
- }
120
- /**
121
- * Close all MCP connections.
122
- */
123
- export async function closeAllConnections(connections) {
124
- await Promise.allSettled(connections.map((c) => c.close()));
125
- }
126
- //# sourceMappingURL=client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/mcp/client.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- /**
2
- * Anthropic Messages API Provider
3
- *
4
- * Wraps the @anthropic-ai/sdk client. Since our internal format is
5
- * Anthropic-like, this is mostly a thin pass-through.
6
- */
7
- import type { LLMProvider, CreateMessageParams, CreateMessageResponse } from './types.js';
8
- export declare class AnthropicProvider implements LLMProvider {
9
- readonly apiType: "anthropic-messages";
10
- private client;
11
- constructor(opts: {
12
- apiKey?: string;
13
- baseURL?: string;
14
- });
15
- createMessage(params: CreateMessageParams): Promise<CreateMessageResponse>;
16
- }
17
- //# sourceMappingURL=anthropic.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EACV,WAAW,EACX,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,YAAY,CAAA;AAEnB,qBAAa,iBAAkB,YAAW,WAAW;IACnD,QAAQ,CAAC,OAAO,EAAG,oBAAoB,CAAS;IAChD,OAAO,CAAC,MAAM,CAAW;gBAEb,IAAI,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;IAOjD,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,qBAAqB,CAAC;CAkCjF"}
@@ -1,47 +0,0 @@
1
- /**
2
- * Anthropic Messages API Provider
3
- *
4
- * Wraps the @anthropic-ai/sdk client. Since our internal format is
5
- * Anthropic-like, this is mostly a thin pass-through.
6
- */
7
- import Anthropic from '@anthropic-ai/sdk';
8
- export class AnthropicProvider {
9
- apiType = 'anthropic-messages';
10
- client;
11
- constructor(opts) {
12
- this.client = new Anthropic({
13
- apiKey: opts.apiKey,
14
- baseURL: opts.baseURL,
15
- });
16
- }
17
- async createMessage(params) {
18
- const requestParams = {
19
- model: params.model,
20
- max_tokens: params.maxTokens,
21
- system: params.system,
22
- messages: params.messages,
23
- tools: params.tools
24
- ? params.tools
25
- : undefined,
26
- };
27
- // Add extended thinking if configured
28
- if (params.thinking?.type === 'enabled' && params.thinking.budget_tokens) {
29
- requestParams.thinking = {
30
- type: 'enabled',
31
- budget_tokens: params.thinking.budget_tokens,
32
- };
33
- }
34
- const response = await this.client.messages.create(requestParams);
35
- return {
36
- content: response.content,
37
- stopReason: response.stop_reason || 'end_turn',
38
- usage: {
39
- input_tokens: response.usage.input_tokens,
40
- output_tokens: response.usage.output_tokens,
41
- cache_creation_input_tokens: response.usage.cache_creation_input_tokens,
42
- cache_read_input_tokens: response.usage.cache_read_input_tokens,
43
- },
44
- };
45
- }
46
- }
47
- //# sourceMappingURL=anthropic.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,SAAS,MAAM,mBAAmB,CAAA;AAOzC,MAAM,OAAO,iBAAiB;IACnB,OAAO,GAAG,oBAA6B,CAAA;IACxC,MAAM,CAAW;IAEzB,YAAY,IAA2C;QACrD,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC;YAC1B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAA2B;QAC7C,MAAM,aAAa,GAA8C;YAC/D,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,UAAU,EAAE,MAAM,CAAC,SAAS;YAC5B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,MAAM,CAAC,QAAoC;YACrD,KAAK,EAAE,MAAM,CAAC,KAAK;gBACjB,CAAC,CAAE,MAAM,CAAC,KAA0B;gBACpC,CAAC,CAAC,SAAS;SACd,CAAA;QAED,sCAAsC;QACtC,IAAI,MAAM,CAAC,QAAQ,EAAE,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;YACxE,aAAqB,CAAC,QAAQ,GAAG;gBAChC,IAAI,EAAE,SAAS;gBACf,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,aAAa;aAC7C,CAAA;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;QAEjE,OAAO;YACL,OAAO,EAAE,QAAQ,CAAC,OAA2C;YAC7D,UAAU,EAAE,QAAQ,CAAC,WAAW,IAAI,UAAU;YAC9C,KAAK,EAAE;gBACL,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY;gBACzC,aAAa,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa;gBAC3C,2BAA2B,EACxB,QAAQ,CAAC,KAAa,CAAC,2BAA2B;gBACrD,uBAAuB,EACpB,QAAQ,CAAC,KAAa,CAAC,uBAAuB;aAClD;SACF,CAAA;IACH,CAAC;CACF"}
@@ -1,20 +0,0 @@
1
- /**
2
- * LLM Provider Factory
3
- *
4
- * Creates the appropriate provider based on API type configuration.
5
- */
6
- export type { ApiType, LLMProvider, CreateMessageParams, CreateMessageResponse, NormalizedMessageParam, NormalizedContentBlock, NormalizedTool, NormalizedResponseBlock } from './types.js';
7
- export { AnthropicProvider } from './anthropic.js';
8
- export { OpenAIProvider } from './openai.js';
9
- import type { ApiType, LLMProvider } from './types.js';
10
- /**
11
- * Create an LLM provider based on the API type.
12
- *
13
- * @param apiType - 'anthropic-messages' or 'openai-completions'
14
- * @param opts - API credentials
15
- */
16
- export declare function createProvider(apiType: ApiType, opts: {
17
- apiKey?: string;
18
- baseURL?: string;
19
- }): LLMProvider;
20
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAE3L,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAItD;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1C,WAAW,CASb"}
@@ -1,26 +0,0 @@
1
- /**
2
- * LLM Provider Factory
3
- *
4
- * Creates the appropriate provider based on API type configuration.
5
- */
6
- export { AnthropicProvider } from './anthropic.js';
7
- export { OpenAIProvider } from './openai.js';
8
- import { AnthropicProvider } from './anthropic.js';
9
- import { OpenAIProvider } from './openai.js';
10
- /**
11
- * Create an LLM provider based on the API type.
12
- *
13
- * @param apiType - 'anthropic-messages' or 'openai-completions'
14
- * @param opts - API credentials
15
- */
16
- export function createProvider(apiType, opts) {
17
- switch (apiType) {
18
- case 'anthropic-messages':
19
- return new AnthropicProvider(opts);
20
- case 'openai-completions':
21
- return new OpenAIProvider(opts);
22
- default:
23
- throw new Error(`Unsupported API type: ${apiType}. Use 'anthropic-messages' or 'openai-completions'.`);
24
- }
25
- }
26
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAG5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAgB,EAChB,IAA2C;IAE3C,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,oBAAoB;YACvB,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAA;QACpC,KAAK,oBAAoB;YACvB,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,CAAA;QACjC;YACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,OAAO,qDAAqD,CAAC,CAAA;IAC1G,CAAC;AACH,CAAC"}
@@ -1,26 +0,0 @@
1
- /**
2
- * OpenAI Chat Completions API Provider
3
- *
4
- * Converts between the SDK's internal Anthropic-like message format
5
- * and OpenAI's Chat Completions API format.
6
- *
7
- * Uses native fetch (no openai SDK dependency required).
8
- */
9
- import type { LLMProvider, CreateMessageParams, CreateMessageResponse } from './types.js';
10
- export declare class OpenAIProvider implements LLMProvider {
11
- readonly apiType: "openai-completions";
12
- private apiKey;
13
- private baseURL;
14
- constructor(opts: {
15
- apiKey?: string;
16
- baseURL?: string;
17
- });
18
- createMessage(params: CreateMessageParams): Promise<CreateMessageResponse>;
19
- private convertMessages;
20
- private convertUserMessage;
21
- private convertAssistantMessage;
22
- private convertTools;
23
- private convertResponse;
24
- private mapFinishReason;
25
- }
26
- //# sourceMappingURL=openai.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,mBAAmB,EACnB,qBAAqB,EAKtB,MAAM,YAAY,CAAA;AAqDnB,qBAAa,cAAe,YAAW,WAAW;IAChD,QAAQ,CAAC,OAAO,EAAG,oBAAoB,CAAS;IAChD,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,OAAO,CAAQ;gBAEX,IAAI,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;IAKjD,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IA4ChF,OAAO,CAAC,eAAe;IAsBvB,OAAO,CAAC,kBAAkB;IAuC1B,OAAO,CAAC,uBAAuB;IA8C/B,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,eAAe;IAsDvB,OAAO,CAAC,eAAe;CAcxB"}
@@ -1,212 +0,0 @@
1
- /**
2
- * OpenAI Chat Completions API Provider
3
- *
4
- * Converts between the SDK's internal Anthropic-like message format
5
- * and OpenAI's Chat Completions API format.
6
- *
7
- * Uses native fetch (no openai SDK dependency required).
8
- */
9
- // --------------------------------------------------------------------------
10
- // Provider
11
- // --------------------------------------------------------------------------
12
- export class OpenAIProvider {
13
- apiType = 'openai-completions';
14
- apiKey;
15
- baseURL;
16
- constructor(opts) {
17
- this.apiKey = opts.apiKey || '';
18
- this.baseURL = (opts.baseURL || 'https://api.openai.com/v1').replace(/\/$/, '');
19
- }
20
- async createMessage(params) {
21
- // Convert to OpenAI format
22
- const messages = this.convertMessages(params.system, params.messages);
23
- const tools = params.tools ? this.convertTools(params.tools) : undefined;
24
- const body = {
25
- model: params.model,
26
- max_tokens: params.maxTokens,
27
- messages,
28
- };
29
- if (tools && tools.length > 0) {
30
- body.tools = tools;
31
- }
32
- // Make API call
33
- const response = await fetch(`${this.baseURL}/chat/completions`, {
34
- method: 'POST',
35
- headers: {
36
- 'Content-Type': 'application/json',
37
- Authorization: `Bearer ${this.apiKey}`,
38
- },
39
- body: JSON.stringify(body),
40
- });
41
- if (!response.ok) {
42
- const errBody = await response.text().catch(() => '');
43
- const err = new Error(`OpenAI API error: ${response.status} ${response.statusText}: ${errBody}`);
44
- err.status = response.status;
45
- throw err;
46
- }
47
- const data = (await response.json());
48
- // Convert response back to normalized format
49
- return this.convertResponse(data);
50
- }
51
- // --------------------------------------------------------------------------
52
- // Message Conversion: Internal → OpenAI
53
- // --------------------------------------------------------------------------
54
- convertMessages(system, messages) {
55
- const result = [];
56
- // System prompt as first message
57
- if (system) {
58
- result.push({ role: 'system', content: system });
59
- }
60
- for (const msg of messages) {
61
- if (msg.role === 'user') {
62
- this.convertUserMessage(msg, result);
63
- }
64
- else if (msg.role === 'assistant') {
65
- this.convertAssistantMessage(msg, result);
66
- }
67
- }
68
- return result;
69
- }
70
- convertUserMessage(msg, result) {
71
- if (typeof msg.content === 'string') {
72
- result.push({ role: 'user', content: msg.content });
73
- return;
74
- }
75
- // Content blocks may contain text and/or tool_result blocks
76
- const textParts = [];
77
- const toolResults = [];
78
- for (const block of msg.content) {
79
- if (block.type === 'text') {
80
- textParts.push(block.text);
81
- }
82
- else if (block.type === 'tool_result') {
83
- toolResults.push({
84
- tool_use_id: block.tool_use_id,
85
- content: block.content,
86
- });
87
- }
88
- }
89
- // Tool results become separate tool messages
90
- for (const tr of toolResults) {
91
- result.push({
92
- role: 'tool',
93
- tool_call_id: tr.tool_use_id,
94
- content: tr.content,
95
- });
96
- }
97
- // Text parts become a user message
98
- if (textParts.length > 0) {
99
- result.push({ role: 'user', content: textParts.join('\n') });
100
- }
101
- }
102
- convertAssistantMessage(msg, result) {
103
- if (typeof msg.content === 'string') {
104
- result.push({ role: 'assistant', content: msg.content });
105
- return;
106
- }
107
- // Extract text and tool_use blocks
108
- const textParts = [];
109
- const toolCalls = [];
110
- for (const block of msg.content) {
111
- if (block.type === 'text') {
112
- textParts.push(block.text);
113
- }
114
- else if (block.type === 'tool_use') {
115
- toolCalls.push({
116
- id: block.id,
117
- type: 'function',
118
- function: {
119
- name: block.name,
120
- arguments: typeof block.input === 'string'
121
- ? block.input
122
- : JSON.stringify(block.input),
123
- },
124
- });
125
- }
126
- }
127
- const assistantMsg = {
128
- role: 'assistant',
129
- content: textParts.length > 0 ? textParts.join('\n') : null,
130
- };
131
- if (toolCalls.length > 0) {
132
- assistantMsg.tool_calls = toolCalls;
133
- }
134
- result.push(assistantMsg);
135
- }
136
- // --------------------------------------------------------------------------
137
- // Tool Conversion: Internal → OpenAI
138
- // --------------------------------------------------------------------------
139
- convertTools(tools) {
140
- return tools.map((t) => ({
141
- type: 'function',
142
- function: {
143
- name: t.name,
144
- description: t.description,
145
- parameters: t.input_schema,
146
- },
147
- }));
148
- }
149
- // --------------------------------------------------------------------------
150
- // Response Conversion: OpenAI → Internal
151
- // --------------------------------------------------------------------------
152
- convertResponse(data) {
153
- const choice = data.choices[0];
154
- if (!choice) {
155
- return {
156
- content: [{ type: 'text', text: '' }],
157
- stopReason: 'end_turn',
158
- usage: { input_tokens: 0, output_tokens: 0 },
159
- };
160
- }
161
- const content = [];
162
- // Add text content
163
- if (choice.message.content) {
164
- content.push({ type: 'text', text: choice.message.content });
165
- }
166
- // Add tool calls
167
- if (choice.message.tool_calls) {
168
- for (const tc of choice.message.tool_calls) {
169
- let input;
170
- try {
171
- input = JSON.parse(tc.function.arguments);
172
- }
173
- catch {
174
- input = tc.function.arguments;
175
- }
176
- content.push({
177
- type: 'tool_use',
178
- id: tc.id,
179
- name: tc.function.name,
180
- input,
181
- });
182
- }
183
- }
184
- // If no content at all, add empty text
185
- if (content.length === 0) {
186
- content.push({ type: 'text', text: '' });
187
- }
188
- // Map finish_reason to our normalized stop reasons
189
- const stopReason = this.mapFinishReason(choice.finish_reason);
190
- return {
191
- content,
192
- stopReason,
193
- usage: {
194
- input_tokens: data.usage?.prompt_tokens || 0,
195
- output_tokens: data.usage?.completion_tokens || 0,
196
- },
197
- };
198
- }
199
- mapFinishReason(reason) {
200
- switch (reason) {
201
- case 'stop':
202
- return 'end_turn';
203
- case 'length':
204
- return 'max_tokens';
205
- case 'tool_calls':
206
- return 'tool_use';
207
- default:
208
- return reason;
209
- }
210
- }
211
- }
212
- //# sourceMappingURL=openai.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA2DH,6EAA6E;AAC7E,WAAW;AACX,6EAA6E;AAE7E,MAAM,OAAO,cAAc;IAChB,OAAO,GAAG,oBAA6B,CAAA;IACxC,MAAM,CAAQ;IACd,OAAO,CAAQ;IAEvB,YAAY,IAA2C;QACrD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAA;QAC/B,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,2BAA2B,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IACjF,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAA2B;QAC7C,2BAA2B;QAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;QACrE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAExE,MAAM,IAAI,GAAwB;YAChC,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,UAAU,EAAE,MAAM,CAAC,SAAS;YAC5B,QAAQ;SACT,CAAA;QAED,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QACpB,CAAC;QAED,gBAAgB;QAChB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,mBAAmB,EAAE;YAC/D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;aACvC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAA;QAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;YACrD,MAAM,GAAG,GAAQ,IAAI,KAAK,CACxB,qBAAqB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,KAAK,OAAO,EAAE,CAC1E,CAAA;YACD,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAA;YAC5B,MAAM,GAAG,CAAA;QACX,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAuB,CAAA;QAE1D,6CAA6C;QAC7C,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;IACnC,CAAC;IAED,6EAA6E;IAC7E,wCAAwC;IACxC,6EAA6E;IAErE,eAAe,CACrB,MAAc,EACd,QAAkC;QAElC,MAAM,MAAM,GAAwB,EAAE,CAAA;QAEtC,iCAAiC;QACjC,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;QAClD,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACxB,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;YACtC,CAAC;iBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBACpC,IAAI,CAAC,uBAAuB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;YAC3C,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;IAEO,kBAAkB,CACxB,GAA2B,EAC3B,MAA2B;QAE3B,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;YACnD,OAAM;QACR,CAAC;QAED,4DAA4D;QAC5D,MAAM,SAAS,GAAa,EAAE,CAAA;QAC9B,MAAM,WAAW,GAAoD,EAAE,CAAA;QAEvE,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC1B,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAC5B,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;gBACxC,WAAW,CAAC,IAAI,CAAC;oBACf,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,OAAO,EAAE,KAAK,CAAC,OAAO;iBACvB,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QAED,6CAA6C;QAC7C,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,MAAM;gBACZ,YAAY,EAAE,EAAE,CAAC,WAAW;gBAC5B,OAAO,EAAE,EAAE,CAAC,OAAO;aACpB,CAAC,CAAA;QACJ,CAAC;QAED,mCAAmC;QACnC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC9D,CAAC;IACH,CAAC;IAEO,uBAAuB,CAC7B,GAA2B,EAC3B,MAA2B;QAE3B,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;YACxD,OAAM;QACR,CAAC;QAED,mCAAmC;QACnC,MAAM,SAAS,GAAa,EAAE,CAAA;QAC9B,MAAM,SAAS,GAAqB,EAAE,CAAA;QAEtC,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC1B,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAC5B,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBACrC,SAAS,CAAC,IAAI,CAAC;oBACb,EAAE,EAAE,KAAK,CAAC,EAAE;oBACZ,IAAI,EAAE,UAAU;oBAChB,QAAQ,EAAE;wBACR,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,SAAS,EAAE,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;4BACxC,CAAC,CAAC,KAAK,CAAC,KAAK;4BACb,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC;qBAChC;iBACF,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QAED,MAAM,YAAY,GAAsB;YACtC,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;SAC5D,CAAA;QAED,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,YAAY,CAAC,UAAU,GAAG,SAAS,CAAA;QACrC,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IAC3B,CAAC;IAED,6EAA6E;IAC7E,qCAAqC;IACrC,6EAA6E;IAErE,YAAY,CAAC,KAAuB;QAC1C,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvB,IAAI,EAAE,UAAmB;YACzB,QAAQ,EAAE;gBACR,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,UAAU,EAAE,CAAC,CAAC,YAAY;aAC3B;SACF,CAAC,CAAC,CAAA;IACL,CAAC;IAED,6EAA6E;IAC7E,yCAAyC;IACzC,6EAA6E;IAErE,eAAe,CAAC,IAAwB;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;gBACrC,UAAU,EAAE,UAAU;gBACtB,KAAK,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE;aAC7C,CAAA;QACH,CAAC;QAED,MAAM,OAAO,GAA8B,EAAE,CAAA;QAE7C,mBAAmB;QACnB,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;QAC9D,CAAC;QAED,iBAAiB;QACjB,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YAC9B,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBAC3C,IAAI,KAAU,CAAA;gBACd,IAAI,CAAC;oBACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;gBAC3C,CAAC;gBAAC,MAAM,CAAC;oBACP,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAA;gBAC/B,CAAC;gBAED,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,UAAU;oBAChB,EAAE,EAAE,EAAE,CAAC,EAAE;oBACT,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI;oBACtB,KAAK;iBACN,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QAED,uCAAuC;QACvC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA;QAC1C,CAAC;QAED,mDAAmD;QACnD,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;QAE7D,OAAO;YACL,OAAO;YACP,UAAU;YACV,KAAK,EAAE;gBACL,YAAY,EAAE,IAAI,CAAC,KAAK,EAAE,aAAa,IAAI,CAAC;gBAC5C,aAAa,EAAE,IAAI,CAAC,KAAK,EAAE,iBAAiB,IAAI,CAAC;aAClD;SACF,CAAA;IACH,CAAC;IAEO,eAAe,CACrB,MAAc;QAEd,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,MAAM;gBACT,OAAO,UAAU,CAAA;YACnB,KAAK,QAAQ;gBACX,OAAO,YAAY,CAAA;YACrB,KAAK,YAAY;gBACf,OAAO,UAAU,CAAA;YACnB;gBACE,OAAO,MAAM,CAAA;QACjB,CAAC;IACH,CAAC;CACF"}
@@ -1,84 +0,0 @@
1
- /**
2
- * LLM Provider Abstraction Types
3
- *
4
- * Defines a provider interface that normalizes API differences between
5
- * Anthropic Messages API and OpenAI Chat Completions API.
6
- *
7
- * Internally the SDK uses Anthropic-like message format as the canonical
8
- * representation. Providers convert to/from their native API format.
9
- */
10
- export type ApiType = 'anthropic-messages' | 'openai-completions';
11
- export interface CreateMessageParams {
12
- model: string;
13
- maxTokens: number;
14
- system: string;
15
- messages: NormalizedMessageParam[];
16
- tools?: NormalizedTool[];
17
- thinking?: {
18
- type: string;
19
- budget_tokens?: number;
20
- };
21
- }
22
- /**
23
- * Normalized message format (Anthropic-like).
24
- * This is the internal representation used throughout the SDK.
25
- */
26
- export interface NormalizedMessageParam {
27
- role: 'user' | 'assistant';
28
- content: string | NormalizedContentBlock[];
29
- }
30
- export type NormalizedContentBlock = {
31
- type: 'text';
32
- text: string;
33
- } | {
34
- type: 'tool_use';
35
- id: string;
36
- name: string;
37
- input: any;
38
- } | {
39
- type: 'tool_result';
40
- tool_use_id: string;
41
- content: string;
42
- is_error?: boolean;
43
- } | {
44
- type: 'image';
45
- source: any;
46
- } | {
47
- type: 'thinking';
48
- thinking: string;
49
- };
50
- export interface NormalizedTool {
51
- name: string;
52
- description: string;
53
- input_schema: {
54
- type: 'object';
55
- properties: Record<string, any>;
56
- required?: string[];
57
- };
58
- }
59
- export interface CreateMessageResponse {
60
- content: NormalizedResponseBlock[];
61
- stopReason: 'end_turn' | 'max_tokens' | 'tool_use' | string;
62
- usage: {
63
- input_tokens: number;
64
- output_tokens: number;
65
- cache_creation_input_tokens?: number;
66
- cache_read_input_tokens?: number;
67
- };
68
- }
69
- export type NormalizedResponseBlock = {
70
- type: 'text';
71
- text: string;
72
- } | {
73
- type: 'tool_use';
74
- id: string;
75
- name: string;
76
- input: any;
77
- };
78
- export interface LLMProvider {
79
- /** The API type this provider implements. */
80
- readonly apiType: ApiType;
81
- /** Send a message and get a response. */
82
- createMessage(params: CreateMessageParams): Promise<CreateMessageResponse>;
83
- }
84
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/providers/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,MAAM,MAAM,OAAO,GAAG,oBAAoB,GAAG,oBAAoB,CAAA;AAMjE,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,sBAAsB,EAAE,CAAA;IAClC,KAAK,CAAC,EAAE,cAAc,EAAE,CAAA;IACxB,QAAQ,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CACpD;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAA;IAC1B,OAAO,EAAE,MAAM,GAAG,sBAAsB,EAAE,CAAA;CAC3C;AAED,MAAM,MAAM,sBAAsB,GAC9B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,GAAG,CAAA;CAAE,GAC1D;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GACjF;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,GAAG,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAA;AAE1C,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE;QACZ,IAAI,EAAE,QAAQ,CAAA;QACd,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QAC/B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KACpB,CAAA;CACF;AAMD,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,uBAAuB,EAAE,CAAA;IAClC,UAAU,EAAE,UAAU,GAAG,YAAY,GAAG,UAAU,GAAG,MAAM,CAAA;IAC3D,KAAK,EAAE;QACL,YAAY,EAAE,MAAM,CAAA;QACpB,aAAa,EAAE,MAAM,CAAA;QACrB,2BAA2B,CAAC,EAAE,MAAM,CAAA;QACpC,uBAAuB,CAAC,EAAE,MAAM,CAAA;KACjC,CAAA;CACF;AAED,MAAM,MAAM,uBAAuB,GAC/B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,GAAG,CAAA;CAAE,CAAA;AAM9D,MAAM,WAAW,WAAW;IAC1B,6CAA6C;IAC7C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IAEzB,yCAAyC;IACzC,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAA;CAC3E"}
@@ -1,11 +0,0 @@
1
- /**
2
- * LLM Provider Abstraction Types
3
- *
4
- * Defines a provider interface that normalizes API differences between
5
- * Anthropic Messages API and OpenAI Chat Completions API.
6
- *
7
- * Internally the SDK uses Anthropic-like message format as the canonical
8
- * representation. Providers convert to/from their native API format.
9
- */
10
- export {};
11
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/providers/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}