@effect-uai/responses 0.10.0 → 0.12.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/dist/OpenAIDeepResearch.d.mts +54 -0
- package/dist/OpenAIDeepResearch.d.mts.map +1 -0
- package/dist/OpenAIDeepResearch.mjs +121 -0
- package/dist/OpenAIDeepResearch.mjs.map +1 -0
- package/dist/OpenAIEmbedding.mjs +1 -1
- package/dist/OpenAIEmbedding.mjs.map +1 -1
- package/dist/Responses.d.mts +33 -3
- package/dist/Responses.d.mts.map +1 -1
- package/dist/Responses.mjs +71 -34
- package/dist/Responses.mjs.map +1 -1
- package/dist/ResponsesTools.d.mts +85 -0
- package/dist/ResponsesTools.d.mts.map +1 -0
- package/dist/ResponsesTools.mjs +126 -0
- package/dist/ResponsesTools.mjs.map +1 -0
- package/dist/codec.d.mts +42 -3
- package/dist/codec.d.mts.map +1 -1
- package/dist/codec.mjs +58 -17
- package/dist/codec.mjs.map +1 -1
- package/dist/codec.test.d.mts +1 -0
- package/dist/codec.test.mjs +93 -0
- package/dist/codec.test.mjs.map +1 -0
- package/dist/index.d.mts +5 -3
- package/dist/index.mjs +5 -3
- package/dist/{magic-string.es-PAZgLX4h.mjs → magic-string.es-CaWgF-3p.mjs} +1 -1
- package/dist/{magic-string.es-PAZgLX4h.mjs.map → magic-string.es-CaWgF-3p.mjs.map} +1 -1
- package/dist/models.d.mts +10 -1
- package/dist/models.d.mts.map +1 -1
- package/dist/region.test.mjs +1 -13630
- package/dist/region.test.mjs.map +1 -1
- package/dist/responsesTools.test.d.mts +1 -0
- package/dist/responsesTools.test.mjs +138 -0
- package/dist/responsesTools.test.mjs.map +1 -0
- package/dist/streamEvents.d.mts +142 -0
- package/dist/streamEvents.d.mts.map +1 -1
- package/dist/streamEvents.mjs +27 -2
- package/dist/streamEvents.mjs.map +1 -1
- package/dist/test.DNmyFkvJ-CPKukVWS.mjs +13633 -0
- package/dist/test.DNmyFkvJ-CPKukVWS.mjs.map +1 -0
- package/package.json +12 -4
- package/src/OpenAIDeepResearch.ts +266 -0
- package/src/OpenAIEmbedding.ts +1 -1
- package/src/Responses.ts +117 -36
- package/src/ResponsesTools.ts +158 -0
- package/src/codec.test.ts +87 -0
- package/src/codec.ts +92 -36
- package/src/index.ts +2 -0
- package/src/models.ts +14 -0
- package/src/responsesTools.test.ts +146 -0
- package/src/streamEvents.ts +58 -1
package/src/streamEvents.ts
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { Match, Schema } from "effect"
|
|
2
2
|
import { TurnEvent } from "@effect-uai/core/Turn"
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
WireAnnotation,
|
|
5
|
+
WireOutputItem,
|
|
6
|
+
WireResponseCompleted,
|
|
7
|
+
turnFromCompleted,
|
|
8
|
+
} from "./codec.js"
|
|
4
9
|
|
|
5
10
|
// ---------------------------------------------------------------------------
|
|
6
11
|
// Schemas for the SSE event payloads we care about. The Responses API ships
|
|
@@ -44,6 +49,28 @@ const RefusalDone = Schema.Struct({
|
|
|
44
49
|
refusal: Schema.optional(Schema.String),
|
|
45
50
|
})
|
|
46
51
|
|
|
52
|
+
// Web-search lifecycle. The three phases carry `item_id` / `output_index` /
|
|
53
|
+
// `sequence_number`; we map each to a `WebSearchCall` status. `query` / `action`
|
|
54
|
+
// ride on the `web_search_call` output item, not these lifecycle events.
|
|
55
|
+
const WebSearchInProgress = Schema.Struct({
|
|
56
|
+
type: Schema.Literal("response.web_search_call.in_progress"),
|
|
57
|
+
})
|
|
58
|
+
|
|
59
|
+
const WebSearchSearching = Schema.Struct({
|
|
60
|
+
type: Schema.Literal("response.web_search_call.searching"),
|
|
61
|
+
})
|
|
62
|
+
|
|
63
|
+
const WebSearchCompleted = Schema.Struct({
|
|
64
|
+
type: Schema.Literal("response.web_search_call.completed"),
|
|
65
|
+
})
|
|
66
|
+
|
|
67
|
+
// A citation attached to the answer as it is written. `annotation` is the
|
|
68
|
+
// same shape as the ones bundled on the final `output_text` block.
|
|
69
|
+
const AnnotationAdded = Schema.Struct({
|
|
70
|
+
type: Schema.Literal("response.output_text.annotation.added"),
|
|
71
|
+
annotation: WireAnnotation,
|
|
72
|
+
})
|
|
73
|
+
|
|
47
74
|
const Completed = Schema.Struct({
|
|
48
75
|
type: Schema.Literal("response.completed"),
|
|
49
76
|
response: WireResponseCompleted,
|
|
@@ -61,8 +88,18 @@ const Failed = Schema.Struct({
|
|
|
61
88
|
|
|
62
89
|
const ErrorEvent = Schema.Struct({
|
|
63
90
|
type: Schema.Literal("error"),
|
|
91
|
+
// Flat form (top-level `message`/`code`) and the nested form the Responses API
|
|
92
|
+
// uses for request rejections: `error: { message, code, type, param }`.
|
|
64
93
|
message: Schema.optional(Schema.String),
|
|
65
94
|
code: Schema.optional(Schema.String),
|
|
95
|
+
error: Schema.optional(
|
|
96
|
+
Schema.Struct({
|
|
97
|
+
message: Schema.optional(Schema.NullOr(Schema.String)),
|
|
98
|
+
code: Schema.optional(Schema.NullOr(Schema.String)),
|
|
99
|
+
type: Schema.optional(Schema.NullOr(Schema.String)),
|
|
100
|
+
param: Schema.optional(Schema.NullOr(Schema.String)),
|
|
101
|
+
}),
|
|
102
|
+
),
|
|
66
103
|
})
|
|
67
104
|
|
|
68
105
|
/**
|
|
@@ -88,6 +125,10 @@ export const KnownProviderEvent = Schema.Union([
|
|
|
88
125
|
ReasoningSummaryDelta,
|
|
89
126
|
RefusalDelta,
|
|
90
127
|
RefusalDone,
|
|
128
|
+
WebSearchInProgress,
|
|
129
|
+
WebSearchSearching,
|
|
130
|
+
WebSearchCompleted,
|
|
131
|
+
AnnotationAdded,
|
|
91
132
|
Completed,
|
|
92
133
|
Incomplete,
|
|
93
134
|
Failed,
|
|
@@ -107,6 +148,10 @@ export const ProviderEvent = Schema.Union([
|
|
|
107
148
|
ReasoningSummaryDelta,
|
|
108
149
|
RefusalDelta,
|
|
109
150
|
RefusalDone,
|
|
151
|
+
WebSearchInProgress,
|
|
152
|
+
WebSearchSearching,
|
|
153
|
+
WebSearchCompleted,
|
|
154
|
+
AnnotationAdded,
|
|
110
155
|
Completed,
|
|
111
156
|
Incomplete,
|
|
112
157
|
Failed,
|
|
@@ -165,6 +210,18 @@ export const eventToDeltas = (
|
|
|
165
210
|
// Terminal marker for the refusal stream; the deltas already covered
|
|
166
211
|
// the text, so no canonical event is emitted here.
|
|
167
212
|
"response.refusal.done": () => [],
|
|
213
|
+
"response.web_search_call.in_progress": () => [
|
|
214
|
+
TurnEvent.WebSearchCall({ status: "started" }),
|
|
215
|
+
],
|
|
216
|
+
"response.web_search_call.searching": () => [
|
|
217
|
+
TurnEvent.WebSearchCall({ status: "searching" }),
|
|
218
|
+
],
|
|
219
|
+
"response.web_search_call.completed": () => [
|
|
220
|
+
TurnEvent.WebSearchCall({ status: "completed" }),
|
|
221
|
+
],
|
|
222
|
+
"response.output_text.annotation.added": ({ annotation }) => [
|
|
223
|
+
TurnEvent.CitationAdded({ annotation }),
|
|
224
|
+
],
|
|
168
225
|
"response.completed": ({ response }) => [
|
|
169
226
|
TurnEvent.TurnComplete({ turn: turnFromCompleted(response) }),
|
|
170
227
|
],
|