ai.matey.backend 0.2.3 → 0.5.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 (108) hide show
  1. package/CHANGELOG.md +81 -0
  2. package/dist/cjs/index.js +3 -0
  3. package/dist/cjs/index.js.map +1 -1
  4. package/dist/cjs/providers/ai21.js +24 -1
  5. package/dist/cjs/providers/ai21.js.map +1 -1
  6. package/dist/cjs/providers/anthropic.js +76 -95
  7. package/dist/cjs/providers/anthropic.js.map +1 -1
  8. package/dist/cjs/providers/cohere.js +161 -1
  9. package/dist/cjs/providers/cohere.js.map +1 -1
  10. package/dist/cjs/providers/deepinfra.js +16 -0
  11. package/dist/cjs/providers/deepinfra.js.map +1 -1
  12. package/dist/cjs/providers/deepseek.js +10 -4
  13. package/dist/cjs/providers/deepseek.js.map +1 -1
  14. package/dist/cjs/providers/fireworks.js +16 -0
  15. package/dist/cjs/providers/fireworks.js.map +1 -1
  16. package/dist/cjs/providers/gemini.js +155 -4
  17. package/dist/cjs/providers/gemini.js.map +1 -1
  18. package/dist/cjs/providers/groq.js +1 -0
  19. package/dist/cjs/providers/groq.js.map +1 -1
  20. package/dist/cjs/providers/inception.js +155 -0
  21. package/dist/cjs/providers/inception.js.map +1 -0
  22. package/dist/cjs/providers/mistral.js +97 -3
  23. package/dist/cjs/providers/mistral.js.map +1 -1
  24. package/dist/cjs/providers/moonshot.js +157 -0
  25. package/dist/cjs/providers/moonshot.js.map +1 -0
  26. package/dist/cjs/providers/ollama.js +111 -0
  27. package/dist/cjs/providers/ollama.js.map +1 -1
  28. package/dist/cjs/providers/openai.js +218 -87
  29. package/dist/cjs/providers/openai.js.map +1 -1
  30. package/dist/cjs/providers/sambanova.js +161 -0
  31. package/dist/cjs/providers/sambanova.js.map +1 -0
  32. package/dist/cjs/providers/together-ai.js +16 -0
  33. package/dist/cjs/providers/together-ai.js.map +1 -1
  34. package/dist/cjs/providers/xai.js +1 -1
  35. package/dist/cjs/providers/xai.js.map +1 -1
  36. package/dist/cjs/shared.js +432 -9
  37. package/dist/cjs/shared.js.map +1 -1
  38. package/dist/esm/index.js +3 -0
  39. package/dist/esm/index.js.map +1 -1
  40. package/dist/esm/providers/ai21.js +24 -1
  41. package/dist/esm/providers/ai21.js.map +1 -1
  42. package/dist/esm/providers/anthropic.js +76 -95
  43. package/dist/esm/providers/anthropic.js.map +1 -1
  44. package/dist/esm/providers/cohere.js +162 -2
  45. package/dist/esm/providers/cohere.js.map +1 -1
  46. package/dist/esm/providers/deepinfra.js +16 -0
  47. package/dist/esm/providers/deepinfra.js.map +1 -1
  48. package/dist/esm/providers/deepseek.js +10 -4
  49. package/dist/esm/providers/deepseek.js.map +1 -1
  50. package/dist/esm/providers/fireworks.js +16 -0
  51. package/dist/esm/providers/fireworks.js.map +1 -1
  52. package/dist/esm/providers/gemini.js +153 -2
  53. package/dist/esm/providers/gemini.js.map +1 -1
  54. package/dist/esm/providers/groq.js +1 -0
  55. package/dist/esm/providers/groq.js.map +1 -1
  56. package/dist/esm/providers/inception.js +150 -0
  57. package/dist/esm/providers/inception.js.map +1 -0
  58. package/dist/esm/providers/mistral.js +95 -1
  59. package/dist/esm/providers/mistral.js.map +1 -1
  60. package/dist/esm/providers/moonshot.js +152 -0
  61. package/dist/esm/providers/moonshot.js.map +1 -0
  62. package/dist/esm/providers/ollama.js +111 -0
  63. package/dist/esm/providers/ollama.js.map +1 -1
  64. package/dist/esm/providers/openai.js +219 -88
  65. package/dist/esm/providers/openai.js.map +1 -1
  66. package/dist/esm/providers/sambanova.js +156 -0
  67. package/dist/esm/providers/sambanova.js.map +1 -0
  68. package/dist/esm/providers/together-ai.js +16 -0
  69. package/dist/esm/providers/together-ai.js.map +1 -1
  70. package/dist/esm/providers/xai.js +1 -1
  71. package/dist/esm/providers/xai.js.map +1 -1
  72. package/dist/esm/shared.js +428 -8
  73. package/dist/esm/shared.js.map +1 -1
  74. package/dist/types/index.d.ts +3 -0
  75. package/dist/types/index.d.ts.map +1 -1
  76. package/dist/types/providers/ai21.d.ts +9 -0
  77. package/dist/types/providers/ai21.d.ts.map +1 -1
  78. package/dist/types/providers/anthropic.d.ts +19 -0
  79. package/dist/types/providers/anthropic.d.ts.map +1 -1
  80. package/dist/types/providers/cohere.d.ts +34 -1
  81. package/dist/types/providers/cohere.d.ts.map +1 -1
  82. package/dist/types/providers/deepinfra.d.ts +5 -0
  83. package/dist/types/providers/deepinfra.d.ts.map +1 -1
  84. package/dist/types/providers/deepseek.d.ts +1 -1
  85. package/dist/types/providers/deepseek.d.ts.map +1 -1
  86. package/dist/types/providers/fireworks.d.ts +5 -0
  87. package/dist/types/providers/fireworks.d.ts.map +1 -1
  88. package/dist/types/providers/gemini.d.ts +22 -0
  89. package/dist/types/providers/gemini.d.ts.map +1 -1
  90. package/dist/types/providers/groq.d.ts.map +1 -1
  91. package/dist/types/providers/inception.d.ts +83 -0
  92. package/dist/types/providers/inception.d.ts.map +1 -0
  93. package/dist/types/providers/mistral.d.ts +13 -0
  94. package/dist/types/providers/mistral.d.ts.map +1 -1
  95. package/dist/types/providers/moonshot.d.ts +83 -0
  96. package/dist/types/providers/moonshot.d.ts.map +1 -0
  97. package/dist/types/providers/ollama.d.ts +25 -1
  98. package/dist/types/providers/ollama.d.ts.map +1 -1
  99. package/dist/types/providers/openai.d.ts +41 -1
  100. package/dist/types/providers/openai.d.ts.map +1 -1
  101. package/dist/types/providers/sambanova.d.ts +84 -0
  102. package/dist/types/providers/sambanova.d.ts.map +1 -0
  103. package/dist/types/providers/together-ai.d.ts +5 -0
  104. package/dist/types/providers/together-ai.d.ts.map +1 -1
  105. package/dist/types/shared.d.ts +68 -1
  106. package/dist/types/shared.d.ts.map +1 -1
  107. package/package.json +31 -1
  108. package/readme.md +4 -1
