stratus-sdk 0.8.0 → 0.10.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.
- package/LICENSE +21 -0
- package/README.md +32 -1
- package/dist/azure/chat-completions-model.d.ts.map +1 -1
- package/dist/azure/chat-completions-model.js +10 -0
- package/dist/azure/chat-completions-model.js.map +1 -1
- package/dist/azure/responses-model.d.ts.map +1 -1
- package/dist/azure/responses-model.js +251 -112
- package/dist/azure/responses-model.js.map +1 -1
- package/dist/core/agent.d.ts +1 -1
- package/dist/core/agent.d.ts.map +1 -1
- package/dist/core/builtin-tools.d.ts +11 -0
- package/dist/core/builtin-tools.d.ts.map +1 -1
- package/dist/core/builtin-tools.js +26 -0
- package/dist/core/builtin-tools.js.map +1 -1
- package/dist/core/codemode/executor.d.ts +38 -0
- package/dist/core/codemode/executor.d.ts.map +1 -0
- package/dist/core/codemode/executor.js +54 -0
- package/dist/core/codemode/executor.js.map +1 -0
- package/dist/core/codemode/index.d.ts +62 -0
- package/dist/core/codemode/index.d.ts.map +1 -0
- package/dist/core/codemode/index.js +104 -0
- package/dist/core/codemode/index.js.map +1 -0
- package/dist/core/codemode/types.d.ts +24 -0
- package/dist/core/codemode/types.d.ts.map +1 -0
- package/dist/core/codemode/types.js +405 -0
- package/dist/core/codemode/types.js.map +1 -0
- package/dist/core/errors.d.ts +5 -0
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +10 -0
- package/dist/core/errors.js.map +1 -1
- package/dist/core/guardrails.d.ts +26 -2
- package/dist/core/guardrails.d.ts.map +1 -1
- package/dist/core/guardrails.js +23 -7
- package/dist/core/guardrails.js.map +1 -1
- package/dist/core/handoff.d.ts +18 -1
- package/dist/core/handoff.d.ts.map +1 -1
- package/dist/core/handoff.js +8 -1
- package/dist/core/handoff.js.map +1 -1
- package/dist/core/hooks.d.ts +68 -4
- package/dist/core/hooks.d.ts.map +1 -1
- package/dist/core/hosted-tool.d.ts +1 -1
- package/dist/core/hosted-tool.d.ts.map +1 -1
- package/dist/core/index.d.ts +11 -9
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +4 -3
- package/dist/core/index.js.map +1 -1
- package/dist/core/model.d.ts +4 -0
- package/dist/core/model.d.ts.map +1 -1
- package/dist/core/result.d.ts +7 -0
- package/dist/core/result.d.ts.map +1 -1
- package/dist/core/result.js +8 -0
- package/dist/core/result.js.map +1 -1
- package/dist/core/run.d.ts +35 -5
- package/dist/core/run.d.ts.map +1 -1
- package/dist/core/run.js +308 -45
- package/dist/core/run.js.map +1 -1
- package/dist/core/session.d.ts +16 -3
- package/dist/core/session.d.ts.map +1 -1
- package/dist/core/session.js +22 -5
- package/dist/core/session.js.map +1 -1
- package/dist/core/subagent.d.ts.map +1 -1
- package/dist/core/subagent.js.map +1 -1
- package/dist/core/todo.d.ts +2 -2
- package/dist/core/todo.d.ts.map +1 -1
- package/dist/core/todo.js.map +1 -1
- package/dist/core/tool.d.ts +6 -0
- package/dist/core/tool.d.ts.map +1 -1
- package/dist/core/tool.js +2 -0
- package/dist/core/tool.js.map +1 -1
- package/dist/core/types.d.ts +13 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/utils/zod.js +1 -1
- package/dist/core/utils/zod.js.map +1 -1
- package/package.json +1 -1
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Tyler Gibbs
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -22,7 +22,7 @@ A better TypeScript agent SDK for Azure OpenAI. Build multi-agent systems with t
|
|
|
22
22
|
- **Type-safe from schema to output** — Zod schemas drive tool parameters, structured output, and validation. Context types flow through agents, hooks, and guardrails at compile time.
|
|
23
23
|
- **Zero dependencies** — only Zod as a peer dep. No transitive dependency sprawl, no framework lock-in.
|
|
24
24
|
|
|
25
|
-
`agents` `tools` `streaming` `structured output` `handoffs` `subagents` `guardrails` `hooks` `tracing` `sessions` `abort signals` `todo tracking` `cost tracking`
|
|
25
|
+
`agents` `tools` `streaming` `structured output` `handoffs` `subagents` `guardrails` `hooks` `tracing` `sessions` `abort signals` `code mode` `todo tracking` `cost tracking`
|
|
26
26
|
|
|
27
27
|
## Install
|
|
28
28
|
|
|
@@ -408,6 +408,37 @@ const agent = new Agent({
|
|
|
408
408
|
});
|
|
409
409
|
```
|
|
410
410
|
|
|
411
|
+
### Code Mode (Experimental)
|
|
412
|
+
|
|
413
|
+
Let LLMs write code that orchestrates multiple tools instead of calling them one at a time. Inspired by [Cloudflare's Code Mode](https://blog.cloudflare.com/code-mode-the-better-way-to-use-mcp) — LLMs are better at writing code than making individual tool calls.
|
|
414
|
+
|
|
415
|
+
```ts
|
|
416
|
+
import { createCodeModeTool, FunctionExecutor } from "stratus-sdk/core";
|
|
417
|
+
|
|
418
|
+
const executor = new FunctionExecutor({ timeout: 30_000 });
|
|
419
|
+
const codemode = createCodeModeTool({
|
|
420
|
+
tools: [getWeather, sendEmail, lookupOrder],
|
|
421
|
+
executor,
|
|
422
|
+
});
|
|
423
|
+
|
|
424
|
+
const agent = new Agent({
|
|
425
|
+
name: "assistant",
|
|
426
|
+
model,
|
|
427
|
+
tools: [codemode],
|
|
428
|
+
});
|
|
429
|
+
|
|
430
|
+
// The LLM writes code like:
|
|
431
|
+
// async () => {
|
|
432
|
+
// const weather = await codemode.get_weather({ location: "London" });
|
|
433
|
+
// if (weather.temp > 60) {
|
|
434
|
+
// await codemode.send_email({ to: "team@co.com", subject: "Nice day!", body: ... });
|
|
435
|
+
// }
|
|
436
|
+
// return { weather, notified: true };
|
|
437
|
+
// }
|
|
438
|
+
```
|
|
439
|
+
|
|
440
|
+
`createCodeModeTool` generates TypeScript types from your tools, presents the LLM with a single `execute_code` tool, and runs the generated code in an executor. All tool calls happen within one invocation — no round-trips through the model between calls. Implement the `Executor` interface for custom sandboxes (isolated-vm, containers, Cloudflare Workers).
|
|
441
|
+
|
|
411
442
|
## Imports
|
|
412
443
|
|
|
413
444
|
Stratus provides three export paths:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-completions-model.d.ts","sourceRoot":"","sources":["../../src/azure/chat-completions-model.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEX,KAAK,EACL,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACb,WAAW,EAEX,MAAM,eAAe,CAAC;AAKvB,MAAM,WAAW,+BAA+B;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAID,qBAAa,yBAA0B,YAAW,KAAK;IACtD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAwB;IACvD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAExB,MAAM,EAAE,+BAA+B;
|
|
1
|
+
{"version":3,"file":"chat-completions-model.d.ts","sourceRoot":"","sources":["../../src/azure/chat-completions-model.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEX,KAAK,EACL,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACb,WAAW,EAEX,MAAM,eAAe,CAAC;AAKvB,MAAM,WAAW,+BAA+B;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAID,qBAAa,yBAA0B,YAAW,KAAK;IACtD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAwB;IACvD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAExB,MAAM,EAAE,+BAA+B;YAiBrC,cAAc;IAQtB,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC;IAOxF,mBAAmB,CACzB,OAAO,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE,mBAAmB,GAC3B,cAAc,CAAC,WAAW,CAAC;IAiG9B,OAAO,CAAC,gBAAgB;YA4CV,OAAO;YAiCP,mBAAmB;IA2BjC,OAAO,CAAC,aAAa;CAyCrB"}
|
|
@@ -164,6 +164,16 @@ export class AzureChatCompletionsModel {
|
|
|
164
164
|
body.reasoning_effort = s.reasoningEffort;
|
|
165
165
|
if (s.promptCacheKey !== undefined)
|
|
166
166
|
body.prompt_cache_key = s.promptCacheKey;
|
|
167
|
+
if (s.store !== undefined)
|
|
168
|
+
body.store = s.store;
|
|
169
|
+
if (s.metadata !== undefined)
|
|
170
|
+
body.metadata = s.metadata;
|
|
171
|
+
if (s.user !== undefined)
|
|
172
|
+
body.user = s.user;
|
|
173
|
+
if (s.logprobs !== undefined)
|
|
174
|
+
body.logprobs = s.logprobs;
|
|
175
|
+
if (s.topLogprobs !== undefined)
|
|
176
|
+
body.top_logprobs = s.topLogprobs;
|
|
167
177
|
}
|
|
168
178
|
return body;
|
|
169
179
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-completions-model.js","sourceRoot":"","sources":["../../src/azure/chat-completions-model.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chat-completions-model.js","sourceRoot":"","sources":["../../src/azure/chat-completions-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"responses-model.d.ts","sourceRoot":"","sources":["../../src/azure/responses-model.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEX,KAAK,EACL,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACb,WAAW,EAEX,MAAM,eAAe,CAAC;AAavB,MAAM,WAAW,yBAAyB;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;CAChB;
|
|
1
|
+
{"version":3,"file":"responses-model.d.ts","sourceRoot":"","sources":["../../src/azure/responses-model.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEX,KAAK,EACL,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACb,WAAW,EAEX,MAAM,eAAe,CAAC;AAavB,MAAM,WAAW,yBAAyB;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;CAChB;AAsCD,qBAAa,mBAAoB,YAAW,KAAK;IAChD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAwB;IACvD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAU;gBAEpB,MAAM,EAAE,yBAAyB;YAc/B,cAAc;IAQtB,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC;IAOxF,mBAAmB,CACzB,OAAO,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE,mBAAmB,GAC3B,cAAc,CAAC,WAAW,CAAC;IA2L9B,OAAO,CAAC,gBAAgB;YAkEV,OAAO;YAqDP,mBAAmB;IA2BjC,OAAO,CAAC,aAAa;CA4BrB"}
|
|
@@ -2,6 +2,38 @@ import { ContentFilterError, ModelError, StratusError } from "../core/errors";
|
|
|
2
2
|
import { resolveResponsesUrl } from "./endpoint";
|
|
3
3
|
import { parseSSE } from "./sse-parser";
|
|
4
4
|
const DEFAULT_API_VERSION = "2025-04-01-preview";
|
|
5
|
+
const HOSTED_TOOL_EVENT_MAP = new Map([
|
|
6
|
+
["response.web_search_call.in_progress", { toolType: "web_search", status: "in_progress" }],
|
|
7
|
+
["response.web_search_call.searching", { toolType: "web_search", status: "searching" }],
|
|
8
|
+
["response.web_search_call.completed", { toolType: "web_search", status: "completed" }],
|
|
9
|
+
["response.file_search_call.in_progress", { toolType: "file_search", status: "in_progress" }],
|
|
10
|
+
["response.file_search_call.searching", { toolType: "file_search", status: "searching" }],
|
|
11
|
+
["response.file_search_call.completed", { toolType: "file_search", status: "completed" }],
|
|
12
|
+
[
|
|
13
|
+
"response.code_interpreter_call.in_progress",
|
|
14
|
+
{ toolType: "code_interpreter", status: "in_progress" },
|
|
15
|
+
],
|
|
16
|
+
[
|
|
17
|
+
"response.code_interpreter_call.interpreting",
|
|
18
|
+
{ toolType: "code_interpreter", status: "interpreting" },
|
|
19
|
+
],
|
|
20
|
+
[
|
|
21
|
+
"response.code_interpreter_call.completed",
|
|
22
|
+
{ toolType: "code_interpreter", status: "completed" },
|
|
23
|
+
],
|
|
24
|
+
[
|
|
25
|
+
"response.image_generation_call.in_progress",
|
|
26
|
+
{ toolType: "image_generation", status: "in_progress" },
|
|
27
|
+
],
|
|
28
|
+
[
|
|
29
|
+
"response.image_generation_call.generating",
|
|
30
|
+
{ toolType: "image_generation", status: "generating" },
|
|
31
|
+
],
|
|
32
|
+
[
|
|
33
|
+
"response.image_generation_call.completed",
|
|
34
|
+
{ toolType: "image_generation", status: "completed" },
|
|
35
|
+
],
|
|
36
|
+
]);
|
|
5
37
|
export class AzureResponsesModel {
|
|
6
38
|
url;
|
|
7
39
|
apiKey;
|
|
@@ -36,113 +68,187 @@ export class AzureResponsesModel {
|
|
|
36
68
|
}
|
|
37
69
|
async *getStreamedResponse(request, options) {
|
|
38
70
|
const body = this.buildRequestBody(request, true);
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
// Keyed by item.id (the Responses API item identifier), storing call_id for SDK events
|
|
45
|
-
const toolCalls = new Map();
|
|
46
|
-
let usage;
|
|
47
|
-
let finishReason;
|
|
48
|
-
let responseId;
|
|
49
|
-
for await (const data of parseSSE(response.body)) {
|
|
50
|
-
let event;
|
|
51
|
-
try {
|
|
52
|
-
event = JSON.parse(data);
|
|
53
|
-
}
|
|
54
|
-
catch {
|
|
55
|
-
continue;
|
|
71
|
+
const maxSseRetries = 3;
|
|
72
|
+
for (let sseAttempt = 0; sseAttempt <= maxSseRetries; sseAttempt++) {
|
|
73
|
+
const response = await this.doFetch(body, options?.signal);
|
|
74
|
+
if (!response.body) {
|
|
75
|
+
throw new ModelError("Response body is null");
|
|
56
76
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
77
|
+
let content = "";
|
|
78
|
+
// Keyed by item.id (the Responses API item identifier), storing call_id for SDK events
|
|
79
|
+
const toolCalls = new Map();
|
|
80
|
+
let usage;
|
|
81
|
+
let finishReason;
|
|
82
|
+
let responseId;
|
|
83
|
+
// Deferred error from response.failed with no error details —
|
|
84
|
+
// allows the subsequent `error` SSE event to provide the real message.
|
|
85
|
+
let deferredFailure;
|
|
86
|
+
let hasYielded = false;
|
|
87
|
+
let sseRateLimited = false;
|
|
88
|
+
for await (const data of parseSSE(response.body)) {
|
|
89
|
+
let event;
|
|
90
|
+
try {
|
|
91
|
+
event = JSON.parse(data);
|
|
63
92
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
const itemId = event.item.id ?? "";
|
|
67
|
-
const callId = event.item.call_id ?? "";
|
|
68
|
-
const name = event.item.name ?? "";
|
|
69
|
-
toolCalls.set(itemId, { callId, name, arguments: "" });
|
|
70
|
-
if (callId && name) {
|
|
71
|
-
yield { type: "tool_call_start", toolCall: { id: callId, name } };
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
break;
|
|
93
|
+
catch {
|
|
94
|
+
continue;
|
|
75
95
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
type: "tool_call_delta",
|
|
84
|
-
toolCallId: existing.callId,
|
|
85
|
-
arguments: argDelta,
|
|
86
|
-
};
|
|
96
|
+
switch (event.type) {
|
|
97
|
+
case "response.output_text.delta": {
|
|
98
|
+
const textDelta = event.delta ?? "";
|
|
99
|
+
content += textDelta;
|
|
100
|
+
hasYielded = true;
|
|
101
|
+
yield { type: "content_delta", content: textDelta };
|
|
102
|
+
break;
|
|
87
103
|
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
104
|
+
case "response.output_item.added": {
|
|
105
|
+
if (event.item?.type === "function_call") {
|
|
106
|
+
const itemId = event.item.id ?? "";
|
|
107
|
+
const callId = event.item.call_id ?? "";
|
|
108
|
+
const name = event.item.name ?? "";
|
|
109
|
+
toolCalls.set(itemId, { callId, name, arguments: "" });
|
|
110
|
+
if (callId && name) {
|
|
111
|
+
hasYielded = true;
|
|
112
|
+
yield { type: "tool_call_start", toolCall: { id: callId, name } };
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
break;
|
|
116
|
+
}
|
|
117
|
+
case "response.function_call_arguments.delta": {
|
|
118
|
+
const itemId = event.item_id ?? "";
|
|
93
119
|
const existing = toolCalls.get(itemId);
|
|
94
120
|
if (existing) {
|
|
95
|
-
|
|
96
|
-
|
|
121
|
+
const argDelta = event.delta ?? "";
|
|
122
|
+
existing.arguments += argDelta;
|
|
123
|
+
hasYielded = true;
|
|
124
|
+
yield {
|
|
125
|
+
type: "tool_call_delta",
|
|
126
|
+
toolCallId: existing.callId,
|
|
127
|
+
arguments: argDelta,
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
break;
|
|
131
|
+
}
|
|
132
|
+
case "response.output_item.done": {
|
|
133
|
+
if (event.item?.type === "function_call") {
|
|
134
|
+
const itemId = event.item.id ?? "";
|
|
135
|
+
const existing = toolCalls.get(itemId);
|
|
136
|
+
if (existing) {
|
|
137
|
+
if (event.item.arguments) {
|
|
138
|
+
existing.arguments = event.item.arguments;
|
|
139
|
+
}
|
|
140
|
+
hasYielded = true;
|
|
141
|
+
yield { type: "tool_call_done", toolCallId: existing.callId };
|
|
97
142
|
}
|
|
98
|
-
yield { type: "tool_call_done", toolCallId: existing.callId };
|
|
99
143
|
}
|
|
144
|
+
break;
|
|
100
145
|
}
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
146
|
+
// Hosted tool streaming events
|
|
147
|
+
case "response.web_search_call.in_progress":
|
|
148
|
+
case "response.web_search_call.searching":
|
|
149
|
+
case "response.web_search_call.completed":
|
|
150
|
+
case "response.file_search_call.in_progress":
|
|
151
|
+
case "response.file_search_call.searching":
|
|
152
|
+
case "response.file_search_call.completed":
|
|
153
|
+
case "response.code_interpreter_call.in_progress":
|
|
154
|
+
case "response.code_interpreter_call.interpreting":
|
|
155
|
+
case "response.code_interpreter_call.completed":
|
|
156
|
+
case "response.image_generation_call.in_progress":
|
|
157
|
+
case "response.image_generation_call.generating":
|
|
158
|
+
case "response.image_generation_call.completed": {
|
|
159
|
+
const mapped = HOSTED_TOOL_EVENT_MAP.get(event.type);
|
|
160
|
+
if (mapped) {
|
|
161
|
+
hasYielded = true;
|
|
162
|
+
yield { type: "hosted_tool_call", toolType: mapped.toolType, status: mapped.status };
|
|
163
|
+
}
|
|
164
|
+
break;
|
|
107
165
|
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
:
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
166
|
+
case "response.completed": {
|
|
167
|
+
const resp = event.response;
|
|
168
|
+
if (resp?.id) {
|
|
169
|
+
responseId = resp.id;
|
|
170
|
+
}
|
|
171
|
+
if (resp?.usage) {
|
|
172
|
+
usage = {
|
|
173
|
+
promptTokens: resp.usage.input_tokens,
|
|
174
|
+
completionTokens: resp.usage.output_tokens,
|
|
175
|
+
totalTokens: resp.usage.total_tokens,
|
|
176
|
+
...(resp.usage.input_tokens_details?.cached_tokens !== undefined
|
|
177
|
+
? { cacheReadTokens: resp.usage.input_tokens_details.cached_tokens }
|
|
178
|
+
: {}),
|
|
179
|
+
...(resp.usage.output_tokens_details?.reasoning_tokens !== undefined
|
|
180
|
+
? { reasoningTokens: resp.usage.output_tokens_details.reasoning_tokens }
|
|
181
|
+
: {}),
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
finishReason = mapStatus(resp?.status);
|
|
185
|
+
break;
|
|
186
|
+
}
|
|
187
|
+
case "response.failed": {
|
|
188
|
+
const errorMsg = event.response?.error?.message;
|
|
189
|
+
if (errorMsg) {
|
|
190
|
+
throw new ModelError(`Azure API response failed: ${errorMsg}`, { status: 200 });
|
|
191
|
+
}
|
|
192
|
+
// error is null — defer to let the subsequent `error` event
|
|
193
|
+
// provide the real details (e.g. too_many_requests).
|
|
194
|
+
deferredFailure = "Response failed";
|
|
195
|
+
break;
|
|
196
|
+
}
|
|
197
|
+
case "error": {
|
|
198
|
+
const err = event.error;
|
|
199
|
+
const errorType = err?.type ?? "unknown";
|
|
200
|
+
const errorMsg = err?.message ?? "Unknown error";
|
|
201
|
+
if (errorType === "too_many_requests") {
|
|
202
|
+
if (!hasYielded && sseAttempt < maxSseRetries) {
|
|
203
|
+
sseRateLimited = true;
|
|
204
|
+
break; // exit SSE loop, retry in outer loop
|
|
205
|
+
}
|
|
206
|
+
throw new ModelError(`Azure API rate limited (SSE): ${errorMsg}`, { status: 429 });
|
|
207
|
+
}
|
|
208
|
+
throw new ModelError(`Azure API stream error (${errorType}): ${errorMsg}`, {
|
|
209
|
+
status: 200,
|
|
210
|
+
});
|
|
120
211
|
}
|
|
121
|
-
finishReason = mapStatus(resp?.status);
|
|
122
|
-
break;
|
|
123
212
|
}
|
|
124
213
|
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
214
|
+
// SSE rate limited before any events were yielded — retry with backoff
|
|
215
|
+
if (sseRateLimited) {
|
|
216
|
+
const retryAfterHeader = response.headers.get("retry-after");
|
|
217
|
+
const waitMs = retryAfterHeader
|
|
218
|
+
? Number.parseInt(retryAfterHeader, 10) * 1000
|
|
219
|
+
: Math.min(10000 * 2 ** sseAttempt, 60000);
|
|
220
|
+
await new Promise((r) => setTimeout(r, waitMs));
|
|
221
|
+
continue;
|
|
222
|
+
}
|
|
223
|
+
// If response.failed had no error details and no subsequent error event provided one
|
|
224
|
+
if (deferredFailure) {
|
|
225
|
+
throw new ModelError(`Azure API response failed: ${deferredFailure}`, { status: 200 });
|
|
226
|
+
}
|
|
227
|
+
const finalToolCalls = Array.from(toolCalls.values()).map((tc) => ({
|
|
228
|
+
id: tc.callId,
|
|
229
|
+
type: "function",
|
|
230
|
+
function: { name: tc.name, arguments: tc.arguments },
|
|
231
|
+
}));
|
|
232
|
+
yield {
|
|
233
|
+
type: "done",
|
|
234
|
+
response: {
|
|
235
|
+
content: content || null,
|
|
236
|
+
toolCalls: finalToolCalls,
|
|
237
|
+
usage,
|
|
238
|
+
finishReason,
|
|
239
|
+
responseId,
|
|
240
|
+
},
|
|
241
|
+
};
|
|
242
|
+
return; // success — exit retry loop
|
|
243
|
+
} // end SSE retry loop
|
|
244
|
+
throw new ModelError("Max SSE retries exceeded for rate-limited request", { status: 429 });
|
|
141
245
|
}
|
|
142
246
|
buildRequestBody(request, stream) {
|
|
247
|
+
// ModelSettings.store overrides config-level store
|
|
248
|
+
const effectiveStore = request.modelSettings?.store ?? this.store;
|
|
143
249
|
const body = {
|
|
144
250
|
model: this.deployment,
|
|
145
|
-
store:
|
|
251
|
+
store: effectiveStore,
|
|
146
252
|
};
|
|
147
253
|
const { instructions, input } = convertMessages(request.messages);
|
|
148
254
|
if (instructions) {
|
|
@@ -165,7 +271,7 @@ export class AzureResponsesModel {
|
|
|
165
271
|
body.text = convertResponseFormat(request.responseFormat);
|
|
166
272
|
}
|
|
167
273
|
// Only send previous_response_id when store is enabled (API needs to persist responses)
|
|
168
|
-
if (
|
|
274
|
+
if (effectiveStore && request.previousResponseId) {
|
|
169
275
|
body.previous_response_id = request.previousResponseId;
|
|
170
276
|
}
|
|
171
277
|
const s = request.modelSettings;
|
|
@@ -174,39 +280,72 @@ export class AzureResponsesModel {
|
|
|
174
280
|
body.temperature = s.temperature;
|
|
175
281
|
if (s.topP !== undefined)
|
|
176
282
|
body.top_p = s.topP;
|
|
177
|
-
if (s.
|
|
178
|
-
body.max_output_tokens = s.maxTokens;
|
|
179
|
-
if (s.maxCompletionTokens !== undefined)
|
|
283
|
+
if (s.maxCompletionTokens !== undefined) {
|
|
180
284
|
body.max_output_tokens = s.maxCompletionTokens;
|
|
285
|
+
}
|
|
286
|
+
else if (s.maxTokens !== undefined) {
|
|
287
|
+
body.max_output_tokens = s.maxTokens;
|
|
288
|
+
}
|
|
181
289
|
if (s.toolChoice !== undefined)
|
|
182
290
|
body.tool_choice = convertToolChoice(s.toolChoice);
|
|
183
291
|
if (s.parallelToolCalls !== undefined)
|
|
184
292
|
body.parallel_tool_calls = s.parallelToolCalls;
|
|
185
|
-
if (s.reasoningEffort !== undefined)
|
|
186
|
-
|
|
293
|
+
if (s.reasoningEffort !== undefined || s.reasoningSummary !== undefined) {
|
|
294
|
+
const reasoning = {};
|
|
295
|
+
if (s.reasoningEffort !== undefined)
|
|
296
|
+
reasoning.effort = s.reasoningEffort;
|
|
297
|
+
if (s.reasoningSummary !== undefined)
|
|
298
|
+
reasoning.summary = s.reasoningSummary;
|
|
299
|
+
body.reasoning = reasoning;
|
|
300
|
+
}
|
|
187
301
|
if (s.promptCacheKey !== undefined)
|
|
188
302
|
body.prompt_cache_key = s.promptCacheKey;
|
|
303
|
+
if (s.truncation !== undefined)
|
|
304
|
+
body.truncation = s.truncation;
|
|
305
|
+
if (s.store !== undefined)
|
|
306
|
+
body.store = s.store;
|
|
307
|
+
if (s.metadata !== undefined)
|
|
308
|
+
body.metadata = s.metadata;
|
|
309
|
+
if (s.user !== undefined)
|
|
310
|
+
body.user = s.user;
|
|
189
311
|
}
|
|
190
312
|
return body;
|
|
191
313
|
}
|
|
192
314
|
async doFetch(body, signal) {
|
|
193
315
|
const maxRetries = 3;
|
|
316
|
+
let lastError;
|
|
194
317
|
for (let attempt = 0; attempt <= maxRetries; attempt++) {
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
318
|
+
let response;
|
|
319
|
+
try {
|
|
320
|
+
const authHeaders = await this.getAuthHeaders();
|
|
321
|
+
response = await fetch(this.url, {
|
|
322
|
+
method: "POST",
|
|
323
|
+
headers: {
|
|
324
|
+
"Content-Type": "application/json",
|
|
325
|
+
...authHeaders,
|
|
326
|
+
},
|
|
327
|
+
body: JSON.stringify(body),
|
|
328
|
+
signal,
|
|
329
|
+
});
|
|
330
|
+
}
|
|
331
|
+
catch (fetchErr) {
|
|
332
|
+
// Network errors (timeout, connection reset, DNS failure)
|
|
333
|
+
// are retryable unless the caller aborted.
|
|
334
|
+
if (signal?.aborted)
|
|
335
|
+
throw fetchErr;
|
|
336
|
+
lastError = fetchErr;
|
|
337
|
+
if (attempt < maxRetries) {
|
|
338
|
+
const waitMs = Math.min(5000 * 2 ** attempt, 30000);
|
|
339
|
+
await new Promise((r) => setTimeout(r, waitMs));
|
|
340
|
+
continue;
|
|
341
|
+
}
|
|
342
|
+
throw new ModelError(`Azure API network error after ${maxRetries + 1} attempts: ${fetchErr instanceof Error ? fetchErr.message : String(fetchErr)}`, { cause: fetchErr });
|
|
343
|
+
}
|
|
205
344
|
if (response.status === 429 && attempt < maxRetries) {
|
|
206
345
|
const retryAfter = response.headers.get("retry-after");
|
|
207
346
|
const waitMs = retryAfter
|
|
208
347
|
? Number.parseInt(retryAfter, 10) * 1000
|
|
209
|
-
: Math.min(
|
|
348
|
+
: Math.min(5000 * 2 ** attempt, 30000);
|
|
210
349
|
await new Promise((r) => setTimeout(r, waitMs));
|
|
211
350
|
continue;
|
|
212
351
|
}
|
|
@@ -215,7 +354,7 @@ export class AzureResponsesModel {
|
|
|
215
354
|
}
|
|
216
355
|
return response;
|
|
217
356
|
}
|
|
218
|
-
throw new ModelError(
|
|
357
|
+
throw new ModelError(`Max retries exceeded for Azure API request${lastError instanceof Error ? `: ${lastError.message}` : ""}`);
|
|
219
358
|
}
|
|
220
359
|
async handleErrorResponse(response) {
|
|
221
360
|
let errorBody;
|
|
@@ -253,9 +392,7 @@ export class AzureResponsesModel {
|
|
|
253
392
|
const output = json.output ?? [];
|
|
254
393
|
const toolCalls = extractToolCalls(output);
|
|
255
394
|
const content = extractTextContent(output);
|
|
256
|
-
const usage = json.usage
|
|
257
|
-
? parseResponsesUsage(json.usage)
|
|
258
|
-
: undefined;
|
|
395
|
+
const usage = json.usage ? parseResponsesUsage(json.usage) : undefined;
|
|
259
396
|
const finishReason = toolCalls.length > 0 ? "tool_calls" : "stop";
|
|
260
397
|
return {
|
|
261
398
|
content,
|
|
@@ -373,7 +510,9 @@ function convertUserContent(content) {
|
|
|
373
510
|
});
|
|
374
511
|
}
|
|
375
512
|
function isFunctionToolDefinition(def) {
|
|
376
|
-
return "function" in def &&
|
|
513
|
+
return ("function" in def &&
|
|
514
|
+
def.function != null &&
|
|
515
|
+
typeof def.function === "object");
|
|
377
516
|
}
|
|
378
517
|
function convertToolChoice(toolChoice) {
|
|
379
518
|
if (typeof toolChoice === "string")
|