@absolutejs/ai 0.0.50 → 0.0.52

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 (36) hide show
  1. package/README.md +84 -15
  2. package/dist/ai/client/index.js +30 -1
  3. package/dist/ai/client/index.js.map +5 -5
  4. package/dist/ai/index.js +753 -62
  5. package/dist/ai/index.js.map +15 -15
  6. package/dist/ai/providers/anthropic.js +100 -25
  7. package/dist/ai/providers/anthropic.js.map +5 -5
  8. package/dist/ai/providers/gemini.js +5 -2
  9. package/dist/ai/providers/gemini.js.map +4 -4
  10. package/dist/ai/providers/ollama.js +5 -2
  11. package/dist/ai/providers/ollama.js.map +4 -4
  12. package/dist/ai/providers/openai.js +56 -10
  13. package/dist/ai/providers/openai.js.map +5 -5
  14. package/dist/ai/providers/openaiCompatible.js +56 -10
  15. package/dist/ai/providers/openaiCompatible.js.map +5 -5
  16. package/dist/ai/providers/openaiResponses.js +100 -16
  17. package/dist/ai/providers/openaiResponses.js.map +5 -5
  18. package/dist/ai/providers/openrouter.js +1111 -45
  19. package/dist/ai/providers/openrouter.js.map +10 -9
  20. package/dist/angular/ai/index.js +30 -1
  21. package/dist/angular/ai/index.js.map +5 -5
  22. package/dist/react/ai/index.js +30 -1
  23. package/dist/react/ai/index.js.map +5 -5
  24. package/dist/src/ai/client/actions.d.ts +53 -0
  25. package/dist/src/ai/errors/providerError.d.ts +3 -0
  26. package/dist/src/ai/index.d.ts +2 -2
  27. package/dist/src/ai/providers/openrouter.d.ts +56 -3
  28. package/dist/src/ai/providers/openrouterClient.d.ts +495 -9
  29. package/dist/src/ai/streamAIWithTools.d.ts +6 -0
  30. package/dist/svelte/ai/index.js +30 -1
  31. package/dist/svelte/ai/index.js.map +5 -5
  32. package/dist/types/ai.d.ts +54 -3
  33. package/dist/types/anthropic.d.ts +13 -5
  34. package/dist/vue/ai/index.js +30 -1
  35. package/dist/vue/ai/index.js.map +5 -5
  36. package/package.json +1 -1
