@absolutejs/ai 0.0.54 → 0.0.56

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 (35) hide show
  1. package/README.md +25 -0
  2. package/dist/ai/client/index.js +5 -5
  3. package/dist/ai/client/index.js.map +1 -1
  4. package/dist/ai/index.js +238 -122
  5. package/dist/ai/index.js.map +5 -5
  6. package/dist/ai/providers/anthropic.js +76 -5
  7. package/dist/ai/providers/anthropic.js.map +3 -3
  8. package/dist/ai/providers/gemini.js +1 -1
  9. package/dist/ai/providers/gemini.js.map +1 -1
  10. package/dist/ai/providers/ollama.js +1 -1
  11. package/dist/ai/providers/ollama.js.map +1 -1
  12. package/dist/ai/providers/openai.js +1 -1
  13. package/dist/ai/providers/openai.js.map +1 -1
  14. package/dist/ai/providers/openaiCompatible.js +8 -8
  15. package/dist/ai/providers/openaiCompatible.js.map +1 -1
  16. package/dist/ai/providers/openaiResponses.js +1 -1
  17. package/dist/ai/providers/openaiResponses.js.map +1 -1
  18. package/dist/ai/providers/openrouter.js +90 -19
  19. package/dist/ai/providers/openrouter.js.map +3 -3
  20. package/dist/ai/providers/openrouterSDK.js +3 -3
  21. package/dist/ai/providers/openrouterSDK.js.map +1 -1
  22. package/dist/ai/tools/index.js +4 -4
  23. package/dist/ai/tools/index.js.map +2 -2
  24. package/dist/ai/tools/untrusted.js +3 -3
  25. package/dist/ai/tools/untrusted.js.map +2 -2
  26. package/dist/ai/ui/index.js +42 -42
  27. package/dist/ai/ui/index.js.map +2 -2
  28. package/dist/react/ai/index.js +3 -3
  29. package/dist/react/ai/index.js.map +1 -1
  30. package/dist/src/ai/generateAI.d.ts +4 -0
  31. package/dist/src/ai/index.d.ts +1 -0
  32. package/dist/types/anthropic.d.ts +26 -0
  33. package/dist/vue/ai/index.js +3 -3
  34. package/dist/vue/ai/index.js.map +1 -1
  35. package/package.json +199 -199
package/README.md CHANGED
@@ -5,6 +5,31 @@ Standalone AI runtime and provider package extracted from AbsoluteJS.
5
5
  This package currently focuses on generic AI/chat/provider functionality.
6
6
  RAG remains a separate package.
7
7
 
8
+ ## Anthropic hosted web search
9
+
10
+ The Anthropic provider can request native hosted web search without a custom
11
+ client tool. Search blocks are replayable provider data, citations are emitted
12
+ as portable `citation` chunks, usage includes `serverToolUse`, and
13
+ `streamAIWithTools` continues `pause_turn` responses automatically.
14
+
15
+ ```ts
16
+ const result = await generateAI({
17
+ provider: anthropic({ apiKey: process.env.ANTHROPIC_API_KEY }),
18
+ model: "claude-sonnet-4-6",
19
+ messages: [{ role: "user", content: "What changed today?" }],
20
+ providerOptions: {
21
+ anthropic: {
22
+ serverTools: [
23
+ {
24
+ type: "anthropic:web_search",
25
+ parameters: { maxUses: 3 },
26
+ },
27
+ ],
28
+ },
29
+ },
30
+ });
31
+ ```
32
+
8
33
  Provider traffic can cross a trusted control plane without reimplementing a
9
34
  vendor protocol. `remoteProvider()` carries normalized provider parameters and
10
35
  chunks over SSE, while `createProviderProxyResponse()` hosts any
@@ -888,12 +888,12 @@ var createConversationTurnQueue = (options) => {
888
888
  };
889
889
  };