@@ -0,0 +1,150 @@
1
+ /**
2
+ * Inception Labs (Mercury) Backend Adapter
3
+ *
4
+ * Adapts Universal IR to Inception Labs API (OpenAI-compatible).
5
+ * Inception Labs offers Mercury, a text diffusion language model with fast generation speeds.
6
+ *
7
+ * @module
8
+ */
9
+ import { OpenAIBackendAdapter } from './openai.js';
10
+ /**
11
+ * Backend adapter for Inception Labs (Mercury) API.
12
+ *
13
+ * Inception Labs provides Mercury, a text diffusion LLM designed for high-speed
14
+ * code generation and text tasks. The API is OpenAI-compatible.
15
+ *
16
+ * @example Basic Usage
17
+ * ```typescript
18
+ * import { InceptionBackendAdapter } from 'ai.matey';
19
+ *
20
+ * const adapter = new InceptionBackendAdapter({
21
+ * apiKey: process.env.INCEPTION_API_KEY,
22
+ * });
23
+ * ```
24
+ *
25
+ * @example With Coding Model
26
+ * ```typescript
27
+ * const adapter = new InceptionBackendAdapter({
28
+ * apiKey: process.env.INCEPTION_API_KEY,
29
+ * });
30
+ *
31
+ * const response = await adapter.execute({
32
+ * messages: [{ role: 'user', content: 'Write a function to reverse a string in Python.' }],
33
+ * parameters: {
34
+ * model: 'mercury-coder-small', // Fast coding model
35
+ * },
36
+ * });
37
+ * ```
38
+ *
39
+ * @example Streaming
40
+ * ```typescript
41
+ * const stream = adapter.executeStream({
42
+ * messages: [{ role: 'user', content: 'Explain recursion.' }],
43
+ * parameters: {
44
+ * model: 'mercury-coder',
45
+ * },
46
+ * });
47
+ *
48
+ * for await (const chunk of stream) {
49
+ * if (chunk.type === 'content') {
50
+ * process.stdout.write(chunk.delta);
51
+ * }
52
+ * }
53
+ * ```
54
+ */
55
+ export class InceptionBackendAdapter extends OpenAIBackendAdapter {
56
+ constructor(config) {
57
+ const inceptionConfig = {
58
+ ...config,
59
+ baseURL: config.baseURL || 'https://api.inceptionlabs.ai/v1',
60
+ defaultModel: config.defaultModel || 'mercury-coder-small',
61
+ };
62
+ super(inceptionConfig, {
63
+ name: 'inception-backend',
64
+ version: '1.0.0',
65
+ provider: 'Inception Labs',
66
+ capabilities: {
67
+ // No verified embeddings endpoint; opt out of the inherited embed()
68
+ embeddings: false,
69
+ streaming: true,
70
+ multiModal: false,
71
+ tools: false,
72
+ maxContextTokens: 32768,
73
+ systemMessageStrategy: 'in-messages',
74
+ supportsMultipleSystemMessages: false,
75
+ supportsTemperature: true,
76
+ supportsTopP: true,
77
+ supportsTopK: false,
78
+ supportsSeed: false,
79
+ supportsFrequencyPenalty: false,
80
+ supportsPresencePenalty: false,
81
+ maxStopSequences: 4,
82
+ },
83
+ config: {
84
+ baseURL: inceptionConfig.baseURL,
85
+ },
86
+ });
87
+ }
88
+ /**
89
+ * Health check for Inception Labs API.
90
+ */
91
+ async healthCheck() {
92
+ try {
93
+ const response = await fetch(`${this.baseURL}/models`, {
94
+ method: 'GET',
95
+ headers: {
96
+ 'Content-Type': 'application/json',
97
+ Authorization: `Bearer ${this.config.apiKey}`,
98
+ ...this.config.headers,
99
+ },
100
+ signal: AbortSignal.timeout(5000),
101
+ });
102
+ return response.ok;
103
+ }
104
+ catch {
105
+ return false;
106
+ }
107
+ }
108
+ /**
109
+ * Estimate cost for Inception Labs.
110
+ */
111
+ // eslint-disable-next-line @typescript-eslint/require-await -- BackendAdapter interface is async
112
+ async estimateCost(request) {
113
+ const pricing = {
114
+ 'mercury-coder-small': { input: 0.25, output: 1.0 },
115
+ 'mercury-coder': { input: 1.0, output: 5.0 },
116
+ };
117
+ const model = request.parameters?.model || this.config.defaultModel || '';
118
+ const modelPricing = pricing[model];
119
+ if (!modelPricing) {
120
+ return null;
121
+ }
122
+ const inputTokens = request.messages.reduce((sum, msg) => {
123
+ const content = typeof msg.content === 'string' ? msg.content : '';
124
+ return sum + Math.ceil(content.length / 4);
125
+ }, 0);
126
+ const outputTokens = request.parameters?.maxTokens || 1024;
127
+ const inputCost = (inputTokens / 1_000_000) * modelPricing.input;
128
+ const outputCost = (outputTokens / 1_000_000) * modelPricing.output;
129
+ return inputCost + outputCost;
130
+ }
131
+ }
132
+ /**
133
+ * Create an Inception Labs backend adapter.
134
+ *
135
+ * @param config - Adapter configuration
136
+ * @returns Inception Labs backend adapter
137
+ *
138
+ * @example
139
+ * ```typescript
140
+ * import { createInceptionAdapter } from 'ai.matey';
141
+ *
142
+ * const adapter = createInceptionAdapter({
143
+ * apiKey: process.env.INCEPTION_API_KEY,
144
+ * });
145
+ * ```
146
+ */
147
+ export function createInceptionAdapter(config) {
148
+ return new InceptionBackendAdapter(config);
149
+ }
150
+ //# sourceMappingURL=inception.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inception.js","sourceRoot":"","sources":["../../../src/providers/inception.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,9 @@
8
8
  */
