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,142 @@
1
+ /**
2
+ * Azure OpenAI Backend Adapter
3
+ *
4
+ * Adapts Universal IR to Azure OpenAI Chat Completions API.
5
+ * Azure OpenAI is OpenAI-compatible with enterprise features and deployment-based routing.
6
+ *
7
+ * @module
8
+ */
9
+ import type { BackendAdapter, BackendAdapterConfig, AdapterMetadata } from 'ai.matey.types';
10
+ import type { IRChatRequest, IRChatResponse, IRChatStream } from 'ai.matey.types';
11
+ export type AzureOpenAIMessageContent = string | Array<{
12
+ type: 'text';
13
+ text: string;
14
+ } | {
15
+ type: 'image_url';
16
+ image_url: {
17
+ url: string;
18
+ detail?: 'auto' | 'low' | 'high';
19
+ };
20
+ }>;
21
+ export interface AzureOpenAIMessage {
22
+ role: 'system' | 'user' | 'assistant' | 'tool';
23
+ content: AzureOpenAIMessageContent;
24
+ name?: string;
25
+ tool_calls?: Array<{
26
+ id: string;
27
+ type: 'function';
28
+ function: {
29
+ name: string;
30
+ arguments: string;
31
+ };
32
+ }>;
33
+ }
34
+ export interface AzureOpenAIRequest {
35
+ messages: AzureOpenAIMessage[];
36
+ temperature?: number;
37
+ max_tokens?: number;
38
+ top_p?: number;
39
+ frequency_penalty?: number;
40
+ presence_penalty?: number;
41
+ stop?: string[];
42
+ stream?: boolean;
43
+ seed?: number;
44
+ }
45
+ export interface AzureOpenAIResponse {
46
+ id: string;
47
+ object: 'chat.completion';
48
+ created: number;
49
+ model: string;
50
+ choices: Array<{
51
+ index: number;
52
+ message: AzureOpenAIMessage;
53
+ finish_reason: 'stop' | 'length' | 'tool_calls' | 'content_filter' | null;
54
+ content_filter_results?: any;
55
+ }>;
56
+ usage?: {
57
+ prompt_tokens: number;
58
+ completion_tokens: number;
59
+ total_tokens: number;
60
+ };
61
+ }
62
+ export interface AzureOpenAIStreamChunk {
63
+ id: string;
64
+ object: 'chat.completion.chunk';
65
+ created: number;
66
+ model: string;
67
+ choices: Array<{
68
+ index: number;
69
+ delta: {
70
+ role?: 'assistant';
71
+ content?: string;
72
+ };
73
+ finish_reason: 'stop' | 'length' | 'content_filter' | null;
74
+ content_filter_results?: any;
75
+ }>;
76
+ }
77
+ export interface AzureOpenAIConfig extends BackendAdapterConfig {
78
+ resourceName?: string;
79
+ deploymentId?: string;
80
+ apiVersion?: string;
81
+ }
82
+ /**
83
+ * Backend adapter for Azure OpenAI Chat Completions API.
84
+ *
85
+ * Features:
86
+ * - OpenAI-compatible with deployment-based routing
87
+ * - Enterprise features (SLA, private endpoints, VNet)
88
+ * - Content filtering (configurable)
89
+ * - Vision model support
90
+ * - Function calling support
91
+ * - Seed support for reproducibility
92
+ * - Enterprise pricing with consumption-based billing
93
+ */
94
+ export declare class AzureOpenAIBackendAdapter implements BackendAdapter<AzureOpenAIRequest, AzureOpenAIResponse> {
95
+ readonly metadata: AdapterMetadata;
96
+ private readonly config;
97
+ private readonly resourceName;
98
+ private readonly deploymentId;
99
+ private readonly apiVersion;
100
+ private readonly baseURL;
101
+ constructor(config: AzureOpenAIConfig);
102
+ /**
103
+ * Get deployment ID from request or config.
104
+ */
105
+ private getDeploymentId;
106
+ /**
107
+ * Build endpoint URL for a specific deployment.
108
+ */
109
+ private buildEndpointURL;
110
+ /**
111
+ * Convert IR to Azure OpenAI format.
112
+ */
113
+ fromIR(request: IRChatRequest): AzureOpenAIRequest;
114
+ /**
115
+ * Convert Azure OpenAI response to IR.
116
+ */
117
+ toIR(response: AzureOpenAIResponse, originalRequest: IRChatRequest, latencyMs: number): IRChatResponse;
118
+ /**
119
+ * Execute non-streaming request.
120
+ */
121
+ execute(request: IRChatRequest, signal?: AbortSignal): Promise<IRChatResponse>;
122
+ /**
123
+ * Execute streaming request.
124
+ */
125
+ executeStream(request: IRChatRequest, signal?: AbortSignal): IRChatStream;
126
+ /**
127
+ * Get HTTP headers.
128
+ * Azure uses api-key header instead of Authorization Bearer.
129
+ */
130
+ private getHeaders;
131
+ /**
132
+ * Health check.
133
+ */
134
+ healthCheck(): Promise<boolean>;
135
+ /**
136
+ * Estimate cost.
137
+ * Azure pricing varies by region and deployment.
138
+ * These are approximate US East costs.
139
+ */
140
+ estimateCost(request: IRChatRequest): Promise<number | null>;
141
+ }
142
+ //# sourceMappingURL=azure-openai.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"azure-openai.d.ts","sourceRoot":"","sources":["../../../src/providers/azure-openai.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,130 @@
1
+ /**
2
+ * Cerebras Backend Adapter
3
+ *
4
+ * Adapts Universal IR to Cerebras Chat Completions API.
5
+ * Cerebras is OpenAI-compatible with world's fastest inference (969 tokens/s).
6
+ *
7
+ * @module
8
+ */
9
+ import type { BackendAdapter, BackendAdapterConfig, AdapterMetadata } from 'ai.matey.types';
10
+ import type { IRChatRequest, IRChatResponse, IRChatStream } from 'ai.matey.types';
11
+ export type CerebrasMessageContent = string | Array<{
12
+ type: 'text';
13
+ text: string;
14
+ } | {
15
+ type: 'image_url';
16
+ image_url: {
17
+ url: string;
18
+ };
19
+ }>;
20
+ export interface CerebrasMessage {
21
+ role: 'system' | 'user' | 'assistant' | 'tool';
22
+ content: CerebrasMessageContent;
23
+ name?: string;
24
+ tool_calls?: Array<{
25
+ id: string;
26
+ type: 'function';
27
+ function: {
28
+ name: string;
29
+ arguments: string;
30
+ };
31
+ }>;
32
+ }
33
+ export interface CerebrasRequest {
34
+ model: string;
35
+ messages: CerebrasMessage[];
36
+ temperature?: number;
37
+ max_tokens?: number;
38
+ top_p?: number;
39
+ frequency_penalty?: number;
40
+ presence_penalty?: number;
41
+ stop?: string[];
42
+ stream?: boolean;
43
+ seed?: number;
44
+ }
45
+ export interface CerebrasResponse {
46
+ id: string;
47
+ object: 'chat.completion';
48
+ created: number;
49
+ model: string;
50
+ choices: Array<{
51
+ index: number;
52
+ message: CerebrasMessage;
53
+ finish_reason: 'stop' | 'length' | 'tool_calls' | null;
54
+ }>;
55
+ usage?: {
56
+ prompt_tokens: number;
57
+ completion_tokens: number;
58
+ total_tokens: number;
59
+ };
60
+ time_info?: {
61
+ completion_time: number;
62
+ prompt_time: number;
63
+ total_time: number;
64
+ };
65
+ }
66
+ export interface CerebrasStreamChunk {
67
+ id: string;
68
+ object: 'chat.completion.chunk';
69
+ created: number;
70
+ model: string;
71
+ choices: Array<{
72
+ index: number;
73
+ delta: {
74
+ role?: 'assistant';
75
+ content?: string;
76
+ };
77
+ finish_reason: 'stop' | 'length' | null;
78
+ }>;
79
+ time_info?: {
80
+ completion_time: number;
81
+ prompt_time: number;
82
+ total_time: number;
83
+ };
84
+ }
85
+ /**
86
+ * Backend adapter for Cerebras Chat Completions API.
87
+ *
88
+ * Features:
89
+ * - World's fastest inference (969 tokens/s)
90
+ * - OpenAI-compatible API
91
+ * - Specialized hardware acceleration
92
+ * - Seed support for reproducibility
93
+ * - Timing information in responses
94
+ * - Competitive pricing starting at $0.10 per 1M tokens
95
+ */
96
+ export declare class CerebrasBackendAdapter implements BackendAdapter<CerebrasRequest, CerebrasResponse> {
97
+ readonly metadata: AdapterMetadata;
98
+ private readonly config;
99
+ private readonly baseURL;
100
+ constructor(config: BackendAdapterConfig);
101
+ /**
102
+ * Convert IR to Cerebras format.
103
+ */
104
+ fromIR(request: IRChatRequest): CerebrasRequest;
105
+ /**
106
+ * Convert Cerebras response to IR.
107
+ */
108
+ toIR(response: CerebrasResponse, originalRequest: IRChatRequest, latencyMs: number): IRChatResponse;
109
+ /**
110
+ * Execute non-streaming request.
111
+ */
112
+ execute(request: IRChatRequest, signal?: AbortSignal): Promise<IRChatResponse>;
113
+ /**
114
+ * Execute streaming request.
115
+ */
116
+ executeStream(request: IRChatRequest, signal?: AbortSignal): IRChatStream;
117
+ /**
118
+ * Get HTTP headers.
119
+ */
120
+ private getHeaders;
121
+ /**
122
+ * Health check.
123
+ */
124
+ healthCheck(): Promise<boolean>;
125
+ /**
126
+ * Estimate cost.
127
+ */
128
+ estimateCost(request: IRChatRequest): Promise<number | null>;
129
+ }
130
+ //# sourceMappingURL=cerebras.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cerebras.d.ts","sourceRoot":"","sources":["../../../src/providers/cerebras.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * Cloudflare Workers AI Backend Adapter
3
+ *
4
+ * Adapts Universal IR to Cloudflare Workers AI Chat Completions API.
5
+ * Cloudflare is OpenAI-compatible with edge computing and neuron-based pricing.
6
+ *
7
+ * @module
8
+ */
9
+ import type { BackendAdapter, BackendAdapterConfig, AdapterMetadata } from 'ai.matey.types';
10
+ import type { IRChatRequest, IRChatResponse, IRChatStream } from 'ai.matey.types';
11
+ export type CloudflareMessageContent = string | Array<{
12
+ type: 'text';
13
+ text: string;
14
+ } | {
15
+ type: 'image_url';
16
+ image_url: {
17
+ url: string;
18
+ };
19
+ }>;
20
+ export interface CloudflareMessage {
21
+ role: 'system' | 'user' | 'assistant' | 'tool';
22
+ content: CloudflareMessageContent;
23
+ name?: string;
24
+ tool_calls?: Array<{
25
+ id: string;
26
+ type: 'function';
27
+ function: {
28
+ name: string;
29
+ arguments: string;
30
+ };
31
+ }>;
32
+ }
33
+ export interface CloudflareRequest {
34
+ model: string;
35
+ messages: CloudflareMessage[];
36
+ temperature?: number;
37
+ max_tokens?: number;
38
+ top_p?: number;
39
+ frequency_penalty?: number;
40
+ presence_penalty?: number;
41
+ stop?: string[];
42
+ stream?: boolean;
43
+ }
44
+ export interface CloudflareResponse {
45
+ id: string;
46
+ object: 'chat.completion';
47
+ created: number;
48
+ model: string;
49
+ choices: Array<{
50
+ index: number;
51
+ message: CloudflareMessage;
52
+ finish_reason: 'stop' | 'length' | 'tool_calls' | null;
53
+ }>;
54
+ usage?: {
55
+ prompt_tokens: number;
56
+ completion_tokens: number;
57
+ total_tokens: number;
58
+ };
59
+ }
60
+ export interface CloudflareStreamChunk {
61
+ id: string;
62
+ object: 'chat.completion.chunk';
63
+ created: number;
64
+ model: string;
65
+ choices: Array<{
66
+ index: number;
67
+ delta: {
68
+ role?: 'assistant';
69
+ content?: string;
70
+ };
71
+ finish_reason: 'stop' | 'length' | null;
72
+ }>;
73
+ }
74
+ export interface CloudflareConfig extends BackendAdapterConfig {
75
+ accountId?: string;
76
+ }
77
+ /**
78
+ * Backend adapter for Cloudflare Workers AI Chat Completions API.
79
+ *
80
+ * Features:
81
+ * - OpenAI-compatible API
82
+ * - Edge computing platform
83
+ * - Vision model support
84
+ * - Function calling support
85
+ * - Neuron-based pricing (pay per inference, not per token)
86
+ * - Global edge network for low latency
87
+ */
88
+ export declare class CloudflareBackendAdapter implements BackendAdapter<CloudflareRequest, CloudflareResponse> {
89
+ readonly metadata: AdapterMetadata;
90
+ private readonly config;
91
+ private readonly accountId;
92
+ private readonly baseURL;
93
+ constructor(config: CloudflareConfig);
94
+ /**
95
+ * Convert IR to Cloudflare format.
96
+ */
97
+ fromIR(request: IRChatRequest): CloudflareRequest;
98
+ /**
99
+ * Convert Cloudflare response to IR.
100
+ */
101
+ toIR(response: CloudflareResponse, originalRequest: IRChatRequest, latencyMs: number): IRChatResponse;
102
+ /**
103
+ * Execute non-streaming request.
104
+ */
105
+ execute(request: IRChatRequest, signal?: AbortSignal): Promise<IRChatResponse>;
106
+ /**
107
+ * Execute streaming request.
108
+ */
109
+ executeStream(request: IRChatRequest, signal?: AbortSignal): IRChatStream;
110
+ /**
111
+ * Get HTTP headers.
112
+ */
113
+ private getHeaders;
114
+ /**
115
+ * Health check.
116
+ */
117
+ healthCheck(): Promise<boolean>;
118
+ /**
119
+ * Estimate cost.
120
+ * Cloudflare uses neuron-based pricing (per inference, not per token).
121
+ * Approximate cost based on model size.
122
+ */
123
+ estimateCost(request: IRChatRequest): Promise<number | null>;
124
+ }
125
+ //# sourceMappingURL=cloudflare.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloudflare.d.ts","sourceRoot":"","sources":["../../../src/providers/cloudflare.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Cohere Backend Adapter
3
+ *
4
+ * Adapts Universal IR to Cohere Chat API.
5
+ * Cohere has a custom API format optimized for RAG use cases.
6
+ *
7
+ * @module
8
+ */
9
+ import type { BackendAdapter, BackendAdapterConfig, AdapterMetadata } from 'ai.matey.types';
10
+ import type { IRChatRequest, IRChatResponse, IRChatStream } from 'ai.matey.types';
11
+ export interface CohereChatMessage {
12
+ role: 'USER' | 'CHATBOT';
13
+ message: string;
14
+ }
15
+ export interface CohereRequest {
16
+ model?: string;
17
+ message: string;
18
+ chat_history?: CohereChatMessage[];
19
+ preamble?: string;
20
+ temperature?: number;
21
+ max_tokens?: number;
22
+ p?: number;
23
+ k?: number;
24
+ frequency_penalty?: number;
25
+ presence_penalty?: number;
26
+ stop_sequences?: string[];
27
+ stream?: boolean;
28
+ documents?: Array<{
29
+ id?: string;
30
+ data: Record<string, any>;
31
+ }>;
32
+ connectors?: Array<{
33
+ id: string;
34
+ }>;
35
+ }
36
+ export interface CohereResponse {
37
+ generation_id: string;
38
+ text: string;
39
+ finish_reason: 'COMPLETE' | 'MAX_TOKENS' | 'ERROR' | 'ERROR_TOXIC';
40
+ meta?: {
41
+ api_version: {
42
+ version: string;
43
+ };
44
+ billed_units?: {
45
+ input_tokens: number;
46
+ output_tokens: number;
47
+ };
48
+ };
49
+ citations?: Array<{
50
+ start: number;
51
+ end: number;
52
+ text: string;
53
+ document_ids: string[];
54
+ }>;
55
+ }
56
+ export interface CohereStreamChunk {
57
+ event_type: 'stream-start' | 'text-generation' | 'stream-end' | 'citation-generation';
58
+ text?: string;
59
+ finish_reason?: 'COMPLETE' | 'MAX_TOKENS' | 'ERROR' | 'ERROR_TOXIC';
60
+ generation_id?: string;
61
+ citations?: Array<{
62
+ start: number;
63
+ end: number;
64
+ text: string;
65
+ document_ids: string[];
66
+ }>;
67
+ }
68
+ /**
69
+ * Backend adapter for Cohere Chat API.
70
+ *
71
+ * Features:
72
+ * - Custom API optimized for RAG
73
+ * - Document and connector support
74
+ * - Citation generation
75
+ * - Text-only (no vision support)
76
+ * - No function calling
77
+ * - Pricing from $0.15 per 1M tokens
78
+ */
79
+ export declare class CohereBackendAdapter implements BackendAdapter<CohereRequest, CohereResponse> {
80
+ readonly metadata: AdapterMetadata;
81
+ private readonly config;
82
+ private readonly baseURL;
83
+ constructor(config: BackendAdapterConfig);
84
+ /**
85
+ * Convert IR to Cohere format.
86
+ */
87
+ fromIR(request: IRChatRequest): CohereRequest;
88
+ /**
89
+ * Convert Cohere response to IR.
90
+ */
91
+ toIR(response: CohereResponse, originalRequest: IRChatRequest, latencyMs: number): IRChatResponse;
92
+ /**
93
+ * Execute non-streaming request.
94
+ */
95
+ execute(request: IRChatRequest, signal?: AbortSignal): Promise<IRChatResponse>;
96
+ /**
97
+ * Execute streaming request.
98
+ */
99
+ executeStream(request: IRChatRequest, signal?: AbortSignal): IRChatStream;
100
+ /**
101
+ * Get HTTP headers.
102
+ * Cohere uses Authorization: Bearer token.
103
+ */
104
+ private getHeaders;
105
+ /**
106
+ * Health check.
107
+ */
108
+ healthCheck(): Promise<boolean>;
109
+ /**
110
+ * Estimate cost.
111
+ */
112
+ estimateCost(request: IRChatRequest): Promise<number | null>;
113
+ }
114
+ //# sourceMappingURL=cohere.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cohere.d.ts","sourceRoot":"","sources":["../../../src/providers/cohere.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,118 @@
1
+ /**
2
+ * DeepInfra Backend Adapter
3
+ *
4
+ * Adapts Universal IR to DeepInfra Chat Completions API.
5
+ * DeepInfra is OpenAI-compatible with detailed cost estimation.
6
+ *
7
+ * @module
8
+ */
9
+ import type { BackendAdapter, BackendAdapterConfig, AdapterMetadata } from 'ai.matey.types';
10
+ import type { IRChatRequest, IRChatResponse, IRChatStream } from 'ai.matey.types';
11
+ export type DeepInfraMessageContent = string | Array<{
12
+ type: 'text';
13
+ text: string;
14
+ } | {
15
+ type: 'image_url';
16
+ image_url: {
17
+ url: string;
18
+ };
19
+ }>;
20
+ export interface DeepInfraMessage {
21
+ role: 'system' | 'user' | 'assistant' | 'tool';
22
+ content: DeepInfraMessageContent;
23
+ name?: string;
24
+ tool_calls?: Array<{
25
+ id: string;
26
+ type: 'function';
27
+ function: {
28
+ name: string;
29
+ arguments: string;
30
+ };
31
+ }>;
32
+ }
33
+ export interface DeepInfraRequest {
34
+ model: string;
35
+ messages: DeepInfraMessage[];
36
+ temperature?: number;
37
+ max_tokens?: number;
38
+ top_p?: number;
39
+ frequency_penalty?: number;
40
+ presence_penalty?: number;
41
+ stop?: string[];
42
+ stream?: boolean;
43
+ }
44
+ export interface DeepInfraResponse {
45
+ id: string;
46
+ object: 'chat.completion';
47
+ created: number;
48
+ model: string;
49
+ choices: Array<{
50
+ index: number;
51
+ message: DeepInfraMessage;
52
+ finish_reason: 'stop' | 'length' | 'tool_calls' | null;
53
+ }>;
54
+ usage?: {
55
+ prompt_tokens: number;
56
+ completion_tokens: number;
57
+ total_tokens: number;
58
+ };
59
+ }
60
+ export interface DeepInfraStreamChunk {
61
+ id: string;
62
+ object: 'chat.completion.chunk';
63
+ created: number;
64
+ model: string;
65
+ choices: Array<{
66
+ index: number;
67
+ delta: {
68
+ role?: 'assistant';
69
+ content?: string;
70
+ };
71
+ finish_reason: 'stop' | 'length' | null;
72
+ }>;
73
+ }
74
+ /**
75
+ * Backend adapter for DeepInfra Chat Completions API.
76
+ *
77
+ * Features:
78
+ * - OpenAI-compatible API
79
+ * - Detailed cost estimation
80
+ * - Vision model support
81
+ * - Function calling support
82
+ * - Competitive pricing starting at $0.40 per 1M tokens
83
+ */
84
+ export declare class DeepInfraBackendAdapter implements BackendAdapter<DeepInfraRequest, DeepInfraResponse> {
85
+ readonly metadata: AdapterMetadata;
86
+ private readonly config;
87
+ private readonly baseURL;
88
+ constructor(config: BackendAdapterConfig);
89
+ /**
90
+ * Convert IR to DeepInfra format.
91
+ */
92
+ fromIR(request: IRChatRequest): DeepInfraRequest;
93
+ /**
94
+ * Convert DeepInfra response to IR.
95
+ */
96
+ toIR(response: DeepInfraResponse, originalRequest: IRChatRequest, latencyMs: number): IRChatResponse;
97
+ /**
98
+ * Execute non-streaming request.
99
+ */
100
+ execute(request: IRChatRequest, signal?: AbortSignal): Promise<IRChatResponse>;
101
+ /**
102
+ * Execute streaming request.
103
+ */
104
+ executeStream(request: IRChatRequest, signal?: AbortSignal): IRChatStream;
105
+ /**
106
+ * Get HTTP headers.
107
+ */
108
+ private getHeaders;
109
+ /**
110
+ * Health check.
111
+ */
112
+ healthCheck(): Promise<boolean>;
113
+ /**
114
+ * Estimate cost with detailed pricing.
115
+ */
116
+ estimateCost(request: IRChatRequest): Promise<number | null>;
117
+ }
118
+ //# sourceMappingURL=deepinfra.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deepinfra.d.ts","sourceRoot":"","sources":["../../../src/providers/deepinfra.ts"],"names":[],"mappings":"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"}