890
890
  export {
891
- serverMessageToAction,
892
- createConversationTurnQueue,
893
- createAIStream,
891
+ ConversationTurnQueueFullError,
894
892
  createAIConnection,
895
- ConversationTurnQueueFullError
893
+ createAIStream,
894
+ createConversationTurnQueue,
895
+ serverMessageToAction
896
896
  };
897
897
 
898
- //# debugId=5154A8EF40F9511964756E2164756E21
898
+ //# debugId=569B20535DF6EC3464756E2164756E21
899
899
  //# sourceMappingURL=index.js.map
@@ -11,6 +11,6 @@
11
11
  "export type ConversationTurnQueueStatus = \"failed\" | \"queued\" | \"running\";\n\nexport type ConversationTurnQueueItem<Input> = {\n error?: unknown;\n id: string;\n input: Input;\n status: ConversationTurnQueueStatus;\n};\n\nexport type ConversationTurnQueueSnapshot<Input> = {\n items: ReadonlyArray<ConversationTurnQueueItem<Input>>;\n running: boolean;\n};\n\nexport type ConversationTurnQueueOptions<Input> = {\n execute: (\n input: Input,\n context: { id: string; signal: AbortSignal },\n ) => Promise<void>;\n maxSize?: number;\n onError?: (error: unknown, item: ConversationTurnQueueItem<Input>) => void;\n};\n\nconst DEFAULT_MAX_SIZE = 100;\n\nexport class ConversationTurnQueueFullError extends Error {\n constructor(maxSize: number) {\n super(`Conversation turn queue is full (${maxSize} items)`);\n this.name = \"ConversationTurnQueueFullError\";\n }\n}\n\n/**\n * Serializes turns for one conversation.\n *\n * The queue is transport-agnostic: WebSocket chat, REST/SSE applications, and\n * durable adapters can all provide their own `execute` boundary. Failed turns\n * remain visible and stop the queue until the host retries or removes them, so\n * a later follow-up can never silently overtake a failed earlier message.\n */\nexport const createConversationTurnQueue = <Input>(\n options: ConversationTurnQueueOptions<Input>,\n) => {\n const maxSize = options.maxSize ?? DEFAULT_MAX_SIZE;\n const items: ConversationTurnQueueItem<Input>[] = [];\n const listeners = new Set<\n (snapshot: ConversationTurnQueueSnapshot<Input>) => void\n >();\n let activeAbort: AbortController | null = null;\n let draining = false;\n\n const snapshot = (): ConversationTurnQueueSnapshot<Input> => ({\n items: items.map((item) => ({ ...item })),\n running: items.some(({ status }) => status === \"running\"),\n });\n\n const notify = () => {\n const next = snapshot();\n listeners.forEach((listener) => listener(next));\n };\n\n const drain = async () => {\n if (draining) return;\n const next = items.find(({ status }) => status === \"queued\");\n if (!next || items.some(({ status }) => status === \"failed\")) return;\n draining = true;\n next.status = \"running\";\n activeAbort = new AbortController();\n notify();\n try {\n await options.execute(next.input, {\n id: next.id,\n signal: activeAbort.signal,\n });\n const index = items.findIndex(({ id }) => id === next.id);\n if (index >= 0) items.splice(index, 1);\n } catch (error) {\n if (activeAbort.signal.aborted) {\n const index = items.findIndex(({ id }) => id === next.id);\n if (index >= 0) items.splice(index, 1);\n } else {\n next.error = error;\n next.status = \"failed\";\n options.onError?.(error, { ...next });\n }\n } finally {\n activeAbort = null;\n draining = false;\n notify();\n void drain();\n }\n };\n\n const enqueue = (input: Input, id: string = crypto.randomUUID()) => {\n if (items.length >= maxSize) {\n throw new ConversationTurnQueueFullError(maxSize);\n }\n items.push({ id, input, status: \"queued\" });\n notify();\n void drain();\n\n return id;\n };\n\n const remove = (id: string) => {\n const index = items.findIndex(\n (item) => item.id === id && item.status !== \"running\",\n );\n if (index < 0) return false;\n items.splice(index, 1);\n notify();\n void drain();\n\n return true;\n };\n\n const retry = (id: string) => {\n const item = items.find(\n (candidate) => candidate.id === id && candidate.status === \"failed\",\n );\n if (!item) return false;\n delete item.error;\n item.status = \"queued\";\n notify();\n void drain();\n\n return true;\n };\n\n const cancel = (input: { clearPending?: boolean } = {}) => {\n activeAbort?.abort();\n if (input.clearPending) {\n for (let index = items.length - 1; index >= 0; index--) {\n if (items[index]?.status !== \"running\") items.splice(index, 1);\n }\n }\n notify();\n };\n\n return {\n cancel,\n enqueue,\n getSnapshot: snapshot,\n remove,\n retry,\n subscribe: (\n listener: (snapshot: ConversationTurnQueueSnapshot<Input>) => void,\n ) => {\n listeners.add(listener);\n\n return () => listeners.delete(listener);\n },\n };\n};\n"
