ai.matey.backend 0.2.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 (159) hide show
  1. package/LICENSE +21 -0
  2. package/dist/cjs/index.js +60 -0
  3. package/dist/cjs/index.js.map +1 -0
  4. package/dist/cjs/providers/ai21.js +331 -0
  5. package/dist/cjs/providers/ai21.js.map +1 -0
  6. package/dist/cjs/providers/anthropic.js +664 -0
  7. package/dist/cjs/providers/anthropic.js.map +1 -0
  8. package/dist/cjs/providers/anyscale.js +338 -0
  9. package/dist/cjs/providers/anyscale.js.map +1 -0
  10. package/dist/cjs/providers/aws-bedrock.js +374 -0
  11. package/dist/cjs/providers/aws-bedrock.js.map +1 -0
  12. package/dist/cjs/providers/azure-openai.js +406 -0
  13. package/dist/cjs/providers/azure-openai.js.map +1 -0
  14. package/dist/cjs/providers/cerebras.js +356 -0
  15. package/dist/cjs/providers/cerebras.js.map +1 -0
  16. package/dist/cjs/providers/cloudflare.js +359 -0
  17. package/dist/cjs/providers/cloudflare.js.map +1 -0
  18. package/dist/cjs/providers/cohere.js +368 -0
  19. package/dist/cjs/providers/cohere.js.map +1 -0
  20. package/dist/cjs/providers/deepinfra.js +343 -0
  21. package/dist/cjs/providers/deepinfra.js.map +1 -0
  22. package/dist/cjs/providers/deepseek.js +104 -0
  23. package/dist/cjs/providers/deepseek.js.map +1 -0
  24. package/dist/cjs/providers/fireworks.js +363 -0
  25. package/dist/cjs/providers/fireworks.js.map +1 -0
  26. package/dist/cjs/providers/gemini.js +292 -0
  27. package/dist/cjs/providers/gemini.js.map +1 -0
  28. package/dist/cjs/providers/groq.js +143 -0
  29. package/dist/cjs/providers/groq.js.map +1 -0
  30. package/dist/cjs/providers/huggingface.js +392 -0
  31. package/dist/cjs/providers/huggingface.js.map +1 -0
  32. package/dist/cjs/providers/lmstudio.js +144 -0
  33. package/dist/cjs/providers/lmstudio.js.map +1 -0
  34. package/dist/cjs/providers/mistral.js +288 -0
  35. package/dist/cjs/providers/mistral.js.map +1 -0
  36. package/dist/cjs/providers/nvidia.js +167 -0
  37. package/dist/cjs/providers/nvidia.js.map +1 -0
  38. package/dist/cjs/providers/ollama.js +257 -0
  39. package/dist/cjs/providers/ollama.js.map +1 -0
  40. package/dist/cjs/providers/openai.js +640 -0
  41. package/dist/cjs/providers/openai.js.map +1 -0
  42. package/dist/cjs/providers/openrouter.js +379 -0
  43. package/dist/cjs/providers/openrouter.js.map +1 -0
  44. package/dist/cjs/providers/perplexity.js +372 -0
  45. package/dist/cjs/providers/perplexity.js.map +1 -0
  46. package/dist/cjs/providers/replicate.js +340 -0
  47. package/dist/cjs/providers/replicate.js.map +1 -0
  48. package/dist/cjs/providers/together-ai.js +341 -0
  49. package/dist/cjs/providers/together-ai.js.map +1 -0
  50. package/dist/cjs/providers/xai.js +339 -0
  51. package/dist/cjs/providers/xai.js.map +1 -0
  52. package/dist/cjs/shared.js +279 -0
  53. package/dist/cjs/shared.js.map +1 -0
  54. package/dist/esm/index.js +44 -0
  55. package/dist/esm/index.js.map +1 -0
  56. package/dist/esm/providers/ai21.js +327 -0
  57. package/dist/esm/providers/ai21.js.map +1 -0
  58. package/dist/esm/providers/anthropic.js +660 -0
  59. package/dist/esm/providers/anthropic.js.map +1 -0
  60. package/dist/esm/providers/anyscale.js +334 -0
  61. package/dist/esm/providers/anyscale.js.map +1 -0
  62. package/dist/esm/providers/aws-bedrock.js +370 -0
  63. package/dist/esm/providers/aws-bedrock.js.map +1 -0
  64. package/dist/esm/providers/azure-openai.js +402 -0
  65. package/dist/esm/providers/azure-openai.js.map +1 -0
  66. package/dist/esm/providers/cerebras.js +352 -0
  67. package/dist/esm/providers/cerebras.js.map +1 -0
  68. package/dist/esm/providers/cloudflare.js +355 -0
  69. package/dist/esm/providers/cloudflare.js.map +1 -0
  70. package/dist/esm/providers/cohere.js +364 -0
  71. package/dist/esm/providers/cohere.js.map +1 -0
  72. package/dist/esm/providers/deepinfra.js +339 -0
  73. package/dist/esm/providers/deepinfra.js.map +1 -0
  74. package/dist/esm/providers/deepseek.js +99 -0
  75. package/dist/esm/providers/deepseek.js.map +1 -0
  76. package/dist/esm/providers/fireworks.js +359 -0
  77. package/dist/esm/providers/fireworks.js.map +1 -0
  78. package/dist/esm/providers/gemini.js +288 -0
  79. package/dist/esm/providers/gemini.js.map +1 -0
  80. package/dist/esm/providers/groq.js +138 -0
  81. package/dist/esm/providers/groq.js.map +1 -0
  82. package/dist/esm/providers/huggingface.js +387 -0
  83. package/dist/esm/providers/huggingface.js.map +1 -0
  84. package/dist/esm/providers/lmstudio.js +139 -0
  85. package/dist/esm/providers/lmstudio.js.map +1 -0
  86. package/dist/esm/providers/mistral.js +284 -0
  87. package/dist/esm/providers/mistral.js.map +1 -0
  88. package/dist/esm/providers/nvidia.js +162 -0
  89. package/dist/esm/providers/nvidia.js.map +1 -0
  90. package/dist/esm/providers/ollama.js +253 -0
  91. package/dist/esm/providers/ollama.js.map +1 -0
  92. package/dist/esm/providers/openai.js +636 -0
  93. package/dist/esm/providers/openai.js.map +1 -0
  94. package/dist/esm/providers/openrouter.js +375 -0
  95. package/dist/esm/providers/openrouter.js.map +1 -0
  96. package/dist/esm/providers/perplexity.js +368 -0
  97. package/dist/esm/providers/perplexity.js.map +1 -0
  98. package/dist/esm/providers/replicate.js +336 -0
  99. package/dist/esm/providers/replicate.js.map +1 -0
  100. package/dist/esm/providers/together-ai.js +337 -0
  101. package/dist/esm/providers/together-ai.js.map +1 -0
  102. package/dist/esm/providers/xai.js +335 -0
  103. package/dist/esm/providers/xai.js.map +1 -0
  104. package/dist/esm/shared.js +272 -0
  105. package/dist/esm/shared.js.map +1 -0
  106. package/dist/types/index.d.ts +38 -0
  107. package/dist/types/index.d.ts.map +1 -0
  108. package/dist/types/providers/ai21.d.ts +106 -0
  109. package/dist/types/providers/ai21.d.ts.map +1 -0
  110. package/dist/types/providers/anthropic.d.ts +194 -0
  111. package/dist/types/providers/anthropic.d.ts.map +1 -0
  112. package/dist/types/providers/anyscale.d.ts +109 -0
  113. package/dist/types/providers/anyscale.d.ts.map +1 -0
  114. package/dist/types/providers/aws-bedrock.d.ts +152 -0
  115. package/dist/types/providers/aws-bedrock.d.ts.map +1 -0
  116. package/dist/types/providers/azure-openai.d.ts +142 -0
  117. package/dist/types/providers/azure-openai.d.ts.map +1 -0
  118. package/dist/types/providers/cerebras.d.ts +130 -0
  119. package/dist/types/providers/cerebras.d.ts.map +1 -0
  120. package/dist/types/providers/cloudflare.d.ts +125 -0
  121. package/dist/types/providers/cloudflare.d.ts.map +1 -0
  122. package/dist/types/providers/cohere.d.ts +114 -0
  123. package/dist/types/providers/cohere.d.ts.map +1 -0
  124. package/dist/types/providers/deepinfra.d.ts +118 -0
  125. package/dist/types/providers/deepinfra.d.ts.map +1 -0
  126. package/dist/types/providers/deepseek.d.ts +68 -0
  127. package/dist/types/providers/deepseek.d.ts.map +1 -0
  128. package/dist/types/providers/fireworks.d.ts +127 -0
  129. package/dist/types/providers/fireworks.d.ts.map +1 -0
  130. package/dist/types/providers/gemini.d.ts +71 -0
  131. package/dist/types/providers/gemini.d.ts.map +1 -0
  132. package/dist/types/providers/groq.d.ts +83 -0
  133. package/dist/types/providers/groq.d.ts.map +1 -0
  134. package/dist/types/providers/huggingface.d.ts +154 -0
  135. package/dist/types/providers/huggingface.d.ts.map +1 -0
  136. package/dist/types/providers/lmstudio.d.ts +88 -0
  137. package/dist/types/providers/lmstudio.d.ts.map +1 -0
  138. package/dist/types/providers/mistral.d.ts +65 -0
  139. package/dist/types/providers/mistral.d.ts.map +1 -0
  140. package/dist/types/providers/nvidia.d.ts +100 -0
  141. package/dist/types/providers/nvidia.d.ts.map +1 -0
  142. package/dist/types/providers/ollama.d.ts +59 -0
  143. package/dist/types/providers/ollama.d.ts.map +1 -0
  144. package/dist/types/providers/openai.d.ts +205 -0
  145. package/dist/types/providers/openai.d.ts.map +1 -0
  146. package/dist/types/providers/openrouter.d.ts +135 -0
  147. package/dist/types/providers/openrouter.d.ts.map +1 -0
  148. package/dist/types/providers/perplexity.d.ts +116 -0
  149. package/dist/types/providers/perplexity.d.ts.map +1 -0
  150. package/dist/types/providers/replicate.d.ts +91 -0
  151. package/dist/types/providers/replicate.d.ts.map +1 -0
  152. package/dist/types/providers/together-ai.d.ts +118 -0
  153. package/dist/types/providers/together-ai.d.ts.map +1 -0
  154. package/dist/types/providers/xai.d.ts +119 -0
  155. package/dist/types/providers/xai.d.ts.map +1 -0
  156. package/dist/types/shared.d.ts +116 -0
  157. package/dist/types/shared.d.ts.map +1 -0
  158. package/package.json +327 -0
  159. package/readme.md +86 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../../src/providers/gemini.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+ /**
3
+ * Groq Backend Adapter
4
+ *
5
+ * Adapts Universal IR to Groq API (OpenAI-compatible).
6
+ * Groq provides ultra-fast inference with LPU (Language Processing Unit) technology.
7
+ *
8
+ * @module
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.GroqBackendAdapter = void 0;
12
+ exports.createGroqAdapter = createGroqAdapter;
13
+ const openai_js_1 = require("./openai.js");
14
+ /**
15
+ * Backend adapter for Groq API.
16
+ *
17
+ * Groq uses an OpenAI-compatible API with ultra-fast inference speeds.
18
+ * Known for extremely low latency responses.
19
+ *
20
+ * @example Basic Usage
21
+ * ```typescript
22
+ * import { GroqBackendAdapter } from 'ai.matey';
23
+ *
24
+ * const adapter = new GroqBackendAdapter({
25
+ * apiKey: process.env.GROQ_API_KEY,
26
+ * });
27
+ * ```
28
+ *
29
+ * @example With Fast Models
30
+ * ```typescript
31
+ * const adapter = new GroqBackendAdapter({
32
+ * apiKey: process.env.GROQ_API_KEY,
33
+ * });
34
+ *
35
+ * const response = await adapter.execute({
36
+ * messages: [{ role: 'user', content: 'Hello!' }],
37
+ * parameters: {
38
+ * model: 'llama-3.3-70b-versatile', // Fast and capable
39
+ * },
40
+ * });
41
+ * ```
42
+ *
43
+ * @example Streaming for Ultra-Fast Responses
44
+ * ```typescript
45
+ * const stream = adapter.executeStream({
46
+ * messages: [{ role: 'user', content: 'Tell me a story' }],
47
+ * parameters: {
48
+ * model: 'llama-3.1-8b-instant', // Optimized for speed
49
+ * },
50
+ * });
51
+ *
52
+ * for await (const chunk of stream) {
53
+ * if (chunk.type === 'content') {
54
+ * console.log(chunk.delta);
55
+ * }
56
+ * }
57
+ * ```
58
+ */
59
+ class GroqBackendAdapter extends openai_js_1.OpenAIBackendAdapter {
60
+ constructor(config) {
61
+ // Groq API endpoint
62
+ const groqConfig = {
63
+ ...config,
64
+ baseURL: config.baseURL || 'https://api.groq.com/openai/v1',
65
+ };
66
+ // Pass Groq-specific metadata to parent constructor
67
+ super(groqConfig, {
68
+ name: 'groq-backend',
69
+ version: '1.0.0',
70
+ provider: 'Groq',
71
+ capabilities: {
72
+ streaming: true,
73
+ multiModal: false, // Groq currently focuses on text
74
+ tools: true,
75
+ maxContextTokens: 128000, // Varies by model, some support 128K
76
+ systemMessageStrategy: 'in-messages',
77
+ supportsMultipleSystemMessages: false,
78
+ supportsTemperature: true,
79
+ supportsTopP: true,
80
+ supportsTopK: false,
81
+ supportsSeed: true,
82
+ supportsFrequencyPenalty: true,
83
+ supportsPresencePenalty: true,
84
+ maxStopSequences: 4,
85
+ },
86
+ config: {
87
+ baseURL: groqConfig.baseURL,
88
+ },
89
+ });
90
+ }
91
+ /**
92
+ * Health check for Groq API.
93
+ */
94
+ async healthCheck() {
95
+ try {
96
+ const response = await fetch(`${this.baseURL}/models`, {
97
+ method: 'GET',
98
+ headers: {
99
+ 'Content-Type': 'application/json',
100
+ Authorization: `Bearer ${this.config.apiKey}`,
101
+ ...this.config.headers,
102
+ },
103
+ signal: AbortSignal.timeout(5000),
104
+ });
105
+ return response.ok;
106
+ }
107
+ catch {
108
+ return false;
109
+ }
110
+ }
111
+ /**
112
+ * Estimate cost for Groq (very low cost, optimized for speed).
113
+ */
114
+ async estimateCost(request) {
115
+ // Groq pricing: ~$0.05 per 1M input tokens, ~$0.10 per 1M output tokens
116
+ // (Extremely competitive pricing)
117
+ const estimatedInputTokens = (await super.estimateCost(request)) || 0;
118
+ const estimatedOutputTokens = Math.min(request.parameters?.maxTokens || 1000, 4000);
119
+ const inputCost = (estimatedInputTokens * 1000 * 0.05) / 1_000_000;
120
+ const outputCost = (estimatedOutputTokens / 1_000_000) * 0.1;
121
+ return inputCost + outputCost;
122
+ }
123
+ }
124
+ exports.GroqBackendAdapter = GroqBackendAdapter;
125
+ /**
126
+ * Create a Groq backend adapter.
127
+ *
128
+ * @param config - Adapter configuration
129
+ * @returns Groq backend adapter
130
+ *
131
+ * @example
132
+ * ```typescript
133
+ * import { createGroqAdapter } from 'ai.matey';
134
+ *
135
+ * const adapter = createGroqAdapter({
136
+ * apiKey: process.env.GROQ_API_KEY,
137
+ * });
138
+ * ```
139
+ */
140
+ function createGroqAdapter(config) {
141
+ return new GroqBackendAdapter(config);
142
+ }
143
+ //# sourceMappingURL=groq.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groq.js","sourceRoot":"","sources":["../../../src/providers/groq.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AA0IH,8CAEC;AA1ID,2CAA4F;AAG5F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,MAAa,kBACX,SAAQ,gCAAoB;IAG5B,YAAY,MAA4B;QACtC,oBAAoB;QACpB,MAAM,UAAU,GAAyB;YACvC,GAAG,MAAM;YACT,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,gCAAgC;SAC5D,CAAC;QAEF,oDAAoD;QACpD,KAAK,CAAC,UAAU,EAAE;YAChB,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,OAAO;YAChB,QAAQ,EAAE,MAAM;YAChB,YAAY,EAAE;gBACZ,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,KAAK,EAAE,iCAAiC;gBACpD,KAAK,EAAE,IAAI;gBACX,gBAAgB,EAAE,MAAM,EAAE,qCAAqC;gBAC/D,qBAAqB,EAAE,aAAa;gBACpC,8BAA8B,EAAE,KAAK;gBACrC,mBAAmB,EAAE,IAAI;gBACzB,YAAY,EAAE,IAAI;gBAClB,YAAY,EAAE,KAAK;gBACnB,YAAY,EAAE,IAAI;gBAClB,wBAAwB,EAAE,IAAI;gBAC9B,uBAAuB,EAAE,IAAI;gBAC7B,gBAAgB,EAAE,CAAC;aACpB;YACD,MAAM,EAAE;gBACN,OAAO,EAAE,UAAU,CAAC,OAAO;aAC5B;SACF,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW;QACf,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,SAAS,EAAE;gBACrD,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;oBAC7C,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO;iBACvB;gBACD,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;aAClC,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC,EAAE,CAAC;QACrB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,OAAsB;QACvC,wEAAwE;QACxE,kCAAkC;QAClC,MAAM,oBAAoB,GAAG,CAAC,MAAM,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;QACtE,MAAM,qBAAqB,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,IAAI,IAAI,EAAE,IAAI,CAAC,CAAC;QAEpF,MAAM,SAAS,GAAG,CAAC,oBAAoB,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC;QACnE,MAAM,UAAU,GAAG,CAAC,qBAAqB,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC;QAE7D,OAAO,SAAS,GAAG,UAAU,CAAC;IAChC,CAAC;CACF;AAvED,gDAuEC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAgB,iBAAiB,CAAC,MAA4B;IAC5D,OAAO,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC;AACxC,CAAC"}
@@ -0,0 +1,392 @@
1
+ "use strict";
2
+ /**
3
+ * Hugging Face Backend Adapter
4
+ *
5
+ * Adapts Universal IR to Hugging Face Inference API.
6
+ * Access thousands of models through Hugging Face's unified API.
7
+ *
8
+ * @module
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.HuggingFaceBackendAdapter = void 0;
12
+ exports.createHuggingFaceAdapter = createHuggingFaceAdapter;
13
+ const ai_matey_errors_1 = require("ai.matey.errors");
14
+ /**
15
+ * Backend adapter for Hugging Face Inference API.
16
+ *
17
+ * Supports text generation models from Hugging Face Hub.
18
+ *
19
+ * @example Basic Usage
20
+ * ```typescript
21
+ * import { HuggingFaceBackendAdapter } from 'ai.matey';
22
+ *
23
+ * const adapter = new HuggingFaceBackendAdapter({
24
+ * apiKey: process.env.HUGGINGFACE_API_KEY,
25
+ * });
26
+ * ```
27
+ *
28
+ * @example With Specific Model
29
+ * ```typescript
30
+ * const adapter = new HuggingFaceBackendAdapter({
31
+ * apiKey: process.env.HUGGINGFACE_API_KEY,
32
+ * });
33
+ *
34
+ * const response = await adapter.execute({
35
+ * messages: [{ role: 'user', content: 'Hello!' }],
36
+ * parameters: {
37
+ * model: 'mistralai/Mixtral-8x7B-Instruct-v0.1',
38
+ * },
39
+ * });
40
+ * ```
41
+ *
42
+ * @example With Inference Endpoints
43
+ * ```typescript
44
+ * const adapter = new HuggingFaceBackendAdapter({
45
+ * apiKey: process.env.HUGGINGFACE_API_KEY,
46
+ * baseURL: 'https://your-endpoint.aws.endpoints.huggingface.cloud',
47
+ * });
48
+ * ```
49
+ */
50
+ class HuggingFaceBackendAdapter {
51
+ metadata;
52
+ config;
53
+ baseURL;
54
+ constructor(config) {
55
+ this.config = config;
56
+ this.baseURL = config.baseURL || 'https://api-inference.huggingface.co';
57
+ this.metadata = {
58
+ name: 'huggingface-backend',
59
+ version: '1.0.0',
60
+ provider: 'Hugging Face',
61
+ capabilities: {
62
+ streaming: false, // Hugging Face Inference API doesn't support streaming in the same way
63
+ multiModal: false, // Text-only for standard inference
64
+ tools: false,
65
+ maxContextTokens: 4096, // Varies by model
66
+ systemMessageStrategy: 'in-messages',
67
+ supportsMultipleSystemMessages: false,
68
+ supportsTemperature: true,
69
+ supportsTopP: true,
70
+ supportsTopK: true,
71
+ supportsSeed: false,
72
+ supportsFrequencyPenalty: false,
73
+ supportsPresencePenalty: false,
74
+ maxStopSequences: 0,
75
+ },
76
+ config: {
77
+ baseURL: this.baseURL,
78
+ },
79
+ };
80
+ }
81
+ /**
82
+ * Execute non-streaming chat completion request.
83
+ */
84
+ async execute(request, signal) {
85
+ try {
86
+ // Convert IR to Hugging Face format
87
+ const hfRequest = this.fromIR(request);
88
+ // Make HTTP request
89
+ const startTime = Date.now();
90
+ const response = await this.makeRequest(request.parameters?.model || '', hfRequest, signal);
91
+ // Convert response to IR
92
+ const irResponse = this.toIR(response, request, Date.now() - startTime);
93
+ return irResponse;
94
+ }
95
+ catch (error) {
96
+ // Re-throw adapter errors
97
+ if (error instanceof ai_matey_errors_1.AdapterConversionError ||
98
+ error instanceof ai_matey_errors_1.NetworkError ||
99
+ error instanceof ai_matey_errors_1.ProviderError) {
100
+ throw error;
101
+ }
102
+ // Wrap unknown errors
103
+ throw new ai_matey_errors_1.ProviderError({
104
+ code: ai_matey_errors_1.ErrorCode.PROVIDER_ERROR,
105
+ message: `Hugging Face request failed: ${error instanceof Error ? error.message : String(error)}`,
106
+ isRetryable: true,
107
+ provenance: {
108
+ backend: this.metadata.name,
109
+ },
110
+ cause: error instanceof Error ? error : undefined,
111
+ });
112
+ }
113
+ }
114
+ /**
115
+ * Execute streaming chat completion request.
116
+ */
117
+ async *executeStream(request, _signal) {
118
+ // Hugging Face Inference API doesn't support streaming in the standard way
119
+ // We'll simulate it by making a regular request and yielding chunks
120
+ yield {
121
+ type: 'start',
122
+ sequence: 0,
123
+ metadata: request.metadata,
124
+ };
125
+ try {
126
+ const response = await this.execute(request, _signal);
127
+ // Yield content as single chunk
128
+ const content = typeof response.message.content === 'string'
129
+ ? response.message.content
130
+ : response.message.content
131
+ .filter((c) => c.type === 'text')
132
+ .map((c) => c.text)
133
+ .join('');
134
+ yield {
135
+ type: 'content',
136
+ sequence: 1,
137
+ delta: content,
138
+ role: 'assistant',
139
+ };
140
+ yield {
141
+ type: 'done',
142
+ sequence: 2,
143
+ finishReason: response.finishReason,
144
+ usage: response.usage,
145
+ message: response.message,
146
+ };
147
+ }
148
+ catch (error) {
149
+ yield {
150
+ type: 'error',
151
+ sequence: 0,
152
+ error: {
153
+ code: error instanceof Error ? error.name : 'UNKNOWN_ERROR',
154
+ message: error instanceof Error ? error.message : String(error),
155
+ },
156
+ };
157
+ }
158
+ }
159
+ /**
160
+ * Health check for Hugging Face API.
161
+ */
162
+ async healthCheck() {
163
+ try {
164
+ // Simple test request
165
+ const response = await fetch(this.baseURL, {
166
+ method: 'GET',
167
+ headers: this.getHeaders(),
168
+ signal: AbortSignal.timeout(5000),
169
+ });
170
+ // HF returns various status codes, 200 or 404 are both "healthy"
171
+ return response.status === 200 || response.status === 404;
172
+ }
173
+ catch {
174
+ return false;
175
+ }
176
+ }
177
+ /**
178
+ * Estimate cost for Hugging Face.
179
+ */
180
+ estimateCost(request) {
181
+ // Hugging Face Inference API is free for public models (with rate limits)
182
+ // Inference Endpoints are charged separately
183
+ const estimatedTokens = this.estimateTokens(request);
184
+ // If using a private Inference Endpoint, estimate ~$0.06 per 1000 tokens
185
+ if (this.baseURL !== 'https://api-inference.huggingface.co') {
186
+ return Promise.resolve((estimatedTokens / 1000) * 0.06);
187
+ }
188
+ // Free tier
189
+ return Promise.resolve(0);
190
+ }
191
+ // ==========================================================================
192
+ // Private Helper Methods
193
+ // ==========================================================================
194
+ /**
195
+ * Convert IR request to Hugging Face format.
196
+ *
197
+ * Public method for testing and debugging - see what will be sent to Hugging Face.
198
+ */
199
+ fromIR(request) {
200
+ try {
201
+ // Convert messages to prompt text
202
+ const prompt = this.messagesToPrompt(request.messages);
203
+ return {
204
+ inputs: prompt,
205
+ parameters: {
206
+ temperature: request.parameters?.temperature,
207
+ max_new_tokens: request.parameters?.maxTokens,
208
+ top_p: request.parameters?.topP,
209
+ top_k: request.parameters?.topK,
210
+ repetition_penalty: request.parameters?.frequencyPenalty
211
+ ? 1 + request.parameters.frequencyPenalty
212
+ : undefined,
213
+ do_sample: request.parameters?.temperature !== undefined && request.parameters.temperature > 0,
214
+ return_full_text: false,
215
+ },
216
+ options: {
217
+ wait_for_model: true,
218
+ use_cache: true,
219
+ },
220
+ };
221
+ }
222
+ catch (error) {
223
+ throw new ai_matey_errors_1.AdapterConversionError({
224
+ code: ai_matey_errors_1.ErrorCode.ADAPTER_CONVERSION_ERROR,
225
+ message: `Failed to convert IR to Hugging Face format: ${error instanceof Error ? error.message : String(error)}`,
226
+ provenance: {
227
+ backend: this.metadata.name,
228
+ },
229
+ cause: error instanceof Error ? error : undefined,
230
+ });
231
+ }
232
+ }
233
+ /**
234
+ * Convert Hugging Face response to IR format.
235
+ *
236
+ * Public method for testing and debugging - parse Hugging Face responses manually.
237
+ */
238
+ toIR(response, originalRequest, latencyMs) {
239
+ try {
240
+ // Handle array response
241
+ const hfResponse = Array.isArray(response) ? response[0] : response;
242
+ if (!hfResponse || hfResponse.error) {
243
+ throw new Error(hfResponse?.error || 'Empty response from Hugging Face');
244
+ }
245
+ const text = hfResponse.generated_text || '';
246
+ const message = {
247
+ role: 'assistant',
248
+ content: text,
249
+ };
250
+ return {
251
+ message,
252
+ finishReason: 'stop',
253
+ usage: {
254
+ promptTokens: this.estimateTokens(originalRequest),
255
+ completionTokens: Math.ceil(text.length / 4),
256
+ totalTokens: this.estimateTokens(originalRequest) + Math.ceil(text.length / 4),
257
+ },
258
+ metadata: {
259
+ ...originalRequest.metadata,
260
+ provenance: {
261
+ ...originalRequest.metadata.provenance,
262
+ backend: this.metadata.name,
263
+ },
264
+ custom: {
265
+ ...originalRequest.metadata.custom,
266
+ latencyMs,
267
+ },
268
+ },
269
+ };
270
+ }
271
+ catch (error) {
272
+ throw new ai_matey_errors_1.AdapterConversionError({
273
+ code: ai_matey_errors_1.ErrorCode.ADAPTER_CONVERSION_ERROR,
274
+ message: `Failed to convert Hugging Face response to IR: ${error instanceof Error ? error.message : String(error)}`,
275
+ provenance: {
276
+ backend: this.metadata.name,
277
+ },
278
+ cause: error instanceof Error ? error : undefined,
279
+ });
280
+ }
281
+ }
282
+ /**
283
+ * Convert messages to prompt text.
284
+ */
285
+ messagesToPrompt(messages) {
286
+ const parts = [];
287
+ for (const message of messages) {
288
+ const text = typeof message.content === 'string'
289
+ ? message.content
290
+ : message.content
291
+ .filter((c) => c.type === 'text')
292
+ .map((c) => c.text)
293
+ .join('\n');
294
+ if (message.role === 'system') {
295
+ parts.push(`System: ${text}`);
296
+ }
297
+ else if (message.role === 'user') {
298
+ parts.push(`User: ${text}`);
299
+ }
300
+ else if (message.role === 'assistant') {
301
+ parts.push(`Assistant: ${text}`);
302
+ }
303
+ }
304
+ // Add final assistant prompt
305
+ parts.push('Assistant:');
306
+ return parts.join('\n\n');
307
+ }
308
+ /**
309
+ * Make HTTP request to Hugging Face API.
310
+ */
311
+ async makeRequest(model, request, signal) {
312
+ try {
313
+ const url = model ? `${this.baseURL}/models/${model}` : this.baseURL;
314
+ const response = await fetch(url, {
315
+ method: 'POST',
316
+ headers: this.getHeaders(),
317
+ body: JSON.stringify(request),
318
+ signal,
319
+ });
320
+ if (!response.ok) {
321
+ const errorBody = await response.text();
322
+ throw (0, ai_matey_errors_1.createErrorFromHttpResponse)(response.status, response.statusText, errorBody, {
323
+ backend: this.metadata.name,
324
+ });
325
+ }
326
+ const data = (await response.json());
327
+ return data;
328
+ }
329
+ catch (error) {
330
+ if (error instanceof TypeError && error.message.includes('fetch')) {
331
+ throw new ai_matey_errors_1.NetworkError({
332
+ code: ai_matey_errors_1.ErrorCode.NETWORK_ERROR,
333
+ message: `Network request failed: ${error.message}`,
334
+ provenance: {
335
+ backend: this.metadata.name,
336
+ },
337
+ cause: error,
338
+ });
339
+ }
340
+ throw error;
341
+ }
342
+ }
343
+ /**
344
+ * Get HTTP headers for Hugging Face API requests.
345
+ */
346
+ getHeaders() {
347
+ return {
348
+ 'Content-Type': 'application/json',
349
+ Authorization: `Bearer ${this.config.apiKey}`,
350
+ ...this.config.headers,
351
+ };
352
+ }
353
+ /**
354
+ * Estimate token count for a request.
355
+ */
356
+ estimateTokens(request) {
357
+ let totalChars = 0;
358
+ for (const message of request.messages) {
359
+ if (typeof message.content === 'string') {
360
+ totalChars += message.content.length;
361
+ }
362
+ else {
363
+ for (const block of message.content) {
364
+ if (block.type === 'text') {
365
+ totalChars += block.text.length;
366
+ }
367
+ }
368
+ }
369
+ }
370
+ return Math.ceil(totalChars / 4);
371
+ }
372
+ }
373
+ exports.HuggingFaceBackendAdapter = HuggingFaceBackendAdapter;
374
+ /**
375
+ * Create a Hugging Face backend adapter.
376
+ *
377
+ * @param config - Adapter configuration
378
+ * @returns Hugging Face backend adapter
379
+ *
380
+ * @example
381
+ * ```typescript
382
+ * import { createHuggingFaceAdapter } from 'ai.matey';
383
+ *
384
+ * const adapter = createHuggingFaceAdapter({
385
+ * apiKey: process.env.HUGGINGFACE_API_KEY,
386
+ * });
387
+ * ```
388
+ */
389
+ function createHuggingFaceAdapter(config) {
390
+ return new HuggingFaceBackendAdapter(config);
391
+ }
392
+ //# sourceMappingURL=huggingface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"huggingface.js","sourceRoot":"","sources":["../../../src/providers/huggingface.ts"],"names":[],"mappings":"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"}