9
9
  import { AdapterConversionError, NetworkError, ProviderError, StreamError, ErrorCode, createErrorFromHttpResponse, } from 'ai.matey.errors';
10
10
  import { normalizeSystemMessages } from 'ai.matey.utils';
11
+ import { getModelCache } from 'ai.matey.utils';
11
12
  import { getEffectiveStreamMode, mergeStreamingConfig } from 'ai.matey.utils';
13
+ import { executeOpenAICompatibleEmbed, buildStaticResult, applyModelFilter, DEFAULT_MISTRAL_MODELS, } from '../shared.js';
12
14
  // ============================================================================
13
15
  // Mistral Backend Adapter
14
16
  // ============================================================================
@@ -16,14 +18,19 @@ export class MistralBackendAdapter {
16
18
  metadata;
17
19
  config;
18
20
  baseURL;
21
+ modelCache;
19
22
  constructor(config) {
20
23
  this.config = config;
21
24
  this.baseURL = config.baseURL || 'https://api.mistral.ai/v1';
25
+ this.modelCache = getModelCache(config.modelsCacheScope || 'global');
22
26
  this.metadata = {
23
27
  name: 'mistral-backend',
24
28
  version: '1.0.0',
25
29
  provider: 'Mistral',
26
30
  capabilities: {
31
+ embeddings: true,
32
+ embeddingModels: ['mistral-embed'],
33
+ maxEmbeddingBatchSize: 512,
27
34
  streaming: true,
28
35
  multiModal: false,
29
36
  tools: true,
@@ -41,6 +48,19 @@ export class MistralBackendAdapter {
41
48
  config: { baseURL: this.baseURL },
42
49
  };
43
50
  }
51
+ /**
52
+ * Generate embeddings via the OpenAI-compatible /embeddings endpoint.
53
+ */
54
+ embed(request, signal) {
55
+ return executeOpenAICompatibleEmbed({
56
+ baseURL: this.baseURL,
57
+ headers: { Authorization: `Bearer ${this.config.apiKey}` },
58
+ request,
59
+ backendName: this.metadata.name,
60
+ defaultModel: 'mistral-embed',
61
+ signal,
62
+ });
63
+ }
44
64
  async execute(request, signal) {
45
65
  try {
46
66
  const mistralRequest = this.fromIR(request);
@@ -205,6 +225,80 @@ export class MistralBackendAdapter {
205
225
  const estimatedTokens = this.estimateTokens(request);
206
226
  return Promise.resolve((estimatedTokens / 1000) * 0.002); // Rough estimate: $0.002 per 1K tokens
207
227
  }
228
+ /**
229
+ * List available Mistral models.
230
+ */
231
+ async listModels(options) {
232
+ try {
233
+ if (this.config.models && !options?.forceRefresh) {
234
+ return buildStaticResult(this.config.models, 'mistralai');
235
+ }
236
+ if (this.config.cacheModels !== false && !options?.forceRefresh) {
237
+ const cached = this.modelCache.get(this.metadata.name);
238
+ if (cached) {
239
+ return applyModelFilter(cached, options?.filter);
240
+ }
241
+ }
242
+ const response = await fetch(`${this.baseURL}/models`, {
243
+ method: 'GET',
244
+ headers: {
245
+ 'Content-Type': 'application/json',
246
+ Authorization: `Bearer ${this.config.apiKey}`,
247
+ ...this.config.headers,
248
+ },
249
+ signal: AbortSignal.timeout(this.config.timeout || 30000),
250
+ });
251
+ if (!response.ok) {
252
+ throw createErrorFromHttpResponse(response.status, response.statusText, await response.text(), { backend: this.metadata.name });
253
+ }
254
+ const data = (await response.json());
255
+ const models = data.data.map((model) => this.transformMistralModel(model));
256
+ const result = {
257
+ models,
258
+ source: 'remote',
259
+ fetchedAt: Date.now(),
260
+ isComplete: true,
261
+ };
262
+ if (this.config.cacheModels !== false) {
263
+ this.modelCache.set(this.metadata.name, result, this.config.modelsCacheTTL || 3600000);
264
+ }
265
+ return applyModelFilter(result, options?.filter);
266
+ }
267
+ catch {
268
+ if (!options?.forceRefresh) {
269
+ const cached = this.modelCache.get(this.metadata.name);
270
+ if (cached) {
271
+ return cached;
272
+ }
273
+ }
274
+ const result = {
275
+ models: [...DEFAULT_MISTRAL_MODELS],
276
+ source: 'static',
277
+ fetchedAt: Date.now(),
278
+ isComplete: true,
279
+ };
280
+ return applyModelFilter(result, options?.filter);
281
+ }
282
+ }
283
+ transformMistralModel(model) {
284
+ return {
285
+ id: model.id,
286
+ name: model.id,
287
+ ownedBy: 'mistralai',
288
+ capabilities: {
289
+ maxTokens: 8192,
290
+ contextWindow: 32000,
291
+ supportsStreaming: true,
292
+ supportsVision: false,
293
+ supportsTools: true,
294
+ supportsJSON: true,
295
+ },
296
+ };
297
+ }
298
+ invalidateModelCache() {
299
+ this.modelCache.invalidate(this.metadata.name);
300
+ return this;
301
+ }
208
302
  /**
209
303
  * Convert IR request to Mistral format.
210
304
  *
@@ -219,7 +313,7 @@ export class MistralBackendAdapter {
219
313
  : msg.content.map((c) => (c.type === 'text' ? c.text : JSON.stringify(c))).join(''),
220
314
  }));
221
315
  return {
222
- model: request.parameters?.model || 'mistral-small',
316
+ model: request.parameters?.model || this.config.defaultModel || 'mistral-small-2501',
223
317
  messages: mistralMessages,
224
318
  temperature: request.parameters?.temperature,
225
319
  max_tokens: request.parameters?.maxTokens,
@@ -1 +1 @@
1
- {"version":3,"file":"mistral.js","sourceRoot":"","sources":["../../../src/providers/mistral.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mistral.js","sourceRoot":"","sources":["../../../src/providers/mistral.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,152 @@
1
+ /**
2
+ * Moonshot AI (Kimi) Backend Adapter
3
+ *
4
+ * Adapts Universal IR to Moonshot AI API (OpenAI-compatible).
5
+ * Moonshot AI provides Kimi models with support for long context windows up to 128K tokens.
6
+ *
7
+ * @module
8
+ */
9
+ import { OpenAIBackendAdapter } from './openai.js';
10
+ /**
11
+ * Backend adapter for Moonshot AI (Kimi) API.
12
+ *
13
+ * Moonshot AI offers Kimi models with exceptional long-context capabilities,
14
+ * supporting up to 128K tokens. The API is OpenAI-compatible.
15
+ *
16
+ * @example Basic Usage
17
+ * ```typescript
18
+ * import { MoonshotBackendAdapter } from 'ai.matey';
19
+ *
20
+ * const adapter = new MoonshotBackendAdapter({
21
+ * apiKey: process.env.MOONSHOT_API_KEY,
22
+ * });
23
+ * ```
24
+ *
25
+ * @example With Long Context Model
26
+ * ```typescript
27
+ * const adapter = new MoonshotBackendAdapter({
28
+ * apiKey: process.env.MOONSHOT_API_KEY,
29
+ * });
30
+ *
31
+ * const response = await adapter.execute({
32
+ * messages: [{ role: 'user', content: 'Summarize this long document...' }],
33
+ * parameters: {
34
+ * model: 'moonshot-v1-128k', // 128K context window
35
+ * },
36
+ * });
37
+ * ```
38
+ *
39
+ * @example Streaming
40
+ * ```typescript
41
+ * const stream = adapter.executeStream({
42
+ * messages: [{ role: 'user', content: 'Hello, Kimi!' }],
43
+ * parameters: {
44
+ * model: 'moonshot-v1-8k',
45
+ * },
46
+ * });
47
+ *
48
+ * for await (const chunk of stream) {
49
+ * if (chunk.type === 'content') {
50
+ * process.stdout.write(chunk.delta);
51
+ * }
52
+ * }
53
+ * ```
54
+ */
55
+ export class MoonshotBackendAdapter extends OpenAIBackendAdapter {
56
+ constructor(config) {
57
+ const moonshotConfig = {
58
+ ...config,
59
+ baseURL: config.baseURL || 'https://api.moonshot.cn/v1',
60
+ defaultModel: config.defaultModel || 'moonshot-v1-8k',
61
+ };
62
+ super(moonshotConfig, {
63
+ name: 'moonshot-backend',
64
+ version: '1.0.0',
65
+ provider: 'Moonshot AI',
66
+ capabilities: {
67
+ // No verified embeddings endpoint; opt out of the inherited embed()
68
+ embeddings: false,
69
+ streaming: true,
70
+ multiModal: false,
71
+ tools: true,
72
+ maxContextTokens: 128000,
73
+ systemMessageStrategy: 'in-messages',
74
+ supportsMultipleSystemMessages: false,
75
+ supportsTemperature: true,
76
+ supportsTopP: true,
77
+ supportsTopK: false,
78
+ supportsSeed: false,
79
+ supportsFrequencyPenalty: true,
80
+ supportsPresencePenalty: true,
81
+ maxStopSequences: 5,
82
+ },
83
+ config: {
84
+ baseURL: moonshotConfig.baseURL,
85
+ },
86
+ });
87
+ }
88
+ /**
89
+ * Health check for Moonshot AI API.
90
+ */
91
+ async healthCheck() {
92
+ try {
93
+ const response = await fetch(`${this.baseURL}/models`, {
94
+ method: 'GET',
95
+ headers: {
96
+ 'Content-Type': 'application/json',
97
+ Authorization: `Bearer ${this.config.apiKey}`,
98
+ ...this.config.headers,
99
+ },
100
+ signal: AbortSignal.timeout(5000),
101
+ });
102
+ return response.ok;
103
+ }
104
+ catch {
105
+ return false;
106
+ }
107
+ }
108
+ /**
109
+ * Estimate cost for Moonshot AI.
110
+ */
111
+ // eslint-disable-next-line @typescript-eslint/require-await -- BackendAdapter interface is async
112
+ async estimateCost(request) {
113
+ // Moonshot AI pricing per 1M tokens (USD)
114
+ const pricing = {
115
+ 'moonshot-v1-8k': { input: 1.63, output: 1.63 },
116
+ 'moonshot-v1-32k': { input: 3.26, output: 3.26 },
117
+ 'moonshot-v1-128k': { input: 8.15, output: 8.15 },
118
+ };
119
+ const model = request.parameters?.model || this.config.defaultModel || '';
120
+ const modelPricing = pricing[model];
121
+ if (!modelPricing) {
122
+ return null;
123
+ }
124
+ const inputTokens = request.messages.reduce((sum, msg) => {
125
+ const content = typeof msg.content === 'string' ? msg.content : '';
126
+ return sum + Math.ceil(content.length / 4);
127
+ }, 0);
128
+ const outputTokens = request.parameters?.maxTokens || 1024;
129
+ const inputCost = (inputTokens / 1_000_000) * modelPricing.input;
130
+ const outputCost = (outputTokens / 1_000_000) * modelPricing.output;
131
+ return inputCost + outputCost;
132
+ }
133
+ }
134
+ /**
135
+ * Create a Moonshot AI backend adapter.
136
+ *
137
+ * @param config - Adapter configuration
138
+ * @returns Moonshot AI backend adapter
139
+ *
140
+ * @example
141
+ * ```typescript
142
+ * import { createMoonshotAdapter } from 'ai.matey';
143
+ *
144
+ * const adapter = createMoonshotAdapter({
145
+ * apiKey: process.env.MOONSHOT_API_KEY,
146
+ * });
147
+ * ```
148
+ */
149
+ export function createMoonshotAdapter(config) {
150
+ return new MoonshotBackendAdapter(config);
151
+ }
152
+ //# sourceMappingURL=moonshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"moonshot.js","sourceRoot":"","sources":["../../../src/providers/moonshot.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@
9
9
  import { NetworkError, ProviderError, StreamError, ErrorCode, createErrorFromHttpResponse, } from 'ai.matey.errors';
10
10
  import { normalizeSystemMessages } from 'ai.matey.utils';
11
11
  import { getEffectiveStreamMode, mergeStreamingConfig } from 'ai.matey.utils';
12
+ import { buildStaticResult, applyModelFilter } from '../shared.js';
12
13
  // ============================================================================
13
14
  // Ollama Backend Adapter
14
15
  // ============================================================================
@@ -27,6 +28,7 @@ export class OllamaBackendAdapter {
27
28
  streaming: true,
28
29
  multiModal: false,
29
30
  tools: false,
31
+ embeddings: true,
30
32
  maxContextTokens: 4096, // Varies by model
31
33
  systemMessageStrategy: 'in-messages',
32
34
  supportsMultipleSystemMessages: false,
@@ -41,6 +43,40 @@ export class OllamaBackendAdapter {
41
43
  config: { baseURL: this.baseURL },
42
44
  };
43
45
  }
46
+ /**
47
+ * Generate embeddings via Ollama's /api/embed endpoint.
48
+ */
49
+ async embed(request, signal) {
50
+ const model = request.parameters?.model || this.config.defaultModel || 'nomic-embed-text';
51
+ const inputs = typeof request.input === 'string' ? [request.input] : [...request.input];
52
+ const response = await fetch(`${this.baseURL}/api/embed`, {
53
+ method: 'POST',
54
+ headers: { 'Content-Type': 'application/json' },
55
+ body: JSON.stringify({ model, input: inputs, truncate: request.parameters?.truncate }),
56
+ signal,
57
+ });
58
+ if (!response.ok) {
59
+ const errorBody = await response.text();
60
+ throw createErrorFromHttpResponse(response.status, response.statusText, errorBody, {
61
+ backend: this.metadata.name,
62
+ });
63
+ }
64
+ const json = (await response.json());
65
+ const embeddings = json.embeddings.map((vector, index) => ({ index, vector }));
66
+ return {
67
+ embeddings,
68
+ model: json.model ?? model,
69
+ dimensions: embeddings[0]?.vector.length ?? 0,
70
+ usage: json.prompt_eval_count !== undefined
71
+ ? { promptTokens: json.prompt_eval_count, totalTokens: json.prompt_eval_count }
72
+ : undefined,
73
+ metadata: {
74
+ ...request.metadata,
75
+ provenance: { ...request.metadata.provenance, backend: this.metadata.name },
76
+ },
77
+ raw: json,
78
+ };
79
+ }
44
80
  async execute(request, signal) {
45
81
  try {
46
82
  const ollamaRequest = this.fromIR(request);
@@ -249,5 +285,80 @@ export class OllamaBackendAdapter {
249
285
  raw: response,
250
286
  };
251
287
  }
288
+ /**
289
+ * List locally available models from Ollama.
290
+ *
291
+ * Priority order:
292
+ * 1. Static config override (this.config.models)
293
+ * 2. API fetch (http://localhost:11434/api/tags)
294
+ * 3. Empty array (Ollama not running or no models installed)
295
+ *
296
+ * Note: Unlike cloud providers, Ollama models are local and dynamic.
297
+ * No caching or fallback list - always fetches fresh from local server.
298
+ *
299
+ * @param options - Optional filter settings
300
+ * @returns Promise resolving to list of locally installed models
301
+ */
302
+ async listModels(options) {
303
+ try {
304
+ // 1. Check static config override first
305
+ if (this.config.models) {
306
+ return buildStaticResult(this.config.models, 'ollama');
307
+ }
308
+ // 2. Fetch from Ollama local API
309
+ const response = await fetch(`${this.baseURL}/api/tags`, {
310
+ method: 'GET',
311
+ headers: { 'Content-Type': 'application/json', ...this.config.headers },
312
+ signal: AbortSignal.timeout(this.config.timeout || 5000),
313
+ });
314
+ if (!response.ok) {
315
+ throw createErrorFromHttpResponse(response.status, response.statusText, await response.text(), { backend: this.metadata.name });
316
+ }
317
+ const data = (await response.json());
318
+ // 3. Transform to AIModel format
319
+ const models = data.models.map((model) => this.transformOllamaModel(model));
320
+ // 4. Build result
321
+ const result = {
322
+ models,
323
+ source: 'remote',
324
+ fetchedAt: Date.now(),
325
+ isComplete: true,
326
+ };
327
+ // 5. Apply filter if requested
328
+ return applyModelFilter(result, options?.filter);
329
+ }
330
+ catch {
331
+ // 6. Return empty list if Ollama not running or error
332
+ // No fallback models for Ollama since it's dynamic/local
333
+ const result = {
334
+ models: [],
335
+ source: 'static',
336
+ fetchedAt: Date.now(),
337
+ isComplete: true,
338
+ };
339
+ return applyModelFilter(result, options?.filter);
340
+ }
341
+ }
342
+ /**
343
+ * Transform Ollama API model to AIModel format.
344
+ */
345
+ transformOllamaModel(model) {
346
+ // Parse parameter size from details (e.g., "3B", "7B", "13B")
347
+ const paramSize = model.details?.parameter_size || 'unknown';
348
+ return {
349
+ id: model.name,
350
+ name: model.name,
351
+ description: `${model.details?.family || 'Local'} model (${paramSize})`,
352
+ ownedBy: 'ollama',
353
+ capabilities: {
354
+ maxTokens: 4096,
355
+ contextWindow: model.details?.context_length || 4096,
356
+ supportsStreaming: true,
357
+ supportsVision: false,
358
+ supportsTools: false,
359
+ supportsJSON: false,
360
+ },
361
+ };
362
+ }
252
363
  }
253
364
  //# sourceMappingURL=ollama.js.map