12
12
  ],
13
13
  "mappings": "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",
14
- "debugId": "5154A8EF40F9511964756E2164756E21",
14
+ "debugId": "569B20535DF6EC3464756E2164756E21",
15
15
  "names": []
16
16
  }
package/dist/ai/index.js CHANGED
@@ -1870,6 +1870,61 @@ var mapToolDefinition2 = (tool) => ({
1870
1870
  input_schema: tool.input_schema,
1871
1871
  name: tool.name
1872
1872
  });
1873
+ var requestOptionsFor = (params) => {
1874
+ const raw = params.providerOptions?.anthropic;
1875
+ if (raw === undefined)
1876
+ return {};
1877
+ if (!isRecord4(raw)) {
1878
+ throw new Error("providerOptions.anthropic must be an object");
1879
+ }
1880
+ if (raw.serverTools !== undefined && !Array.isArray(raw.serverTools)) {
1881
+ throw new Error("Anthropic serverTools must be an array");
1882
+ }
1883
+ return raw;
1884
+ };
1885
+ var assertDomains = (domains) => {
1886
+ for (const domain of domains ?? []) {
1887
+ if (!domain || domain.includes("://")) {
1888
+ throw new Error("Anthropic web-search domains must be non-empty bare domains without a scheme");
1889
+ }
1890
+ }
1891
+ };
1892
+ var mapServerTool = (tool) => {
1893
+ const parameters = tool.parameters ?? {};
1894
+ if (parameters.allowedDomains && parameters.blockedDomains) {
1895
+ throw new Error("Anthropic web search accepts allowedDomains or blockedDomains, not both");
1896
+ }
1897
+ assertDomains(parameters.allowedDomains);
1898
+ assertDomains(parameters.blockedDomains);
1899
+ if (parameters.maxUses !== undefined && (!Number.isInteger(parameters.maxUses) || parameters.maxUses < 1)) {
1900
+ throw new Error("Anthropic web-search maxUses must be a positive integer");
1901
+ }
1902
+ if (parameters.responseInclusion !== undefined && parameters.version !== "web_search_20260318") {
1903
+ throw new Error("Anthropic web-search responseInclusion requires web_search_20260318");
1904
+ }
1905
+ const location = parameters.userLocation;
1906
+ if (location && !location.city && !location.country && !location.region && !location.timezone) {
1907
+ throw new Error("Anthropic web-search userLocation requires a city, region, country, or timezone");
1908
+ }
1909
+ return {
1910
+ ...parameters.allowedCallers ? { allowed_callers: [...parameters.allowedCallers] } : {},
1911
+ ...parameters.allowedDomains ? { allowed_domains: [...parameters.allowedDomains] } : {},
1912
+ ...parameters.blockedDomains ? { blocked_domains: [...parameters.blockedDomains] } : {},
1913
+ ...parameters.maxUses === undefined ? {} : { max_uses: parameters.maxUses },
1914
+ name: "web_search",
1915
+ ...parameters.responseInclusion ? { response_inclusion: parameters.responseInclusion } : {},
1916
+ type: parameters.version ?? "web_search_20250305",
1917
+ ...location ? {
1918
+ user_location: {
1919
+ ...location.city ? { city: location.city } : {},
1920
+ ...location.country ? { country: location.country } : {},
1921
+ ...location.region ? { region: location.region } : {},
1922
+ ...location.timezone ? { timezone: location.timezone } : {},
1923
+ type: "approximate"
1924
+ }
1925
+ } : {}
1926
+ };
1927
+ };
1873
1928
  var cacheLastContentBlock = (msg) => {
1874
1929
  const cacheControl = { type: "ephemeral" };
1875
1930
  if (typeof msg.content === "string") {
@@ -1892,6 +1947,7 @@ var cacheLastContentBlock = (msg) => {
1892
1947
  var buildRequestBody4 = (params, configuredMax, configCaching) => {
1893
1948
  const caching = params.promptCaching ?? configCaching;
1894
1949
  const cacheSystem = params.cacheSystemPrompt ?? caching;
1950
+ const options = requestOptionsFor(params);
1895
1951
  const messages = params.messages.filter((msg) => msg.role !== "system").map(mapMessage);
1896
1952
  if (caching && messages.length > 1) {
1897
1953
  const last = messages[messages.length - 1];
@@ -1915,14 +1971,18 @@ var buildRequestBody4 = (params, configuredMax, configCaching) => {
1915
1971
  }
1916
1972
  ] : params.systemPrompt;
1917
1973
  }
1918
- if (params.tools && params.tools.length > 0) {
1919
- const tools = params.tools.map(mapToolDefinition2);
1974
+ const clientTools = params.tools?.map(mapToolDefinition2) ?? [];
1975
+ if (clientTools.length > 0) {
1920
1976
  if (caching) {
1921
- tools[tools.length - 1] = {
1922
- ...tools[tools.length - 1],
1977
+ clientTools[clientTools.length - 1] = {
1978
+ ...clientTools[clientTools.length - 1],
1923
1979
  cache_control: { type: "ephemeral" }
1924
1980
  };
1925
1981
  }
1982
+ }
1983
+ const serverTools = (options.serverTools ?? []).map(mapServerTool);
1984
+ const tools = [...clientTools, ...serverTools];
1985
+ if (tools.length > 0) {
1926
1986
  body.tools = tools;
1927
1987
  if (params.toolChoice === "auto" || params.toolChoice === "none") {
1928
1988
  body.tool_choice = { type: params.toolChoice };
@@ -2060,6 +2120,17 @@ var handleContentBlockDelta = (parsed, state) => {
2060
2120
  type: "text"
2061
2121
  };
2062
2122
  }
2123
+ if (delta.type === "citations_delta") {
2124
+ const citation = getRecord(delta, "citation");
2125
+ if (citation?.type === "web_search_result_location" && getString(citation, "url")) {
2126
+ return {
2127
+ content: getString(citation, "cited_text") || undefined,
2128
+ title: getString(citation, "title") || undefined,
2129
+ type: "citation",
2130
+ url: getString(citation, "url")
2131
+ };
2132
+ }
2133
+ }
2063
2134
  if (delta.type === "input_json_delta") {
2064
2135
  if (state.currentProviderBlock) {
2065
2136
  state.providerBlockInputJson += getString(delta, "partial_json");
@@ -3163,7 +3234,7 @@ var mapRouting = (routing, allowedProviders) => {
3163
3234
  wire.zdr = routing.zdr;
3164
3235
  return wire;
3165
3236
  };
3166
- var requestOptionsFor = (params, defaults) => {
3237
+ var requestOptionsFor2 = (params, defaults) => {
3167
3238
  const supplied = params.providerOptions?.openrouter;
3168
3239
  if (supplied !== undefined && (typeof supplied !== "object" || !supplied)) {
3169
3240
  throw new Error("providerOptions.openrouter must be an object");
@@ -3183,7 +3254,7 @@ var resolveAttributionHeaders = async (config2, params) => {
3183
3254
  if (config2.appCategories?.length) {
3184
3255
  headers.set("X-OpenRouter-Categories", config2.appCategories.join(","));
3185
3256
  }
3186
- const options = requestOptionsFor(params, config2.requestOptions);
3257
+ const options = requestOptionsFor2(params, config2.requestOptions);
3187
3258
  if (options.routerMetadata ?? true)
3188
3259
  headers.set("X-OpenRouter-Metadata", "enabled");
3189
3260
  if (options.sessionId)
@@ -3348,7 +3419,7 @@ var snapshotPolicy = (config2) => ({
3348
3419
  allowedPresets: config2.allowedPresets ? [...config2.allowedPresets] : undefined
3349
3420
  });
3350
3421
  var transformOpenRouterRequest = (config2, allowedModels, allowedPresets, body, params, skin = "openai") => {
3351
- const options = requestOptionsFor(params, config2.requestOptions);
3422
+ const options = requestOptionsFor2(params, config2.requestOptions);
3352
3423
  assertRequestOptions(options, allowedModels, allowedPresets, config2.allowedProviders);
3353
3424
  const transformed = { ...body, ...options.extraBody };
3354
3425
  if (options.audioOutput) {
@@ -4990,17 +5061,8 @@ var generateAIWithTools = async (options) => {
4990
5061
  const providerTools = toProviderTools(tools);
4991
5062
  const toolCalls = [];
4992
5063
  let usage;
4993
- const runTurn = async (messages, turnsLeft) => {
4994
- const result = await generateAI({
4995
- ...base,
4996
- messages,
4997
- toolChoice: "auto",
4998
- tools: providerTools
4999
- });
5000
- usage = mergeUsage(usage, result.usage);
5001
- if (result.toolCalls.length === 0 || turnsLeft <= 1) {
5002
- return { messages, text: result.text, toolCalls, usage };
5003
- }
5064
+ let turns = 0;
5065
+ const executeCalls = async (messages, result) => {
5004
5066
  toolCalls.push(...result.toolCalls);
5005
5067
  const assistantBlocks = [
5006
5068
  ...result.text ? [{ content: result.text, type: "text" }] : [],
@@ -5021,13 +5083,53 @@ var generateAIWithTools = async (options) => {
5021
5083
  type: "tool_result"
5022
5084
  };
5023
5085
  }));
5024
- return runTurn([
5086
+ return [
5025
5087
  ...messages,
5026
5088
  { content: assistantBlocks, role: "assistant" },
5027
5089
  { content: resultBlocks, role: "user" }
5028
- ], turnsLeft - 1);
5090
+ ];
5091
+ };
5092
+ const runTurn = async (messages, turnsLeft) => {
5093
+ turns += 1;
5094
+ const result = await generateAI({
5095
+ ...base,
5096
+ messages,
5097
+ toolChoice: "auto",
5098
+ tools: providerTools
5099
+ });
5100
+ usage = mergeUsage(usage, result.usage);
5101
+ if (result.toolCalls.length === 0) {
5102
+ return {
5103
+ messages,
5104
+ stopReason: "completed",
5105
+ text: result.text,
5106
+ toolCalls,
5107
+ turns,
5108
+ usage
5109
+ };
5110
+ }
5111
+ const nextMessages = await executeCalls(messages, result);
5112
+ if (turnsLeft <= 1) {
5113
+ turns += 1;
5114
+ const final = await generateAI({
5115
+ ...base,
5116
+ messages: nextMessages,
5117
+ toolChoice: "none",
5118
+ tools: providerTools
5119
+ });
5120
+ usage = mergeUsage(usage, final.usage);
5121
+ return {
5122
+ messages: nextMessages,
5123
+ stopReason: "max_turns_finalized",
5124
+ text: final.text,
5125
+ toolCalls,
5126
+ turns,
5127
+ usage
5128
+ };
5129
+ }
5130
+ return runTurn(nextMessages, turnsLeft - 1);
5029
5131
  };
5030
- return runTurn(options.messages, maxTurns);
5132
+ return runTurn(options.messages, Math.max(1, maxTurns));
5031
5133
  };
5032
5134
  var DEFAULT_OBJECT_REPAIR_ATTEMPTS = 1;
5033
5135
  var generateObjectAI = async (options) => {
@@ -5149,7 +5251,7 @@ var streamAIWithTools = async function* (options) {
5149
5251
  let usage;
5150
5252
  let fullText = "";
5151
5253
  let turn = 0;
5152
- const streamOneTurn = async function* () {
5254
+ const streamOneTurn = async function* (selectedToolChoice = toolChoice ?? "auto") {
5153
5255
  const stream = provider.stream({
5154
5256
  cacheSystemPrompt: base.cacheSystemPrompt,
5155
5257
  maxTokens: base.maxTokens,
@@ -5162,13 +5264,14 @@ var streamAIWithTools = async function* (options) {
5162
5264
  stopSequences: base.stopSequences,
5163
5265
  systemPrompt: base.systemPrompt,
5164
5266
  temperature: base.temperature,
5165
- toolChoice: toolChoice ?? "auto",
5267
+ toolChoice: selectedToolChoice,
5166
5268
  tools: providerTools,
5167
5269
  topP: base.topP
5168
5270
  });
5169
5271
  const blocks = [];
5170
5272
  const pending = [];
5171
5273
  let thinking = null;
5274
+ let stopReason;
5172
5275
  let turnUsage;
5173
5276
  for await (const chunk of stream) {
5174
5277
  if (base.signal?.aborted)
@@ -5212,11 +5315,12 @@ var streamAIWithTools = async function* (options) {
5212
5315
  });
5213
5316
  } else if (chunk.type === "done") {
5214
5317
  thinking = flushThinking3(blocks, thinking);
5318
+ stopReason = chunk.stopReason;
5215
5319
  turnUsage = chunk.usage;
5216
5320
  }
5217
5321
  }
5218
5322
  thinking = flushThinking3(blocks, thinking);
5219
- return { blocks, pending, usage: turnUsage };
5323
+ return { blocks, pending, stopReason, usage: turnUsage };
5220
5324
  };
5221
5325
  while (turn < maxTurns) {
5222
5326
  turn += 1;
@@ -5225,8 +5329,12 @@ var streamAIWithTools = async function* (options) {
5225
5329
  yield { type: "turn", usage: outcome.usage };
5226
5330
  const { blocks, pending } = outcome;
5227
5331
  allToolCalls.push(...pending);
5332
+ if (outcome.stopReason === "pause_turn" && turn < maxTurns && base.signal?.aborted !== true) {
5333
+ messages.push({ content: blocks, role: "assistant" });
5334
+ continue;
5335
+ }
5228
5336
  const allRepeats = pending.length > 0 && pending.every((call) => executedKeys.has(toolCallKey(call)));
5229
- const finished = pending.length === 0 || turn >= maxTurns || allRepeats || base.signal?.aborted === true;
5337
+ const finished = pending.length === 0 || allRepeats || base.signal?.aborted === true;
5230
5338
  if (finished)
5231
5339
  break;
5232
5340
  messages.push({ content: blocks, role: "assistant" });
@@ -5257,6 +5365,14 @@ var streamAIWithTools = async function* (options) {
5257
5365
  });
5258
5366
  }
5259
5367
  messages.push({ content: resultBlocks, role: "user" });
5368
+ if (turn >= Math.max(1, maxTurns)) {
5369
+ turn += 1;
5370
+ const final = yield* streamOneTurn("none");
5371
+ usage = mergeUsage(usage, final.usage);
5372
+ yield { type: "turn", usage: final.usage };
5373
+ allToolCalls.push(...final.pending);
5374
+ break;
5375
+ }
5260
5376
  }
5261
5377
  const summary = {
5262
5378
  text: fullText,
@@ -7570,104 +7686,104 @@ var startProviderStatusMonitor = (options) => {
7570
7686
  return () => clearInterval(timer);
7571
7687
  };
7572
7688
  export {
7573
- xai,
7574
- withResilience,
7575
- verifyOpenRouterWebhookSignature,
7576
- tableCard,
7577
- streamAIWithTools,
7578
- streamAIToSSE,
7579
- streamAI,
7580
- statTilesCard,
7581
- startProviderStatusMonitor,
7582
- setProviderAvailability,
7583
- serverMessageToAction,
7584
- serializeAIMessage,
7585
- resolveRenderers,
7586
- renderChartSvg,
7587
- remoteProvider,
7588
- providerStatusPage,
7589
- planCard,
7590
- parseUiActions,
7591
- parseTableSpec,
7592
- parseStatTilesSpec,
7593
- parseProviderProxyParams,
7594
- parsePlanSpec,
7595
- parseFormSpec,
7596
- parseDiffSpec,
7597
- parseCredentialSpec,
7598
- parseConfirmSpec,
7599
- parseChoiceSpec,
7600
- parseChartSpec,
7601
- parseAIMessage,
7602
- openrouterResponses,
7603
- openrouterMessages,
7604
- openrouter,
7605
- openaiResponses,
7606
- openaiCompatible,
7607
- openai,
7608
- openRouterModelMatchesRule,
7609
- ollama,
7610
- moonshot,
7611
- mistralai,
7612
- meta,
7613
- google,
7614
- getProviderHealth,
7615
- generateOpenRouterPKCE,
7616
- generateObjectAI,
7617
- generateId,
7618
- generateAIWithTools,
7619
- generateAI,
7620
- gemini,
7621
- formCard,
7622
- fetchProviderApiStatus,
7623
- exchangeOpenRouterAuthCode,
7624
- estimateOpenRouterModelCost,
7625
- estimateOpenRouterCost,
7626
- diffCard,
7627
- deepseek,
7628
- credentialCard,
7629
- createUiCards,
7630
- createSyncConversationStore,
7631
- createProviderProxyResponse,
7632
- createOpenRouterKeyLinks,
7633
- createOpenRouterClient,
7634
- createOpenRouterAuthorizationUrl,
7635
- createOAuth2ClientCredentialsTokenSource,
7636
- createMemoryStore,
7637
- createConversationManager,
7638
- createAIStream,
7639
- createAIConnection,
7640
- confirmCard,
7641
- configureProviderResilience,
7642
- choiceCard,
7643
- chartCard,
7644
- anthropic,
7645
- alibaba,
7646
- aiChat,
7647
- UI_ACTIONS_MAX,
7648
- TABLE_MAX_ROWS,
7649
- TABLE_MAX_COLUMNS,
7650
- STAT_TILES_MAX,
7651
- ProviderError,
7652
- PROVIDER_STATUS_PAGES,
7653
- PLAN_STEP_STATUSES,
7654
- PLAN_MAX_STEPS,
7655
- LIGHT_UI_THEME,
7656
- FORM_SELECT_MAX_OPTIONS,
7657
- FORM_MAX_FIELDS,
7658
- FORM_FIELD_TYPES,
7659
- DIFF_MAX_LINES,
7660
- DIFF_MAX_FILES,
7661
- DARK_UI_THEME,
7662
- CREDENTIAL_MAX_KEYS,
7663
- CONFIRM_CONSEQUENCE_MAX_CHARS,
7664
- CHOICE_MAX_OPTIONS,
7665
- CHART_TYPES,
7666
- CHART_MAX_SERIES,
7667
- CHART_MAX_POINTS,
7689
+ BUILTIN_UI_CARDS,
7668
7690
  CARD_ID_MAX_CHARS,
7669
- BUILTIN_UI_CARDS
7691
+ CHART_MAX_POINTS,
7692
+ CHART_MAX_SERIES,
7693
+ CHART_TYPES,
7694
+ CHOICE_MAX_OPTIONS,
7695
+ CONFIRM_CONSEQUENCE_MAX_CHARS,
7696
+ CREDENTIAL_MAX_KEYS,
7697
+ DARK_UI_THEME,
7698
+ DIFF_MAX_FILES,
7699
+ DIFF_MAX_LINES,
7700
+ FORM_FIELD_TYPES,
7701
+ FORM_MAX_FIELDS,
7702
+ FORM_SELECT_MAX_OPTIONS,
7703
+ LIGHT_UI_THEME,
7704
+ PLAN_MAX_STEPS,
7705
+ PLAN_STEP_STATUSES,
7706
+ PROVIDER_STATUS_PAGES,
7707
+ ProviderError,
7708
+ STAT_TILES_MAX,
7709
+ TABLE_MAX_COLUMNS,
7710
+ TABLE_MAX_ROWS,
7711
+ UI_ACTIONS_MAX,
7712
+ aiChat,
7713
+ alibaba,
7714
+ anthropic,
7715
+ chartCard,
7716
+ choiceCard,
7717
+ configureProviderResilience,
7718
+ confirmCard,
7719
+ createAIConnection,
7720
+ createAIStream,
7721
+ createConversationManager,
7722
+ createMemoryStore,
7723
+ createOAuth2ClientCredentialsTokenSource,
7724
+ createOpenRouterAuthorizationUrl,
7725
+ createOpenRouterClient,
7726
+ createOpenRouterKeyLinks,
7727
+ createProviderProxyResponse,
7728
+ createSyncConversationStore,
7729
+ createUiCards,
7730
+ credentialCard,
7731
+ deepseek,
7732
+ diffCard,
7733
+ estimateOpenRouterCost,
7734
+ estimateOpenRouterModelCost,
7735
+ exchangeOpenRouterAuthCode,
7736
+ fetchProviderApiStatus,
7737
+ formCard,
7738
+ gemini,
7739
+ generateAI,
7740
+ generateAIWithTools,
7741
+ generateId,
7742
+ generateObjectAI,
7743
+ generateOpenRouterPKCE,
7744
+ getProviderHealth,
7745
+ google,
7746
+ meta,
7747
+ mistralai,
7748
+ moonshot,
7749
+ ollama,
7750
+ openRouterModelMatchesRule,
7751
+ openai,
7752
+ openaiCompatible,
7753
+ openaiResponses,
7754
+ openrouter,
7755
+ openrouterMessages,
7756
+ openrouterResponses,
7757
+ parseAIMessage,
7758
+ parseChartSpec,
7759
+ parseChoiceSpec,
7760
+ parseConfirmSpec,
7761
+ parseCredentialSpec,
7762
+ parseDiffSpec,
7763
+ parseFormSpec,
7764
+ parsePlanSpec,
7765
+ parseProviderProxyParams,
7766
+ parseStatTilesSpec,
7767
+ parseTableSpec,
7768
+ parseUiActions,
7769
+ planCard,
7770
+ providerStatusPage,
7771
+ remoteProvider,
7772
+ renderChartSvg,
7773
+ resolveRenderers,
7774
+ serializeAIMessage,
7775
+ serverMessageToAction,
7776
+ setProviderAvailability,
7777
+ startProviderStatusMonitor,
7778
+ statTilesCard,
7779
+ streamAI,
7780
+ streamAIToSSE,
7781
+ streamAIWithTools,
7782
+ tableCard,
7783
+ verifyOpenRouterWebhookSignature,
7784
+ withResilience,
7785
+ xai
7670
7786
  };
7671
7787
 
7672
- //# debugId=1D47D14F189FCCCF64756E2164756E21
7788
+ //# debugId=0129A2FF96F7D3C764756E2164756E21
7673
7789
  //# sourceMappingURL=index.js.map