@@ -13,6 +13,8 @@ export declare const serverMessageToAction: (message: AIServerMessage) => {
13
13
  imageId?: undefined;
14
14
  isPartial?: undefined;
15
15
  revisedPrompt?: undefined;
16
+ audioId?: undefined;
17
+ transcript?: undefined;
16
18
  durationMs?: undefined;
17
19
  model?: undefined;
18
20
  sources?: undefined;
@@ -42,6 +44,8 @@ export declare const serverMessageToAction: (message: AIServerMessage) => {
42
44
  imageId?: undefined;
43
45
  isPartial?: undefined;
44
46
  revisedPrompt?: undefined;
47
+ audioId?: undefined;
48
+ transcript?: undefined;
45
49
  durationMs?: undefined;
46
50
  model?: undefined;
47
51
  sources?: undefined;
@@ -71,6 +75,8 @@ export declare const serverMessageToAction: (message: AIServerMessage) => {
71
75
  imageId?: undefined;
72
76
  isPartial?: undefined;
73
77
  revisedPrompt?: undefined;
78
+ audioId?: undefined;
79
+ transcript?: undefined;
74
80
  durationMs?: undefined;
75
81
  model?: undefined;
76
82
  sources?: undefined;
@@ -100,6 +106,39 @@ export declare const serverMessageToAction: (message: AIServerMessage) => {
100
106
  name?: undefined;
101
107
  result?: undefined;
102
108
  status?: undefined;
109
+ audioId?: undefined;
110
+ transcript?: undefined;
111
+ durationMs?: undefined;
112
+ model?: undefined;
113
+ sources?: undefined;
114
+ usage?: undefined;
115
+ position?: undefined;
116
+ attachments?: undefined;
117
+ fromMessageId?: undefined;
118
+ mode?: undefined;
119
+ newConversationId?: undefined;
120
+ oldConversationId?: undefined;
121
+ retrievalStartedAt?: undefined;
122
+ retrievalDurationMs?: undefined;
123
+ retrievedAt?: undefined;
124
+ trace?: undefined;
125
+ message?: undefined;
126
+ } | {
127
+ audioId: string | undefined;
128
+ conversationId: string;
129
+ data: string;
130
+ format: string;
131
+ messageId: string;
132
+ transcript: string | undefined;
133
+ type: "audio";
134
+ content?: undefined;
135
+ input?: undefined;
136
+ name?: undefined;
137
+ result?: undefined;
138
+ status?: undefined;
139
+ imageId?: undefined;
140
+ isPartial?: undefined;
141
+ revisedPrompt?: undefined;
103
142
  durationMs?: undefined;
104
143
  model?: undefined;
105
144
  sources?: undefined;
@@ -133,6 +172,8 @@ export declare const serverMessageToAction: (message: AIServerMessage) => {
133
172
  imageId?: undefined;
134
173
  isPartial?: undefined;
135
174
  revisedPrompt?: undefined;
175
+ audioId?: undefined;
176
+ transcript?: undefined;
136
177
  position?: undefined;
137
178
  attachments?: undefined;
138
179
  fromMessageId?: undefined;
@@ -159,6 +200,8 @@ export declare const serverMessageToAction: (message: AIServerMessage) => {
159
200
  imageId?: undefined;
160
201
  isPartial?: undefined;
161
202
  revisedPrompt?: undefined;
203
+ audioId?: undefined;
204
+ transcript?: undefined;
162
205
  durationMs?: undefined;
163
206
  model?: undefined;
164
207
  sources?: undefined;
@@ -187,6 +230,8 @@ export declare const serverMessageToAction: (message: AIServerMessage) => {
187
230
  imageId?: undefined;
188
231
  isPartial?: undefined;
189
232
  revisedPrompt?: undefined;
233
+ audioId?: undefined;
234
+ transcript?: undefined;
190
235
  durationMs?: undefined;
191
236
  model?: undefined;
192
237
  sources?: undefined;
@@ -221,6 +266,8 @@ export declare const serverMessageToAction: (message: AIServerMessage) => {
221
266
  imageId?: undefined;
222
267
  isPartial?: undefined;
223
268
  revisedPrompt?: undefined;
269
+ audioId?: undefined;
270
+ transcript?: undefined;
224
271
  durationMs?: undefined;
225
272
  model?: undefined;
226
273
  sources?: undefined;
@@ -246,6 +293,8 @@ export declare const serverMessageToAction: (message: AIServerMessage) => {
246
293
  imageId?: undefined;
247
294
  isPartial?: undefined;
248
295
  revisedPrompt?: undefined;
296
+ audioId?: undefined;
297
+ transcript?: undefined;
249
298
  durationMs?: undefined;
250
299
  model?: undefined;
251
300
  sources?: undefined;
@@ -279,6 +328,8 @@ export declare const serverMessageToAction: (message: AIServerMessage) => {
279
328
  imageId?: undefined;
280
329
  isPartial?: undefined;
281
330
  revisedPrompt?: undefined;
331
+ audioId?: undefined;
332
+ transcript?: undefined;
282
333
  durationMs?: undefined;
283
334
  model?: undefined;
284
335
  usage?: undefined;
@@ -304,6 +355,8 @@ export declare const serverMessageToAction: (message: AIServerMessage) => {
304
355
  imageId?: undefined;
305
356
  isPartial?: undefined;
306
357
  revisedPrompt?: undefined;
358
+ audioId?: undefined;
359
+ transcript?: undefined;
307
360
  durationMs?: undefined;
308
361
  model?: undefined;
309
362
  sources?: undefined;
@@ -9,6 +9,8 @@ export type ProviderErrorInit = {
9
9
  type?: string | null;
10
10
  retryable: boolean;
11
11
  cause?: unknown;
12
+ /** Provider-native structured details, when the response exposes them. */
13
+ metadata?: Record<string, unknown>;
12
14
  };
13
15
  export declare class ProviderError extends Error {
14
16
  readonly provider: string;
@@ -17,6 +19,7 @@ export declare class ProviderError extends Error {
17
19
  readonly type: string | null;
18
20
  /** Whether retrying the same request later could plausibly succeed. */
19
21
  readonly retryable: boolean;
22
+ readonly metadata: Record<string, unknown> | undefined;
20
23
  /** Provider status page, when known — for surfacing "is it them?" to users. */
21
24
  readonly statusPageUrl: string | null;
22
25
  constructor(init: ProviderErrorInit);
@@ -24,8 +24,8 @@ export { gemini } from "./providers/gemini";
24
24
  export { anthropic } from "./providers/anthropic";
25
25
  export { ollama } from "./providers/ollama";
26
26
  export { openai } from "./providers/openai";
27
- export { createOpenRouterClient, openrouter, openrouterResponses, openRouterModelMatchesRule, } from "./providers/openrouter";
28
- export type { OpenRouterClient, OpenRouterClientConfig, OpenRouterConfig, OpenRouterDataCollection, OpenRouterEmbeddingRequest, OpenRouterEmbeddingResponse, OpenRouterHttpRequestOptions, OpenRouterImageRequest, OpenRouterImageResponse, OpenRouterMaxPrice, OpenRouterModel, OpenRouterModelList, OpenRouterPerformancePreference, OpenRouterPlugin, OpenRouterProviderRouting, OpenRouterQuantization, OpenRouterRequestOptions, OpenRouterRerankRequest, OpenRouterRerankResponse, OpenRouterResponseCache, OpenRouterResponsesRequest, OpenRouterServerTool, OpenRouterServiceTier, OpenRouterSpeechRequest, OpenRouterSort, OpenRouterSortStrategy, OpenRouterTranscriptionRequest, OpenRouterVideoRequest, } from "./providers/openrouter";
27
+ export { createOpenRouterAuthorizationUrl, createOpenRouterClient, createOpenRouterKeyLinks, estimateOpenRouterCost, estimateOpenRouterModelCost, exchangeOpenRouterAuthCode, generateOpenRouterPKCE, openrouter, openrouterMessages, openrouterResponses, openRouterModelMatchesRule, verifyOpenRouterWebhookSignature, } from "./providers/openrouter";
28
+ export type { OpenRouterActivityItem, OpenRouterActivityQuery, OpenRouterAnalyticsMeta, OpenRouterAnalyticsQuery, OpenRouterAnalyticsResponse, OpenRouterAuthCodeExchangeRequest, OpenRouterAuthCodeExchangeResponse, OpenRouterAutoRouterCostTier, OpenRouterAutoRouterPlugin, OpenRouterAuthorizationUrlOptions, OpenRouterBatch, OpenRouterBatchEndpoint, OpenRouterBatchRequest, OpenRouterBatchResult, OpenRouterBatchStatus, OpenRouterClient, OpenRouterClientConfig, OpenRouterConfig, OpenRouterCostEstimate, OpenRouterCostUnits, OpenRouterCreateAuthCodeRequest, OpenRouterCreateAuthCodeResponse, OpenRouterCreateBatchRequest, OpenRouterCreateWorkspaceRequest, OpenRouterDataCollection, OpenRouterEmbeddingRequest, OpenRouterEmbeddingResponse, OpenRouterFile, OpenRouterFileList, OpenRouterHttpRequestOptions, OpenRouterImageModelEndpoint, OpenRouterImageModelEndpoints, OpenRouterImageRequest, OpenRouterImageResponse, OpenRouterImageStreamEvent, OpenRouterMaxPrice, OpenRouterModel, OpenRouterModelList, OpenRouterModelQuery, OpenRouterPerformancePreference, OpenRouterPlugin, OpenRouterPKCE, OpenRouterPreset, OpenRouterPresetInferenceRequest, OpenRouterPresetResponse, OpenRouterPresetVersion, OpenRouterPresetVersionResponse, OpenRouterPricing, OpenRouterPricingKey, OpenRouterProviderRouting, OpenRouterQuantization, OpenRouterRequestOptions, OpenRouterRerankRequest, OpenRouterRerankResponse, OpenRouterResponseCache, OpenRouterResponsesRequest, OpenRouterServerTool, OpenRouterServiceTier, OpenRouterSpeechRequest, OpenRouterSort, OpenRouterSortStrategy, OpenRouterTrace, OpenRouterTaskClassifications, OpenRouterTranscriptionRequest, OpenRouterTranscriptionResponse, OpenRouterVideoJob, OpenRouterVideoRequest, OpenRouterVideoWebhookEvent, OpenRouterWorkspace, OpenRouterWorkspaceBudget, OpenRouterWorkspaceBudgetInterval, OpenRouterWorkspaceMember, OpenRouterWorkspaceOptions, OpenRouterZdrEndpoint, } from "./providers/openrouter";
29
29
  export { createOAuth2ClientCredentialsTokenSource } from "./providers/oauth2TokenSource";
30
30
  export type { OAuth2ClientCredentialsConfig } from "./providers/oauth2TokenSource";
31
31
  export { ProviderError, PROVIDER_STATUS_PAGES, providerStatusPage, } from "./errors/providerError";
@@ -44,7 +44,44 @@ export type OpenRouterResponseCache = {
44
44
  /** OpenRouter response-cache TTL in seconds (1-86400). */
45
45
  ttlSeconds?: number;
46
46
  };
47
- export type OpenRouterPlugin = {
47
+ export type OpenRouterCacheControl = {
48
+ type: "ephemeral";
49
+ ttl?: "5m" | "1h";
50
+ };
51
+ export type OpenRouterPromptCacheOptions = {
52
+ mode: "explicit";
53
+ ttl?: string;
54
+ };
55
+ export type OpenRouterReasoning = {
56
+ context?: "all_turns" | "auto" | "current_turn";
57
+ effort?: "minimal" | "low" | "medium" | "high" | "max" | "xhigh";
58
+ enabled?: boolean;
59
+ exclude?: boolean;
60
+ maxTokens?: number;
61
+ mode?: "pro";
62
+ summary?: "auto" | "concise" | "detailed";
63
+ };
64
+ export type OpenRouterTrace = Record<string, unknown> & {
65
+ generation_name?: string;
66
+ parent_span_id?: string;
67
+ span_name?: string;
68
+ trace_id?: string;
69
+ trace_name?: string;
70
+ };
71
+ export type OpenRouterAudioOutput = {
72
+ format: "wav" | "mp3" | "flac" | "opus" | "pcm16";
73
+ voice: string;
74
+ };
75
+ export type OpenRouterAutoRouterCostTier = "low" | "medium" | "high" | "xhigh" | "max";
76
+ export type OpenRouterAutoRouterPlugin = {
77
+ id: "auto-router";
78
+ /** Restrict Auto Router candidates; omitted means the full catalog. */
79
+ allowed_models?: readonly string[];
80
+ cost_tier?: OpenRouterAutoRouterCostTier;
81
+ /** Legacy numeric control. When present, OpenRouter prioritizes it over cost_tier. */
82
+ cost_quality_tradeoff?: number;
83
+ };
84
+ export type OpenRouterPlugin = OpenRouterAutoRouterPlugin | {
48
85
  id: string;
49
86
  [option: string]: unknown;
50
87
  };
@@ -53,20 +90,34 @@ export type OpenRouterServerTool = {
53
90
  parameters?: Record<string, unknown>;
54
91
  };
55
92
  export type OpenRouterRequestOptions = {
93
+ /** Stream text and synthesized audio from an audio-output chat model. */
94
+ audioOutput?: OpenRouterAudioOutput;
95
+ /** Automatic top-level prompt caching, including optional Anthropic TTL. */
96
+ cacheControl?: OpenRouterCacheControl;
56
97
  /** Future OpenRouter fields. Security-sensitive routing fields are rejected. */
57
98
  extraBody?: Record<string, unknown>;
58
99
  fallbackModels?: readonly string[];
59
100
  includeReasoning?: boolean;
60
101
  maxToolCalls?: number;
102
+ /** Native `/messages` server-tool definitions and replayable tool shapes. */
103
+ messagesTools?: readonly Record<string, unknown>[];
61
104
  plugins?: readonly OpenRouterPlugin[];
105
+ /** Stable cache identity used by compatible OpenAI-family models. */
106
+ promptCacheKey?: string;
107
+ /** OpenAI explicit-cache mode and TTL. */
108
+ promptCacheOptions?: OpenRouterPromptCacheOptions;
62
109
  preset?: string;
63
110
  responseCache?: OpenRouterResponseCache;
111
+ /** OpenRouter-native reasoning controls beyond the portable effort knob. */
112
+ reasoning?: OpenRouterReasoning;
64
113
  routerMetadata?: boolean;
65
114
  routing?: OpenRouterProviderRouting;
66
115
  serverTools?: readonly OpenRouterServerTool[];
67
116
  serviceTier?: OpenRouterServiceTier;
68
117
  sessionId?: string;
69
118
  stopServerToolsWhen?: readonly Record<string, unknown>[];
119
+ /** Metadata forwarded to configured OpenRouter Broadcast destinations. */
120
+ trace?: OpenRouterTrace;
70
121
  transforms?: readonly string[];
71
122
  user?: string;
72
123
  verbosity?: "low" | "medium" | "high";
@@ -109,5 +160,7 @@ export type OpenRouterConfig = {
109
160
  export declare const openrouter: (config: OpenRouterConfig) => AIProviderConfig;
110
161
  /** OpenRouter's stateless OpenAI-compatible Responses API provider skin. */
111
162
  export declare const openrouterResponses: (config: OpenRouterConfig) => AIProviderConfig;
112
- export { createOpenRouterClient, openRouterModelMatchesRule, } from "./openrouterClient";
113
- export type { OpenRouterClient, OpenRouterClientConfig, OpenRouterEmbeddingRequest, OpenRouterEmbeddingResponse, OpenRouterHttpRequestOptions, OpenRouterImageRequest, OpenRouterImageResponse, OpenRouterModel, OpenRouterModelList, OpenRouterRerankRequest, OpenRouterRerankResponse, OpenRouterResponsesRequest, OpenRouterSpeechRequest, OpenRouterTranscriptionRequest, OpenRouterVideoRequest, } from "./openrouterClient";
163
+ /** OpenRouter provider using the native Anthropic Messages protocol skin. */
164
+ export declare const openrouterMessages: (config: OpenRouterConfig) => AIProviderConfig;
165
+ export { createOpenRouterAuthorizationUrl, createOpenRouterClient, createOpenRouterKeyLinks, estimateOpenRouterCost, estimateOpenRouterModelCost, exchangeOpenRouterAuthCode, generateOpenRouterPKCE, openRouterModelMatchesRule, verifyOpenRouterWebhookSignature, } from "./openrouterClient";
166
+ export type { OpenRouterActivityItem, OpenRouterActivityQuery, OpenRouterAnalyticsMeta, OpenRouterAnalyticsQuery, OpenRouterAnalyticsResponse, OpenRouterAuthCodeExchangeRequest, OpenRouterAuthCodeExchangeResponse, OpenRouterAuthorizationUrlOptions, OpenRouterBatch, OpenRouterBatchEndpoint, OpenRouterBatchRequest, OpenRouterBatchResult, OpenRouterBatchStatus, OpenRouterClient, OpenRouterClientConfig, OpenRouterCostEstimate, OpenRouterCostUnits, OpenRouterCreateAuthCodeRequest, OpenRouterCreateAuthCodeResponse, OpenRouterCreateBatchRequest, OpenRouterCreateWorkspaceRequest, OpenRouterEmbeddingRequest, OpenRouterEmbeddingResponse, OpenRouterFile, OpenRouterFileList, OpenRouterHttpRequestOptions, OpenRouterImageModelEndpoint, OpenRouterImageModelEndpoints, OpenRouterImageRequest, OpenRouterImageResponse, OpenRouterImageStreamEvent, OpenRouterModel, OpenRouterModelList, OpenRouterModelQuery, OpenRouterPreset, OpenRouterPresetInferenceRequest, OpenRouterPresetResponse, OpenRouterPresetVersion, OpenRouterPresetVersionResponse, OpenRouterPricing, OpenRouterPricingKey, OpenRouterPKCE, OpenRouterRerankRequest, OpenRouterRerankResponse, OpenRouterResponsesRequest, OpenRouterSpeechRequest, OpenRouterTranscriptionRequest, OpenRouterTranscriptionResponse, OpenRouterTaskClassifications, OpenRouterVideoJob, OpenRouterVideoRequest, OpenRouterVideoWebhookEvent, OpenRouterWorkspace, OpenRouterWorkspaceBudget, OpenRouterWorkspaceBudgetInterval, OpenRouterWorkspaceMember, OpenRouterWorkspaceOptions, OpenRouterZdrEndpoint, } from "./openrouterClient";