@ax-llm/ax 21.0.3 → 21.0.5
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.
- package/index.cjs +184 -181
- package/index.cjs.map +1 -1
- package/index.d.cts +42 -15
- package/index.d.ts +42 -15
- package/index.global.js +108 -105
- package/index.global.js.map +1 -1
- package/index.js +186 -183
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/skills/ax-agent-optimize.md +1 -1
- package/skills/ax-agent.md +4 -4
- package/skills/ax-ai.md +1 -1
- package/skills/ax-audio.md +1 -1
- package/skills/ax-flow.md +1 -1
- package/skills/ax-gen.md +1 -1
- package/skills/ax-gepa.md +1 -1
- package/skills/ax-learn.md +1 -1
- package/skills/ax-llm.md +1 -1
- package/skills/ax-signature.md +1 -1
package/index.d.cts
CHANGED
|
@@ -2427,6 +2427,7 @@ declare class AxBaseAI<TModel, TEmbedModel, TChatRequest, TEmbedRequest, TChatRe
|
|
|
2427
2427
|
private calculatePercentile;
|
|
2428
2428
|
private updateLatencyMetrics;
|
|
2429
2429
|
private updateErrorMetrics;
|
|
2430
|
+
private recordEstimatedCost;
|
|
2430
2431
|
private recordTokenUsage;
|
|
2431
2432
|
private calculateRequestSize;
|
|
2432
2433
|
private calculateResponseSize;
|
|
@@ -2535,6 +2536,9 @@ type AxModelInfo = {
|
|
|
2535
2536
|
maxTokens?: number;
|
|
2536
2537
|
isExpensive?: boolean;
|
|
2537
2538
|
contextWindow?: number;
|
|
2539
|
+
isDeprecated?: boolean;
|
|
2540
|
+
/** ISO date (YYYY-MM-DD) the upstream provider will stop serving this model. */
|
|
2541
|
+
deprecatedOn?: string;
|
|
2538
2542
|
};
|
|
2539
2543
|
type AxTokenUsage = {
|
|
2540
2544
|
promptTokens: number;
|
|
@@ -2755,6 +2759,10 @@ type AxCitation = {
|
|
|
2755
2759
|
license?: string;
|
|
2756
2760
|
publicationDate?: string;
|
|
2757
2761
|
snippet?: string;
|
|
2762
|
+
/** File Search multimodal (Gemini, May 2026): media chunk id. */
|
|
2763
|
+
mediaId?: string;
|
|
2764
|
+
/** File Search multimodal (Gemini, May 2026): page numbers cited within the source. */
|
|
2765
|
+
pageNumbers?: number[];
|
|
2758
2766
|
};
|
|
2759
2767
|
type AxModelUsage = {
|
|
2760
2768
|
ai: string;
|
|
@@ -4305,9 +4313,9 @@ declare class AxSignature<_TInput extends Record<string, any> = Record<string, a
|
|
|
4305
4313
|
declare const promptTemplates: {
|
|
4306
4314
|
readonly 'dsp/dspy.md': "<identity>\n{{ identityText }}\n</identity>{{ if hasFunctions }}\n\n<available_functions>\n**Available Functions**: You can call the following functions to complete the task:\n\n{{ functionsList }}\n\n## Function Call Instructions\n- Complete the task, using the functions defined earlier in this prompt.\n- Output fields should only be generated after all functions have been called.\n- Use the function results to generate the output fields.\n</available_functions>{{ /if }}\n\n<input_fields>\n{{ inputFieldsSection }}\n</input_fields>{{ if hasOutputFields }}\n\n<output_fields>\n{{ outputFieldsSection }}\n</output_fields>{{ /if }}\n{{ if hasTaskDefinition }}\n\n<task_definition>\n{{ taskDefinitionText }}\n</task_definition>{{ /if }}\n\n<formatting_rules>\n{{ if hasStructuredOutputFunction }}\nReturn the complete output by calling `{{ structuredOutputFunctionName }}`.\n{{ else }}{{ if hasComplexFields }}\nReturn valid JSON matching <output_fields>.\n{{ else }}\nReturn one `field name: value` pair per line for the required output fields only.\n{{ /if }}{{ /if }}Above rules override later instructions.\n\n</formatting_rules>\n{{ if hasExampleDemonstrations }}\n\n## Example Demonstrations\nThe following User/Assistant turns are examples only until --- END OF EXAMPLES ---, not context for the current task.\n{{ /if }}\n";
|
|
4307
4315
|
readonly 'dsp/example-separator.md': "--- END OF EXAMPLES ---\nThe examples above were for training purposes only. Please ignore any specific entities or facts mentioned in them.\n\nREAL USER QUERY:\n";
|
|
4308
|
-
readonly 'rlm/distiller.md': "## Distiller\n\nYou (`distiller`) read the available context and forward an actionable request to the downstream **executor** stage
|
|
4309
|
-
readonly 'rlm/executor.md': "## Executor\n\nYou (`executor`) are the task-execution stage in a two-stage pipeline. Your ONLY job is to write JavaScript code that runs in the JS runtime (REPL) to complete tasks using the tools available to you. A separate (`responder`) agent downstream synthesizes the final answer.\n\nThe JS runtime is a long-running REPL — state persists across turns unless restarted. Each **turn**: write code → it executes → you see output → write the next block.\n\n### Executor Request & Distilled Context\n\nThe prior distiller stage produced two extra inputs:\n\n- `inputs.executorRequest` — an expanded request describing what this stage should complete.\n- `inputs.distilledContext` — pre-distilled evidence the distiller selected for this task.\n\nRead `executorRequest`, then read `distilledContext` for the evidence selected by the distiller. Raw context fields are not available in this stage.
|
|
4310
|
-
readonly 'rlm/responder.md': "## Answer Synthesis Agent\n\nYou synthesize the final answer from the evidence the actor gathered. You do not run code, call tools, or invoke agents — you read input fields and write the output fields.\n\n### Reading the actor's payload\n\n`Context Data` has two keys:\n\n- `task` — a one-line instruction telling you what to write into the output fields.\n- `evidence` — the data the actor curated for you to follow that instruction.\n\n### Rules\n\n1. Follow `Context Data.task` using `Context Data.evidence` and any other input fields provided.\n2. When emitting a JSON output field, write the value flat — do **not** wrap it under a key matching the field's title. The field is already named.\n3. If `evidence` lacks sufficient information, give the best possible answer from what's available across all input fields.\n\n### Context variables that were analyzed (metadata only)\n{{ contextVarSummary }}\n{{ if hasAgentIdentity }}\n\n### Agent Identity\n\nUser-facing identity:\n{{ agentIdentityText }}\n{{ /if }}\n";
|
|
4316
|
+
readonly 'rlm/distiller.md': "## Distiller\n\nYou (`distiller`) read the available context and forward an actionable request to the downstream **executor** stage, which owns any available tools/functions and capability checks. You do not execute the task yourself, choose executor tools, or decide whether the executor can perform the action.\n\nCall `final(request, evidence)` to forward. Expand the user's original task with facts from context so the request is clear and complete; put exact inputs (paths, ids, selected records, constraints) in `evidence`, or `{}` if context has nothing to narrow. Resolve follow-ups against prior conversation. Never refuse, answer, or ask clarification because of your own lack of tools or perceived executor capabilities — forwarding *is* the response. Use `askClarification` only when the requested action or target is genuinely ambiguous.\n\nThe JS runtime is a long-running REPL — state persists across turns unless restarted. Each **turn**: write code → it executes → you see output → write the next block.\n\n### Context Fields\n\nContext fields are available as globals (in the REPL) on the `inputs` object:\n{{ contextVarList }}\n\n### Available Functions\n\n{{ primitivesList }}\n{{ if memoriesMode }}\n\n### Memories\n\n`inputs.memories` is an array of `{ id, content }` entries — facts, preferences, and prior context already loaded. Scan it before deciding what to do. If you need more, call `await recall(['…', '…'])` — matched memories are appended to `inputs.memories` for the next turn (and forwarded to the executor).\n{{ /if }}\n\n### How to Work\n\n- **Skip exploration when context has nothing to narrow** (direct action request, or schema is already known) — forward on turn 1 with `final(request, {})`.\n- **For direct action requests**: preserve the requested action faithfully. The executor decides which available functions to use, attempts the work when possible, and reports the actual result or failure.\n- **When narrowing**: probe shape, narrow with JS, extract. Don't dump raw data. Don't repeat probes already in the Action Log.\n- **Use JS** for deterministic work (filter, sort, slice, regex, dedupe). **Use `llmQuery`** only to interpret a narrowed slice — never pass raw `inputs.*` to it.\n- `console.log` to inspect; capture awaited results into variables (return values aren't auto-visible). Multiple `console.log`s per turn is fine.\n\n```js\nconst narrowed = inputs.emails\n .filter(e => e.subject.toLowerCase().includes('refund'))\n .map(e => ({ from: e.from, subject: e.subject, body: e.body.slice(0, 800) }));\n\nconst interpretation = await llmQuery([{\n query: 'Classify each as billing_dispute | unauthorized_charge | other. JSON list.',\n context: { emails: narrowed }\n}]);\nconsole.log(interpretation);\n```\n\n### Output Contract\n\nThe `Javascript Code` field value must be runnable JavaScript only. Do not put prose or plain labels like `task:` / `evidence:` inside the value. Never combine `console.log` with `final()` or `askClarification()` in the same turn.\n\nValid completion turns:\n\n```js\nawait final(\"Use the matched emails to answer the user's question\", { matchedEmails });\n```\n\n```js\n// Passthrough — user asked for an action and there's nothing in context to narrow.\nawait final(\"Perform the requested action and report the actual result or failure\", {});\n```\n\n```js\nawait askClarification(\"Which context should I inspect?\");\n```\n\n## JavaScript Runtime Usage Instructions\n{{ runtimeUsageInstructions }}\n";
|
|
4317
|
+
readonly 'rlm/executor.md': "## Executor\n\nYou (`executor`) are the task-execution stage in a two-stage pipeline. Your ONLY job is to write JavaScript code that runs in the JS runtime (REPL) to complete tasks using the tools available to you. A separate (`responder`) agent downstream synthesizes the final answer.\n\nThe JS runtime is a long-running REPL — state persists across turns unless restarted. Each **turn**: write code → it executes → you see output → write the next block.\n\n### Executor Request & Distilled Context\n\nThe prior distiller stage produced two extra inputs:\n\n- `inputs.executorRequest` — an expanded request describing what this stage should complete.\n- `inputs.distilledContext` — pre-distilled evidence the distiller selected for this task.\n\nRead `executorRequest`, then read `distilledContext` for the evidence selected by the distiller. Raw context fields are not available in this stage. You are the capability and tool-use authority: if the request needs information or effects that your available functions can provide, use those functions before refusing or asking clarification. If the distilled evidence is sufficient, finish directly with `final(...)`. Call `askClarification(...)` only when the missing information cannot be obtained programmatically.\n\n### Available Functions\n\n{{ primitivesList }}\n\n{{ functionsList }}\n{{ if discoveryMode }}\n\n{{ if hasModules }}\n### Available Modules\n{{ modulesList }}\n{{ /if }}\n{{ if hasDiscoveredDocs }}\n### Discovered Tool Docs\n\nThese were fetched this run — use them directly. Only re-run discovery for modules/functions not listed here.\n\n{{ discoveredDocsMarkdown }}\n{{ /if }}\n{{ /if }}\n{{ if hasSkills }}\n### Loaded Skills\n\nThese skill guides were loaded via `consult(...)` — apply them directly. Call `consult([...])` to load additional skills as needed.\n\n{{ skillsMarkdown }}\n{{ /if }}\n{{ if memoriesMode }}\n\n### Memories\n\n`inputs.memories` is an array of `{ id, content }` entries — facts, preferences, and prior context already loaded (including any the distiller forwarded). Scan it before deciding what to do. If you need more, call `await recall(['…', '…'])` — matched memories are appended to `inputs.memories` for the next turn.\n{{ /if }}\n\n### How to Work\n\n- Start from `inputs.executorRequest`, `inputs.distilledContext`, non-context task inputs, and prior successful Action Log results. Don't repeat probes already in the Action Log.\n- Treat direct action requests as work to attempt with available functions. If a function fails or the environment denies the action, capture the real error, status, output, or exception in the evidence for the responder.\n- **Use JS** for deterministic work (filter, sort, slice, regex, dedupe). **Use `llmQuery`** only to interpret narrowed text — never pass raw `inputs.*` to it.\n- Discovery calls (`discoverModules`/`discoverFunctions`) can appear alongside other code — the runtime runs them first automatically.\n- Capture awaited results into variables (return values aren't auto-visible); inspect with `console.log(result)` or finish with `await final(\"...\", { result })`. Multiple `console.log`s per turn is fine.\n- Before calling `askClarification`, check whether any available function can resolve the need first.\n{{ if hasAgentStatusCallback }}\n- Keep the user updated: call `await reportSuccess(message)` after completing sub-tasks and `await reportFailure(message)` when something goes wrong.\n{{ /if }}\n\n```js\nconst narrowed = inputs.emails\n .filter(e => e.subject.toLowerCase().includes('refund'))\n .map(e => ({ from: e.from, subject: e.subject, body: e.body.slice(0, 800) }));\n\nconst plan = await llmQuery([{\n query: 'Determine which messages require a refund response and draft a compact action plan.',\n context: { emails: narrowed }\n}]);\nconsole.log(plan);\n```\n\n### Output Contract\n\nThe `Javascript Code` field value must be runnable JavaScript only. Do not put prose or plain labels like `task:` / `evidence:` inside the value. Never combine `console.log` with `final()` or `askClarification()` in the same turn.\n\nWhen done, call `await final(task, evidence)`:\n\n- `task` — a one-line instruction the **responder** will follow when writing the user-facing output fields (e.g. \"Answer the user's question using the matched emails\").\n- `evidence` — the curated data the responder will read to follow `task`. Pass narrowed JS objects with only the fields that matter, not raw `inputs.*`. Use plain keys (`{ matchedEmails: [...] }`) — don't wrap under the output field name.\n\nDo not pre-format the answer; the responder writes the output fields.\n\nValid completion turns:\n\n```js\nawait final(\"Answer the user's question using the gathered evidence\", { evidence });\n```\n\n```js\nawait askClarification(\"Which file should I analyze?\");\n```\n\n## JavaScript Runtime Usage Instructions\n{{ runtimeUsageInstructions }}\n";
|
|
4318
|
+
readonly 'rlm/responder.md': "## Answer Synthesis Agent\n\nYou synthesize the final answer from the evidence the actor gathered. You do not run code, call tools, or invoke agents — you read input fields and write the output fields.\n\n### Reading the actor's payload\n\n`Context Data` has two keys:\n\n- `task` — a one-line instruction telling you what to write into the output fields.\n- `evidence` — the data the actor curated for you to follow that instruction.\n\n### Rules\n\n1. Follow `Context Data.task` using `Context Data.evidence` and any other input fields provided.\n2. When emitting a JSON output field, write the value flat — do **not** wrap it under a key matching the field's title. The field is already named.\n3. If `evidence` lacks sufficient information, give the best possible answer from what's available across all input fields.\n4. Do not contradict actor evidence. If evidence contains a tool result, failure, status, output, or exception, report that result rather than inventing a capability limit.\n\n### Context variables that were analyzed (metadata only)\n{{ contextVarSummary }}\n{{ if hasAgentIdentity }}\n\n### Agent Identity\n\nUser-facing identity:\n{{ agentIdentityText }}\n{{ /if }}\n";
|
|
4311
4319
|
};
|
|
4312
4320
|
type TemplateId = keyof typeof promptTemplates;
|
|
4313
4321
|
|
|
@@ -5709,6 +5717,10 @@ type AxAIAnthropicThinkingWire = {
|
|
|
5709
5717
|
type AxAIAnthropicEffortLevel = 'low' | 'medium' | 'high' | 'max';
|
|
5710
5718
|
type AxAIAnthropicOutputConfig = {
|
|
5711
5719
|
effort?: AxAIAnthropicEffortLevel;
|
|
5720
|
+
format?: {
|
|
5721
|
+
type: 'json_schema';
|
|
5722
|
+
schema: object;
|
|
5723
|
+
};
|
|
5712
5724
|
};
|
|
5713
5725
|
type AxAIAnthropicEffortLevelMapping = {
|
|
5714
5726
|
minimal?: AxAIAnthropicEffortLevel;
|
|
@@ -5771,7 +5783,7 @@ type AxAIAnthropicChatRequest = {
|
|
|
5771
5783
|
media_type: string;
|
|
5772
5784
|
data: string;
|
|
5773
5785
|
};
|
|
5774
|
-
} & AxAIAnthropicChatRequestCacheParam) | {
|
|
5786
|
+
} & AxAIAnthropicChatRequestCacheParam) | ({
|
|
5775
5787
|
type: 'tool_result';
|
|
5776
5788
|
is_error?: boolean;
|
|
5777
5789
|
tool_use_id: string;
|
|
@@ -5786,7 +5798,7 @@ type AxAIAnthropicChatRequest = {
|
|
|
5786
5798
|
data: string;
|
|
5787
5799
|
};
|
|
5788
5800
|
} & AxAIAnthropicChatRequestCacheParam))[];
|
|
5789
|
-
})[];
|
|
5801
|
+
} & AxAIAnthropicChatRequestCacheParam))[];
|
|
5790
5802
|
} | {
|
|
5791
5803
|
role: 'assistant';
|
|
5792
5804
|
content: string | (({
|
|
@@ -5826,10 +5838,6 @@ type AxAIAnthropicChatRequest = {
|
|
|
5826
5838
|
top_k?: number;
|
|
5827
5839
|
thinking?: AxAIAnthropicThinkingWire;
|
|
5828
5840
|
output_config?: AxAIAnthropicOutputConfig;
|
|
5829
|
-
output_format?: {
|
|
5830
|
-
type: 'json_schema';
|
|
5831
|
-
schema: object;
|
|
5832
|
-
};
|
|
5833
5841
|
metadata?: {
|
|
5834
5842
|
user_id: string;
|
|
5835
5843
|
};
|
|
@@ -6003,8 +6011,11 @@ declare enum AxAIOpenAIModel {
|
|
|
6003
6011
|
GPT4OMini = "gpt-4o-mini",
|
|
6004
6012
|
GPTAudio = "gpt-audio",
|
|
6005
6013
|
GPTAudioMini = "gpt-audio-mini",
|
|
6014
|
+
GPTAudio15 = "gpt-audio-1.5",
|
|
6015
|
+
GPTRealtime15 = "gpt-realtime-1.5",
|
|
6006
6016
|
GPTRealtime2 = "gpt-realtime-2",
|
|
6007
6017
|
GPTRealtimeWhisper = "gpt-realtime-whisper",
|
|
6018
|
+
GPTRealtimeTranslate = "gpt-realtime-translate",
|
|
6008
6019
|
GPT4ChatGPT4O = "chatgpt-4o-latest",
|
|
6009
6020
|
GPT4Turbo = "gpt-4-turbo",
|
|
6010
6021
|
GPT35Turbo = "gpt-3.5-turbo",
|
|
@@ -6031,6 +6042,8 @@ declare enum AxAIOpenAIModel {
|
|
|
6031
6042
|
GPT54 = "gpt-5.4",
|
|
6032
6043
|
GPT54Mini = "gpt-5.4-mini",
|
|
6033
6044
|
GPT54Nano = "gpt-5.4-nano",
|
|
6045
|
+
GPT55 = "gpt-5.5",
|
|
6046
|
+
GPT55Pro = "gpt-5.5-pro",
|
|
6034
6047
|
O1 = "o1",
|
|
6035
6048
|
O1Mini = "o1-mini",
|
|
6036
6049
|
O3 = "o3",
|
|
@@ -6063,7 +6076,7 @@ type AxAIOpenAIConfig<TModel, TEmbedModel> = Omit<AxModelConfig, 'topK'> & {
|
|
|
6063
6076
|
logprobs?: number;
|
|
6064
6077
|
echo?: boolean;
|
|
6065
6078
|
dimensions?: number;
|
|
6066
|
-
reasoningEffort?: 'minimal' | 'low' | 'medium' | 'high';
|
|
6079
|
+
reasoningEffort?: 'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh';
|
|
6067
6080
|
store?: boolean;
|
|
6068
6081
|
serviceTier?: 'auto' | 'default' | 'flex';
|
|
6069
6082
|
webSearchOptions?: {
|
|
@@ -6111,7 +6124,7 @@ interface AxAIOpenAIResponseDelta<T> {
|
|
|
6111
6124
|
}
|
|
6112
6125
|
type AxAIOpenAIChatRequest<TModel> = {
|
|
6113
6126
|
model: TModel;
|
|
6114
|
-
reasoning_effort?: 'none' | 'minimal' | 'low' | 'medium' | 'high';
|
|
6127
|
+
reasoning_effort?: 'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh';
|
|
6115
6128
|
store?: boolean;
|
|
6116
6129
|
modalities?: readonly ('text' | 'audio')[];
|
|
6117
6130
|
audio?: {
|
|
@@ -6946,6 +6959,10 @@ declare enum AxAIGoogleGeminiModel {
|
|
|
6946
6959
|
Gemini3Flash = "gemini-3-flash-preview",
|
|
6947
6960
|
Gemini3Pro = "gemini-3.1-pro-preview",
|
|
6948
6961
|
Gemini3ProImage = "gemini-3-pro-image-preview",
|
|
6962
|
+
Gemini31FlashImage = "gemini-3.1-flash-image-preview",
|
|
6963
|
+
Gemini31FlashTTS = "gemini-3.1-flash-tts-preview",
|
|
6964
|
+
NanoBanana2 = "nano-banana-2",
|
|
6965
|
+
GeminiRoboticsER16 = "gemini-robotics-er-1.6-preview",
|
|
6949
6966
|
Gemini25Pro = "gemini-2.5-pro",
|
|
6950
6967
|
Gemini25Flash = "gemini-2.5-flash",
|
|
6951
6968
|
Gemini25FlashNativeAudio = "gemini-2.5-flash-native-audio-preview-12-2025",
|
|
@@ -6967,7 +6984,6 @@ declare enum AxAIGoogleGeminiEmbedModel {
|
|
|
6967
6984
|
GeminiEmbedding001 = "gemini-embedding-001",
|
|
6968
6985
|
GeminiEmbedding = "gemini-embedding-exp",
|
|
6969
6986
|
TextEmbeddingLarge = "text-embedding-large-exp-03-07",
|
|
6970
|
-
TextEmbedding004 = "text-embedding-004",
|
|
6971
6987
|
TextEmbedding005 = "text-embedding-005"
|
|
6972
6988
|
}
|
|
6973
6989
|
declare enum AxAIGoogleGeminiSafetyCategory {
|
|
@@ -7123,6 +7139,14 @@ type AxAIGoogleGeminiChatResponse = {
|
|
|
7123
7139
|
title?: string;
|
|
7124
7140
|
uri?: string;
|
|
7125
7141
|
};
|
|
7142
|
+
retrievedContext?: {
|
|
7143
|
+
title?: string;
|
|
7144
|
+
uri?: string;
|
|
7145
|
+
/** File Search multimodal (May 2026): id of the file/media chunk. */
|
|
7146
|
+
media_id?: string;
|
|
7147
|
+
/** File Search multimodal (May 2026): page numbers cited within the source. */
|
|
7148
|
+
page_numbers?: number[];
|
|
7149
|
+
};
|
|
7126
7150
|
}[];
|
|
7127
7151
|
googleMapsWidgetContextToken?: string;
|
|
7128
7152
|
};
|
|
@@ -7527,6 +7551,8 @@ declare enum AxAIOpenAIResponsesModel {
|
|
|
7527
7551
|
GPT54 = "gpt-5.4",
|
|
7528
7552
|
GPT54Mini = "gpt-5.4-mini",
|
|
7529
7553
|
GPT54Nano = "gpt-5.4-nano",
|
|
7554
|
+
GPT55 = "gpt-5.5",
|
|
7555
|
+
GPT55Pro = "gpt-5.5-pro",
|
|
7530
7556
|
O1Pro = "o1-pro",
|
|
7531
7557
|
O1 = "o1",
|
|
7532
7558
|
O1Mini = "o1-mini",
|
|
@@ -7592,14 +7618,14 @@ interface AxAIOpenAIResponsesRequest<TModel = AxAIOpenAIResponsesModel> {
|
|
|
7592
7618
|
readonly input: string | ReadonlyArray<AxAIOpenAIResponsesInputItem>;
|
|
7593
7619
|
readonly model: TModel;
|
|
7594
7620
|
readonly background?: boolean | null;
|
|
7595
|
-
readonly include?: ReadonlyArray<'file_search_call.results' | 'message.input_image.image_url' | 'computer_call_output.output.image_url' | 'reasoning.encrypted_content' | 'code_interpreter_call.outputs'> | null;
|
|
7621
|
+
readonly include?: ReadonlyArray<'file_search_call.results' | 'message.input_image.image_url' | 'computer_call_output.output.image_url' | 'reasoning.encrypted_content' | 'code_interpreter_call.outputs' | 'web_search_call.action.return_token_budget'> | null;
|
|
7596
7622
|
readonly instructions?: string | null;
|
|
7597
7623
|
readonly max_output_tokens?: number | null;
|
|
7598
7624
|
readonly metadata?: Readonly<Record<string, string>> | null;
|
|
7599
7625
|
readonly parallel_tool_calls?: boolean | null;
|
|
7600
7626
|
readonly previous_response_id?: string | null;
|
|
7601
7627
|
readonly reasoning?: {
|
|
7602
|
-
readonly effort?: 'minimal' | 'low' | 'medium' | 'high' | null;
|
|
7628
|
+
readonly effort?: 'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | null;
|
|
7603
7629
|
readonly summary?: 'auto' | 'concise' | 'detailed' | null;
|
|
7604
7630
|
} | null;
|
|
7605
7631
|
readonly service_tier?: 'auto' | 'default' | 'flex' | null;
|
|
@@ -7629,6 +7655,7 @@ interface AxAIOpenAIResponsesOutputMessageItem {
|
|
|
7629
7655
|
role: 'assistant';
|
|
7630
7656
|
content: ReadonlyArray<AxAIOpenAIResponsesOutputTextContentPart | AxAIOpenAIResponsesOutputRefusalContentPart>;
|
|
7631
7657
|
status: 'in_progress' | 'completed' | 'incomplete';
|
|
7658
|
+
phase?: 'commentary' | 'final_answer';
|
|
7632
7659
|
}
|
|
7633
7660
|
interface AxAIOpenAIResponsesFunctionCallItem {
|
|
7634
7661
|
type: 'function_call';
|
|
@@ -7978,7 +8005,7 @@ type AxAIOpenAIResponsesConfig<TModel, TEmbedModel> = Omit<AxModelConfig, 'topK'
|
|
|
7978
8005
|
logprobs?: number;
|
|
7979
8006
|
echo?: boolean;
|
|
7980
8007
|
dimensions?: number;
|
|
7981
|
-
reasoningEffort?: 'minimal' | 'low' | 'medium' | 'high';
|
|
8008
|
+
reasoningEffort?: 'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh';
|
|
7982
8009
|
reasoningSummary?: 'auto' | 'concise' | 'detailed';
|
|
7983
8010
|
store?: boolean;
|
|
7984
8011
|
systemPrompt?: string;
|
package/index.d.ts
CHANGED
|
@@ -2427,6 +2427,7 @@ declare class AxBaseAI<TModel, TEmbedModel, TChatRequest, TEmbedRequest, TChatRe
|
|
|
2427
2427
|
private calculatePercentile;
|
|
2428
2428
|
private updateLatencyMetrics;
|
|
2429
2429
|
private updateErrorMetrics;
|
|
2430
|
+
private recordEstimatedCost;
|
|
2430
2431
|
private recordTokenUsage;
|
|
2431
2432
|
private calculateRequestSize;
|
|
2432
2433
|
private calculateResponseSize;
|
|
@@ -2535,6 +2536,9 @@ type AxModelInfo = {
|
|
|
2535
2536
|
maxTokens?: number;
|
|
2536
2537
|
isExpensive?: boolean;
|
|
2537
2538
|
contextWindow?: number;
|
|
2539
|
+
isDeprecated?: boolean;
|
|
2540
|
+
/** ISO date (YYYY-MM-DD) the upstream provider will stop serving this model. */
|
|
2541
|
+
deprecatedOn?: string;
|
|
2538
2542
|
};
|
|
2539
2543
|
type AxTokenUsage = {
|
|
2540
2544
|
promptTokens: number;
|
|
@@ -2755,6 +2759,10 @@ type AxCitation = {
|
|
|
2755
2759
|
license?: string;
|
|
2756
2760
|
publicationDate?: string;
|
|
2757
2761
|
snippet?: string;
|
|
2762
|
+
/** File Search multimodal (Gemini, May 2026): media chunk id. */
|
|
2763
|
+
mediaId?: string;
|
|
2764
|
+
/** File Search multimodal (Gemini, May 2026): page numbers cited within the source. */
|
|
2765
|
+
pageNumbers?: number[];
|
|
2758
2766
|
};
|
|
2759
2767
|
type AxModelUsage = {
|
|
2760
2768
|
ai: string;
|
|
@@ -4305,9 +4313,9 @@ declare class AxSignature<_TInput extends Record<string, any> = Record<string, a
|
|
|
4305
4313
|
declare const promptTemplates: {
|
|
4306
4314
|
readonly 'dsp/dspy.md': "<identity>\n{{ identityText }}\n</identity>{{ if hasFunctions }}\n\n<available_functions>\n**Available Functions**: You can call the following functions to complete the task:\n\n{{ functionsList }}\n\n## Function Call Instructions\n- Complete the task, using the functions defined earlier in this prompt.\n- Output fields should only be generated after all functions have been called.\n- Use the function results to generate the output fields.\n</available_functions>{{ /if }}\n\n<input_fields>\n{{ inputFieldsSection }}\n</input_fields>{{ if hasOutputFields }}\n\n<output_fields>\n{{ outputFieldsSection }}\n</output_fields>{{ /if }}\n{{ if hasTaskDefinition }}\n\n<task_definition>\n{{ taskDefinitionText }}\n</task_definition>{{ /if }}\n\n<formatting_rules>\n{{ if hasStructuredOutputFunction }}\nReturn the complete output by calling `{{ structuredOutputFunctionName }}`.\n{{ else }}{{ if hasComplexFields }}\nReturn valid JSON matching <output_fields>.\n{{ else }}\nReturn one `field name: value` pair per line for the required output fields only.\n{{ /if }}{{ /if }}Above rules override later instructions.\n\n</formatting_rules>\n{{ if hasExampleDemonstrations }}\n\n## Example Demonstrations\nThe following User/Assistant turns are examples only until --- END OF EXAMPLES ---, not context for the current task.\n{{ /if }}\n";
|
|
4307
4315
|
readonly 'dsp/example-separator.md': "--- END OF EXAMPLES ---\nThe examples above were for training purposes only. Please ignore any specific entities or facts mentioned in them.\n\nREAL USER QUERY:\n";
|
|
4308
|
-
readonly 'rlm/distiller.md': "## Distiller\n\nYou (`distiller`) read the available context and forward an actionable request to the downstream **executor** stage
|
|
4309
|
-
readonly 'rlm/executor.md': "## Executor\n\nYou (`executor`) are the task-execution stage in a two-stage pipeline. Your ONLY job is to write JavaScript code that runs in the JS runtime (REPL) to complete tasks using the tools available to you. A separate (`responder`) agent downstream synthesizes the final answer.\n\nThe JS runtime is a long-running REPL — state persists across turns unless restarted. Each **turn**: write code → it executes → you see output → write the next block.\n\n### Executor Request & Distilled Context\n\nThe prior distiller stage produced two extra inputs:\n\n- `inputs.executorRequest` — an expanded request describing what this stage should complete.\n- `inputs.distilledContext` — pre-distilled evidence the distiller selected for this task.\n\nRead `executorRequest`, then read `distilledContext` for the evidence selected by the distiller. Raw context fields are not available in this stage.
|
|
4310
|
-
readonly 'rlm/responder.md': "## Answer Synthesis Agent\n\nYou synthesize the final answer from the evidence the actor gathered. You do not run code, call tools, or invoke agents — you read input fields and write the output fields.\n\n### Reading the actor's payload\n\n`Context Data` has two keys:\n\n- `task` — a one-line instruction telling you what to write into the output fields.\n- `evidence` — the data the actor curated for you to follow that instruction.\n\n### Rules\n\n1. Follow `Context Data.task` using `Context Data.evidence` and any other input fields provided.\n2. When emitting a JSON output field, write the value flat — do **not** wrap it under a key matching the field's title. The field is already named.\n3. If `evidence` lacks sufficient information, give the best possible answer from what's available across all input fields.\n\n### Context variables that were analyzed (metadata only)\n{{ contextVarSummary }}\n{{ if hasAgentIdentity }}\n\n### Agent Identity\n\nUser-facing identity:\n{{ agentIdentityText }}\n{{ /if }}\n";
|
|
4316
|
+
readonly 'rlm/distiller.md': "## Distiller\n\nYou (`distiller`) read the available context and forward an actionable request to the downstream **executor** stage, which owns any available tools/functions and capability checks. You do not execute the task yourself, choose executor tools, or decide whether the executor can perform the action.\n\nCall `final(request, evidence)` to forward. Expand the user's original task with facts from context so the request is clear and complete; put exact inputs (paths, ids, selected records, constraints) in `evidence`, or `{}` if context has nothing to narrow. Resolve follow-ups against prior conversation. Never refuse, answer, or ask clarification because of your own lack of tools or perceived executor capabilities — forwarding *is* the response. Use `askClarification` only when the requested action or target is genuinely ambiguous.\n\nThe JS runtime is a long-running REPL — state persists across turns unless restarted. Each **turn**: write code → it executes → you see output → write the next block.\n\n### Context Fields\n\nContext fields are available as globals (in the REPL) on the `inputs` object:\n{{ contextVarList }}\n\n### Available Functions\n\n{{ primitivesList }}\n{{ if memoriesMode }}\n\n### Memories\n\n`inputs.memories` is an array of `{ id, content }` entries — facts, preferences, and prior context already loaded. Scan it before deciding what to do. If you need more, call `await recall(['…', '…'])` — matched memories are appended to `inputs.memories` for the next turn (and forwarded to the executor).\n{{ /if }}\n\n### How to Work\n\n- **Skip exploration when context has nothing to narrow** (direct action request, or schema is already known) — forward on turn 1 with `final(request, {})`.\n- **For direct action requests**: preserve the requested action faithfully. The executor decides which available functions to use, attempts the work when possible, and reports the actual result or failure.\n- **When narrowing**: probe shape, narrow with JS, extract. Don't dump raw data. Don't repeat probes already in the Action Log.\n- **Use JS** for deterministic work (filter, sort, slice, regex, dedupe). **Use `llmQuery`** only to interpret a narrowed slice — never pass raw `inputs.*` to it.\n- `console.log` to inspect; capture awaited results into variables (return values aren't auto-visible). Multiple `console.log`s per turn is fine.\n\n```js\nconst narrowed = inputs.emails\n .filter(e => e.subject.toLowerCase().includes('refund'))\n .map(e => ({ from: e.from, subject: e.subject, body: e.body.slice(0, 800) }));\n\nconst interpretation = await llmQuery([{\n query: 'Classify each as billing_dispute | unauthorized_charge | other. JSON list.',\n context: { emails: narrowed }\n}]);\nconsole.log(interpretation);\n```\n\n### Output Contract\n\nThe `Javascript Code` field value must be runnable JavaScript only. Do not put prose or plain labels like `task:` / `evidence:` inside the value. Never combine `console.log` with `final()` or `askClarification()` in the same turn.\n\nValid completion turns:\n\n```js\nawait final(\"Use the matched emails to answer the user's question\", { matchedEmails });\n```\n\n```js\n// Passthrough — user asked for an action and there's nothing in context to narrow.\nawait final(\"Perform the requested action and report the actual result or failure\", {});\n```\n\n```js\nawait askClarification(\"Which context should I inspect?\");\n```\n\n## JavaScript Runtime Usage Instructions\n{{ runtimeUsageInstructions }}\n";
|
|
4317
|
+
readonly 'rlm/executor.md': "## Executor\n\nYou (`executor`) are the task-execution stage in a two-stage pipeline. Your ONLY job is to write JavaScript code that runs in the JS runtime (REPL) to complete tasks using the tools available to you. A separate (`responder`) agent downstream synthesizes the final answer.\n\nThe JS runtime is a long-running REPL — state persists across turns unless restarted. Each **turn**: write code → it executes → you see output → write the next block.\n\n### Executor Request & Distilled Context\n\nThe prior distiller stage produced two extra inputs:\n\n- `inputs.executorRequest` — an expanded request describing what this stage should complete.\n- `inputs.distilledContext` — pre-distilled evidence the distiller selected for this task.\n\nRead `executorRequest`, then read `distilledContext` for the evidence selected by the distiller. Raw context fields are not available in this stage. You are the capability and tool-use authority: if the request needs information or effects that your available functions can provide, use those functions before refusing or asking clarification. If the distilled evidence is sufficient, finish directly with `final(...)`. Call `askClarification(...)` only when the missing information cannot be obtained programmatically.\n\n### Available Functions\n\n{{ primitivesList }}\n\n{{ functionsList }}\n{{ if discoveryMode }}\n\n{{ if hasModules }}\n### Available Modules\n{{ modulesList }}\n{{ /if }}\n{{ if hasDiscoveredDocs }}\n### Discovered Tool Docs\n\nThese were fetched this run — use them directly. Only re-run discovery for modules/functions not listed here.\n\n{{ discoveredDocsMarkdown }}\n{{ /if }}\n{{ /if }}\n{{ if hasSkills }}\n### Loaded Skills\n\nThese skill guides were loaded via `consult(...)` — apply them directly. Call `consult([...])` to load additional skills as needed.\n\n{{ skillsMarkdown }}\n{{ /if }}\n{{ if memoriesMode }}\n\n### Memories\n\n`inputs.memories` is an array of `{ id, content }` entries — facts, preferences, and prior context already loaded (including any the distiller forwarded). Scan it before deciding what to do. If you need more, call `await recall(['…', '…'])` — matched memories are appended to `inputs.memories` for the next turn.\n{{ /if }}\n\n### How to Work\n\n- Start from `inputs.executorRequest`, `inputs.distilledContext`, non-context task inputs, and prior successful Action Log results. Don't repeat probes already in the Action Log.\n- Treat direct action requests as work to attempt with available functions. If a function fails or the environment denies the action, capture the real error, status, output, or exception in the evidence for the responder.\n- **Use JS** for deterministic work (filter, sort, slice, regex, dedupe). **Use `llmQuery`** only to interpret narrowed text — never pass raw `inputs.*` to it.\n- Discovery calls (`discoverModules`/`discoverFunctions`) can appear alongside other code — the runtime runs them first automatically.\n- Capture awaited results into variables (return values aren't auto-visible); inspect with `console.log(result)` or finish with `await final(\"...\", { result })`. Multiple `console.log`s per turn is fine.\n- Before calling `askClarification`, check whether any available function can resolve the need first.\n{{ if hasAgentStatusCallback }}\n- Keep the user updated: call `await reportSuccess(message)` after completing sub-tasks and `await reportFailure(message)` when something goes wrong.\n{{ /if }}\n\n```js\nconst narrowed = inputs.emails\n .filter(e => e.subject.toLowerCase().includes('refund'))\n .map(e => ({ from: e.from, subject: e.subject, body: e.body.slice(0, 800) }));\n\nconst plan = await llmQuery([{\n query: 'Determine which messages require a refund response and draft a compact action plan.',\n context: { emails: narrowed }\n}]);\nconsole.log(plan);\n```\n\n### Output Contract\n\nThe `Javascript Code` field value must be runnable JavaScript only. Do not put prose or plain labels like `task:` / `evidence:` inside the value. Never combine `console.log` with `final()` or `askClarification()` in the same turn.\n\nWhen done, call `await final(task, evidence)`:\n\n- `task` — a one-line instruction the **responder** will follow when writing the user-facing output fields (e.g. \"Answer the user's question using the matched emails\").\n- `evidence` — the curated data the responder will read to follow `task`. Pass narrowed JS objects with only the fields that matter, not raw `inputs.*`. Use plain keys (`{ matchedEmails: [...] }`) — don't wrap under the output field name.\n\nDo not pre-format the answer; the responder writes the output fields.\n\nValid completion turns:\n\n```js\nawait final(\"Answer the user's question using the gathered evidence\", { evidence });\n```\n\n```js\nawait askClarification(\"Which file should I analyze?\");\n```\n\n## JavaScript Runtime Usage Instructions\n{{ runtimeUsageInstructions }}\n";
|
|
4318
|
+
readonly 'rlm/responder.md': "## Answer Synthesis Agent\n\nYou synthesize the final answer from the evidence the actor gathered. You do not run code, call tools, or invoke agents — you read input fields and write the output fields.\n\n### Reading the actor's payload\n\n`Context Data` has two keys:\n\n- `task` — a one-line instruction telling you what to write into the output fields.\n- `evidence` — the data the actor curated for you to follow that instruction.\n\n### Rules\n\n1. Follow `Context Data.task` using `Context Data.evidence` and any other input fields provided.\n2. When emitting a JSON output field, write the value flat — do **not** wrap it under a key matching the field's title. The field is already named.\n3. If `evidence` lacks sufficient information, give the best possible answer from what's available across all input fields.\n4. Do not contradict actor evidence. If evidence contains a tool result, failure, status, output, or exception, report that result rather than inventing a capability limit.\n\n### Context variables that were analyzed (metadata only)\n{{ contextVarSummary }}\n{{ if hasAgentIdentity }}\n\n### Agent Identity\n\nUser-facing identity:\n{{ agentIdentityText }}\n{{ /if }}\n";
|
|
4311
4319
|
};
|
|
4312
4320
|
type TemplateId = keyof typeof promptTemplates;
|
|
4313
4321
|
|
|
@@ -5709,6 +5717,10 @@ type AxAIAnthropicThinkingWire = {
|
|
|
5709
5717
|
type AxAIAnthropicEffortLevel = 'low' | 'medium' | 'high' | 'max';
|
|
5710
5718
|
type AxAIAnthropicOutputConfig = {
|
|
5711
5719
|
effort?: AxAIAnthropicEffortLevel;
|
|
5720
|
+
format?: {
|
|
5721
|
+
type: 'json_schema';
|
|
5722
|
+
schema: object;
|
|
5723
|
+
};
|
|
5712
5724
|
};
|
|
5713
5725
|
type AxAIAnthropicEffortLevelMapping = {
|
|
5714
5726
|
minimal?: AxAIAnthropicEffortLevel;
|
|
@@ -5771,7 +5783,7 @@ type AxAIAnthropicChatRequest = {
|
|
|
5771
5783
|
media_type: string;
|
|
5772
5784
|
data: string;
|
|
5773
5785
|
};
|
|
5774
|
-
} & AxAIAnthropicChatRequestCacheParam) | {
|
|
5786
|
+
} & AxAIAnthropicChatRequestCacheParam) | ({
|
|
5775
5787
|
type: 'tool_result';
|
|
5776
5788
|
is_error?: boolean;
|
|
5777
5789
|
tool_use_id: string;
|
|
@@ -5786,7 +5798,7 @@ type AxAIAnthropicChatRequest = {
|
|
|
5786
5798
|
data: string;
|
|
5787
5799
|
};
|
|
5788
5800
|
} & AxAIAnthropicChatRequestCacheParam))[];
|
|
5789
|
-
})[];
|
|
5801
|
+
} & AxAIAnthropicChatRequestCacheParam))[];
|
|
5790
5802
|
} | {
|
|
5791
5803
|
role: 'assistant';
|
|
5792
5804
|
content: string | (({
|
|
@@ -5826,10 +5838,6 @@ type AxAIAnthropicChatRequest = {
|
|
|
5826
5838
|
top_k?: number;
|
|
5827
5839
|
thinking?: AxAIAnthropicThinkingWire;
|
|
5828
5840
|
output_config?: AxAIAnthropicOutputConfig;
|
|
5829
|
-
output_format?: {
|
|
5830
|
-
type: 'json_schema';
|
|
5831
|
-
schema: object;
|
|
5832
|
-
};
|
|
5833
5841
|
metadata?: {
|
|
5834
5842
|
user_id: string;
|
|
5835
5843
|
};
|
|
@@ -6003,8 +6011,11 @@ declare enum AxAIOpenAIModel {
|
|
|
6003
6011
|
GPT4OMini = "gpt-4o-mini",
|
|
6004
6012
|
GPTAudio = "gpt-audio",
|
|
6005
6013
|
GPTAudioMini = "gpt-audio-mini",
|
|
6014
|
+
GPTAudio15 = "gpt-audio-1.5",
|
|
6015
|
+
GPTRealtime15 = "gpt-realtime-1.5",
|
|
6006
6016
|
GPTRealtime2 = "gpt-realtime-2",
|
|
6007
6017
|
GPTRealtimeWhisper = "gpt-realtime-whisper",
|
|
6018
|
+
GPTRealtimeTranslate = "gpt-realtime-translate",
|
|
6008
6019
|
GPT4ChatGPT4O = "chatgpt-4o-latest",
|
|
6009
6020
|
GPT4Turbo = "gpt-4-turbo",
|
|
6010
6021
|
GPT35Turbo = "gpt-3.5-turbo",
|
|
@@ -6031,6 +6042,8 @@ declare enum AxAIOpenAIModel {
|
|
|
6031
6042
|
GPT54 = "gpt-5.4",
|
|
6032
6043
|
GPT54Mini = "gpt-5.4-mini",
|
|
6033
6044
|
GPT54Nano = "gpt-5.4-nano",
|
|
6045
|
+
GPT55 = "gpt-5.5",
|
|
6046
|
+
GPT55Pro = "gpt-5.5-pro",
|
|
6034
6047
|
O1 = "o1",
|
|
6035
6048
|
O1Mini = "o1-mini",
|
|
6036
6049
|
O3 = "o3",
|
|
@@ -6063,7 +6076,7 @@ type AxAIOpenAIConfig<TModel, TEmbedModel> = Omit<AxModelConfig, 'topK'> & {
|
|
|
6063
6076
|
logprobs?: number;
|
|
6064
6077
|
echo?: boolean;
|
|
6065
6078
|
dimensions?: number;
|
|
6066
|
-
reasoningEffort?: 'minimal' | 'low' | 'medium' | 'high';
|
|
6079
|
+
reasoningEffort?: 'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh';
|
|
6067
6080
|
store?: boolean;
|
|
6068
6081
|
serviceTier?: 'auto' | 'default' | 'flex';
|
|
6069
6082
|
webSearchOptions?: {
|
|
@@ -6111,7 +6124,7 @@ interface AxAIOpenAIResponseDelta<T> {
|
|
|
6111
6124
|
}
|
|
6112
6125
|
type AxAIOpenAIChatRequest<TModel> = {
|
|
6113
6126
|
model: TModel;
|
|
6114
|
-
reasoning_effort?: 'none' | 'minimal' | 'low' | 'medium' | 'high';
|
|
6127
|
+
reasoning_effort?: 'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh';
|
|
6115
6128
|
store?: boolean;
|
|
6116
6129
|
modalities?: readonly ('text' | 'audio')[];
|
|
6117
6130
|
audio?: {
|
|
@@ -6946,6 +6959,10 @@ declare enum AxAIGoogleGeminiModel {
|
|
|
6946
6959
|
Gemini3Flash = "gemini-3-flash-preview",
|
|
6947
6960
|
Gemini3Pro = "gemini-3.1-pro-preview",
|
|
6948
6961
|
Gemini3ProImage = "gemini-3-pro-image-preview",
|
|
6962
|
+
Gemini31FlashImage = "gemini-3.1-flash-image-preview",
|
|
6963
|
+
Gemini31FlashTTS = "gemini-3.1-flash-tts-preview",
|
|
6964
|
+
NanoBanana2 = "nano-banana-2",
|
|
6965
|
+
GeminiRoboticsER16 = "gemini-robotics-er-1.6-preview",
|
|
6949
6966
|
Gemini25Pro = "gemini-2.5-pro",
|
|
6950
6967
|
Gemini25Flash = "gemini-2.5-flash",
|
|
6951
6968
|
Gemini25FlashNativeAudio = "gemini-2.5-flash-native-audio-preview-12-2025",
|
|
@@ -6967,7 +6984,6 @@ declare enum AxAIGoogleGeminiEmbedModel {
|
|
|
6967
6984
|
GeminiEmbedding001 = "gemini-embedding-001",
|
|
6968
6985
|
GeminiEmbedding = "gemini-embedding-exp",
|
|
6969
6986
|
TextEmbeddingLarge = "text-embedding-large-exp-03-07",
|
|
6970
|
-
TextEmbedding004 = "text-embedding-004",
|
|
6971
6987
|
TextEmbedding005 = "text-embedding-005"
|
|
6972
6988
|
}
|
|
6973
6989
|
declare enum AxAIGoogleGeminiSafetyCategory {
|
|
@@ -7123,6 +7139,14 @@ type AxAIGoogleGeminiChatResponse = {
|
|
|
7123
7139
|
title?: string;
|
|
7124
7140
|
uri?: string;
|
|
7125
7141
|
};
|
|
7142
|
+
retrievedContext?: {
|
|
7143
|
+
title?: string;
|
|
7144
|
+
uri?: string;
|
|
7145
|
+
/** File Search multimodal (May 2026): id of the file/media chunk. */
|
|
7146
|
+
media_id?: string;
|
|
7147
|
+
/** File Search multimodal (May 2026): page numbers cited within the source. */
|
|
7148
|
+
page_numbers?: number[];
|
|
7149
|
+
};
|
|
7126
7150
|
}[];
|
|
7127
7151
|
googleMapsWidgetContextToken?: string;
|
|
7128
7152
|
};
|
|
@@ -7527,6 +7551,8 @@ declare enum AxAIOpenAIResponsesModel {
|
|
|
7527
7551
|
GPT54 = "gpt-5.4",
|
|
7528
7552
|
GPT54Mini = "gpt-5.4-mini",
|
|
7529
7553
|
GPT54Nano = "gpt-5.4-nano",
|
|
7554
|
+
GPT55 = "gpt-5.5",
|
|
7555
|
+
GPT55Pro = "gpt-5.5-pro",
|
|
7530
7556
|
O1Pro = "o1-pro",
|
|
7531
7557
|
O1 = "o1",
|
|
7532
7558
|
O1Mini = "o1-mini",
|
|
@@ -7592,14 +7618,14 @@ interface AxAIOpenAIResponsesRequest<TModel = AxAIOpenAIResponsesModel> {
|
|
|
7592
7618
|
readonly input: string | ReadonlyArray<AxAIOpenAIResponsesInputItem>;
|
|
7593
7619
|
readonly model: TModel;
|
|
7594
7620
|
readonly background?: boolean | null;
|
|
7595
|
-
readonly include?: ReadonlyArray<'file_search_call.results' | 'message.input_image.image_url' | 'computer_call_output.output.image_url' | 'reasoning.encrypted_content' | 'code_interpreter_call.outputs'> | null;
|
|
7621
|
+
readonly include?: ReadonlyArray<'file_search_call.results' | 'message.input_image.image_url' | 'computer_call_output.output.image_url' | 'reasoning.encrypted_content' | 'code_interpreter_call.outputs' | 'web_search_call.action.return_token_budget'> | null;
|
|
7596
7622
|
readonly instructions?: string | null;
|
|
7597
7623
|
readonly max_output_tokens?: number | null;
|
|
7598
7624
|
readonly metadata?: Readonly<Record<string, string>> | null;
|
|
7599
7625
|
readonly parallel_tool_calls?: boolean | null;
|
|
7600
7626
|
readonly previous_response_id?: string | null;
|
|
7601
7627
|
readonly reasoning?: {
|
|
7602
|
-
readonly effort?: 'minimal' | 'low' | 'medium' | 'high' | null;
|
|
7628
|
+
readonly effort?: 'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | null;
|
|
7603
7629
|
readonly summary?: 'auto' | 'concise' | 'detailed' | null;
|
|
7604
7630
|
} | null;
|
|
7605
7631
|
readonly service_tier?: 'auto' | 'default' | 'flex' | null;
|
|
@@ -7629,6 +7655,7 @@ interface AxAIOpenAIResponsesOutputMessageItem {
|
|
|
7629
7655
|
role: 'assistant';
|
|
7630
7656
|
content: ReadonlyArray<AxAIOpenAIResponsesOutputTextContentPart | AxAIOpenAIResponsesOutputRefusalContentPart>;
|
|
7631
7657
|
status: 'in_progress' | 'completed' | 'incomplete';
|
|
7658
|
+
phase?: 'commentary' | 'final_answer';
|
|
7632
7659
|
}
|
|
7633
7660
|
interface AxAIOpenAIResponsesFunctionCallItem {
|
|
7634
7661
|
type: 'function_call';
|
|
@@ -7978,7 +8005,7 @@ type AxAIOpenAIResponsesConfig<TModel, TEmbedModel> = Omit<AxModelConfig, 'topK'
|
|
|
7978
8005
|
logprobs?: number;
|
|
7979
8006
|
echo?: boolean;
|
|
7980
8007
|
dimensions?: number;
|
|
7981
|
-
reasoningEffort?: 'minimal' | 'low' | 'medium' | 'high';
|
|
8008
|
+
reasoningEffort?: 'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh';
|
|
7982
8009
|
reasoningSummary?: 'auto' | 'concise' | 'detailed';
|
|
7983
8010
|
store?: boolean;
|
|
7984
8011
|
systemPrompt?: string;
|